diff --git a/.classpath b/.classpath old mode 100755 new mode 100644 index ea96f442..bfd82db2 --- a/.classpath +++ b/.classpath @@ -1,14 +1,10 @@ - - - - + - - + diff --git a/.cvsignore b/.cvsignore deleted file mode 100755 index c9c3ce75..00000000 --- a/.cvsignore +++ /dev/null @@ -1,12 +0,0 @@ -bin -*.class -output* -JavaLexer.java -JavaParser.java -*.~*~ -*.aux -*.dvi -*.log -y.output -Bytecode -JavaParserBuilder.launch \ No newline at end of file diff --git a/.externalToolBuilders/JavaParserBuilder.launch b/.externalToolBuilders/JavaParserBuilder.launch deleted file mode 100755 index 8e4b330b..00000000 --- a/.externalToolBuilders/JavaParserBuilder.launch +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 905ecb00..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.project b/.project old mode 100755 new mode 100644 index dcf58c69..792f8088 --- a/.project +++ b/.project @@ -5,20 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - clean,full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/JavaParserBuilder.launch - - - incclean - true - - - org.eclipse.jdt.core.javabuilder diff --git a/.settings/com.google.gwt.eclipse.core.prefs b/.settings/com.google.gwt.eclipse.core.prefs deleted file mode 100644 index 82c36afe..00000000 --- a/.settings/com.google.gwt.eclipse.core.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -filesCopiedToWebInfLib= diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs deleted file mode 100755 index 1f0adda8..00000000 --- a/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,7 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/de/dhbwstuttgart/core/MyCompiler.java=UTF-8 -encoding//src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java=UTF-8 -encoding//src/de/dhbwstuttgart/typeinference/UndConstraint.java=UTF-8 -encoding//src/de/dhbwstuttgart/typeinference/UnifySingleConstraint.java=UTF-8 -encoding//src/de/dhbwstuttgart/typeinference/UnifyUndConstraint.java=UTF-8 -encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs old mode 100755 new mode 100644 index 552a5c96..3a215370 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,13 +1,11 @@ -eclipse.preferences.version=1 -instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100755 index 417c0eda..00000000 --- a/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Sun Jul 27 10:21:29 CEST 2008 -eclipse.preferences.version=1 -instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true -internal.default.compliance=default diff --git a/JavaCompilerCore.iml b/JavaCompilerCore.iml deleted file mode 100644 index cb1e6970..00000000 --- a/JavaCompilerCore.iml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Papers/FMCO2005/main.bbl b/Papers/FMCO2005/main.bbl deleted file mode 100755 index 06ce9dea..00000000 --- a/Papers/FMCO2005/main.bbl +++ /dev/null @@ -1,76 +0,0 @@ -\begin{thebibliography}{CMP00} - -\bibitem[B{\"a}u05]{JB05} -J{\"o}rg B{\"a}uerle. -\newblock {\em Typinferenz in \textsf{Java}}. -\newblock Studienarbeit, BA Stuttgart/Horb, 2005. -\newblock (in german). - -\bibitem[CMP00]{CMP2000} -Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano. -\newblock {\em D\'eveloppement d'applications avec Objective Caml}. -\newblock O'Reilly, avril 2000. -\newblock in french, translation http://caml.inria.fr/oreilly-book. - -\bibitem[Lit98]{VL98} -Vassily Litvinov. -\newblock Constraint-based polymorphism in {Cecil}: Towards a practical and - static type system. -\newblock In {\em {OOPSLA} '98 Conference Proceedings}, volume 33(10), pages - 388--411, 1998. - -\bibitem[Mel05]{MM05} -Markus Melzer. -\newblock {\em Integration der \textsf{Java}--Typeinferenz in eine - Programmierumgebung}. -\newblock Studienarbeit, BA Stuttgart/Horb, 2005. -\newblock Studienarbeit (in german). - -\bibitem[Ode02]{MO02} -Martin Odersky. -\newblock Inferred type instantiation for {GJ}. -\newblock Note sent to the types mailing list, January 2002. - -\bibitem[Ott04]{TO04} -Thomas Ott. -\newblock {\em Typinferenz in \textsf{Java}}. -\newblock Studienarbeit, BA Stuttgart/Horb, 2004. -\newblock (in german). - -\bibitem[OZZ01]{OZZ01} -Martin Odersky, Christoph Zenger, and Matthias Zenger. -\newblock Colored local type inference. -\newblock {\em ACM SIG{\-}PLAN Notices}, 36(3):41--53, 2001. - -\bibitem[PC94]{PC94} -John Plevyak and Andrew~A. Chien. -\newblock Precise concrete type inference for object-oriented languages. -\newblock In {\em Proceedings of the ninth annual conference on Object-oriented - programming systems, language, and applications}, pages 324--340. ACM Press, - 1994. - -\bibitem[Pl{\"u}04]{Plue04_1} -Martin Pl{\"u}micke. -\newblock Type unification in \textsf{Generic--Java}. -\newblock In Michael Kohlhase, editor, {\em Proceedings of 18th {I}nternational - {W}orkshop on {U}nification ({U}{N}{I}{F}'04)}, July 2004. -\newblock {\tt http://www.faculty.iu-bremen.de/mkohlhase/event/unif04}. - -\bibitem[PS91]{PS91} -Jens Palsberg and Michael~I. Schwartzbach. -\newblock Object-oriented type inference. -\newblock {\em Proceedings of OOPSLA'91, ACM SIGPLAN Sixth Annual Conference on - Object-Oriented Programming Systems, Languages and Applications}, pages - 146--161, October 1991. - -\bibitem[PS94]{PS94} -Jens Palsberg and Michael~I. Schwartzbach. -\newblock {\em Object-oriented type systems}. -\newblock John Wiley \& Sons, 1994. - -\bibitem[PT00]{PT00} -Benjamin~C. Pierce and David~N. Turner. -\newblock Local type inference. -\newblock {\em ACM Trans. Program. Lang. Syst.}, 22(1):1--44, 2000. - -\end{thebibliography} diff --git a/Papers/FMCO2005/main.dvi b/Papers/FMCO2005/main.dvi deleted file mode 100755 index eda59ca6..00000000 Binary files a/Papers/FMCO2005/main.dvi and /dev/null differ diff --git a/Papers/FMCO2005/main.tex b/Papers/FMCO2005/main.tex deleted file mode 100755 index e6dd92b0..00000000 --- a/Papers/FMCO2005/main.tex +++ /dev/null @@ -1,140 +0,0 @@ -\documentclass[11pt]{article} -\setlength{\unitlength}{1 true cm} -\setlength{\oddsidemargin}{0 true mm} -\setlength{\evensidemargin}{\oddsidemargin} -\setlength{\textwidth}{160 true mm} -\setlength{\parindent}{5 true mm} -\setlength{\topmargin}{1 true mm} -\setlength{\headheight}{12 true pt} -\setlength{\headsep}{20 true pt} -\setlength{\textheight}{240 true mm} -\setlength{\footskip}{15 true mm} -\setlength{\voffset}{-10 true mm} -%\setlength{\footheight}{5 true mm} - -\usepackage{prolog} - -\title{Type--Inference in \javafive} -\author{J\"org B\"auerle, Markus Melzer, Martin Pl\"umicke\medskip\\ -\small -University of Cooperative Education Stuttgart\\ - %Department of Information Technology\\ - %Florianstra{\ss}e 15\\ - %D--72160 Horb\\ - %tel. +49-7451-521142\\ - %fax. +49-7451-521190\\ -\small m.pluemicke@ba-horb.de -} - - -\begin{document} -\bibliographystyle{alpha} -\maketitle -\section{Overview} -We have developed for \javafive a type inference system. This means that the -user can write programs without any type annotations and the system determines -the correct types. We have implemented a prototype for this -system. Furthermore we have implemented a plugin for the integrated development -environment \eclipse. - -\section{The Type Inference Algorithm} -Since then type inference in \oldjava similar languages is known as the -automatic parameter instantiation in polymorphic methods (local type inference) -\cite{PT00,OZZ01,MO02}. It is proved that this type inference is -unsound. Some techniques are presented, which solve these unsoundness. - -We extend these approaches to a global variant, where additionally -the types of method parameters, methods' return types and the -types of local variables are determined automatically. The input of the algorithm -are only the types of the fields of the respective classes. - -The type inference algorithm traverses the programming code as an abstract syntax -tree and forms sets of type inequations. As it is known that even the local -type inference is unsound, it is obvious that our approach is also unsound. We -deal with this problem, as we allow different type assumptions for the -parameters, the return type, the local variables, and the expressions of each -method, respectively. During traversing the set of type assumptions is adapted, such -that the set contains exactly the assumptions, which are possible assumptions at -the respective position during the traverse. The adaption is done by solving the -inequations as far as possible by a type unification algorithm -\cite{Plue04_1}. The type unification is not unitary but finitary. This means -that each unification step reduces the set of type assumptions if there is no -solution for one set of inequations. On the other hand the set of type assumptions is extended, if -there is more than one solution for a set of inequations. - -The result of the type inference algorithm is the set of all correct -combinations of types of the parameters, the return type, and the local -variables. - -After the type inference step during the compilation, there are two possibilities. Either for each -combination of types of each method, byte code could be built, -respectively. This would lead to the property that method names, which are -declared only once, could be overloaded. -On the other hand one combination could -be selected. Then, for this combination of types byte code would be built. We -implemented the second possibility (cp. section \ref{sec:IDE}). - -Furthermore, we have done comparisons to other type inference -approaches. We considered the -type system of \textsf{Cecil} \cite{VL98}, which is a static type system -providing type checking and local type inference. Furthermore we considered a -type system for a language oriented at \textsf{Smalltalk} \cite{PS91, - PS94}. In this approach the types are computed by a least fixed point derivation. -In \cite{PC94} type inference for the language \textsf{Concurrent Aggregates} is -described, which contains a data flow analysis. Finally, we considered the type -system of \textsf{ocaml} \cite{CMP2000}. The approach of this type system -differs from our's, as \textsf{ocaml} allows higher-order functions. - -\section{Implementation} -We have done the implementation in \oldjava. The implementation consists of two -parts. First we describe the implementation of the type unification -algorithm. Then we present the implementation of the actual type inference via -code traverse. - -\subsection{Type Unification} -The implementation of the type unification \cite{TO04} contains as the main -datastructure a Menge of type term pairs. The algorithm itself is -implemented as an extension of the usual unification algorithm. Pairs of -the form $a \olsub ty$ respectively $ty \olsub a$, where $a$ is a variable and -$ty$ is a term but no variable, generate multiple solutions. - -\subsection{Type Inference} -The idea of the implementation of the actual type inference algorithm -\cite{JB05} is that each construct in a \javafive program (method, parameter, -return type, variable, -expression) get first a variable as its type assumption. Then, for each variable a -type is determined by the algorithm. - -There are two main datastructures. -The first one represents type assumptions for methods, fields, and -variables. During runtime a set of instances of this -datastructure represent the different possibilities of type assumptions. The -second main datastructure represents the substitutions of the variables to types, -calculated step by step. - -During runtime each construct of the abstract syntax tree is registered -as a listener by the corresponding type variable. These registrations finally allow -to substitute the variables in the abstract syntax tree by the -calculated types. - -\section{Integrated Development Environment (IDE)} -\label{sec:IDE} -For \javafive without explicite type declaration a plugin for \eclipse is -developed \cite{MM05}. The IDE allows to show all different correct -possibilities to give types to the methods, parameters, return types, and local -variables, which are determined by the type inference algorithm. Then, the user -can select the favored type for each construct step by step. Finally, the -selected types are substituted in the respective constructs of the abstract syntax -tree. - -\section{Summary and Outlook} -We have developed a system, which allows to give typeless \javafive -programs. The system calculates the correct types. The soundness problem is -solved such that all different possibilities are determined and the user -himself decides, which type should be used. - -In the moment only a subset of \javafive is implemented. Interfaces and -F--bounded type parameters are not implemented yet. This should be done -henceforth. -\bibliography{martin,SE} -\end{document} diff --git a/Papers/FMCO2005/martin.bib b/Papers/FMCO2005/martin.bib deleted file mode 100755 index 49705f64..00000000 --- a/Papers/FMCO2005/martin.bib +++ /dev/null @@ -1,2310 +0,0 @@ -Inhalt: ------- -- Algebraische Spezification -- Informatik -- Compilerbau -- Funktionale Programmierung -- Imperative Programmierung -- OO -- JAVA -- Logik -- OS-Algebra -- Semantik -- Typen -- symbolischer Rechnen -- Rechnerarchitektur und Betriebssysteme -- XML/HTML -- RDF -- Textverarbeitung -- Software-Engineering (SE.bib) -- Geschäftsprozesse (siehe GP.bib ) -- Internet - -Algebraische Spezification --------------------------- - -@book{Gr79, - title={Universal Algebra}, - author={G. Gr{\"a}tzer}, - publisher={Springer-Verlag, New York}, - note={second edition}, - year=1979} - -@Book{ABC02, - author = {Hans-Jürgen Appelrath and Dietrich Boles and Volker Claus}, - title = {Starthilfe Informatik}, - publisher = {Teubner}, - year = {2002} -} - -@book{Kl83, - author={Herbert Klaeren}, - title={Algebraische {Spezifikation} --- {Eine} {Einf\"uhrung}}, - publisher={Springer Verlag}, - series={Lehrbuch Informatik}, - year=1983, - address={Berlin, Heidelberg, New York}} - -@Inbook{Kl831, - author={Herbert Klaeren}, - title={Algebraische {Spezifikation} --- {Eine} {Einf\"uhrung}}, - publisher={Springer Verlag}, - series={Lehrbuch Informatik}, - year=1983, - address={Berlin, Heidelberg, New York}, - chapter={6} -} - -@book{EM85, - title={Fundamentals of Algebraic Specification 1}, - author={H. Ehrig and B. Mahr}, - publisher={Springer-Verlag, Berlin}, - volume={6}, - year={1985}, - series={EATCS Monographs on Theoretical Computer Science}} - -@incollection{Wi90, - author = "M. Wirsing", - title = "{Algebraic Specifications}", - booktitle = "Handbook of Theoretical Computer Science, Volume {\bf B}", - publisher = "Elsevier Science Publishers B.V.", - editor = "J. van Leeuwen", - pages = "675-788", - chapter = "13", - year = "1990" -} - - -Informatik ----------- - -@book{Kl91, - author = {Klaeren, Herbert}, - title = { Vom Problem zum Programm: Eine Einf\"uhrung in die Informatik }, - publisher = { Teubner }, - year = 1991, - edition = {2., neubearbeitete und erweiterte Auflage}, -} - -@book{Klsp01, - author = {Klaeren, Herbert and Sperber, Michael}, - title = { Vom Problem zum Programm Architektur und Bedeutung von Computerprogrammen}, - publisher = { Teubner }, - year = 2001, - edition = {3., neubearbeitete und erweiterte {A}uflage}, -} - - -@Book{Sch2000, - author = {Schoening, Uwe}, - title = { Logik f\"ur Informatiker }, - publisher = { Spektrum Akademischer Verlag }, - year = 2000, - edition = {5. Auflage}, - annote = {automatisch generiert} -} - - - -@Book{No95, - author = {Noltenmeier, H.}, - title = {Einf\"uhrung in Algorithmen und Berechenbarkeit}, - publisher = {Hanser}, - year = {} -} - - -@Book{DP95, - author = {D\"orler and Peschek}, - title = {Einf\"uhrung in die {M}athematik f\"ur {I}nformatiker}, - publisher = {Hanser}, - year = {}, -} - - - -@Book{Wi00, - author = {Niklaus With}, - title = {Algorithmen und Datenstrukturen}, - publisher = {Teubner}, - year = {2000} -} - -@Book{Se92, - author = {Sedgewick, Robert}, - title = { Algorithmen in C }, - publisher = { Addison-Wesley }, - year = 1992, - address = {Bonn u.a.}, - edition = {1. Aufl.}, -} - -@Book{Se03, - author = {Sedgewick, Robert}, - title = {Algorithmen in Java}, - publisher = { Addison-Wesley }, - year = {2003} -} - - -@Book{OW90, - author = {Ottmann, Thomas and Widmayer, Peter}, - title = { Algorithmen und Datenstrukturen }, - publisher = { BI-Wiss.-Verl. }, - year = 1990, - series = {Reihe Informatik}, - address = {Mannheim u.a.}, -} - -@Book{OW02, - author = {Ottmann, Thomas and Widmayer, Peter}, - title = { Algorithmen und Datenstrukturen }, - publisher = { Spektrum akademischer Verlag }, - year = 2002 -} - -@Book{KuWe2000, - author = {K\"uchlin, Wolfgang and Weber, Andreas}, - title = {Einf\"uhrung in die Informatik Objektorientiert mit Java}, - publisher = {Springer-Verlag}, - year = {2000}, -} - -Compilerbau ------------ - -@misc{Spe94, - author={Michael Sperber}, - title={M\ork: a generater for preprocessors}, - howpublished={Universit"at T"ubingen}, - note={Diplomarbeit}, - year={1994}} - -@techreport{go92, - author={John Gough}, - title={The {D}-Code Compiler Front-end {GP2D}}, - publisher={Attempto-Verlag, Universität Tübingen}, - institution={Wilhelm-Schickard-Institut}, - year={1992}, - volume={WSI-92-2}} - -@misc{kl95, - author={Herbert Klaeren}, - title={{"U}bersetzung einer einfachen {P}rogrammiersprache}, - note={Vorlesungsskript}, - year={1995}} - -@book{WG84, - author = "W. M. Waite and G. Goos", - title = "Compiler Construction", - publisher = "Springer-Verlag", - address = "Berlin, Germany", - year = "1984"} - -@book{WM92, - author={Reinhard Wilhelm and Dieter Maurer}, - title={"Ubersetzerbau}, - edition = {2. Auflage}, - publisher={Springer-Verlag}, - year={1992}} - -@book{ASU86, - author={Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman}, - title={Compilers Principles, Techniques and Tools}, - publisher={Addison Wesley}, - year={1986}} - -@Book{ASU99_1, - author = {Aho, Alfred V. and Sethi, Ravi and Ullman, Jeffrey D.}, - title = {Compilerbau, 1. Teil}, - publisher = {Oldenburg}, - edition = {2. Auflage}, - year = {1999} -} - -@Book{ASU99_2, - author = {Aho, Alfred V. and Sethi, Ravi and Ullman, Jeffrey D.}, - title = {Compilerbau, 2. Teil}, - publisher = {Oldenburg}, - edition = {2. Auflage}, - year = {1999} -} - -@Book{HU04, - author = {Hedtst"uck}, - title = {Theoretische Informatik}, - publisher = {Oldenburg}, - year = {2004}, - edition = {3. Auflage} -} - -@Book{LMB92, - author = {von Levine, John R. and Mason, Tony and Brown, Doug}, - title = {Lex \& yacc, UNIX Programming Tools. A Nutshell-Handbook}, - publisher = {O'Reilly Associates}, - year = {1992}, - edition = {2nd} -} - -@TechReport{kuesch991, - author = {Bernd K\"uhl and Axel-Tobias Schreiner}, - title = {jay -- Compiler bauen mit yacc und Java}, - institution = {Fachbereich Mathematik/Informatik, Universit\"at Osnabr\"uck}, - year = {1999}, - note = {(in german)} -} - -@Article{kuesch992, - author = {Bernd K\"uhl and Axel-Tobias Schreiner}, - title = {jay -- {C}ompiler bauen mit {Y}acc und {J}ava}, - journal = {iX}, - year = {1999}, - note = {(in german)} -} - - - -@Manual{Be97, - title = {JLex: A lexical analyzer generator for Java(TM)}, - author = {Elliot Berk}, - edition = {1.2}, - month = {October}, - year = {1997} -} - -Funktionale Programmierung --------------------------- - -@BOOK{MiTH90, - AUTHOR = {Milner, Robin and Tofte, Mads and Harper, Robert} , - TITLE = {The definition of Standard ML}, - YEAR = {1990} , - PUBLISHER = {MIT Press, Cambridge, Mass.} , - SERIES = {} , - VOLUME = {} , - ISBN = {0-262-13255-9} , - ISSN = {} , - REPORT = {} , - POINTER = {Bib.d.Info. F.3.2}, - CATEGORY = {} , - KEYWORDS = {} , - ENTRY = {es} , - ABSTRACT = {} -} -@Book{MR97, - author = {Milner, Robin}, - title = { The definition of Standard ML (Revised) }, - publisher = { MIT Press }, - year = 1997, - address = {Cambridge, Mass.}, - annote = {automatisch generiert} -} - - - - -@Book{CMP2000, - author = {Emmanuel Chailloux and Pascal Manoury and Bruno Pagano}, - title = {D\'eveloppement d'applications avec Objective Caml}, - publisher = {O'Reilly}, - year = {2000}, - month = {avril}, - note = {in french, translation http://caml.inria.fr/oreilly-book} -} - -@TECHREPORT{BMS80, - AUTHOR= "Rod M. Burstall and Dave B. MacQueen and Don T. Sannella", - TITLE = "HOPE---An Experimental Applicative Language", - INSTITUTION="University of Edinburgh, Dept. of Computer Science", - NUMBER="CSR-62-80", - YEAR=1980} - -@BOOK{PT94, - AUTHOR = {Peter Thiemann} , - TITLE = {Grundlagen der funktionalen {P}rogrammierung} , - YEAR = {1994}, - PUBLISHER = {Teubner} -} - - -@InBook{PT941, - AUTHOR = {Peter Thiemann} , - TITLE = {Grundlagen der funktionalen {P}rogrammierung} , - YEAR = {1994}, - PUBLISHER = {Teubner}, - chapter = {11.2} -} - -@Book{Wik87, - author = {\AA ke Wikstr\"om}, - title = "{F}unctional {P}rogramming {U}sing {S}tandard {ML}", - publisher = "{P}rentice {H}all", - year = "1987" -} - -@inproceedings{Tu86, - author="D. A. Turner", - title="Miranda: {A} non-strict functional language with - polymorphic types", - booktitle="Proceedings Functional Programming Languages and Computer - Architecture, Nancy", - series={Lecture notes in computer science}, - volume=201, - pages="1--16", - publisher="Springer-Verlag", - year=1986} - - - - -@PhdThesis{Weh97, - author = "M. Wehr", - title = "???{O}verloading in {T}ype {T}heory???", - school = "University of Karlsruhe", - year = "1997", - OPTcrossref = "", - OPTkey = "", - OPTaddress = "", - OPTmonth = "", - OPTtype = "", - OPTnote = "", - OPTannote = "" -} - -@ARTICLE{haskell-r, - AUTHOR = {Paul Hudak and Simon {Peyton Jones} and Philip Wadler and others}, - TITLE = {Report on the Programming Language {Haskell}}, - JOURNAL = {SIGPLAN Notices}, - YEAR = 1992, - VOLUME = {27}, - NUMBER = {5}, - PAGES = {R1--R164} -} - - - - -@Booklet{haskell-1.3, - author = "John Peterson and Kevin Hammond and others", - title = "Report on the Programming Language {Haskell}, - Version 1.3", - year = "1996", - month = "May" -} - -@Booklet{haskell-1.4, - author = "John Peterson and Kevin Hammond and others", - title = "Report on the Programming Language {Haskell}, - Version 1.4", - year = "1997", - month = "April" -} - - - -@Booklet{haskell98, - title = {Haskell 98 Language and Libraries, The Revised Report}, - author = {Simon Peyton Jones [editor] and Lennart Augustsson and Dave Barton and Brian Boutel and Warren Burton and Joseph Fasel and Kevin Hammond and Ralf Hinze and Paul Hudak and John Hughes and Thomas Johnsson and Mark Jones and John Launchbury and Erik Meijer and John Peterson and Alastair Reid and Colin Runciman and Philip Wadler}, - month = {December}, - year = {2002} -} - -@Booklet{JO94, - title = "Gofer", - author = "Mark P. Jones", - month = "September", - year = "1994" -} - - -@Article{GKKMMW88, - author = "J. Goguen and C. Kirchner and H. Kirchner and - A. M\'{e}grelis and J. Meseguer and T. Wink\-ler ", - title = "An indroduction to {OBJ}--3", - journal = "Proceedings, Conference on Conditional Term - Rewriting, Lecture notes in computer science", - SERIES = {Lecture notes in computer science} , - publisher= "Springer-Verlag", - year = "1988", - volume = "308", - pages = "258-263" -} - -@incollection{KKM88, - title = {Operational Semantics of {OBJ--3}}, - author = {C. Kirchner and H. Kirchner and J. Meseguer}, - booktitle = {Proceedings, 15th International Colloquium on Automata, - Languages and Programming, Tampere, Finland, July 11-15, 1988}, - editor = {T. Lepist\"{o} and A. Salomaa}, - publisher = {Springer}, - pages = {287--301}, - year = 1988, - note = "Lecture Notes in Computer Science, Volume 317"} - - -@incollection(Go90, - title = "Higher-Order Functions Considered Unnecessary for Higher-Order - Programming", - author = "J. Goguen", - booktitle = "Research Topics in Functional Programming", - pages = "309-352", - editor = "David Turner", - publisher = "Addison-Wesley", - year = 1990, - note = "University of Texas at Austin Year of Programming Series; preliminary - version in SRI Technical Report SRI-CSL-88-1, January 1988") - -@book{Kl91a, - author={Herbert Klaeren}, - title={Efficient Implementation of a Functional Programming - Language}, - publisher={Springer-Verlag}, - note={preliminary draft}, - year={27. Februar 1991}} - -@Article{lg97, - author = "Luqi and Joseph A. Goguen", - title = "Formal Methods: Promises and Problems", - journal = "IEEE Software", - year = 1997, - volume = 14, - number = 1, - pages = "73-85" -} - - - -@InProceedings{GoDi94, - author = {Joseph Goguen and R{\u{a}}zvan Diaconescu}, - title = {An Oxford survey of order-sorted algebras}, - booktitle = {Mathematical Structures in Computer Science}, - pages = {362--392}, - year = {1994}, - volume = {4}} - -Imperative Programmierung -------------------------- - -@BOOK{JW75, - AUTHOR = {K. Jensen and N. Wirth}, - TITLE = {Pascal User Manual and Report}, - EDITION = {3rd}, - YEAR = {1976,1985}, - PUBLISHER = {Springer-Verlag}} - -@Book{JW74, - author = {Jensen, Kathleen and Wirth, Niklaus}, - title = { PASCAL. User Manual and Report }, - publisher = { Springer }, - year = 1974, - series = {Lecture notes in computer science, Bd. 18(S10)}, - address = {Berlin } -} - - -@Book{JKW85, - author = {Jensen, Kathleen and Wirth, Niklaus and Mickel, Andrew B.}, - title = { Pascal user manual and report : rev. for the ISO Pascal standard }, - publisher = { Springer }, - year = 1985, - address = {New York}, - edition = {3rd}, - note = {revised by Andrew B. Mickel and James F. Miner} -} - -@Book{HP87, - author = {Herschel, Rudolf and Pieper, Friedrich}, - title = { PASCAL und PASCAL-Systeme : systematische Darstellung f{\"u}r den Anwender }, - publisher = { Oldenbourg }, - year = 1987, - series = {Reihe Datenverarbeitung}, - address = {Muenchen, Wien}, - note = {6. verbesserte Auflage} -} - -@Book{Br86, - author = {Brauer, Klaus}, - title = { Programmieren mit FORTRAN 77 }, - publisher = { Huethig }, - year = 1986, - address = {Heidelberg}, - annote = {automatisch generiert} -} - - -@Book{Bu91, - author = {Budd, Timothy}, - title = { An introduction to object-oriented programming }, - publisher = { Addison-Wesley }, - year = 1991, - note = {Reprinted with corrections} -} - - -@Book{Mo94, - author = {Moessenboeck, Hanspeter}, - title = { Objektorientierte Programmierung in Oberon-2. Mit einem Geleitwort von Niklaus Wirth }, - publisher = { Springer }, - year = 1994, - address = {Berlin u.a.}, - note = {2. Auflage} - } - -@Book{KR88, - author = {Kernighan, Brian W. and Ritchie, Dennis M.}, - title = { The C programming language }, - publisher = { Prentice Hall }, - year = 1988, - series = {Prentice Hall software series}, - address = {Englewood Cliffs, NJ}, - edition = {2nd} -} - - - - -@Book{Wi88, - author = {Wirth, Niklaus}, - title = { Programming in Modula 2 }, - publisher = { Springer }, - year = 1988, - series = {Texts and monographs in computer science}, - address = {Berlin ; Heidelberg}, - edition = {4.} -} - -@Book{Bu91, - author = "Budd, Timothy", - title = "An {I}troduction to {O}bject--{O}riented {P}rogramming", - publisher = "Addison-Wesley", - year = "1991" -} - -@BOOK{Str91, - Author = {Bjarne Stroustrup}, - Title = {The C++ Programming Language}, - Publisher = {Addison-Wesley}, - Address = {Reading, MA}, - Edition = {2nd}, - Year = 1991, - ISBN = {0-201-53992-6}, - LC = {QA76.73.C15S79 1991}} - -@book{Me92, - author = "B. Meyer", - title = "Eiffel: {T}he language", - publisher = "Prentice Hall International", - year = "1992" } - - -@Book{Be86, - author = {Belli, Fevzi}, - title = { Einf{\"u}hrung in die logische Programmierung mit PROLOG }, - publisher = { Bibliographisches Institut }, - year = 1986, - series = {BI-Hochschultaschenb{\"u}cher}, - address = {Mannheim u.a.} -} - - -OO -------------------------- -@Article{DI81, - author = {Daniel H. H., Ingalls}, - title = {Design {P}rinciples {B}ehind {S}malltalk}, - journal = {{BYTE} Magazine}, - year = {1981}, - note = {\texttt{http://users.ipa.net/\~{ }dwighth/smalltalk/byte\_aug81/} \texttt{design\_principles\_behind\_smalltalk.html}}, - month = {August} -} - -@Book{AC93, - author = {Chien, Andrew A.}, - title = {Concurrent {A}ggregates: {S}upporting {M}odularity in {M}assivly--{P}arallel {P}rograms}, - publisher = {MIT Press, Cambridge}, - year = {1993} -} - - - -@TechReport{CKPZ93, - author = {Chien, Andrew A. and Karamcheti, Vijay and Plevyak, John and Zhang, Xingbin}, - title = {Concurrent aggregates language report 2.0}, - institution = {University of Illinois at Urbana--Champaign, Department of Computer Science}, - year = {1993}, - note = {\texttt{http://www-csag.ucsd.edu/projects/concert/ca.html}} -} - -JAVA -------------------------- -@Book{AG96, - author = {Arnold, Ken and Gosling, James}, - title = { The Java programming language }, - publisher = { Addison-Wesley }, - year = 1996, - series = {The Java series} -} - -@Book{AG2001, - author = {Arnold, Ken and Gosling, James and Holmes, David }, - title = { The Java programming language }, - publisher = { Addison-Wesley }, - year = 2001, - edition = {3rd}, - series = {The Java series} -} - -@Book{GoJoStBr05, - author = {Gosling, James and Joy, Bill and Steele, Guy and Bracha, Gilad }, - title = "{The Java$^{TM}$ language specifacation }", - publisher = "Addison-Wesley", - edition = {3rd}, - year = 2005, - series = {The Java series} -} - - -@Book{Fl97, - author = {David Flanagan}, - title = {Java in a {N}utschell}, - publisher = {O'Reilly}, - year = {1997} -} - -@Book{Fl01, - author = {David Flanagan}, - title = {Java in a {N}utschell}, - publisher = {O'Reilly}, - edition = {3rd}, - year = {2001} -} - -@Book{Fl03, - author = {David Flanagan}, - title = {Java in a {N}utschell}, - publisher = {O'Reilly}, - edition = {4.}, - year = {2003} -} - -@Book{CU05, - author = {Christian Ullenboom}, - title = {Java ist auch eine Insel}, - publisher = {Galileo Computing}, - year = {2005}, - volume = {4.}, - note = {in german} -} - -@Book{LP96, - author = {Lemay, Laura and Perkins, Charles L.}, - title = { Java 1.1 in 21 Tagen }, - publisher = { SAMS Verlag }, - year = 1997, - address = {Haar bei M\"unchen} -} - -@Book{LC01, - author = {Lemay, Laura and Cadenhead, Rogers}, - title = { Java 2 in 21 Tagen }, - publisher = { SAMS Verlag }, - year = 2001, - address = {Haar bei M\"unchen} -} - -@Book{LC03, - author = {Lemay, Laura and Cadenhead, Rogers}, - title = { Java 2 in 21 Tagen }, - publisher = { SAMS Verlag }, - year = 2003, - address = {Haar bei M\"unchen}, - edition = {4.} -} - - -@Book{GoJoSt96, - author = "Gosling, James and Joy, Bill and Steele, Guy", - title = "{The Java language specifacation }", - publisher = "Addison-Wesley", - year = 1996, - series = {The Java series}, -} - - - -@article{DE97, - author = "Sophia Drossopoulou and Susan Eisenbach", - title = "{Java} is Type Safe --- Probably", - journal = "Lecture Notes in Computer Science", - volume = "1241", - pages = "389--??", - year = "1997", - url = "citeseer.ist.psu.edu/drossopoulou96java.html" } - - -@article{DEK99, - author = "Sophia Drossopoulou and Susan Eisenbach and Sarfraz Khurshid", - title = "Is the Java Type System Sound?", - journal = "Theory and Practice of Object Systems", - volume = "5", - number = "1", - pages = "3-24", - year = "1999", - url = "citeseer.ist.psu.edu/drossopoulou97is.html" } - - -@Book{BH98, - author = {Bauer and H\"ollerer}, - title = {\"Ubersetzung Objekt-orientierter Programmiersprachen}, - publisher = {Springer-Verlag}, - year = {1998}, - note = {(in german)} -} - - -@inproceedings{BOSW98, - author = "Gilad Bracha and Martin Odersky and David Stoutamire and Philip Wadler", - title = "Making the Future Safe for the Past: Adding Genericity to the {Java} Programming Language", - booktitle = "{ACM} {S}ymposium on {O}bject {O}riented {P}rogramming: {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})", - address = "Vancouver, BC", - editor = "Craig Chambers", - pages = "183--200", - year = "1998", - url = "citeseer.ist.psu.edu/bracha98making.html" } - -@Manual{OP982, - author = {Gilad Bracha and Martin Odersky and David Stoutamire and Philip Wadler}, - title = {G{J}: {E}xtending the {J}ava {P}rogramming {L}anguage with type parameters}, - year = {1998} -} - -@Manual{OP981, - author = {Gilad Bracha and Martin Odersky and David Stoutamire and Philip Wadler}, - title = {G{J} {S}pecification}, - year = {1998} -} - - -@Article{IPW99, - author = {Atsushi Igarashi and Benjamin Pierce and Philip Wadler}, - title = {Featherweight Java: A Minimal Core Calculus for Java and {GJ}}, - journal = {Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages \& Applications (OOPSLA`99)}, - year = {1999} -} - -@Article{OP01, - author = {Gilad Bracha and Norman Cohen and Christian Kemper and Steve Marx and Martin Odersky and Sven-Eric Panitz and David Stoutamire Kresten Thorup and Philip Wadler}, - title = {Adding {G}enerice to the {J}ava {P}rogramming {L}anguage: {P}articipant {D}raft {S}pecification}, - journal = {\texttt{http://java.sun.com}}, - year = {2001} -} - -@Misc{MO02, - author = {Martin Odersky}, - title = {Inferred Type Instantiation for {GJ}}, - howpublished = {Note sent to the types mailing list}, - month = {January}, - year = 2002 -} - -@Article{au04, - author = {Calvin Austin}, - title = {{J2SE} 1.5 in a Nutshell}, - journal = {\tt http://java.sun.com/\-developer/\-technicalArticles/\-releases/\-j2se15 \rm}, - year = {2004}, - month = {February} -} - - -@Book{GHJV94, - author = {Gamma, E. and Helm, R. and Johnson, R. and Vlissides, J.}, - title = {Design Patterns -- Microarchitectures for Reusable Object-Oriented Software}, - publisher = { Addison-Wesley, Reading}, - year = {1994} -} - - -@article{OHo95, - author = "Atsushi Ohori", - title = "A Polymorphic Record Calculus and Its Compilation", - journal = "ACM Transactions on Programming Languages and Systems", - volume = "17", - number = "6", - month = "November", - publisher = "ACM Press", - pages = "844--895", - year = "1995", - url = "citeseer.ist.psu.edu/ohori95polymorphic.html" } - -Logik ------ - -@BOOK{Bar84, - AUTHOR = {Barendregt, Hendrik P.} , - TITLE = {{The lambda calculus : {I}ts syntax and semantics}} , - YEAR = {1984} , - PUBLISHER = {North-Holland, Amsterdam} , - SERIES = {Studies in logic and the foundations of mathematics} , - VOLUME = {} , - ISBN = {0-444-86748-1} , - ISSN = {} , - REPORT = {} , - POINTER = {Bib.d.Info. F.4.1}, - CATEGORY = {} , - KEYWORDS = {} , - ENTRY = {es} , - ABSTRACT = {} -} - -OS-Algebra ----------- - -@article{Gog78, - author={J. A. Goguen}, - title={Order sorted algebras: {E}xception and {E}rror {S}orts, {C}oercions and {O}verloaded {O}perators}, - journal={Semantics and Theory of Computation Report}, - volume=14, - year={1978}} - - -@TechReport{Gog83, - author = "Martin Gogolla", - title = "Algebraic Specifications with Partially Ordered - Sorts and Declarations", - institution = "Univerisit{\"a}t Dortmund, Abteilung Informatik", - year = "1983" -} - -@Inproceedings{ Gog84, - Author = { M. Gogolla }, - Title = { Pa{rti}a{lly} {Ordered} {Sorts} {in} {Algebr}a{ic} - {Specific}a{tions} }, - Booktitle = { Proc. 9th CAAP, Bordeaux }, - Pages = { 139-154 }, - Year = { 1984 } } - Gibt es in unserer Bibliothek nicht. - - -@Article{FGJM85, - author = "K. Futatsugi and J. Goguen and J.-P. Jouannaud and - J. Meseguer", - title = "{P}rinciples of {OBJ}--2", - journal = "Proceedings, 12th ACM Symposium on Principles of - Programming Languages", - year = "1985", - pages = "52--66", - note = "Association for Computing Machinery" -} - -@article{GJM85, - author={J. A. Goguen and J.-P. Jouannaud and J. Meseguer}, - title={Operational semantics of order-sorted algebras}, - journal={Proc. Twelfth International EATCS Colloquium on Automata, Languages and Programming}, - volume=19, - year=1985, - pages={221-231}} - - - - - -@InProceedings{SS86, - author = "M. Schmidt-Schau{\ss{}}", - title = "Unification in many-sorted equational theories", - booktitle = "Proceedings of the 8th Conference on Automated Deduction", - year = "1986", - pages = "538--552", - editor = "J. H. Siekmann", - address = "Oxford" -} - - - -@Book{SS89, - author = {Manfred Schmidt-Schau{\ss{}}}, - title = {{C}omputational {A}spects of an {O}rder-{S}orted {L}ogic with {T}erm {D}eclarations}, - publisher = {Springer-Verlag}, - year = {1989}, - volume = {395}, - series = {LNCS} -} - -@Article{Gan91, - author = "H. Ganzinger", - title = "Order-sorted completion the many-sorted way", - journal = "Theoretical Computer Science", - year = "1991", - volume = "89", - pages = "3--32" -} - - -@Article{GS88, - author = "Gert Smolka", - title = "Logic programming with polymorphically order-sorted types", - journal = "Proc. First {I}nternational {W}orkshop on {A}lgebraic - and {L}ogic {P}rogramming, Springer-Verlag", - year = "1988", - volume = "{LNCS} 343", - pages = "53--70", - note = "Gaussig, {GDR}" -} - -@phdthesis{GS89, - author = "Gert Smolka", - title = "Logic Programming over Polymorphically Order-Sorted Types", - school = {Department Informatik, University of Kaisers\-lautern}, - address = {Kaiserslautern, Germany}, - month = may, - year = 1989 -} - - - - -@Article{MH91, - author = "Michael Hanus", - title = "Parametric order-sorted types in logic programming", - journal = "Proc. TAPSOFT 1991", - year = "1991", - volume = "LNCS", - number = "394", - pages = "181--200" -} - - - -@InProceedings{CB90, - author = "Christoph Beierle", - title = "Types, {M}odules and {D}atabases in the {L}ogic - {P}rogramming {L}anguage {PROTOS-L}", - editor = "K.H. Bl{\"a}sius and U. Hendtst{\"u}ck and C.-R. Rollinger", - volume = "418", - pages = "73--110", - booktitle = "Sort and {T}ypes in {A}rtificial {I}ntelligence", - year = "1990", - publisher = "Springer-Verlag Berlin", - note = "Proceedings of the workshop, Eringerfeld, April 1989" -} - -@Article{CB92, - author = "Christoph Beierle", - title = "Logic programming with typed unification and its - realization on an abstract machine", - journal = "IBM Journal of Research and Development", - year = "1992", - volume = "36", - number = "3", - pages = "375--390", - month = "May" -} - - -@INCOLLECTION{SNGM89, - Author ={Smolka, Gert - and Nutt, Werner and Goguen, Joseph A. and Meseguer, Jos{\'e} }, - Title ={Order-Sorted Equational Computation}, - Pages ={297--367}, - Type ={Chapter}, - Chapter = 10, - Booktitle = {Resolution of Equations in Algebraic Structures, Volume~2}, - Editor = {A{\"\i}t-Kaci, Hassan and Nivat, Maurice}, - Publisher = {Academic Press}, - Year = 1989, - Klasse = {Algebraische Spezifikation, Unifikation, Verschiedenes}, - Bemerkung={ }, - Kopiert ={x}, - Sa ={IUn}, - Sb ={IV}, - Eingabedatum = {05.09.1991}, - Aenderungsdatum = {05.12.1991} - } - - - -@TechReport{Wa90, - author = "U. Waldmann", - title = "Unitary Unification in {O}rder-sorted {S}ignatures", - institution = "Universit{\"a}t Dortmund", - year = "1989 (Revised Version 1990)", - number = "Forschungsbericht 298" -} - -@TechReport{GoMe89, - author = "J. A. Goguen and J. Meseguer", - title = "Order-Sorted Algebras {I}: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations", - institution = "SRI International", - year = "1989", - month = "July" -} - -@InProceedings{GoMe92, - author = "J. A. Goguen and J. Meseguer", - title = "Order-Sorted Algebras {I}: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations", - booktitle = {Theoretical Computer Science}, - year = "1992", - month = "November", - pages = "217--273", - volume = {105(2)} -} - - -@article{MGS89, - author={J. Meseguer and J. A. Goguen and G. Smolka}, - title={Order-Sorted Unification}, - journal={Journal of Symbolic Computation}, - volume=8, - year=1989, - pages={383-413}} - - -@Manual{GWMFJ93, - author = "J. A. Goguen and T. Winkler and J. Meseguer and - K. Futatsugi and J.-P. Jouannaud", - title = "Introducing OBJ", - year = "1993", - month = "October" -} - - -@Misc{Plue93, - author = "Martin Pl{\"u}micke", - title = "Ordnungs-sortierte {A}lgebren als {G}rundlage f{\"u}r {S}emantik und {T}yp\-sys\-tem - einer algebraischen {S}pezifikationssprache", - howpublished = "Universität Tübingen", - year = "1993", - month = "Oktober", - note = "Diplomarbeit" -} - -@techreport{Plue94, - author={Martin Pl{\"u}micke}, - title={Ordnungs-sortierte {A}lgebren als {G}rundlage f{\"u}r {S}emantik und {T}yp\-sys\-tem - einer algebraischen {S}pezifikationssprache}, - institution={Universit{\"a}t T{\"u}bingen, Wilhelm-Schickard-Institut}, - year={1994}, - number={WSI-94-7} -} - -@TechReport{PK95, - author = "Martin Pl{\"u}micke and Herbert Klaeren", - title = "Concepts for Overloading and Subtyping in an Algebraic Specification Language", - institution = "University of T{\"u}bingen, Wilhelm-Schickard-Institut", - year = "1995", - number = "WSI-95-22" -} - -@TechReport{Pluekl94, - author={Martin Pl{\"u}micke and Herbert Klaeren}, - title={Subtyping and Overloading in a Functional Programming - Language}, - institution = "University of T{\"u}bingen, Wilhelm-Schickard-Institut", - year={1994}, - number={WSI-94-14} -} - -@inproceedings{plue942, - author={Martin Pl{\"u}micke}, - title={Subtyping and Overloading in a Functional Programming - Language}, - booktitle={GI-Workshop, Alternative Konzepte für Sprachen und Rechner Bad - Honnef 1994}, - year={1994}, - editor={F.Simon}, - pages={99-104}, - month={september} -} - - - -@InProceedings{plue972, - author = {Martin Pl{\"u}micke}, - title = {Complete polymorphic order-sorted unification}, - booktitle = {Programming Languages and Fundamentals of Programming}, - pages = {272--286}, - year = {1997}, - editor = {Rudolf Berghammer and Friedemann Simon}, - OPTseries = {Bericht}, - number = {9717}, - month = {November}, - note = {9th colloquium}, - organization = {Christian--Albrechts--Universit{\"a}t, Kiel} -} - - - -@InProceedings{plue981, - author = {Martin Pl{\"u}micke}, - title = {Type {I}nference in \textsf{OBJ--P}}, - booktitle = {Workshop On Functional and Logic Programming Proceedings}, - year = {1998}, - editor = {Herbert Kuchen}, - number = {63}, - organization = {Westf{\"a}lische Wilhelms--Universit{\"a}t, M{\"u}nster}, - note = {7th International Workshop} -} - -@PhdThesis{plue982, - author = {Martin Pl{\"u}micke}, - title = {{\sf OBJ--P} {T}he {P}olymorphic {E}xtension of {\sf OBJ--3}}, - school = {University of Tuebingen}, - year = {1999}, - address = {WSI-99-4} - } - - - - -@InBook{plue98232, - author = {Martin Pl{\"u}micke}, - title = {{\sf OBJ--P} {T}he {P}olymorphic {E}xtension of {\sf OBJ--3}}, - chapter = {3.6}, - publisher = {PhD thesis, University of Tuebingen}, - year = {1999}, - volume = {WSI-99-4} -} - -@InProceedings{plue99, - author = "M. Pl{\"u}micke", - title = {Polymorphism in \textsf {OBJ--P}}, - booktitle = "Perspectives of {S}ystem {I}nformatics, Preliminary Proceedings", - year = "1999", - organization = "Akademgorodok, Novosibirsk, Russia", - month = "July" -} - -@InProceedings{plue991, - author = "Martin Pl{\"u}micke", - title = {Polymorphism in \textsf {OBJ--P}}, - booktitle = "Perspectives of {S}ystem {I}nformatics, Proceedings", - publisher = "Springer--Verlag", - year = "1999", - pages = {148--153}, - volume = {{LNCS} 1755}, - series = {{L}ecture {N}otes of {C}omputer {S}cience} -} - - - - -@InProceedings{Plue04_1, - author = {Martin Pl{\"u}micke}, - title = {Type Unification in \textsf{Generic--Java}}, - booktitle = {Proceedings of 18th {I}nternational {W}orkshop on {U}nification ({U}{N}{I}{F}'04)}, - year = {2004}, - editor = {Michael Kohlhase}, - month = {July}, - note = {{\tt http://www.faculty.iu-bremen.de/mkohlhase/event/unif04}} -} - - -@Manual{TO04, - author = {Thomas Ott}, - title = {Typinferenz in \textsf{Java}}, - organization = {Studienarbeit, BA Stuttgart/Horb}, - year = {2004}, - note = {(in german)} -} - -@Manual{JB05, - author = {J{\"o}rg B{\"a}uerle}, - title = {Typinferenz in \textsf{Java}}, - organization = {Studienarbeit, BA Stuttgart/Horb}, - year = {2005}, - note = {(in german)} -} - -@Manual{MM05, - author = {Markus Melzer}, - title = {Integration der \textsf{Java}--Typeinferenz in eine Programmierumgebung}, - organization = {Studienarbeit, BA Stuttgart/Horb}, - year = {2005}, - note = {Studienarbeit (in german)} -} - -@Article{Qia94, - author = "Zhenyu Qian", - title = "Another Look at Parameterization Of Order-Sorted - Algebraic Specifications", - journal = "Journal of Computer and System Sciences", - year = "1994", - volume = "49", - pages = "620--666" -} - -@inproceedings{plue95, - author={Martin Pl{\"u}micke}, - title={Semantics and Implementation of a Functional Programming Language with - Subtypes and Overloading}, - booktitle={Alternative Konzepte für Sprachen und Rechner Bad - Honnef 1995}, - year={1995}, - editor={J. Ebert}, - OPTnote={to appear} -} - - -@InProceedings{Plue96, - author = "M. Pl{\"u}micke and H. Klaeren and E. Hiti", - title = "Resolving of {O}verloading and {S}ubtyping", - pages = "286--291", - booktitle = "Perspectives of {S}ystem {I}nformatics, Preliminary Proceedings", - year = "1996", - organization = "Akademgorodok, Novosibirsk, Russia", - month = "June" -} - - - - -@TechReport{PS97, - author = "Martin Pl{\"u}micke and Christoph Schmitz", - title = "Polymorphically order-sorted types in {OBJ--3}", - institution = "University of T{\"u}bingen, Wilhelm-Schickard-Institut", - year = "1997", - number = "WSI-97-1" -} - - - -@TechReport{Plue97, - author = "Martin Pl{\"u}micke", - title = "Parametric Polymorphism in {OBJ--3}", - institution = "University of T{\"u}bingen, Wilhelm-Schickard-Institut", - year = "1997", - number = "WSI-97-2" -} - -@Unpublished{Plue962, - author = "Martin Pl{\"u}micke", - title = "Polymorphic {O}rder--{S}orted {S}ignatures with - {T}ype {V}ariables as {S}ubtypes", - note = "to appear" -} - -@InProceedings{Wa85, - author = "Christoph Walther", - title = "Unification in Many-sorted Theories", - editor = "T. O'Shea", - pages = "383-392", - booktitle = "Advances in Artificial Intelligence -- Proceedings, - Sixth European Conference on Artificial Intelligence", - year = "1985", - publisher = "North Holland" -} - -@INPROCEEDINGS{Erw93, -AUTHOR = "Erwig, M.", -TITLE = "Specifying Type Systems with Multi-Level Order-Sorted Algebra", -YEAR = "1993", -BOOKTITLE = "3rd Int. Conf. on Algebraic Methodology and Software -Technology", -SERIES = "", -PAGES = "177--184"} - -@INPROCEEDINGS{PT93, -AUTHOR = "Thiemann, Peter", -TITLE = "{A}n {O}verview of the {SODA} System", -YEAR = "1993", -BOOKTITLE = "3rd Int. Conf. on Algebraic Methodology and Software -Technology", -SERIES = "", -PAGES = "185--192"} - - -@misc{plue04, - author = {Martin Pl{\"u}micke}, - title = {Type inference in {\sf Generic--Java}}, - year = {2004}, - annote = {(to appear)} - } - -Semantik --------- -@BOOK{Fe89, - AUTHOR = {Elfriede Fehr}, - TITLE = {Semantik von Programmiersprachen}, - PUBLISHER = {Springer}, - YEAR = {1989}} - -@BOOK{Sto89 , - AUTHOR = {Stoy, Joseph E.} , - TITLE = {{Denotational semantics: the Scott-Strachey approach to programming language theory }} , - YEAR = {1989} , - PUBLISHER = {MIT Press, Cambridge, Mass.} , - SERIES = {The MIT Press series in computer science} , - VOLUME = {} , - ISBN = {0-262-69076-4} , - ISSN = {} , - REPORT = {} , - POINTER = {Bib.d.Info. F.3.2}, - CATEGORY = {} , - KEYWORDS = {} , - ENTRY = {es} , - ABSTRACT = {} -} - -Typen ------ - - -@Article{Hin69, - author = "R. Hindley", - title = "The principle type scheme of an object in - combinatory logic", - journal = "Trans. Am. Math. Soc. 146", - year = "1969", - pages = "29--60", - month = "December" -} - -@article{DM82, - author={Luis Damas and Robin Milner}, - title={Principal type-schemes for functional programs}, - journal={Proc. 9th Symposium on Principles of Programming Languages}, - year={1982}} - -@article{Lei83, - author={Daniel Leivant}, - title={Polymorphic type inference}, - journal={Proc. 10th Symposium on Principles of Programming Languages 1982}, - year={1983}} - -@article{Mil78, - author={Robin Milner}, - title={A theory of type polymorphism in programming}, - journal={Journal of Computer and System Sciences, 17}, - volume={17}, - pages={348-378}, - year={1978}} - - -@InProceedings{My84, - author = {A. Mycroft}, - title = {Polymorphic type schemes and recursive definitions}, - booktitle = {Proc. 6th Int. Conf. on Programming}, - year = {1984}, - volume = {LNCS 167} -} - -@misc{Hin89, - author={Ralf Hinze}, - title={Typsysteme und {T}ypinferenzsysteme}, - howpublished={Universit{\"a}t Dortmund}, - note={Diplomarbeit}, - year={1989}} - -@BOOK{Jone90 , - AUTHOR = {Jones, Neil D.} , - TITLE = {{Proceedings }} , - YEAR = {1990} , - PUBLISHER = {Springer, Berlin ; Heidelberg} , - SERIES = {Lecture notes in computer science} , - VOLUME = {} , - ISBN = {3-540-52592-0} , - ISSN = {} , - REPORT = {} , - POINTER = {Bib.d.Info. D.2.0}, - CATEGORY = {} , - KEYWORDS = {} , - ENTRY = {es} , - ABSTRACT = {} -} -@article{SK88, - Author = {Kaes, Stefan}, - Title = {Parametric Overloading in Polymorphic Programming Languages}, - journal = "ESOP~'88", - Series ={LNCS}, - Volume = {LNCS~300}, - year = "1988", - Pages = {131--144}} - -@Inproceedings{Kae88, - crossref = {ESOP88}, - Author = {Kaes, Stefan}, - Title = {Parametric Overloading in Polymorphic Programming Languages}, - Pages = {131--144}, - kopiert = {x}, - Eingabedatum = {04.03.1991} - } - - -@Article{FM88, - author = "Fuh, You-Chin and Mishra, Prateek", - title = "Type Inference with Subtypes", - journal = "Proceedings 2nd European Symposium on Programming - ({ESOP '88})", - year = "1988", - pages = "94--114" -} - -@Inproceedings{FuhMishra88, - crossref = {ESOP88}, - Author ={Fuh, You-Chin - and Mishra, Prateek }, - Title ={Type Inference with Subtypes}, - Pages ={94--114}, - Bemerkung = {Enthaelt Fehler (siehe WandKeefe; Thattish ...)}, - } - -@PROCEEDINGS{ESOP88, - Booktitle = {Proceedings 2nd European Symposium on Programming - ({ESOP~'88})}, - title = {Proceedings 2nd European Symposium on Programming - ({ESOP '88})}, - Editor = {H. Ganzinger}, - Year = 1988, - Month = mar, - Series ={Lecture Notes in Computer Science}, - Volume = 300, - Address ={Nancy, France}, - Publisher={Springer-Verlag}, - IBIB = {D.2.0}, - Eingabedatum = {03.04.1992} - } - -@Article{FM90, - Author ={Fuh, You-Chin - and Mishra, Prateek }, - Title ={Type Inference with Subtypes}, - Journal ={Theoretical Computer Science}, - Volume = 73, - Year = 1990, - Pages ={155--175}} - - - -@InProceedings{NS91, - author = {T. Nipkow and G. Snelting}, - title = {Type classes and overloading resolving via order-sorted unification}, - booktitle = {Proceedings of the 5th ACM Conference on Functional Programming Languages -and Computer Architecture}, - editor = {Hughes}, - volume = {523}, - publisher = {Springer-Verlag}, - year = {1991}, - series = {LNCS} -} - -@Article{Mit91, - author = "John C. Mitchell", - title = "Type inference with simple subtypes", - journal = "Journal of Functional Programming", - year = "1991", - volume = "1", - number = "3", - pages = "245--285" -} - -@InProceedings{WaBl89, - author = "Philip Wadler and Stephan Blott", - title = "How to make \textit{ad-hoc} polymorphism less - \textit{ad-hoc}", - year = "1989", - OPTcrossref = "", - OPTkey = "", - OPTeditor = "", - OPTvolume = "", - OPTnumber = "", - OPTseries = "", - pages = "60--76", - booktitle = "Conf. Record of the 16th ACM Annual Symposium on - Principles of Programming Languages", - OPTyear = "", - OPTorganization = "", - OPTpublisher = "", - OPTaddress = "", - OPTmonth = "January", - OPTnote = "", - OPTannote = "" -} - -@Article{CW85, - Author ={Cardelli, Luca - and Wegner, Peter }, - Title ={On Understanding Types, Data Abstraction and Polymorphism}, - Journal ={ACM Computing Surveys}, - Volume = 17, - Number = 4, - Year = 1985, - Pages ={470--522}, - Klasse = {Datentypen, existentielle Datentypen}, - Bemerkung={"Bounded Fun" - }, - Kopiert ={x}, - Sa ={IDaEx}, - Sb ={IDaTH}, - Eingabedatum = {30.11.1990}, - Aenderungsdatum = { } - } - - - - -@InProceedings{VS91, - author = "Dennis M. Volpano and Geoffrey S. Smith", - title = "On the Complexity of ML Typability with Overloading", - booktitle = {Proceedings of the 5th ACM Conference on Functional Programming Languages -and Computer Architecture}, - editor = {Hughes}, - volume = {523}, - publisher = {Springer-Verlag}, - year = {1991}, - series = "LNCS" -} - - - -@InProceedings{OWW95, - author = "Martin Odersky and Philip Wadler and Martin Wehr", - title = "A Second Look at Overloading", - booktitle = {Conference Record of Conference on Functional Programming Languages and Computer Architecture}, - pages = {135--146}, - year = {1995}, - address = {La Jolla, California}, - month = {June}, - publisher = {ACM Press} -} - -@Article{OSW99, - author = {Martin Odersky and Martin Sulzmann and Martin Wehr}, - title = {Type Inference with Constrained Types}, - journal = {TAPOS}, - year = 1999, - volume = 5, - number = 1 -} - -@InProceedings{OW97, - author = {Martin Odersky and Philip Wadler}, - title = {{P}izza into {J}ava: Translating theory into practice}, - booktitle = {Proceedings of the 24th ACM Symposium on Principles of Programming Languages}, - year = {1997}, - month = {January} -} - - -@Article{ORW00, - author = {Martin Odersky and Enno Runne and Philip Wadler.}, - title = {Two {W}ays to {B}ake {Y}our {P}izza -- {T}ranslating {P}arameterised {T}ypes into {J}ava}, - journal = {Proceedings of a Dagstuhl Seminar, Springer Lecture Notes in Computer Science}, - year = {2000}, - volume = {1766}, - pages = {114--132}, -} - - -@InProceedings{CHO92, - author = {Kung Chen and Paul Hudak and Martin Odersky}, - title = {Parametric type classes}, - booktitle = {Proceedings ACM Conference ob Lisp and Functional Programming}, - year = {1992}, - month = {June}, - pages = {170--181} -} - - -@InProceedings{Kae92, - author = {Stefan Kaes}, - title = {Type inference in the presence of overloading, subtyping, and recusive types}, - booktitle = {Proceedings ACM Conference on Lisp and Functional Programming Languages}, - pages = {193--204}, - year = {1992}, - month = {June} -} - -@InProceedings{Jo93, - author = {Mark P. Jones}, - title = {A system of constructor classes: {O}verloading and implicite higher-order -polymorphism}, - booktitle = {Proceedings of the ACM Conference on Functional Programming Languages -and Computer Architecture}, - address = {Copenhagen, Denmark}, - pages = {52--61}, - year = {1993}, - month = {June} -} - -@InProceedings{He88, - author = {Fritz Henglein}, - title = {Type inference and semi-unification}, - booktitle = {Proceedings ACM Conference ob Lisp and Functional Programming}, - year = {1988}, - address = {New Yourk}, - month = {July} -} - -@InProceedings{KTU90, - author = "A.J. Kfoury and J. Tiuryn and P. Urzyczyn", - title = "The undecidablity of the semi-unification problem", - booktitle = "Proceedings 22nd Annual ACM Symposium on Theory of Computation (STOC)", - address = "Baltimore, Maryland", - year = "1990", - pages = "468--476", - month = "May" -} - - -@InProceedings{He93, - author = "Fritz Henglein", - title = "Type Inference with {P}olymorphic {R}ecursion", - booktitle = {ACM Transactions on {P}rogramming {L}anguages and {S}ystems ({TOPLAS})}, - pages = {253--289}, - year = {1993}, - volume = {15(2)}, - month = {April} -} - -@Article{LY98, - author = {Oukseh Lee and Kwangkeun Yi}, - title = {Proofs {A}bout {A} {F}olklore {L}et-{P}olymorphic {T}ype {I}nference {A}lgorithm}, - journal = {ACM Transactions on {P}rogramming {L}anguages and {S}ystems ({TOPLAS})}, - year = {1998}, - note = {to appear} -} - -@Article{KTU93, - author = "A.J. Kfoury and J. Tiuryn and P. Urzyczyn", - title = "Type Reconstruction in the {P}resence of {P}olymorphic {R}ecursion", - journal = "ACM Transactions on Programming Languages and Systems", - year = "1993", - volume = "15", - number = "2", - month = "April" -} - - -@PhdThesis{We93, - author = {Andreas Weber}, - title = {Type {S}ystems for {C}omputer {A}lgebra}, - school = {University of T{\"u}bingen}, - year = {1993} -} - - - -@PhdThesis{Fr94, - author = {Tim Freeman}, - title = {Refinement {T}ypes of {ML}}, - school = {School of Compter Science, Carnegie Mellon University}, - year = {1994} -} - -@inproceedings{Mi84, - author = {John C. Mitchell}, - title = {Coercion and type inference}, - booktitle = {Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages}, - year = {1984}, - isbn = {0-89791-125-3}, - pages = {175--185}, - location = {Salt Lake City, Utah, United States}, - publisher = {ACM Press}, - } - -@inproceedings{Re85, - author = {J C Reynolds}, - title = {Three approaches to type structure}, - booktitle = {Proc. of the international joint conference on theory and practice of software development (TAPSOFT) Berlin, March 25-29, 1985 on Mathematical foundations of software development, Vol. 1: Colloquium on trees in algebra and programming (CAAP'85)}, - year = {1985}, - isbn = {0-387-15198-2}, - pages = {97--138}, - location = {Berlin, Germany}, - publisher = {Springer-Verlag New York, Inc.}, - } -@article{Ca88, - AUTHOR = {Luca Cardelli}, - TITLE = {A Semantics of Multiple Inheritance}, - JOURNAL = {Information and Computation}, - VOLUME = 76, - NUMBER = {2/3}, - MONTH = FEB # {/} # MAR, - YEAR = 1988, - PAGES = {138--164}, - DOCUMENTURL = {http://research.microsoft.com/Users/luca/Papers/Inheritance.A4.ps}, - ANOTE = {A revised version of the paper that appeared in the - 1984 Semantics of Data Types Symposium, LNCS 173, pages - 51--66. }, - url = {citeseer.ist.psu.edu/cardelli88semantics.html} } - -@inproceedings{PC94, - author = {John Plevyak and Andrew A. Chien}, - title = {Precise concrete type inference for object-oriented languages}, - booktitle = {Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications}, - year = {1994}, - isbn = {0-89791-688-3}, - pages = {324--340}, - location = {Portland, Oregon, United States}, - doi = {http://doi.acm.org/10.1145/191080.191130}, - publisher = {ACM Press}, - } - -@inproceedings{CCHOM89, - author = {Peter Canning and William Cook and Walter Hill and Walter Olthoff and John C. Mitchell}, - title = {F-bounded polymorphism for object-oriented programming}, - booktitle = {Proceedings of the fourth international conference on Functional programming languages and computer architecture}, - year = {1989}, - isbn = {0-89791-328-0}, - pages = {273--280}, - location = {Imperial College, London, United Kingdom}, - doi = {http://doi.acm.org/10.1145/99370.99392}, - publisher = {ACM Press}, - } - -@inproceedings{CHC90, - author = {William R. Cook and Walter Hill and Peter S. Canning}, - title = {Inheritance is not subtyping}, - booktitle = {Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, - year = {1990}, - isbn = {0-89791-343-4}, - pages = {125--135}, - location = {San Francisco, California, United States}, - doi = {http://doi.acm.org/10.1145/96709.96721}, - publisher = {ACM Press}, - } - -@inproceedings{AW93, - author = "Alexander Aiken and Edward L. Wimmers", - title = "Type Inclusion Constraints and Type Inference", - booktitle = "Functional Programming Languages and Computer Architecture", - pages = "31-41", - year = "1993", - url = "citeseer.ist.psu.edu/aiken93type.html" } - -@Article{EST95, - author = {Jonathan Eifrig and Scott Smith and Valery Trifonov}, - title = {Type {I}nference for {R}ecursively {C}onstrained {T}ypes and its {A}pplication to {O}bject {O}riented {P}rogramming}, - journal = {Electronic Notes in Theoretical Computer Science}, - year = {1995}, - volume = {1} -} - -@Article{PS91, - author = {Jens Palsberg and Michael I. Schwartzbach}, - title = {Object-oriented type inference}, - journal = {Proceedings of OOPSLA'91, ACM SIGPLAN Sixth Annual Conference on Object-Oriented Programming Systems, Languages and Applications}, - year = {1991}, - pages = {146--161}, - month = {October} -} - - -@Article{PS92, - author = {Jens Palsberg and Michael I. Schwartzbach}, - title = {Safety analysis versus type inference for partial types}, - journal = {Information Processing Letters}, - year = {1992}, - volume = {43}, - pages = {175--180} -} - -@Article{OPS92, - author = {Nicholas Oxhoj and Jens Palsberg and Michael I. Schwartzbach}, - title = {Making type inference practical}, - journal = {Proceedings of ECOOP'92, Sixth European Conference on Object-Oriented Programming}, - year = {1992}, - volume = {LNCS 615}, - pages = {329--349}, - month = {July} -} - -@Book{PS94, - author = {Jens Palsberg and Michael I. Schwartzbach}, - title = {Object-oriented type systems}, - publisher = {John Wiley \& Sons}, - year = {1994} -} - -@Article{KPS94, - author = {Dexter Kozen and Jens Palsberg and Michael I. Schwartzbach}, - title = {Efficient inference of partial types}, - journal = {Journal of Computer and System Sciences}, - year = {1994}, - volume = {49}, - number = {2}, - pages = {306--324} -} - -@inproceedings{VL98, - author = "Vassily Litvinov", - title = "Constraint-Based Polymorphism in {Cecil}: Towards a Practical and Static Type System", - booktitle = "{OOPSLA} '98 Conference Proceedings", - volume = "33(10)", - pages = "388--411", - year = "1998", - url = "citeseer.ist.psu.edu/article/litvinov98constraintbased.html" } - - -@article{PT00, - author = {Benjamin C. Pierce and David N. Turner}, - title = {Local type inference}, - journal = {ACM Trans. Program. Lang. Syst.}, - volume = {22}, - number = {1}, - year = {2000}, - issn = {0164-0925}, - pages = {1--44}, - doi = {http://doi.acm.org/10.1145/345099.345100}, - publisher = {ACM Press}, - } - -@article{OZZ01, - author = "Martin Odersky and Christoph Zenger and Matthias Zenger", - title = "Colored local type inference", - journal = "ACM SIG{\-}PLAN Notices", - volume = "36", - number = "3", - pages = "41--53", - year = "2001", - url = "citeseer.ist.psu.edu/article/odersky01colored.html" } - - -@InBook{AA02, - author = {Andrew W. Appel}, - title = {Modern compiler implementation in Java}, - chapter = {16}, - publisher = {Cambridge University Press}, - year = {2002}, - pages = {354--386} -} - -symbolischer Rechnen --------------------- - -@Book{RV01, - editor = {Alan Robinson and Andrei Voronkov}, - title = {Handbook of {A}utomated {R}easoning}, - publisher = {Elsevier Science Publishers B.V.}, - year = {2001} -} - - - - -@InCollection{BS01, - author = {Franz Baader and Wayne Snyder}, - title = {Unification {T}heory}, - booktitle = {Handbook of {A}utomated {R}easoning}, - crossref = {RV01}, - pages = {447--533}, - chapter = {8} -} - -@InCollection{He30, - author = "J. Herbrand", - title = "Recherches sur la {T}h\'{e}orie de la - {D}\'{e}monstration (thesis)", - booktitle = "Logical {W}ritings", - year = "1930", - editor = "W. Goldfarb", - address = "Cambridge" -} - -@article{Rob65, - author={J. A. Robinson}, - title={A Machine-Oriented Logic Based on the Resolution Principle}, - journal={Journal of ACM}, - volume={12(1)}, - pages={23-41}, - month=Jan, - year={1965}} - - -@TechReport{MM76, - author = "A. Martelli and U. Montanari", - title = "Unification in {L}inear {T}ime and {S}pace, {A} - structured {P}resentation", - institution = "University of Pisa", - year = "1976", - number = "B76--16" -} - -@article{MM82, - author={A. Martelli and U. Montanari}, - title={An Efficient Unification Algorithm}, - journal={ACM Transactions on Programming Languages and Systems}, - volume={4}, - pages={258-282}, - year={1982}} - - - -@Article{Si89, - author = "J. Siekmann", - title = "Unification {T}heory", - journal = "J. Symbolic Computation", - year = "1989", - volume = "7", - pages = "207--274" -} - -@TechReport{CoLo90, - author = "George E. Collins and R{\"u}diger G. K. Loos", - title = "Specifications and {I}ndex of {SAC}--2 {A}lgorithms", - institution = "Wilhelm-Schickard-Institut", - year = "1990", - number = "WSI-90-4" -} - -@Manual{BuCo92, - title = "SACLIB User's Guide (version 1.0)", - author = "B. Buchberger and G. Collins and - M. Encarnac{$\acute{\rm o}$}n - and H. Hong and J. Johnson and W. Kran\-dick and - A. Mandache and A. Neubacher and H. Vielhaber", - year = "1992", - month = "September" -} - -@Article{Fo96, - author = "Jeroen Fokker", - title = "Explaining algebraic theory with functional programs" -} - - - -@Article{Ka, - author = "Jerzy Karczmarczuk", - title = "Function programming and Mathamatical Objects", - journal = "", - year = "", - volume = "", - number = "", - pages = "121--137" -} - - - -@Book{JeSu92, - author = {R. D. Jenks and R. S. Sutor}, - title = {{AXIOM}: The {S}cienttific {C}omputation {S}ystem}, - publisher = {Springer-Verlag}, - year = {1992}, - address = {New Yourk} -} - - - -@InProceedings{Je84, - author = {R. D. Jenks}, - title = {A primer: 11 keys to new {S}cratchpad}, - booktitle = {Proceedings Symposium on Symbolic and Algebraic Computation (EUROSAM 84)}, - pages = {123--147}, - year = {1984}, - editor = {J. Fitch}, - volume = {147}, - series = {LNCS}, - address = {Cambridge, England}, - month = {July}, - publisher = {Springer-Verlag} -} - -@Book{Leu90, - author = {Leeuwen, Jan van}, - title = { Handbook of theoretical computer science }, - publisher = { Elsevier }, - year = 1990, - volume = {Volume B: Formal models and semantics}, - address = {Amsterdam u.a.}, - annote = {automatisch generiert} -} - - -Rechnerarchitektur und Betriebssysteme --------------------------------------- - -@Article{BGN46, - author = {Burks, A. W. and Goldstine H. H. and von Neumann J.}, - title = {{P}reliminary {D}iscussion of the {L}ogical Design of an {E}lectronic {C}omputing {I}nstrument}, - journal = {U. S. Army Ordonance Dept. Report 1946}, - year = {1946} -} - - - -@Book{HP94, - author = {Hennessy, John. L. and Patterson, David A.}, - title = {Rechnerarchitektur}, - publisher = {Friedr. Vieweg \& Sohn Verlagsgesellschaft mbH, Braunschweig,/Wiesbaden}, - year = {1994} -} - -@Book{AT94, - author = {Tanenbaum, Andrew S.}, - title = { Moderne Betriebssysteme }, - publisher = { Hanser }, - year = 1994, - series = {Hanser Studienb{\"u}cher der Informatik}, - address = {M{\"u}nchen u.a.}, - annote = {automatisch generiert} -} - -@Book{AT95, - author = {Tanenbaum, Andrew S.}, - title = { Moderne Betriebssysteme }, - publisher = { Hanser }, - year = 1995, - series = {Hanser-Studienbuecher der Informatik}, - address = {Muenchen u.a.}, - edition = {2. verb. Aufl.}, - annote = {automatisch generiert} -} - - -@Article{Be65, - author = {Benes, V. E.}, - title = {Mathematical {T}heory of {C}onnecting {N}etworks and {T}elephone {T}raffic}, - journal = {Academic Press}, - year = {1965} -} - - -@Article{F72, - author = {Flynn, M. J.}, - title = {Some {C}omputer {O}rganizations and {T}heir {E}ffectiveness}, - journal = {IEEE Trans. on Computers}, - year = {1972}, - volume = {C--21}, - pages = {948 -- 960} -} - -@Book{SG98, - author = {Silberschatz, Abraham and Galvin, Peter B.}, - title = { Operating system concepts }, - publisher = { Addison-Wesley }, - year = 1998, - address = {Reading, Mass. u.a.}, - edition = {5. ed., reprint. with corr.}, - annote = {automatisch generiert} -} - -@Book{SGG00, - author = {Silberschatz, Abraham and Galvin, Peter B. and Gagne, Greg }, - title = { Applied Operating System Concepts }, - publisher = { Wiley and Sons }, - year = 2000, - edition = {First edition} -} - -@Book{ObVo87, - author = {Oberschelp, Walter and Vossen, Gottfried}, - title = { Rechneraufbau und Rechnerstrukturen }, - publisher = { Oldenbourg }, - year = 1987, - address = {Muenchen}, - edition = {2. Auflage} -} - - -@Book{He98, - author = {Herrmann, Paul}, - title = {Rechnerarchitektur Aufbau, Organisation und Implementierung}, - publisher = {Friedr. Vieweg \& Sohn Verlagsgesellschaft mbH, Braunschweig,/Wiesbaden}, - year = {1998} -} - -@Book{Eb88, - author = {Ebner, Dieter}, - title = { Technische Grundlagen der Informatik: Elektronik, Datenverarbeitung und Prozesssteuerung fuer Naturwissenschaftler u. Ingenieure }, - publisher = { Springer }, - year = 1988, - address = {Berlin, Heidelberg} -} - -@Book{Le92, - author = {Lewine, Donald A.}, - title = { POSIX programmer's guide : writing portable UNIX programs with the POSIX.1 standard }, - publisher = { O'Reilly }, - year = 1992, - address = {Sebastopol, CA}, - edition = {1. ed., minor corr.}, - annote = {automatisch generiert} -} - - -@book{CP89, - author = {Polze, Christoph}, - title = {Unix--Werkzeuge zur Programmentwicklung}, - publisher = {VEB Verlag Berlin}, - year = {1989} -} - - -@Book{KP86, - author = {Kernighan, Brian W. and Pike Rob}, - title = {Der Unix-Werkzeugkasten, Programmieren mit Unix}, - publisher = {Hanser}, - year = {1986} -} - - -@Book{MM85, - author = {Maas, Doris and Meith, Wolfgang H.}, - title = {Die Unix--Shell}, - publisher = {Springer--Verlag}, - year = {1985} -} - - -@Book{GoSt89, - author = {Staubach, Gottfried}, - title = {Unix--Werkzeuge zur Textmustererkennung}, - publisher = {Springer--Verlag}, - year = {1989} -} - - -@Book{SB01, - author = {H.-J. Siegert and U. Baumann}, - title = {Betriebssysteme}, - publisher = {Oldenbourg}, - year = {2001}, - volume = {5} -} - -XML/HTML ---- - -@Book{GoPr98, - author = {C.F. Goldfarb and P. Prescod}, - title = {The {XML} {H}andbook}, - publisher = {Prentice Hall}, - year = {1998}} - -@Book{GrQu99, - author = {I.S. Graham and L. Quin}, - title = {{XML} {S}pecification {G}uide}, - publisher = {John Wiley \& Sons, Inc.}, - year = {1999}} - -@Book{MuNe99, - author = {S. M\"unz and Wolfgang Nefzger}, - title = {HTML-4.0-Referenz}, - publisher = {Franzis--Verlag GmBH}, - year = {1999} -} - -RDF ---- -@Misc{RDF04, - author = {Dave Beckett}, - title = {{RDF/XML} {S}yntax {S}pecification}, - howpublished = {http://www.w3.org/TR/rdf-syntax-grammar}, - month = {February}, - year = {2004} -} - -@Misc{RDFS04, - author = {Dan Brickley and R.V. Guha}, - title = {{RDF} Vocabulary {D}escription {L}anguage 1.0: {RDF} Schema}, - howpublished = {http://www.w3.org/TR/rdf-schema}, - month = {February}, - year = {2004} -} - - -@Misc{OWL04, - author = {Peter F. Patel-Schneider and Patrick Hayes and Ian Horrocks}, - title = {{OWL} {W}eb {O}ntology {L}anguage, {S}emantics and {A}bstract {S}yntax}, - howpublished = {http://www.w3.org/TR/owl-semantics}, - month = {February}, - year = {2004} -} - -Textverarbeitung ----------------- - -@Book{GoMiSa94, - author = {M. Goossens and F. Mittelbach and A. Samarin}, - title = {The \LaTeX {C}ompanion}, - publisher = {Addison-Wesley}, - year = {1994} -} - - - -Internet --------- - -@Book{St94, - author = {Stevens, W. R.}, - title = { TCP/IP illustrated }, - publisher = { Addison-Wesley }, - year = 1994, - volume = {1. The protocols.}, - series = {Addison-Wesley professional computing series}, - address = {Reading, Mass. u.a.}, - annote = {automatisch generiert} -} - -@Book{SW95, - author = {Stevens, W. R. and Wright, Gary R.}, - title = { TCP/IP illustrated }, - publisher = { Addison-Wesley }, - year = 1995, - volume = {2. The Implementation.}, - series = {Addison-Wesley professional computing series}, - address = {Reading, Mass. u.a.}, - annote = {automatisch generiert} -} - -@Book{St96, - author = {Stevens, W. R.}, - title = { TCP/IP illustrated }, - publisher = { Addison-Wesley }, - year = 1996, - volume = {3. TCP for transactions, HTTP, NNTP,and the UNIX domain protocols.}, - series = {Addison-Wesley professional computing series}, - address = {Reading, Mass. u.a.}, - annote = {automatisch generiert} -} - - -@Book{Ta00, - author = {Tanenbaum, Andrew S.}, - title = { Computernetzwerke }, - publisher = { Pearson Studium }, - year = 2000, - series = {Informatik Kommunikation}, - address = {Muenchen}, - edition = {3. rev. Aufl.}, - annote = {automatisch generiert} -} - -@Book{Ny92, - editor = {Adrian Nye}, - title = {X protocol reference manual}, - publisher = {O'Reilly}, - year = {1992}, - edition = {2 ed.}, - volume = {0}, - series = {The definitive guides to the X window system} -} - - -@TechReport{Cl02, - author = {Jörn Clausen}, - title = {Internet--Protokolle}, - institution = {Universität Bielefeld}, - year = {2002}, - address = {http://www.techfak.uni-bielefeld.de/ags/pi/lehre/IProt01/} -} - -@Misc{RFC, - key = {RFC}, - title = {{R}{F}{C}}, - howpublished = {http://www.ietf.org/rfc.html} -} - -@TechReport{, - author = {}, - title = {}, - institution = {}, - year = {}, - OPTkey = {}, - OPTtype = {}, - OPTnumber = {}, - OPTmonth = {}, - OPTnote = {}, - OPTannote = {} -} - diff --git a/Papers/FMCO2005/prolog.sty b/Papers/FMCO2005/prolog.sty deleted file mode 100755 index 6b0050d7..00000000 --- a/Papers/FMCO2005/prolog.sty +++ /dev/null @@ -1,708 +0,0 @@ -\usepackage{float} -\usepackage{color} -\usepackage{xspace_spezial} -\usepackage{amsmath} -\usepackage{amssymb} -\usepackage{alltt} -\usepackage{fancybox} -\usepackage{stmaryrd} -\usepackage{verbatim} -\usepackage{epsfig} -\usepackage{multicol} -\newlength{\textwid} -\setlength{\textwid}{\textwidth} -\addtolength{\textwid}{-4ex} -\newlength{\textfighei} -\setlength{\textfighei}{\textheight} -\addtolength{\textfighei}{-10ex} -\DeclareSymbolFont{blackboard}{OT1}{bbm}{m}{sl} -\DeclareMathSymbol{\IR}{0}{blackboard}{"52} -\DeclareMathSymbol{\IN}{0}{blackboard}{"4E} -\DeclareMathSymbol{\IF}{0}{blackboard}{"46} -\DeclareMathSymbol{\IP}{0}{blackboard}{"50} -\DeclareMathSymbol{\IK}{0}{blackboard}{"4D} -\DeclareMathSymbol{\IZ}{0}{blackboard}{"5A} -\DeclareMathSymbol{\IQ}{0}{blackboard}{"51} -\DeclareMathSymbol{\IC}{0}{blackboard}{"43} -\parindent 0mm -\renewcommand{\unlhd}{<} -%\renewcommand{\lhd}{<\!\!|} -%\renewcommand{\rhd}{|\!\!>} -\definecolor{blue}{rgb}{0,0,1} -\definecolor{red}{rgb}{1,0,0} -\definecolor{green}{rgb}{0,1,0.3} -\definecolor{bluered}{rgb}{1,0,1} -\definecolor{bluegreen}{rgb}{1,0.3,0} -\newcommand{\red}[1]{\textcolor{red}{#1}} -\newcommand{\blue}[1]{\textcolor{blue}{#1}} -\newcommand{\green}[1]{\textcolor{green}{#1}} -\newcommand{\bluered}[1]{\textcolor{bluered}{#1}} -\newcommand{\bluegreen}[1]{\textcolor{bluegreen}{#1}} -\reversemarginpar -\newcommand{\commentary}[1]{\marginpar[\tiny #1]{\tiny #1}} -%\newcommand{\commentaryforKlaeren}[1]{\marginpar[\tiny #1]{\tiny #1}} -%\newcommand{\commentary}[1]{} -\newcommand{\commentaryforKlaeren}[1]{} -% -% figure - Einstellungen -% -\def\textfraction{0} -\def\topfraction{1.5} -\def\bottomfraction{1} -\def\floatpagefraction{1.0} -%\def\dbltopfraction{1} -%\def\dblfloatpagefraction{1.0} -\newcommand{\indexentry}[2]{\item[] #1 \dotfill #2\qquad\qquad\vspace{-0.8em}} -\newcommand{\sub}{\textrm{\,$\sqsubseteq$\,}\xspace} -\newcommand{\nsub}{\text{\,$\not\sqsubseteq$\,}\xspace} -\newcommand{\ecap}{\mbox{$\,\sqcap\,$}} -\newcommand{\ecup}{\mbox{$\,\sqcup\,$}} -\newcommand{\pre}{\mbox{$\,\preceq\,$}} -\newcommand{\botam}{{\{\, \bot,\ \amalg \,\}}\xspace} - -% -% Substitutions -% -\newcommand{\subst}{\textrm{$\expbf{subst}{\normaltset}$}} - -% -% Signaturen -% -\def\einf#1#2{\mbox{$(#1,~#2)$}\xspace} -\newcommand{\sig}{\einf{\normalbtermset}{\Theta}} -\newcommand{\typesig}{\einf{BTV}{TC}\xspace} -\newcommand{\einsig}{\einf{\normaltermset}{F}\xspace} -\newcommand{\msig}{\einsig} -\newcommand{\mssig}{\einf{\equivtermset}{F_{ms}}\xspace} -\newcommand{\ossig}{\einf{\normaltset, \sub}{F_{os}}\xspace} -\def\einfm#1#2{\langle #1,\ #2 \rangle} -%\def\pos#1#2{\einf{#1,\ \sqsubseteq}{#2}} -\def\pos#1#2#3{\einf{#1,\ #2}{#3}} -\def\posm#1#2{\pos{#1}{#2}} -\def\posSO#1{\pos{#1}{F}} -\def\posSIG#1{\pos{S}{#1}} -\newcommand{\posig}{\pos{\normaltset}{\olsub}{\Sigma}} -\newcommand{\posigM}{\pos{\normaltset}{\olsub}{M}} -%\newcommand{\posig}{\pos{S}{\Sigma}} -\newcommand{\overposig}{\pos{\overline{S}}{\overline{\Sigma}}} -\def\fsf#1#2#3{\mbox{$#1^{(#2,#3)}$}\xspace} -\def\Sigmaa#1#2{\fsf{F}{#1}{#2}\xspace} -\newcommand{\Sigmaws}{\Sigmaa{w}{s}} -\newcommand{\Sigmawt}{\Sigmaa{w}{\theta}} -\def\set#1{\{\,#1 \,\}} -\newcommand{\termset}[3]{\textrm{$\exp{#1_{#2}}{#3}$}\xspace} -\newcommand{\normaltset}{\termset{T}{\Theta}{TV}} -\newcommand{\normaltermset}{\termset{T}{\Theta}{TV}} -\newcommand{\normalbtermset}{\termset{T}{TC}{BTV}} -\newcommand{\equivtermset}{\textrm{$\exp{T_{\Theta_{\sim}}}{TV}$}\xspace} -\newcommand{\equiva}[1]{[#1]_{\sim}} -\newcommand{\popoSIG}[1]{\einf{\normaltset,~\sqsubseteq}{#1}} -\newcommand{\poposig}{\popoSIG{F}} -%\newcommand{\poss}{polymorphically order-sorted signature\xspace} -%\newcommand{\posa}{polymorphically order-sorted algebra\xspace} -\newcommand{\polyosalg}{\textrm{\rm \textbf{PolyOSAlg}$_{\SigO}$}} -\newcommand{\polyalg}{\textrm{\rm \textbf{PolyAlg}$_{\SigM}$}} -\newcommand{\SigO}{\textrm{$\Sigma_{\textit{os}}$}\xspace} -\newcommand{\FuO}{\textrm{$F$}\xspace} -\newcommand{\SigM}{\textrm{$\Sigma_{\textit{ms}}$}\xspace} -\newcommand{\FuM}{\textrm{$F$}\xspace} -\newcommand{\Sig}{\textrm{$\Sigma$}\xspace} -\newcommand{\SigE}{\textrm{$\Sigma_{\textit{ext}}$}\xspace} -\newcommand{\objprogram}{\textrm{$<\Sig, \, E>$}\xspace} - -% -% Algebren -% -\let\oldsqsubseteq=\sqsubseteq -\renewcommand{\sqsubseteq}{\leq} -\def\alg#1#2{\textrm{{\rm (}$#1;#2${\rm )}}\xspace} -\def\algm#1#2{(#1;#2)} -\def\algME#1{\alg{#1}{\alpha}} -\def\algABB#1{\alg{A}{#1}} -\def\algebra{\alg{A}{\alpha}} -\def\termalg{\mbox{$\algm{T_{\text{\rm posig}}}{\iota}$}} -\def\termalgm#1{\algm{T_{\text{#1}}}{\iota_{\text{#1}}}} -\def\OStermsetvar#1{\textrm{$T_{\SigO}#1$}\xspace} -\def\OStermset{\OStermsetvar{(V)}} -\def\OStset{\OStermsetvar{}\xspace} -\def\OStermsettypevar#1#2{\textrm{$T^{#1}_{\SigO}#2$}\xspace} -\def\OStermsettype#1{\OStermsettypevar{#1}{(V)}} -\def\ops{\exp{Ops}{A}} -\def\exp#1#2{#1(\,#2\,)\xspace} -%\def\exptt#1#2{\exp{\text{\tt #1}}{\text{\tt #2}}} -\def\exptt#1#2{\exp{\mbox{$\mathtt{#1}$}}{\mbox{$\mathtt{#2}$}}} -\def\expsyn#1#2{\exp{\syn{#1}}{\syn{#2}}} -\def\expbf#1#2{\exp{\text{\bf #1}}{#2}} -\def\expsf#1#2{\exp{\text{\sf #1}}{#2}} -\def\exptype#1#2{#1\textrm{{\tt <}}#2\textrm{{\tt >}}\xspace} -\def\exptypett#1#2{\mathtt{#1}\textrm{{\tt <}}\mathtt{#2}\textrm{{\tt >}}\xspace} -\def\smalltt#1{\texttt{\small #1}} -\def\term{\textrm{$\exp{f}{t_1, \ \ldots \ ,t_n}$}\xspace} -\def\hverbandm#1#2{\textrm{$(#1,~#2)$}} -\def\partord#1#2{\hverbandm{#1}{#2}\xspace} -\def\eval#1{eval_{\left<#1\right>}\xspace} -\def\evalA{$\eval{\algm{A}{\alpha}}$\xspace} -\def\la#1#2{\mbox{$\lambda#1.#2$}\xspace} -\def\set#1{\{\, #1 \,\}} - -\newcommand{\inletters}[1]{ - \ifx\the - first - \fi} - -%\newcommand{\olsub}{\textrm{$\, \ol{\sqsubseteq} \,$}\xspace} -\newcommand{\olsub}{\textrm{$\, \leq^\ast \,$}\xspace} -\newcommand{\olsubprime}{\textrm{$\, \ol{\sqsubseteq}' \,$}\xspace} -\newcommand{\nolsub}{\textrm{$\, \not\sqsubseteq^* \,$}\xspace} -\newcommand{\hverband}{\partord{S}{\sqsubseteq}\xspace} -\newcommand{\qverband}{\partord{\exp{\ol{T}_{\Theta}}{V}}{\olsub}} -\newcommand{\cloqverband}{\partord{\exp{T_{\Theta}}{V}}{\olsub}} -\newcommand{\hord}{\mbox{$(S,~\sqsubseteq)$}\xspace} -\def\einschr#1{|_{#1}} -%\newcommand{\lsem}{[\hspace*{-0.3ex}[} -%\newcommand{\rsem}{]\hspace*{-0.3ex}]} -\newcommand{\lsem}{\llbracket\hspace{.5ex}} -\newcommand{\rsem}{\hspace{.5ex}\rrbracket} -\newcommand{\lsemm}{\lsem} -\newcommand{\rsemm}{\rsem} -\newcommand{\semantic}[1]{\lsem #1 \rsem\xspace} -\newcommand{\ol}[1]{\overline{#1}} -\newcommand{\ul}[1]{\underline{#1}} -\newcommand{\dps}{\displaystyle} -\newcommand{\sema}[3]{{\cal #1}_{#2}\semantic{#3}} -\newcommand{\sem}[2]{\sema{#1}{}{#2}\xspace} - -% -% Programming languages -% - -\newcommand{\haskell}{\textsf{Haskell}\xspace} -\newcommand{\gofer}{\textsf{Gofer}\xspace} -\newcommand{\objp}{\mbox{\textsf{OBJ--P}}\xspace} -\newcommand{\java}{\mbox{\textsf{G--JAVA}}\xspace} -\newcommand{\oldjava}{\mbox{\textsf{JAVA}}\xspace} -\newcommand{\javafive}{\mbox{\textsf{JAVA 5.0}}\xspace} -\newcommand{\eclipse}{\mbox{\textsf{eclipse}}\xspace} -\newcommand{\pizza}{\mbox{\textsf{PIZZA}}\xspace} -\newcommand{\gj}{\mbox{\textsf{GJ}}\xspace} -\newcommand{\sml}{\mbox{\textsf{SML}}\xspace} -\newcommand{\ocaml}{\textsf{OCAML}} -\newcommand{\obj}{\mbox{\textsf{OBJ--3}}\xspace} -\newcommand{\objtwo}{\mbox{\textsf{OBJ--2}}\xspace} - -\def\pot#1{{\cal P}(\, #1 \,)\xspace} -\def\partf{\overset{\text{\tiny part}}{\longrightarrow}\xspace} -% -% Deduktionssystem -% -\newcommand{\byrule}[1]{\raisebox{1.5ex}[0ex][0ex]{{{\rm [{\bf \small #1}]}}}} -\newcommand{\byruleok}[1]{\raisebox{1.5ex}[0ex][0ex]{{{\rm \small #1}}}} -\newcommand{\byrulewb}[1]{\raisebox{2.5ex}[0ex][0ex]{{{\rm [{\bf \small #1}]}}}} -\newcommand{\byruleokwb}[1]{\raisebox{2.5ex}[0ex][0ex]{{{\rm \small #1}}}} -\newcommand{\byrulesli}[1]{\raisebox{3.0ex}[0ex][0ex]{{{\rm [{\bf \small #1}]}}}} -\newcommand{\inter}[1]{\bigwedge \hspace{-.55em} \bigwedge_{#1}} - -% -% ARRAY WITH ARGUMENTS -% -\newcommand{\sarray}[2]{\begin{array}[t]{#1} #2 \end{array}} -\newcommand{\sarrayt}[2]{\begin{array}[t]{#1} #2 \end{array}} -\newcommand{\sarrayb}[2]{\begin{array}[b]{#1} #2 \end{array}} -\newcommand{\sarrayo}[2]{\begin{array}{#1} #2 \end{array}} - -% -% INFERENCE RULES -% -\newcommand{\byrulenew}[1]{\raisebox{2.1ex}[0ex][0ex]{{{\rm [{\bf \small #1}]}}}} -\newcommand{\postcond}[1]{\raisebox{2.1ex}[0ex][0ex]{#1}} -\newcommand{\lef}[1]{\multicolumn{1}{@{}l}{#1}} -\newcommand{\ri}[1]{\multicolumn{1}{r@{}}{#1}} -\newcommand{\ce}[1]{\multicolumn{1}{@{}c}{#1}} -\newcommand{\axiom}[2]{\textrm{[}\textbf{\small #1}\textrm{]} & \lef{#2}} -\newcommand{\irule}[4]{& \sarray{c}{#2}\vspace{1ex}\\\cline{2-2} - \vspace{-2ex}\\ \byrulenew{#1} & \sarray{c}{#3} & \postcond{$#4$}} -\newcommand{\irulealign}[6]{& \sarray{#2}{#3}\vspace{1ex}\\\cline{2-2} - \vspace{-2ex}\\ \byrulenew{#1} & \sarray{#4}{#5} & \postcond{$#6$}} -\newenvironment{irules}{$\begin{array}{lcl}}{\end{array}$} - -% -% Kategorien -% -\newcommand{\funs}[1]{\mbox{$F^S_{ERR}$(\, #1 \,)}\xspace} -\newcommand{\funa}[1]{\mbox{$F^A_{ERR}$(\, #1 \,)}\xspace} -\newcommand{\funh}[1]{\mbox{$F^H_{ERR}(\, #1 \,)$}\xspace} - -% -% Typherleitungen -% -%\let\oldrhd=\rhd -%\newcommand{\rder}{\hspace*{0.5ex} \rhd_{\textrm{\tiny $\Sig$}} \hspace{0.5ex}} -\newcommand{\rder}{\hspace*{0.5ex} \rhd \hspace{0.5ex}} -%\newcommand{\lder}{\hspace*{0.5ex} \lhd_{\textrm{\tiny $\Sig$}} \hspace*{0.5ex}} -\newcommand{\lder}{\hspace*{0.5ex} \lhd \hspace*{0.5ex}} -\newcommand{\rderStmt}{\hspace*{0.5ex} \rhd_{Stmt} \hspace*{0.5ex}} -\newcommand{\rderExpr}{\hspace*{0.5ex} \rhd_{Expr} \hspace*{0.5ex}} -\newcommand{\rderIdent}{\hspace*{0.5ex} \rhd_{Id} \hspace*{0.5ex}} -\let\oldblacktriangleright=\blacktriangleright -%\newcommand{\fder}{\hspace*{1ex} \textrm{$\blacktriangleright_{\textsl{\tiny \hspace{-1ex}\Sig}}$}} -\newcommand{\fder}{\hspace*{1ex} \textrm{$\blacktriangleright$}} - -\newcommand{\newtheo}[3]{\newtheorem{#1}[defhalbordnung]{#2} - \begin{#1} {\rm #3} \label{#1} \end{#1}} -\newcommand{\der}[2]{\mbox{$#1 \rhd\ #2$}\xspace} -\newcommand{\derl}[2]{#1 \lhd_{\textrm{\tiny $\Sig$}} #2\xspace} -\newcommand{\derr}[2]{#1 \rhd_{\textrm{\tiny \hspace{-1ex}$\Sig$}} #2\xspace} -\newcommand{\derf}[3]{( \, #1, \, #2 \, ) \fder #3\xspace} - -\newcommand{\deri}[1]{\der{A}{K}{#1}\xspace} -\newcommand{\derif}[1]{\derf{A}{K}{D}{#1}\xspace} -\newcommand{\arity}[3]{\textrm{$\alpha^{(#1,#2)}_{#3}$}\xspace} -\newcommand{\coarity}[2]{\textrm{$\beta^{(#1,#2)}$}\xspace} -\newcommand{\sodaprg}{\textrm{$(\,\textsl{csig},\ D\,)$\xspace}} - -% -% Typen -% -\newcommand{\typ}[3]{\textrm{$ #1 \times \ldots \times #2 \rightarrow #3$}\xspace} -\newcommand{\syn}[1]{{\rm \texttt{\small #1}}} -\newcommand{\sigmatyp}{\typ{\sigma_1}{\sigma_n}{\sigma}\xspace} -\newcommand{\sigmadef}{\mbox{$\sigma_1 \times \ldots \times \sigma_n$}\xspace} -\newcommand{\tautyp}{\typ{\tau_1}{\tau_n}{\tau}\xspace} -\newcommand{\tautypsup}[1]{\typ{\tau^{#1}_1}{\tau^{#1}_n}{\tau^{#1}}\xspace} -\newcommand{\taudef}{\mbox{$\tau_1 \times \ldots \times \tau_n$}\xspace} -\newcommand{\thetatyp}{\typ{\theta_1}{\theta_n}{\theta_0}\xspace} -\newcommand{\type}{\text{$\text{TYPE}(\,S,\ V\,)$}\xspace} -\newcommand{\typea}{\text{$\text{TYPE}_T(\,S,\ V\,)$}\xspace} -\newcommand{\ptype}{{\rm \expsf{Type}{\normalbtermset}}\xspace} -\newcommand{\ptypea}{\text{$\text{TYPE}_T(\,\Theta,\ V\,)$}\xspace} -\newcommand{\types}{\text{$\text{TYPE}_s(\,S,\ \Gamma\,)$}\xspace} - -\newcommand{\epsbox}[2]{ - %\begin{center} - \setlength{\fboxsep}{4mm} - \fbox{\epsfxsize=#1 \epsfbox{#2}} - %\end{center} - } - -\newcommand{\epsxybox}[3]{ - \begin{minipage}[t]{#1} - \setlength{\fboxsep}{4mm} - \fbox{\epsfysize=#2 \epsfbox{#3}} - \end{minipage}} - -\newenvironment{program}{\begin{alltt}\small} - {\normalsize\end{alltt}\vspace*{-1em}} -\floatstyle{plain} -\newfloat{soda}{htp}{lop} -\floatname{soda}{SODA-Program} - -%\sodaprog -% 1. width -% 2. figure -% 3. file -\newcommand{\sodaprog}[3]{ - \begin{figure}%[#2] - %\begin{center} - \begin{Sbox} - \begin{minipage}{#1} - \small - \begin{alltt} - \verbatiminput{#3.soda} - \end{alltt} - \normalsize - \end{minipage} - \end{Sbox} - \setlength{\fboxsep}{2mm} - \fbox{\TheSbox} - %\end{center} - \caption{SODA module \texttt{#3}} - \label{fig:#3} - \end{figure} - } - -% -% Theorem -% -\newcommand{\QED}{\rule{1.1ex}{1.1ex}} -%\newenvironment{proof}{\par \bigskip \noindent {\bf Proof:} -% }{\mbox{ } \hfill \QED \par \smallskip} -%\newenvironment{remark}{\par \bigskip \noindent {\bf Remark} -% }{\par \smallskip} -%\newtheorem{definition}{Definition}[section] -%\newtheorem{example}[definition]{Example} -%\newtheorem{theorem}[definition]{Theorem} -%\newtheorem{corollary}[definition]{Corollary} -%\newtheorem{lemma}[definition]{Lemma} -%\newtheorem{algorithm}[definition]{Algorithm} -%\newenvironment{abstract}{\small \begin{center} {\bf Abstract}\\[2ex] - %\begin{minipage}{0.85\textwidth}}{\end{minipage} \end{center}} -\newenvironment{Zusammenfassung}{\small \begin{center} {\bf Zusammenfassung}\\[2ex] - \begin{minipage}{0.85\textwidth}}{\end{minipage} \end{center}} -\newlength{\level} -\newlength{\wid} - - -%\newcommand{\thelb}{ -\def\notunlhd{\mathrel{\unlhd\!\!\!\!\!\mid}} -\def\In#1#2{#1 \! \in \! #2} -\def\Leq#1#2#3{#1 \! \leqslant \! #2 \! \leqslant \! #3} -\def\Lequ#1#2#3{#1 \leqslant #2 \leqslant #3} -\newcommand{\ma}[1]{\text{``}#1\text{''}\xspace} -\newcommand{\ttm}[1]{\mbox{\tt #1}\xspace} -\newcommand{\ret}[2]{\ttm{r}^{\ttm{\footnotesize #1}}_{\ttm{\footnotesize #2}}\xspace} -\newcommand{\retm}[2]{\ttm{r}^{#1}_{#2}\xspace} -\newcommand{\re}[2]{\displaystyle r^{#1}_{#2}\xspace} -\newlength{\qwert} -%\newcommand{\htext}[1]{\settowidth{\qwert}{#1} \addtolength{\qwert}{-0.65ex} \hspace*{\qwert}} -\newcommand{\htext}[1]{\settowidth{\qwert}{#1} \hspace*{\qwert}} -\newcommand{\leng}[1]{\settowidth{\qwert}{#1} \qwert} -\newcommand{\ldo}{, \ldots , } - - -% -% Algorithmus -% -\newcommand{\nll}{\newline\hspace*{\level}} -\newcommand{\nlevel}{\addtolength{\level}{0.4cm}} -\newcommand{\llevel}{\addtolength{\level}{-0.4cm}} -\newcommand{\ifc}[1]{\textbf{if} \nlevel #1 \llevel} -\newcommand{\elsifc}[1]{\textbf{elsif} \nlevel #1 \llevel} -\newcommand{\foreachc}[2]{\textbf{foreach} #1 \nlevel #2 \llevel} -\newcommand{\thenc}[1]{\textbf{then} \nlevel #1 \llevel} -\newcommand{\ifthenc}[2]{\textbf{if} #1 \textbf{then} \nlevel #2 \llevel} -\newcommand{\elsec}[1]{\textbf{else} \nlevel #1 \llevel} -\newcommand{\eifc}{\textbf{endif}\\} -\newcommand{\casec}[2]{\fbox{\textbf{case} #1}\ \nlevel \nlevel #2 \llevel \llevel} -\newcommand{\letc}[2]{\textbf{let} \nlevel \\ #1 = \nlevel #2 \llevel \llevel} -\newcommand{\letbf}[1]{\textbf{let} \nlevel \\ #1 \llevel} -\newcommand{\inc}[1]{\textbf{in} \nlevel #1 \llevel \nopagebreak\\ \textbf{end}} -\newcommand{\lam}[2]{\textbf{fn } #1 \textrm{$\, \Rightarrow \,$} #2} -\newcommand{\inputc}[1]{\nll \textbf{Input:} \nlevel #1 \llevel} -\newcommand{\outputc}[1]{\nll \textbf{Output:} \nlevel #1 \llevel} -%\newcommand{\letforeachc}[3]{\textbf{let-foreach} \nlevel #1:\\ \ul{#2} = \nlevel #3 \llevel \llevel} -\newcommand{\letforeachc}[3]{\textbf{let-foreach} \nlevel #1:\\ #2 = \nlevel #3 \llevel \llevel} -%\newcommand{\letuc}[2]{\textbf{let} \nlevel \\ \ul{#1} = \nlevel #2 \llevel \llevel} -\newcommand{\letuc}[2]{\textbf{let} \nlevel \\ #1 = \nlevel #2 \llevel \llevel} -\newcommand{\letoeq}[3]{\textbf{let} \nlevel \\ #1 #2 \nlevel #3 \llevel \llevel} -\newcommand{\letoeqol}[3]{\nlevel \\ #1 #2 \nlevel #3 \llevel \llevel} -%\newcommand{\letu}[2]{\nlevel\\ \ul{#1} = \nlevel #2 \llevel\llevel} -\newcommand{\letu}[2]{\nlevel\\ #1 = \nlevel #2 \llevel\llevel} -\newcommand{\letnc}[2]{\nlevel\\ #1 = \nlevel #2 \llevel\llevel} -\newcommand{\misc}[1]{\nlevel\\ #1 \llevel} -\newcommand{\least}{\textrm{$\top$}\xspace} -\newenvironment{algocommands}{ - \setlength{\level}{2mm} - \renewcommand{\\}{\nll} - \noindent - }{\renewcommand{\\}{\newline} - \vspace{1ex} - } -\newenvironment{algo}{\begin{algorithm} \rm %\mbox{}\\ - \begin{algocommands} - }{\end{algocommands} - \end{algorithm} - } - -\newenvironment{boxedalgo}{ - \begin{Sbox} - \begin{minipage}{\textwid} - \begin{algo} - }{\end{algo} - \end{minipage} - \end{Sbox} - \fbox{\TheSbox} - } - -\newenvironment{Liste}{\begin{list}{\textbf{--}}{ - \setlength{\parsep}{0pt plus0.0ex} - \setlength{\labelwidth}{2ex} - \setlength{\itemsep}{0pt} - \setlength{\leftmargin}{\labelsep +\labelwidth} - }}{\normalsize \end{list}} - - -\newcounter{ficall} -\setcounter{ficall}{0} -\newcommand{\ficall}[1]{\addtocounter{ficall}{1}\subsubsection*{(\theficall) \ - #1} -\setcounter{secall}{0} -\setcounter{thicall}{0} -\setcounter{focall}{0} -\setcounter{fifcall}{0} -\setcounter{sixcall}{0} -\setcounter{sevcall}{0} -\setcounter{eigcall}{0} -\setcounter{nicall}{0} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcommand{\reficall}[1]{\subsubsection*{(\theficall) \ - #1}} -\newcounter{fifinum} -\newcommand{\finumset}{\setcounter{fifinum}{\value{ficall}}} -\newcommand{\finum}{\thefifinum} -\newcounter{fifinumold} -\newcommand{\finumoldset}{ - \setcounter{fifinumold}{\value{fifinum}} -} -\newcommand{\finumold}{\thesefinumold} - -\newcounter{secall} -\setcounter{secall}{0} -\newcounter{sefinum}\newcounter{sesenum} -\newcommand{\senumset}{\setcounter{sefinum}{\value{ficall}}\setcounter{sesenum}{\value{secall}}} -\newcommand{\secall}[1]{\addtocounter{secall}{1}\subsubsection*{(\theficall.\thesecall) \ #1} -\setcounter{thicall}{0} -\setcounter{focall}{0} -\setcounter{fifcall}{0} -\setcounter{sixcall}{0} -\setcounter{sevcall}{0} -\setcounter{eigcall}{0} -\setcounter{nicall}{0} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcommand{\resecall}[1]{\subsubsection*{(\theficall.\thesecall) \ #1}} -\newcommand{\senum}{\thesefinum.\thesesenum} -\newcounter{sefinumold} -\newcounter{sesenumold} -\newcommand{\senumoldset}{ - \setcounter{sefinumold}{\value{sefinum}} - \setcounter{sesenumold}{\value{sesenum}} -} -\newcommand{\senumold}{\thesefinumold.\thesesenumold} - -\newcounter{thicall} -\setcounter{thicall}{0} -\newcounter{thifinum}\newcounter{thisenum}\newcounter{thithinum} -\newcommand{\thinumset}{\setcounter{thifinum}{\value{ficall}}\setcounter{thisenum}{\value{secall}}\setcounter{thithinum}{\value{thicall}}} -\newcommand{\thicall}[1]{\addtocounter{thicall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall) \ #1} -\setcounter{focall}{0} -\setcounter{fifcall}{0} -\setcounter{sixcall}{0} -\setcounter{sevcall}{0} -\setcounter{eigcall}{0} -\setcounter{nicall}{0} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcommand{\rethicall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall) \ #1}} -\newcommand{\thinum}{\thethifinum.\thethisenum.\thethithinum} - -\newcounter{focall} -\setcounter{focall}{0} -\newcounter{fofinum}\newcounter{fosenum}\newcounter{fothinum}\newcounter{fofonum} -\newcommand{\focall}[1]{\addtocounter{focall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall) \ #1} -\setcounter{fifcall}{0} -\setcounter{sixcall}{0} -\setcounter{sevcall}{0} -\setcounter{eigcall}{0} -\setcounter{nicall}{0} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcommand{\fonumset}{\setcounter{fofinum}{\value{ficall}}\setcounter{fosenum}{\value{secall}}\setcounter{fothinum}{\value{thicall}}\setcounter{fofonum}{\value{focall}}} -\newcommand{\fonum}{\thefofinum.\thefosenum.\thefothinum.\thefofonum} -\newcommand{\refocall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall) \ #1}} - -\newcounter{fifcall} -\setcounter{fifcall}{0} -\newcommand{\fifcall}[1]{\addtocounter{fifcall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall) \ #1} -\setcounter{sixcall}{0} -\setcounter{sevcall}{0} -\setcounter{eigcall}{0} -\setcounter{nicall}{0} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcounter{fiffinum}\newcounter{fifsenum}\newcounter{fifthinum}\newcounter{fiffonum}\newcounter{fiffifnum} -\newcommand{\fifnumset}{\setcounter{fiffinum}{\value{ficall}}\setcounter{fifsenum}{\value{secall}}\setcounter{fifthinum}{\value{thicall}}\setcounter{fiffonum}{\value{focall}}\setcounter{fiffifnum}{\value{fifcall}}} -\newcommand{\fifnum}{\thefiffinum.\thefifsenum.\thefifthinum.\thefiffonum.\thefiffifnum} -\newcommand{\refifcall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall) \ #1}} -\newcounter{fiffinumold} -\newcounter{fifsenumold} -\newcounter{fifthinumold} -\newcounter{fiffonumold} -\newcounter{fiffifnumold} -\newcommand{\fifnumoldset}{ - \setcounter{fiffinumold}{\value{fiffinum}} - \setcounter{fifsenumold}{\value{fifsenum}} - \setcounter{fifthinumold}{\value{fifthinum}} - \setcounter{fiffonumold}{\value{fiffonum}} - \setcounter{fiffifnumold}{\value{fiffifnum}} -} -\newcommand{\fifnumold}{\thefiffinumold.\thefifsenumold.\thefifthinumold.\thefiffonumold.\thefiffifnumold} - -\newcounter{fiffinumoldold} -\newcounter{fifsenumoldold} -\newcounter{fifthinumoldold} -\newcounter{fiffonumoldold} -\newcounter{fiffifnumoldold} -\newcommand{\fifnumoldoldset}{ - \setcounter{fiffinumoldold}{\value{fiffinum}} - \setcounter{fifsenumoldold}{\value{fifsenum}} - \setcounter{fifthinumoldold}{\value{fifthinum}} - \setcounter{fiffonumoldold}{\value{fiffonum}} - \setcounter{fiffifnumoldold}{\value{fiffifnum}} -} -\newcommand{\fifnumoldold}{\thefiffinumoldold.\thefifsenumoldold.\thefifthinumoldold.\thefiffonumoldold.\thefiffifnumoldold} - -\newcounter{sixcall} -\setcounter{sixcall}{0} -\newcommand{\sixcall}[1]{\addtocounter{sixcall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall) \ #1} -\setcounter{sevcall}{0} -\setcounter{eigcall}{0} -\setcounter{nicall}{0} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcounter{sixfinum} -\newcounter{sixsenum} -\newcounter{sixthinum} -\newcounter{sixfonum} -\newcounter{sixfifnum} -\newcounter{sixsixnum} -\newcommand{\sixnumset}{ - \setcounter{sixfinum}{\value{ficall}} - \setcounter{sixsenum}{\value{secall}} - \setcounter{sixthinum}{\value{thicall}} - \setcounter{sixfonum}{\value{focall}} - \setcounter{sixfifnum}{\value{fifcall}} - \setcounter{sixsixnum}{\value{sixcall}} - } -\newcommand{\sixnum}{\thesixfinum.\thesixsenum.\thesixthinum.\thesixfonum.\thesixfifnum.\thesixsixnum} -\newcommand{\resixcall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall) \ #1}} - -\newcounter{sevcall} -\setcounter{sevcall}{0} -\newcommand{\sevcall}[1]{\addtocounter{sevcall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall) \ #1} -\setcounter{eigcall}{0} -\setcounter{nicall}{0} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcounter{sevfinum} -\newcounter{sevsenum} -\newcounter{sevthinum} -\newcounter{sevfonum} -\newcounter{sevfifnum} -\newcounter{sevsixnum} -\newcounter{sevsevnum} -\newcommand{\sevnumset}{ - \setcounter{sevfinum}{\value{ficall}} - \setcounter{sevsenum}{\value{secall}} - \setcounter{sevthinum}{\value{thicall}} - \setcounter{sevfonum}{\value{focall}} - \setcounter{sevfifnum}{\value{fifcall}} - \setcounter{sevsixnum}{\value{sixcall}} - \setcounter{sevsevnum}{\value{sevcall}} - } -\newcommand{\sevnum}{\thesevfinum.\thesevsenum.\thesevthinum.\thesevfonum.\thesevfifnum.\thesevsixnum.\thesevsevnum} -\newcommand{\resevcall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall) \ #1}} - -\newcounter{eigcall} -\newcounter{eigfinum}\newcounter{eigsenum}\newcounter{eigthinum}\newcounter{eigfonum}\newcounter{eigfifnum}\newcounter{eigsixnum}\newcounter{eigsevnum}\newcounter{eigeignum} -\setcounter{eigcall}{0} -\newcommand{\eignumset}{\setcounter{eigfinum}{\value{ficall}}\setcounter{eigsenum}{\value{secall}}\setcounter{eigthinum}{\value{thicall}}\setcounter{eigfonum}{\value{focall}}\setcounter{eigfifnum}{\value{fifcall}}\setcounter{eigsixnum}{\value{sixcall}}\setcounter{eigsevnum}{\value{sevcall}}\setcounter{eigeignum}{\value{eigcall}}} -\newcommand{\eignum}{\theeigfinum.\theeigsenum.\theeigthinum.\theeigfonum.\theeigfifnum.\theeigsixnum.\theeigsevnum.\theeigeignum} -\newcommand{\eigcall}[1]{\addtocounter{eigcall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall) \ #1} -\setcounter{nicall}{0} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcommand{\reeigcall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall) \ #1}} - -\newcounter{nicall} -\newcounter{nifinum}\newcounter{nisenum}\newcounter{nithinum}\newcounter{nifonum}\newcounter{nififnum}\newcounter{nisixnum}\newcounter{nisevnum}\newcounter{nieignum}\newcounter{nininum} -\setcounter{nicall}{0} -\newcommand{\ninumset}{\setcounter{nifinum}{\value{ficall}}\setcounter{nisenum}{\value{secall}}\setcounter{nithinum}{\value{thicall}}\setcounter{nifonum}{\value{focall}}\setcounter{nififnum}{\value{fifcall}}\setcounter{nisixnum}{\value{sixcall}}\setcounter{nisevnum}{\value{sevcall}}\setcounter{nieignum}{\value{eigcall}}\setcounter{nininum}{\value{nicall}}} -\newcommand{\ninum}{\thenifinum.\thenisenum.\thenithinum.\thenifonum.\thenififnum.\thenisixnum.\thenisevnum.\thenieignum.\thenininum} -\newcommand{\nicall}[1]{\addtocounter{nicall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall) - \ #1} -\setcounter{tencall}{0} -\setcounter{elecall}{0} -} -\newcommand{\renicall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall) - \ #1}} -\newcounter{nifinumold} -\newcounter{nisenumold} -\newcounter{nithinumold} -\newcounter{nifonumold} -\newcounter{nififnumold} -\newcounter{nisixnumold} -\newcounter{nisevnumold} -\newcounter{nieignumold} -\newcounter{nininumold} -\newcommand{\ninumoldset}{ - \setcounter{nifinumold}{\value{nifinum}} - \setcounter{nisenumold}{\value{nisenum}} - \setcounter{nithinumold}{\value{nithinum}} - \setcounter{nifonumold}{\value{nifonum}} - \setcounter{nififnumold}{\value{nififnum}} - \setcounter{nisixnumold}{\value{nisixnum}} - \setcounter{nisevnumold}{\value{nisevnum}} - \setcounter{nieignumold}{\value{nieignum}} - \setcounter{nininumold}{\value{nininum}} -} -\newcommand{\ninumold}{\thenifinumold.\thenisenumold.\thenithinumold.\thenifonumold.\thenififnumold.\thenisixnumold.\thenisevnumold.\thenieignumold.\thenininumold} - - -\newcounter{tencall} -\setcounter{tencall}{0} -\newcommand{\tencall}[1]{\addtocounter{tencall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall.\thetencall) - \ #1} -\setcounter{elecall}{0} -} -\newcommand{\retencall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall.\thetencall) - \ #1}} -\newcounter{tenfinum} -\newcounter{tensenum} -\newcounter{tenthinum} -\newcounter{tenfonum} -\newcounter{tenfifnum} -\newcounter{tensixnum} -\newcounter{tensevnum} -\newcounter{teneignum} -\newcounter{tenninum} -\newcounter{tentennum} -\newcommand{\tennumset}{ - \setcounter{tenfinum}{\value{ficall}} - \setcounter{tensenum}{\value{secall}} - \setcounter{tenthinum}{\value{thicall}} - \setcounter{tenfonum}{\value{focall}} - \setcounter{tenfifnum}{\value{fifcall}} - \setcounter{tensixnum}{\value{sixcall}} - \setcounter{tensevnum}{\value{sevcall}} - \setcounter{teneignum}{\value{eigcall}} - \setcounter{tenninum}{\value{nicall}} - \setcounter{tentennum}{\value{tencall}}} -\newcommand{\tennum}{\thetenfinum.\thetensenum.\thetenthinum.\thetenfonum.\thetenfifnum.\thetensixnum.\thetensevnum.\theteneignum.\thetenninum.\thetentennum} - -\newcounter{elecall} -\setcounter{elecall}{0} -\newcommand{\elecall}[1]{\addtocounter{elecall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall.\thetencall.\theelecall) \ #1}} -\newcounter{elefinum} -\newcounter{elesenum} -\newcounter{elethinum} -\newcounter{elefonum} -\newcounter{elefifnum} -\newcounter{elesixnum} -\newcounter{elesevnum} -\newcounter{eleeignum} -\newcounter{eleninum} -\newcounter{eletennum} -\newcounter{eleelenum} -\newcommand{\elenumset}{ - \setcounter{elefinum}{\value{ficall}} - \setcounter{elesenum}{\value{secall}} - \setcounter{elethinum}{\value{thicall}} - \setcounter{elefonum}{\value{focall}} - \setcounter{elefifnum}{\value{fifcall}} - \setcounter{elesixnum}{\value{sixcall}} - \setcounter{elesevnum}{\value{sevcall}} - \setcounter{eleeignum}{\value{eigcall}} - \setcounter{eleninum}{\value{nicall}} - \setcounter{eletennum}{\value{tencall}} - \setcounter{eleelenum}{\value{elecall}} - } -\newcommand{\elenum}{\theelefinum.\theelesenum.\theelethinum.\theelefonum.\theelefifnum.\theelesixnum.\theelesevnum.\theeleeignum.\theeleninum.\theeletennum.\theeleelenum} \ No newline at end of file diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 8099110c..00000000 --- a/TODO.md +++ /dev/null @@ -1,2 +0,0 @@ -Nächste Aufgaben: - diff --git a/antlr/Java8.g4 b/antlr/Java8.g4 deleted file mode 100644 index 6810eb44..00000000 --- a/antlr/Java8.g4 +++ /dev/null @@ -1,1028 +0,0 @@ -/* - [The "BSD licence"] - Copyright (c) 2014 Terence Parr, Sam Harwell - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** A Java 8 grammar for ANTLR v4 derived from ANTLR v3 Java grammar. - * Follows syntax from spec: - * http://docs.oracle.com/javase/specs/jls/se8/html/jls-19.html - * Uses ANTLR v4's left-recursive expression notation. - * - * You can test with - * - * $ antlr4 Java.g4 - * $ javac *.java - * $ grun Java compilationUnit *.java - * - * Or, -~/antlr/code/grammars-v4/java8 $ j Test . -/Users/parrt/antlr/code/grammars-v4/java8/./Java8BaseListener.java -/Users/parrt/antlr/code/grammars-v4/java8/./Java8Lexer.java -/Users/parrt/antlr/code/grammars-v4/java8/./Java8Listener.java -/Users/parrt/antlr/code/grammars-v4/java8/./Java8Parser.java -/Users/parrt/antlr/code/grammars-v4/java8/./Test.java -Total lexer+parser time 384ms. - */ -grammar Java8; - -// starting point for parsing a java file -compilationUnit - : packageDeclaration? importDeclaration* typeDeclaration* EOF - ; - -packageDeclaration - : annotation* 'package' qualifiedName ';' - ; - -importDeclaration - : 'import' 'static'? qualifiedName ('.' '*')? ';' - ; - -typeDeclaration - : classOrInterfaceModifier* classDeclaration - | classOrInterfaceModifier* enumDeclaration - | classOrInterfaceModifier* interfaceDeclaration - | classOrInterfaceModifier* annotationTypeDeclaration - | ';' - ; - -modifier - : classOrInterfaceModifier - | ( 'native' - | 'synchronized' - | 'transient' - | 'volatile' - ) - ; - -classOrInterfaceModifier - : annotation // class or interface - | ( 'public' // class or interface - | 'protected' // class or interface - | 'private' // class or interface - | 'static' // class or interface - | 'abstract' // class or interface - | 'final' // class only -- does not apply to interfaces - | 'strictfp' // class or interface - ) - ; - -variableModifier - : 'final' - | annotation - ; - -classDeclaration - : 'class' Identifier typeParameters? - ('extends' type)? - ('implements' typeList)? - classBody - ; - -typeParameters - : '<' typeParameter (',' typeParameter)* '>' - ; - -typeParameter - : Identifier ('extends' typeBound)? - ; - -typeBound - : type ('&' type)* - ; - -enumDeclaration - : ENUM Identifier ('implements' typeList)? - '{' enumConstants? ','? enumBodyDeclarations? '}' - ; - -enumConstants - : enumConstant (',' enumConstant)* - ; - -enumConstant - : annotation* Identifier arguments? classBody? - ; - -enumBodyDeclarations - : ';' classBodyDeclaration* - ; - -interfaceDeclaration - : 'interface' Identifier typeParameters? ('extends' typeList)? interfaceBody - ; - -typeList - : type (',' type)* - ; - -classBody - : '{' classBodyDeclaration* '}' - ; - -interfaceBody - : '{' interfaceBodyDeclaration* '}' - ; - -classBodyDeclaration - : ';' - | 'static'? block - | modifier* memberDeclaration - ; - -memberDeclaration - : methodDeclaration - | genericMethodDeclaration - | fieldDeclaration - | constructorDeclaration - | genericConstructorDeclaration - | interfaceDeclaration - | annotationTypeDeclaration - | classDeclaration - | enumDeclaration - ; - -/* We use rule this even for void methods which cannot have [] after parameters. - This simplifies grammar and we can consider void to be a type, which - renders the [] matching as a context-sensitive issue or a semantic check - for invalid return type after parsing. - */ -methodDeclaration - : (type|'void') Identifier formalParameters ('[' ']')* - ('throws' qualifiedNameList)? - ( methodBody - | ';' - ) - ; - -genericMethodDeclaration - : typeParameters methodDeclaration - ; - -constructorDeclaration - : Identifier formalParameters ('throws' qualifiedNameList)? - constructorBody - ; - -genericConstructorDeclaration - : typeParameters constructorDeclaration - ; - -fieldDeclaration - : type variableDeclarators ';' - ; - -interfaceBodyDeclaration - : modifier* interfaceMemberDeclaration - | ';' - ; - -interfaceMemberDeclaration - : constDeclaration - | interfaceMethodDeclaration - | genericInterfaceMethodDeclaration - | interfaceDeclaration - | annotationTypeDeclaration - | classDeclaration - | enumDeclaration - ; - -constDeclaration - : type constantDeclarator (',' constantDeclarator)* ';' - ; - -constantDeclarator - : Identifier ('[' ']')* '=' variableInitializer - ; - -// see matching of [] comment in methodDeclaratorRest -interfaceMethodDeclaration - : (type|'void') Identifier formalParameters ('[' ']')* - ('throws' qualifiedNameList)? - ';' - ; - -genericInterfaceMethodDeclaration - : typeParameters interfaceMethodDeclaration - ; - -variableDeclarators - : variableDeclarator (',' variableDeclarator)* - ; - -variableDeclarator - : variableDeclaratorId ('=' variableInitializer)? - ; - -variableDeclaratorId - : Identifier ('[' ']')* - ; - -variableInitializer - : arrayInitializer - | expression - ; - -arrayInitializer - : '{' (variableInitializer (',' variableInitializer)* (',')? )? '}' - ; - -enumConstantName - : Identifier - ; - -type - : classOrInterfaceType ('[' ']')* - | primitiveType ('[' ']')* - ; - -classOrInterfaceType - : Identifier typeArguments? ('.' Identifier typeArguments? )* - ; - -primitiveType - : 'boolean' - | 'char' - | 'byte' - | 'short' - | 'int' - | 'long' - | 'float' - | 'double' - ; - -typeArguments - : '<' typeArgument (',' typeArgument)* '>' - ; - -typeArgument - : type - | '?' (('extends' | 'super') type)? - ; - -qualifiedNameList - : qualifiedName (',' qualifiedName)* - ; - -formalParameters - : '(' formalParameterList? ')' - ; - -formalParameterList - : formalParameter (',' formalParameter)* (',' lastFormalParameter)? - | lastFormalParameter - ; - -formalParameter - : variableModifier* type variableDeclaratorId - ; - -lastFormalParameter - : variableModifier* type '...' variableDeclaratorId - ; - -methodBody - : block - ; - -constructorBody - : block - ; - -qualifiedName - : Identifier ('.' Identifier)* - ; - -literal - : IntegerLiteral - | FloatingPointLiteral - | CharacterLiteral - | StringLiteral - | BooleanLiteral - | 'null' - ; - -// ANNOTATIONS - -annotation - : '@' annotationName ( '(' ( elementValuePairs | elementValue )? ')' )? - ; - -annotationName : qualifiedName ; - -elementValuePairs - : elementValuePair (',' elementValuePair)* - ; - -elementValuePair - : Identifier '=' elementValue - ; - -elementValue - : expression - | annotation - | elementValueArrayInitializer - ; - -elementValueArrayInitializer - : '{' (elementValue (',' elementValue)*)? (',')? '}' - ; - -annotationTypeDeclaration - : '@' 'interface' Identifier annotationTypeBody - ; - -annotationTypeBody - : '{' (annotationTypeElementDeclaration)* '}' - ; - -annotationTypeElementDeclaration - : modifier* annotationTypeElementRest - | ';' // this is not allowed by the grammar, but apparently allowed by the actual compiler - ; - -annotationTypeElementRest - : type annotationMethodOrConstantRest ';' - | classDeclaration ';'? - | interfaceDeclaration ';'? - | enumDeclaration ';'? - | annotationTypeDeclaration ';'? - ; - -annotationMethodOrConstantRest - : annotationMethodRest - | annotationConstantRest - ; - -annotationMethodRest - : Identifier '(' ')' defaultValue? - ; - -annotationConstantRest - : variableDeclarators - ; - -defaultValue - : 'default' elementValue - ; - -// STATEMENTS / BLOCKS - -block - : '{' blockStatement* '}' - ; - -blockStatement - : localVariableDeclarationStatement - | statement - | typeDeclaration - ; - -localVariableDeclarationStatement - : localVariableDeclaration ';' - ; - -localVariableDeclaration - : variableModifier* type variableDeclarators - ; - -statement - : block - | ASSERT expression (':' expression)? ';' - | 'if' parExpression statement ('else' statement)? - | 'for' '(' forControl ')' statement - | 'while' parExpression statement - | 'do' statement 'while' parExpression ';' - | 'try' block (catchClause+ finallyBlock? | finallyBlock) - | 'try' resourceSpecification block catchClause* finallyBlock? - | 'switch' parExpression '{' switchBlockStatementGroup* switchLabel* '}' - | 'synchronized' parExpression block - | 'return' expression? ';' - | 'throw' expression ';' - | 'break' Identifier? ';' - | 'continue' Identifier? ';' - | ';' - | statementExpression ';' - | Identifier ':' statement - ; - -catchClause - : 'catch' '(' variableModifier* catchType Identifier ')' block - ; - -catchType - : qualifiedName ('|' qualifiedName)* - ; - -finallyBlock - : 'finally' block - ; - -resourceSpecification - : '(' resources ';'? ')' - ; - -resources - : resource (';' resource)* - ; - -resource - : variableModifier* classOrInterfaceType variableDeclaratorId '=' expression - ; - -/** Matches cases then statements, both of which are mandatory. - * To handle empty cases at the end, we add switchLabel* to statement. - */ -switchBlockStatementGroup - : switchLabel+ blockStatement+ - ; - -switchLabel - : 'case' constantExpression ':' - | 'case' enumConstantName ':' - | 'default' ':' - ; - -forControl - : enhancedForControl - | forInit? ';' expression? ';' forUpdate? - ; - -forInit - : localVariableDeclaration - | expressionList - ; - -enhancedForControl - : variableModifier* type Identifier ':' expression - ; - -forUpdate - : expressionList - ; - -// EXPRESSIONS - -parExpression - : '(' expression ')' - ; - -expressionList - : expression (',' expression)* - ; - -statementExpression - : expression - ; - -constantExpression - : expression - ; - -expression - : primary - | expression '.' Identifier - | expression '.' 'this' - | expression '.' 'new' nonWildcardTypeArguments? innerCreator - | expression '.' 'super' superSuffix - | expression '.' explicitGenericInvocation - | expression '[' expression ']' - | expression '(' expressionList? ')' - | 'new' creator - | '(' type ')' expression - | expression ('++' | '--') - | ('+'|'-'|'++'|'--') expression - | ('~'|'!') expression - | expression ('*'|'/'|'%') expression - | expression ('+'|'-') expression - | expression ('<' '<' | '>' '>' '>' | '>' '>') expression - | expression ('<=' | '>=' | '>' | '<') expression - | expression 'instanceof' type - | expression ('==' | '!=') expression - | expression '&' expression - | expression '^' expression - | expression '|' expression - | expression '&&' expression - | expression '||' expression - | expression '?' expression ':' expression - | expression - ( '=' - | '+=' - | '-=' - | '*=' - | '/=' - | '&=' - | '|=' - | '^=' - | '>>=' - | '>>>=' - | '<<=' - | '%=' - ) - expression - ; - -primary - : '(' expression ')' - | 'this' - | 'super' - | literal - | Identifier - | type '.' 'class' - | 'void' '.' 'class' - | nonWildcardTypeArguments (explicitGenericInvocationSuffix | 'this' arguments) - ; - -creator - : nonWildcardTypeArguments createdName classCreatorRest - | createdName (arrayCreatorRest | classCreatorRest) - ; - -createdName - : Identifier typeArgumentsOrDiamond? ('.' Identifier typeArgumentsOrDiamond?)* - | primitiveType - ; - -innerCreator - : Identifier nonWildcardTypeArgumentsOrDiamond? classCreatorRest - ; - -arrayCreatorRest - : '[' - ( ']' ('[' ']')* arrayInitializer - | expression ']' ('[' expression ']')* ('[' ']')* - ) - ; - -classCreatorRest - : arguments classBody? - ; - -explicitGenericInvocation - : nonWildcardTypeArguments explicitGenericInvocationSuffix - ; - -nonWildcardTypeArguments - : '<' typeList '>' - ; - -typeArgumentsOrDiamond - : '<' '>' - | typeArguments - ; - -nonWildcardTypeArgumentsOrDiamond - : '<' '>' - | nonWildcardTypeArguments - ; - -superSuffix - : arguments - | '.' Identifier arguments? - ; - -explicitGenericInvocationSuffix - : 'super' superSuffix - | Identifier arguments - ; - -arguments - : '(' expressionList? ')' - ; - -// LEXER - -// §3.9 Keywords - -ABSTRACT : 'abstract'; -ASSERT : 'assert'; -BOOLEAN : 'boolean'; -BREAK : 'break'; -BYTE : 'byte'; -CASE : 'case'; -CATCH : 'catch'; -CHAR : 'char'; -CLASS : 'class'; -CONST : 'const'; -CONTINUE : 'continue'; -DEFAULT : 'default'; -DO : 'do'; -DOUBLE : 'double'; -ELSE : 'else'; -ENUM : 'enum'; -EXTENDS : 'extends'; -FINAL : 'final'; -FINALLY : 'finally'; -FLOAT : 'float'; -FOR : 'for'; -IF : 'if'; -GOTO : 'goto'; -IMPLEMENTS : 'implements'; -IMPORT : 'import'; -INSTANCEOF : 'instanceof'; -INT : 'int'; -INTERFACE : 'interface'; -LONG : 'long'; -NATIVE : 'native'; -NEW : 'new'; -PACKAGE : 'package'; -PRIVATE : 'private'; -PROTECTED : 'protected'; -PUBLIC : 'public'; -RETURN : 'return'; -SHORT : 'short'; -STATIC : 'static'; -STRICTFP : 'strictfp'; -SUPER : 'super'; -SWITCH : 'switch'; -SYNCHRONIZED : 'synchronized'; -THIS : 'this'; -THROW : 'throw'; -THROWS : 'throws'; -TRANSIENT : 'transient'; -TRY : 'try'; -VOID : 'void'; -VOLATILE : 'volatile'; -WHILE : 'while'; - -// §3.10.1 Integer Literals - -IntegerLiteral - : DecimalIntegerLiteral - | HexIntegerLiteral - | OctalIntegerLiteral - | BinaryIntegerLiteral - ; - -fragment -DecimalIntegerLiteral - : DecimalNumeral IntegerTypeSuffix? - ; - -fragment -HexIntegerLiteral - : HexNumeral IntegerTypeSuffix? - ; - -fragment -OctalIntegerLiteral - : OctalNumeral IntegerTypeSuffix? - ; - -fragment -BinaryIntegerLiteral - : BinaryNumeral IntegerTypeSuffix? - ; - -fragment -IntegerTypeSuffix - : [lL] - ; - -fragment -DecimalNumeral - : '0' - | NonZeroDigit (Digits? | Underscores Digits) - ; - -fragment -Digits - : Digit (DigitOrUnderscore* Digit)? - ; - -fragment -Digit - : '0' - | NonZeroDigit - ; - -fragment -NonZeroDigit - : [1-9] - ; - -fragment -DigitOrUnderscore - : Digit - | '_' - ; - -fragment -Underscores - : '_'+ - ; - -fragment -HexNumeral - : '0' [xX] HexDigits - ; - -fragment -HexDigits - : HexDigit (HexDigitOrUnderscore* HexDigit)? - ; - -fragment -HexDigit - : [0-9a-fA-F] - ; - -fragment -HexDigitOrUnderscore - : HexDigit - | '_' - ; - -fragment -OctalNumeral - : '0' Underscores? OctalDigits - ; - -fragment -OctalDigits - : OctalDigit (OctalDigitOrUnderscore* OctalDigit)? - ; - -fragment -OctalDigit - : [0-7] - ; - -fragment -OctalDigitOrUnderscore - : OctalDigit - | '_' - ; - -fragment -BinaryNumeral - : '0' [bB] BinaryDigits - ; - -fragment -BinaryDigits - : BinaryDigit (BinaryDigitOrUnderscore* BinaryDigit)? - ; - -fragment -BinaryDigit - : [01] - ; - -fragment -BinaryDigitOrUnderscore - : BinaryDigit - | '_' - ; - -// §3.10.2 Floating-Point Literals - -FloatingPointLiteral - : DecimalFloatingPointLiteral - | HexadecimalFloatingPointLiteral - ; - -fragment -DecimalFloatingPointLiteral - : Digits '.' Digits? ExponentPart? FloatTypeSuffix? - | '.' Digits ExponentPart? FloatTypeSuffix? - | Digits ExponentPart FloatTypeSuffix? - | Digits FloatTypeSuffix - ; - -fragment -ExponentPart - : ExponentIndicator SignedInteger - ; - -fragment -ExponentIndicator - : [eE] - ; - -fragment -SignedInteger - : Sign? Digits - ; - -fragment -Sign - : [+-] - ; - -fragment -FloatTypeSuffix - : [fFdD] - ; - -fragment -HexadecimalFloatingPointLiteral - : HexSignificand BinaryExponent FloatTypeSuffix? - ; - -fragment -HexSignificand - : HexNumeral '.'? - | '0' [xX] HexDigits? '.' HexDigits - ; - -fragment -BinaryExponent - : BinaryExponentIndicator SignedInteger - ; - -fragment -BinaryExponentIndicator - : [pP] - ; - -// §3.10.3 Boolean Literals - -BooleanLiteral - : 'true' - | 'false' - ; - -// §3.10.4 Character Literals - -CharacterLiteral - : '\'' SingleCharacter '\'' - | '\'' EscapeSequence '\'' - ; - -fragment -SingleCharacter - : ~['\\] - ; - -// §3.10.5 String Literals - -StringLiteral - : '"' StringCharacters? '"' - ; - -fragment -StringCharacters - : StringCharacter+ - ; - -fragment -StringCharacter - : ~["\\] - | EscapeSequence - ; - -// §3.10.6 Escape Sequences for Character and String Literals - -fragment -EscapeSequence - : '\\' [btnfr"'\\] - | OctalEscape - | UnicodeEscape - ; - -fragment -OctalEscape - : '\\' OctalDigit - | '\\' OctalDigit OctalDigit - | '\\' ZeroToThree OctalDigit OctalDigit - ; - -fragment -UnicodeEscape - : '\\' 'u' HexDigit HexDigit HexDigit HexDigit - ; - -fragment -ZeroToThree - : [0-3] - ; - -// §3.10.7 The Null Literal - -NullLiteral - : 'null' - ; - -// §3.11 Separators - -LPAREN : '('; -RPAREN : ')'; -LBRACE : '{'; -RBRACE : '}'; -LBRACK : '['; -RBRACK : ']'; -SEMI : ';'; -COMMA : ','; -DOT : '.'; - -// §3.12 Operators - -ASSIGN : '='; -GT : '>'; -LT : '<'; -BANG : '!'; -TILDE : '~'; -QUESTION : '?'; -COLON : ':'; -EQUAL : '=='; -LE : '<='; -GE : '>='; -NOTEQUAL : '!='; -AND : '&&'; -OR : '||'; -INC : '++'; -DEC : '--'; -ADD : '+'; -SUB : '-'; -MUL : '*'; -DIV : '/'; -BITAND : '&'; -BITOR : '|'; -CARET : '^'; -MOD : '%'; - -ADD_ASSIGN : '+='; -SUB_ASSIGN : '-='; -MUL_ASSIGN : '*='; -DIV_ASSIGN : '/='; -AND_ASSIGN : '&='; -OR_ASSIGN : '|='; -XOR_ASSIGN : '^='; -MOD_ASSIGN : '%='; -LSHIFT_ASSIGN : '<<='; -RSHIFT_ASSIGN : '>>='; -URSHIFT_ASSIGN : '>>>='; - -// §3.8 Identifiers (must appear after all keywords in the grammar) - -Identifier - : JavaLetter JavaLetterOrDigit* - ; - -fragment -JavaLetter - : [a-zA-Z$_] // these are the "java letters" below 0xFF - | // covers all characters above 0xFF which are not a surrogate - ~[\u0000-\u00FF\uD800-\uDBFF] - {Character.isJavaIdentifierStart(_input.LA(-1))}? - | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF - [\uD800-\uDBFF] [\uDC00-\uDFFF] - {Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))}? - ; - -fragment -JavaLetterOrDigit - : [a-zA-Z0-9$_] // these are the "java letters or digits" below 0xFF - | // covers all characters above 0xFF which are not a surrogate - ~[\u0000-\u00FF\uD800-\uDBFF] - {Character.isJavaIdentifierPart(_input.LA(-1))}? - | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF - [\uD800-\uDBFF] [\uDC00-\uDFFF] - {Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))}? - ; - -// -// Additional symbols not defined in the lexical specification -// - -AT : '@'; -ELLIPSIS : '...'; - -// -// Whitespace and comments -// - -WS : [ \t\r\n\u000C]+ -> skip - ; - -COMMENT - : '/*' .*? '*/' -> skip - ; - -LINE_COMMENT - : '//' ~[\r\n]* -> skip - ; diff --git a/antlr/Java8.tokens b/antlr/Java8.tokens deleted file mode 100644 index 3f62bddf..00000000 --- a/antlr/Java8.tokens +++ /dev/null @@ -1,201 +0,0 @@ -THROW=44 -STATIC=38 -INTERFACE=28 -AND_ASSIGN=93 -BREAK=4 -BYTE=5 -ELSE=15 -IF=22 -ENUM=16 -SUB=82 -BANG=69 -LPAREN=57 -DOT=65 -CASE=6 -AT=101 -LINE_COMMENT=105 -StringLiteral=55 -ELLIPSIS=102 -LBRACK=61 -PUBLIC=35 -THROWS=45 -NullLiteral=56 -RSHIFT_ASSIGN=98 -LBRACE=59 -GOTO=23 -SUB_ASSIGN=90 -SEMI=63 -CHAR=8 -ASSIGN=66 -COMMENT=104 -IMPORT=25 -BITOR=86 -CATCH=7 -MUL_ASSIGN=91 -DOUBLE=14 -PROTECTED=34 -LONG=29 -COMMA=64 -BITAND=85 -PRIVATE=33 -CONTINUE=11 -DIV=84 -FloatingPointLiteral=52 -LE=74 -CharacterLiteral=54 -VOLATILE=49 -EXTENDS=17 -INSTANCEOF=26 -NEW=31 -ADD=81 -LT=68 -CLASS=9 -DO=13 -FINALLY=19 -Identifier=100 -CONST=10 -PACKAGE=32 -OR_ASSIGN=94 -TRY=47 -IntegerLiteral=51 -SYNCHRONIZED=42 -MUL=83 -FOR=21 -FINAL=18 -RPAREN=58 -CARET=87 -URSHIFT_ASSIGN=99 -BOOLEAN=3 -NOTEQUAL=76 -RBRACK=62 -RBRACE=60 -AND=77 -THIS=43 -SWITCH=41 -VOID=48 -TRANSIENT=46 -INC=79 -FLOAT=20 -NATIVE=30 -DIV_ASSIGN=92 -BooleanLiteral=53 -ABSTRACT=1 -STRICTFP=39 -INT=27 -QUESTION=71 -RETURN=36 -LSHIFT_ASSIGN=97 -ADD_ASSIGN=89 -WS=103 -GE=75 -SUPER=40 -OR=78 -DEC=80 -MOD=88 -XOR_ASSIGN=95 -ASSERT=2 -EQUAL=73 -IMPLEMENTS=24 -COLON=72 -GT=67 -SHORT=37 -MOD_ASSIGN=96 -WHILE=50 -TILDE=70 -DEFAULT=12 -'import'=25 -'-'=82 -')'=58 -'super'=40 -'else'=15 -'%'=88 -'!'=69 -'>'=67 -'public'=35 -'=='=73 -'--'=80 -'|'=86 -'['=61 -':'=72 -'...'=102 -'throw'=44 -'case'=6 -'.'=65 -'this'=43 -'*'=83 -'switch'=41 -'synchronized'=42 -'&'=85 -'double'=14 -'break'=4 -'short'=37 -'<='=74 -'enum'=16 -'try'=47 -'?'=71 -'if'=22 -'extends'=17 -'goto'=23 -'}'=60 -'instanceof'=26 -';'=63 -'||'=78 -'>>='=98 -'class'=9 -'return'=36 -'&='=93 -'catch'=7 -'native'=30 -'continue'=11 -'strictfp'=39 -'/'=84 -'*='=91 -'+'=81 -'final'=18 -'protected'=34 -'static'=38 -'@'=101 -'transient'=46 -'~'=70 -'assert'=2 -']'=62 -'<'=68 -'++'=79 -'>>>='=99 -'>='=75 -'long'=29 -'boolean'=3 -'const'=10 -'abstract'=1 -'implements'=24 -'volatile'=49 -'throws'=45 -'/='=92 -','=64 -'-='=90 -'do'=13 -'package'=32 -'('=57 -'null'=56 -'int'=27 -'|='=94 -'for'=21 -'^'=87 -'<<='=97 -'='=66 -'byte'=5 -'&&'=77 -'^='=95 -'void'=48 -'while'=50 -'{'=59 -'float'=20 -'!='=76 -'new'=31 -'char'=8 -'finally'=19 -'interface'=28 -'%='=96 -'private'=33 -'+='=89 -'default'=12 diff --git a/antlr/Java8BaseListener.java b/antlr/Java8BaseListener.java deleted file mode 100644 index ba69f6df..00000000 --- a/antlr/Java8BaseListener.java +++ /dev/null @@ -1,1251 +0,0 @@ -// Generated from Java8.g4 by ANTLR 4.4 - -import org.antlr.v4.runtime.ParserRuleContext; -import org.antlr.v4.runtime.misc.NotNull; -import org.antlr.v4.runtime.tree.ErrorNode; -import org.antlr.v4.runtime.tree.TerminalNode; - -/** - * This class provides an empty implementation of {@link Java8Listener}, - * which can be extended to create a listener which only needs to handle a subset - * of the available methods. - */ -public class Java8BaseListener implements Java8Listener { - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterMemberDeclaration(@NotNull Java8Parser.MemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitMemberDeclaration(@NotNull Java8Parser.MemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterDefaultValue(@NotNull Java8Parser.DefaultValueContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitDefaultValue(@NotNull Java8Parser.DefaultValueContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotationTypeElementDeclaration(@NotNull Java8Parser.AnnotationTypeElementDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotationTypeElementDeclaration(@NotNull Java8Parser.AnnotationTypeElementDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterType(@NotNull Java8Parser.TypeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitType(@NotNull Java8Parser.TypeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotationTypeBody(@NotNull Java8Parser.AnnotationTypeBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotationTypeBody(@NotNull Java8Parser.AnnotationTypeBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterGenericInterfaceMethodDeclaration(@NotNull Java8Parser.GenericInterfaceMethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitGenericInterfaceMethodDeclaration(@NotNull Java8Parser.GenericInterfaceMethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterClassBodyDeclaration(@NotNull Java8Parser.ClassBodyDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitClassBodyDeclaration(@NotNull Java8Parser.ClassBodyDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterBlock(@NotNull Java8Parser.BlockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitBlock(@NotNull Java8Parser.BlockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEnumBodyDeclarations(@NotNull Java8Parser.EnumBodyDeclarationsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEnumBodyDeclarations(@NotNull Java8Parser.EnumBodyDeclarationsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterForUpdate(@NotNull Java8Parser.ForUpdateContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitForUpdate(@NotNull Java8Parser.ForUpdateContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEnhancedForControl(@NotNull Java8Parser.EnhancedForControlContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEnhancedForControl(@NotNull Java8Parser.EnhancedForControlContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotationConstantRest(@NotNull Java8Parser.AnnotationConstantRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotationConstantRest(@NotNull Java8Parser.AnnotationConstantRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterExplicitGenericInvocation(@NotNull Java8Parser.ExplicitGenericInvocationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitExplicitGenericInvocation(@NotNull Java8Parser.ExplicitGenericInvocationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterNonWildcardTypeArgumentsOrDiamond(@NotNull Java8Parser.NonWildcardTypeArgumentsOrDiamondContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitNonWildcardTypeArgumentsOrDiamond(@NotNull Java8Parser.NonWildcardTypeArgumentsOrDiamondContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterExpressionList(@NotNull Java8Parser.ExpressionListContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitExpressionList(@NotNull Java8Parser.ExpressionListContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotationTypeElementRest(@NotNull Java8Parser.AnnotationTypeElementRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotationTypeElementRest(@NotNull Java8Parser.AnnotationTypeElementRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterClassOrInterfaceType(@NotNull Java8Parser.ClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitClassOrInterfaceType(@NotNull Java8Parser.ClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTypeBound(@NotNull Java8Parser.TypeBoundContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTypeBound(@NotNull Java8Parser.TypeBoundContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterVariableDeclaratorId(@NotNull Java8Parser.VariableDeclaratorIdContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitVariableDeclaratorId(@NotNull Java8Parser.VariableDeclaratorIdContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterPrimary(@NotNull Java8Parser.PrimaryContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitPrimary(@NotNull Java8Parser.PrimaryContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterClassCreatorRest(@NotNull Java8Parser.ClassCreatorRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitClassCreatorRest(@NotNull Java8Parser.ClassCreatorRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterInterfaceBodyDeclaration(@NotNull Java8Parser.InterfaceBodyDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitInterfaceBodyDeclaration(@NotNull Java8Parser.InterfaceBodyDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTypeArguments(@NotNull Java8Parser.TypeArgumentsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTypeArguments(@NotNull Java8Parser.TypeArgumentsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotationName(@NotNull Java8Parser.AnnotationNameContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotationName(@NotNull Java8Parser.AnnotationNameContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterFinallyBlock(@NotNull Java8Parser.FinallyBlockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitFinallyBlock(@NotNull Java8Parser.FinallyBlockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTypeParameters(@NotNull Java8Parser.TypeParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTypeParameters(@NotNull Java8Parser.TypeParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterLastFormalParameter(@NotNull Java8Parser.LastFormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitLastFormalParameter(@NotNull Java8Parser.LastFormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterConstructorBody(@NotNull Java8Parser.ConstructorBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitConstructorBody(@NotNull Java8Parser.ConstructorBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterLiteral(@NotNull Java8Parser.LiteralContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitLiteral(@NotNull Java8Parser.LiteralContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotationMethodOrConstantRest(@NotNull Java8Parser.AnnotationMethodOrConstantRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotationMethodOrConstantRest(@NotNull Java8Parser.AnnotationMethodOrConstantRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCatchClause(@NotNull Java8Parser.CatchClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCatchClause(@NotNull Java8Parser.CatchClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterVariableDeclarator(@NotNull Java8Parser.VariableDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitVariableDeclarator(@NotNull Java8Parser.VariableDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTypeList(@NotNull Java8Parser.TypeListContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTypeList(@NotNull Java8Parser.TypeListContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEnumConstants(@NotNull Java8Parser.EnumConstantsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEnumConstants(@NotNull Java8Parser.EnumConstantsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterClassBody(@NotNull Java8Parser.ClassBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitClassBody(@NotNull Java8Parser.ClassBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCreatedName(@NotNull Java8Parser.CreatedNameContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCreatedName(@NotNull Java8Parser.CreatedNameContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEnumDeclaration(@NotNull Java8Parser.EnumDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEnumDeclaration(@NotNull Java8Parser.EnumDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterFormalParameter(@NotNull Java8Parser.FormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitFormalParameter(@NotNull Java8Parser.FormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterParExpression(@NotNull Java8Parser.ParExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitParExpression(@NotNull Java8Parser.ParExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotation(@NotNull Java8Parser.AnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotation(@NotNull Java8Parser.AnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterVariableInitializer(@NotNull Java8Parser.VariableInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitVariableInitializer(@NotNull Java8Parser.VariableInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterElementValueArrayInitializer(@NotNull Java8Parser.ElementValueArrayInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitElementValueArrayInitializer(@NotNull Java8Parser.ElementValueArrayInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCreator(@NotNull Java8Parser.CreatorContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCreator(@NotNull Java8Parser.CreatorContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterArrayCreatorRest(@NotNull Java8Parser.ArrayCreatorRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitArrayCreatorRest(@NotNull Java8Parser.ArrayCreatorRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterExpression(@NotNull Java8Parser.ExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitExpression(@NotNull Java8Parser.ExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterConstantExpression(@NotNull Java8Parser.ConstantExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitConstantExpression(@NotNull Java8Parser.ConstantExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterQualifiedNameList(@NotNull Java8Parser.QualifiedNameListContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitQualifiedNameList(@NotNull Java8Parser.QualifiedNameListContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterConstructorDeclaration(@NotNull Java8Parser.ConstructorDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitConstructorDeclaration(@NotNull Java8Parser.ConstructorDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterForControl(@NotNull Java8Parser.ForControlContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitForControl(@NotNull Java8Parser.ForControlContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterSuperSuffix(@NotNull Java8Parser.SuperSuffixContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitSuperSuffix(@NotNull Java8Parser.SuperSuffixContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterVariableDeclarators(@NotNull Java8Parser.VariableDeclaratorsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitVariableDeclarators(@NotNull Java8Parser.VariableDeclaratorsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCatchType(@NotNull Java8Parser.CatchTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCatchType(@NotNull Java8Parser.CatchTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterClassOrInterfaceModifier(@NotNull Java8Parser.ClassOrInterfaceModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitClassOrInterfaceModifier(@NotNull Java8Parser.ClassOrInterfaceModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEnumConstantName(@NotNull Java8Parser.EnumConstantNameContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEnumConstantName(@NotNull Java8Parser.EnumConstantNameContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterModifier(@NotNull Java8Parser.ModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitModifier(@NotNull Java8Parser.ModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterInnerCreator(@NotNull Java8Parser.InnerCreatorContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitInnerCreator(@NotNull Java8Parser.InnerCreatorContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterExplicitGenericInvocationSuffix(@NotNull Java8Parser.ExplicitGenericInvocationSuffixContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitExplicitGenericInvocationSuffix(@NotNull Java8Parser.ExplicitGenericInvocationSuffixContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterVariableModifier(@NotNull Java8Parser.VariableModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitVariableModifier(@NotNull Java8Parser.VariableModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterElementValuePair(@NotNull Java8Parser.ElementValuePairContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitElementValuePair(@NotNull Java8Parser.ElementValuePairContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterArrayInitializer(@NotNull Java8Parser.ArrayInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitArrayInitializer(@NotNull Java8Parser.ArrayInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterElementValue(@NotNull Java8Parser.ElementValueContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitElementValue(@NotNull Java8Parser.ElementValueContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterConstDeclaration(@NotNull Java8Parser.ConstDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitConstDeclaration(@NotNull Java8Parser.ConstDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterResource(@NotNull Java8Parser.ResourceContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitResource(@NotNull Java8Parser.ResourceContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterQualifiedName(@NotNull Java8Parser.QualifiedNameContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitQualifiedName(@NotNull Java8Parser.QualifiedNameContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterResourceSpecification(@NotNull Java8Parser.ResourceSpecificationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitResourceSpecification(@NotNull Java8Parser.ResourceSpecificationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterFormalParameterList(@NotNull Java8Parser.FormalParameterListContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitFormalParameterList(@NotNull Java8Parser.FormalParameterListContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotationTypeDeclaration(@NotNull Java8Parser.AnnotationTypeDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotationTypeDeclaration(@NotNull Java8Parser.AnnotationTypeDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCompilationUnit(@NotNull Java8Parser.CompilationUnitContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCompilationUnit(@NotNull Java8Parser.CompilationUnitContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAnnotationMethodRest(@NotNull Java8Parser.AnnotationMethodRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAnnotationMethodRest(@NotNull Java8Parser.AnnotationMethodRestContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterSwitchBlockStatementGroup(@NotNull Java8Parser.SwitchBlockStatementGroupContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitSwitchBlockStatementGroup(@NotNull Java8Parser.SwitchBlockStatementGroupContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTypeParameter(@NotNull Java8Parser.TypeParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTypeParameter(@NotNull Java8Parser.TypeParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterInterfaceBody(@NotNull Java8Parser.InterfaceBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitInterfaceBody(@NotNull Java8Parser.InterfaceBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterMethodDeclaration(@NotNull Java8Parser.MethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitMethodDeclaration(@NotNull Java8Parser.MethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterMethodBody(@NotNull Java8Parser.MethodBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitMethodBody(@NotNull Java8Parser.MethodBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTypeArgument(@NotNull Java8Parser.TypeArgumentContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTypeArgument(@NotNull Java8Parser.TypeArgumentContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTypeDeclaration(@NotNull Java8Parser.TypeDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTypeDeclaration(@NotNull Java8Parser.TypeDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterGenericConstructorDeclaration(@NotNull Java8Parser.GenericConstructorDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitGenericConstructorDeclaration(@NotNull Java8Parser.GenericConstructorDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterClassDeclaration(@NotNull Java8Parser.ClassDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitClassDeclaration(@NotNull Java8Parser.ClassDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEnumConstant(@NotNull Java8Parser.EnumConstantContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEnumConstant(@NotNull Java8Parser.EnumConstantContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterStatement(@NotNull Java8Parser.StatementContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitStatement(@NotNull Java8Parser.StatementContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterImportDeclaration(@NotNull Java8Parser.ImportDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitImportDeclaration(@NotNull Java8Parser.ImportDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterPrimitiveType(@NotNull Java8Parser.PrimitiveTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitPrimitiveType(@NotNull Java8Parser.PrimitiveTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterInterfaceDeclaration(@NotNull Java8Parser.InterfaceDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitInterfaceDeclaration(@NotNull Java8Parser.InterfaceDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterLocalVariableDeclarationStatement(@NotNull Java8Parser.LocalVariableDeclarationStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitLocalVariableDeclarationStatement(@NotNull Java8Parser.LocalVariableDeclarationStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterBlockStatement(@NotNull Java8Parser.BlockStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitBlockStatement(@NotNull Java8Parser.BlockStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterFieldDeclaration(@NotNull Java8Parser.FieldDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitFieldDeclaration(@NotNull Java8Parser.FieldDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterConstantDeclarator(@NotNull Java8Parser.ConstantDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitConstantDeclarator(@NotNull Java8Parser.ConstantDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterResources(@NotNull Java8Parser.ResourcesContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitResources(@NotNull Java8Parser.ResourcesContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterStatementExpression(@NotNull Java8Parser.StatementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitStatementExpression(@NotNull Java8Parser.StatementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterInterfaceMethodDeclaration(@NotNull Java8Parser.InterfaceMethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitInterfaceMethodDeclaration(@NotNull Java8Parser.InterfaceMethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterPackageDeclaration(@NotNull Java8Parser.PackageDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitPackageDeclaration(@NotNull Java8Parser.PackageDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterElementValuePairs(@NotNull Java8Parser.ElementValuePairsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitElementValuePairs(@NotNull Java8Parser.ElementValuePairsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterLocalVariableDeclaration(@NotNull Java8Parser.LocalVariableDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitLocalVariableDeclaration(@NotNull Java8Parser.LocalVariableDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterNonWildcardTypeArguments(@NotNull Java8Parser.NonWildcardTypeArgumentsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitNonWildcardTypeArguments(@NotNull Java8Parser.NonWildcardTypeArgumentsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterInterfaceMemberDeclaration(@NotNull Java8Parser.InterfaceMemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitInterfaceMemberDeclaration(@NotNull Java8Parser.InterfaceMemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterSwitchLabel(@NotNull Java8Parser.SwitchLabelContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitSwitchLabel(@NotNull Java8Parser.SwitchLabelContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterForInit(@NotNull Java8Parser.ForInitContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitForInit(@NotNull Java8Parser.ForInitContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterFormalParameters(@NotNull Java8Parser.FormalParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitFormalParameters(@NotNull Java8Parser.FormalParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterArguments(@NotNull Java8Parser.ArgumentsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitArguments(@NotNull Java8Parser.ArgumentsContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterGenericMethodDeclaration(@NotNull Java8Parser.GenericMethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitGenericMethodDeclaration(@NotNull Java8Parser.GenericMethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterTypeArgumentsOrDiamond(@NotNull Java8Parser.TypeArgumentsOrDiamondContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitTypeArgumentsOrDiamond(@NotNull Java8Parser.TypeArgumentsOrDiamondContext ctx) { } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEveryRule(@NotNull ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEveryRule(@NotNull ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void visitTerminal(@NotNull TerminalNode node) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void visitErrorNode(@NotNull ErrorNode node) { } -} \ No newline at end of file diff --git a/antlr/Java8Lexer.java b/antlr/Java8Lexer.java deleted file mode 100644 index 91a2c30e..00000000 --- a/antlr/Java8Lexer.java +++ /dev/null @@ -1,515 +0,0 @@ -// Generated from Java8.g4 by ANTLR 4.4 -import org.antlr.v4.runtime.Lexer; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.TokenStream; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.*; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) -public class Java8Lexer extends Lexer { - static { RuntimeMetaData.checkVersion("4.4", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, - CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, - ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, - IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, - NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, - SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, - THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, - WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53, - CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58, - LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65, - ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73, - LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82, - MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ADD_ASSIGN=89, - SUB_ASSIGN=90, MUL_ASSIGN=91, DIV_ASSIGN=92, AND_ASSIGN=93, OR_ASSIGN=94, - XOR_ASSIGN=95, MOD_ASSIGN=96, LSHIFT_ASSIGN=97, RSHIFT_ASSIGN=98, URSHIFT_ASSIGN=99, - Identifier=100, AT=101, ELLIPSIS=102, WS=103, COMMENT=104, LINE_COMMENT=105; - public static String[] modeNames = { - "DEFAULT_MODE" - }; - - public static final String[] tokenNames = { - "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", - "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'", - "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'", - "'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'", - "'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'", - "'\\u001F'", "' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''", - "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "'0'", "'1'", - "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "':'", "';'", - "'<'", "'='", "'>'", "'?'", "'@'", "'A'", "'B'", "'C'", "'D'", "'E'", - "'F'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'", - "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'", - "'Z'", "'['", "'\\'", "']'", "'^'", "'_'", "'`'", "'a'", "'b'", "'c'", - "'d'", "'e'", "'f'", "'g'", "'h'", "'i'" - }; - public static final String[] ruleNames = { - "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR", - "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", - "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", - "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", "PACKAGE", - "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", - "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", - "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", "DecimalIntegerLiteral", - "HexIntegerLiteral", "OctalIntegerLiteral", "BinaryIntegerLiteral", "IntegerTypeSuffix", - "DecimalNumeral", "Digits", "Digit", "NonZeroDigit", "DigitOrUnderscore", - "Underscores", "HexNumeral", "HexDigits", "HexDigit", "HexDigitOrUnderscore", - "OctalNumeral", "OctalDigits", "OctalDigit", "OctalDigitOrUnderscore", - "BinaryNumeral", "BinaryDigits", "BinaryDigit", "BinaryDigitOrUnderscore", - "FloatingPointLiteral", "DecimalFloatingPointLiteral", "ExponentPart", - "ExponentIndicator", "SignedInteger", "Sign", "FloatTypeSuffix", "HexadecimalFloatingPointLiteral", - "HexSignificand", "BinaryExponent", "BinaryExponentIndicator", "BooleanLiteral", - "CharacterLiteral", "SingleCharacter", "StringLiteral", "StringCharacters", - "StringCharacter", "EscapeSequence", "OctalEscape", "UnicodeEscape", "ZeroToThree", - "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", - "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", - "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", - "SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", - "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", - "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "Identifier", - "JavaLetter", "JavaLetterOrDigit", "AT", "ELLIPSIS", "WS", "COMMENT", - "LINE_COMMENT" - }; - - - public Java8Lexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - - @Override - public String getGrammarFileName() { return "Java8.g4"; } - - @Override - public String[] getTokenNames() { return tokenNames; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public String[] getModeNames() { return modeNames; } - - @Override - public ATN getATN() { return _ATN; } - - @Override - public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 140: return JavaLetter_sempred((RuleContext)_localctx, predIndex); - case 141: return JavaLetterOrDigit_sempred((RuleContext)_localctx, predIndex); - } - return true; - } - private boolean JavaLetterOrDigit_sempred(RuleContext _localctx, int predIndex) { - switch (predIndex) { - case 2: return Character.isJavaIdentifierPart(_input.LA(-1)); - case 3: return Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1))); - } - return true; - } - private boolean JavaLetter_sempred(RuleContext _localctx, int predIndex) { - switch (predIndex) { - case 0: return Character.isJavaIdentifierStart(_input.LA(-1)); - case 1: return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1))); - } - return true; - } - - public static final String _serializedATN = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2k\u042e\b\1\4\2\t"+ - "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ - "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ - "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ - ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ - "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ - "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ - "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ - "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ - "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ - "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+ - "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+ - "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+ - "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+ - "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ - "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ - "\4\u0093\t\u0093\4\u0094\t\u0094\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3"+ - "\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5"+ - "\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3"+ - "\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13"+ - "\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r"+ - "\3\r\3\r\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3"+ - "\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3"+ - "\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3"+ - "\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27\3\27\3"+ - "\27\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3"+ - "\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3"+ - "\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3"+ - "\35\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3"+ - "\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3"+ - "\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3"+ - "$\3$\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3"+ - "\'\3(\3(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3"+ - "+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3"+ - "-\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3"+ - "\60\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3"+ - "\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3\64\5\64\u0281\n\64"+ - "\3\65\3\65\5\65\u0285\n\65\3\66\3\66\5\66\u0289\n\66\3\67\3\67\5\67\u028d"+ - "\n\67\38\38\58\u0291\n8\39\39\3:\3:\3:\5:\u0298\n:\3:\3:\3:\5:\u029d\n"+ - ":\5:\u029f\n:\3;\3;\7;\u02a3\n;\f;\16;\u02a6\13;\3;\5;\u02a9\n;\3<\3<"+ - "\5<\u02ad\n<\3=\3=\3>\3>\5>\u02b3\n>\3?\6?\u02b6\n?\r?\16?\u02b7\3@\3"+ - "@\3@\3@\3A\3A\7A\u02c0\nA\fA\16A\u02c3\13A\3A\5A\u02c6\nA\3B\3B\3C\3C"+ - "\5C\u02cc\nC\3D\3D\5D\u02d0\nD\3D\3D\3E\3E\7E\u02d6\nE\fE\16E\u02d9\13"+ - "E\3E\5E\u02dc\nE\3F\3F\3G\3G\5G\u02e2\nG\3H\3H\3H\3H\3I\3I\7I\u02ea\n"+ - "I\fI\16I\u02ed\13I\3I\5I\u02f0\nI\3J\3J\3K\3K\5K\u02f6\nK\3L\3L\5L\u02fa"+ - "\nL\3M\3M\3M\5M\u02ff\nM\3M\5M\u0302\nM\3M\5M\u0305\nM\3M\3M\3M\5M\u030a"+ - "\nM\3M\5M\u030d\nM\3M\3M\3M\5M\u0312\nM\3M\3M\3M\5M\u0317\nM\3N\3N\3N"+ - "\3O\3O\3P\5P\u031f\nP\3P\3P\3Q\3Q\3R\3R\3S\3S\3S\5S\u032a\nS\3T\3T\5T"+ - "\u032e\nT\3T\3T\3T\5T\u0333\nT\3T\3T\5T\u0337\nT\3U\3U\3U\3V\3V\3W\3W"+ - "\3W\3W\3W\3W\3W\3W\3W\5W\u0347\nW\3X\3X\3X\3X\3X\3X\3X\3X\5X\u0351\nX"+ - "\3Y\3Y\3Z\3Z\5Z\u0357\nZ\3Z\3Z\3[\6[\u035c\n[\r[\16[\u035d\3\\\3\\\5\\"+ - "\u0362\n\\\3]\3]\3]\3]\5]\u0368\n]\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\5"+ - "^\u0375\n^\3_\3_\3_\3_\3_\3_\3_\3`\3`\3a\3a\3a\3a\3a\3b\3b\3c\3c\3d\3"+ - "d\3e\3e\3f\3f\3g\3g\3h\3h\3i\3i\3j\3j\3k\3k\3l\3l\3m\3m\3n\3n\3o\3o\3"+ - "p\3p\3q\3q\3r\3r\3r\3s\3s\3s\3t\3t\3t\3u\3u\3u\3v\3v\3v\3w\3w\3w\3x\3"+ - "x\3x\3y\3y\3y\3z\3z\3{\3{\3|\3|\3}\3}\3~\3~\3\177\3\177\3\u0080\3\u0080"+ - "\3\u0081\3\u0081\3\u0082\3\u0082\3\u0082\3\u0083\3\u0083\3\u0083\3\u0084"+ - "\3\u0084\3\u0084\3\u0085\3\u0085\3\u0085\3\u0086\3\u0086\3\u0086\3\u0087"+ - "\3\u0087\3\u0087\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089\3\u008a"+ - "\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c"+ - "\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\7\u008d\u03f4\n\u008d\f\u008d"+ - "\16\u008d\u03f7\13\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+ - "\5\u008e\u03ff\n\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f"+ - "\5\u008f\u0407\n\u008f\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091"+ - "\3\u0092\6\u0092\u0410\n\u0092\r\u0092\16\u0092\u0411\3\u0092\3\u0092"+ - "\3\u0093\3\u0093\3\u0093\3\u0093\7\u0093\u041a\n\u0093\f\u0093\16\u0093"+ - "\u041d\13\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094"+ - "\3\u0094\3\u0094\7\u0094\u0428\n\u0094\f\u0094\16\u0094\u042b\13\u0094"+ - "\3\u0094\3\u0094\3\u041b\2\u0095\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23"+ - "\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31"+ - "\61\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60"+ - "_\61a\62c\63e\64g\65i\2k\2m\2o\2q\2s\2u\2w\2y\2{\2}\2\177\2\u0081\2\u0083"+ - "\2\u0085\2\u0087\2\u0089\2\u008b\2\u008d\2\u008f\2\u0091\2\u0093\2\u0095"+ - "\2\u0097\66\u0099\2\u009b\2\u009d\2\u009f\2\u00a1\2\u00a3\2\u00a5\2\u00a7"+ - "\2\u00a9\2\u00ab\2\u00ad\67\u00af8\u00b1\2\u00b39\u00b5\2\u00b7\2\u00b9"+ - "\2\u00bb\2\u00bd\2\u00bf\2\u00c1:\u00c3;\u00c5<\u00c7=\u00c9>\u00cb?\u00cd"+ - "@\u00cfA\u00d1B\u00d3C\u00d5D\u00d7E\u00d9F\u00dbG\u00ddH\u00dfI\u00e1"+ - "J\u00e3K\u00e5L\u00e7M\u00e9N\u00ebO\u00edP\u00efQ\u00f1R\u00f3S\u00f5"+ - "T\u00f7U\u00f9V\u00fbW\u00fdX\u00ffY\u0101Z\u0103[\u0105\\\u0107]\u0109"+ - "^\u010b_\u010d`\u010fa\u0111b\u0113c\u0115d\u0117e\u0119f\u011b\2\u011d"+ - "\2\u011fg\u0121h\u0123i\u0125j\u0127k\3\2\30\4\2NNnn\3\2\63;\4\2ZZzz\5"+ - "\2\62;CHch\3\2\629\4\2DDdd\3\2\62\63\4\2GGgg\4\2--//\6\2FFHHffhh\4\2R"+ - "Rrr\4\2))^^\4\2$$^^\n\2$$))^^ddhhppttvv\3\2\62\65\6\2&&C\\aac|\4\2\2\u0101"+ - "\ud802\udc01\3\2\ud802\udc01\3\2\udc02\ue001\7\2&&\62;C\\aac|\5\2\13\f"+ - "\16\17\"\"\4\2\f\f\17\17\u043c\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t"+ - "\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2"+ - "\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2"+ - "\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2"+ - "+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2"+ - "\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2"+ - "C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3"+ - "\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2"+ - "\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2"+ - "\u0097\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b3\3\2\2\2\2\u00c1"+ - "\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2"+ - "\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3"+ - "\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2"+ - "\2\2\u00dd\3\2\2\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5"+ - "\3\2\2\2\2\u00e7\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2"+ - "\2\2\u00ef\3\2\2\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7"+ - "\3\2\2\2\2\u00f9\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2"+ - "\2\2\u0101\3\2\2\2\2\u0103\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109"+ - "\3\2\2\2\2\u010b\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2"+ - "\2\2\u0113\3\2\2\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011f"+ - "\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2\2\2\u0127\3\2\2"+ - "\2\3\u0129\3\2\2\2\5\u0132\3\2\2\2\7\u0139\3\2\2\2\t\u0141\3\2\2\2\13"+ - "\u0147\3\2\2\2\r\u014c\3\2\2\2\17\u0151\3\2\2\2\21\u0157\3\2\2\2\23\u015c"+ - "\3\2\2\2\25\u0162\3\2\2\2\27\u0168\3\2\2\2\31\u0171\3\2\2\2\33\u0179\3"+ - "\2\2\2\35\u017c\3\2\2\2\37\u0183\3\2\2\2!\u0188\3\2\2\2#\u018d\3\2\2\2"+ - "%\u0195\3\2\2\2\'\u019b\3\2\2\2)\u01a3\3\2\2\2+\u01a9\3\2\2\2-\u01ad\3"+ - "\2\2\2/\u01b0\3\2\2\2\61\u01b5\3\2\2\2\63\u01c0\3\2\2\2\65\u01c7\3\2\2"+ - "\2\67\u01d2\3\2\2\29\u01d6\3\2\2\2;\u01e0\3\2\2\2=\u01e5\3\2\2\2?\u01ec"+ - "\3\2\2\2A\u01f0\3\2\2\2C\u01f8\3\2\2\2E\u0200\3\2\2\2G\u020a\3\2\2\2I"+ - "\u0211\3\2\2\2K\u0218\3\2\2\2M\u021e\3\2\2\2O\u0225\3\2\2\2Q\u022e\3\2"+ - "\2\2S\u0234\3\2\2\2U\u023b\3\2\2\2W\u0248\3\2\2\2Y\u024d\3\2\2\2[\u0253"+ - "\3\2\2\2]\u025a\3\2\2\2_\u0264\3\2\2\2a\u0268\3\2\2\2c\u026d\3\2\2\2e"+ - "\u0276\3\2\2\2g\u0280\3\2\2\2i\u0282\3\2\2\2k\u0286\3\2\2\2m\u028a\3\2"+ - "\2\2o\u028e\3\2\2\2q\u0292\3\2\2\2s\u029e\3\2\2\2u\u02a0\3\2\2\2w\u02ac"+ - "\3\2\2\2y\u02ae\3\2\2\2{\u02b2\3\2\2\2}\u02b5\3\2\2\2\177\u02b9\3\2\2"+ - "\2\u0081\u02bd\3\2\2\2\u0083\u02c7\3\2\2\2\u0085\u02cb\3\2\2\2\u0087\u02cd"+ - "\3\2\2\2\u0089\u02d3\3\2\2\2\u008b\u02dd\3\2\2\2\u008d\u02e1\3\2\2\2\u008f"+ - "\u02e3\3\2\2\2\u0091\u02e7\3\2\2\2\u0093\u02f1\3\2\2\2\u0095\u02f5\3\2"+ - "\2\2\u0097\u02f9\3\2\2\2\u0099\u0316\3\2\2\2\u009b\u0318\3\2\2\2\u009d"+ - "\u031b\3\2\2\2\u009f\u031e\3\2\2\2\u00a1\u0322\3\2\2\2\u00a3\u0324\3\2"+ - "\2\2\u00a5\u0326\3\2\2\2\u00a7\u0336\3\2\2\2\u00a9\u0338\3\2\2\2\u00ab"+ - "\u033b\3\2\2\2\u00ad\u0346\3\2\2\2\u00af\u0350\3\2\2\2\u00b1\u0352\3\2"+ - "\2\2\u00b3\u0354\3\2\2\2\u00b5\u035b\3\2\2\2\u00b7\u0361\3\2\2\2\u00b9"+ - "\u0367\3\2\2\2\u00bb\u0374\3\2\2\2\u00bd\u0376\3\2\2\2\u00bf\u037d\3\2"+ - "\2\2\u00c1\u037f\3\2\2\2\u00c3\u0384\3\2\2\2\u00c5\u0386\3\2\2\2\u00c7"+ - "\u0388\3\2\2\2\u00c9\u038a\3\2\2\2\u00cb\u038c\3\2\2\2\u00cd\u038e\3\2"+ - "\2\2\u00cf\u0390\3\2\2\2\u00d1\u0392\3\2\2\2\u00d3\u0394\3\2\2\2\u00d5"+ - "\u0396\3\2\2\2\u00d7\u0398\3\2\2\2\u00d9\u039a\3\2\2\2\u00db\u039c\3\2"+ - "\2\2\u00dd\u039e\3\2\2\2\u00df\u03a0\3\2\2\2\u00e1\u03a2\3\2\2\2\u00e3"+ - "\u03a4\3\2\2\2\u00e5\u03a7\3\2\2\2\u00e7\u03aa\3\2\2\2\u00e9\u03ad\3\2"+ - "\2\2\u00eb\u03b0\3\2\2\2\u00ed\u03b3\3\2\2\2\u00ef\u03b6\3\2\2\2\u00f1"+ - "\u03b9\3\2\2\2\u00f3\u03bc\3\2\2\2\u00f5\u03be\3\2\2\2\u00f7\u03c0\3\2"+ - "\2\2\u00f9\u03c2\3\2\2\2\u00fb\u03c4\3\2\2\2\u00fd\u03c6\3\2\2\2\u00ff"+ - "\u03c8\3\2\2\2\u0101\u03ca\3\2\2\2\u0103\u03cc\3\2\2\2\u0105\u03cf\3\2"+ - "\2\2\u0107\u03d2\3\2\2\2\u0109\u03d5\3\2\2\2\u010b\u03d8\3\2\2\2\u010d"+ - "\u03db\3\2\2\2\u010f\u03de\3\2\2\2\u0111\u03e1\3\2\2\2\u0113\u03e4\3\2"+ - "\2\2\u0115\u03e8\3\2\2\2\u0117\u03ec\3\2\2\2\u0119\u03f1\3\2\2\2\u011b"+ - "\u03fe\3\2\2\2\u011d\u0406\3\2\2\2\u011f\u0408\3\2\2\2\u0121\u040a\3\2"+ - "\2\2\u0123\u040f\3\2\2\2\u0125\u0415\3\2\2\2\u0127\u0423\3\2\2\2\u0129"+ - "\u012a\7c\2\2\u012a\u012b\7d\2\2\u012b\u012c\7u\2\2\u012c\u012d\7v\2\2"+ - "\u012d\u012e\7t\2\2\u012e\u012f\7c\2\2\u012f\u0130\7e\2\2\u0130\u0131"+ - "\7v\2\2\u0131\4\3\2\2\2\u0132\u0133\7c\2\2\u0133\u0134\7u\2\2\u0134\u0135"+ - "\7u\2\2\u0135\u0136\7g\2\2\u0136\u0137\7t\2\2\u0137\u0138\7v\2\2\u0138"+ - "\6\3\2\2\2\u0139\u013a\7d\2\2\u013a\u013b\7q\2\2\u013b\u013c\7q\2\2\u013c"+ - "\u013d\7n\2\2\u013d\u013e\7g\2\2\u013e\u013f\7c\2\2\u013f\u0140\7p\2\2"+ - "\u0140\b\3\2\2\2\u0141\u0142\7d\2\2\u0142\u0143\7t\2\2\u0143\u0144\7g"+ - "\2\2\u0144\u0145\7c\2\2\u0145\u0146\7m\2\2\u0146\n\3\2\2\2\u0147\u0148"+ - "\7d\2\2\u0148\u0149\7{\2\2\u0149\u014a\7v\2\2\u014a\u014b\7g\2\2\u014b"+ - "\f\3\2\2\2\u014c\u014d\7e\2\2\u014d\u014e\7c\2\2\u014e\u014f\7u\2\2\u014f"+ - "\u0150\7g\2\2\u0150\16\3\2\2\2\u0151\u0152\7e\2\2\u0152\u0153\7c\2\2\u0153"+ - "\u0154\7v\2\2\u0154\u0155\7e\2\2\u0155\u0156\7j\2\2\u0156\20\3\2\2\2\u0157"+ - "\u0158\7e\2\2\u0158\u0159\7j\2\2\u0159\u015a\7c\2\2\u015a\u015b\7t\2\2"+ - "\u015b\22\3\2\2\2\u015c\u015d\7e\2\2\u015d\u015e\7n\2\2\u015e\u015f\7"+ - "c\2\2\u015f\u0160\7u\2\2\u0160\u0161\7u\2\2\u0161\24\3\2\2\2\u0162\u0163"+ - "\7e\2\2\u0163\u0164\7q\2\2\u0164\u0165\7p\2\2\u0165\u0166\7u\2\2\u0166"+ - "\u0167\7v\2\2\u0167\26\3\2\2\2\u0168\u0169\7e\2\2\u0169\u016a\7q\2\2\u016a"+ - "\u016b\7p\2\2\u016b\u016c\7v\2\2\u016c\u016d\7k\2\2\u016d\u016e\7p\2\2"+ - "\u016e\u016f\7w\2\2\u016f\u0170\7g\2\2\u0170\30\3\2\2\2\u0171\u0172\7"+ - "f\2\2\u0172\u0173\7g\2\2\u0173\u0174\7h\2\2\u0174\u0175\7c\2\2\u0175\u0176"+ - "\7w\2\2\u0176\u0177\7n\2\2\u0177\u0178\7v\2\2\u0178\32\3\2\2\2\u0179\u017a"+ - "\7f\2\2\u017a\u017b\7q\2\2\u017b\34\3\2\2\2\u017c\u017d\7f\2\2\u017d\u017e"+ - "\7q\2\2\u017e\u017f\7w\2\2\u017f\u0180\7d\2\2\u0180\u0181\7n\2\2\u0181"+ - "\u0182\7g\2\2\u0182\36\3\2\2\2\u0183\u0184\7g\2\2\u0184\u0185\7n\2\2\u0185"+ - "\u0186\7u\2\2\u0186\u0187\7g\2\2\u0187 \3\2\2\2\u0188\u0189\7g\2\2\u0189"+ - "\u018a\7p\2\2\u018a\u018b\7w\2\2\u018b\u018c\7o\2\2\u018c\"\3\2\2\2\u018d"+ - "\u018e\7g\2\2\u018e\u018f\7z\2\2\u018f\u0190\7v\2\2\u0190\u0191\7g\2\2"+ - "\u0191\u0192\7p\2\2\u0192\u0193\7f\2\2\u0193\u0194\7u\2\2\u0194$\3\2\2"+ - "\2\u0195\u0196\7h\2\2\u0196\u0197\7k\2\2\u0197\u0198\7p\2\2\u0198\u0199"+ - "\7c\2\2\u0199\u019a\7n\2\2\u019a&\3\2\2\2\u019b\u019c\7h\2\2\u019c\u019d"+ - "\7k\2\2\u019d\u019e\7p\2\2\u019e\u019f\7c\2\2\u019f\u01a0\7n\2\2\u01a0"+ - "\u01a1\7n\2\2\u01a1\u01a2\7{\2\2\u01a2(\3\2\2\2\u01a3\u01a4\7h\2\2\u01a4"+ - "\u01a5\7n\2\2\u01a5\u01a6\7q\2\2\u01a6\u01a7\7c\2\2\u01a7\u01a8\7v\2\2"+ - "\u01a8*\3\2\2\2\u01a9\u01aa\7h\2\2\u01aa\u01ab\7q\2\2\u01ab\u01ac\7t\2"+ - "\2\u01ac,\3\2\2\2\u01ad\u01ae\7k\2\2\u01ae\u01af\7h\2\2\u01af.\3\2\2\2"+ - "\u01b0\u01b1\7i\2\2\u01b1\u01b2\7q\2\2\u01b2\u01b3\7v\2\2\u01b3\u01b4"+ - "\7q\2\2\u01b4\60\3\2\2\2\u01b5\u01b6\7k\2\2\u01b6\u01b7\7o\2\2\u01b7\u01b8"+ - "\7r\2\2\u01b8\u01b9\7n\2\2\u01b9\u01ba\7g\2\2\u01ba\u01bb\7o\2\2\u01bb"+ - "\u01bc\7g\2\2\u01bc\u01bd\7p\2\2\u01bd\u01be\7v\2\2\u01be\u01bf\7u\2\2"+ - "\u01bf\62\3\2\2\2\u01c0\u01c1\7k\2\2\u01c1\u01c2\7o\2\2\u01c2\u01c3\7"+ - "r\2\2\u01c3\u01c4\7q\2\2\u01c4\u01c5\7t\2\2\u01c5\u01c6\7v\2\2\u01c6\64"+ - "\3\2\2\2\u01c7\u01c8\7k\2\2\u01c8\u01c9\7p\2\2\u01c9\u01ca\7u\2\2\u01ca"+ - "\u01cb\7v\2\2\u01cb\u01cc\7c\2\2\u01cc\u01cd\7p\2\2\u01cd\u01ce\7e\2\2"+ - "\u01ce\u01cf\7g\2\2\u01cf\u01d0\7q\2\2\u01d0\u01d1\7h\2\2\u01d1\66\3\2"+ - "\2\2\u01d2\u01d3\7k\2\2\u01d3\u01d4\7p\2\2\u01d4\u01d5\7v\2\2\u01d58\3"+ - "\2\2\2\u01d6\u01d7\7k\2\2\u01d7\u01d8\7p\2\2\u01d8\u01d9\7v\2\2\u01d9"+ - "\u01da\7g\2\2\u01da\u01db\7t\2\2\u01db\u01dc\7h\2\2\u01dc\u01dd\7c\2\2"+ - "\u01dd\u01de\7e\2\2\u01de\u01df\7g\2\2\u01df:\3\2\2\2\u01e0\u01e1\7n\2"+ - "\2\u01e1\u01e2\7q\2\2\u01e2\u01e3\7p\2\2\u01e3\u01e4\7i\2\2\u01e4<\3\2"+ - "\2\2\u01e5\u01e6\7p\2\2\u01e6\u01e7\7c\2\2\u01e7\u01e8\7v\2\2\u01e8\u01e9"+ - "\7k\2\2\u01e9\u01ea\7x\2\2\u01ea\u01eb\7g\2\2\u01eb>\3\2\2\2\u01ec\u01ed"+ - "\7p\2\2\u01ed\u01ee\7g\2\2\u01ee\u01ef\7y\2\2\u01ef@\3\2\2\2\u01f0\u01f1"+ - "\7r\2\2\u01f1\u01f2\7c\2\2\u01f2\u01f3\7e\2\2\u01f3\u01f4\7m\2\2\u01f4"+ - "\u01f5\7c\2\2\u01f5\u01f6\7i\2\2\u01f6\u01f7\7g\2\2\u01f7B\3\2\2\2\u01f8"+ - "\u01f9\7r\2\2\u01f9\u01fa\7t\2\2\u01fa\u01fb\7k\2\2\u01fb\u01fc\7x\2\2"+ - "\u01fc\u01fd\7c\2\2\u01fd\u01fe\7v\2\2\u01fe\u01ff\7g\2\2\u01ffD\3\2\2"+ - "\2\u0200\u0201\7r\2\2\u0201\u0202\7t\2\2\u0202\u0203\7q\2\2\u0203\u0204"+ - "\7v\2\2\u0204\u0205\7g\2\2\u0205\u0206\7e\2\2\u0206\u0207\7v\2\2\u0207"+ - "\u0208\7g\2\2\u0208\u0209\7f\2\2\u0209F\3\2\2\2\u020a\u020b\7r\2\2\u020b"+ - "\u020c\7w\2\2\u020c\u020d\7d\2\2\u020d\u020e\7n\2\2\u020e\u020f\7k\2\2"+ - "\u020f\u0210\7e\2\2\u0210H\3\2\2\2\u0211\u0212\7t\2\2\u0212\u0213\7g\2"+ - "\2\u0213\u0214\7v\2\2\u0214\u0215\7w\2\2\u0215\u0216\7t\2\2\u0216\u0217"+ - "\7p\2\2\u0217J\3\2\2\2\u0218\u0219\7u\2\2\u0219\u021a\7j\2\2\u021a\u021b"+ - "\7q\2\2\u021b\u021c\7t\2\2\u021c\u021d\7v\2\2\u021dL\3\2\2\2\u021e\u021f"+ - "\7u\2\2\u021f\u0220\7v\2\2\u0220\u0221\7c\2\2\u0221\u0222\7v\2\2\u0222"+ - "\u0223\7k\2\2\u0223\u0224\7e\2\2\u0224N\3\2\2\2\u0225\u0226\7u\2\2\u0226"+ - "\u0227\7v\2\2\u0227\u0228\7t\2\2\u0228\u0229\7k\2\2\u0229\u022a\7e\2\2"+ - "\u022a\u022b\7v\2\2\u022b\u022c\7h\2\2\u022c\u022d\7r\2\2\u022dP\3\2\2"+ - "\2\u022e\u022f\7u\2\2\u022f\u0230\7w\2\2\u0230\u0231\7r\2\2\u0231\u0232"+ - "\7g\2\2\u0232\u0233\7t\2\2\u0233R\3\2\2\2\u0234\u0235\7u\2\2\u0235\u0236"+ - "\7y\2\2\u0236\u0237\7k\2\2\u0237\u0238\7v\2\2\u0238\u0239\7e\2\2\u0239"+ - "\u023a\7j\2\2\u023aT\3\2\2\2\u023b\u023c\7u\2\2\u023c\u023d\7{\2\2\u023d"+ - "\u023e\7p\2\2\u023e\u023f\7e\2\2\u023f\u0240\7j\2\2\u0240\u0241\7t\2\2"+ - "\u0241\u0242\7q\2\2\u0242\u0243\7p\2\2\u0243\u0244\7k\2\2\u0244\u0245"+ - "\7|\2\2\u0245\u0246\7g\2\2\u0246\u0247\7f\2\2\u0247V\3\2\2\2\u0248\u0249"+ - "\7v\2\2\u0249\u024a\7j\2\2\u024a\u024b\7k\2\2\u024b\u024c\7u\2\2\u024c"+ - "X\3\2\2\2\u024d\u024e\7v\2\2\u024e\u024f\7j\2\2\u024f\u0250\7t\2\2\u0250"+ - "\u0251\7q\2\2\u0251\u0252\7y\2\2\u0252Z\3\2\2\2\u0253\u0254\7v\2\2\u0254"+ - "\u0255\7j\2\2\u0255\u0256\7t\2\2\u0256\u0257\7q\2\2\u0257\u0258\7y\2\2"+ - "\u0258\u0259\7u\2\2\u0259\\\3\2\2\2\u025a\u025b\7v\2\2\u025b\u025c\7t"+ - "\2\2\u025c\u025d\7c\2\2\u025d\u025e\7p\2\2\u025e\u025f\7u\2\2\u025f\u0260"+ - "\7k\2\2\u0260\u0261\7g\2\2\u0261\u0262\7p\2\2\u0262\u0263\7v\2\2\u0263"+ - "^\3\2\2\2\u0264\u0265\7v\2\2\u0265\u0266\7t\2\2\u0266\u0267\7{\2\2\u0267"+ - "`\3\2\2\2\u0268\u0269\7x\2\2\u0269\u026a\7q\2\2\u026a\u026b\7k\2\2\u026b"+ - "\u026c\7f\2\2\u026cb\3\2\2\2\u026d\u026e\7x\2\2\u026e\u026f\7q\2\2\u026f"+ - "\u0270\7n\2\2\u0270\u0271\7c\2\2\u0271\u0272\7v\2\2\u0272\u0273\7k\2\2"+ - "\u0273\u0274\7n\2\2\u0274\u0275\7g\2\2\u0275d\3\2\2\2\u0276\u0277\7y\2"+ - "\2\u0277\u0278\7j\2\2\u0278\u0279\7k\2\2\u0279\u027a\7n\2\2\u027a\u027b"+ - "\7g\2\2\u027bf\3\2\2\2\u027c\u0281\5i\65\2\u027d\u0281\5k\66\2\u027e\u0281"+ - "\5m\67\2\u027f\u0281\5o8\2\u0280\u027c\3\2\2\2\u0280\u027d\3\2\2\2\u0280"+ - "\u027e\3\2\2\2\u0280\u027f\3\2\2\2\u0281h\3\2\2\2\u0282\u0284\5s:\2\u0283"+ - "\u0285\5q9\2\u0284\u0283\3\2\2\2\u0284\u0285\3\2\2\2\u0285j\3\2\2\2\u0286"+ - "\u0288\5\177@\2\u0287\u0289\5q9\2\u0288\u0287\3\2\2\2\u0288\u0289\3\2"+ - "\2\2\u0289l\3\2\2\2\u028a\u028c\5\u0087D\2\u028b\u028d\5q9\2\u028c\u028b"+ - "\3\2\2\2\u028c\u028d\3\2\2\2\u028dn\3\2\2\2\u028e\u0290\5\u008fH\2\u028f"+ - "\u0291\5q9\2\u0290\u028f\3\2\2\2\u0290\u0291\3\2\2\2\u0291p\3\2\2\2\u0292"+ - "\u0293\t\2\2\2\u0293r\3\2\2\2\u0294\u029f\7\62\2\2\u0295\u029c\5y=\2\u0296"+ - "\u0298\5u;\2\u0297\u0296\3\2\2\2\u0297\u0298\3\2\2\2\u0298\u029d\3\2\2"+ - "\2\u0299\u029a\5}?\2\u029a\u029b\5u;\2\u029b\u029d\3\2\2\2\u029c\u0297"+ - "\3\2\2\2\u029c\u0299\3\2\2\2\u029d\u029f\3\2\2\2\u029e\u0294\3\2\2\2\u029e"+ - "\u0295\3\2\2\2\u029ft\3\2\2\2\u02a0\u02a8\5w<\2\u02a1\u02a3\5{>\2\u02a2"+ - "\u02a1\3\2\2\2\u02a3\u02a6\3\2\2\2\u02a4\u02a2\3\2\2\2\u02a4\u02a5\3\2"+ - "\2\2\u02a5\u02a7\3\2\2\2\u02a6\u02a4\3\2\2\2\u02a7\u02a9\5w<\2\u02a8\u02a4"+ - "\3\2\2\2\u02a8\u02a9\3\2\2\2\u02a9v\3\2\2\2\u02aa\u02ad\7\62\2\2\u02ab"+ - "\u02ad\5y=\2\u02ac\u02aa\3\2\2\2\u02ac\u02ab\3\2\2\2\u02adx\3\2\2\2\u02ae"+ - "\u02af\t\3\2\2\u02afz\3\2\2\2\u02b0\u02b3\5w<\2\u02b1\u02b3\7a\2\2\u02b2"+ - "\u02b0\3\2\2\2\u02b2\u02b1\3\2\2\2\u02b3|\3\2\2\2\u02b4\u02b6\7a\2\2\u02b5"+ - "\u02b4\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7\u02b5\3\2\2\2\u02b7\u02b8\3\2"+ - "\2\2\u02b8~\3\2\2\2\u02b9\u02ba\7\62\2\2\u02ba\u02bb\t\4\2\2\u02bb\u02bc"+ - "\5\u0081A\2\u02bc\u0080\3\2\2\2\u02bd\u02c5\5\u0083B\2\u02be\u02c0\5\u0085"+ - "C\2\u02bf\u02be\3\2\2\2\u02c0\u02c3\3\2\2\2\u02c1\u02bf\3\2\2\2\u02c1"+ - "\u02c2\3\2\2\2\u02c2\u02c4\3\2\2\2\u02c3\u02c1\3\2\2\2\u02c4\u02c6\5\u0083"+ - "B\2\u02c5\u02c1\3\2\2\2\u02c5\u02c6\3\2\2\2\u02c6\u0082\3\2\2\2\u02c7"+ - "\u02c8\t\5\2\2\u02c8\u0084\3\2\2\2\u02c9\u02cc\5\u0083B\2\u02ca\u02cc"+ - "\7a\2\2\u02cb\u02c9\3\2\2\2\u02cb\u02ca\3\2\2\2\u02cc\u0086\3\2\2\2\u02cd"+ - "\u02cf\7\62\2\2\u02ce\u02d0\5}?\2\u02cf\u02ce\3\2\2\2\u02cf\u02d0\3\2"+ - "\2\2\u02d0\u02d1\3\2\2\2\u02d1\u02d2\5\u0089E\2\u02d2\u0088\3\2\2\2\u02d3"+ - "\u02db\5\u008bF\2\u02d4\u02d6\5\u008dG\2\u02d5\u02d4\3\2\2\2\u02d6\u02d9"+ - "\3\2\2\2\u02d7\u02d5\3\2\2\2\u02d7\u02d8\3\2\2\2\u02d8\u02da\3\2\2\2\u02d9"+ - "\u02d7\3\2\2\2\u02da\u02dc\5\u008bF\2\u02db\u02d7\3\2\2\2\u02db\u02dc"+ - "\3\2\2\2\u02dc\u008a\3\2\2\2\u02dd\u02de\t\6\2\2\u02de\u008c\3\2\2\2\u02df"+ - "\u02e2\5\u008bF\2\u02e0\u02e2\7a\2\2\u02e1\u02df\3\2\2\2\u02e1\u02e0\3"+ - "\2\2\2\u02e2\u008e\3\2\2\2\u02e3\u02e4\7\62\2\2\u02e4\u02e5\t\7\2\2\u02e5"+ - "\u02e6\5\u0091I\2\u02e6\u0090\3\2\2\2\u02e7\u02ef\5\u0093J\2\u02e8\u02ea"+ - "\5\u0095K\2\u02e9\u02e8\3\2\2\2\u02ea\u02ed\3\2\2\2\u02eb\u02e9\3\2\2"+ - "\2\u02eb\u02ec\3\2\2\2\u02ec\u02ee\3\2\2\2\u02ed\u02eb\3\2\2\2\u02ee\u02f0"+ - "\5\u0093J\2\u02ef\u02eb\3\2\2\2\u02ef\u02f0\3\2\2\2\u02f0\u0092\3\2\2"+ - "\2\u02f1\u02f2\t\b\2\2\u02f2\u0094\3\2\2\2\u02f3\u02f6\5\u0093J\2\u02f4"+ - "\u02f6\7a\2\2\u02f5\u02f3\3\2\2\2\u02f5\u02f4\3\2\2\2\u02f6\u0096\3\2"+ - "\2\2\u02f7\u02fa\5\u0099M\2\u02f8\u02fa\5\u00a5S\2\u02f9\u02f7\3\2\2\2"+ - "\u02f9\u02f8\3\2\2\2\u02fa\u0098\3\2\2\2\u02fb\u02fc\5u;\2\u02fc\u02fe"+ - "\7\60\2\2\u02fd\u02ff\5u;\2\u02fe\u02fd\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff"+ - "\u0301\3\2\2\2\u0300\u0302\5\u009bN\2\u0301\u0300\3\2\2\2\u0301\u0302"+ - "\3\2\2\2\u0302\u0304\3\2\2\2\u0303\u0305\5\u00a3R\2\u0304\u0303\3\2\2"+ - "\2\u0304\u0305\3\2\2\2\u0305\u0317\3\2\2\2\u0306\u0307\7\60\2\2\u0307"+ - "\u0309\5u;\2\u0308\u030a\5\u009bN\2\u0309\u0308\3\2\2\2\u0309\u030a\3"+ - "\2\2\2\u030a\u030c\3\2\2\2\u030b\u030d\5\u00a3R\2\u030c\u030b\3\2\2\2"+ - "\u030c\u030d\3\2\2\2\u030d\u0317\3\2\2\2\u030e\u030f\5u;\2\u030f\u0311"+ - "\5\u009bN\2\u0310\u0312\5\u00a3R\2\u0311\u0310\3\2\2\2\u0311\u0312\3\2"+ - "\2\2\u0312\u0317\3\2\2\2\u0313\u0314\5u;\2\u0314\u0315\5\u00a3R\2\u0315"+ - "\u0317\3\2\2\2\u0316\u02fb\3\2\2\2\u0316\u0306\3\2\2\2\u0316\u030e\3\2"+ - "\2\2\u0316\u0313\3\2\2\2\u0317\u009a\3\2\2\2\u0318\u0319\5\u009dO\2\u0319"+ - "\u031a\5\u009fP\2\u031a\u009c\3\2\2\2\u031b\u031c\t\t\2\2\u031c\u009e"+ - "\3\2\2\2\u031d\u031f\5\u00a1Q\2\u031e\u031d\3\2\2\2\u031e\u031f\3\2\2"+ - "\2\u031f\u0320\3\2\2\2\u0320\u0321\5u;\2\u0321\u00a0\3\2\2\2\u0322\u0323"+ - "\t\n\2\2\u0323\u00a2\3\2\2\2\u0324\u0325\t\13\2\2\u0325\u00a4\3\2\2\2"+ - "\u0326\u0327\5\u00a7T\2\u0327\u0329\5\u00a9U\2\u0328\u032a\5\u00a3R\2"+ - "\u0329\u0328\3\2\2\2\u0329\u032a\3\2\2\2\u032a\u00a6\3\2\2\2\u032b\u032d"+ - "\5\177@\2\u032c\u032e\7\60\2\2\u032d\u032c\3\2\2\2\u032d\u032e\3\2\2\2"+ - "\u032e\u0337\3\2\2\2\u032f\u0330\7\62\2\2\u0330\u0332\t\4\2\2\u0331\u0333"+ - "\5\u0081A\2\u0332\u0331\3\2\2\2\u0332\u0333\3\2\2\2\u0333\u0334\3\2\2"+ - "\2\u0334\u0335\7\60\2\2\u0335\u0337\5\u0081A\2\u0336\u032b\3\2\2\2\u0336"+ - "\u032f\3\2\2\2\u0337\u00a8\3\2\2\2\u0338\u0339\5\u00abV\2\u0339\u033a"+ - "\5\u009fP\2\u033a\u00aa\3\2\2\2\u033b\u033c\t\f\2\2\u033c\u00ac\3\2\2"+ - "\2\u033d\u033e\7v\2\2\u033e\u033f\7t\2\2\u033f\u0340\7w\2\2\u0340\u0347"+ - "\7g\2\2\u0341\u0342\7h\2\2\u0342\u0343\7c\2\2\u0343\u0344\7n\2\2\u0344"+ - "\u0345\7u\2\2\u0345\u0347\7g\2\2\u0346\u033d\3\2\2\2\u0346\u0341\3\2\2"+ - "\2\u0347\u00ae\3\2\2\2\u0348\u0349\7)\2\2\u0349\u034a\5\u00b1Y\2\u034a"+ - "\u034b\7)\2\2\u034b\u0351\3\2\2\2\u034c\u034d\7)\2\2\u034d\u034e\5\u00b9"+ - "]\2\u034e\u034f\7)\2\2\u034f\u0351\3\2\2\2\u0350\u0348\3\2\2\2\u0350\u034c"+ - "\3\2\2\2\u0351\u00b0\3\2\2\2\u0352\u0353\n\r\2\2\u0353\u00b2\3\2\2\2\u0354"+ - "\u0356\7$\2\2\u0355\u0357\5\u00b5[\2\u0356\u0355\3\2\2\2\u0356\u0357\3"+ - "\2\2\2\u0357\u0358\3\2\2\2\u0358\u0359\7$\2\2\u0359\u00b4\3\2\2\2\u035a"+ - "\u035c\5\u00b7\\\2\u035b\u035a\3\2\2\2\u035c\u035d\3\2\2\2\u035d\u035b"+ - "\3\2\2\2\u035d\u035e\3\2\2\2\u035e\u00b6\3\2\2\2\u035f\u0362\n\16\2\2"+ - "\u0360\u0362\5\u00b9]\2\u0361\u035f\3\2\2\2\u0361\u0360\3\2\2\2\u0362"+ - "\u00b8\3\2\2\2\u0363\u0364\7^\2\2\u0364\u0368\t\17\2\2\u0365\u0368\5\u00bb"+ - "^\2\u0366\u0368\5\u00bd_\2\u0367\u0363\3\2\2\2\u0367\u0365\3\2\2\2\u0367"+ - "\u0366\3\2\2\2\u0368\u00ba\3\2\2\2\u0369\u036a\7^\2\2\u036a\u0375\5\u008b"+ - "F\2\u036b\u036c\7^\2\2\u036c\u036d\5\u008bF\2\u036d\u036e\5\u008bF\2\u036e"+ - "\u0375\3\2\2\2\u036f\u0370\7^\2\2\u0370\u0371\5\u00bf`\2\u0371\u0372\5"+ - "\u008bF\2\u0372\u0373\5\u008bF\2\u0373\u0375\3\2\2\2\u0374\u0369\3\2\2"+ - "\2\u0374\u036b\3\2\2\2\u0374\u036f\3\2\2\2\u0375\u00bc\3\2\2\2\u0376\u0377"+ - "\7^\2\2\u0377\u0378\7w\2\2\u0378\u0379\5\u0083B\2\u0379\u037a\5\u0083"+ - "B\2\u037a\u037b\5\u0083B\2\u037b\u037c\5\u0083B\2\u037c\u00be\3\2\2\2"+ - "\u037d\u037e\t\20\2\2\u037e\u00c0\3\2\2\2\u037f\u0380\7p\2\2\u0380\u0381"+ - "\7w\2\2\u0381\u0382\7n\2\2\u0382\u0383\7n\2\2\u0383\u00c2\3\2\2\2\u0384"+ - "\u0385\7*\2\2\u0385\u00c4\3\2\2\2\u0386\u0387\7+\2\2\u0387\u00c6\3\2\2"+ - "\2\u0388\u0389\7}\2\2\u0389\u00c8\3\2\2\2\u038a\u038b\7\177\2\2\u038b"+ - "\u00ca\3\2\2\2\u038c\u038d\7]\2\2\u038d\u00cc\3\2\2\2\u038e\u038f\7_\2"+ - "\2\u038f\u00ce\3\2\2\2\u0390\u0391\7=\2\2\u0391\u00d0\3\2\2\2\u0392\u0393"+ - "\7.\2\2\u0393\u00d2\3\2\2\2\u0394\u0395\7\60\2\2\u0395\u00d4\3\2\2\2\u0396"+ - "\u0397\7?\2\2\u0397\u00d6\3\2\2\2\u0398\u0399\7@\2\2\u0399\u00d8\3\2\2"+ - "\2\u039a\u039b\7>\2\2\u039b\u00da\3\2\2\2\u039c\u039d\7#\2\2\u039d\u00dc"+ - "\3\2\2\2\u039e\u039f\7\u0080\2\2\u039f\u00de\3\2\2\2\u03a0\u03a1\7A\2"+ - "\2\u03a1\u00e0\3\2\2\2\u03a2\u03a3\7<\2\2\u03a3\u00e2\3\2\2\2\u03a4\u03a5"+ - "\7?\2\2\u03a5\u03a6\7?\2\2\u03a6\u00e4\3\2\2\2\u03a7\u03a8\7>\2\2\u03a8"+ - "\u03a9\7?\2\2\u03a9\u00e6\3\2\2\2\u03aa\u03ab\7@\2\2\u03ab\u03ac\7?\2"+ - "\2\u03ac\u00e8\3\2\2\2\u03ad\u03ae\7#\2\2\u03ae\u03af\7?\2\2\u03af\u00ea"+ - "\3\2\2\2\u03b0\u03b1\7(\2\2\u03b1\u03b2\7(\2\2\u03b2\u00ec\3\2\2\2\u03b3"+ - "\u03b4\7~\2\2\u03b4\u03b5\7~\2\2\u03b5\u00ee\3\2\2\2\u03b6\u03b7\7-\2"+ - "\2\u03b7\u03b8\7-\2\2\u03b8\u00f0\3\2\2\2\u03b9\u03ba\7/\2\2\u03ba\u03bb"+ - "\7/\2\2\u03bb\u00f2\3\2\2\2\u03bc\u03bd\7-\2\2\u03bd\u00f4\3\2\2\2\u03be"+ - "\u03bf\7/\2\2\u03bf\u00f6\3\2\2\2\u03c0\u03c1\7,\2\2\u03c1\u00f8\3\2\2"+ - "\2\u03c2\u03c3\7\61\2\2\u03c3\u00fa\3\2\2\2\u03c4\u03c5\7(\2\2\u03c5\u00fc"+ - "\3\2\2\2\u03c6\u03c7\7~\2\2\u03c7\u00fe\3\2\2\2\u03c8\u03c9\7`\2\2\u03c9"+ - "\u0100\3\2\2\2\u03ca\u03cb\7\'\2\2\u03cb\u0102\3\2\2\2\u03cc\u03cd\7-"+ - "\2\2\u03cd\u03ce\7?\2\2\u03ce\u0104\3\2\2\2\u03cf\u03d0\7/\2\2\u03d0\u03d1"+ - "\7?\2\2\u03d1\u0106\3\2\2\2\u03d2\u03d3\7,\2\2\u03d3\u03d4\7?\2\2\u03d4"+ - "\u0108\3\2\2\2\u03d5\u03d6\7\61\2\2\u03d6\u03d7\7?\2\2\u03d7\u010a\3\2"+ - "\2\2\u03d8\u03d9\7(\2\2\u03d9\u03da\7?\2\2\u03da\u010c\3\2\2\2\u03db\u03dc"+ - "\7~\2\2\u03dc\u03dd\7?\2\2\u03dd\u010e\3\2\2\2\u03de\u03df\7`\2\2\u03df"+ - "\u03e0\7?\2\2\u03e0\u0110\3\2\2\2\u03e1\u03e2\7\'\2\2\u03e2\u03e3\7?\2"+ - "\2\u03e3\u0112\3\2\2\2\u03e4\u03e5\7>\2\2\u03e5\u03e6\7>\2\2\u03e6\u03e7"+ - "\7?\2\2\u03e7\u0114\3\2\2\2\u03e8\u03e9\7@\2\2\u03e9\u03ea\7@\2\2\u03ea"+ - "\u03eb\7?\2\2\u03eb\u0116\3\2\2\2\u03ec\u03ed\7@\2\2\u03ed\u03ee\7@\2"+ - "\2\u03ee\u03ef\7@\2\2\u03ef\u03f0\7?\2\2\u03f0\u0118\3\2\2\2\u03f1\u03f5"+ - "\5\u011b\u008e\2\u03f2\u03f4\5\u011d\u008f\2\u03f3\u03f2\3\2\2\2\u03f4"+ - "\u03f7\3\2\2\2\u03f5\u03f3\3\2\2\2\u03f5\u03f6\3\2\2\2\u03f6\u011a\3\2"+ - "\2\2\u03f7\u03f5\3\2\2\2\u03f8\u03ff\t\21\2\2\u03f9\u03fa\n\22\2\2\u03fa"+ - "\u03ff\6\u008e\2\2\u03fb\u03fc\t\23\2\2\u03fc\u03fd\t\24\2\2\u03fd\u03ff"+ - "\6\u008e\3\2\u03fe\u03f8\3\2\2\2\u03fe\u03f9\3\2\2\2\u03fe\u03fb\3\2\2"+ - "\2\u03ff\u011c\3\2\2\2\u0400\u0407\t\25\2\2\u0401\u0402\n\22\2\2\u0402"+ - "\u0407\6\u008f\4\2\u0403\u0404\t\23\2\2\u0404\u0405\t\24\2\2\u0405\u0407"+ - "\6\u008f\5\2\u0406\u0400\3\2\2\2\u0406\u0401\3\2\2\2\u0406\u0403\3\2\2"+ - "\2\u0407\u011e\3\2\2\2\u0408\u0409\7B\2\2\u0409\u0120\3\2\2\2\u040a\u040b"+ - "\7\60\2\2\u040b\u040c\7\60\2\2\u040c\u040d\7\60\2\2\u040d\u0122\3\2\2"+ - "\2\u040e\u0410\t\26\2\2\u040f\u040e\3\2\2\2\u0410\u0411\3\2\2\2\u0411"+ - "\u040f\3\2\2\2\u0411\u0412\3\2\2\2\u0412\u0413\3\2\2\2\u0413\u0414\b\u0092"+ - "\2\2\u0414\u0124\3\2\2\2\u0415\u0416\7\61\2\2\u0416\u0417\7,\2\2\u0417"+ - "\u041b\3\2\2\2\u0418\u041a\13\2\2\2\u0419\u0418\3\2\2\2\u041a\u041d\3"+ - "\2\2\2\u041b\u041c\3\2\2\2\u041b\u0419\3\2\2\2\u041c\u041e\3\2\2\2\u041d"+ - "\u041b\3\2\2\2\u041e\u041f\7,\2\2\u041f\u0420\7\61\2\2\u0420\u0421\3\2"+ - "\2\2\u0421\u0422\b\u0093\2\2\u0422\u0126\3\2\2\2\u0423\u0424\7\61\2\2"+ - "\u0424\u0425\7\61\2\2\u0425\u0429\3\2\2\2\u0426\u0428\n\27\2\2\u0427\u0426"+ - "\3\2\2\2\u0428\u042b\3\2\2\2\u0429\u0427\3\2\2\2\u0429\u042a\3\2\2\2\u042a"+ - "\u042c\3\2\2\2\u042b\u0429\3\2\2\2\u042c\u042d\b\u0094\2\2\u042d\u0128"+ - "\3\2\2\2\64\2\u0280\u0284\u0288\u028c\u0290\u0297\u029c\u029e\u02a4\u02a8"+ - "\u02ac\u02b2\u02b7\u02c1\u02c5\u02cb\u02cf\u02d7\u02db\u02e1\u02eb\u02ef"+ - "\u02f5\u02f9\u02fe\u0301\u0304\u0309\u030c\u0311\u0316\u031e\u0329\u032d"+ - "\u0332\u0336\u0346\u0350\u0356\u035d\u0361\u0367\u0374\u03f5\u03fe\u0406"+ - "\u0411\u041b\u0429\3\b\2\2"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/antlr/Java8Lexer.tokens b/antlr/Java8Lexer.tokens deleted file mode 100644 index 3f62bddf..00000000 --- a/antlr/Java8Lexer.tokens +++ /dev/null @@ -1,201 +0,0 @@ -THROW=44 -STATIC=38 -INTERFACE=28 -AND_ASSIGN=93 -BREAK=4 -BYTE=5 -ELSE=15 -IF=22 -ENUM=16 -SUB=82 -BANG=69 -LPAREN=57 -DOT=65 -CASE=6 -AT=101 -LINE_COMMENT=105 -StringLiteral=55 -ELLIPSIS=102 -LBRACK=61 -PUBLIC=35 -THROWS=45 -NullLiteral=56 -RSHIFT_ASSIGN=98 -LBRACE=59 -GOTO=23 -SUB_ASSIGN=90 -SEMI=63 -CHAR=8 -ASSIGN=66 -COMMENT=104 -IMPORT=25 -BITOR=86 -CATCH=7 -MUL_ASSIGN=91 -DOUBLE=14 -PROTECTED=34 -LONG=29 -COMMA=64 -BITAND=85 -PRIVATE=33 -CONTINUE=11 -DIV=84 -FloatingPointLiteral=52 -LE=74 -CharacterLiteral=54 -VOLATILE=49 -EXTENDS=17 -INSTANCEOF=26 -NEW=31 -ADD=81 -LT=68 -CLASS=9 -DO=13 -FINALLY=19 -Identifier=100 -CONST=10 -PACKAGE=32 -OR_ASSIGN=94 -TRY=47 -IntegerLiteral=51 -SYNCHRONIZED=42 -MUL=83 -FOR=21 -FINAL=18 -RPAREN=58 -CARET=87 -URSHIFT_ASSIGN=99 -BOOLEAN=3 -NOTEQUAL=76 -RBRACK=62 -RBRACE=60 -AND=77 -THIS=43 -SWITCH=41 -VOID=48 -TRANSIENT=46 -INC=79 -FLOAT=20 -NATIVE=30 -DIV_ASSIGN=92 -BooleanLiteral=53 -ABSTRACT=1 -STRICTFP=39 -INT=27 -QUESTION=71 -RETURN=36 -LSHIFT_ASSIGN=97 -ADD_ASSIGN=89 -WS=103 -GE=75 -SUPER=40 -OR=78 -DEC=80 -MOD=88 -XOR_ASSIGN=95 -ASSERT=2 -EQUAL=73 -IMPLEMENTS=24 -COLON=72 -GT=67 -SHORT=37 -MOD_ASSIGN=96 -WHILE=50 -TILDE=70 -DEFAULT=12 -'import'=25 -'-'=82 -')'=58 -'super'=40 -'else'=15 -'%'=88 -'!'=69 -'>'=67 -'public'=35 -'=='=73 -'--'=80 -'|'=86 -'['=61 -':'=72 -'...'=102 -'throw'=44 -'case'=6 -'.'=65 -'this'=43 -'*'=83 -'switch'=41 -'synchronized'=42 -'&'=85 -'double'=14 -'break'=4 -'short'=37 -'<='=74 -'enum'=16 -'try'=47 -'?'=71 -'if'=22 -'extends'=17 -'goto'=23 -'}'=60 -'instanceof'=26 -';'=63 -'||'=78 -'>>='=98 -'class'=9 -'return'=36 -'&='=93 -'catch'=7 -'native'=30 -'continue'=11 -'strictfp'=39 -'/'=84 -'*='=91 -'+'=81 -'final'=18 -'protected'=34 -'static'=38 -'@'=101 -'transient'=46 -'~'=70 -'assert'=2 -']'=62 -'<'=68 -'++'=79 -'>>>='=99 -'>='=75 -'long'=29 -'boolean'=3 -'const'=10 -'abstract'=1 -'implements'=24 -'volatile'=49 -'throws'=45 -'/='=92 -','=64 -'-='=90 -'do'=13 -'package'=32 -'('=57 -'null'=56 -'int'=27 -'|='=94 -'for'=21 -'^'=87 -'<<='=97 -'='=66 -'byte'=5 -'&&'=77 -'^='=95 -'void'=48 -'while'=50 -'{'=59 -'float'=20 -'!='=76 -'new'=31 -'char'=8 -'finally'=19 -'interface'=28 -'%='=96 -'private'=33 -'+='=89 -'default'=12 diff --git a/antlr/Java8Listener.java b/antlr/Java8Listener.java deleted file mode 100644 index 5b49ebda..00000000 --- a/antlr/Java8Listener.java +++ /dev/null @@ -1,1020 +0,0 @@ -// Generated from Java8.g4 by ANTLR 4.4 -import org.antlr.v4.runtime.misc.NotNull; -import org.antlr.v4.runtime.tree.ParseTreeListener; - -/** - * This interface defines a complete listener for a parse tree produced by - * {@link Java8Parser}. - */ -public interface Java8Listener extends ParseTreeListener { - /** - * Enter a parse tree produced by {@link Java8Parser#memberDeclaration}. - * @param ctx the parse tree - */ - void enterMemberDeclaration(@NotNull Java8Parser.MemberDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#memberDeclaration}. - * @param ctx the parse tree - */ - void exitMemberDeclaration(@NotNull Java8Parser.MemberDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#defaultValue}. - * @param ctx the parse tree - */ - void enterDefaultValue(@NotNull Java8Parser.DefaultValueContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#defaultValue}. - * @param ctx the parse tree - */ - void exitDefaultValue(@NotNull Java8Parser.DefaultValueContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeElementDeclaration}. - * @param ctx the parse tree - */ - void enterAnnotationTypeElementDeclaration(@NotNull Java8Parser.AnnotationTypeElementDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeElementDeclaration}. - * @param ctx the parse tree - */ - void exitAnnotationTypeElementDeclaration(@NotNull Java8Parser.AnnotationTypeElementDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#type}. - * @param ctx the parse tree - */ - void enterType(@NotNull Java8Parser.TypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#type}. - * @param ctx the parse tree - */ - void exitType(@NotNull Java8Parser.TypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeBody}. - * @param ctx the parse tree - */ - void enterAnnotationTypeBody(@NotNull Java8Parser.AnnotationTypeBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeBody}. - * @param ctx the parse tree - */ - void exitAnnotationTypeBody(@NotNull Java8Parser.AnnotationTypeBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#genericInterfaceMethodDeclaration}. - * @param ctx the parse tree - */ - void enterGenericInterfaceMethodDeclaration(@NotNull Java8Parser.GenericInterfaceMethodDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#genericInterfaceMethodDeclaration}. - * @param ctx the parse tree - */ - void exitGenericInterfaceMethodDeclaration(@NotNull Java8Parser.GenericInterfaceMethodDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classBodyDeclaration}. - * @param ctx the parse tree - */ - void enterClassBodyDeclaration(@NotNull Java8Parser.ClassBodyDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classBodyDeclaration}. - * @param ctx the parse tree - */ - void exitClassBodyDeclaration(@NotNull Java8Parser.ClassBodyDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#block}. - * @param ctx the parse tree - */ - void enterBlock(@NotNull Java8Parser.BlockContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#block}. - * @param ctx the parse tree - */ - void exitBlock(@NotNull Java8Parser.BlockContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumBodyDeclarations}. - * @param ctx the parse tree - */ - void enterEnumBodyDeclarations(@NotNull Java8Parser.EnumBodyDeclarationsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumBodyDeclarations}. - * @param ctx the parse tree - */ - void exitEnumBodyDeclarations(@NotNull Java8Parser.EnumBodyDeclarationsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#forUpdate}. - * @param ctx the parse tree - */ - void enterForUpdate(@NotNull Java8Parser.ForUpdateContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#forUpdate}. - * @param ctx the parse tree - */ - void exitForUpdate(@NotNull Java8Parser.ForUpdateContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enhancedForControl}. - * @param ctx the parse tree - */ - void enterEnhancedForControl(@NotNull Java8Parser.EnhancedForControlContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enhancedForControl}. - * @param ctx the parse tree - */ - void exitEnhancedForControl(@NotNull Java8Parser.EnhancedForControlContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationConstantRest}. - * @param ctx the parse tree - */ - void enterAnnotationConstantRest(@NotNull Java8Parser.AnnotationConstantRestContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationConstantRest}. - * @param ctx the parse tree - */ - void exitAnnotationConstantRest(@NotNull Java8Parser.AnnotationConstantRestContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#explicitGenericInvocation}. - * @param ctx the parse tree - */ - void enterExplicitGenericInvocation(@NotNull Java8Parser.ExplicitGenericInvocationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#explicitGenericInvocation}. - * @param ctx the parse tree - */ - void exitExplicitGenericInvocation(@NotNull Java8Parser.ExplicitGenericInvocationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#nonWildcardTypeArgumentsOrDiamond}. - * @param ctx the parse tree - */ - void enterNonWildcardTypeArgumentsOrDiamond(@NotNull Java8Parser.NonWildcardTypeArgumentsOrDiamondContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#nonWildcardTypeArgumentsOrDiamond}. - * @param ctx the parse tree - */ - void exitNonWildcardTypeArgumentsOrDiamond(@NotNull Java8Parser.NonWildcardTypeArgumentsOrDiamondContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#expressionList}. - * @param ctx the parse tree - */ - void enterExpressionList(@NotNull Java8Parser.ExpressionListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#expressionList}. - * @param ctx the parse tree - */ - void exitExpressionList(@NotNull Java8Parser.ExpressionListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeElementRest}. - * @param ctx the parse tree - */ - void enterAnnotationTypeElementRest(@NotNull Java8Parser.AnnotationTypeElementRestContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeElementRest}. - * @param ctx the parse tree - */ - void exitAnnotationTypeElementRest(@NotNull Java8Parser.AnnotationTypeElementRestContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classOrInterfaceType}. - * @param ctx the parse tree - */ - void enterClassOrInterfaceType(@NotNull Java8Parser.ClassOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classOrInterfaceType}. - * @param ctx the parse tree - */ - void exitClassOrInterfaceType(@NotNull Java8Parser.ClassOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeBound}. - * @param ctx the parse tree - */ - void enterTypeBound(@NotNull Java8Parser.TypeBoundContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeBound}. - * @param ctx the parse tree - */ - void exitTypeBound(@NotNull Java8Parser.TypeBoundContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableDeclaratorId}. - * @param ctx the parse tree - */ - void enterVariableDeclaratorId(@NotNull Java8Parser.VariableDeclaratorIdContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableDeclaratorId}. - * @param ctx the parse tree - */ - void exitVariableDeclaratorId(@NotNull Java8Parser.VariableDeclaratorIdContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primary}. - * @param ctx the parse tree - */ - void enterPrimary(@NotNull Java8Parser.PrimaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primary}. - * @param ctx the parse tree - */ - void exitPrimary(@NotNull Java8Parser.PrimaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classCreatorRest}. - * @param ctx the parse tree - */ - void enterClassCreatorRest(@NotNull Java8Parser.ClassCreatorRestContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classCreatorRest}. - * @param ctx the parse tree - */ - void exitClassCreatorRest(@NotNull Java8Parser.ClassCreatorRestContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceBodyDeclaration}. - * @param ctx the parse tree - */ - void enterInterfaceBodyDeclaration(@NotNull Java8Parser.InterfaceBodyDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceBodyDeclaration}. - * @param ctx the parse tree - */ - void exitInterfaceBodyDeclaration(@NotNull Java8Parser.InterfaceBodyDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeArguments}. - * @param ctx the parse tree - */ - void enterTypeArguments(@NotNull Java8Parser.TypeArgumentsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeArguments}. - * @param ctx the parse tree - */ - void exitTypeArguments(@NotNull Java8Parser.TypeArgumentsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationName}. - * @param ctx the parse tree - */ - void enterAnnotationName(@NotNull Java8Parser.AnnotationNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationName}. - * @param ctx the parse tree - */ - void exitAnnotationName(@NotNull Java8Parser.AnnotationNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#finallyBlock}. - * @param ctx the parse tree - */ - void enterFinallyBlock(@NotNull Java8Parser.FinallyBlockContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#finallyBlock}. - * @param ctx the parse tree - */ - void exitFinallyBlock(@NotNull Java8Parser.FinallyBlockContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeParameters}. - * @param ctx the parse tree - */ - void enterTypeParameters(@NotNull Java8Parser.TypeParametersContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeParameters}. - * @param ctx the parse tree - */ - void exitTypeParameters(@NotNull Java8Parser.TypeParametersContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#lastFormalParameter}. - * @param ctx the parse tree - */ - void enterLastFormalParameter(@NotNull Java8Parser.LastFormalParameterContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#lastFormalParameter}. - * @param ctx the parse tree - */ - void exitLastFormalParameter(@NotNull Java8Parser.LastFormalParameterContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constructorBody}. - * @param ctx the parse tree - */ - void enterConstructorBody(@NotNull Java8Parser.ConstructorBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constructorBody}. - * @param ctx the parse tree - */ - void exitConstructorBody(@NotNull Java8Parser.ConstructorBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#literal}. - * @param ctx the parse tree - */ - void enterLiteral(@NotNull Java8Parser.LiteralContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#literal}. - * @param ctx the parse tree - */ - void exitLiteral(@NotNull Java8Parser.LiteralContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationMethodOrConstantRest}. - * @param ctx the parse tree - */ - void enterAnnotationMethodOrConstantRest(@NotNull Java8Parser.AnnotationMethodOrConstantRestContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationMethodOrConstantRest}. - * @param ctx the parse tree - */ - void exitAnnotationMethodOrConstantRest(@NotNull Java8Parser.AnnotationMethodOrConstantRestContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#catchClause}. - * @param ctx the parse tree - */ - void enterCatchClause(@NotNull Java8Parser.CatchClauseContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#catchClause}. - * @param ctx the parse tree - */ - void exitCatchClause(@NotNull Java8Parser.CatchClauseContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableDeclarator}. - * @param ctx the parse tree - */ - void enterVariableDeclarator(@NotNull Java8Parser.VariableDeclaratorContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableDeclarator}. - * @param ctx the parse tree - */ - void exitVariableDeclarator(@NotNull Java8Parser.VariableDeclaratorContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeList}. - * @param ctx the parse tree - */ - void enterTypeList(@NotNull Java8Parser.TypeListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeList}. - * @param ctx the parse tree - */ - void exitTypeList(@NotNull Java8Parser.TypeListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumConstants}. - * @param ctx the parse tree - */ - void enterEnumConstants(@NotNull Java8Parser.EnumConstantsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumConstants}. - * @param ctx the parse tree - */ - void exitEnumConstants(@NotNull Java8Parser.EnumConstantsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classBody}. - * @param ctx the parse tree - */ - void enterClassBody(@NotNull Java8Parser.ClassBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classBody}. - * @param ctx the parse tree - */ - void exitClassBody(@NotNull Java8Parser.ClassBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#createdName}. - * @param ctx the parse tree - */ - void enterCreatedName(@NotNull Java8Parser.CreatedNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#createdName}. - * @param ctx the parse tree - */ - void exitCreatedName(@NotNull Java8Parser.CreatedNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumDeclaration}. - * @param ctx the parse tree - */ - void enterEnumDeclaration(@NotNull Java8Parser.EnumDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumDeclaration}. - * @param ctx the parse tree - */ - void exitEnumDeclaration(@NotNull Java8Parser.EnumDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#formalParameter}. - * @param ctx the parse tree - */ - void enterFormalParameter(@NotNull Java8Parser.FormalParameterContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#formalParameter}. - * @param ctx the parse tree - */ - void exitFormalParameter(@NotNull Java8Parser.FormalParameterContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#parExpression}. - * @param ctx the parse tree - */ - void enterParExpression(@NotNull Java8Parser.ParExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#parExpression}. - * @param ctx the parse tree - */ - void exitParExpression(@NotNull Java8Parser.ParExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotation}. - * @param ctx the parse tree - */ - void enterAnnotation(@NotNull Java8Parser.AnnotationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotation}. - * @param ctx the parse tree - */ - void exitAnnotation(@NotNull Java8Parser.AnnotationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableInitializer}. - * @param ctx the parse tree - */ - void enterVariableInitializer(@NotNull Java8Parser.VariableInitializerContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableInitializer}. - * @param ctx the parse tree - */ - void exitVariableInitializer(@NotNull Java8Parser.VariableInitializerContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValueArrayInitializer}. - * @param ctx the parse tree - */ - void enterElementValueArrayInitializer(@NotNull Java8Parser.ElementValueArrayInitializerContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValueArrayInitializer}. - * @param ctx the parse tree - */ - void exitElementValueArrayInitializer(@NotNull Java8Parser.ElementValueArrayInitializerContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#creator}. - * @param ctx the parse tree - */ - void enterCreator(@NotNull Java8Parser.CreatorContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#creator}. - * @param ctx the parse tree - */ - void exitCreator(@NotNull Java8Parser.CreatorContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arrayCreatorRest}. - * @param ctx the parse tree - */ - void enterArrayCreatorRest(@NotNull Java8Parser.ArrayCreatorRestContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arrayCreatorRest}. - * @param ctx the parse tree - */ - void exitArrayCreatorRest(@NotNull Java8Parser.ArrayCreatorRestContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#expression}. - * @param ctx the parse tree - */ - void enterExpression(@NotNull Java8Parser.ExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#expression}. - * @param ctx the parse tree - */ - void exitExpression(@NotNull Java8Parser.ExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constantExpression}. - * @param ctx the parse tree - */ - void enterConstantExpression(@NotNull Java8Parser.ConstantExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constantExpression}. - * @param ctx the parse tree - */ - void exitConstantExpression(@NotNull Java8Parser.ConstantExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#qualifiedNameList}. - * @param ctx the parse tree - */ - void enterQualifiedNameList(@NotNull Java8Parser.QualifiedNameListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#qualifiedNameList}. - * @param ctx the parse tree - */ - void exitQualifiedNameList(@NotNull Java8Parser.QualifiedNameListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constructorDeclaration}. - * @param ctx the parse tree - */ - void enterConstructorDeclaration(@NotNull Java8Parser.ConstructorDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constructorDeclaration}. - * @param ctx the parse tree - */ - void exitConstructorDeclaration(@NotNull Java8Parser.ConstructorDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#forControl}. - * @param ctx the parse tree - */ - void enterForControl(@NotNull Java8Parser.ForControlContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#forControl}. - * @param ctx the parse tree - */ - void exitForControl(@NotNull Java8Parser.ForControlContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#superSuffix}. - * @param ctx the parse tree - */ - void enterSuperSuffix(@NotNull Java8Parser.SuperSuffixContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#superSuffix}. - * @param ctx the parse tree - */ - void exitSuperSuffix(@NotNull Java8Parser.SuperSuffixContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableDeclarators}. - * @param ctx the parse tree - */ - void enterVariableDeclarators(@NotNull Java8Parser.VariableDeclaratorsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableDeclarators}. - * @param ctx the parse tree - */ - void exitVariableDeclarators(@NotNull Java8Parser.VariableDeclaratorsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#catchType}. - * @param ctx the parse tree - */ - void enterCatchType(@NotNull Java8Parser.CatchTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#catchType}. - * @param ctx the parse tree - */ - void exitCatchType(@NotNull Java8Parser.CatchTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classOrInterfaceModifier}. - * @param ctx the parse tree - */ - void enterClassOrInterfaceModifier(@NotNull Java8Parser.ClassOrInterfaceModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classOrInterfaceModifier}. - * @param ctx the parse tree - */ - void exitClassOrInterfaceModifier(@NotNull Java8Parser.ClassOrInterfaceModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumConstantName}. - * @param ctx the parse tree - */ - void enterEnumConstantName(@NotNull Java8Parser.EnumConstantNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumConstantName}. - * @param ctx the parse tree - */ - void exitEnumConstantName(@NotNull Java8Parser.EnumConstantNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#modifier}. - * @param ctx the parse tree - */ - void enterModifier(@NotNull Java8Parser.ModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#modifier}. - * @param ctx the parse tree - */ - void exitModifier(@NotNull Java8Parser.ModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#innerCreator}. - * @param ctx the parse tree - */ - void enterInnerCreator(@NotNull Java8Parser.InnerCreatorContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#innerCreator}. - * @param ctx the parse tree - */ - void exitInnerCreator(@NotNull Java8Parser.InnerCreatorContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#explicitGenericInvocationSuffix}. - * @param ctx the parse tree - */ - void enterExplicitGenericInvocationSuffix(@NotNull Java8Parser.ExplicitGenericInvocationSuffixContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#explicitGenericInvocationSuffix}. - * @param ctx the parse tree - */ - void exitExplicitGenericInvocationSuffix(@NotNull Java8Parser.ExplicitGenericInvocationSuffixContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableModifier}. - * @param ctx the parse tree - */ - void enterVariableModifier(@NotNull Java8Parser.VariableModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableModifier}. - * @param ctx the parse tree - */ - void exitVariableModifier(@NotNull Java8Parser.VariableModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValuePair}. - * @param ctx the parse tree - */ - void enterElementValuePair(@NotNull Java8Parser.ElementValuePairContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValuePair}. - * @param ctx the parse tree - */ - void exitElementValuePair(@NotNull Java8Parser.ElementValuePairContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arrayInitializer}. - * @param ctx the parse tree - */ - void enterArrayInitializer(@NotNull Java8Parser.ArrayInitializerContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arrayInitializer}. - * @param ctx the parse tree - */ - void exitArrayInitializer(@NotNull Java8Parser.ArrayInitializerContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValue}. - * @param ctx the parse tree - */ - void enterElementValue(@NotNull Java8Parser.ElementValueContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValue}. - * @param ctx the parse tree - */ - void exitElementValue(@NotNull Java8Parser.ElementValueContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constDeclaration}. - * @param ctx the parse tree - */ - void enterConstDeclaration(@NotNull Java8Parser.ConstDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constDeclaration}. - * @param ctx the parse tree - */ - void exitConstDeclaration(@NotNull Java8Parser.ConstDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#resource}. - * @param ctx the parse tree - */ - void enterResource(@NotNull Java8Parser.ResourceContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#resource}. - * @param ctx the parse tree - */ - void exitResource(@NotNull Java8Parser.ResourceContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#qualifiedName}. - * @param ctx the parse tree - */ - void enterQualifiedName(@NotNull Java8Parser.QualifiedNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#qualifiedName}. - * @param ctx the parse tree - */ - void exitQualifiedName(@NotNull Java8Parser.QualifiedNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#resourceSpecification}. - * @param ctx the parse tree - */ - void enterResourceSpecification(@NotNull Java8Parser.ResourceSpecificationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#resourceSpecification}. - * @param ctx the parse tree - */ - void exitResourceSpecification(@NotNull Java8Parser.ResourceSpecificationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#formalParameterList}. - * @param ctx the parse tree - */ - void enterFormalParameterList(@NotNull Java8Parser.FormalParameterListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#formalParameterList}. - * @param ctx the parse tree - */ - void exitFormalParameterList(@NotNull Java8Parser.FormalParameterListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeDeclaration}. - * @param ctx the parse tree - */ - void enterAnnotationTypeDeclaration(@NotNull Java8Parser.AnnotationTypeDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeDeclaration}. - * @param ctx the parse tree - */ - void exitAnnotationTypeDeclaration(@NotNull Java8Parser.AnnotationTypeDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#compilationUnit}. - * @param ctx the parse tree - */ - void enterCompilationUnit(@NotNull Java8Parser.CompilationUnitContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#compilationUnit}. - * @param ctx the parse tree - */ - void exitCompilationUnit(@NotNull Java8Parser.CompilationUnitContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationMethodRest}. - * @param ctx the parse tree - */ - void enterAnnotationMethodRest(@NotNull Java8Parser.AnnotationMethodRestContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationMethodRest}. - * @param ctx the parse tree - */ - void exitAnnotationMethodRest(@NotNull Java8Parser.AnnotationMethodRestContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#switchBlockStatementGroup}. - * @param ctx the parse tree - */ - void enterSwitchBlockStatementGroup(@NotNull Java8Parser.SwitchBlockStatementGroupContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#switchBlockStatementGroup}. - * @param ctx the parse tree - */ - void exitSwitchBlockStatementGroup(@NotNull Java8Parser.SwitchBlockStatementGroupContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeParameter}. - * @param ctx the parse tree - */ - void enterTypeParameter(@NotNull Java8Parser.TypeParameterContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeParameter}. - * @param ctx the parse tree - */ - void exitTypeParameter(@NotNull Java8Parser.TypeParameterContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceBody}. - * @param ctx the parse tree - */ - void enterInterfaceBody(@NotNull Java8Parser.InterfaceBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceBody}. - * @param ctx the parse tree - */ - void exitInterfaceBody(@NotNull Java8Parser.InterfaceBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodDeclaration}. - * @param ctx the parse tree - */ - void enterMethodDeclaration(@NotNull Java8Parser.MethodDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodDeclaration}. - * @param ctx the parse tree - */ - void exitMethodDeclaration(@NotNull Java8Parser.MethodDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodBody}. - * @param ctx the parse tree - */ - void enterMethodBody(@NotNull Java8Parser.MethodBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodBody}. - * @param ctx the parse tree - */ - void exitMethodBody(@NotNull Java8Parser.MethodBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeArgument}. - * @param ctx the parse tree - */ - void enterTypeArgument(@NotNull Java8Parser.TypeArgumentContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeArgument}. - * @param ctx the parse tree - */ - void exitTypeArgument(@NotNull Java8Parser.TypeArgumentContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeDeclaration}. - * @param ctx the parse tree - */ - void enterTypeDeclaration(@NotNull Java8Parser.TypeDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeDeclaration}. - * @param ctx the parse tree - */ - void exitTypeDeclaration(@NotNull Java8Parser.TypeDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#genericConstructorDeclaration}. - * @param ctx the parse tree - */ - void enterGenericConstructorDeclaration(@NotNull Java8Parser.GenericConstructorDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#genericConstructorDeclaration}. - * @param ctx the parse tree - */ - void exitGenericConstructorDeclaration(@NotNull Java8Parser.GenericConstructorDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classDeclaration}. - * @param ctx the parse tree - */ - void enterClassDeclaration(@NotNull Java8Parser.ClassDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classDeclaration}. - * @param ctx the parse tree - */ - void exitClassDeclaration(@NotNull Java8Parser.ClassDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumConstant}. - * @param ctx the parse tree - */ - void enterEnumConstant(@NotNull Java8Parser.EnumConstantContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumConstant}. - * @param ctx the parse tree - */ - void exitEnumConstant(@NotNull Java8Parser.EnumConstantContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#statement}. - * @param ctx the parse tree - */ - void enterStatement(@NotNull Java8Parser.StatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#statement}. - * @param ctx the parse tree - */ - void exitStatement(@NotNull Java8Parser.StatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#importDeclaration}. - * @param ctx the parse tree - */ - void enterImportDeclaration(@NotNull Java8Parser.ImportDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#importDeclaration}. - * @param ctx the parse tree - */ - void exitImportDeclaration(@NotNull Java8Parser.ImportDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primitiveType}. - * @param ctx the parse tree - */ - void enterPrimitiveType(@NotNull Java8Parser.PrimitiveTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primitiveType}. - * @param ctx the parse tree - */ - void exitPrimitiveType(@NotNull Java8Parser.PrimitiveTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceDeclaration}. - * @param ctx the parse tree - */ - void enterInterfaceDeclaration(@NotNull Java8Parser.InterfaceDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceDeclaration}. - * @param ctx the parse tree - */ - void exitInterfaceDeclaration(@NotNull Java8Parser.InterfaceDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#localVariableDeclarationStatement}. - * @param ctx the parse tree - */ - void enterLocalVariableDeclarationStatement(@NotNull Java8Parser.LocalVariableDeclarationStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#localVariableDeclarationStatement}. - * @param ctx the parse tree - */ - void exitLocalVariableDeclarationStatement(@NotNull Java8Parser.LocalVariableDeclarationStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#blockStatement}. - * @param ctx the parse tree - */ - void enterBlockStatement(@NotNull Java8Parser.BlockStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#blockStatement}. - * @param ctx the parse tree - */ - void exitBlockStatement(@NotNull Java8Parser.BlockStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#fieldDeclaration}. - * @param ctx the parse tree - */ - void enterFieldDeclaration(@NotNull Java8Parser.FieldDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#fieldDeclaration}. - * @param ctx the parse tree - */ - void exitFieldDeclaration(@NotNull Java8Parser.FieldDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constantDeclarator}. - * @param ctx the parse tree - */ - void enterConstantDeclarator(@NotNull Java8Parser.ConstantDeclaratorContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constantDeclarator}. - * @param ctx the parse tree - */ - void exitConstantDeclarator(@NotNull Java8Parser.ConstantDeclaratorContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#resources}. - * @param ctx the parse tree - */ - void enterResources(@NotNull Java8Parser.ResourcesContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#resources}. - * @param ctx the parse tree - */ - void exitResources(@NotNull Java8Parser.ResourcesContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#statementExpression}. - * @param ctx the parse tree - */ - void enterStatementExpression(@NotNull Java8Parser.StatementExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#statementExpression}. - * @param ctx the parse tree - */ - void exitStatementExpression(@NotNull Java8Parser.StatementExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceMethodDeclaration}. - * @param ctx the parse tree - */ - void enterInterfaceMethodDeclaration(@NotNull Java8Parser.InterfaceMethodDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceMethodDeclaration}. - * @param ctx the parse tree - */ - void exitInterfaceMethodDeclaration(@NotNull Java8Parser.InterfaceMethodDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#packageDeclaration}. - * @param ctx the parse tree - */ - void enterPackageDeclaration(@NotNull Java8Parser.PackageDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#packageDeclaration}. - * @param ctx the parse tree - */ - void exitPackageDeclaration(@NotNull Java8Parser.PackageDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValuePairs}. - * @param ctx the parse tree - */ - void enterElementValuePairs(@NotNull Java8Parser.ElementValuePairsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValuePairs}. - * @param ctx the parse tree - */ - void exitElementValuePairs(@NotNull Java8Parser.ElementValuePairsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#localVariableDeclaration}. - * @param ctx the parse tree - */ - void enterLocalVariableDeclaration(@NotNull Java8Parser.LocalVariableDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#localVariableDeclaration}. - * @param ctx the parse tree - */ - void exitLocalVariableDeclaration(@NotNull Java8Parser.LocalVariableDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#nonWildcardTypeArguments}. - * @param ctx the parse tree - */ - void enterNonWildcardTypeArguments(@NotNull Java8Parser.NonWildcardTypeArgumentsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#nonWildcardTypeArguments}. - * @param ctx the parse tree - */ - void exitNonWildcardTypeArguments(@NotNull Java8Parser.NonWildcardTypeArgumentsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceMemberDeclaration}. - * @param ctx the parse tree - */ - void enterInterfaceMemberDeclaration(@NotNull Java8Parser.InterfaceMemberDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceMemberDeclaration}. - * @param ctx the parse tree - */ - void exitInterfaceMemberDeclaration(@NotNull Java8Parser.InterfaceMemberDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#switchLabel}. - * @param ctx the parse tree - */ - void enterSwitchLabel(@NotNull Java8Parser.SwitchLabelContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#switchLabel}. - * @param ctx the parse tree - */ - void exitSwitchLabel(@NotNull Java8Parser.SwitchLabelContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#forInit}. - * @param ctx the parse tree - */ - void enterForInit(@NotNull Java8Parser.ForInitContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#forInit}. - * @param ctx the parse tree - */ - void exitForInit(@NotNull Java8Parser.ForInitContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#formalParameters}. - * @param ctx the parse tree - */ - void enterFormalParameters(@NotNull Java8Parser.FormalParametersContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#formalParameters}. - * @param ctx the parse tree - */ - void exitFormalParameters(@NotNull Java8Parser.FormalParametersContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arguments}. - * @param ctx the parse tree - */ - void enterArguments(@NotNull Java8Parser.ArgumentsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arguments}. - * @param ctx the parse tree - */ - void exitArguments(@NotNull Java8Parser.ArgumentsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#genericMethodDeclaration}. - * @param ctx the parse tree - */ - void enterGenericMethodDeclaration(@NotNull Java8Parser.GenericMethodDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#genericMethodDeclaration}. - * @param ctx the parse tree - */ - void exitGenericMethodDeclaration(@NotNull Java8Parser.GenericMethodDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeArgumentsOrDiamond}. - * @param ctx the parse tree - */ - void enterTypeArgumentsOrDiamond(@NotNull Java8Parser.TypeArgumentsOrDiamondContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeArgumentsOrDiamond}. - * @param ctx the parse tree - */ - void exitTypeArgumentsOrDiamond(@NotNull Java8Parser.TypeArgumentsOrDiamondContext ctx); -} \ No newline at end of file diff --git a/antlr/Java8Parser.java b/antlr/Java8Parser.java deleted file mode 100644 index 1ebb1841..00000000 --- a/antlr/Java8Parser.java +++ /dev/null @@ -1,7695 +0,0 @@ -// Generated from Java8.g4 by ANTLR 4.4 -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.misc.*; -import org.antlr.v4.runtime.tree.*; -import java.util.List; -import java.util.Iterator; -import java.util.ArrayList; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) -public class Java8Parser extends Parser { - static { RuntimeMetaData.checkVersion("4.4", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, - CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, - ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, - IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, - NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, - SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, - THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, - WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53, - CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58, - LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65, - ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73, - LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82, - MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ADD_ASSIGN=89, - SUB_ASSIGN=90, MUL_ASSIGN=91, DIV_ASSIGN=92, AND_ASSIGN=93, OR_ASSIGN=94, - XOR_ASSIGN=95, MOD_ASSIGN=96, LSHIFT_ASSIGN=97, RSHIFT_ASSIGN=98, URSHIFT_ASSIGN=99, - Identifier=100, AT=101, ELLIPSIS=102, WS=103, COMMENT=104, LINE_COMMENT=105; - public static final String[] tokenNames = { - "", "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", - "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", - "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", - "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", - "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", - "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", - "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", - "'transient'", "'try'", "'void'", "'volatile'", "'while'", "IntegerLiteral", - "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "StringLiteral", - "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", "';'", "','", "'.'", - "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", "'=='", "'<='", "'>='", - "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", "'-'", "'*'", "'/'", "'&'", - "'|'", "'^'", "'%'", "'+='", "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", - "'%='", "'<<='", "'>>='", "'>>>='", "Identifier", "'@'", "'...'", "WS", - "COMMENT", "LINE_COMMENT" - }; - public static final int - RULE_compilationUnit = 0, RULE_packageDeclaration = 1, RULE_importDeclaration = 2, - RULE_typeDeclaration = 3, RULE_modifier = 4, RULE_classOrInterfaceModifier = 5, - RULE_variableModifier = 6, RULE_classDeclaration = 7, RULE_typeParameters = 8, - RULE_typeParameter = 9, RULE_typeBound = 10, RULE_enumDeclaration = 11, - RULE_enumConstants = 12, RULE_enumConstant = 13, RULE_enumBodyDeclarations = 14, - RULE_interfaceDeclaration = 15, RULE_typeList = 16, RULE_classBody = 17, - RULE_interfaceBody = 18, RULE_classBodyDeclaration = 19, RULE_memberDeclaration = 20, - RULE_methodDeclaration = 21, RULE_genericMethodDeclaration = 22, RULE_constructorDeclaration = 23, - RULE_genericConstructorDeclaration = 24, RULE_fieldDeclaration = 25, RULE_interfaceBodyDeclaration = 26, - RULE_interfaceMemberDeclaration = 27, RULE_constDeclaration = 28, RULE_constantDeclarator = 29, - RULE_interfaceMethodDeclaration = 30, RULE_genericInterfaceMethodDeclaration = 31, - RULE_variableDeclarators = 32, RULE_variableDeclarator = 33, RULE_variableDeclaratorId = 34, - RULE_variableInitializer = 35, RULE_arrayInitializer = 36, RULE_enumConstantName = 37, - RULE_type = 38, RULE_classOrInterfaceType = 39, RULE_primitiveType = 40, - RULE_typeArguments = 41, RULE_typeArgument = 42, RULE_qualifiedNameList = 43, - RULE_formalParameters = 44, RULE_formalParameterList = 45, RULE_formalParameter = 46, - RULE_lastFormalParameter = 47, RULE_methodBody = 48, RULE_constructorBody = 49, - RULE_qualifiedName = 50, RULE_literal = 51, RULE_annotation = 52, RULE_annotationName = 53, - RULE_elementValuePairs = 54, RULE_elementValuePair = 55, RULE_elementValue = 56, - RULE_elementValueArrayInitializer = 57, RULE_annotationTypeDeclaration = 58, - RULE_annotationTypeBody = 59, RULE_annotationTypeElementDeclaration = 60, - RULE_annotationTypeElementRest = 61, RULE_annotationMethodOrConstantRest = 62, - RULE_annotationMethodRest = 63, RULE_annotationConstantRest = 64, RULE_defaultValue = 65, - RULE_block = 66, RULE_blockStatement = 67, RULE_localVariableDeclarationStatement = 68, - RULE_localVariableDeclaration = 69, RULE_statement = 70, RULE_catchClause = 71, - RULE_catchType = 72, RULE_finallyBlock = 73, RULE_resourceSpecification = 74, - RULE_resources = 75, RULE_resource = 76, RULE_switchBlockStatementGroup = 77, - RULE_switchLabel = 78, RULE_forControl = 79, RULE_forInit = 80, RULE_enhancedForControl = 81, - RULE_forUpdate = 82, RULE_parExpression = 83, RULE_expressionList = 84, - RULE_statementExpression = 85, RULE_constantExpression = 86, RULE_expression = 87, - RULE_primary = 88, RULE_creator = 89, RULE_createdName = 90, RULE_innerCreator = 91, - RULE_arrayCreatorRest = 92, RULE_classCreatorRest = 93, RULE_explicitGenericInvocation = 94, - RULE_nonWildcardTypeArguments = 95, RULE_typeArgumentsOrDiamond = 96, - RULE_nonWildcardTypeArgumentsOrDiamond = 97, RULE_superSuffix = 98, RULE_explicitGenericInvocationSuffix = 99, - RULE_arguments = 100; - public static final String[] ruleNames = { - "compilationUnit", "packageDeclaration", "importDeclaration", "typeDeclaration", - "modifier", "classOrInterfaceModifier", "variableModifier", "classDeclaration", - "typeParameters", "typeParameter", "typeBound", "enumDeclaration", "enumConstants", - "enumConstant", "enumBodyDeclarations", "interfaceDeclaration", "typeList", - "classBody", "interfaceBody", "classBodyDeclaration", "memberDeclaration", - "methodDeclaration", "genericMethodDeclaration", "constructorDeclaration", - "genericConstructorDeclaration", "fieldDeclaration", "interfaceBodyDeclaration", - "interfaceMemberDeclaration", "constDeclaration", "constantDeclarator", - "interfaceMethodDeclaration", "genericInterfaceMethodDeclaration", "variableDeclarators", - "variableDeclarator", "variableDeclaratorId", "variableInitializer", "arrayInitializer", - "enumConstantName", "type", "classOrInterfaceType", "primitiveType", "typeArguments", - "typeArgument", "qualifiedNameList", "formalParameters", "formalParameterList", - "formalParameter", "lastFormalParameter", "methodBody", "constructorBody", - "qualifiedName", "literal", "annotation", "annotationName", "elementValuePairs", - "elementValuePair", "elementValue", "elementValueArrayInitializer", "annotationTypeDeclaration", - "annotationTypeBody", "annotationTypeElementDeclaration", "annotationTypeElementRest", - "annotationMethodOrConstantRest", "annotationMethodRest", "annotationConstantRest", - "defaultValue", "block", "blockStatement", "localVariableDeclarationStatement", - "localVariableDeclaration", "statement", "catchClause", "catchType", "finallyBlock", - "resourceSpecification", "resources", "resource", "switchBlockStatementGroup", - "switchLabel", "forControl", "forInit", "enhancedForControl", "forUpdate", - "parExpression", "expressionList", "statementExpression", "constantExpression", - "expression", "primary", "creator", "createdName", "innerCreator", "arrayCreatorRest", - "classCreatorRest", "explicitGenericInvocation", "nonWildcardTypeArguments", - "typeArgumentsOrDiamond", "nonWildcardTypeArgumentsOrDiamond", "superSuffix", - "explicitGenericInvocationSuffix", "arguments" - }; - - @Override - public String getGrammarFileName() { return "Java8.g4"; } - - @Override - public String[] getTokenNames() { return tokenNames; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public ATN getATN() { return _ATN; } - - public Java8Parser(TokenStream input) { - super(input); - _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - public static class CompilationUnitContext extends ParserRuleContext { - public TypeDeclarationContext typeDeclaration(int i) { - return getRuleContext(TypeDeclarationContext.class,i); - } - public ImportDeclarationContext importDeclaration(int i) { - return getRuleContext(ImportDeclarationContext.class,i); - } - public List importDeclaration() { - return getRuleContexts(ImportDeclarationContext.class); - } - public TerminalNode EOF() { return getToken(Java8Parser.EOF, 0); } - public PackageDeclarationContext packageDeclaration() { - return getRuleContext(PackageDeclarationContext.class,0); - } - public List typeDeclaration() { - return getRuleContexts(TypeDeclarationContext.class); - } - public CompilationUnitContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_compilationUnit; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCompilationUnit(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCompilationUnit(this); - } - } - - public final CompilationUnitContext compilationUnit() throws RecognitionException { - CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, getState()); - enterRule(_localctx, 0, RULE_compilationUnit); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(203); - switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { - case 1: - { - setState(202); packageDeclaration(); - } - break; - } - setState(208); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==IMPORT) { - { - { - setState(205); importDeclaration(); - } - } - setState(210); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(214); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << CLASS) | (1L << ENUM) | (1L << FINAL) | (1L << INTERFACE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP) | (1L << SEMI))) != 0) || _la==AT) { - { - { - setState(211); typeDeclaration(); - } - } - setState(216); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(217); match(EOF); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PackageDeclarationContext extends ParserRuleContext { - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public QualifiedNameContext qualifiedName() { - return getRuleContext(QualifiedNameContext.class,0); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public PackageDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_packageDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageDeclaration(this); - } - } - - public final PackageDeclarationContext packageDeclaration() throws RecognitionException { - PackageDeclarationContext _localctx = new PackageDeclarationContext(_ctx, getState()); - enterRule(_localctx, 2, RULE_packageDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(222); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(219); annotation(); - } - } - setState(224); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(225); match(PACKAGE); - setState(226); qualifiedName(); - setState(227); match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ImportDeclarationContext extends ParserRuleContext { - public QualifiedNameContext qualifiedName() { - return getRuleContext(QualifiedNameContext.class,0); - } - public ImportDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_importDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterImportDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitImportDeclaration(this); - } - } - - public final ImportDeclarationContext importDeclaration() throws RecognitionException { - ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState()); - enterRule(_localctx, 4, RULE_importDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(229); match(IMPORT); - setState(231); - _la = _input.LA(1); - if (_la==STATIC) { - { - setState(230); match(STATIC); - } - } - - setState(233); qualifiedName(); - setState(236); - _la = _input.LA(1); - if (_la==DOT) { - { - setState(234); match(DOT); - setState(235); match(MUL); - } - } - - setState(238); match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeDeclarationContext extends ParserRuleContext { - public ClassOrInterfaceModifierContext classOrInterfaceModifier(int i) { - return getRuleContext(ClassOrInterfaceModifierContext.class,i); - } - public EnumDeclarationContext enumDeclaration() { - return getRuleContext(EnumDeclarationContext.class,0); - } - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public AnnotationTypeDeclarationContext annotationTypeDeclaration() { - return getRuleContext(AnnotationTypeDeclarationContext.class,0); - } - public List classOrInterfaceModifier() { - return getRuleContexts(ClassOrInterfaceModifierContext.class); - } - public InterfaceDeclarationContext interfaceDeclaration() { - return getRuleContext(InterfaceDeclarationContext.class,0); - } - public TypeDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeDeclaration(this); - } - } - - public final TypeDeclarationContext typeDeclaration() throws RecognitionException { - TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState()); - enterRule(_localctx, 6, RULE_typeDeclaration); - int _la; - try { - int _alt; - setState(269); - switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(243); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { - { - { - setState(240); classOrInterfaceModifier(); - } - } - setState(245); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(246); classDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(250); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { - { - { - setState(247); classOrInterfaceModifier(); - } - } - setState(252); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(253); enumDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(257); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { - { - { - setState(254); classOrInterfaceModifier(); - } - } - setState(259); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(260); interfaceDeclaration(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(264); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,9,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(261); classOrInterfaceModifier(); - } - } - } - setState(266); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,9,_ctx); - } - setState(267); annotationTypeDeclaration(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(268); match(SEMI); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ModifierContext extends ParserRuleContext { - public ClassOrInterfaceModifierContext classOrInterfaceModifier() { - return getRuleContext(ClassOrInterfaceModifierContext.class,0); - } - public ModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_modifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitModifier(this); - } - } - - public final ModifierContext modifier() throws RecognitionException { - ModifierContext _localctx = new ModifierContext(_ctx, getState()); - enterRule(_localctx, 8, RULE_modifier); - int _la; - try { - setState(273); - switch (_input.LA(1)) { - case ABSTRACT: - case FINAL: - case PRIVATE: - case PROTECTED: - case PUBLIC: - case STATIC: - case STRICTFP: - case AT: - enterOuterAlt(_localctx, 1); - { - setState(271); classOrInterfaceModifier(); - } - break; - case NATIVE: - case SYNCHRONIZED: - case TRANSIENT: - case VOLATILE: - enterOuterAlt(_localctx, 2); - { - setState(272); - _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NATIVE) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOLATILE))) != 0)) ) { - _errHandler.recoverInline(this); - } - consume(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassOrInterfaceModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public ClassOrInterfaceModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classOrInterfaceModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassOrInterfaceModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassOrInterfaceModifier(this); - } - } - - public final ClassOrInterfaceModifierContext classOrInterfaceModifier() throws RecognitionException { - ClassOrInterfaceModifierContext _localctx = new ClassOrInterfaceModifierContext(_ctx, getState()); - enterRule(_localctx, 10, RULE_classOrInterfaceModifier); - int _la; - try { - setState(277); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(275); annotation(); - } - break; - case ABSTRACT: - case FINAL: - case PRIVATE: - case PROTECTED: - case PUBLIC: - case STATIC: - case STRICTFP: - enterOuterAlt(_localctx, 2); - { - setState(276); - _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0)) ) { - _errHandler.recoverInline(this); - } - consume(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public VariableModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableModifier(this); - } - } - - public final VariableModifierContext variableModifier() throws RecognitionException { - VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState()); - enterRule(_localctx, 12, RULE_variableModifier); - try { - setState(281); - switch (_input.LA(1)) { - case FINAL: - enterOuterAlt(_localctx, 1); - { - setState(279); match(FINAL); - } - break; - case AT: - enterOuterAlt(_localctx, 2); - { - setState(280); annotation(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ClassBodyContext classBody() { - return getRuleContext(ClassBodyContext.class,0); - } - public TypeListContext typeList() { - return getRuleContext(TypeListContext.class,0); - } - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public ClassDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassDeclaration(this); - } - } - - public final ClassDeclarationContext classDeclaration() throws RecognitionException { - ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState()); - enterRule(_localctx, 14, RULE_classDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(283); match(CLASS); - setState(284); match(Identifier); - setState(286); - _la = _input.LA(1); - if (_la==LT) { - { - setState(285); typeParameters(); - } - } - - setState(290); - _la = _input.LA(1); - if (_la==EXTENDS) { - { - setState(288); match(EXTENDS); - setState(289); type(); - } - } - - setState(294); - _la = _input.LA(1); - if (_la==IMPLEMENTS) { - { - setState(292); match(IMPLEMENTS); - setState(293); typeList(); - } - } - - setState(296); classBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeParametersContext extends ParserRuleContext { - public List typeParameter() { - return getRuleContexts(TypeParameterContext.class); - } - public TypeParameterContext typeParameter(int i) { - return getRuleContext(TypeParameterContext.class,i); - } - public TypeParametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParameters; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameters(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameters(this); - } - } - - public final TypeParametersContext typeParameters() throws RecognitionException { - TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState()); - enterRule(_localctx, 16, RULE_typeParameters); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(298); match(LT); - setState(299); typeParameter(); - setState(304); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(300); match(COMMA); - setState(301); typeParameter(); - } - } - setState(306); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(307); match(GT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeParameterContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeBoundContext typeBound() { - return getRuleContext(TypeBoundContext.class,0); - } - public TypeParameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameter(this); - } - } - - public final TypeParameterContext typeParameter() throws RecognitionException { - TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState()); - enterRule(_localctx, 18, RULE_typeParameter); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(309); match(Identifier); - setState(312); - _la = _input.LA(1); - if (_la==EXTENDS) { - { - setState(310); match(EXTENDS); - setState(311); typeBound(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeBoundContext extends ParserRuleContext { - public TypeContext type(int i) { - return getRuleContext(TypeContext.class,i); - } - public List type() { - return getRuleContexts(TypeContext.class); - } - public TypeBoundContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeBound; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeBound(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeBound(this); - } - } - - public final TypeBoundContext typeBound() throws RecognitionException { - TypeBoundContext _localctx = new TypeBoundContext(_ctx, getState()); - enterRule(_localctx, 20, RULE_typeBound); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(314); type(); - setState(319); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==BITAND) { - { - { - setState(315); match(BITAND); - setState(316); type(); - } - } - setState(321); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumDeclarationContext extends ParserRuleContext { - public EnumBodyDeclarationsContext enumBodyDeclarations() { - return getRuleContext(EnumBodyDeclarationsContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeListContext typeList() { - return getRuleContext(TypeListContext.class,0); - } - public TerminalNode ENUM() { return getToken(Java8Parser.ENUM, 0); } - public EnumConstantsContext enumConstants() { - return getRuleContext(EnumConstantsContext.class,0); - } - public EnumDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumDeclaration(this); - } - } - - public final EnumDeclarationContext enumDeclaration() throws RecognitionException { - EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState()); - enterRule(_localctx, 22, RULE_enumDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(322); match(ENUM); - setState(323); match(Identifier); - setState(326); - _la = _input.LA(1); - if (_la==IMPLEMENTS) { - { - setState(324); match(IMPLEMENTS); - setState(325); typeList(); - } - } - - setState(328); match(LBRACE); - setState(330); - _la = _input.LA(1); - if (_la==Identifier || _la==AT) { - { - setState(329); enumConstants(); - } - } - - setState(333); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(332); match(COMMA); - } - } - - setState(336); - _la = _input.LA(1); - if (_la==SEMI) { - { - setState(335); enumBodyDeclarations(); - } - } - - setState(338); match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumConstantsContext extends ParserRuleContext { - public List enumConstant() { - return getRuleContexts(EnumConstantContext.class); - } - public EnumConstantContext enumConstant(int i) { - return getRuleContext(EnumConstantContext.class,i); - } - public EnumConstantsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumConstants; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstants(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstants(this); - } - } - - public final EnumConstantsContext enumConstants() throws RecognitionException { - EnumConstantsContext _localctx = new EnumConstantsContext(_ctx, getState()); - enterRule(_localctx, 24, RULE_enumConstants); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(340); enumConstant(); - setState(345); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,24,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(341); match(COMMA); - setState(342); enumConstant(); - } - } - } - setState(347); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,24,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumConstantContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public ClassBodyContext classBody() { - return getRuleContext(ClassBodyContext.class,0); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public ArgumentsContext arguments() { - return getRuleContext(ArgumentsContext.class,0); - } - public EnumConstantContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumConstant; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstant(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstant(this); - } - } - - public final EnumConstantContext enumConstant() throws RecognitionException { - EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState()); - enterRule(_localctx, 26, RULE_enumConstant); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(351); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(348); annotation(); - } - } - setState(353); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(354); match(Identifier); - setState(356); - _la = _input.LA(1); - if (_la==LPAREN) { - { - setState(355); arguments(); - } - } - - setState(359); - _la = _input.LA(1); - if (_la==LBRACE) { - { - setState(358); classBody(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumBodyDeclarationsContext extends ParserRuleContext { - public List classBodyDeclaration() { - return getRuleContexts(ClassBodyDeclarationContext.class); - } - public ClassBodyDeclarationContext classBodyDeclaration(int i) { - return getRuleContext(ClassBodyDeclarationContext.class,i); - } - public EnumBodyDeclarationsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumBodyDeclarations; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumBodyDeclarations(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBodyDeclarations(this); - } - } - - public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { - EnumBodyDeclarationsContext _localctx = new EnumBodyDeclarationsContext(_ctx, getState()); - enterRule(_localctx, 28, RULE_enumBodyDeclarations); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(361); match(SEMI); - setState(365); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { - { - { - setState(362); classBodyDeclaration(); - } - } - setState(367); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public InterfaceBodyContext interfaceBody() { - return getRuleContext(InterfaceBodyContext.class,0); - } - public TypeListContext typeList() { - return getRuleContext(TypeListContext.class,0); - } - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public InterfaceDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceDeclaration(this); - } - } - - public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { - InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); - enterRule(_localctx, 30, RULE_interfaceDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(368); match(INTERFACE); - setState(369); match(Identifier); - setState(371); - _la = _input.LA(1); - if (_la==LT) { - { - setState(370); typeParameters(); - } - } - - setState(375); - _la = _input.LA(1); - if (_la==EXTENDS) { - { - setState(373); match(EXTENDS); - setState(374); typeList(); - } - } - - setState(377); interfaceBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeListContext extends ParserRuleContext { - public TypeContext type(int i) { - return getRuleContext(TypeContext.class,i); - } - public List type() { - return getRuleContexts(TypeContext.class); - } - public TypeListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeList(this); - } - } - - public final TypeListContext typeList() throws RecognitionException { - TypeListContext _localctx = new TypeListContext(_ctx, getState()); - enterRule(_localctx, 32, RULE_typeList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(379); type(); - setState(384); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(380); match(COMMA); - setState(381); type(); - } - } - setState(386); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassBodyContext extends ParserRuleContext { - public List classBodyDeclaration() { - return getRuleContexts(ClassBodyDeclarationContext.class); - } - public ClassBodyDeclarationContext classBodyDeclaration(int i) { - return getRuleContext(ClassBodyDeclarationContext.class,i); - } - public ClassBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBody(this); - } - } - - public final ClassBodyContext classBody() throws RecognitionException { - ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState()); - enterRule(_localctx, 34, RULE_classBody); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(387); match(LBRACE); - setState(391); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { - { - { - setState(388); classBodyDeclaration(); - } - } - setState(393); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(394); match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceBodyContext extends ParserRuleContext { - public List interfaceBodyDeclaration() { - return getRuleContexts(InterfaceBodyDeclarationContext.class); - } - public InterfaceBodyDeclarationContext interfaceBodyDeclaration(int i) { - return getRuleContext(InterfaceBodyDeclarationContext.class,i); - } - public InterfaceBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceBody(this); - } - } - - public final InterfaceBodyContext interfaceBody() throws RecognitionException { - InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState()); - enterRule(_localctx, 36, RULE_interfaceBody); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(396); match(LBRACE); - setState(400); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { - { - { - setState(397); interfaceBodyDeclaration(); - } - } - setState(402); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(403); match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassBodyDeclarationContext extends ParserRuleContext { - public List modifier() { - return getRuleContexts(ModifierContext.class); - } - public MemberDeclarationContext memberDeclaration() { - return getRuleContext(MemberDeclarationContext.class,0); - } - public ModifierContext modifier(int i) { - return getRuleContext(ModifierContext.class,i); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public ClassBodyDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classBodyDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassBodyDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBodyDeclaration(this); - } - } - - public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { - ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState()); - enterRule(_localctx, 38, RULE_classBodyDeclaration); - int _la; - try { - int _alt; - setState(417); - switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(405); match(SEMI); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(407); - _la = _input.LA(1); - if (_la==STATIC) { - { - setState(406); match(STATIC); - } - } - - setState(409); block(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(413); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,35,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(410); modifier(); - } - } - } - setState(415); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,35,_ctx); - } - setState(416); memberDeclaration(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MemberDeclarationContext extends ParserRuleContext { - public GenericMethodDeclarationContext genericMethodDeclaration() { - return getRuleContext(GenericMethodDeclarationContext.class,0); - } - public MethodDeclarationContext methodDeclaration() { - return getRuleContext(MethodDeclarationContext.class,0); - } - public EnumDeclarationContext enumDeclaration() { - return getRuleContext(EnumDeclarationContext.class,0); - } - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public AnnotationTypeDeclarationContext annotationTypeDeclaration() { - return getRuleContext(AnnotationTypeDeclarationContext.class,0); - } - public GenericConstructorDeclarationContext genericConstructorDeclaration() { - return getRuleContext(GenericConstructorDeclarationContext.class,0); - } - public InterfaceDeclarationContext interfaceDeclaration() { - return getRuleContext(InterfaceDeclarationContext.class,0); - } - public ConstructorDeclarationContext constructorDeclaration() { - return getRuleContext(ConstructorDeclarationContext.class,0); - } - public FieldDeclarationContext fieldDeclaration() { - return getRuleContext(FieldDeclarationContext.class,0); - } - public MemberDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_memberDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMemberDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMemberDeclaration(this); - } - } - - public final MemberDeclarationContext memberDeclaration() throws RecognitionException { - MemberDeclarationContext _localctx = new MemberDeclarationContext(_ctx, getState()); - enterRule(_localctx, 40, RULE_memberDeclaration); - try { - setState(428); - switch ( getInterpreter().adaptivePredict(_input,37,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(419); methodDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(420); genericMethodDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(421); fieldDeclaration(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(422); constructorDeclaration(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(423); genericConstructorDeclaration(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(424); interfaceDeclaration(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(425); annotationTypeDeclaration(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(426); classDeclaration(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(427); enumDeclaration(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public MethodBodyContext methodBody() { - return getRuleContext(MethodBodyContext.class,0); - } - public QualifiedNameListContext qualifiedNameList() { - return getRuleContext(QualifiedNameListContext.class,0); - } - public FormalParametersContext formalParameters() { - return getRuleContext(FormalParametersContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public MethodDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclaration(this); - } - } - - public final MethodDeclarationContext methodDeclaration() throws RecognitionException { - MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState()); - enterRule(_localctx, 42, RULE_methodDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(432); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case Identifier: - { - setState(430); type(); - } - break; - case VOID: - { - setState(431); match(VOID); - } - break; - default: - throw new NoViableAltException(this); - } - setState(434); match(Identifier); - setState(435); formalParameters(); - setState(440); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(436); match(LBRACK); - setState(437); match(RBRACK); - } - } - setState(442); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(445); - _la = _input.LA(1); - if (_la==THROWS) { - { - setState(443); match(THROWS); - setState(444); qualifiedNameList(); - } - } - - setState(449); - switch (_input.LA(1)) { - case LBRACE: - { - setState(447); methodBody(); - } - break; - case SEMI: - { - setState(448); match(SEMI); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class GenericMethodDeclarationContext extends ParserRuleContext { - public MethodDeclarationContext methodDeclaration() { - return getRuleContext(MethodDeclarationContext.class,0); - } - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public GenericMethodDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericMethodDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterGenericMethodDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitGenericMethodDeclaration(this); - } - } - - public final GenericMethodDeclarationContext genericMethodDeclaration() throws RecognitionException { - GenericMethodDeclarationContext _localctx = new GenericMethodDeclarationContext(_ctx, getState()); - enterRule(_localctx, 44, RULE_genericMethodDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(451); typeParameters(); - setState(452); methodDeclaration(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstructorDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ConstructorBodyContext constructorBody() { - return getRuleContext(ConstructorBodyContext.class,0); - } - public QualifiedNameListContext qualifiedNameList() { - return getRuleContext(QualifiedNameListContext.class,0); - } - public FormalParametersContext formalParameters() { - return getRuleContext(FormalParametersContext.class,0); - } - public ConstructorDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constructorDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclaration(this); - } - } - - public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { - ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState()); - enterRule(_localctx, 46, RULE_constructorDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(454); match(Identifier); - setState(455); formalParameters(); - setState(458); - _la = _input.LA(1); - if (_la==THROWS) { - { - setState(456); match(THROWS); - setState(457); qualifiedNameList(); - } - } - - setState(460); constructorBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class GenericConstructorDeclarationContext extends ParserRuleContext { - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public ConstructorDeclarationContext constructorDeclaration() { - return getRuleContext(ConstructorDeclarationContext.class,0); - } - public GenericConstructorDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericConstructorDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterGenericConstructorDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitGenericConstructorDeclaration(this); - } - } - - public final GenericConstructorDeclarationContext genericConstructorDeclaration() throws RecognitionException { - GenericConstructorDeclarationContext _localctx = new GenericConstructorDeclarationContext(_ctx, getState()); - enterRule(_localctx, 48, RULE_genericConstructorDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(462); typeParameters(); - setState(463); constructorDeclaration(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FieldDeclarationContext extends ParserRuleContext { - public VariableDeclaratorsContext variableDeclarators() { - return getRuleContext(VariableDeclaratorsContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public FieldDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_fieldDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldDeclaration(this); - } - } - - public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { - FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState()); - enterRule(_localctx, 50, RULE_fieldDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(465); type(); - setState(466); variableDeclarators(); - setState(467); match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceBodyDeclarationContext extends ParserRuleContext { - public List modifier() { - return getRuleContexts(ModifierContext.class); - } - public ModifierContext modifier(int i) { - return getRuleContext(ModifierContext.class,i); - } - public InterfaceMemberDeclarationContext interfaceMemberDeclaration() { - return getRuleContext(InterfaceMemberDeclarationContext.class,0); - } - public InterfaceBodyDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceBodyDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceBodyDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceBodyDeclaration(this); - } - } - - public final InterfaceBodyDeclarationContext interfaceBodyDeclaration() throws RecognitionException { - InterfaceBodyDeclarationContext _localctx = new InterfaceBodyDeclarationContext(_ctx, getState()); - enterRule(_localctx, 52, RULE_interfaceBodyDeclaration); - try { - int _alt; - setState(477); - switch (_input.LA(1)) { - case ABSTRACT: - case BOOLEAN: - case BYTE: - case CHAR: - case CLASS: - case DOUBLE: - case ENUM: - case FINAL: - case FLOAT: - case INT: - case INTERFACE: - case LONG: - case NATIVE: - case PRIVATE: - case PROTECTED: - case PUBLIC: - case SHORT: - case STATIC: - case STRICTFP: - case SYNCHRONIZED: - case TRANSIENT: - case VOID: - case VOLATILE: - case LT: - case Identifier: - case AT: - enterOuterAlt(_localctx, 1); - { - setState(472); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,43,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(469); modifier(); - } - } - } - setState(474); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,43,_ctx); - } - setState(475); interfaceMemberDeclaration(); - } - break; - case SEMI: - enterOuterAlt(_localctx, 2); - { - setState(476); match(SEMI); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceMemberDeclarationContext extends ParserRuleContext { - public EnumDeclarationContext enumDeclaration() { - return getRuleContext(EnumDeclarationContext.class,0); - } - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public GenericInterfaceMethodDeclarationContext genericInterfaceMethodDeclaration() { - return getRuleContext(GenericInterfaceMethodDeclarationContext.class,0); - } - public AnnotationTypeDeclarationContext annotationTypeDeclaration() { - return getRuleContext(AnnotationTypeDeclarationContext.class,0); - } - public InterfaceDeclarationContext interfaceDeclaration() { - return getRuleContext(InterfaceDeclarationContext.class,0); - } - public ConstDeclarationContext constDeclaration() { - return getRuleContext(ConstDeclarationContext.class,0); - } - public InterfaceMethodDeclarationContext interfaceMethodDeclaration() { - return getRuleContext(InterfaceMethodDeclarationContext.class,0); - } - public InterfaceMemberDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceMemberDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMemberDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMemberDeclaration(this); - } - } - - public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { - InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState()); - enterRule(_localctx, 54, RULE_interfaceMemberDeclaration); - try { - setState(486); - switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(479); constDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(480); interfaceMethodDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(481); genericInterfaceMethodDeclaration(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(482); interfaceDeclaration(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(483); annotationTypeDeclaration(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(484); classDeclaration(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(485); enumDeclaration(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstDeclarationContext extends ParserRuleContext { - public ConstantDeclaratorContext constantDeclarator(int i) { - return getRuleContext(ConstantDeclaratorContext.class,i); - } - public List constantDeclarator() { - return getRuleContexts(ConstantDeclaratorContext.class); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public ConstDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstDeclaration(this); - } - } - - public final ConstDeclarationContext constDeclaration() throws RecognitionException { - ConstDeclarationContext _localctx = new ConstDeclarationContext(_ctx, getState()); - enterRule(_localctx, 56, RULE_constDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(488); type(); - setState(489); constantDeclarator(); - setState(494); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(490); match(COMMA); - setState(491); constantDeclarator(); - } - } - setState(496); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(497); match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstantDeclaratorContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public VariableInitializerContext variableInitializer() { - return getRuleContext(VariableInitializerContext.class,0); - } - public ConstantDeclaratorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constantDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantDeclarator(this); - } - } - - public final ConstantDeclaratorContext constantDeclarator() throws RecognitionException { - ConstantDeclaratorContext _localctx = new ConstantDeclaratorContext(_ctx, getState()); - enterRule(_localctx, 58, RULE_constantDeclarator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(499); match(Identifier); - setState(504); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(500); match(LBRACK); - setState(501); match(RBRACK); - } - } - setState(506); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(507); match(ASSIGN); - setState(508); variableInitializer(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceMethodDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public QualifiedNameListContext qualifiedNameList() { - return getRuleContext(QualifiedNameListContext.class,0); - } - public FormalParametersContext formalParameters() { - return getRuleContext(FormalParametersContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public InterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceMethodDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodDeclaration(this); - } - } - - public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { - InterfaceMethodDeclarationContext _localctx = new InterfaceMethodDeclarationContext(_ctx, getState()); - enterRule(_localctx, 60, RULE_interfaceMethodDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(512); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case Identifier: - { - setState(510); type(); - } - break; - case VOID: - { - setState(511); match(VOID); - } - break; - default: - throw new NoViableAltException(this); - } - setState(514); match(Identifier); - setState(515); formalParameters(); - setState(520); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(516); match(LBRACK); - setState(517); match(RBRACK); - } - } - setState(522); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(525); - _la = _input.LA(1); - if (_la==THROWS) { - { - setState(523); match(THROWS); - setState(524); qualifiedNameList(); - } - } - - setState(527); match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class GenericInterfaceMethodDeclarationContext extends ParserRuleContext { - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public InterfaceMethodDeclarationContext interfaceMethodDeclaration() { - return getRuleContext(InterfaceMethodDeclarationContext.class,0); - } - public GenericInterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericInterfaceMethodDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterGenericInterfaceMethodDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitGenericInterfaceMethodDeclaration(this); - } - } - - public final GenericInterfaceMethodDeclarationContext genericInterfaceMethodDeclaration() throws RecognitionException { - GenericInterfaceMethodDeclarationContext _localctx = new GenericInterfaceMethodDeclarationContext(_ctx, getState()); - enterRule(_localctx, 62, RULE_genericInterfaceMethodDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(529); typeParameters(); - setState(530); interfaceMethodDeclaration(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableDeclaratorsContext extends ParserRuleContext { - public List variableDeclarator() { - return getRuleContexts(VariableDeclaratorContext.class); - } - public VariableDeclaratorContext variableDeclarator(int i) { - return getRuleContext(VariableDeclaratorContext.class,i); - } - public VariableDeclaratorsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableDeclarators; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclarators(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclarators(this); - } - } - - public final VariableDeclaratorsContext variableDeclarators() throws RecognitionException { - VariableDeclaratorsContext _localctx = new VariableDeclaratorsContext(_ctx, getState()); - enterRule(_localctx, 64, RULE_variableDeclarators); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(532); variableDeclarator(); - setState(537); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(533); match(COMMA); - setState(534); variableDeclarator(); - } - } - setState(539); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableDeclaratorContext extends ParserRuleContext { - public VariableInitializerContext variableInitializer() { - return getRuleContext(VariableInitializerContext.class,0); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public VariableDeclaratorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclarator(this); - } - } - - public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { - VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState()); - enterRule(_localctx, 66, RULE_variableDeclarator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(540); variableDeclaratorId(); - setState(543); - _la = _input.LA(1); - if (_la==ASSIGN) { - { - setState(541); match(ASSIGN); - setState(542); variableInitializer(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableDeclaratorIdContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public VariableDeclaratorIdContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableDeclaratorId; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorId(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorId(this); - } - } - - public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { - VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState()); - enterRule(_localctx, 68, RULE_variableDeclaratorId); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(545); match(Identifier); - setState(550); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(546); match(LBRACK); - setState(547); match(RBRACK); - } - } - setState(552); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableInitializerContext extends ParserRuleContext { - public ArrayInitializerContext arrayInitializer() { - return getRuleContext(ArrayInitializerContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public VariableInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializer(this); - } - } - - public final VariableInitializerContext variableInitializer() throws RecognitionException { - VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); - enterRule(_localctx, 70, RULE_variableInitializer); - try { - setState(555); - switch (_input.LA(1)) { - case LBRACE: - enterOuterAlt(_localctx, 1); - { - setState(553); arrayInitializer(); - } - break; - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case NEW: - case SHORT: - case SUPER: - case THIS: - case VOID: - case IntegerLiteral: - case FloatingPointLiteral: - case BooleanLiteral: - case CharacterLiteral: - case StringLiteral: - case NullLiteral: - case LPAREN: - case LT: - case BANG: - case TILDE: - case INC: - case DEC: - case ADD: - case SUB: - case Identifier: - enterOuterAlt(_localctx, 2); - { - setState(554); expression(0); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrayInitializerContext extends ParserRuleContext { - public List variableInitializer() { - return getRuleContexts(VariableInitializerContext.class); - } - public VariableInitializerContext variableInitializer(int i) { - return getRuleContext(VariableInitializerContext.class,i); - } - public ArrayInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayInitializer(this); - } - } - - public final ArrayInitializerContext arrayInitializer() throws RecognitionException { - ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState()); - enterRule(_localctx, 72, RULE_arrayInitializer); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(557); match(LBRACE); - setState(569); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) { - { - setState(558); variableInitializer(); - setState(563); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,55,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(559); match(COMMA); - setState(560); variableInitializer(); - } - } - } - setState(565); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,55,_ctx); - } - setState(567); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(566); match(COMMA); - } - } - - } - } - - setState(571); match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumConstantNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public EnumConstantNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumConstantName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantName(this); - } - } - - public final EnumConstantNameContext enumConstantName() throws RecognitionException { - EnumConstantNameContext _localctx = new EnumConstantNameContext(_ctx, getState()); - enterRule(_localctx, 74, RULE_enumConstantName); - try { - enterOuterAlt(_localctx, 1); - { - setState(573); match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeContext extends ParserRuleContext { - public PrimitiveTypeContext primitiveType() { - return getRuleContext(PrimitiveTypeContext.class,0); - } - public ClassOrInterfaceTypeContext classOrInterfaceType() { - return getRuleContext(ClassOrInterfaceTypeContext.class,0); - } - public TypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_type; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitType(this); - } - } - - public final TypeContext type() throws RecognitionException { - TypeContext _localctx = new TypeContext(_ctx, getState()); - enterRule(_localctx, 76, RULE_type); - try { - int _alt; - setState(591); - switch (_input.LA(1)) { - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(575); classOrInterfaceType(); - setState(580); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,58,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(576); match(LBRACK); - setState(577); match(RBRACK); - } - } - } - setState(582); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,58,_ctx); - } - } - break; - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - enterOuterAlt(_localctx, 2); - { - setState(583); primitiveType(); - setState(588); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,59,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(584); match(LBRACK); - setState(585); match(RBRACK); - } - } - } - setState(590); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,59,_ctx); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassOrInterfaceTypeContext extends ParserRuleContext { - public List typeArguments() { - return getRuleContexts(TypeArgumentsContext.class); - } - public List Identifier() { return getTokens(Java8Parser.Identifier); } - public TerminalNode Identifier(int i) { - return getToken(Java8Parser.Identifier, i); - } - public TypeArgumentsContext typeArguments(int i) { - return getRuleContext(TypeArgumentsContext.class,i); - } - public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassOrInterfaceType(this); - } - } - - public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { - ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 78, RULE_classOrInterfaceType); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(593); match(Identifier); - setState(595); - switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) { - case 1: - { - setState(594); typeArguments(); - } - break; - } - setState(604); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,63,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(597); match(DOT); - setState(598); match(Identifier); - setState(600); - switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) { - case 1: - { - setState(599); typeArguments(); - } - break; - } - } - } - } - setState(606); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,63,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimitiveTypeContext extends ParserRuleContext { - public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primitiveType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimitiveType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimitiveType(this); - } - } - - public final PrimitiveTypeContext primitiveType() throws RecognitionException { - PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); - enterRule(_localctx, 80, RULE_primitiveType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(607); - _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0)) ) { - _errHandler.recoverInline(this); - } - consume(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeArgumentsContext extends ParserRuleContext { - public List typeArgument() { - return getRuleContexts(TypeArgumentContext.class); - } - public TypeArgumentContext typeArgument(int i) { - return getRuleContext(TypeArgumentContext.class,i); - } - public TypeArgumentsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeArguments; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArguments(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArguments(this); - } - } - - public final TypeArgumentsContext typeArguments() throws RecognitionException { - TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); - enterRule(_localctx, 82, RULE_typeArguments); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(609); match(LT); - setState(610); typeArgument(); - setState(615); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(611); match(COMMA); - setState(612); typeArgument(); - } - } - setState(617); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(618); match(GT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeArgumentContext extends ParserRuleContext { - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public TypeArgumentContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeArgument; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgument(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgument(this); - } - } - - public final TypeArgumentContext typeArgument() throws RecognitionException { - TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState()); - enterRule(_localctx, 84, RULE_typeArgument); - int _la; - try { - setState(626); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(620); type(); - } - break; - case QUESTION: - enterOuterAlt(_localctx, 2); - { - setState(621); match(QUESTION); - setState(624); - _la = _input.LA(1); - if (_la==EXTENDS || _la==SUPER) { - { - setState(622); - _la = _input.LA(1); - if ( !(_la==EXTENDS || _la==SUPER) ) { - _errHandler.recoverInline(this); - } - consume(); - setState(623); type(); - } - } - - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class QualifiedNameListContext extends ParserRuleContext { - public List qualifiedName() { - return getRuleContexts(QualifiedNameContext.class); - } - public QualifiedNameContext qualifiedName(int i) { - return getRuleContext(QualifiedNameContext.class,i); - } - public QualifiedNameListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_qualifiedNameList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterQualifiedNameList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitQualifiedNameList(this); - } - } - - public final QualifiedNameListContext qualifiedNameList() throws RecognitionException { - QualifiedNameListContext _localctx = new QualifiedNameListContext(_ctx, getState()); - enterRule(_localctx, 86, RULE_qualifiedNameList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(628); qualifiedName(); - setState(633); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(629); match(COMMA); - setState(630); qualifiedName(); - } - } - setState(635); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FormalParametersContext extends ParserRuleContext { - public FormalParameterListContext formalParameterList() { - return getRuleContext(FormalParameterListContext.class,0); - } - public FormalParametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_formalParameters; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameters(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameters(this); - } - } - - public final FormalParametersContext formalParameters() throws RecognitionException { - FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState()); - enterRule(_localctx, 88, RULE_formalParameters); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(636); match(LPAREN); - setState(638); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { - { - setState(637); formalParameterList(); - } - } - - setState(640); match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FormalParameterListContext extends ParserRuleContext { - public List formalParameter() { - return getRuleContexts(FormalParameterContext.class); - } - public LastFormalParameterContext lastFormalParameter() { - return getRuleContext(LastFormalParameterContext.class,0); - } - public FormalParameterContext formalParameter(int i) { - return getRuleContext(FormalParameterContext.class,i); - } - public FormalParameterListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_formalParameterList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameterList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameterList(this); - } - } - - public final FormalParameterListContext formalParameterList() throws RecognitionException { - FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); - enterRule(_localctx, 90, RULE_formalParameterList); - int _la; - try { - int _alt; - setState(655); - switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(642); formalParameter(); - setState(647); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,69,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(643); match(COMMA); - setState(644); formalParameter(); - } - } - } - setState(649); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,69,_ctx); - } - setState(652); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(650); match(COMMA); - setState(651); lastFormalParameter(); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(654); lastFormalParameter(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FormalParameterContext extends ParserRuleContext { - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public FormalParameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_formalParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameter(this); - } - } - - public final FormalParameterContext formalParameter() throws RecognitionException { - FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState()); - enterRule(_localctx, 92, RULE_formalParameter); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(660); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(657); variableModifier(); - } - } - setState(662); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(663); type(); - setState(664); variableDeclaratorId(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LastFormalParameterContext extends ParserRuleContext { - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public LastFormalParameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lastFormalParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLastFormalParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLastFormalParameter(this); - } - } - - public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { - LastFormalParameterContext _localctx = new LastFormalParameterContext(_ctx, getState()); - enterRule(_localctx, 94, RULE_lastFormalParameter); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(669); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(666); variableModifier(); - } - } - setState(671); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(672); type(); - setState(673); match(ELLIPSIS); - setState(674); variableDeclaratorId(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodBodyContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public MethodBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodBody(this); - } - } - - public final MethodBodyContext methodBody() throws RecognitionException { - MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); - enterRule(_localctx, 96, RULE_methodBody); - try { - enterOuterAlt(_localctx, 1); - { - setState(676); block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstructorBodyContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public ConstructorBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constructorBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorBody(this); - } - } - - public final ConstructorBodyContext constructorBody() throws RecognitionException { - ConstructorBodyContext _localctx = new ConstructorBodyContext(_ctx, getState()); - enterRule(_localctx, 98, RULE_constructorBody); - try { - enterOuterAlt(_localctx, 1); - { - setState(678); block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class QualifiedNameContext extends ParserRuleContext { - public List Identifier() { return getTokens(Java8Parser.Identifier); } - public TerminalNode Identifier(int i) { - return getToken(Java8Parser.Identifier, i); - } - public QualifiedNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_qualifiedName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterQualifiedName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitQualifiedName(this); - } - } - - public final QualifiedNameContext qualifiedName() throws RecognitionException { - QualifiedNameContext _localctx = new QualifiedNameContext(_ctx, getState()); - enterRule(_localctx, 100, RULE_qualifiedName); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(680); match(Identifier); - setState(685); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,74,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(681); match(DOT); - setState(682); match(Identifier); - } - } - } - setState(687); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,74,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LiteralContext extends ParserRuleContext { - public TerminalNode StringLiteral() { return getToken(Java8Parser.StringLiteral, 0); } - public TerminalNode IntegerLiteral() { return getToken(Java8Parser.IntegerLiteral, 0); } - public TerminalNode FloatingPointLiteral() { return getToken(Java8Parser.FloatingPointLiteral, 0); } - public TerminalNode BooleanLiteral() { return getToken(Java8Parser.BooleanLiteral, 0); } - public TerminalNode CharacterLiteral() { return getToken(Java8Parser.CharacterLiteral, 0); } - public LiteralContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_literal; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLiteral(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLiteral(this); - } - } - - public final LiteralContext literal() throws RecognitionException { - LiteralContext _localctx = new LiteralContext(_ctx, getState()); - enterRule(_localctx, 102, RULE_literal); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(688); - _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral))) != 0)) ) { - _errHandler.recoverInline(this); - } - consume(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationContext extends ParserRuleContext { - public ElementValuePairsContext elementValuePairs() { - return getRuleContext(ElementValuePairsContext.class,0); - } - public AnnotationNameContext annotationName() { - return getRuleContext(AnnotationNameContext.class,0); - } - public ElementValueContext elementValue() { - return getRuleContext(ElementValueContext.class,0); - } - public AnnotationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotation(this); - } - } - - public final AnnotationContext annotation() throws RecognitionException { - AnnotationContext _localctx = new AnnotationContext(_ctx, getState()); - enterRule(_localctx, 104, RULE_annotation); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(690); match(AT); - setState(691); annotationName(); - setState(698); - _la = _input.LA(1); - if (_la==LPAREN) { - { - setState(692); match(LPAREN); - setState(695); - switch ( getInterpreter().adaptivePredict(_input,75,_ctx) ) { - case 1: - { - setState(693); elementValuePairs(); - } - break; - case 2: - { - setState(694); elementValue(); - } - break; - } - setState(697); match(RPAREN); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationNameContext extends ParserRuleContext { - public QualifiedNameContext qualifiedName() { - return getRuleContext(QualifiedNameContext.class,0); - } - public AnnotationNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationName(this); - } - } - - public final AnnotationNameContext annotationName() throws RecognitionException { - AnnotationNameContext _localctx = new AnnotationNameContext(_ctx, getState()); - enterRule(_localctx, 106, RULE_annotationName); - try { - enterOuterAlt(_localctx, 1); - { - setState(700); qualifiedName(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValuePairsContext extends ParserRuleContext { - public ElementValuePairContext elementValuePair(int i) { - return getRuleContext(ElementValuePairContext.class,i); - } - public List elementValuePair() { - return getRuleContexts(ElementValuePairContext.class); - } - public ElementValuePairsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValuePairs; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePairs(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePairs(this); - } - } - - public final ElementValuePairsContext elementValuePairs() throws RecognitionException { - ElementValuePairsContext _localctx = new ElementValuePairsContext(_ctx, getState()); - enterRule(_localctx, 108, RULE_elementValuePairs); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(702); elementValuePair(); - setState(707); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(703); match(COMMA); - setState(704); elementValuePair(); - } - } - setState(709); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValuePairContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ElementValueContext elementValue() { - return getRuleContext(ElementValueContext.class,0); - } - public ElementValuePairContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValuePair; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePair(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePair(this); - } - } - - public final ElementValuePairContext elementValuePair() throws RecognitionException { - ElementValuePairContext _localctx = new ElementValuePairContext(_ctx, getState()); - enterRule(_localctx, 110, RULE_elementValuePair); - try { - enterOuterAlt(_localctx, 1); - { - setState(710); match(Identifier); - setState(711); match(ASSIGN); - setState(712); elementValue(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValueContext extends ParserRuleContext { - public ElementValueArrayInitializerContext elementValueArrayInitializer() { - return getRuleContext(ElementValueArrayInitializerContext.class,0); - } - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ElementValueContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValue; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValue(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValue(this); - } - } - - public final ElementValueContext elementValue() throws RecognitionException { - ElementValueContext _localctx = new ElementValueContext(_ctx, getState()); - enterRule(_localctx, 112, RULE_elementValue); - try { - setState(717); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case NEW: - case SHORT: - case SUPER: - case THIS: - case VOID: - case IntegerLiteral: - case FloatingPointLiteral: - case BooleanLiteral: - case CharacterLiteral: - case StringLiteral: - case NullLiteral: - case LPAREN: - case LT: - case BANG: - case TILDE: - case INC: - case DEC: - case ADD: - case SUB: - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(714); expression(0); - } - break; - case AT: - enterOuterAlt(_localctx, 2); - { - setState(715); annotation(); - } - break; - case LBRACE: - enterOuterAlt(_localctx, 3); - { - setState(716); elementValueArrayInitializer(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValueArrayInitializerContext extends ParserRuleContext { - public ElementValueContext elementValue(int i) { - return getRuleContext(ElementValueContext.class,i); - } - public List elementValue() { - return getRuleContexts(ElementValueContext.class); - } - public ElementValueArrayInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValueArrayInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValueArrayInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueArrayInitializer(this); - } - } - - public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { - ElementValueArrayInitializerContext _localctx = new ElementValueArrayInitializerContext(_ctx, getState()); - enterRule(_localctx, 114, RULE_elementValueArrayInitializer); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(719); match(LBRACE); - setState(728); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { - { - setState(720); elementValue(); - setState(725); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,79,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(721); match(COMMA); - setState(722); elementValue(); - } - } - } - setState(727); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,79,_ctx); - } - } - } - - setState(731); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(730); match(COMMA); - } - } - - setState(733); match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public AnnotationTypeBodyContext annotationTypeBody() { - return getRuleContext(AnnotationTypeBodyContext.class,0); - } - public AnnotationTypeDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeDeclaration(this); - } - } - - public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { - AnnotationTypeDeclarationContext _localctx = new AnnotationTypeDeclarationContext(_ctx, getState()); - enterRule(_localctx, 116, RULE_annotationTypeDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(735); match(AT); - setState(736); match(INTERFACE); - setState(737); match(Identifier); - setState(738); annotationTypeBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeBodyContext extends ParserRuleContext { - public List annotationTypeElementDeclaration() { - return getRuleContexts(AnnotationTypeElementDeclarationContext.class); - } - public AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration(int i) { - return getRuleContext(AnnotationTypeElementDeclarationContext.class,i); - } - public AnnotationTypeBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeBody(this); - } - } - - public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { - AnnotationTypeBodyContext _localctx = new AnnotationTypeBodyContext(_ctx, getState()); - enterRule(_localctx, 118, RULE_annotationTypeBody); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(740); match(LBRACE); - setState(744); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOLATILE) | (1L << SEMI))) != 0) || _la==Identifier || _la==AT) { - { - { - setState(741); annotationTypeElementDeclaration(); - } - } - setState(746); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(747); match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeElementDeclarationContext extends ParserRuleContext { - public List modifier() { - return getRuleContexts(ModifierContext.class); - } - public AnnotationTypeElementRestContext annotationTypeElementRest() { - return getRuleContext(AnnotationTypeElementRestContext.class,0); - } - public ModifierContext modifier(int i) { - return getRuleContext(ModifierContext.class,i); - } - public AnnotationTypeElementDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeElementDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementDeclaration(this); - } - } - - public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { - AnnotationTypeElementDeclarationContext _localctx = new AnnotationTypeElementDeclarationContext(_ctx, getState()); - enterRule(_localctx, 120, RULE_annotationTypeElementDeclaration); - try { - int _alt; - setState(757); - switch (_input.LA(1)) { - case ABSTRACT: - case BOOLEAN: - case BYTE: - case CHAR: - case CLASS: - case DOUBLE: - case ENUM: - case FINAL: - case FLOAT: - case INT: - case INTERFACE: - case LONG: - case NATIVE: - case PRIVATE: - case PROTECTED: - case PUBLIC: - case SHORT: - case STATIC: - case STRICTFP: - case SYNCHRONIZED: - case TRANSIENT: - case VOLATILE: - case Identifier: - case AT: - enterOuterAlt(_localctx, 1); - { - setState(752); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,83,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(749); modifier(); - } - } - } - setState(754); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,83,_ctx); - } - setState(755); annotationTypeElementRest(); - } - break; - case SEMI: - enterOuterAlt(_localctx, 2); - { - setState(756); match(SEMI); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeElementRestContext extends ParserRuleContext { - public EnumDeclarationContext enumDeclaration() { - return getRuleContext(EnumDeclarationContext.class,0); - } - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public AnnotationMethodOrConstantRestContext annotationMethodOrConstantRest() { - return getRuleContext(AnnotationMethodOrConstantRestContext.class,0); - } - public AnnotationTypeDeclarationContext annotationTypeDeclaration() { - return getRuleContext(AnnotationTypeDeclarationContext.class,0); - } - public InterfaceDeclarationContext interfaceDeclaration() { - return getRuleContext(InterfaceDeclarationContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public AnnotationTypeElementRestContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeElementRest; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementRest(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementRest(this); - } - } - - public final AnnotationTypeElementRestContext annotationTypeElementRest() throws RecognitionException { - AnnotationTypeElementRestContext _localctx = new AnnotationTypeElementRestContext(_ctx, getState()); - enterRule(_localctx, 122, RULE_annotationTypeElementRest); - try { - setState(779); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(759); type(); - setState(760); annotationMethodOrConstantRest(); - setState(761); match(SEMI); - } - break; - case CLASS: - enterOuterAlt(_localctx, 2); - { - setState(763); classDeclaration(); - setState(765); - switch ( getInterpreter().adaptivePredict(_input,85,_ctx) ) { - case 1: - { - setState(764); match(SEMI); - } - break; - } - } - break; - case INTERFACE: - enterOuterAlt(_localctx, 3); - { - setState(767); interfaceDeclaration(); - setState(769); - switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) { - case 1: - { - setState(768); match(SEMI); - } - break; - } - } - break; - case ENUM: - enterOuterAlt(_localctx, 4); - { - setState(771); enumDeclaration(); - setState(773); - switch ( getInterpreter().adaptivePredict(_input,87,_ctx) ) { - case 1: - { - setState(772); match(SEMI); - } - break; - } - } - break; - case AT: - enterOuterAlt(_localctx, 5); - { - setState(775); annotationTypeDeclaration(); - setState(777); - switch ( getInterpreter().adaptivePredict(_input,88,_ctx) ) { - case 1: - { - setState(776); match(SEMI); - } - break; - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationMethodOrConstantRestContext extends ParserRuleContext { - public AnnotationMethodRestContext annotationMethodRest() { - return getRuleContext(AnnotationMethodRestContext.class,0); - } - public AnnotationConstantRestContext annotationConstantRest() { - return getRuleContext(AnnotationConstantRestContext.class,0); - } - public AnnotationMethodOrConstantRestContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationMethodOrConstantRest; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationMethodOrConstantRest(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationMethodOrConstantRest(this); - } - } - - public final AnnotationMethodOrConstantRestContext annotationMethodOrConstantRest() throws RecognitionException { - AnnotationMethodOrConstantRestContext _localctx = new AnnotationMethodOrConstantRestContext(_ctx, getState()); - enterRule(_localctx, 124, RULE_annotationMethodOrConstantRest); - try { - setState(783); - switch ( getInterpreter().adaptivePredict(_input,90,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(781); annotationMethodRest(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(782); annotationConstantRest(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationMethodRestContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public DefaultValueContext defaultValue() { - return getRuleContext(DefaultValueContext.class,0); - } - public AnnotationMethodRestContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationMethodRest; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationMethodRest(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationMethodRest(this); - } - } - - public final AnnotationMethodRestContext annotationMethodRest() throws RecognitionException { - AnnotationMethodRestContext _localctx = new AnnotationMethodRestContext(_ctx, getState()); - enterRule(_localctx, 126, RULE_annotationMethodRest); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(785); match(Identifier); - setState(786); match(LPAREN); - setState(787); match(RPAREN); - setState(789); - _la = _input.LA(1); - if (_la==DEFAULT) { - { - setState(788); defaultValue(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationConstantRestContext extends ParserRuleContext { - public VariableDeclaratorsContext variableDeclarators() { - return getRuleContext(VariableDeclaratorsContext.class,0); - } - public AnnotationConstantRestContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationConstantRest; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationConstantRest(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationConstantRest(this); - } - } - - public final AnnotationConstantRestContext annotationConstantRest() throws RecognitionException { - AnnotationConstantRestContext _localctx = new AnnotationConstantRestContext(_ctx, getState()); - enterRule(_localctx, 128, RULE_annotationConstantRest); - try { - enterOuterAlt(_localctx, 1); - { - setState(791); variableDeclarators(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DefaultValueContext extends ParserRuleContext { - public ElementValueContext elementValue() { - return getRuleContext(ElementValueContext.class,0); - } - public DefaultValueContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_defaultValue; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDefaultValue(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDefaultValue(this); - } - } - - public final DefaultValueContext defaultValue() throws RecognitionException { - DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState()); - enterRule(_localctx, 130, RULE_defaultValue); - try { - enterOuterAlt(_localctx, 1); - { - setState(793); match(DEFAULT); - setState(794); elementValue(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BlockContext extends ParserRuleContext { - public List blockStatement() { - return getRuleContexts(BlockStatementContext.class); - } - public BlockStatementContext blockStatement(int i) { - return getRuleContext(BlockStatementContext.class,i); - } - public BlockContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_block; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlock(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlock(this); - } - } - - public final BlockContext block() throws RecognitionException { - BlockContext _localctx = new BlockContext(_ctx, getState()); - enterRule(_localctx, 132, RULE_block); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(796); match(LBRACE); - setState(800); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { - { - { - setState(797); blockStatement(); - } - } - setState(802); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(803); match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BlockStatementContext extends ParserRuleContext { - public TypeDeclarationContext typeDeclaration() { - return getRuleContext(TypeDeclarationContext.class,0); - } - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public LocalVariableDeclarationStatementContext localVariableDeclarationStatement() { - return getRuleContext(LocalVariableDeclarationStatementContext.class,0); - } - public BlockStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_blockStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlockStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatement(this); - } - } - - public final BlockStatementContext blockStatement() throws RecognitionException { - BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState()); - enterRule(_localctx, 134, RULE_blockStatement); - try { - setState(808); - switch ( getInterpreter().adaptivePredict(_input,93,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(805); localVariableDeclarationStatement(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(806); statement(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(807); typeDeclaration(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LocalVariableDeclarationStatementContext extends ParserRuleContext { - public LocalVariableDeclarationContext localVariableDeclaration() { - return getRuleContext(LocalVariableDeclarationContext.class,0); - } - public LocalVariableDeclarationStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_localVariableDeclarationStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclarationStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclarationStatement(this); - } - } - - public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException { - LocalVariableDeclarationStatementContext _localctx = new LocalVariableDeclarationStatementContext(_ctx, getState()); - enterRule(_localctx, 136, RULE_localVariableDeclarationStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(810); localVariableDeclaration(); - setState(811); match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LocalVariableDeclarationContext extends ParserRuleContext { - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableDeclaratorsContext variableDeclarators() { - return getRuleContext(VariableDeclaratorsContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public LocalVariableDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_localVariableDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclaration(this); - } - } - - public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { - LocalVariableDeclarationContext _localctx = new LocalVariableDeclarationContext(_ctx, getState()); - enterRule(_localctx, 138, RULE_localVariableDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(816); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(813); variableModifier(); - } - } - setState(818); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(819); type(); - setState(820); variableDeclarators(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StatementContext extends ParserRuleContext { - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public StatementExpressionContext statementExpression() { - return getRuleContext(StatementExpressionContext.class,0); - } - public StatementContext statement(int i) { - return getRuleContext(StatementContext.class,i); - } - public List switchLabel() { - return getRuleContexts(SwitchLabelContext.class); - } - public List switchBlockStatementGroup() { - return getRuleContexts(SwitchBlockStatementGroupContext.class); - } - public ParExpressionContext parExpression() { - return getRuleContext(ParExpressionContext.class,0); - } - public List catchClause() { - return getRuleContexts(CatchClauseContext.class); - } - public CatchClauseContext catchClause(int i) { - return getRuleContext(CatchClauseContext.class,i); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public FinallyBlockContext finallyBlock() { - return getRuleContext(FinallyBlockContext.class,0); - } - public SwitchBlockStatementGroupContext switchBlockStatementGroup(int i) { - return getRuleContext(SwitchBlockStatementGroupContext.class,i); - } - public ForControlContext forControl() { - return getRuleContext(ForControlContext.class,0); - } - public TerminalNode ASSERT() { return getToken(Java8Parser.ASSERT, 0); } - public ResourceSpecificationContext resourceSpecification() { - return getRuleContext(ResourceSpecificationContext.class,0); - } - public List statement() { - return getRuleContexts(StatementContext.class); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public SwitchLabelContext switchLabel(int i) { - return getRuleContext(SwitchLabelContext.class,i); - } - public StatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatement(this); - } - } - - public final StatementContext statement() throws RecognitionException { - StatementContext _localctx = new StatementContext(_ctx, getState()); - enterRule(_localctx, 140, RULE_statement); - int _la; - try { - int _alt; - setState(926); - switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(822); block(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(823); match(ASSERT); - setState(824); expression(0); - setState(827); - _la = _input.LA(1); - if (_la==COLON) { - { - setState(825); match(COLON); - setState(826); expression(0); - } - } - - setState(829); match(SEMI); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(831); match(IF); - setState(832); parExpression(); - setState(833); statement(); - setState(836); - switch ( getInterpreter().adaptivePredict(_input,96,_ctx) ) { - case 1: - { - setState(834); match(ELSE); - setState(835); statement(); - } - break; - } - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(838); match(FOR); - setState(839); match(LPAREN); - setState(840); forControl(); - setState(841); match(RPAREN); - setState(842); statement(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(844); match(WHILE); - setState(845); parExpression(); - setState(846); statement(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(848); match(DO); - setState(849); statement(); - setState(850); match(WHILE); - setState(851); parExpression(); - setState(852); match(SEMI); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(854); match(TRY); - setState(855); block(); - setState(865); - switch (_input.LA(1)) { - case CATCH: - { - setState(857); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(856); catchClause(); - } - } - setState(859); - _errHandler.sync(this); - _la = _input.LA(1); - } while ( _la==CATCH ); - setState(862); - _la = _input.LA(1); - if (_la==FINALLY) { - { - setState(861); finallyBlock(); - } - } - - } - break; - case FINALLY: - { - setState(864); finallyBlock(); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(867); match(TRY); - setState(868); resourceSpecification(); - setState(869); block(); - setState(873); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==CATCH) { - { - { - setState(870); catchClause(); - } - } - setState(875); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(877); - _la = _input.LA(1); - if (_la==FINALLY) { - { - setState(876); finallyBlock(); - } - } - - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(879); match(SWITCH); - setState(880); parExpression(); - setState(881); match(LBRACE); - setState(885); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,102,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(882); switchBlockStatementGroup(); - } - } - } - setState(887); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,102,_ctx); - } - setState(891); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==CASE || _la==DEFAULT) { - { - { - setState(888); switchLabel(); - } - } - setState(893); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(894); match(RBRACE); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(896); match(SYNCHRONIZED); - setState(897); parExpression(); - setState(898); block(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(900); match(RETURN); - setState(902); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) { - { - setState(901); expression(0); - } - } - - setState(904); match(SEMI); - } - break; - case 12: - enterOuterAlt(_localctx, 12); - { - setState(905); match(THROW); - setState(906); expression(0); - setState(907); match(SEMI); - } - break; - case 13: - enterOuterAlt(_localctx, 13); - { - setState(909); match(BREAK); - setState(911); - _la = _input.LA(1); - if (_la==Identifier) { - { - setState(910); match(Identifier); - } - } - - setState(913); match(SEMI); - } - break; - case 14: - enterOuterAlt(_localctx, 14); - { - setState(914); match(CONTINUE); - setState(916); - _la = _input.LA(1); - if (_la==Identifier) { - { - setState(915); match(Identifier); - } - } - - setState(918); match(SEMI); - } - break; - case 15: - enterOuterAlt(_localctx, 15); - { - setState(919); match(SEMI); - } - break; - case 16: - enterOuterAlt(_localctx, 16); - { - setState(920); statementExpression(); - setState(921); match(SEMI); - } - break; - case 17: - enterOuterAlt(_localctx, 17); - { - setState(923); match(Identifier); - setState(924); match(COLON); - setState(925); statement(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CatchClauseContext extends ParserRuleContext { - public CatchTypeContext catchType() { - return getRuleContext(CatchTypeContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public CatchClauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_catchClause; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchClause(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchClause(this); - } - } - - public final CatchClauseContext catchClause() throws RecognitionException { - CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); - enterRule(_localctx, 142, RULE_catchClause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(928); match(CATCH); - setState(929); match(LPAREN); - setState(933); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(930); variableModifier(); - } - } - setState(935); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(936); catchType(); - setState(937); match(Identifier); - setState(938); match(RPAREN); - setState(939); block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CatchTypeContext extends ParserRuleContext { - public List qualifiedName() { - return getRuleContexts(QualifiedNameContext.class); - } - public QualifiedNameContext qualifiedName(int i) { - return getRuleContext(QualifiedNameContext.class,i); - } - public CatchTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_catchType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchType(this); - } - } - - public final CatchTypeContext catchType() throws RecognitionException { - CatchTypeContext _localctx = new CatchTypeContext(_ctx, getState()); - enterRule(_localctx, 144, RULE_catchType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(941); qualifiedName(); - setState(946); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==BITOR) { - { - { - setState(942); match(BITOR); - setState(943); qualifiedName(); - } - } - setState(948); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FinallyBlockContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public FinallyBlockContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_finallyBlock; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFinallyBlock(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFinallyBlock(this); - } - } - - public final FinallyBlockContext finallyBlock() throws RecognitionException { - FinallyBlockContext _localctx = new FinallyBlockContext(_ctx, getState()); - enterRule(_localctx, 146, RULE_finallyBlock); - try { - enterOuterAlt(_localctx, 1); - { - setState(949); match(FINALLY); - setState(950); block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ResourceSpecificationContext extends ParserRuleContext { - public ResourcesContext resources() { - return getRuleContext(ResourcesContext.class,0); - } - public ResourceSpecificationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_resourceSpecification; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResourceSpecification(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceSpecification(this); - } - } - - public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { - ResourceSpecificationContext _localctx = new ResourceSpecificationContext(_ctx, getState()); - enterRule(_localctx, 148, RULE_resourceSpecification); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(952); match(LPAREN); - setState(953); resources(); - setState(955); - _la = _input.LA(1); - if (_la==SEMI) { - { - setState(954); match(SEMI); - } - } - - setState(957); match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ResourcesContext extends ParserRuleContext { - public ResourceContext resource(int i) { - return getRuleContext(ResourceContext.class,i); - } - public List resource() { - return getRuleContexts(ResourceContext.class); - } - public ResourcesContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_resources; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResources(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResources(this); - } - } - - public final ResourcesContext resources() throws RecognitionException { - ResourcesContext _localctx = new ResourcesContext(_ctx, getState()); - enterRule(_localctx, 150, RULE_resources); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(959); resource(); - setState(964); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,111,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(960); match(SEMI); - setState(961); resource(); - } - } - } - setState(966); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,111,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ResourceContext extends ParserRuleContext { - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public ClassOrInterfaceTypeContext classOrInterfaceType() { - return getRuleContext(ClassOrInterfaceTypeContext.class,0); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ResourceContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_resource; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResource(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResource(this); - } - } - - public final ResourceContext resource() throws RecognitionException { - ResourceContext _localctx = new ResourceContext(_ctx, getState()); - enterRule(_localctx, 152, RULE_resource); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(970); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(967); variableModifier(); - } - } - setState(972); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(973); classOrInterfaceType(); - setState(974); variableDeclaratorId(); - setState(975); match(ASSIGN); - setState(976); expression(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SwitchBlockStatementGroupContext extends ParserRuleContext { - public List blockStatement() { - return getRuleContexts(BlockStatementContext.class); - } - public List switchLabel() { - return getRuleContexts(SwitchLabelContext.class); - } - public BlockStatementContext blockStatement(int i) { - return getRuleContext(BlockStatementContext.class,i); - } - public SwitchLabelContext switchLabel(int i) { - return getRuleContext(SwitchLabelContext.class,i); - } - public SwitchBlockStatementGroupContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_switchBlockStatementGroup; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchBlockStatementGroup(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlockStatementGroup(this); - } - } - - public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { - SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState()); - enterRule(_localctx, 154, RULE_switchBlockStatementGroup); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(979); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(978); switchLabel(); - } - } - setState(981); - _errHandler.sync(this); - _la = _input.LA(1); - } while ( _la==CASE || _la==DEFAULT ); - setState(984); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(983); blockStatement(); - } - } - setState(986); - _errHandler.sync(this); - _la = _input.LA(1); - } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0) ); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SwitchLabelContext extends ParserRuleContext { - public ConstantExpressionContext constantExpression() { - return getRuleContext(ConstantExpressionContext.class,0); - } - public EnumConstantNameContext enumConstantName() { - return getRuleContext(EnumConstantNameContext.class,0); - } - public SwitchLabelContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_switchLabel; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchLabel(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabel(this); - } - } - - public final SwitchLabelContext switchLabel() throws RecognitionException { - SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); - enterRule(_localctx, 156, RULE_switchLabel); - try { - setState(998); - switch ( getInterpreter().adaptivePredict(_input,115,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(988); match(CASE); - setState(989); constantExpression(); - setState(990); match(COLON); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(992); match(CASE); - setState(993); enumConstantName(); - setState(994); match(COLON); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(996); match(DEFAULT); - setState(997); match(COLON); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForControlContext extends ParserRuleContext { - public ForUpdateContext forUpdate() { - return getRuleContext(ForUpdateContext.class,0); - } - public ForInitContext forInit() { - return getRuleContext(ForInitContext.class,0); - } - public EnhancedForControlContext enhancedForControl() { - return getRuleContext(EnhancedForControlContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ForControlContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forControl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForControl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForControl(this); - } - } - - public final ForControlContext forControl() throws RecognitionException { - ForControlContext _localctx = new ForControlContext(_ctx, getState()); - enterRule(_localctx, 158, RULE_forControl); - int _la; - try { - setState(1012); - switch ( getInterpreter().adaptivePredict(_input,119,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1000); enhancedForControl(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1002); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { - { - setState(1001); forInit(); - } - } - - setState(1004); match(SEMI); - setState(1006); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) { - { - setState(1005); expression(0); - } - } - - setState(1008); match(SEMI); - setState(1010); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) { - { - setState(1009); forUpdate(); - } - } - - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForInitContext extends ParserRuleContext { - public LocalVariableDeclarationContext localVariableDeclaration() { - return getRuleContext(LocalVariableDeclarationContext.class,0); - } - public ExpressionListContext expressionList() { - return getRuleContext(ExpressionListContext.class,0); - } - public ForInitContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forInit; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForInit(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForInit(this); - } - } - - public final ForInitContext forInit() throws RecognitionException { - ForInitContext _localctx = new ForInitContext(_ctx, getState()); - enterRule(_localctx, 160, RULE_forInit); - try { - setState(1016); - switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1014); localVariableDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1015); expressionList(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnhancedForControlContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public EnhancedForControlContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enhancedForControl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForControl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForControl(this); - } - } - - public final EnhancedForControlContext enhancedForControl() throws RecognitionException { - EnhancedForControlContext _localctx = new EnhancedForControlContext(_ctx, getState()); - enterRule(_localctx, 162, RULE_enhancedForControl); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1021); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(1018); variableModifier(); - } - } - setState(1023); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1024); type(); - setState(1025); match(Identifier); - setState(1026); match(COLON); - setState(1027); expression(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForUpdateContext extends ParserRuleContext { - public ExpressionListContext expressionList() { - return getRuleContext(ExpressionListContext.class,0); - } - public ForUpdateContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forUpdate; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForUpdate(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForUpdate(this); - } - } - - public final ForUpdateContext forUpdate() throws RecognitionException { - ForUpdateContext _localctx = new ForUpdateContext(_ctx, getState()); - enterRule(_localctx, 164, RULE_forUpdate); - try { - enterOuterAlt(_localctx, 1); - { - setState(1029); expressionList(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ParExpressionContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ParExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_parExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterParExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitParExpression(this); - } - } - - public final ParExpressionContext parExpression() throws RecognitionException { - ParExpressionContext _localctx = new ParExpressionContext(_ctx, getState()); - enterRule(_localctx, 166, RULE_parExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1031); match(LPAREN); - setState(1032); expression(0); - setState(1033); match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExpressionListContext extends ParserRuleContext { - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expressionList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionList(this); - } - } - - public final ExpressionListContext expressionList() throws RecognitionException { - ExpressionListContext _localctx = new ExpressionListContext(_ctx, getState()); - enterRule(_localctx, 168, RULE_expressionList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1035); expression(0); - setState(1040); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(1036); match(COMMA); - setState(1037); expression(0); - } - } - setState(1042); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StatementExpressionContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StatementExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpression(this); - } - } - - public final StatementExpressionContext statementExpression() throws RecognitionException { - StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState()); - enterRule(_localctx, 170, RULE_statementExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1043); expression(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstantExpressionContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ConstantExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constantExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantExpression(this); - } - } - - public final ConstantExpressionContext constantExpression() throws RecognitionException { - ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState()); - enterRule(_localctx, 172, RULE_constantExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1045); expression(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExpressionContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { - return getRuleContext(NonWildcardTypeArgumentsContext.class,0); - } - public ExplicitGenericInvocationContext explicitGenericInvocation() { - return getRuleContext(ExplicitGenericInvocationContext.class,0); - } - public ExpressionListContext expressionList() { - return getRuleContext(ExpressionListContext.class,0); - } - public InnerCreatorContext innerCreator() { - return getRuleContext(InnerCreatorContext.class,0); - } - public SuperSuffixContext superSuffix() { - return getRuleContext(SuperSuffixContext.class,0); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public CreatorContext creator() { - return getRuleContext(CreatorContext.class,0); - } - public ExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpression(this); - } - } - - public final ExpressionContext expression() throws RecognitionException { - return expression(0); - } - - private ExpressionContext expression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState); - ExpressionContext _prevctx = _localctx; - int _startState = 174; - enterRecursionRule(_localctx, 174, RULE_expression, _p); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1060); - switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) { - case 1: - { - setState(1048); match(LPAREN); - setState(1049); type(); - setState(1050); match(RPAREN); - setState(1051); expression(17); - } - break; - case 2: - { - setState(1053); - _la = _input.LA(1); - if ( !(((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (ADD - 79)) | (1L << (SUB - 79)))) != 0)) ) { - _errHandler.recoverInline(this); - } - consume(); - setState(1054); expression(15); - } - break; - case 3: - { - setState(1055); - _la = _input.LA(1); - if ( !(_la==BANG || _la==TILDE) ) { - _errHandler.recoverInline(this); - } - consume(); - setState(1056); expression(14); - } - break; - case 4: - { - setState(1057); primary(); - } - break; - case 5: - { - setState(1058); match(NEW); - setState(1059); creator(); - } - break; - } - _ctx.stop = _input.LT(-1); - setState(1147); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,128,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(1145); - switch ( getInterpreter().adaptivePredict(_input,127,_ctx) ) { - case 1: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1062); - if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)"); - setState(1063); - _la = _input.LA(1); - if ( !(((((_la - 83)) & ~0x3f) == 0 && ((1L << (_la - 83)) & ((1L << (MUL - 83)) | (1L << (DIV - 83)) | (1L << (MOD - 83)))) != 0)) ) { - _errHandler.recoverInline(this); - } - consume(); - setState(1064); expression(14); - } - break; - case 2: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1065); - if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)"); - setState(1066); - _la = _input.LA(1); - if ( !(_la==ADD || _la==SUB) ) { - _errHandler.recoverInline(this); - } - consume(); - setState(1067); expression(13); - } - break; - case 3: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1068); - if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)"); - setState(1076); - switch ( getInterpreter().adaptivePredict(_input,124,_ctx) ) { - case 1: - { - setState(1069); match(LT); - setState(1070); match(LT); - } - break; - case 2: - { - setState(1071); match(GT); - setState(1072); match(GT); - setState(1073); match(GT); - } - break; - case 3: - { - setState(1074); match(GT); - setState(1075); match(GT); - } - break; - } - setState(1078); expression(12); - } - break; - case 4: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1079); - if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); - setState(1080); - _la = _input.LA(1); - if ( !(((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (GT - 67)) | (1L << (LT - 67)) | (1L << (LE - 67)) | (1L << (GE - 67)))) != 0)) ) { - _errHandler.recoverInline(this); - } - consume(); - setState(1081); expression(11); - } - break; - case 5: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1082); - if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); - setState(1083); - _la = _input.LA(1); - if ( !(_la==EQUAL || _la==NOTEQUAL) ) { - _errHandler.recoverInline(this); - } - consume(); - setState(1084); expression(9); - } - break; - case 6: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1085); - if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); - setState(1086); match(BITAND); - setState(1087); expression(8); - } - break; - case 7: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1088); - if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); - setState(1089); match(CARET); - setState(1090); expression(7); - } - break; - case 8: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1091); - if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); - setState(1092); match(BITOR); - setState(1093); expression(6); - } - break; - case 9: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1094); - if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(1095); match(AND); - setState(1096); expression(5); - } - break; - case 10: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1097); - if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(1098); match(OR); - setState(1099); expression(4); - } - break; - case 11: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1100); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(1101); match(QUESTION); - setState(1102); expression(0); - setState(1103); match(COLON); - setState(1104); expression(3); - } - break; - case 12: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1106); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(1107); - _la = _input.LA(1); - if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (ASSIGN - 66)) | (1L << (ADD_ASSIGN - 66)) | (1L << (SUB_ASSIGN - 66)) | (1L << (MUL_ASSIGN - 66)) | (1L << (DIV_ASSIGN - 66)) | (1L << (AND_ASSIGN - 66)) | (1L << (OR_ASSIGN - 66)) | (1L << (XOR_ASSIGN - 66)) | (1L << (MOD_ASSIGN - 66)) | (1L << (LSHIFT_ASSIGN - 66)) | (1L << (RSHIFT_ASSIGN - 66)) | (1L << (URSHIFT_ASSIGN - 66)))) != 0)) ) { - _errHandler.recoverInline(this); - } - consume(); - setState(1108); expression(2); - } - break; - case 13: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1109); - if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)"); - setState(1110); match(DOT); - setState(1111); match(Identifier); - } - break; - case 14: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1112); - if (!(precpred(_ctx, 24))) throw new FailedPredicateException(this, "precpred(_ctx, 24)"); - setState(1113); match(DOT); - setState(1114); match(THIS); - } - break; - case 15: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1115); - if (!(precpred(_ctx, 23))) throw new FailedPredicateException(this, "precpred(_ctx, 23)"); - setState(1116); match(DOT); - setState(1117); match(NEW); - setState(1119); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1118); nonWildcardTypeArguments(); - } - } - - setState(1121); innerCreator(); - } - break; - case 16: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1122); - if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)"); - setState(1123); match(DOT); - setState(1124); match(SUPER); - setState(1125); superSuffix(); - } - break; - case 17: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1126); - if (!(precpred(_ctx, 21))) throw new FailedPredicateException(this, "precpred(_ctx, 21)"); - setState(1127); match(DOT); - setState(1128); explicitGenericInvocation(); - } - break; - case 18: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1129); - if (!(precpred(_ctx, 20))) throw new FailedPredicateException(this, "precpred(_ctx, 20)"); - setState(1130); match(LBRACK); - setState(1131); expression(0); - setState(1132); match(RBRACK); - } - break; - case 19: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1134); - if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)"); - setState(1135); match(LPAREN); - setState(1137); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) { - { - setState(1136); expressionList(); - } - } - - setState(1139); match(RPAREN); - } - break; - case 20: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1140); - if (!(precpred(_ctx, 16))) throw new FailedPredicateException(this, "precpred(_ctx, 16)"); - setState(1141); - _la = _input.LA(1); - if ( !(_la==INC || _la==DEC) ) { - _errHandler.recoverInline(this); - } - consume(); - } - break; - case 21: - { - _localctx = new ExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1142); - if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); - setState(1143); match(INSTANCEOF); - setState(1144); type(); - } - break; - } - } - } - setState(1149); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,128,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class PrimaryContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { - return getRuleContext(NonWildcardTypeArgumentsContext.class,0); - } - public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() { - return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0); - } - public LiteralContext literal() { - return getRuleContext(LiteralContext.class,0); - } - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public ArgumentsContext arguments() { - return getRuleContext(ArgumentsContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public PrimaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimary(this); - } - } - - public final PrimaryContext primary() throws RecognitionException { - PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); - enterRule(_localctx, 176, RULE_primary); - try { - setState(1171); - switch ( getInterpreter().adaptivePredict(_input,130,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1150); match(LPAREN); - setState(1151); expression(0); - setState(1152); match(RPAREN); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1154); match(THIS); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1155); match(SUPER); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1156); literal(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1157); match(Identifier); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1158); type(); - setState(1159); match(DOT); - setState(1160); match(CLASS); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1162); match(VOID); - setState(1163); match(DOT); - setState(1164); match(CLASS); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1165); nonWildcardTypeArguments(); - setState(1169); - switch (_input.LA(1)) { - case SUPER: - case Identifier: - { - setState(1166); explicitGenericInvocationSuffix(); - } - break; - case THIS: - { - setState(1167); match(THIS); - setState(1168); arguments(); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CreatorContext extends ParserRuleContext { - public ArrayCreatorRestContext arrayCreatorRest() { - return getRuleContext(ArrayCreatorRestContext.class,0); - } - public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { - return getRuleContext(NonWildcardTypeArgumentsContext.class,0); - } - public ClassCreatorRestContext classCreatorRest() { - return getRuleContext(ClassCreatorRestContext.class,0); - } - public CreatedNameContext createdName() { - return getRuleContext(CreatedNameContext.class,0); - } - public CreatorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_creator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCreator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCreator(this); - } - } - - public final CreatorContext creator() throws RecognitionException { - CreatorContext _localctx = new CreatorContext(_ctx, getState()); - enterRule(_localctx, 178, RULE_creator); - try { - setState(1182); - switch (_input.LA(1)) { - case LT: - enterOuterAlt(_localctx, 1); - { - setState(1173); nonWildcardTypeArguments(); - setState(1174); createdName(); - setState(1175); classCreatorRest(); - } - break; - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case Identifier: - enterOuterAlt(_localctx, 2); - { - setState(1177); createdName(); - setState(1180); - switch (_input.LA(1)) { - case LBRACK: - { - setState(1178); arrayCreatorRest(); - } - break; - case LPAREN: - { - setState(1179); classCreatorRest(); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CreatedNameContext extends ParserRuleContext { - public List Identifier() { return getTokens(Java8Parser.Identifier); } - public TerminalNode Identifier(int i) { - return getToken(Java8Parser.Identifier, i); - } - public List typeArgumentsOrDiamond() { - return getRuleContexts(TypeArgumentsOrDiamondContext.class); - } - public PrimitiveTypeContext primitiveType() { - return getRuleContext(PrimitiveTypeContext.class,0); - } - public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond(int i) { - return getRuleContext(TypeArgumentsOrDiamondContext.class,i); - } - public CreatedNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_createdName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCreatedName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCreatedName(this); - } - } - - public final CreatedNameContext createdName() throws RecognitionException { - CreatedNameContext _localctx = new CreatedNameContext(_ctx, getState()); - enterRule(_localctx, 180, RULE_createdName); - int _la; - try { - setState(1199); - switch (_input.LA(1)) { - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(1184); match(Identifier); - setState(1186); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1185); typeArgumentsOrDiamond(); - } - } - - setState(1195); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==DOT) { - { - { - setState(1188); match(DOT); - setState(1189); match(Identifier); - setState(1191); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1190); typeArgumentsOrDiamond(); - } - } - - } - } - setState(1197); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - break; - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - enterOuterAlt(_localctx, 2); - { - setState(1198); primitiveType(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InnerCreatorContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ClassCreatorRestContext classCreatorRest() { - return getRuleContext(ClassCreatorRestContext.class,0); - } - public NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() { - return getRuleContext(NonWildcardTypeArgumentsOrDiamondContext.class,0); - } - public InnerCreatorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_innerCreator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInnerCreator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInnerCreator(this); - } - } - - public final InnerCreatorContext innerCreator() throws RecognitionException { - InnerCreatorContext _localctx = new InnerCreatorContext(_ctx, getState()); - enterRule(_localctx, 182, RULE_innerCreator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1201); match(Identifier); - setState(1203); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1202); nonWildcardTypeArgumentsOrDiamond(); - } - } - - setState(1205); classCreatorRest(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrayCreatorRestContext extends ParserRuleContext { - public ArrayInitializerContext arrayInitializer() { - return getRuleContext(ArrayInitializerContext.class,0); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ArrayCreatorRestContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayCreatorRest; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayCreatorRest(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayCreatorRest(this); - } - } - - public final ArrayCreatorRestContext arrayCreatorRest() throws RecognitionException { - ArrayCreatorRestContext _localctx = new ArrayCreatorRestContext(_ctx, getState()); - enterRule(_localctx, 184, RULE_arrayCreatorRest); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1207); match(LBRACK); - setState(1235); - switch (_input.LA(1)) { - case RBRACK: - { - setState(1208); match(RBRACK); - setState(1213); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(1209); match(LBRACK); - setState(1210); match(RBRACK); - } - } - setState(1215); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1216); arrayInitializer(); - } - break; - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case NEW: - case SHORT: - case SUPER: - case THIS: - case VOID: - case IntegerLiteral: - case FloatingPointLiteral: - case BooleanLiteral: - case CharacterLiteral: - case StringLiteral: - case NullLiteral: - case LPAREN: - case LT: - case BANG: - case TILDE: - case INC: - case DEC: - case ADD: - case SUB: - case Identifier: - { - setState(1217); expression(0); - setState(1218); match(RBRACK); - setState(1225); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,139,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1219); match(LBRACK); - setState(1220); expression(0); - setState(1221); match(RBRACK); - } - } - } - setState(1227); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,139,_ctx); - } - setState(1232); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,140,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1228); match(LBRACK); - setState(1229); match(RBRACK); - } - } - } - setState(1234); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,140,_ctx); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassCreatorRestContext extends ParserRuleContext { - public ClassBodyContext classBody() { - return getRuleContext(ClassBodyContext.class,0); - } - public ArgumentsContext arguments() { - return getRuleContext(ArgumentsContext.class,0); - } - public ClassCreatorRestContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classCreatorRest; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassCreatorRest(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassCreatorRest(this); - } - } - - public final ClassCreatorRestContext classCreatorRest() throws RecognitionException { - ClassCreatorRestContext _localctx = new ClassCreatorRestContext(_ctx, getState()); - enterRule(_localctx, 186, RULE_classCreatorRest); - try { - enterOuterAlt(_localctx, 1); - { - setState(1237); arguments(); - setState(1239); - switch ( getInterpreter().adaptivePredict(_input,142,_ctx) ) { - case 1: - { - setState(1238); classBody(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExplicitGenericInvocationContext extends ParserRuleContext { - public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { - return getRuleContext(NonWildcardTypeArgumentsContext.class,0); - } - public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() { - return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0); - } - public ExplicitGenericInvocationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_explicitGenericInvocation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExplicitGenericInvocation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExplicitGenericInvocation(this); - } - } - - public final ExplicitGenericInvocationContext explicitGenericInvocation() throws RecognitionException { - ExplicitGenericInvocationContext _localctx = new ExplicitGenericInvocationContext(_ctx, getState()); - enterRule(_localctx, 188, RULE_explicitGenericInvocation); - try { - enterOuterAlt(_localctx, 1); - { - setState(1241); nonWildcardTypeArguments(); - setState(1242); explicitGenericInvocationSuffix(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class NonWildcardTypeArgumentsContext extends ParserRuleContext { - public TypeListContext typeList() { - return getRuleContext(TypeListContext.class,0); - } - public NonWildcardTypeArgumentsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_nonWildcardTypeArguments; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNonWildcardTypeArguments(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNonWildcardTypeArguments(this); - } - } - - public final NonWildcardTypeArgumentsContext nonWildcardTypeArguments() throws RecognitionException { - NonWildcardTypeArgumentsContext _localctx = new NonWildcardTypeArgumentsContext(_ctx, getState()); - enterRule(_localctx, 190, RULE_nonWildcardTypeArguments); - try { - enterOuterAlt(_localctx, 1); - { - setState(1244); match(LT); - setState(1245); typeList(); - setState(1246); match(GT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeArgumentsOrDiamondContext extends ParserRuleContext { - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public TypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgumentsOrDiamond(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentsOrDiamond(this); - } - } - - public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { - TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); - enterRule(_localctx, 192, RULE_typeArgumentsOrDiamond); - try { - setState(1251); - switch ( getInterpreter().adaptivePredict(_input,143,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1248); match(LT); - setState(1249); match(GT); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1250); typeArguments(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class NonWildcardTypeArgumentsOrDiamondContext extends ParserRuleContext { - public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { - return getRuleContext(NonWildcardTypeArgumentsContext.class,0); - } - public NonWildcardTypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_nonWildcardTypeArgumentsOrDiamond; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNonWildcardTypeArgumentsOrDiamond(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNonWildcardTypeArgumentsOrDiamond(this); - } - } - - public final NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() throws RecognitionException { - NonWildcardTypeArgumentsOrDiamondContext _localctx = new NonWildcardTypeArgumentsOrDiamondContext(_ctx, getState()); - enterRule(_localctx, 194, RULE_nonWildcardTypeArgumentsOrDiamond); - try { - setState(1256); - switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1253); match(LT); - setState(1254); match(GT); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1255); nonWildcardTypeArguments(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SuperSuffixContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ArgumentsContext arguments() { - return getRuleContext(ArgumentsContext.class,0); - } - public SuperSuffixContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_superSuffix; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperSuffix(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperSuffix(this); - } - } - - public final SuperSuffixContext superSuffix() throws RecognitionException { - SuperSuffixContext _localctx = new SuperSuffixContext(_ctx, getState()); - enterRule(_localctx, 196, RULE_superSuffix); - try { - setState(1264); - switch (_input.LA(1)) { - case LPAREN: - enterOuterAlt(_localctx, 1); - { - setState(1258); arguments(); - } - break; - case DOT: - enterOuterAlt(_localctx, 2); - { - setState(1259); match(DOT); - setState(1260); match(Identifier); - setState(1262); - switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) { - case 1: - { - setState(1261); arguments(); - } - break; - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExplicitGenericInvocationSuffixContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public SuperSuffixContext superSuffix() { - return getRuleContext(SuperSuffixContext.class,0); - } - public ArgumentsContext arguments() { - return getRuleContext(ArgumentsContext.class,0); - } - public ExplicitGenericInvocationSuffixContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_explicitGenericInvocationSuffix; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExplicitGenericInvocationSuffix(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExplicitGenericInvocationSuffix(this); - } - } - - public final ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() throws RecognitionException { - ExplicitGenericInvocationSuffixContext _localctx = new ExplicitGenericInvocationSuffixContext(_ctx, getState()); - enterRule(_localctx, 198, RULE_explicitGenericInvocationSuffix); - try { - setState(1270); - switch (_input.LA(1)) { - case SUPER: - enterOuterAlt(_localctx, 1); - { - setState(1266); match(SUPER); - setState(1267); superSuffix(); - } - break; - case Identifier: - enterOuterAlt(_localctx, 2); - { - setState(1268); match(Identifier); - setState(1269); arguments(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArgumentsContext extends ParserRuleContext { - public ExpressionListContext expressionList() { - return getRuleContext(ExpressionListContext.class,0); - } - public ArgumentsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arguments; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArguments(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArguments(this); - } - } - - public final ArgumentsContext arguments() throws RecognitionException { - ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState()); - enterRule(_localctx, 200, RULE_arguments); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1272); match(LPAREN); - setState(1274); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) { - { - setState(1273); expressionList(); - } - } - - setState(1276); match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 87: return expression_sempred((ExpressionContext)_localctx, predIndex); - } - return true; - } - private boolean expression_sempred(ExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 0: return precpred(_ctx, 13); - case 1: return precpred(_ctx, 12); - case 2: return precpred(_ctx, 11); - case 3: return precpred(_ctx, 10); - case 4: return precpred(_ctx, 8); - case 5: return precpred(_ctx, 7); - case 6: return precpred(_ctx, 6); - case 7: return precpred(_ctx, 5); - case 8: return precpred(_ctx, 4); - case 9: return precpred(_ctx, 3); - case 10: return precpred(_ctx, 2); - case 11: return precpred(_ctx, 1); - case 12: return precpred(_ctx, 25); - case 13: return precpred(_ctx, 24); - case 14: return precpred(_ctx, 23); - case 15: return precpred(_ctx, 22); - case 16: return precpred(_ctx, 21); - case 17: return precpred(_ctx, 20); - case 18: return precpred(_ctx, 19); - case 19: return precpred(_ctx, 16); - case 20: return precpred(_ctx, 9); - } - return true; - } - - public static final String _serializedATN = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3k\u0501\4\2\t\2\4"+ - "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ - "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ - "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ - ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ - "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ - "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ - "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ - "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ - "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\3\2\5\2\u00ce\n\2\3\2\7\2\u00d1"+ - "\n\2\f\2\16\2\u00d4\13\2\3\2\7\2\u00d7\n\2\f\2\16\2\u00da\13\2\3\2\3\2"+ - "\3\3\7\3\u00df\n\3\f\3\16\3\u00e2\13\3\3\3\3\3\3\3\3\3\3\4\3\4\5\4\u00ea"+ - "\n\4\3\4\3\4\3\4\5\4\u00ef\n\4\3\4\3\4\3\5\7\5\u00f4\n\5\f\5\16\5\u00f7"+ - "\13\5\3\5\3\5\7\5\u00fb\n\5\f\5\16\5\u00fe\13\5\3\5\3\5\7\5\u0102\n\5"+ - "\f\5\16\5\u0105\13\5\3\5\3\5\7\5\u0109\n\5\f\5\16\5\u010c\13\5\3\5\3\5"+ - "\5\5\u0110\n\5\3\6\3\6\5\6\u0114\n\6\3\7\3\7\5\7\u0118\n\7\3\b\3\b\5\b"+ - "\u011c\n\b\3\t\3\t\3\t\5\t\u0121\n\t\3\t\3\t\5\t\u0125\n\t\3\t\3\t\5\t"+ - "\u0129\n\t\3\t\3\t\3\n\3\n\3\n\3\n\7\n\u0131\n\n\f\n\16\n\u0134\13\n\3"+ - "\n\3\n\3\13\3\13\3\13\5\13\u013b\n\13\3\f\3\f\3\f\7\f\u0140\n\f\f\f\16"+ - "\f\u0143\13\f\3\r\3\r\3\r\3\r\5\r\u0149\n\r\3\r\3\r\5\r\u014d\n\r\3\r"+ - "\5\r\u0150\n\r\3\r\5\r\u0153\n\r\3\r\3\r\3\16\3\16\3\16\7\16\u015a\n\16"+ - "\f\16\16\16\u015d\13\16\3\17\7\17\u0160\n\17\f\17\16\17\u0163\13\17\3"+ - "\17\3\17\5\17\u0167\n\17\3\17\5\17\u016a\n\17\3\20\3\20\7\20\u016e\n\20"+ - "\f\20\16\20\u0171\13\20\3\21\3\21\3\21\5\21\u0176\n\21\3\21\3\21\5\21"+ - "\u017a\n\21\3\21\3\21\3\22\3\22\3\22\7\22\u0181\n\22\f\22\16\22\u0184"+ - "\13\22\3\23\3\23\7\23\u0188\n\23\f\23\16\23\u018b\13\23\3\23\3\23\3\24"+ - "\3\24\7\24\u0191\n\24\f\24\16\24\u0194\13\24\3\24\3\24\3\25\3\25\5\25"+ - "\u019a\n\25\3\25\3\25\7\25\u019e\n\25\f\25\16\25\u01a1\13\25\3\25\5\25"+ - "\u01a4\n\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\5\26\u01af\n"+ - "\26\3\27\3\27\5\27\u01b3\n\27\3\27\3\27\3\27\3\27\7\27\u01b9\n\27\f\27"+ - "\16\27\u01bc\13\27\3\27\3\27\5\27\u01c0\n\27\3\27\3\27\5\27\u01c4\n\27"+ - "\3\30\3\30\3\30\3\31\3\31\3\31\3\31\5\31\u01cd\n\31\3\31\3\31\3\32\3\32"+ - "\3\32\3\33\3\33\3\33\3\33\3\34\7\34\u01d9\n\34\f\34\16\34\u01dc\13\34"+ - "\3\34\3\34\5\34\u01e0\n\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u01e9"+ - "\n\35\3\36\3\36\3\36\3\36\7\36\u01ef\n\36\f\36\16\36\u01f2\13\36\3\36"+ - "\3\36\3\37\3\37\3\37\7\37\u01f9\n\37\f\37\16\37\u01fc\13\37\3\37\3\37"+ - "\3\37\3 \3 \5 \u0203\n \3 \3 \3 \3 \7 \u0209\n \f \16 \u020c\13 \3 \3"+ - " \5 \u0210\n \3 \3 \3!\3!\3!\3\"\3\"\3\"\7\"\u021a\n\"\f\"\16\"\u021d"+ - "\13\"\3#\3#\3#\5#\u0222\n#\3$\3$\3$\7$\u0227\n$\f$\16$\u022a\13$\3%\3"+ - "%\5%\u022e\n%\3&\3&\3&\3&\7&\u0234\n&\f&\16&\u0237\13&\3&\5&\u023a\n&"+ - "\5&\u023c\n&\3&\3&\3\'\3\'\3(\3(\3(\7(\u0245\n(\f(\16(\u0248\13(\3(\3"+ - "(\3(\7(\u024d\n(\f(\16(\u0250\13(\5(\u0252\n(\3)\3)\5)\u0256\n)\3)\3)"+ - "\3)\5)\u025b\n)\7)\u025d\n)\f)\16)\u0260\13)\3*\3*\3+\3+\3+\3+\7+\u0268"+ - "\n+\f+\16+\u026b\13+\3+\3+\3,\3,\3,\3,\5,\u0273\n,\5,\u0275\n,\3-\3-\3"+ - "-\7-\u027a\n-\f-\16-\u027d\13-\3.\3.\5.\u0281\n.\3.\3.\3/\3/\3/\7/\u0288"+ - "\n/\f/\16/\u028b\13/\3/\3/\5/\u028f\n/\3/\5/\u0292\n/\3\60\7\60\u0295"+ - "\n\60\f\60\16\60\u0298\13\60\3\60\3\60\3\60\3\61\7\61\u029e\n\61\f\61"+ - "\16\61\u02a1\13\61\3\61\3\61\3\61\3\61\3\62\3\62\3\63\3\63\3\64\3\64\3"+ - "\64\7\64\u02ae\n\64\f\64\16\64\u02b1\13\64\3\65\3\65\3\66\3\66\3\66\3"+ - "\66\3\66\5\66\u02ba\n\66\3\66\5\66\u02bd\n\66\3\67\3\67\38\38\38\78\u02c4"+ - "\n8\f8\168\u02c7\138\39\39\39\39\3:\3:\3:\5:\u02d0\n:\3;\3;\3;\3;\7;\u02d6"+ - "\n;\f;\16;\u02d9\13;\5;\u02db\n;\3;\5;\u02de\n;\3;\3;\3<\3<\3<\3<\3<\3"+ - "=\3=\7=\u02e9\n=\f=\16=\u02ec\13=\3=\3=\3>\7>\u02f1\n>\f>\16>\u02f4\13"+ - ">\3>\3>\5>\u02f8\n>\3?\3?\3?\3?\3?\3?\5?\u0300\n?\3?\3?\5?\u0304\n?\3"+ - "?\3?\5?\u0308\n?\3?\3?\5?\u030c\n?\5?\u030e\n?\3@\3@\5@\u0312\n@\3A\3"+ - "A\3A\3A\5A\u0318\nA\3B\3B\3C\3C\3C\3D\3D\7D\u0321\nD\fD\16D\u0324\13D"+ - "\3D\3D\3E\3E\3E\5E\u032b\nE\3F\3F\3F\3G\7G\u0331\nG\fG\16G\u0334\13G\3"+ - "G\3G\3G\3H\3H\3H\3H\3H\5H\u033e\nH\3H\3H\3H\3H\3H\3H\3H\5H\u0347\nH\3"+ - "H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\6H\u035c\nH\r"+ - "H\16H\u035d\3H\5H\u0361\nH\3H\5H\u0364\nH\3H\3H\3H\3H\7H\u036a\nH\fH\16"+ - "H\u036d\13H\3H\5H\u0370\nH\3H\3H\3H\3H\7H\u0376\nH\fH\16H\u0379\13H\3"+ - "H\7H\u037c\nH\fH\16H\u037f\13H\3H\3H\3H\3H\3H\3H\3H\3H\5H\u0389\nH\3H"+ - "\3H\3H\3H\3H\3H\3H\5H\u0392\nH\3H\3H\3H\5H\u0397\nH\3H\3H\3H\3H\3H\3H"+ - "\3H\3H\5H\u03a1\nH\3I\3I\3I\7I\u03a6\nI\fI\16I\u03a9\13I\3I\3I\3I\3I\3"+ - "I\3J\3J\3J\7J\u03b3\nJ\fJ\16J\u03b6\13J\3K\3K\3K\3L\3L\3L\5L\u03be\nL"+ - "\3L\3L\3M\3M\3M\7M\u03c5\nM\fM\16M\u03c8\13M\3N\7N\u03cb\nN\fN\16N\u03ce"+ - "\13N\3N\3N\3N\3N\3N\3O\6O\u03d6\nO\rO\16O\u03d7\3O\6O\u03db\nO\rO\16O"+ - "\u03dc\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\5P\u03e9\nP\3Q\3Q\5Q\u03ed\nQ\3Q"+ - "\3Q\5Q\u03f1\nQ\3Q\3Q\5Q\u03f5\nQ\5Q\u03f7\nQ\3R\3R\5R\u03fb\nR\3S\7S"+ - "\u03fe\nS\fS\16S\u0401\13S\3S\3S\3S\3S\3S\3T\3T\3U\3U\3U\3U\3V\3V\3V\7"+ - "V\u0411\nV\fV\16V\u0414\13V\3W\3W\3X\3X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y"+ - "\3Y\3Y\3Y\5Y\u0427\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0437"+ - "\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y"+ - "\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0462\nY"+ - "\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0474\nY\3Y\3Y\3Y"+ - "\3Y\3Y\3Y\7Y\u047c\nY\fY\16Y\u047f\13Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3"+ - "Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\5Z\u0494\nZ\5Z\u0496\nZ\3[\3[\3[\3[\3[\3[\3"+ - "[\5[\u049f\n[\5[\u04a1\n[\3\\\3\\\5\\\u04a5\n\\\3\\\3\\\3\\\5\\\u04aa"+ - "\n\\\7\\\u04ac\n\\\f\\\16\\\u04af\13\\\3\\\5\\\u04b2\n\\\3]\3]\5]\u04b6"+ - "\n]\3]\3]\3^\3^\3^\3^\7^\u04be\n^\f^\16^\u04c1\13^\3^\3^\3^\3^\3^\3^\3"+ - "^\7^\u04ca\n^\f^\16^\u04cd\13^\3^\3^\7^\u04d1\n^\f^\16^\u04d4\13^\5^\u04d6"+ - "\n^\3_\3_\5_\u04da\n_\3`\3`\3`\3a\3a\3a\3a\3b\3b\3b\5b\u04e6\nb\3c\3c"+ - "\3c\5c\u04eb\nc\3d\3d\3d\3d\5d\u04f1\nd\5d\u04f3\nd\3e\3e\3e\3e\5e\u04f9"+ - "\ne\3f\3f\5f\u04fd\nf\3f\3f\3f\2\3\u00b0g\2\4\6\b\n\f\16\20\22\24\26\30"+ - "\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080"+ - "\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098"+ - "\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0"+ - "\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8"+ - "\u00ca\2\17\6\2 ,,\60\60\63\63\6\2\3\3\24\24#%()\n\2\5\5\7\7\n\n\20\20"+ - "\26\26\35\35\37\37\'\'\4\2\23\23**\3\2\65:\3\2QT\3\2GH\4\2UVZZ\3\2ST\4"+ - "\2EFLM\4\2KKNN\4\2DD[e\3\2QR\u0573\2\u00cd\3\2\2\2\4\u00e0\3\2\2\2\6\u00e7"+ - "\3\2\2\2\b\u010f\3\2\2\2\n\u0113\3\2\2\2\f\u0117\3\2\2\2\16\u011b\3\2"+ - "\2\2\20\u011d\3\2\2\2\22\u012c\3\2\2\2\24\u0137\3\2\2\2\26\u013c\3\2\2"+ - "\2\30\u0144\3\2\2\2\32\u0156\3\2\2\2\34\u0161\3\2\2\2\36\u016b\3\2\2\2"+ - " \u0172\3\2\2\2\"\u017d\3\2\2\2$\u0185\3\2\2\2&\u018e\3\2\2\2(\u01a3\3"+ - "\2\2\2*\u01ae\3\2\2\2,\u01b2\3\2\2\2.\u01c5\3\2\2\2\60\u01c8\3\2\2\2\62"+ - "\u01d0\3\2\2\2\64\u01d3\3\2\2\2\66\u01df\3\2\2\28\u01e8\3\2\2\2:\u01ea"+ - "\3\2\2\2<\u01f5\3\2\2\2>\u0202\3\2\2\2@\u0213\3\2\2\2B\u0216\3\2\2\2D"+ - "\u021e\3\2\2\2F\u0223\3\2\2\2H\u022d\3\2\2\2J\u022f\3\2\2\2L\u023f\3\2"+ - "\2\2N\u0251\3\2\2\2P\u0253\3\2\2\2R\u0261\3\2\2\2T\u0263\3\2\2\2V\u0274"+ - "\3\2\2\2X\u0276\3\2\2\2Z\u027e\3\2\2\2\\\u0291\3\2\2\2^\u0296\3\2\2\2"+ - "`\u029f\3\2\2\2b\u02a6\3\2\2\2d\u02a8\3\2\2\2f\u02aa\3\2\2\2h\u02b2\3"+ - "\2\2\2j\u02b4\3\2\2\2l\u02be\3\2\2\2n\u02c0\3\2\2\2p\u02c8\3\2\2\2r\u02cf"+ - "\3\2\2\2t\u02d1\3\2\2\2v\u02e1\3\2\2\2x\u02e6\3\2\2\2z\u02f7\3\2\2\2|"+ - "\u030d\3\2\2\2~\u0311\3\2\2\2\u0080\u0313\3\2\2\2\u0082\u0319\3\2\2\2"+ - "\u0084\u031b\3\2\2\2\u0086\u031e\3\2\2\2\u0088\u032a\3\2\2\2\u008a\u032c"+ - "\3\2\2\2\u008c\u0332\3\2\2\2\u008e\u03a0\3\2\2\2\u0090\u03a2\3\2\2\2\u0092"+ - "\u03af\3\2\2\2\u0094\u03b7\3\2\2\2\u0096\u03ba\3\2\2\2\u0098\u03c1\3\2"+ - "\2\2\u009a\u03cc\3\2\2\2\u009c\u03d5\3\2\2\2\u009e\u03e8\3\2\2\2\u00a0"+ - "\u03f6\3\2\2\2\u00a2\u03fa\3\2\2\2\u00a4\u03ff\3\2\2\2\u00a6\u0407\3\2"+ - "\2\2\u00a8\u0409\3\2\2\2\u00aa\u040d\3\2\2\2\u00ac\u0415\3\2\2\2\u00ae"+ - "\u0417\3\2\2\2\u00b0\u0426\3\2\2\2\u00b2\u0495\3\2\2\2\u00b4\u04a0\3\2"+ - "\2\2\u00b6\u04b1\3\2\2\2\u00b8\u04b3\3\2\2\2\u00ba\u04b9\3\2\2\2\u00bc"+ - "\u04d7\3\2\2\2\u00be\u04db\3\2\2\2\u00c0\u04de\3\2\2\2\u00c2\u04e5\3\2"+ - "\2\2\u00c4\u04ea\3\2\2\2\u00c6\u04f2\3\2\2\2\u00c8\u04f8\3\2\2\2\u00ca"+ - "\u04fa\3\2\2\2\u00cc\u00ce\5\4\3\2\u00cd\u00cc\3\2\2\2\u00cd\u00ce\3\2"+ - "\2\2\u00ce\u00d2\3\2\2\2\u00cf\u00d1\5\6\4\2\u00d0\u00cf\3\2\2\2\u00d1"+ - "\u00d4\3\2\2\2\u00d2\u00d0\3\2\2\2\u00d2\u00d3\3\2\2\2\u00d3\u00d8\3\2"+ - "\2\2\u00d4\u00d2\3\2\2\2\u00d5\u00d7\5\b\5\2\u00d6\u00d5\3\2\2\2\u00d7"+ - "\u00da\3\2\2\2\u00d8\u00d6\3\2\2\2\u00d8\u00d9\3\2\2\2\u00d9\u00db\3\2"+ - "\2\2\u00da\u00d8\3\2\2\2\u00db\u00dc\7\2\2\3\u00dc\3\3\2\2\2\u00dd\u00df"+ - "\5j\66\2\u00de\u00dd\3\2\2\2\u00df\u00e2\3\2\2\2\u00e0\u00de\3\2\2\2\u00e0"+ - "\u00e1\3\2\2\2\u00e1\u00e3\3\2\2\2\u00e2\u00e0\3\2\2\2\u00e3\u00e4\7\""+ - "\2\2\u00e4\u00e5\5f\64\2\u00e5\u00e6\7A\2\2\u00e6\5\3\2\2\2\u00e7\u00e9"+ - "\7\33\2\2\u00e8\u00ea\7(\2\2\u00e9\u00e8\3\2\2\2\u00e9\u00ea\3\2\2\2\u00ea"+ - "\u00eb\3\2\2\2\u00eb\u00ee\5f\64\2\u00ec\u00ed\7C\2\2\u00ed\u00ef\7U\2"+ - "\2\u00ee\u00ec\3\2\2\2\u00ee\u00ef\3\2\2\2\u00ef\u00f0\3\2\2\2\u00f0\u00f1"+ - "\7A\2\2\u00f1\7\3\2\2\2\u00f2\u00f4\5\f\7\2\u00f3\u00f2\3\2\2\2\u00f4"+ - "\u00f7\3\2\2\2\u00f5\u00f3\3\2\2\2\u00f5\u00f6\3\2\2\2\u00f6\u00f8\3\2"+ - "\2\2\u00f7\u00f5\3\2\2\2\u00f8\u0110\5\20\t\2\u00f9\u00fb\5\f\7\2\u00fa"+ - "\u00f9\3\2\2\2\u00fb\u00fe\3\2\2\2\u00fc\u00fa\3\2\2\2\u00fc\u00fd\3\2"+ - "\2\2\u00fd\u00ff\3\2\2\2\u00fe\u00fc\3\2\2\2\u00ff\u0110\5\30\r\2\u0100"+ - "\u0102\5\f\7\2\u0101\u0100\3\2\2\2\u0102\u0105\3\2\2\2\u0103\u0101\3\2"+ - "\2\2\u0103\u0104\3\2\2\2\u0104\u0106\3\2\2\2\u0105\u0103\3\2\2\2\u0106"+ - "\u0110\5 \21\2\u0107\u0109\5\f\7\2\u0108\u0107\3\2\2\2\u0109\u010c\3\2"+ - "\2\2\u010a\u0108\3\2\2\2\u010a\u010b\3\2\2\2\u010b\u010d\3\2\2\2\u010c"+ - "\u010a\3\2\2\2\u010d\u0110\5v<\2\u010e\u0110\7A\2\2\u010f\u00f5\3\2\2"+ - "\2\u010f\u00fc\3\2\2\2\u010f\u0103\3\2\2\2\u010f\u010a\3\2\2\2\u010f\u010e"+ - "\3\2\2\2\u0110\t\3\2\2\2\u0111\u0114\5\f\7\2\u0112\u0114\t\2\2\2\u0113"+ - "\u0111\3\2\2\2\u0113\u0112\3\2\2\2\u0114\13\3\2\2\2\u0115\u0118\5j\66"+ - "\2\u0116\u0118\t\3\2\2\u0117\u0115\3\2\2\2\u0117\u0116\3\2\2\2\u0118\r"+ - "\3\2\2\2\u0119\u011c\7\24\2\2\u011a\u011c\5j\66\2\u011b\u0119\3\2\2\2"+ - "\u011b\u011a\3\2\2\2\u011c\17\3\2\2\2\u011d\u011e\7\13\2\2\u011e\u0120"+ - "\7f\2\2\u011f\u0121\5\22\n\2\u0120\u011f\3\2\2\2\u0120\u0121\3\2\2\2\u0121"+ - "\u0124\3\2\2\2\u0122\u0123\7\23\2\2\u0123\u0125\5N(\2\u0124\u0122\3\2"+ - "\2\2\u0124\u0125\3\2\2\2\u0125\u0128\3\2\2\2\u0126\u0127\7\32\2\2\u0127"+ - "\u0129\5\"\22\2\u0128\u0126\3\2\2\2\u0128\u0129\3\2\2\2\u0129\u012a\3"+ - "\2\2\2\u012a\u012b\5$\23\2\u012b\21\3\2\2\2\u012c\u012d\7F\2\2\u012d\u0132"+ - "\5\24\13\2\u012e\u012f\7B\2\2\u012f\u0131\5\24\13\2\u0130\u012e\3\2\2"+ - "\2\u0131\u0134\3\2\2\2\u0132\u0130\3\2\2\2\u0132\u0133\3\2\2\2\u0133\u0135"+ - "\3\2\2\2\u0134\u0132\3\2\2\2\u0135\u0136\7E\2\2\u0136\23\3\2\2\2\u0137"+ - "\u013a\7f\2\2\u0138\u0139\7\23\2\2\u0139\u013b\5\26\f\2\u013a\u0138\3"+ - "\2\2\2\u013a\u013b\3\2\2\2\u013b\25\3\2\2\2\u013c\u0141\5N(\2\u013d\u013e"+ - "\7W\2\2\u013e\u0140\5N(\2\u013f\u013d\3\2\2\2\u0140\u0143\3\2\2\2\u0141"+ - "\u013f\3\2\2\2\u0141\u0142\3\2\2\2\u0142\27\3\2\2\2\u0143\u0141\3\2\2"+ - "\2\u0144\u0145\7\22\2\2\u0145\u0148\7f\2\2\u0146\u0147\7\32\2\2\u0147"+ - "\u0149\5\"\22\2\u0148\u0146\3\2\2\2\u0148\u0149\3\2\2\2\u0149\u014a\3"+ - "\2\2\2\u014a\u014c\7=\2\2\u014b\u014d\5\32\16\2\u014c\u014b\3\2\2\2\u014c"+ - "\u014d\3\2\2\2\u014d\u014f\3\2\2\2\u014e\u0150\7B\2\2\u014f\u014e\3\2"+ - "\2\2\u014f\u0150\3\2\2\2\u0150\u0152\3\2\2\2\u0151\u0153\5\36\20\2\u0152"+ - "\u0151\3\2\2\2\u0152\u0153\3\2\2\2\u0153\u0154\3\2\2\2\u0154\u0155\7>"+ - "\2\2\u0155\31\3\2\2\2\u0156\u015b\5\34\17\2\u0157\u0158\7B\2\2\u0158\u015a"+ - "\5\34\17\2\u0159\u0157\3\2\2\2\u015a\u015d\3\2\2\2\u015b\u0159\3\2\2\2"+ - "\u015b\u015c\3\2\2\2\u015c\33\3\2\2\2\u015d\u015b\3\2\2\2\u015e\u0160"+ - "\5j\66\2\u015f\u015e\3\2\2\2\u0160\u0163\3\2\2\2\u0161\u015f\3\2\2\2\u0161"+ - "\u0162\3\2\2\2\u0162\u0164\3\2\2\2\u0163\u0161\3\2\2\2\u0164\u0166\7f"+ - "\2\2\u0165\u0167\5\u00caf\2\u0166\u0165\3\2\2\2\u0166\u0167\3\2\2\2\u0167"+ - "\u0169\3\2\2\2\u0168\u016a\5$\23\2\u0169\u0168\3\2\2\2\u0169\u016a\3\2"+ - "\2\2\u016a\35\3\2\2\2\u016b\u016f\7A\2\2\u016c\u016e\5(\25\2\u016d\u016c"+ - "\3\2\2\2\u016e\u0171\3\2\2\2\u016f\u016d\3\2\2\2\u016f\u0170\3\2\2\2\u0170"+ - "\37\3\2\2\2\u0171\u016f\3\2\2\2\u0172\u0173\7\36\2\2\u0173\u0175\7f\2"+ - "\2\u0174\u0176\5\22\n\2\u0175\u0174\3\2\2\2\u0175\u0176\3\2\2\2\u0176"+ - "\u0179\3\2\2\2\u0177\u0178\7\23\2\2\u0178\u017a\5\"\22\2\u0179\u0177\3"+ - "\2\2\2\u0179\u017a\3\2\2\2\u017a\u017b\3\2\2\2\u017b\u017c\5&\24\2\u017c"+ - "!\3\2\2\2\u017d\u0182\5N(\2\u017e\u017f\7B\2\2\u017f\u0181\5N(\2\u0180"+ - "\u017e\3\2\2\2\u0181\u0184\3\2\2\2\u0182\u0180\3\2\2\2\u0182\u0183\3\2"+ - "\2\2\u0183#\3\2\2\2\u0184\u0182\3\2\2\2\u0185\u0189\7=\2\2\u0186\u0188"+ - "\5(\25\2\u0187\u0186\3\2\2\2\u0188\u018b\3\2\2\2\u0189\u0187\3\2\2\2\u0189"+ - "\u018a\3\2\2\2\u018a\u018c\3\2\2\2\u018b\u0189\3\2\2\2\u018c\u018d\7>"+ - "\2\2\u018d%\3\2\2\2\u018e\u0192\7=\2\2\u018f\u0191\5\66\34\2\u0190\u018f"+ - "\3\2\2\2\u0191\u0194\3\2\2\2\u0192\u0190\3\2\2\2\u0192\u0193\3\2\2\2\u0193"+ - "\u0195\3\2\2\2\u0194\u0192\3\2\2\2\u0195\u0196\7>\2\2\u0196\'\3\2\2\2"+ - "\u0197\u01a4\7A\2\2\u0198\u019a\7(\2\2\u0199\u0198\3\2\2\2\u0199\u019a"+ - "\3\2\2\2\u019a\u019b\3\2\2\2\u019b\u01a4\5\u0086D\2\u019c\u019e\5\n\6"+ - "\2\u019d\u019c\3\2\2\2\u019e\u01a1\3\2\2\2\u019f\u019d\3\2\2\2\u019f\u01a0"+ - "\3\2\2\2\u01a0\u01a2\3\2\2\2\u01a1\u019f\3\2\2\2\u01a2\u01a4\5*\26\2\u01a3"+ - "\u0197\3\2\2\2\u01a3\u0199\3\2\2\2\u01a3\u019f\3\2\2\2\u01a4)\3\2\2\2"+ - "\u01a5\u01af\5,\27\2\u01a6\u01af\5.\30\2\u01a7\u01af\5\64\33\2\u01a8\u01af"+ - "\5\60\31\2\u01a9\u01af\5\62\32\2\u01aa\u01af\5 \21\2\u01ab\u01af\5v<\2"+ - "\u01ac\u01af\5\20\t\2\u01ad\u01af\5\30\r\2\u01ae\u01a5\3\2\2\2\u01ae\u01a6"+ - "\3\2\2\2\u01ae\u01a7\3\2\2\2\u01ae\u01a8\3\2\2\2\u01ae\u01a9\3\2\2\2\u01ae"+ - "\u01aa\3\2\2\2\u01ae\u01ab\3\2\2\2\u01ae\u01ac\3\2\2\2\u01ae\u01ad\3\2"+ - "\2\2\u01af+\3\2\2\2\u01b0\u01b3\5N(\2\u01b1\u01b3\7\62\2\2\u01b2\u01b0"+ - "\3\2\2\2\u01b2\u01b1\3\2\2\2\u01b3\u01b4\3\2\2\2\u01b4\u01b5\7f\2\2\u01b5"+ - "\u01ba\5Z.\2\u01b6\u01b7\7?\2\2\u01b7\u01b9\7@\2\2\u01b8\u01b6\3\2\2\2"+ - "\u01b9\u01bc\3\2\2\2\u01ba\u01b8\3\2\2\2\u01ba\u01bb\3\2\2\2\u01bb\u01bf"+ - "\3\2\2\2\u01bc\u01ba\3\2\2\2\u01bd\u01be\7/\2\2\u01be\u01c0\5X-\2\u01bf"+ - "\u01bd\3\2\2\2\u01bf\u01c0\3\2\2\2\u01c0\u01c3\3\2\2\2\u01c1\u01c4\5b"+ - "\62\2\u01c2\u01c4\7A\2\2\u01c3\u01c1\3\2\2\2\u01c3\u01c2\3\2\2\2\u01c4"+ - "-\3\2\2\2\u01c5\u01c6\5\22\n\2\u01c6\u01c7\5,\27\2\u01c7/\3\2\2\2\u01c8"+ - "\u01c9\7f\2\2\u01c9\u01cc\5Z.\2\u01ca\u01cb\7/\2\2\u01cb\u01cd\5X-\2\u01cc"+ - "\u01ca\3\2\2\2\u01cc\u01cd\3\2\2\2\u01cd\u01ce\3\2\2\2\u01ce\u01cf\5d"+ - "\63\2\u01cf\61\3\2\2\2\u01d0\u01d1\5\22\n\2\u01d1\u01d2\5\60\31\2\u01d2"+ - "\63\3\2\2\2\u01d3\u01d4\5N(\2\u01d4\u01d5\5B\"\2\u01d5\u01d6\7A\2\2\u01d6"+ - "\65\3\2\2\2\u01d7\u01d9\5\n\6\2\u01d8\u01d7\3\2\2\2\u01d9\u01dc\3\2\2"+ - "\2\u01da\u01d8\3\2\2\2\u01da\u01db\3\2\2\2\u01db\u01dd\3\2\2\2\u01dc\u01da"+ - "\3\2\2\2\u01dd\u01e0\58\35\2\u01de\u01e0\7A\2\2\u01df\u01da\3\2\2\2\u01df"+ - "\u01de\3\2\2\2\u01e0\67\3\2\2\2\u01e1\u01e9\5:\36\2\u01e2\u01e9\5> \2"+ - "\u01e3\u01e9\5@!\2\u01e4\u01e9\5 \21\2\u01e5\u01e9\5v<\2\u01e6\u01e9\5"+ - "\20\t\2\u01e7\u01e9\5\30\r\2\u01e8\u01e1\3\2\2\2\u01e8\u01e2\3\2\2\2\u01e8"+ - "\u01e3\3\2\2\2\u01e8\u01e4\3\2\2\2\u01e8\u01e5\3\2\2\2\u01e8\u01e6\3\2"+ - "\2\2\u01e8\u01e7\3\2\2\2\u01e99\3\2\2\2\u01ea\u01eb\5N(\2\u01eb\u01f0"+ - "\5<\37\2\u01ec\u01ed\7B\2\2\u01ed\u01ef\5<\37\2\u01ee\u01ec\3\2\2\2\u01ef"+ - "\u01f2\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1\u01f3\3\2"+ - "\2\2\u01f2\u01f0\3\2\2\2\u01f3\u01f4\7A\2\2\u01f4;\3\2\2\2\u01f5\u01fa"+ - "\7f\2\2\u01f6\u01f7\7?\2\2\u01f7\u01f9\7@\2\2\u01f8\u01f6\3\2\2\2\u01f9"+ - "\u01fc\3\2\2\2\u01fa\u01f8\3\2\2\2\u01fa\u01fb\3\2\2\2\u01fb\u01fd\3\2"+ - "\2\2\u01fc\u01fa\3\2\2\2\u01fd\u01fe\7D\2\2\u01fe\u01ff\5H%\2\u01ff=\3"+ - "\2\2\2\u0200\u0203\5N(\2\u0201\u0203\7\62\2\2\u0202\u0200\3\2\2\2\u0202"+ - "\u0201\3\2\2\2\u0203\u0204\3\2\2\2\u0204\u0205\7f\2\2\u0205\u020a\5Z."+ - "\2\u0206\u0207\7?\2\2\u0207\u0209\7@\2\2\u0208\u0206\3\2\2\2\u0209\u020c"+ - "\3\2\2\2\u020a\u0208\3\2\2\2\u020a\u020b\3\2\2\2\u020b\u020f\3\2\2\2\u020c"+ - "\u020a\3\2\2\2\u020d\u020e\7/\2\2\u020e\u0210\5X-\2\u020f\u020d\3\2\2"+ - "\2\u020f\u0210\3\2\2\2\u0210\u0211\3\2\2\2\u0211\u0212\7A\2\2\u0212?\3"+ - "\2\2\2\u0213\u0214\5\22\n\2\u0214\u0215\5> \2\u0215A\3\2\2\2\u0216\u021b"+ - "\5D#\2\u0217\u0218\7B\2\2\u0218\u021a\5D#\2\u0219\u0217\3\2\2\2\u021a"+ - "\u021d\3\2\2\2\u021b\u0219\3\2\2\2\u021b\u021c\3\2\2\2\u021cC\3\2\2\2"+ - "\u021d\u021b\3\2\2\2\u021e\u0221\5F$\2\u021f\u0220\7D\2\2\u0220\u0222"+ - "\5H%\2\u0221\u021f\3\2\2\2\u0221\u0222\3\2\2\2\u0222E\3\2\2\2\u0223\u0228"+ - "\7f\2\2\u0224\u0225\7?\2\2\u0225\u0227\7@\2\2\u0226\u0224\3\2\2\2\u0227"+ - "\u022a\3\2\2\2\u0228\u0226\3\2\2\2\u0228\u0229\3\2\2\2\u0229G\3\2\2\2"+ - "\u022a\u0228\3\2\2\2\u022b\u022e\5J&\2\u022c\u022e\5\u00b0Y\2\u022d\u022b"+ - "\3\2\2\2\u022d\u022c\3\2\2\2\u022eI\3\2\2\2\u022f\u023b\7=\2\2\u0230\u0235"+ - "\5H%\2\u0231\u0232\7B\2\2\u0232\u0234\5H%\2\u0233\u0231\3\2\2\2\u0234"+ - "\u0237\3\2\2\2\u0235\u0233\3\2\2\2\u0235\u0236\3\2\2\2\u0236\u0239\3\2"+ - "\2\2\u0237\u0235\3\2\2\2\u0238\u023a\7B\2\2\u0239\u0238\3\2\2\2\u0239"+ - "\u023a\3\2\2\2\u023a\u023c\3\2\2\2\u023b\u0230\3\2\2\2\u023b\u023c\3\2"+ - "\2\2\u023c\u023d\3\2\2\2\u023d\u023e\7>\2\2\u023eK\3\2\2\2\u023f\u0240"+ - "\7f\2\2\u0240M\3\2\2\2\u0241\u0246\5P)\2\u0242\u0243\7?\2\2\u0243\u0245"+ - "\7@\2\2\u0244\u0242\3\2\2\2\u0245\u0248\3\2\2\2\u0246\u0244\3\2\2\2\u0246"+ - "\u0247\3\2\2\2\u0247\u0252\3\2\2\2\u0248\u0246\3\2\2\2\u0249\u024e\5R"+ - "*\2\u024a\u024b\7?\2\2\u024b\u024d\7@\2\2\u024c\u024a\3\2\2\2\u024d\u0250"+ - "\3\2\2\2\u024e\u024c\3\2\2\2\u024e\u024f\3\2\2\2\u024f\u0252\3\2\2\2\u0250"+ - "\u024e\3\2\2\2\u0251\u0241\3\2\2\2\u0251\u0249\3\2\2\2\u0252O\3\2\2\2"+ - "\u0253\u0255\7f\2\2\u0254\u0256\5T+\2\u0255\u0254\3\2\2\2\u0255\u0256"+ - "\3\2\2\2\u0256\u025e\3\2\2\2\u0257\u0258\7C\2\2\u0258\u025a\7f\2\2\u0259"+ - "\u025b\5T+\2\u025a\u0259\3\2\2\2\u025a\u025b\3\2\2\2\u025b\u025d\3\2\2"+ - "\2\u025c\u0257\3\2\2\2\u025d\u0260\3\2\2\2\u025e\u025c\3\2\2\2\u025e\u025f"+ - "\3\2\2\2\u025fQ\3\2\2\2\u0260\u025e\3\2\2\2\u0261\u0262\t\4\2\2\u0262"+ - "S\3\2\2\2\u0263\u0264\7F\2\2\u0264\u0269\5V,\2\u0265\u0266\7B\2\2\u0266"+ - "\u0268\5V,\2\u0267\u0265\3\2\2\2\u0268\u026b\3\2\2\2\u0269\u0267\3\2\2"+ - "\2\u0269\u026a\3\2\2\2\u026a\u026c\3\2\2\2\u026b\u0269\3\2\2\2\u026c\u026d"+ - "\7E\2\2\u026dU\3\2\2\2\u026e\u0275\5N(\2\u026f\u0272\7I\2\2\u0270\u0271"+ - "\t\5\2\2\u0271\u0273\5N(\2\u0272\u0270\3\2\2\2\u0272\u0273\3\2\2\2\u0273"+ - "\u0275\3\2\2\2\u0274\u026e\3\2\2\2\u0274\u026f\3\2\2\2\u0275W\3\2\2\2"+ - "\u0276\u027b\5f\64\2\u0277\u0278\7B\2\2\u0278\u027a\5f\64\2\u0279\u0277"+ - "\3\2\2\2\u027a\u027d\3\2\2\2\u027b\u0279\3\2\2\2\u027b\u027c\3\2\2\2\u027c"+ - "Y\3\2\2\2\u027d\u027b\3\2\2\2\u027e\u0280\7;\2\2\u027f\u0281\5\\/\2\u0280"+ - "\u027f\3\2\2\2\u0280\u0281\3\2\2\2\u0281\u0282\3\2\2\2\u0282\u0283\7<"+ - "\2\2\u0283[\3\2\2\2\u0284\u0289\5^\60\2\u0285\u0286\7B\2\2\u0286\u0288"+ - "\5^\60\2\u0287\u0285\3\2\2\2\u0288\u028b\3\2\2\2\u0289\u0287\3\2\2\2\u0289"+ - "\u028a\3\2\2\2\u028a\u028e\3\2\2\2\u028b\u0289\3\2\2\2\u028c\u028d\7B"+ - "\2\2\u028d\u028f\5`\61\2\u028e\u028c\3\2\2\2\u028e\u028f\3\2\2\2\u028f"+ - "\u0292\3\2\2\2\u0290\u0292\5`\61\2\u0291\u0284\3\2\2\2\u0291\u0290\3\2"+ - "\2\2\u0292]\3\2\2\2\u0293\u0295\5\16\b\2\u0294\u0293\3\2\2\2\u0295\u0298"+ - "\3\2\2\2\u0296\u0294\3\2\2\2\u0296\u0297\3\2\2\2\u0297\u0299\3\2\2\2\u0298"+ - "\u0296\3\2\2\2\u0299\u029a\5N(\2\u029a\u029b\5F$\2\u029b_\3\2\2\2\u029c"+ - "\u029e\5\16\b\2\u029d\u029c\3\2\2\2\u029e\u02a1\3\2\2\2\u029f\u029d\3"+ - "\2\2\2\u029f\u02a0\3\2\2\2\u02a0\u02a2\3\2\2\2\u02a1\u029f\3\2\2\2\u02a2"+ - "\u02a3\5N(\2\u02a3\u02a4\7h\2\2\u02a4\u02a5\5F$\2\u02a5a\3\2\2\2\u02a6"+ - "\u02a7\5\u0086D\2\u02a7c\3\2\2\2\u02a8\u02a9\5\u0086D\2\u02a9e\3\2\2\2"+ - "\u02aa\u02af\7f\2\2\u02ab\u02ac\7C\2\2\u02ac\u02ae\7f\2\2\u02ad\u02ab"+ - "\3\2\2\2\u02ae\u02b1\3\2\2\2\u02af\u02ad\3\2\2\2\u02af\u02b0\3\2\2\2\u02b0"+ - "g\3\2\2\2\u02b1\u02af\3\2\2\2\u02b2\u02b3\t\6\2\2\u02b3i\3\2\2\2\u02b4"+ - "\u02b5\7g\2\2\u02b5\u02bc\5l\67\2\u02b6\u02b9\7;\2\2\u02b7\u02ba\5n8\2"+ - "\u02b8\u02ba\5r:\2\u02b9\u02b7\3\2\2\2\u02b9\u02b8\3\2\2\2\u02b9\u02ba"+ - "\3\2\2\2\u02ba\u02bb\3\2\2\2\u02bb\u02bd\7<\2\2\u02bc\u02b6\3\2\2\2\u02bc"+ - "\u02bd\3\2\2\2\u02bdk\3\2\2\2\u02be\u02bf\5f\64\2\u02bfm\3\2\2\2\u02c0"+ - "\u02c5\5p9\2\u02c1\u02c2\7B\2\2\u02c2\u02c4\5p9\2\u02c3\u02c1\3\2\2\2"+ - "\u02c4\u02c7\3\2\2\2\u02c5\u02c3\3\2\2\2\u02c5\u02c6\3\2\2\2\u02c6o\3"+ - "\2\2\2\u02c7\u02c5\3\2\2\2\u02c8\u02c9\7f\2\2\u02c9\u02ca\7D\2\2\u02ca"+ - "\u02cb\5r:\2\u02cbq\3\2\2\2\u02cc\u02d0\5\u00b0Y\2\u02cd\u02d0\5j\66\2"+ - "\u02ce\u02d0\5t;\2\u02cf\u02cc\3\2\2\2\u02cf\u02cd\3\2\2\2\u02cf\u02ce"+ - "\3\2\2\2\u02d0s\3\2\2\2\u02d1\u02da\7=\2\2\u02d2\u02d7\5r:\2\u02d3\u02d4"+ - "\7B\2\2\u02d4\u02d6\5r:\2\u02d5\u02d3\3\2\2\2\u02d6\u02d9\3\2\2\2\u02d7"+ - "\u02d5\3\2\2\2\u02d7\u02d8\3\2\2\2\u02d8\u02db\3\2\2\2\u02d9\u02d7\3\2"+ - "\2\2\u02da\u02d2\3\2\2\2\u02da\u02db\3\2\2\2\u02db\u02dd\3\2\2\2\u02dc"+ - "\u02de\7B\2\2\u02dd\u02dc\3\2\2\2\u02dd\u02de\3\2\2\2\u02de\u02df\3\2"+ - "\2\2\u02df\u02e0\7>\2\2\u02e0u\3\2\2\2\u02e1\u02e2\7g\2\2\u02e2\u02e3"+ - "\7\36\2\2\u02e3\u02e4\7f\2\2\u02e4\u02e5\5x=\2\u02e5w\3\2\2\2\u02e6\u02ea"+ - "\7=\2\2\u02e7\u02e9\5z>\2\u02e8\u02e7\3\2\2\2\u02e9\u02ec\3\2\2\2\u02ea"+ - "\u02e8\3\2\2\2\u02ea\u02eb\3\2\2\2\u02eb\u02ed\3\2\2\2\u02ec\u02ea\3\2"+ - "\2\2\u02ed\u02ee\7>\2\2\u02eey\3\2\2\2\u02ef\u02f1\5\n\6\2\u02f0\u02ef"+ - "\3\2\2\2\u02f1\u02f4\3\2\2\2\u02f2\u02f0\3\2\2\2\u02f2\u02f3\3\2\2\2\u02f3"+ - "\u02f5\3\2\2\2\u02f4\u02f2\3\2\2\2\u02f5\u02f8\5|?\2\u02f6\u02f8\7A\2"+ - "\2\u02f7\u02f2\3\2\2\2\u02f7\u02f6\3\2\2\2\u02f8{\3\2\2\2\u02f9\u02fa"+ - "\5N(\2\u02fa\u02fb\5~@\2\u02fb\u02fc\7A\2\2\u02fc\u030e\3\2\2\2\u02fd"+ - "\u02ff\5\20\t\2\u02fe\u0300\7A\2\2\u02ff\u02fe\3\2\2\2\u02ff\u0300\3\2"+ - "\2\2\u0300\u030e\3\2\2\2\u0301\u0303\5 \21\2\u0302\u0304\7A\2\2\u0303"+ - "\u0302\3\2\2\2\u0303\u0304\3\2\2\2\u0304\u030e\3\2\2\2\u0305\u0307\5\30"+ - "\r\2\u0306\u0308\7A\2\2\u0307\u0306\3\2\2\2\u0307\u0308\3\2\2\2\u0308"+ - "\u030e\3\2\2\2\u0309\u030b\5v<\2\u030a\u030c\7A\2\2\u030b\u030a\3\2\2"+ - "\2\u030b\u030c\3\2\2\2\u030c\u030e\3\2\2\2\u030d\u02f9\3\2\2\2\u030d\u02fd"+ - "\3\2\2\2\u030d\u0301\3\2\2\2\u030d\u0305\3\2\2\2\u030d\u0309\3\2\2\2\u030e"+ - "}\3\2\2\2\u030f\u0312\5\u0080A\2\u0310\u0312\5\u0082B\2\u0311\u030f\3"+ - "\2\2\2\u0311\u0310\3\2\2\2\u0312\177\3\2\2\2\u0313\u0314\7f\2\2\u0314"+ - "\u0315\7;\2\2\u0315\u0317\7<\2\2\u0316\u0318\5\u0084C\2\u0317\u0316\3"+ - "\2\2\2\u0317\u0318\3\2\2\2\u0318\u0081\3\2\2\2\u0319\u031a\5B\"\2\u031a"+ - "\u0083\3\2\2\2\u031b\u031c\7\16\2\2\u031c\u031d\5r:\2\u031d\u0085\3\2"+ - "\2\2\u031e\u0322\7=\2\2\u031f\u0321\5\u0088E\2\u0320\u031f\3\2\2\2\u0321"+ - "\u0324\3\2\2\2\u0322\u0320\3\2\2\2\u0322\u0323\3\2\2\2\u0323\u0325\3\2"+ - "\2\2\u0324\u0322\3\2\2\2\u0325\u0326\7>\2\2\u0326\u0087\3\2\2\2\u0327"+ - "\u032b\5\u008aF\2\u0328\u032b\5\u008eH\2\u0329\u032b\5\b\5\2\u032a\u0327"+ - "\3\2\2\2\u032a\u0328\3\2\2\2\u032a\u0329\3\2\2\2\u032b\u0089\3\2\2\2\u032c"+ - "\u032d\5\u008cG\2\u032d\u032e\7A\2\2\u032e\u008b\3\2\2\2\u032f\u0331\5"+ - "\16\b\2\u0330\u032f\3\2\2\2\u0331\u0334\3\2\2\2\u0332\u0330\3\2\2\2\u0332"+ - "\u0333\3\2\2\2\u0333\u0335\3\2\2\2\u0334\u0332\3\2\2\2\u0335\u0336\5N"+ - "(\2\u0336\u0337\5B\"\2\u0337\u008d\3\2\2\2\u0338\u03a1\5\u0086D\2\u0339"+ - "\u033a\7\4\2\2\u033a\u033d\5\u00b0Y\2\u033b\u033c\7J\2\2\u033c\u033e\5"+ - "\u00b0Y\2\u033d\u033b\3\2\2\2\u033d\u033e\3\2\2\2\u033e\u033f\3\2\2\2"+ - "\u033f\u0340\7A\2\2\u0340\u03a1\3\2\2\2\u0341\u0342\7\30\2\2\u0342\u0343"+ - "\5\u00a8U\2\u0343\u0346\5\u008eH\2\u0344\u0345\7\21\2\2\u0345\u0347\5"+ - "\u008eH\2\u0346\u0344\3\2\2\2\u0346\u0347\3\2\2\2\u0347\u03a1\3\2\2\2"+ - "\u0348\u0349\7\27\2\2\u0349\u034a\7;\2\2\u034a\u034b\5\u00a0Q\2\u034b"+ - "\u034c\7<\2\2\u034c\u034d\5\u008eH\2\u034d\u03a1\3\2\2\2\u034e\u034f\7"+ - "\64\2\2\u034f\u0350\5\u00a8U\2\u0350\u0351\5\u008eH\2\u0351\u03a1\3\2"+ - "\2\2\u0352\u0353\7\17\2\2\u0353\u0354\5\u008eH\2\u0354\u0355\7\64\2\2"+ - "\u0355\u0356\5\u00a8U\2\u0356\u0357\7A\2\2\u0357\u03a1\3\2\2\2\u0358\u0359"+ - "\7\61\2\2\u0359\u0363\5\u0086D\2\u035a\u035c\5\u0090I\2\u035b\u035a\3"+ - "\2\2\2\u035c\u035d\3\2\2\2\u035d\u035b\3\2\2\2\u035d\u035e\3\2\2\2\u035e"+ - "\u0360\3\2\2\2\u035f\u0361\5\u0094K\2\u0360\u035f\3\2\2\2\u0360\u0361"+ - "\3\2\2\2\u0361\u0364\3\2\2\2\u0362\u0364\5\u0094K\2\u0363\u035b\3\2\2"+ - "\2\u0363\u0362\3\2\2\2\u0364\u03a1\3\2\2\2\u0365\u0366\7\61\2\2\u0366"+ - "\u0367\5\u0096L\2\u0367\u036b\5\u0086D\2\u0368\u036a\5\u0090I\2\u0369"+ - "\u0368\3\2\2\2\u036a\u036d\3\2\2\2\u036b\u0369\3\2\2\2\u036b\u036c\3\2"+ - "\2\2\u036c\u036f\3\2\2\2\u036d\u036b\3\2\2\2\u036e\u0370\5\u0094K\2\u036f"+ - "\u036e\3\2\2\2\u036f\u0370\3\2\2\2\u0370\u03a1\3\2\2\2\u0371\u0372\7+"+ - "\2\2\u0372\u0373\5\u00a8U\2\u0373\u0377\7=\2\2\u0374\u0376\5\u009cO\2"+ - "\u0375\u0374\3\2\2\2\u0376\u0379\3\2\2\2\u0377\u0375\3\2\2\2\u0377\u0378"+ - "\3\2\2\2\u0378\u037d\3\2\2\2\u0379\u0377\3\2\2\2\u037a\u037c\5\u009eP"+ - "\2\u037b\u037a\3\2\2\2\u037c\u037f\3\2\2\2\u037d\u037b\3\2\2\2\u037d\u037e"+ - "\3\2\2\2\u037e\u0380\3\2\2\2\u037f\u037d\3\2\2\2\u0380\u0381\7>\2\2\u0381"+ - "\u03a1\3\2\2\2\u0382\u0383\7,\2\2\u0383\u0384\5\u00a8U\2\u0384\u0385\5"+ - "\u0086D\2\u0385\u03a1\3\2\2\2\u0386\u0388\7&\2\2\u0387\u0389\5\u00b0Y"+ - "\2\u0388\u0387\3\2\2\2\u0388\u0389\3\2\2\2\u0389\u038a\3\2\2\2\u038a\u03a1"+ - "\7A\2\2\u038b\u038c\7.\2\2\u038c\u038d\5\u00b0Y\2\u038d\u038e\7A\2\2\u038e"+ - "\u03a1\3\2\2\2\u038f\u0391\7\6\2\2\u0390\u0392\7f\2\2\u0391\u0390\3\2"+ - "\2\2\u0391\u0392\3\2\2\2\u0392\u0393\3\2\2\2\u0393\u03a1\7A\2\2\u0394"+ - "\u0396\7\r\2\2\u0395\u0397\7f\2\2\u0396\u0395\3\2\2\2\u0396\u0397\3\2"+ - "\2\2\u0397\u0398\3\2\2\2\u0398\u03a1\7A\2\2\u0399\u03a1\7A\2\2\u039a\u039b"+ - "\5\u00acW\2\u039b\u039c\7A\2\2\u039c\u03a1\3\2\2\2\u039d\u039e\7f\2\2"+ - "\u039e\u039f\7J\2\2\u039f\u03a1\5\u008eH\2\u03a0\u0338\3\2\2\2\u03a0\u0339"+ - "\3\2\2\2\u03a0\u0341\3\2\2\2\u03a0\u0348\3\2\2\2\u03a0\u034e\3\2\2\2\u03a0"+ - "\u0352\3\2\2\2\u03a0\u0358\3\2\2\2\u03a0\u0365\3\2\2\2\u03a0\u0371\3\2"+ - "\2\2\u03a0\u0382\3\2\2\2\u03a0\u0386\3\2\2\2\u03a0\u038b\3\2\2\2\u03a0"+ - "\u038f\3\2\2\2\u03a0\u0394\3\2\2\2\u03a0\u0399\3\2\2\2\u03a0\u039a\3\2"+ - "\2\2\u03a0\u039d\3\2\2\2\u03a1\u008f\3\2\2\2\u03a2\u03a3\7\t\2\2\u03a3"+ - "\u03a7\7;\2\2\u03a4\u03a6\5\16\b\2\u03a5\u03a4\3\2\2\2\u03a6\u03a9\3\2"+ - "\2\2\u03a7\u03a5\3\2\2\2\u03a7\u03a8\3\2\2\2\u03a8\u03aa\3\2\2\2\u03a9"+ - "\u03a7\3\2\2\2\u03aa\u03ab\5\u0092J\2\u03ab\u03ac\7f\2\2\u03ac\u03ad\7"+ - "<\2\2\u03ad\u03ae\5\u0086D\2\u03ae\u0091\3\2\2\2\u03af\u03b4\5f\64\2\u03b0"+ - "\u03b1\7X\2\2\u03b1\u03b3\5f\64\2\u03b2\u03b0\3\2\2\2\u03b3\u03b6\3\2"+ - "\2\2\u03b4\u03b2\3\2\2\2\u03b4\u03b5\3\2\2\2\u03b5\u0093\3\2\2\2\u03b6"+ - "\u03b4\3\2\2\2\u03b7\u03b8\7\25\2\2\u03b8\u03b9\5\u0086D\2\u03b9\u0095"+ - "\3\2\2\2\u03ba\u03bb\7;\2\2\u03bb\u03bd\5\u0098M\2\u03bc\u03be\7A\2\2"+ - "\u03bd\u03bc\3\2\2\2\u03bd\u03be\3\2\2\2\u03be\u03bf\3\2\2\2\u03bf\u03c0"+ - "\7<\2\2\u03c0\u0097\3\2\2\2\u03c1\u03c6\5\u009aN\2\u03c2\u03c3\7A\2\2"+ - "\u03c3\u03c5\5\u009aN\2\u03c4\u03c2\3\2\2\2\u03c5\u03c8\3\2\2\2\u03c6"+ - "\u03c4\3\2\2\2\u03c6\u03c7\3\2\2\2\u03c7\u0099\3\2\2\2\u03c8\u03c6\3\2"+ - "\2\2\u03c9\u03cb\5\16\b\2\u03ca\u03c9\3\2\2\2\u03cb\u03ce\3\2\2\2\u03cc"+ - "\u03ca\3\2\2\2\u03cc\u03cd\3\2\2\2\u03cd\u03cf\3\2\2\2\u03ce\u03cc\3\2"+ - "\2\2\u03cf\u03d0\5P)\2\u03d0\u03d1\5F$\2\u03d1\u03d2\7D\2\2\u03d2\u03d3"+ - "\5\u00b0Y\2\u03d3\u009b\3\2\2\2\u03d4\u03d6\5\u009eP\2\u03d5\u03d4\3\2"+ - "\2\2\u03d6\u03d7\3\2\2\2\u03d7\u03d5\3\2\2\2\u03d7\u03d8\3\2\2\2\u03d8"+ - "\u03da\3\2\2\2\u03d9\u03db\5\u0088E\2\u03da\u03d9\3\2\2\2\u03db\u03dc"+ - "\3\2\2\2\u03dc\u03da\3\2\2\2\u03dc\u03dd\3\2\2\2\u03dd\u009d\3\2\2\2\u03de"+ - "\u03df\7\b\2\2\u03df\u03e0\5\u00aeX\2\u03e0\u03e1\7J\2\2\u03e1\u03e9\3"+ - "\2\2\2\u03e2\u03e3\7\b\2\2\u03e3\u03e4\5L\'\2\u03e4\u03e5\7J\2\2\u03e5"+ - "\u03e9\3\2\2\2\u03e6\u03e7\7\16\2\2\u03e7\u03e9\7J\2\2\u03e8\u03de\3\2"+ - "\2\2\u03e8\u03e2\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e9\u009f\3\2\2\2\u03ea"+ - "\u03f7\5\u00a4S\2\u03eb\u03ed\5\u00a2R\2\u03ec\u03eb\3\2\2\2\u03ec\u03ed"+ - "\3\2\2\2\u03ed\u03ee\3\2\2\2\u03ee\u03f0\7A\2\2\u03ef\u03f1\5\u00b0Y\2"+ - "\u03f0\u03ef\3\2\2\2\u03f0\u03f1\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2\u03f4"+ - "\7A\2\2\u03f3\u03f5\5\u00a6T\2\u03f4\u03f3\3\2\2\2\u03f4\u03f5\3\2\2\2"+ - "\u03f5\u03f7\3\2\2\2\u03f6\u03ea\3\2\2\2\u03f6\u03ec\3\2\2\2\u03f7\u00a1"+ - "\3\2\2\2\u03f8\u03fb\5\u008cG\2\u03f9\u03fb\5\u00aaV\2\u03fa\u03f8\3\2"+ - "\2\2\u03fa\u03f9\3\2\2\2\u03fb\u00a3\3\2\2\2\u03fc\u03fe\5\16\b\2\u03fd"+ - "\u03fc\3\2\2\2\u03fe\u0401\3\2\2\2\u03ff\u03fd\3\2\2\2\u03ff\u0400\3\2"+ - "\2\2\u0400\u0402\3\2\2\2\u0401\u03ff\3\2\2\2\u0402\u0403\5N(\2\u0403\u0404"+ - "\7f\2\2\u0404\u0405\7J\2\2\u0405\u0406\5\u00b0Y\2\u0406\u00a5\3\2\2\2"+ - "\u0407\u0408\5\u00aaV\2\u0408\u00a7\3\2\2\2\u0409\u040a\7;\2\2\u040a\u040b"+ - "\5\u00b0Y\2\u040b\u040c\7<\2\2\u040c\u00a9\3\2\2\2\u040d\u0412\5\u00b0"+ - "Y\2\u040e\u040f\7B\2\2\u040f\u0411\5\u00b0Y\2\u0410\u040e\3\2\2\2\u0411"+ - "\u0414\3\2\2\2\u0412\u0410\3\2\2\2\u0412\u0413\3\2\2\2\u0413\u00ab\3\2"+ - "\2\2\u0414\u0412\3\2\2\2\u0415\u0416\5\u00b0Y\2\u0416\u00ad\3\2\2\2\u0417"+ - "\u0418\5\u00b0Y\2\u0418\u00af\3\2\2\2\u0419\u041a\bY\1\2\u041a\u041b\7"+ - ";\2\2\u041b\u041c\5N(\2\u041c\u041d\7<\2\2\u041d\u041e\5\u00b0Y\23\u041e"+ - "\u0427\3\2\2\2\u041f\u0420\t\7\2\2\u0420\u0427\5\u00b0Y\21\u0421\u0422"+ - "\t\b\2\2\u0422\u0427\5\u00b0Y\20\u0423\u0427\5\u00b2Z\2\u0424\u0425\7"+ - "!\2\2\u0425\u0427\5\u00b4[\2\u0426\u0419\3\2\2\2\u0426\u041f\3\2\2\2\u0426"+ - "\u0421\3\2\2\2\u0426\u0423\3\2\2\2\u0426\u0424\3\2\2\2\u0427\u047d\3\2"+ - "\2\2\u0428\u0429\f\17\2\2\u0429\u042a\t\t\2\2\u042a\u047c\5\u00b0Y\20"+ - "\u042b\u042c\f\16\2\2\u042c\u042d\t\n\2\2\u042d\u047c\5\u00b0Y\17\u042e"+ - "\u0436\f\r\2\2\u042f\u0430\7F\2\2\u0430\u0437\7F\2\2\u0431\u0432\7E\2"+ - "\2\u0432\u0433\7E\2\2\u0433\u0437\7E\2\2\u0434\u0435\7E\2\2\u0435\u0437"+ - "\7E\2\2\u0436\u042f\3\2\2\2\u0436\u0431\3\2\2\2\u0436\u0434\3\2\2\2\u0437"+ - "\u0438\3\2\2\2\u0438\u047c\5\u00b0Y\16\u0439\u043a\f\f\2\2\u043a\u043b"+ - "\t\13\2\2\u043b\u047c\5\u00b0Y\r\u043c\u043d\f\n\2\2\u043d\u043e\t\f\2"+ - "\2\u043e\u047c\5\u00b0Y\13\u043f\u0440\f\t\2\2\u0440\u0441\7W\2\2\u0441"+ - "\u047c\5\u00b0Y\n\u0442\u0443\f\b\2\2\u0443\u0444\7Y\2\2\u0444\u047c\5"+ - "\u00b0Y\t\u0445\u0446\f\7\2\2\u0446\u0447\7X\2\2\u0447\u047c\5\u00b0Y"+ - "\b\u0448\u0449\f\6\2\2\u0449\u044a\7O\2\2\u044a\u047c\5\u00b0Y\7\u044b"+ - "\u044c\f\5\2\2\u044c\u044d\7P\2\2\u044d\u047c\5\u00b0Y\6\u044e\u044f\f"+ - "\4\2\2\u044f\u0450\7I\2\2\u0450\u0451\5\u00b0Y\2\u0451\u0452\7J\2\2\u0452"+ - "\u0453\5\u00b0Y\5\u0453\u047c\3\2\2\2\u0454\u0455\f\3\2\2\u0455\u0456"+ - "\t\r\2\2\u0456\u047c\5\u00b0Y\4\u0457\u0458\f\33\2\2\u0458\u0459\7C\2"+ - "\2\u0459\u047c\7f\2\2\u045a\u045b\f\32\2\2\u045b\u045c\7C\2\2\u045c\u047c"+ - "\7-\2\2\u045d\u045e\f\31\2\2\u045e\u045f\7C\2\2\u045f\u0461\7!\2\2\u0460"+ - "\u0462\5\u00c0a\2\u0461\u0460\3\2\2\2\u0461\u0462\3\2\2\2\u0462\u0463"+ - "\3\2\2\2\u0463\u047c\5\u00b8]\2\u0464\u0465\f\30\2\2\u0465\u0466\7C\2"+ - "\2\u0466\u0467\7*\2\2\u0467\u047c\5\u00c6d\2\u0468\u0469\f\27\2\2\u0469"+ - "\u046a\7C\2\2\u046a\u047c\5\u00be`\2\u046b\u046c\f\26\2\2\u046c\u046d"+ - "\7?\2\2\u046d\u046e\5\u00b0Y\2\u046e\u046f\7@\2\2\u046f\u047c\3\2\2\2"+ - "\u0470\u0471\f\25\2\2\u0471\u0473\7;\2\2\u0472\u0474\5\u00aaV\2\u0473"+ - "\u0472\3\2\2\2\u0473\u0474\3\2\2\2\u0474\u0475\3\2\2\2\u0475\u047c\7<"+ - "\2\2\u0476\u0477\f\22\2\2\u0477\u047c\t\16\2\2\u0478\u0479\f\13\2\2\u0479"+ - "\u047a\7\34\2\2\u047a\u047c\5N(\2\u047b\u0428\3\2\2\2\u047b\u042b\3\2"+ - "\2\2\u047b\u042e\3\2\2\2\u047b\u0439\3\2\2\2\u047b\u043c\3\2\2\2\u047b"+ - "\u043f\3\2\2\2\u047b\u0442\3\2\2\2\u047b\u0445\3\2\2\2\u047b\u0448\3\2"+ - "\2\2\u047b\u044b\3\2\2\2\u047b\u044e\3\2\2\2\u047b\u0454\3\2\2\2\u047b"+ - "\u0457\3\2\2\2\u047b\u045a\3\2\2\2\u047b\u045d\3\2\2\2\u047b\u0464\3\2"+ - "\2\2\u047b\u0468\3\2\2\2\u047b\u046b\3\2\2\2\u047b\u0470\3\2\2\2\u047b"+ - "\u0476\3\2\2\2\u047b\u0478\3\2\2\2\u047c\u047f\3\2\2\2\u047d\u047b\3\2"+ - "\2\2\u047d\u047e\3\2\2\2\u047e\u00b1\3\2\2\2\u047f\u047d\3\2\2\2\u0480"+ - "\u0481\7;\2\2\u0481\u0482\5\u00b0Y\2\u0482\u0483\7<\2\2\u0483\u0496\3"+ - "\2\2\2\u0484\u0496\7-\2\2\u0485\u0496\7*\2\2\u0486\u0496\5h\65\2\u0487"+ - "\u0496\7f\2\2\u0488\u0489\5N(\2\u0489\u048a\7C\2\2\u048a\u048b\7\13\2"+ - "\2\u048b\u0496\3\2\2\2\u048c\u048d\7\62\2\2\u048d\u048e\7C\2\2\u048e\u0496"+ - "\7\13\2\2\u048f\u0493\5\u00c0a\2\u0490\u0494\5\u00c8e\2\u0491\u0492\7"+ - "-\2\2\u0492\u0494\5\u00caf\2\u0493\u0490\3\2\2\2\u0493\u0491\3\2\2\2\u0494"+ - "\u0496\3\2\2\2\u0495\u0480\3\2\2\2\u0495\u0484\3\2\2\2\u0495\u0485\3\2"+ - "\2\2\u0495\u0486\3\2\2\2\u0495\u0487\3\2\2\2\u0495\u0488\3\2\2\2\u0495"+ - "\u048c\3\2\2\2\u0495\u048f\3\2\2\2\u0496\u00b3\3\2\2\2\u0497\u0498\5\u00c0"+ - "a\2\u0498\u0499\5\u00b6\\\2\u0499\u049a\5\u00bc_\2\u049a\u04a1\3\2\2\2"+ - "\u049b\u049e\5\u00b6\\\2\u049c\u049f\5\u00ba^\2\u049d\u049f\5\u00bc_\2"+ - "\u049e\u049c\3\2\2\2\u049e\u049d\3\2\2\2\u049f\u04a1\3\2\2\2\u04a0\u0497"+ - "\3\2\2\2\u04a0\u049b\3\2\2\2\u04a1\u00b5\3\2\2\2\u04a2\u04a4\7f\2\2\u04a3"+ - "\u04a5\5\u00c2b\2\u04a4\u04a3\3\2\2\2\u04a4\u04a5\3\2\2\2\u04a5\u04ad"+ - "\3\2\2\2\u04a6\u04a7\7C\2\2\u04a7\u04a9\7f\2\2\u04a8\u04aa\5\u00c2b\2"+ - "\u04a9\u04a8\3\2\2\2\u04a9\u04aa\3\2\2\2\u04aa\u04ac\3\2\2\2\u04ab\u04a6"+ - "\3\2\2\2\u04ac\u04af\3\2\2\2\u04ad\u04ab\3\2\2\2\u04ad\u04ae\3\2\2\2\u04ae"+ - "\u04b2\3\2\2\2\u04af\u04ad\3\2\2\2\u04b0\u04b2\5R*\2\u04b1\u04a2\3\2\2"+ - "\2\u04b1\u04b0\3\2\2\2\u04b2\u00b7\3\2\2\2\u04b3\u04b5\7f\2\2\u04b4\u04b6"+ - "\5\u00c4c\2\u04b5\u04b4\3\2\2\2\u04b5\u04b6\3\2\2\2\u04b6\u04b7\3\2\2"+ - "\2\u04b7\u04b8\5\u00bc_\2\u04b8\u00b9\3\2\2\2\u04b9\u04d5\7?\2\2\u04ba"+ - "\u04bf\7@\2\2\u04bb\u04bc\7?\2\2\u04bc\u04be\7@\2\2\u04bd\u04bb\3\2\2"+ - "\2\u04be\u04c1\3\2\2\2\u04bf\u04bd\3\2\2\2\u04bf\u04c0\3\2\2\2\u04c0\u04c2"+ - "\3\2\2\2\u04c1\u04bf\3\2\2\2\u04c2\u04d6\5J&\2\u04c3\u04c4\5\u00b0Y\2"+ - "\u04c4\u04cb\7@\2\2\u04c5\u04c6\7?\2\2\u04c6\u04c7\5\u00b0Y\2\u04c7\u04c8"+ - "\7@\2\2\u04c8\u04ca\3\2\2\2\u04c9\u04c5\3\2\2\2\u04ca\u04cd\3\2\2\2\u04cb"+ - "\u04c9\3\2\2\2\u04cb\u04cc\3\2\2\2\u04cc\u04d2\3\2\2\2\u04cd\u04cb\3\2"+ - "\2\2\u04ce\u04cf\7?\2\2\u04cf\u04d1\7@\2\2\u04d0\u04ce\3\2\2\2\u04d1\u04d4"+ - "\3\2\2\2\u04d2\u04d0\3\2\2\2\u04d2\u04d3\3\2\2\2\u04d3\u04d6\3\2\2\2\u04d4"+ - "\u04d2\3\2\2\2\u04d5\u04ba\3\2\2\2\u04d5\u04c3\3\2\2\2\u04d6\u00bb\3\2"+ - "\2\2\u04d7\u04d9\5\u00caf\2\u04d8\u04da\5$\23\2\u04d9\u04d8\3\2\2\2\u04d9"+ - "\u04da\3\2\2\2\u04da\u00bd\3\2\2\2\u04db\u04dc\5\u00c0a\2\u04dc\u04dd"+ - "\5\u00c8e\2\u04dd\u00bf\3\2\2\2\u04de\u04df\7F\2\2\u04df\u04e0\5\"\22"+ - "\2\u04e0\u04e1\7E\2\2\u04e1\u00c1\3\2\2\2\u04e2\u04e3\7F\2\2\u04e3\u04e6"+ - "\7E\2\2\u04e4\u04e6\5T+\2\u04e5\u04e2\3\2\2\2\u04e5\u04e4\3\2\2\2\u04e6"+ - "\u00c3\3\2\2\2\u04e7\u04e8\7F\2\2\u04e8\u04eb\7E\2\2\u04e9\u04eb\5\u00c0"+ - "a\2\u04ea\u04e7\3\2\2\2\u04ea\u04e9\3\2\2\2\u04eb\u00c5\3\2\2\2\u04ec"+ - "\u04f3\5\u00caf\2\u04ed\u04ee\7C\2\2\u04ee\u04f0\7f\2\2\u04ef\u04f1\5"+ - "\u00caf\2\u04f0\u04ef\3\2\2\2\u04f0\u04f1\3\2\2\2\u04f1\u04f3\3\2\2\2"+ - "\u04f2\u04ec\3\2\2\2\u04f2\u04ed\3\2\2\2\u04f3\u00c7\3\2\2\2\u04f4\u04f5"+ - "\7*\2\2\u04f5\u04f9\5\u00c6d\2\u04f6\u04f7\7f\2\2\u04f7\u04f9\5\u00ca"+ - "f\2\u04f8\u04f4\3\2\2\2\u04f8\u04f6\3\2\2\2\u04f9\u00c9\3\2\2\2\u04fa"+ - "\u04fc\7;\2\2\u04fb\u04fd\5\u00aaV\2\u04fc\u04fb\3\2\2\2\u04fc\u04fd\3"+ - "\2\2\2\u04fd\u04fe\3\2\2\2\u04fe\u04ff\7<\2\2\u04ff\u00cb\3\2\2\2\u0097"+ - "\u00cd\u00d2\u00d8\u00e0\u00e9\u00ee\u00f5\u00fc\u0103\u010a\u010f\u0113"+ - "\u0117\u011b\u0120\u0124\u0128\u0132\u013a\u0141\u0148\u014c\u014f\u0152"+ - "\u015b\u0161\u0166\u0169\u016f\u0175\u0179\u0182\u0189\u0192\u0199\u019f"+ - "\u01a3\u01ae\u01b2\u01ba\u01bf\u01c3\u01cc\u01da\u01df\u01e8\u01f0\u01fa"+ - "\u0202\u020a\u020f\u021b\u0221\u0228\u022d\u0235\u0239\u023b\u0246\u024e"+ - "\u0251\u0255\u025a\u025e\u0269\u0272\u0274\u027b\u0280\u0289\u028e\u0291"+ - "\u0296\u029f\u02af\u02b9\u02bc\u02c5\u02cf\u02d7\u02da\u02dd\u02ea\u02f2"+ - "\u02f7\u02ff\u0303\u0307\u030b\u030d\u0311\u0317\u0322\u032a\u0332\u033d"+ - "\u0346\u035d\u0360\u0363\u036b\u036f\u0377\u037d\u0388\u0391\u0396\u03a0"+ - "\u03a7\u03b4\u03bd\u03c6\u03cc\u03d7\u03dc\u03e8\u03ec\u03f0\u03f4\u03f6"+ - "\u03fa\u03ff\u0412\u0426\u0436\u0461\u0473\u047b\u047d\u0493\u0495\u049e"+ - "\u04a0\u04a4\u04a9\u04ad\u04b1\u04b5\u04bf\u04cb\u04d2\u04d5\u04d9\u04e5"+ - "\u04ea\u04f0\u04f2\u04f8\u04fc"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/antlr/makefile b/antlr/makefile deleted file mode 100644 index fb834ab2..00000000 --- a/antlr/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: - java -jar ./antlr-4.4-complete.jar Java8.g4 - javac -cp ./antlr-4.4-complete.jar:. *.java - diff --git a/bin/log4j.xml b/bin/log4j.xml deleted file mode 100755 index 64e7c5db..00000000 --- a/bin/log4j.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/OldExamples/hama/Add.jav b/examples/OldExamples/hama/Add.jav deleted file mode 100755 index 2836a30e..00000000 --- a/examples/OldExamples/hama/Add.jav +++ /dev/null @@ -1,7 +0,0 @@ -class Add -{ - int add(int a, int b) - { - return a + b; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/AddMain.jav b/examples/OldExamples/hama/AddMain.jav deleted file mode 100755 index ec994b64..00000000 --- a/examples/OldExamples/hama/AddMain.jav +++ /dev/null @@ -1,8 +0,0 @@ -class AddMain -{ - public static void main(String[] args) - { - Add a = new Add(); - System.out.println("Addition: 3+4= " + a.add(3, 4)); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/Empty.jav b/examples/OldExamples/hama/Empty.jav deleted file mode 100755 index 518f9769..00000000 --- a/examples/OldExamples/hama/Empty.jav +++ /dev/null @@ -1,4 +0,0 @@ -class Empty -{ - -} \ No newline at end of file diff --git a/examples/OldExamples/hama/EmptyMain.jav b/examples/OldExamples/hama/EmptyMain.jav deleted file mode 100755 index a183eefe..00000000 --- a/examples/OldExamples/hama/EmptyMain.jav +++ /dev/null @@ -1,8 +0,0 @@ -public class EmptyMain -{ - public static void main(String[] args) - { - Empty e = new Empty(); - System.out.println("finished"); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/Ergebnis.jav b/examples/OldExamples/hama/Ergebnis.jav deleted file mode 100755 index 5a12e67a..00000000 --- a/examples/OldExamples/hama/Ergebnis.jav +++ /dev/null @@ -1,18 +0,0 @@ -class Ergebnis -{ - int zahl1; - int zahl2; - int erg; - - void berechne(int a, int b) - { - zahl1 = a; - zahl2 = b; - erg = zahl1 + zahl2; - } - - int ergebnis() - { - return erg; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/ErgebnisMain.jav b/examples/OldExamples/hama/ErgebnisMain.jav deleted file mode 100755 index 3639afcc..00000000 --- a/examples/OldExamples/hama/ErgebnisMain.jav +++ /dev/null @@ -1,9 +0,0 @@ -public class ErgebnisMain -{ - public static void main(String[] args) - { - Ergebnis e = new Ergebnis(); - e.berechne(2, 3); - System.out.println("Addition: 2+3= " + e.ergebnis()); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/Setze.jav b/examples/OldExamples/hama/Setze.jav deleted file mode 100755 index 74312dd1..00000000 --- a/examples/OldExamples/hama/Setze.jav +++ /dev/null @@ -1,9 +0,0 @@ -class Setze -{ - int zahl; - - void setze() - { - zahl = 555; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/SetzeMain.jav b/examples/OldExamples/hama/SetzeMain.jav deleted file mode 100755 index 4198bd63..00000000 --- a/examples/OldExamples/hama/SetzeMain.jav +++ /dev/null @@ -1,9 +0,0 @@ -public class SetzeMain -{ - public static void main(String[] args) - { - Setze s = new Setze(); - s.setze(); - System.out.println("finished"); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingObj.jav b/examples/OldExamples/hama/StoreSomethingObj.jav deleted file mode 100755 index 83a47a39..00000000 --- a/examples/OldExamples/hama/StoreSomethingObj.jav +++ /dev/null @@ -1,14 +0,0 @@ -class StoreSomethingObj -{ - Object something; - - Object get() - { - return something; - } - - void set(Object some) - { - something = some; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingObjCon.jav b/examples/OldExamples/hama/StoreSomethingObjCon.jav deleted file mode 100755 index 07ca94f8..00000000 --- a/examples/OldExamples/hama/StoreSomethingObjCon.jav +++ /dev/null @@ -1,19 +0,0 @@ -class StoreSomethingObjCon -{ - Object something; - - StoreSomethingObjCon(Object some) - { - something = some; - } - - Object get() - { - return something; - } - - void set(Object some) - { - something = some; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingObjMain.jav b/examples/OldExamples/hama/StoreSomethingObjMain.jav deleted file mode 100755 index 747a404a..00000000 --- a/examples/OldExamples/hama/StoreSomethingObjMain.jav +++ /dev/null @@ -1,15 +0,0 @@ -public class StoreSomethingObjMain -{ - public static void main(String[] args) - { - StoreSomethingObjCon a = new StoreSomethingObjCon("I'm a String"); - System.out.println(a.get()); - a.set("new String"); - System.out.println(a.get()); - StoreSomethingObj b = new StoreSomethingObj(); - b.set("I'm var b"); - System.out.println(b.get()); - b.set("new b"); - System.out.println(b.get()); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingPar.jav b/examples/OldExamples/hama/StoreSomethingPar.jav deleted file mode 100755 index a5c453f4..00000000 --- a/examples/OldExamples/hama/StoreSomethingPar.jav +++ /dev/null @@ -1,14 +0,0 @@ -class StoreSomethingPar -{ - A something; - - A get() - { - return something; - } - - void set(A some) - { - something = some; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingParCon.jav b/examples/OldExamples/hama/StoreSomethingParCon.jav deleted file mode 100755 index 47b58a44..00000000 --- a/examples/OldExamples/hama/StoreSomethingParCon.jav +++ /dev/null @@ -1,19 +0,0 @@ -class StoreSomethingParCon -{ - A something; - - StoreSomethingParCon(A some) - { - something = some; - } - - A get() - { - return something; - } - - void set(A some) - { - something = some; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingParMain.jav b/examples/OldExamples/hama/StoreSomethingParMain.jav deleted file mode 100755 index b633055f..00000000 --- a/examples/OldExamples/hama/StoreSomethingParMain.jav +++ /dev/null @@ -1,15 +0,0 @@ -public class MStoreSomethingParMain -{ - public static void main(String[] args) - { - StoreSomethingParCon a = new StoreSomethingParCon("I'm a String"); - System.out.println(a.get()); - a.set("new String"); - System.out.println(a.get()); - StoreSomethingPar b = new StoreSomethingPar(); - b.set("I'm var b"); - System.out.println(b.get()); - b.set("new b"); - System.out.println(b.get()); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingParMainTrick.jav b/examples/OldExamples/hama/StoreSomethingParMainTrick.jav deleted file mode 100755 index b8743523..00000000 --- a/examples/OldExamples/hama/StoreSomethingParMainTrick.jav +++ /dev/null @@ -1,15 +0,0 @@ -public class StoreSomethingParMainTrick -{ - public static void main(String[] args) - { - StoreSomethingParCon a = new StoreSomethingParCon("I'm a String"); - System.out.println(a.get()); - a.set("new String"); - System.out.println(a.get()); - StoreSomethingPar b = new StoreSomethingPar(); - b.set("I'm var b"); - System.out.println(b.get()); - b.set("new b"); - System.out.println(b.get()); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingStr.jav b/examples/OldExamples/hama/StoreSomethingStr.jav deleted file mode 100755 index 20a600fe..00000000 --- a/examples/OldExamples/hama/StoreSomethingStr.jav +++ /dev/null @@ -1,14 +0,0 @@ -class StoreSomethingStr -{ - String something; - - String get() - { - return something; - } - - void set(String some) - { - something = some; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingStrCon.jav b/examples/OldExamples/hama/StoreSomethingStrCon.jav deleted file mode 100755 index e3b90155..00000000 --- a/examples/OldExamples/hama/StoreSomethingStrCon.jav +++ /dev/null @@ -1,19 +0,0 @@ -class StoreSomethingStrCon -{ - String something; - - StoreSomethingStrCon(String some) - { - something = some; - } - - String get() - { - return something; - } - - void set(String some) - { - something = some; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/StoreSomethingStrMain.jav b/examples/OldExamples/hama/StoreSomethingStrMain.jav deleted file mode 100755 index 05b258d1..00000000 --- a/examples/OldExamples/hama/StoreSomethingStrMain.jav +++ /dev/null @@ -1,15 +0,0 @@ -public class StoreSomethingStrMain -{ - public static void main(String[] args) - { - StoreSomethingStrCon a = new StoreSomethingStrCon("I'm a String"); - System.out.println(a.get()); - a.set("new String"); - System.out.println(a.get()); - StoreSomethingStr b = new StoreSomethingStr(); - b.set("I'm var b"); - System.out.println(b.get()); - b.set("new b"); - System.out.println(b.get()); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/Toggle1.jav b/examples/OldExamples/hama/Toggle1.jav deleted file mode 100755 index 01bd0d95..00000000 --- a/examples/OldExamples/hama/Toggle1.jav +++ /dev/null @@ -1,16 +0,0 @@ -class Toggle1 -{ - boolean toggle(boolean b) - { - if(b) - { - b = false; - return b; - } - else - { - b = true; - return b; - } - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/Toggle2.jav b/examples/OldExamples/hama/Toggle2.jav deleted file mode 100755 index f66d824c..00000000 --- a/examples/OldExamples/hama/Toggle2.jav +++ /dev/null @@ -1,15 +0,0 @@ -class Toggle2 -{ - boolean toggle(boolean b) - { - if(b) - { - b = false; - } - else - { - b = true; - } - return b; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/Toggle3.jav b/examples/OldExamples/hama/Toggle3.jav deleted file mode 100755 index c437e6b3..00000000 --- a/examples/OldExamples/hama/Toggle3.jav +++ /dev/null @@ -1,25 +0,0 @@ -public class Toggle3 -{ - boolean toggle(boolean b) - { - if(b) - { - b = false; - if(true) - { - return b; - } - b = false; - } - else - { - b = true; - if(true) - { - return b; - } - b = true; - } - return b; - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/ToggleMain.jav b/examples/OldExamples/hama/ToggleMain.jav deleted file mode 100755 index 8b24c5ee..00000000 --- a/examples/OldExamples/hama/ToggleMain.jav +++ /dev/null @@ -1,18 +0,0 @@ -public class ToggleMain -{ - public static void main(String[] args) - { - Toggle1 t1 = new Toggle1(); - boolean b1 = false; - System.out.println("b1: " + b1); - System.out.println("b1 getoggelt: " + t1.toggle(b1)); - Toggle2 t2 = new Toggle2(); - boolean b2 = false; - System.out.println("b2: " + b2); - System.out.println("b2 getoggelt: " + t2.toggle(b2)); - Toggle3 t3 = new Toggle3(); - boolean b3 = false; - System.out.println("b3: " + b3); - System.out.println("b3 getoggelt: " + t3.toggle(b3)); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/test1.jav b/examples/OldExamples/hama/test1.jav deleted file mode 100755 index 74c0dacf..00000000 --- a/examples/OldExamples/hama/test1.jav +++ /dev/null @@ -1,37 +0,0 @@ -class Test -{ -} - - - -class List1 -{ - A ab; - C da; - - B bu() - { - } -} - - - -class Listst2 -{ - A object = null; - Listst2 next = new Listst2(); -} - - - -class MainKlasse extends List1, List1> -{ - x ra; - List1 li = new List1(); - - void main() - { - List1> si = new List1(); - si.bu(); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/test11.jav b/examples/OldExamples/hama/test11.jav deleted file mode 100755 index bc9051d1..00000000 --- a/examples/OldExamples/hama/test11.jav +++ /dev/null @@ -1,37 +0,0 @@ -class Test -{ -} - - - -class List1 -{ - A ab; - C da; - - B bu() - { - } -} - - - -class Listst2 -{ - A object = null; - Listst2 next = new Listst2(); -} - - - -class MainKlasse extends List1, List1> -{ - x ra; - List1 li = new List1(); - - void main() - { - List1> si = new List1(); - si.bu(); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/test1o.jav b/examples/OldExamples/hama/test1o.jav deleted file mode 100755 index 824d88a1..00000000 --- a/examples/OldExamples/hama/test1o.jav +++ /dev/null @@ -1,20 +0,0 @@ -class test{} -class list{ - A a; - B b(){} - C d; -} - -class main extends list,list> { - x r; - list l = new list(); - void main(){ - list>s= new list(); - s.b(); - } -} - -class List{ - List next = new List(); - A object = null; -} diff --git a/examples/OldExamples/hama/test2.jav b/examples/OldExamples/hama/test2.jav deleted file mode 100755 index 834363c0..00000000 --- a/examples/OldExamples/hama/test2.jav +++ /dev/null @@ -1,42 +0,0 @@ -class Inte -{ -} - - - -class Liststst3 -{ - A ab = null; - Liststst3 next = new Liststst3(); - - void insert(A elem) - { - if(ab = null) - { - ab = elem; - } - else - { - next.insert(elem); - } - } - - void get(A elem) - { - System.out.println(elem); - next.get(elem); - } -} - - - -class MainClass extends Liststst3> -{ - Liststst3 li = new Liststst3(); - - void main() - { - Liststst3 sa = new Liststst3(), li = new Liststst3(); - Inte in = new Inte(); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/test22.jav b/examples/OldExamples/hama/test22.jav deleted file mode 100755 index 863f80bb..00000000 --- a/examples/OldExamples/hama/test22.jav +++ /dev/null @@ -1,42 +0,0 @@ -class Inte -{ -} - - - -class Liststst3 -{ - A ab = null; - Liststst3 next = new Liststst3(); - - void insert(A elem) - { - if(ab == null) - { - ab = elem; - } - else - { - next.insert(elem); - } - } - - void get(A elem) - { - System.out.println(elem); - next.get(elem); - } -} - - - -class MainClass extends Liststst3> -{ - Liststst3 li = new Liststst3(); - - void main() - { - Liststst3 sa = new Liststst3(), li = new Liststst3(); - Inte in = new Inte(); - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/test2o.jav b/examples/OldExamples/hama/test2o.jav deleted file mode 100755 index 41be95a1..00000000 --- a/examples/OldExamples/hama/test2o.jav +++ /dev/null @@ -1,32 +0,0 @@ -class INT{} -class list{ - A a = null; - listnext = new list(); - void insert(A elem){ - if(a = null){ - a=elem; - } - else{ - next.insert(elem); - } - } - void get(A elem){ - - System.out.println(elem); - - next.get(elem); - - } -} - -class main extends list> { - - list l = new list(); - void main(){ - lists= new list(), l = new list(); - INT i = new INT(); - } -} - - - diff --git a/examples/OldExamples/hama/test3.jav b/examples/OldExamples/hama/test3.jav deleted file mode 100755 index 854523d1..00000000 --- a/examples/OldExamples/hama/test3.jav +++ /dev/null @@ -1,29 +0,0 @@ -class Listststst4 -{ - A objec = null; - Listststst4 next = new Listststst4(); - - void insert(A obj) - { - if(this.objec == null) - { - this.objec = obj; - } - else - { - this.next.insert(obj); - } - } - - A getObjectAt(int n) - { - if(n == 0) - { - return this.objec; - } - else - { - return this.next.getObjectAt(n-1); - } - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/test33.jav b/examples/OldExamples/hama/test33.jav deleted file mode 100755 index 0253886d..00000000 --- a/examples/OldExamples/hama/test33.jav +++ /dev/null @@ -1,29 +0,0 @@ -class Listststst4 -{ - A objec = null; - Listststst4 next = new Listststst4(); - - void insert(A obj) - { - if(objec = null) - { - objec = obj; - } - else - { - next.insert(obj); - } - } - - A getObjectAt(int n) - { - if(n = 0) - { - return objec; - } - else - { - return next.getObjectAt(n-1); - } - } -} \ No newline at end of file diff --git a/examples/OldExamples/hama/test3o.jav b/examples/OldExamples/hama/test3o.jav deleted file mode 100755 index 3fe316db..00000000 --- a/examples/OldExamples/hama/test3o.jav +++ /dev/null @@ -1,20 +0,0 @@ -class List{ - List next = new List(); - A object = null; - A getObjectAt(int n){ - if(n==0){ - return object; - } - else{ - return this.next.getObjectAt(n-1); - } - } - void insert(A object){ - if(this. Object == null){ - this.object = object; - } - else{ - this.next.insert(object); - } - } -} diff --git a/examples/OldExamples/otth/otth10.jav b/examples/OldExamples/otth/otth10.jav deleted file mode 100755 index 435f3a93..00000000 --- a/examples/OldExamples/otth/otth10.jav +++ /dev/null @@ -1,22 +0,0 @@ -class otth10 -{ - f1( a, int b ) - { - } - - int f3( X test ) - { - } - - otth10( int b, c, d ) - { - } - -} - -class Test -{ - f5() - { - } -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth11.jav b/examples/OldExamples/otth/otth11.jav deleted file mode 100755 index dcc091ef..00000000 --- a/examples/OldExamples/otth/otth11.jav +++ /dev/null @@ -1,10 +0,0 @@ -class otth11 -{ - f1( a, int b ) - { - } - - void f2( TYPEA VA, TYPEB VB) - { - } -} diff --git a/examples/OldExamples/otth/otth12.jav b/examples/OldExamples/otth/otth12.jav deleted file mode 100755 index 2491fd15..00000000 --- a/examples/OldExamples/otth/otth12.jav +++ /dev/null @@ -1,26 +0,0 @@ -class AbstractList -{ - A a = null; -} - -class Vektor extends AbstractList -{ - B a = null; -} - -class Stapel extends Vektor -{ - A a = null; -} - -class IntZahl -{ -} - -class Bool -{ -} - -class Main -{ -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth13.jav b/examples/OldExamples/otth/otth13.jav deleted file mode 100755 index 90f1104d..00000000 --- a/examples/OldExamples/otth/otth13.jav +++ /dev/null @@ -1,13 +0,0 @@ -class AbstractList -{ - A a = null; - B b = null; -} - - -class Vektor extends AbstractList -{ - A a = null; - B b = null; - C c = null; -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth14.jav b/examples/OldExamples/otth/otth14.jav deleted file mode 100755 index fcb26755..00000000 --- a/examples/OldExamples/otth/otth14.jav +++ /dev/null @@ -1,11 +0,0 @@ -class X -{ - B a = null; -} - -class otth14 -{ - void f1( X a ) - { - } -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth15.jav b/examples/OldExamples/otth/otth15.jav deleted file mode 100755 index 74036c93..00000000 --- a/examples/OldExamples/otth/otth15.jav +++ /dev/null @@ -1,43 +0,0 @@ -class List -{ - A a = null; -} - -class Vektor extends List -{ - A a = null; -} - -class Stack extends Vektor -{ - A a = null; -} - -class ClassB -{ - A a = null; - B b = null; - C c = null; -} - -class ClassA extends ClassB -{ - A a = null; - B b = null; - C c = null; -} - -class Int -{ -} - -class Bool -{ -} - -class otth15 -{ - void f1( X a ) - { - } -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth16.jav b/examples/OldExamples/otth/otth16.jav deleted file mode 100755 index 409b607e..00000000 --- a/examples/OldExamples/otth/otth16.jav +++ /dev/null @@ -1,38 +0,0 @@ -class List -{ - A a = null; -} - -class AbstractList extends List -{ - A a = null; -} - -class Vektor extends AbstractList -{ - A a = null; -} - -class Stack extends Vektor -{ - A a = null; -} - -class Objekt -{ -} - -class Int -{ -} - -class Paar -{ - A a = null; - B b = null; -} - - -class otth16 -{ -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth17.jav b/examples/OldExamples/otth/otth17.jav deleted file mode 100755 index 77e0d56a..00000000 --- a/examples/OldExamples/otth/otth17.jav +++ /dev/null @@ -1,25 +0,0 @@ -class DD -{ - A a = null; - B b = null; -} - -class CC -{ - A a = null; -} - -class BB< A > extends CC -{ - A a = null; -} - -class AA extends BB< DD > -{ - A a = null; - B b = null; -} - -class otth17 -{ -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth18.jav b/examples/OldExamples/otth/otth18.jav deleted file mode 100755 index 0519ecba..00000000 --- a/examples/OldExamples/otth/otth18.jav +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/examples/OldExamples/otth/otth19.jav b/examples/OldExamples/otth/otth19.jav deleted file mode 100755 index 883ea900..00000000 --- a/examples/OldExamples/otth/otth19.jav +++ /dev/null @@ -1,17 +0,0 @@ -class List -{ - A a; -} - -class Objekt -{ -} - -class AbstractList { A a; } -class Vektor extends AbstractList { A a; } -class Matrix extends Vektor> { A a; } -class ExtMatrix extends Matrix { A a; } - -class otth19 -{ -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth20.jav b/examples/OldExamples/otth/otth20.jav deleted file mode 100755 index 03f23374..00000000 --- a/examples/OldExamples/otth/otth20.jav +++ /dev/null @@ -1,10 +0,0 @@ -class otth20 -{ - f1( a, b ) - { - } - - f2( a, int b, c ) - { - } -} diff --git a/examples/OldExamples/otth/otth21.jav b/examples/OldExamples/otth/otth21.jav deleted file mode 100755 index 6e2bc669..00000000 --- a/examples/OldExamples/otth/otth21.jav +++ /dev/null @@ -1,24 +0,0 @@ -class T1 -{ -} - -class T0 -{ -} - -class BB< W, X, Y > -{ - X a = null; - Y b = null; - W c = null; -} - -class AA extends BB< T0, CC, T1 > -{ - A a = null; - B b = null; -} - -class otth21 -{ -} diff --git a/examples/OldExamples/otth/otth22.jav b/examples/OldExamples/otth/otth22.jav deleted file mode 100755 index b2b4035a..00000000 --- a/examples/OldExamples/otth/otth22.jav +++ /dev/null @@ -1,23 +0,0 @@ -class AbstractList -{ - A a = null; -} - -class Vektor extends AbstractList -{ - A a = null; -} - -class Matrix extends Vektor> -{ - A a = null; -} - -class ExMatrix extends Matrix -{ - A a = null; -} - -class otth22 -{ -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth23.jav b/examples/OldExamples/otth/otth23.jav deleted file mode 100755 index f936c99b..00000000 --- a/examples/OldExamples/otth/otth23.jav +++ /dev/null @@ -1,16 +0,0 @@ -class BB -{ - A a = null; -} - -class CC -{ - C c = null; - D d = null; -} - -class XX extends CC>>, BB>> -{ - A a = null; - X b = null; -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth24.jav b/examples/OldExamples/otth/otth24.jav deleted file mode 100755 index 1b7dd33e..00000000 --- a/examples/OldExamples/otth/otth24.jav +++ /dev/null @@ -1,16 +0,0 @@ -class BB -{ - A a = null; -} - -class CC -{ - C c = null; - D d = null; -} - -class XX extends CC>>, BB>> -{ - A a = null; - X b = null; -} \ No newline at end of file diff --git a/examples/OldExamples/otth/otth8.jav b/examples/OldExamples/otth/otth8.jav deleted file mode 100755 index bbe34321..00000000 --- a/examples/OldExamples/otth/otth8.jav +++ /dev/null @@ -1,12 +0,0 @@ -class otth8 -{ - int add( int x, int y ) - { - return x + y; - } - - int mul( int x, int y ) - { - return x * y; - } -} \ No newline at end of file diff --git a/examples/OldExamples/otth/pl1.jav.txt b/examples/OldExamples/otth/pl1.jav.txt deleted file mode 100755 index cb581afb..00000000 --- a/examples/OldExamples/otth/pl1.jav.txt +++ /dev/null @@ -1,28 +0,0 @@ -class Vektor -{ - A a = null; -} - -class Matrix extends Vektor> -{ - A a = null; -} - -class ExtMatrix extends Matrix> -{ - A a = null; -} - - -class Objekt -{ -} - -class List -{ - A a = null; -} - -class otth19 -{ -} \ No newline at end of file diff --git a/examples/OldExamples/otth/pl2.jav.txt b/examples/OldExamples/otth/pl2.jav.txt deleted file mode 100755 index c003ef37..00000000 --- a/examples/OldExamples/otth/pl2.jav.txt +++ /dev/null @@ -1,28 +0,0 @@ -class Vektor -{ - A a = null; -} - -class Matrix extends Vektor> -{ - A a = null; -} - -class ExtMatrix extends Vektor>> -{ - A a = null; -} - - -class Objekt -{ -} - -class List -{ - A a = null; -} - -class otth19 -{ -} \ No newline at end of file diff --git a/examples/OldExamples/test/Class1.java b/examples/OldExamples/test/Class1.java deleted file mode 100755 index 52bd8c02..00000000 --- a/examples/OldExamples/test/Class1.java +++ /dev/null @@ -1,8 +0,0 @@ -package test; - - - -public class Class1 -{ - int testwert; -} \ No newline at end of file diff --git a/examples/OldExamples/test/Class2.java b/examples/OldExamples/test/Class2.java deleted file mode 100755 index a12baf13..00000000 --- a/examples/OldExamples/test/Class2.java +++ /dev/null @@ -1,8 +0,0 @@ -package test; - - - -public class Class2 -{ - Class1 class1var; -} \ No newline at end of file diff --git a/examples/OldExamples/test/Class3.java b/examples/OldExamples/test/Class3.java deleted file mode 100755 index 102a36ef..00000000 --- a/examples/OldExamples/test/Class3.java +++ /dev/null @@ -1,8 +0,0 @@ -package test; - - - -public class Class3 -{ - Class2 class2var; -} \ No newline at end of file diff --git a/examples/OldExamples/test/Eins.java b/examples/OldExamples/test/Eins.java deleted file mode 100755 index 444efd0e..00000000 --- a/examples/OldExamples/test/Eins.java +++ /dev/null @@ -1,27 +0,0 @@ -package test; - - - -public class Eins -{ - int a; - char b = 'a'; - boolean c = false; - String s = "Hallo"; - - public static void Methode() - { - int g = 34; - char h = 'c'; - String bla = "Haus"; - boolean bo = true; - } - - private int Methode2() - { - Zwei testklasse = new Zwei(); - int d; - int f = d = 5; - return 14; - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/ExtendTest.java b/examples/OldExamples/test/ExtendTest.java deleted file mode 100755 index eba0a412..00000000 --- a/examples/OldExamples/test/ExtendTest.java +++ /dev/null @@ -1,8 +0,0 @@ -package test; - - - -public class ExtendTest -{ - int testwert; -} \ No newline at end of file diff --git a/examples/OldExamples/test/Main.java b/examples/OldExamples/test/Main.java deleted file mode 100755 index 3c4bdd14..00000000 --- a/examples/OldExamples/test/Main.java +++ /dev/null @@ -1,21 +0,0 @@ -package test; - - - -public class Main -{ - int i = 10; - - public static void main(String[] args) - { - Main2 m = new Main2(); - m.print(); - - /* - int i = 0; - i = Integer.parseInt(args[0]); - test_code x = new test_code(); - x.main(i); - */ - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/Main2.java b/examples/OldExamples/test/Main2.java deleted file mode 100755 index cdb31608..00000000 --- a/examples/OldExamples/test/Main2.java +++ /dev/null @@ -1,11 +0,0 @@ -package test; - - - -public class Main2 extends Main -{ - public void print() - { - System.out.println(i); - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/MethTestBasis.java b/examples/OldExamples/test/MethTestBasis.java deleted file mode 100755 index 9fd2a4ec..00000000 --- a/examples/OldExamples/test/MethTestBasis.java +++ /dev/null @@ -1,12 +0,0 @@ -package test; - - - -public class MethTestBasis -{ - int test; - int testen() - { - return test; - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/MethTestInherit.java b/examples/OldExamples/test/MethTestInherit.java deleted file mode 100755 index a815204a..00000000 --- a/examples/OldExamples/test/MethTestInherit.java +++ /dev/null @@ -1,12 +0,0 @@ -package test; - - - -public class MethTestInherit extends MethTestBasis -{ - int testen(int a,int b) - { - a=b; - return test; - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/SCTest.java b/examples/OldExamples/test/SCTest.java deleted file mode 100755 index a7a41c39..00000000 --- a/examples/OldExamples/test/SCTest.java +++ /dev/null @@ -1,314 +0,0 @@ -package test; - - - -import SourceFile; -import Class; -import ClassBody; -import InstVarDecl; -import DeclId; -import Method; -import Return; -import ParameterList; -import FormalParameter; -import Block; -import Assign; -import Receiver; -import MethodCall; -import LocalOrFieldVar; -import ClassDeclId; -import UsedId; -import Type; -import SCException; - - - - -public class SCTest -{ - public SourceFile source=new SourceFile(); - - private boolean extendedsc; - - public void build_tree() - { - Class a=new Class(); - Class class1=new Class(); - Class class2=new Class(); - Class class3 =new Class(); - Class b=new Class(); - Class c=new Class(); - Class dc=new Class(); - ClassBody ab=new ClassBody(); - ClassBody b1=new ClassBody(); - ClassBody b2=new ClassBody(); - ClassBody b3=new ClassBody(); - ClassBody bb=new ClassBody(); - ClassBody cb=new ClassBody(); - ClassBody dcb=new ClassBody(); - InstVarDecl i=new InstVarDecl(); - InstVarDecl j=new InstVarDecl(); - InstVarDecl ij=new InstVarDecl(); - InstVarDecl inst1=new InstVarDecl(); - InstVarDecl inst2=new InstVarDecl(); - InstVarDecl inst3=new InstVarDecl(); - InstVarDecl binstvar1=new InstVarDecl(); - InstVarDecl binstvar2=new InstVarDecl(); - InstVarDecl aformeth=new InstVarDecl(); - InstVarDecl aformeth2=new InstVarDecl(); - DeclId adeclformeth=new DeclId(); - DeclId decl1=new DeclId(); - DeclId decl2=new DeclId(); - DeclId decl3=new DeclId(); - DeclId decl=new DeclId(); - DeclId d=new DeclId(); - DeclId d1=new DeclId(); - DeclId d2=new DeclId(); - DeclId d3=new DeclId(); - DeclId bd1=new DeclId(); - DeclId bd2=new DeclId(); - DeclId amd1=new DeclId(); - DeclId amd2=new DeclId(); - DeclId dcmd1=new DeclId(); - DeclId dcmd2=new DeclId(); - DeclId adc=new DeclId(); - DeclId cmname=new DeclId(); - DeclId dcmname=new DeclId(); - Method m=new Method(); - Method bm=new Method(); - Method cm=new Method(); - Method dcm=new Method(); - Return amr=new Return(); - ParameterList amp=new ParameterList(); - ParameterList dcmp=new ParameterList(); - FormalParameter dcmpf=new FormalParameter(); - FormalParameter ampf1=new FormalParameter(); - FormalParameter ampf2=new FormalParameter(); - FormalParameter dcmpf1=new FormalParameter(); - FormalParameter dcmpf2=new FormalParameter(); - Block bl=new Block(); - Block bbl=new Block(); - Block dcmb=new Block(); - Block cmb=new Block(); - Assign as=new Assign(); - Receiver amrcv=new Receiver(); - Receiver amrcv2=new Receiver(); - MethodCall ammc=new MethodCall(); - MethodCall ammc2=new MethodCall(); - LocalOrFieldVar lf=new LocalOrFieldVar(); - LocalOrFieldVar lf2=new LocalOrFieldVar(); - LocalOrFieldVar amerst=new LocalOrFieldVar(); - LocalOrFieldVar amzwei=new LocalOrFieldVar(); - LocalOrFieldVar am2=new LocalOrFieldVar(); - ClassDeclId cdi=new ClassDeclId(); - ClassDeclId cdi1=new ClassDeclId(); - ClassDeclId cdi2=new ClassDeclId(); - ClassDeclId cdi3=new ClassDeclId(); - ClassDeclId bcd=new ClassDeclId(); - ClassDeclId ccd=new ClassDeclId(); - ClassDeclId dccd=new ClassDeclId(); - UsedId u1=new UsedId(); - UsedId u2=new UsedId(); - UsedId text=new UsedId(); - UsedId dccdsclass=new UsedId(); - UsedId ausedformeth=new UsedId(); - UsedId ausedformeth2=new UsedId(); - UsedId ausedinmeth=new UsedId(); - UsedId ausedinmeth2=new UsedId(); - Type t=new Type(); - Type t1=new Type(); - Type t2=new Type(); - Type t3=new Type(); - Type t4=new Type(); - Type t5=new Type(); - Type t6=new Type(); - - cdi.set_classname("test"); - cdi1.set_classname("class1"); - cdi2.set_classname("class2"); - cdi3.set_classname("class3"); - bcd.set_classname("extendtest"); - ccd.set_classname("methtestbasis"); - dccd.set_classname("methtestinherit"); - - text.set_Name("extendtest"); - dccdsclass.set_Name("methtestbasis"); - a.set_ClassDeclId(cdi); - a.set_UsedId(text); - class1.set_ClassDeclId(cdi1); - class2.set_ClassDeclId(cdi2); - class3.set_ClassDeclId(cdi3); - b.set_ClassDeclId(bcd); - c.set_ClassDeclId(ccd); - dc.set_ClassDeclId(dccd); - dc.set_UsedId(dccdsclass); - - d1.set_Name("testint1"); - d2.set_Name("testint2"); - d3.set_Name("class1var"); - decl1.set_Name("class2var"); - decl2.set_Name("class3var"); - decl3.set_Name("inttest"); - bd1.set_Name("externesint1"); - bd2.set_Name("externesint2"); - adeclformeth.set_Name("klassenvariable"); - adc.set_Name("klassenvariabledc"); - - t.set_Type("int"); - t1.set_Type("class2"); - t2.set_Type("class3"); - t3.set_Type("int"); - t4.set_Type("class1"); - t5.set_Type("extendtest"); - t6.set_Type("methtestinherit"); - - inst1.set_Type(t1); - inst2.set_Type(t2); - inst3.set_Type(t3); - ij.set_Type(t4); - i.set_Type(t); - j.set_Type(t); - aformeth.set_Type(t5); - binstvar1.set_Type(t); - binstvar2.set_Type(t); - aformeth2.set_Type(t6); - - i.set_DeclId(d1); - j.set_DeclId(d2); - ij.set_DeclId(d3); - aformeth.set_DeclId(adeclformeth); - inst1.set_DeclId(decl1); - inst2.set_DeclId(decl2); - inst3.set_DeclId(decl3); - binstvar1.set_DeclId(bd1); - binstvar2.set_DeclId(bd2); - aformeth2.set_DeclId(adc); - - ab.set_FieldDecl(i); - ab.set_FieldDecl(j); - ab.set_FieldDecl(ij); - ab.set_FieldDecl(aformeth); - b1.set_FieldDecl(inst1); - b2.set_FieldDecl(inst2); - b3.set_FieldDecl(inst3); - bb.set_FieldDecl(binstvar1); - bb.set_FieldDecl(binstvar2); - ab.set_FieldDecl(aformeth2); - - u1.set_Name("class1var"); - u1.set_Name("class2var"); - u1.set_Name("class3var"); - u1.set_Name("inttest"); - u2.set_Name("testint2"); - ausedformeth.set_Name("testfkt"); - ausedinmeth.set_Name("klassenvariable"); - ausedformeth2.set_Name("klassenvariabledc"); - ausedformeth2.set_Name("testen"); - - lf.set_UsedId(u1); - lf2.set_UsedId(u2); - amerst.set_UsedId(u1); - amzwei.set_UsedId(ausedinmeth); - - as.set_Expr(lf,lf2); - amr.set_ReturnExpr(lf2); - - amrcv.set_Expr(lf); - ammc.set_Receiver(amrcv); - ammc.set_UsedId(ausedformeth); - ammc.add_Expr(amerst); - ammc.add_Expr(amzwei); - ammc2.set_Receiver(amrcv); - ammc2.set_UsedId(ausedformeth2); - - bl.set_Statement(as); - bl.set_Statement(ammc); - bl.set_Statement(ammc2); - bl.set_Statement(amr); - - amd1.set_Name("intwert"); - amd2.set_Name("extendtest"); - dcmd1.set_Name("intwert"); - dcmd2.set_Name("intwert"); - - ampf1.set_Type(t); - ampf2.set_Type(t5); - ampf1.set_DeclId(amd1); - ampf2.set_DeclId(amd2); - dcmpf1.set_Type(t); - dcmpf2.set_Type(t); - dcmpf1.set_DeclId(dcmd1); - dcmpf2.set_DeclId(dcmd2); - - amp.set_AddParameter(ampf1); - amp.set_AddParameter(ampf2); - dcmp.set_AddParameter(dcmpf1); - dcmp.set_AddParameter(dcmpf2); - - dcm.set_ParaList(dcmp); - m.set_ParaList(amp); - - dcm.set_Block(dcmb); - m.set_Block(bl); - cm.set_Block(cmb); - - d.set_Name("testfkt"); - cmname.set_Name("testen"); - dcmname.set_Name("testen"); - - m.set_ReturnType(t); - cm.set_ReturnType(t); - dcm.set_ReturnType(t); - - m.set_DeclId(d); - cm.set_DeclId(cmname); - dcm.set_DeclId(dcmname); - - ab.set_FieldDecl(m); - cb.set_FieldDecl(cm); - dcb.set_FieldDecl(dcm); - - a.set_ClassBody(ab); - class1.set_ClassBody(b1); - class2.set_ClassBody(b2); - class3.set_ClassBody(b3); - b.set_ClassBody(bb); - c.set_ClassBody(cb); - dc.set_ClassBody(dcb); - - source.set_Class(c); - source.set_Class(dc); - source.set_Class(b); - source.set_Class(class3); - source.set_Class(class2); - source.set_Class(class1); - source.set_Class(a); - try - { - source.sc_check(extendedsc); - } - catch (SCException ex) - { - ex.fehlerausgabe(); - } - } - - public void set_ext(boolean ext) - { - extendedsc=ext; - } - - public static void main(String args[]) - { - SCTest test=new SCTest(); - if(args!=null) - { - if(args[0].equals("fullinfo")) - test.set_ext(true); - else - test.set_ext(false); - } - test.build_tree(); - - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/Test.java b/examples/OldExamples/test/Test.java deleted file mode 100755 index 4a7f0452..00000000 --- a/examples/OldExamples/test/Test.java +++ /dev/null @@ -1,16 +0,0 @@ -package test; - - - -public class Test extends ExtendTest -{ - Class3 testclass; - MethTestInherit mctest; - int versuch; - int testfkt() - { - testclass.class2var.class1var.testwert=testwert; - versuch=mctest.testen(); - return testwert; - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/TestCode.java b/examples/OldExamples/test/TestCode.java deleted file mode 100755 index 74ebff15..00000000 --- a/examples/OldExamples/test/TestCode.java +++ /dev/null @@ -1,49 +0,0 @@ -package test; - - - -public class TestCode -{ - - TestSemantic sem = new TestSemantic(); - Vererbung vererb = new Vererbung(); - - void print_String(String s) { - System.out.println(s); - } - - void main(int a) { - if(a == 0) { - int i = 0; - while(i < 20) { - int k = 0; - while(k < i) { - System.out.print(" "); - k++; - } - - System.out.println("Hello World"); - i++; - } - vererb.print_Hello_World(); - vererb.print_Hello_World(); - - System.out.println(""); - } - else { - print_String(""); - print_String(""); - print_String(""); - print_String(" Dies war ein erfolgreicher Versuch der Gruppe 2: "); - print_String(""); - - sem.sem_test(); - - int i = 0; - while(i < 7) { - print_String(""); - i++; - } - } - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/TestSemantic.java b/examples/OldExamples/test/TestSemantic.java deleted file mode 100755 index eae83e23..00000000 --- a/examples/OldExamples/test/TestSemantic.java +++ /dev/null @@ -1,35 +0,0 @@ -package test; - - - -public class TestSemantic -{ - - void print_Hello_World() { - System.out.println("Hello World"); - } - - void sem_test() { - System.out.println(" Parser:"); - System.out.println(""); - System.out.println(" Jochen Schlachter"); - System.out.println(" Thomas Schaumann"); - System.out.println(" Christian Riess"); - System.out.println(" Matthias Eichholz"); - System.out.println(""); - - System.out.println(" Sematicchecker:"); - System.out.println(""); - System.out.println(" Felix Reichenbach"); - System.out.println(" Stephan Lachenmaier"); - System.out.println(" Sabine Dawidowski"); - System.out.println(" "); - - System.out.println(" CodierSchweinchens:"); - System.out.println(""); - System.out.println(" Matthias Benesch"); - System.out.println(" Michael Henninger"); - System.out.println(" Volker Straub"); - System.out.println(" Stefan Teutsch"); - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/Vererbung.java b/examples/OldExamples/test/Vererbung.java deleted file mode 100755 index 4f1405bd..00000000 --- a/examples/OldExamples/test/Vererbung.java +++ /dev/null @@ -1,8 +0,0 @@ -package test; - - - -public class Vererbung extends TestSemantic -{ - -} \ No newline at end of file diff --git a/examples/OldExamples/test/X.java b/examples/OldExamples/test/X.java deleted file mode 100755 index 316bc12f..00000000 --- a/examples/OldExamples/test/X.java +++ /dev/null @@ -1,21 +0,0 @@ -package test; - - - -import java.io.FileOutputStream; -import CPInfo; -import ClassFile; - - - -public class X extends CPInfo -{ - byte tag; - short class_index; - short name_and_type_index; - - public void codegen(ClassFile classfile, FileOutputStream f) - { - - } -} \ No newline at end of file diff --git a/examples/OldExamples/test/Zwei.java b/examples/OldExamples/test/Zwei.java deleted file mode 100755 index 61555acb..00000000 --- a/examples/OldExamples/test/Zwei.java +++ /dev/null @@ -1,27 +0,0 @@ -package test; - - - -public class Zwei -{ - int i,a; - - private void schleifen() - { - if( i <= 10) - { - i--; - } - else - { - i++; - a *= 2; - a = i+22; - } - int r = 0; - while (r !=10) - { - r++; - } - } -} \ No newline at end of file diff --git a/examples/achim/Abstract.jav b/examples/achim/Abstract.jav deleted file mode 100755 index 448e188d..00000000 --- a/examples/achim/Abstract.jav +++ /dev/null @@ -1,12 +0,0 @@ -static class Abstract{ - abstract test(){ - i; - i=0; - } - - final test2(){ - b; - b = true; - b = false; - } -} \ No newline at end of file diff --git a/examples/achim/Add.jav b/examples/achim/Add.jav deleted file mode 100755 index e512e2e4..00000000 --- a/examples/achim/Add.jav +++ /dev/null @@ -1,6 +0,0 @@ -class Add{ - test(i,j){ - a; - a=i+j; - } -} diff --git a/examples/achim/Assert.jav b/examples/achim/Assert.jav deleted file mode 100755 index c13faafc..00000000 --- a/examples/achim/Assert.jav +++ /dev/null @@ -1,13 +0,0 @@ -public class Assert -{ - div( divident, divisor ) - { - assert divisor != 0 : "Oh bitte keine Zahl durch null teilen."; - return divident/divisor; - } - public static void main( args ) - { - println( "Quotient ist " + div(10, 2) ); - println( "Quotient ist " + div(10, 0) ); - } -} \ No newline at end of file diff --git a/examples/achim/Continue.jav b/examples/achim/Continue.jav deleted file mode 100755 index 0979d056..00000000 --- a/examples/achim/Continue.jav +++ /dev/null @@ -1,17 +0,0 @@ -class Continue{ - public static main(args){ - w1; - w2; - w1 = 13; - - while(w1>0){ - if(w1<5){ - for(w1=0;w1<5;w1=w1+1){ - w2=w1; - y; - y=1; - } - } - } - } -} diff --git a/examples/achim/ElseIf.jav b/examples/achim/ElseIf.jav deleted file mode 100755 index 81fb15e8..00000000 --- a/examples/achim/ElseIf.jav +++ /dev/null @@ -1,20 +0,0 @@ -class ElseIf{ - public static void main(args){ - s; - i; - s = args; - e; - if(s < 10){ - e = s + 10; - } - else if(s > 10 && s < 20){ - e = s + 20; - } - else if(s > 20){ - e = s + 30; - } - else{ - e = s + 30; - } - } -} \ No newline at end of file diff --git a/examples/achim/Exceptions.jav b/examples/achim/Exceptions.jav deleted file mode 100755 index 9e218c4b..00000000 --- a/examples/achim/Exceptions.jav +++ /dev/null @@ -1,9 +0,0 @@ -class Exceptions{ - funktion(){ - i; - if(true){ - a; - } - - } -} \ No newline at end of file diff --git a/examples/achim/ForTest.jav b/examples/achim/ForTest.jav deleted file mode 100755 index 8962de46..00000000 --- a/examples/achim/ForTest.jav +++ /dev/null @@ -1,10 +0,0 @@ -class ForTest{ - methode(){ - i; - /*i=0;*/ - b; - for(;i+1;){ - /*i=1;*/ - } - } -} diff --git a/examples/achim/Implements.jav b/examples/achim/Implements.jav deleted file mode 100755 index abe024a7..00000000 --- a/examples/achim/Implements.jav +++ /dev/null @@ -1,18 +0,0 @@ -class Implements extends Types implements Modifier{ - method(){ - i; - println(i); - } - - println(i){ - d; - d = i; - } -} - -class Implements2 extends Types{ - method2(){ - n; - n = 4; - } -} \ No newline at end of file diff --git a/examples/achim/Instanceof.jav b/examples/achim/Instanceof.jav deleted file mode 100755 index 14a6e791..00000000 --- a/examples/achim/Instanceof.jav +++ /dev/null @@ -1,10 +0,0 @@ -class Instanceof{ - method(mitgift){ - i; - i = new Integer(); - if(mitgift == Instanceof){ - return mitgift; - } - else return null; - } -} \ No newline at end of file diff --git a/examples/achim/Interface.jav b/examples/achim/Interface.jav deleted file mode 100755 index d63ad974..00000000 --- a/examples/achim/Interface.jav +++ /dev/null @@ -1,4 +0,0 @@ -interface Unterhaltend -{ - int unterhaltungswert(); -} \ No newline at end of file diff --git a/examples/achim/Modifier.jav b/examples/achim/Modifier.jav deleted file mode 100755 index ffb98602..00000000 --- a/examples/achim/Modifier.jav +++ /dev/null @@ -1,53 +0,0 @@ -package examples.achim; - -class Modifier{ - - void test2(){ - i; - i = "hallo2"; - } - - public test3(){ - text; - text = "text"; - return text; - } - - public test31(){ - text; - text = "text"; - } - - static test4(){ - buchstabe; - buchstabe = 'a'; - return buchstabe; - } - - static test41(){ - buchstabe; - buchstabe = 'a'; - } - - protected test5(){ - zahl; - zahl = 10; - return zahl; - } - - protected test51(){ - zahl; - zahl = 10; - } - - private test6(){ - zahl; - zahl = 10; - return zahl; - } - - private test61(){ - zahl; - zahl = 10; - } -} \ No newline at end of file diff --git a/examples/achim/Modifier2.jav b/examples/achim/Modifier2.jav deleted file mode 100755 index c852d389..00000000 --- a/examples/achim/Modifier2.jav +++ /dev/null @@ -1,30 +0,0 @@ -package examples.achim; -import java.lang.Math; -class Modifier2{ - - void test2(){ - int s; - i; - i = 42; - s; - s = "string"; - d; - } - - public test3(){ - text; - text = "text"; - return text; - } - - public test31(){ - text; - text = "text"; - } - - static test4(){ - buchstabe; - buchstabe = 'a'; - return buchstabe; - } -} \ No newline at end of file diff --git a/examples/achim/Super.jav b/examples/achim/Super.jav deleted file mode 100755 index d918a33d..00000000 --- a/examples/achim/Super.jav +++ /dev/null @@ -1,13 +0,0 @@ -import javax.swing.JFrame; - -class Super extends JFrame{ - method(mitgift){ - super("Fenster"); - i; - i = new Integer(); - if(mitgift == Instanceof){ - return mitgift; - } - else return null; - } -} \ No newline at end of file diff --git a/examples/achim/SwitchCase.jav b/examples/achim/SwitchCase.jav deleted file mode 100755 index 8723eeb6..00000000 --- a/examples/achim/SwitchCase.jav +++ /dev/null @@ -1,24 +0,0 @@ -class SwitchCase{ - test(){ - i; - i=3; - switch (i){ - case 1: - case 3: - case 5: - case 7: - case 9: - System.out.println("ungerade"); - break; - case 2: - case 4: - case 6: - case 8: - System.out.println("gerade"); - break; - default: - System.out.println("nicht im wertebereich"); - break; - } - } -} \ No newline at end of file diff --git a/examples/achim/Synchronized.jav b/examples/achim/Synchronized.jav deleted file mode 100755 index 4ffb1af0..00000000 --- a/examples/achim/Synchronized.jav +++ /dev/null @@ -1,8 +0,0 @@ -class Synchronized{ - method(){ - i; - synchronized(i){ - - } - } -} \ No newline at end of file diff --git a/examples/achim/This.jav b/examples/achim/This.jav deleted file mode 100755 index 59455ce6..00000000 --- a/examples/achim/This.jav +++ /dev/null @@ -1,10 +0,0 @@ -class This{ - public This(i){ - i; - } - - methode(){ - i; - this.i = 0; - } -} \ No newline at end of file diff --git a/examples/achim/TryCatch.jav b/examples/achim/TryCatch.jav deleted file mode 100755 index dc23cce1..00000000 --- a/examples/achim/TryCatch.jav +++ /dev/null @@ -1,10 +0,0 @@ -class TryCatch{ - test(){ - try{ - i; - i=0; - }catch(e){ - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/examples/achim/Types.jav b/examples/achim/Types.jav deleted file mode 100755 index 200bca8d..00000000 --- a/examples/achim/Types.jav +++ /dev/null @@ -1,31 +0,0 @@ -class Types{ - test(b, c, d, f, i, l, s){ - b; - b2; - c; - d; - f; - i; - l; - s; - - b = true; - if(b){ - b=false; - } - if(true) - b2 = b; - i = 65; - c = 'a'; - f = i/2; - d = "hallo"; - s = -3; - l = d.substring(2,1); - - boolean bo; - char c; - int i; - - return i; - } -} \ No newline at end of file diff --git a/examples/achim/Vector.jav b/examples/achim/Vector.jav deleted file mode 100755 index 29b0b988..00000000 --- a/examples/achim/Vector.jav +++ /dev/null @@ -1,8 +0,0 @@ -class Menge{ - method(){ - v; - v = new Menge(); - v.add((new Integer(9)); - ((String)v.get(5)) + "hallo"; - } -} \ No newline at end of file diff --git a/examples/achim/While.jav b/examples/achim/While.jav deleted file mode 100755 index b9c1b0a3..00000000 --- a/examples/achim/While.jav +++ /dev/null @@ -1,19 +0,0 @@ -class While{ - method(){ - i; - i = 0; - while(i < 10) { - i++; - } - - while(true){ - s; - s = "zweiundvierzig"; - } - - while(false){ - t; - t = 42; - } - } -} diff --git a/examples/achim/WhileTest.jav b/examples/achim/WhileTest.jav deleted file mode 100755 index e69de29b..00000000 diff --git a/examples/bajo1/Martin.jav b/examples/bajo1/Martin.jav deleted file mode 100755 index ea9bdeb7..00000000 --- a/examples/bajo1/Martin.jav +++ /dev/null @@ -1,6 +0,0 @@ -class Martin{ - - void TalkTo(String person){ - - } -} \ No newline at end of file diff --git a/examples/bajo1/Matrix.jav b/examples/bajo1/Matrix.jav deleted file mode 100755 index 48709bc2..00000000 --- a/examples/bajo1/Matrix.jav +++ /dev/null @@ -1,26 +0,0 @@ -class Matrix extends Menge> { - - mul(m){ - ret = new Matrix(); - i = 0; - while(i (); - j = 0; - while(j < v1.size()) { - erg = 0; - k = 0; - while(k < v1.size()) { - erg = erg + v1.elementAt(k).intValue() * m.elmentAt(k).elementAt(j).intValue(); - k++; - } - v2.addElement(new Integer(erg); - j++; - } - ret.addElement(v2); - i++; - } - return ret; - } - -} \ No newline at end of file diff --git a/examples/bajo1/SchorschTest.jav b/examples/bajo1/SchorschTest.jav deleted file mode 100755 index 4132c169..00000000 --- a/examples/bajo1/SchorschTest.jav +++ /dev/null @@ -1,11 +0,0 @@ -class SchorschTest{ - int iMember; - String hallo; - - SchorschTest(int i){ - iMember = i; - } - - void tuWas(){ - } -} \ No newline at end of file diff --git a/examples/bajo1/Simple.jav b/examples/bajo1/Simple.jav deleted file mode 100755 index aa0d8363..00000000 --- a/examples/bajo1/Simple.jav +++ /dev/null @@ -1,7 +0,0 @@ -class Simple{ - int x; - - simple(){ - return 5; - } -} \ No newline at end of file diff --git a/examples/bajo1/Test.jav b/examples/bajo1/Test.jav deleted file mode 100755 index 6109d781..00000000 --- a/examples/bajo1/Test.jav +++ /dev/null @@ -1,3 +0,0 @@ -class Bla extends Blub{ - Menge v = null; -} \ No newline at end of file diff --git a/examples/bajo1_usecases/BlockIDTest.jav b/examples/bajo1_usecases/BlockIDTest.jav deleted file mode 100755 index 0d319866..00000000 --- a/examples/bajo1_usecases/BlockIDTest.jav +++ /dev/null @@ -1,12 +0,0 @@ -class BlockIDTest{ - - void foo(Stack bar){ - { - umu; - umu = bar; - } - { - Integer x; - } - } -} \ No newline at end of file diff --git a/examples/bajo1_usecases/Matrix.jav b/examples/bajo1_usecases/Matrix.jav deleted file mode 100755 index cbcc59ea..00000000 --- a/examples/bajo1_usecases/Matrix.jav +++ /dev/null @@ -1,35 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class Matrix extends Menge> { - - mul(m){ - Menge> ret; - ret = new Matrix(); - i; - i = 0; - while(i (); - j; - j = 0; - while(j < v1.size()) { - erg; - erg = 0; - k; - k = 0; - while(k < v1.size()) { - erg = erg + v1.elementAt(k).intValue() * m.elementAt(k).elementAt(j).intValue(); - k++; - } - v2.addElement(new Integer(erg)); - j++; - } - ret.addElement(v2); - i++; - } - return ret; - } - -} diff --git a/examples/bajo1_usecases/Matrix1.jav b/examples/bajo1_usecases/Matrix1.jav deleted file mode 100755 index 673ab47d..00000000 --- a/examples/bajo1_usecases/Matrix1.jav +++ /dev/null @@ -1,21 +0,0 @@ -class Matrix extends Menge> { - - mul(m){ - Menge> ret; - ret = new Matrix(); - i; - i = 0; - while(i (); - j; - j = 0; - ret.addElement(v2); - i++; - } - return ret; - } - -} diff --git a/examples/bajo1_usecases/Matrix2.jav b/examples/bajo1_usecases/Matrix2.jav deleted file mode 100755 index b98a82cf..00000000 --- a/examples/bajo1_usecases/Matrix2.jav +++ /dev/null @@ -1,11 +0,0 @@ -class Matrix extends Menge> { - - mul(m){ - k; - k = 0; - ret; - ret = m.elementAt(k).elementAt(k).intValue(); - return ret; - } - -} diff --git a/examples/bajo1_usecases/Test.jav b/examples/bajo1_usecases/Test.jav deleted file mode 100755 index 864afb82..00000000 --- a/examples/bajo1_usecases/Test.jav +++ /dev/null @@ -1,11 +0,0 @@ -class Test{ - Character foo(Character bar){ - return bar; - } - - bla(blub, umu, lala){ - blub = this.foo(umu); - return blub; - } - -} \ No newline at end of file diff --git a/examples/bajo1_usecases/UsecaseFive.jav b/examples/bajo1_usecases/UsecaseFive.jav deleted file mode 100755 index 59edc47b..00000000 --- a/examples/bajo1_usecases/UsecaseFive.jav +++ /dev/null @@ -1,15 +0,0 @@ -class UsecaseFive{ - - foo(bar){ - if(bar==true){ - umu; - umu = bar; - return new Integer(3); - } - else { - x; - return x; - } - } - -} \ No newline at end of file diff --git a/examples/bajo1_usecases/UsecaseFour.jav b/examples/bajo1_usecases/UsecaseFour.jav deleted file mode 100755 index 68cb7eba..00000000 --- a/examples/bajo1_usecases/UsecaseFour.jav +++ /dev/null @@ -1,11 +0,0 @@ -class UsecaseFour{ - - foo(bla){ - while(bla==true){ - Integer x; - x = 5; - } - return bla; - } - -} \ No newline at end of file diff --git a/examples/bajo1_usecases/UsecaseOne.jav b/examples/bajo1_usecases/UsecaseOne.jav deleted file mode 100755 index 845d7bc9..00000000 --- a/examples/bajo1_usecases/UsecaseOne.jav +++ /dev/null @@ -1,5 +0,0 @@ -class UsecaseOne{ - foo(){ - return (4*(3-2))>2; - } -} \ No newline at end of file diff --git a/examples/bajo1_usecases/UsecaseSix.jav b/examples/bajo1_usecases/UsecaseSix.jav deleted file mode 100755 index 88594c1b..00000000 --- a/examples/bajo1_usecases/UsecaseSix.jav +++ /dev/null @@ -1,14 +0,0 @@ -class UsecaseSix{ - - umu(Character c){ - x; - return x; - } - - void foo(bar){ - y; - y = 5; - y = this.umu(bar); - } - -} \ No newline at end of file diff --git a/examples/bajo1_usecases/UsecaseThree.jav b/examples/bajo1_usecases/UsecaseThree.jav deleted file mode 100755 index 248964e4..00000000 --- a/examples/bajo1_usecases/UsecaseThree.jav +++ /dev/null @@ -1,20 +0,0 @@ -class UsecaseThree{ - Boolean m_Zulu; - - foo(bar, umu, Stack lala, num){ - ret; - { - bar = 5; - { - myTestVar; - myTestVar = lala; - } - { - myTestVar; - myTestVar = m_Zulu && true; - } - } - ret = (num+3)==8; - return ret; - } -} \ No newline at end of file diff --git a/examples/bajo1_usecases/UsecaseTwo.jav b/examples/bajo1_usecases/UsecaseTwo.jav deleted file mode 100755 index 2712c16d..00000000 --- a/examples/bajo1_usecases/UsecaseTwo.jav +++ /dev/null @@ -1,6 +0,0 @@ -class UsecaseTwo{ - foo(bar){ - bar = new Integer(3); - return bar!=2; - } -} \ No newline at end of file diff --git a/examples/feda/feda.jav b/examples/feda/feda.jav deleted file mode 100755 index 27fd449b..00000000 --- a/examples/feda/feda.jav +++ /dev/null @@ -1,25 +0,0 @@ -package none; - -import de.dhbwstuttgart.typeinference.Menge; -import java.util.Stack; - -interface GeomObjektTrans { - void verschieben(); - void strecken(); -} - -public class Hello { - public static void main(String[] args) { - - } -} - -public class Quadrat implements GeomObjektTrans { - public strecken(a,b){ - return a*b; - } - public void verschieben(){ - - } - -} \ No newline at end of file diff --git a/examples/feda/feda2.jav b/examples/feda/feda2.jav deleted file mode 100755 index c20f7245..00000000 --- a/examples/feda/feda2.jav +++ /dev/null @@ -1,8 +0,0 @@ -class Daniel { - static void drinkCoffee() { - - } - public void soso() { - Daniel.drinkCoffee(); - } -} \ No newline at end of file diff --git a/examples/feda/feda3.jav b/examples/feda/feda3.jav deleted file mode 100755 index 72005026..00000000 --- a/examples/feda/feda3.jav +++ /dev/null @@ -1,4 +0,0 @@ -interface GeomObjektTrans { - void verschieben(); - void strecken(); - } \ No newline at end of file diff --git a/examples/feda/feda4.jav b/examples/feda/feda4.jav deleted file mode 100755 index 99ce821c..00000000 --- a/examples/feda/feda4.jav +++ /dev/null @@ -1,17 +0,0 @@ -public class Auto { - - tachoStand; - - public void fahren(distanz) { - tachoStand = tachoStand + distanz; - } - - public void abschleppen(auto, distanz) { - auto.fahren(distanz); - } - public static void main(String[] args) { - meinPKW.fahren(100); - bmw.fahren(100); - bmw.fahren(100); - } - } \ No newline at end of file diff --git a/examples/feda/quadrat.jav b/examples/feda/quadrat.jav deleted file mode 100755 index 11a26c39..00000000 --- a/examples/feda/quadrat.jav +++ /dev/null @@ -1,20 +0,0 @@ -public class Quadrat { - public machwas(){ - - return " Daniel" ; - } - - public static drinken(){ - return " Daniel drinkt was"; - } - -} - -public class Sohalt { - - public machwas2(){ - - - return Quadrat.drinken(); - } -} \ No newline at end of file diff --git a/examples/hoth/Test.jav b/examples/hoth/Test.jav deleted file mode 100755 index d43d919c..00000000 --- a/examples/hoth/Test.jav +++ /dev/null @@ -1,15 +0,0 @@ -class Test { - - public getValue(a){ - String x; - - Stack s = new Stack(); - a=s; - d; - d.addElement("33"); - x=x; - - -return x; - } } - diff --git a/examples/hoth/Test2.jav b/examples/hoth/Test2.jav deleted file mode 100755 index 6dc6bbce..00000000 --- a/examples/hoth/Test2.jav +++ /dev/null @@ -1,23 +0,0 @@ -class Test2{ - String b="33"; - - foo(){ - ret; - String g="w"; - { - ret = 5; - g="5"; - } - ret = 3+4; - b="22"; - return ret; - } - - int neufoo(a) - { - tt; - tt=foo(); - a="ww"; - return 3; - } -} \ No newline at end of file diff --git a/examples/hoti/BoundedClassPara.jav b/examples/hoti/BoundedClassPara.jav deleted file mode 100755 index d0595ee3..00000000 --- a/examples/hoti/BoundedClassPara.jav +++ /dev/null @@ -1,10 +0,0 @@ -class Gen { - public doSomething(X num){ - } -} - -class Test{ - public void test(x){ - x.doSomething(""); - } -} \ No newline at end of file diff --git a/examples/hoti/Constr.jav b/examples/hoti/Constr.jav deleted file mode 100755 index c878748f..00000000 --- a/examples/hoti/Constr.jav +++ /dev/null @@ -1,18 +0,0 @@ -public class Constr{ - String name; - public Constr(x){ - name=x; - } - -} - - -public class Test{ - - public void test(){ - a; - Constr x; - x=new Constr(a); - } - -} \ No newline at end of file diff --git a/examples/hoti/EmptyResultProblem.jav b/examples/hoti/EmptyResultProblem.jav deleted file mode 100755 index a181746b..00000000 --- a/examples/hoti/EmptyResultProblem.jav +++ /dev/null @@ -1,9 +0,0 @@ -class Empty{ - hasenfuss(){ - } -} -class User{ - testProblem(x){ - x.hasenfuss(); - } -} \ No newline at end of file diff --git a/examples/hoti/ErrorTest.jav b/examples/hoti/ErrorTest.jav deleted file mode 100755 index 31cb3b9a..00000000 --- a/examples/hoti/ErrorTest.jav +++ /dev/null @@ -1,13 +0,0 @@ - public class MyInterface { - public String convert(String x, Integer mode){ - return(""); - } -} - -public class Test{ - public void test(x){ - y; - z; - y=x.convert(z,1); - } -} diff --git a/examples/hoti/Generic.jav b/examples/hoti/Generic.jav deleted file mode 100755 index cb55e9fd..00000000 --- a/examples/hoti/Generic.jav +++ /dev/null @@ -1,22 +0,0 @@ -public class Generic extends Tester -{ - - X elem; - - public setElement(e){ - elem=e; - } - - public X getElement(){ - return elem; - } - -} - -public class Tester{ - public meth(String e){ - x; - x.setElement(""); - return(x.getElement()); - } -} \ No newline at end of file diff --git a/examples/hoti/GenericMethod.jav b/examples/hoti/GenericMethod.jav deleted file mode 100755 index 270da790..00000000 --- a/examples/hoti/GenericMethod.jav +++ /dev/null @@ -1,8 +0,0 @@ -class Test { - addElement2(E elem){ - return(elem); - } - test(x){ - x.addElement2(new Number()); - } -} \ No newline at end of file diff --git a/examples/hoti/GenericsTest.jav b/examples/hoti/GenericsTest.jav deleted file mode 100755 index 1f2bc455..00000000 --- a/examples/hoti/GenericsTest.jav +++ /dev/null @@ -1,15 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -public class Test{ - - public X method(a){ - return(a); - } - -} - -public class Inst{ - public inst(b){ - return(b.method("HALLO")); - } -} \ No newline at end of file diff --git a/examples/hoti/Id.jav b/examples/hoti/Id.jav deleted file mode 100755 index e338d04b..00000000 --- a/examples/hoti/Id.jav +++ /dev/null @@ -1,17 +0,0 @@ -class Helper{ - public id(x){ - return(x); - } -} - -class User{ - public test(Integer input1, String input2){ - x; - x=new Helper(); - a; - a=x.id(input1); - b; - b=x.id(input2); - - } -} \ No newline at end of file diff --git a/examples/hoti/ImplClass.jav b/examples/hoti/ImplClass.jav deleted file mode 100755 index 7099d502..00000000 --- a/examples/hoti/ImplClass.jav +++ /dev/null @@ -1,5 +0,0 @@ -public class ImplClass implements Test{ - - - -} \ No newline at end of file diff --git a/examples/hoti/Import.jav b/examples/hoti/Import.jav deleted file mode 100755 index 2b5f738d..00000000 --- a/examples/hoti/Import.jav +++ /dev/null @@ -1,10 +0,0 @@ -package none; - -import de.dhbwstuttgart.typeinference.Menge; -import java.util.Stack; - -public class Test{ - test(Menge x){ - x.addElement(""); - } -} \ No newline at end of file diff --git a/examples/hoti/Intf.jav b/examples/hoti/Intf.jav deleted file mode 100755 index 5fe46363..00000000 --- a/examples/hoti/Intf.jav +++ /dev/null @@ -1,18 +0,0 @@ -/*interface Intf { - E test2(E para1); -} -class Test{ - public test(String x){ - a; - return(a.test2(x)); - } -}*/ - -interface Intf{ - doSomething(); -} -class Test{ - public test(x){ - x.doSomething(); - } -} \ No newline at end of file diff --git a/examples/hoti/IntfTest.jav b/examples/hoti/IntfTest.jav deleted file mode 100755 index a4993a34..00000000 --- a/examples/hoti/IntfTest.jav +++ /dev/null @@ -1,15 +0,0 @@ -interface Intf1{ -} -interface Intf2{ -} -class Gesucht implements Intf1, Intf2{ - doSomething(){ - } -} - -class Test{ - public test(x){ - x.doSomething(); - return(x); - } -} \ No newline at end of file diff --git a/examples/hoti/Matrix.jav b/examples/hoti/Matrix.jav deleted file mode 100755 index cbcc59ea..00000000 --- a/examples/hoti/Matrix.jav +++ /dev/null @@ -1,35 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class Matrix extends Menge> { - - mul(m){ - Menge> ret; - ret = new Matrix(); - i; - i = 0; - while(i (); - j; - j = 0; - while(j < v1.size()) { - erg; - erg = 0; - k; - k = 0; - while(k < v1.size()) { - erg = erg + v1.elementAt(k).intValue() * m.elementAt(k).elementAt(j).intValue(); - k++; - } - v2.addElement(new Integer(erg)); - j++; - } - ret.addElement(v2); - i++; - } - return ret; - } - -} diff --git a/examples/hoti/Mehrfachvererbung.jav b/examples/hoti/Mehrfachvererbung.jav deleted file mode 100755 index f6b5943e..00000000 --- a/examples/hoti/Mehrfachvererbung.jav +++ /dev/null @@ -1,14 +0,0 @@ -interface Intf1{ -} -interface Intf2{ -} -class Gesucht implements Intf1, Intf2{ - -} - -class Test{ - public test(x){ - x=new Intf1(); - x=new Intf2(); - } -} diff --git a/examples/hoti/Multiclass.jav b/examples/hoti/Multiclass.jav deleted file mode 100755 index f3d2fff5..00000000 --- a/examples/hoti/Multiclass.jav +++ /dev/null @@ -1,11 +0,0 @@ -public class Blubb extends Timo {} - -public class Timo extends Holzherr { - public test2( ){ - - x; - x = "blubb"; - x = 10; - - } -} diff --git a/examples/hoti/Overl.jav b/examples/hoti/Overl.jav deleted file mode 100755 index ad0df64e..00000000 --- a/examples/hoti/Overl.jav +++ /dev/null @@ -1,24 +0,0 @@ -class Overl{ - - public Integer overloaded(a){ - return(a); - } - public String overloaded(b){ - return(b); - } - -} - -class OverlMaster extends Overl{ - public X overloaded(a){ - return(a); - } -} - -class Test{ - public Boolean test(Boolean b){ - c; - return(c.overloaded(b)); - } - -} \ No newline at end of file diff --git a/examples/hoti/ReturnTypeProblem.jav b/examples/hoti/ReturnTypeProblem.jav deleted file mode 100755 index 4fccddfa..00000000 --- a/examples/hoti/ReturnTypeProblem.jav +++ /dev/null @@ -1,7 +0,0 @@ -class Test{ - public Boolean test(Boolean b,c){ - c=b; - return(c); - } - -} \ No newline at end of file diff --git a/examples/hoti/Simple.jav b/examples/hoti/Simple.jav deleted file mode 100755 index af04c73f..00000000 --- a/examples/hoti/Simple.jav +++ /dev/null @@ -1,5 +0,0 @@ -public class Timo { - public E getElement(E x){ - return(x); - } -} \ No newline at end of file diff --git a/examples/hoti/Simple2.jav b/examples/hoti/Simple2.jav deleted file mode 100755 index e942b0ff..00000000 --- a/examples/hoti/Simple2.jav +++ /dev/null @@ -1,10 +0,0 @@ -import java.util.Stack; - -class Simple2{ - Menge test(Boolean first){ - x; - x=new Menge(); - x=new Stack(); - return(x); - } -} \ No newline at end of file diff --git a/examples/hoti/Test.jav b/examples/hoti/Test.jav deleted file mode 100755 index 314aa212..00000000 --- a/examples/hoti/Test.jav +++ /dev/null @@ -1,14 +0,0 @@ -interface AA {} - -interface BB {} - -class CC implements AA, BB {} - -class BoundedTypeVar { - CC c; - & BB> m(T x) { - m(new CC()); - x = new CC(); - } -} - diff --git a/examples/hoti/Test2.jav b/examples/hoti/Test2.jav deleted file mode 100755 index 5930c3b8..00000000 --- a/examples/hoti/Test2.jav +++ /dev/null @@ -1,9 +0,0 @@ -class Test2 { - public meth(){ - if(true) { - return(1); - }else{ - return(2); - } - } -} \ No newline at end of file diff --git a/examples/hoti/Test3.jav b/examples/hoti/Test3.jav deleted file mode 100755 index aab68cd1..00000000 --- a/examples/hoti/Test3.jav +++ /dev/null @@ -1,9 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -public class Test3 { - - public getValue(a,String y){ - a.addElement(y); - return(y); - } -} \ No newline at end of file diff --git a/examples/hoti/VectorStack.jav b/examples/hoti/VectorStack.jav deleted file mode 100755 index 013722d8..00000000 --- a/examples/hoti/VectorStack.jav +++ /dev/null @@ -1,10 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -public class MengeStack { - - public test(x,y){ - x.addElement("TEST"); - return(x.elementAt(y)); - } - -} \ No newline at end of file diff --git a/examples/hoti/VectorTest.jav b/examples/hoti/VectorTest.jav deleted file mode 100755 index ea534326..00000000 --- a/examples/hoti/VectorTest.jav +++ /dev/null @@ -1,13 +0,0 @@ -import java.util.Stack; -import java.util.Hashtable; - -public class MengeTest{ - - public test(x){ - b; - b=1; - a; - a=x+b; - } - -} \ No newline at end of file diff --git a/examples/hoti/VererbProb.jav b/examples/hoti/VererbProb.jav deleted file mode 100755 index e504fc42..00000000 --- a/examples/hoti/VererbProb.jav +++ /dev/null @@ -1,23 +0,0 @@ -public class M1{} - -public class M2 extends M1 {} - -public class Test { - - public doSomething(Boolean big){ - M2 ret; - - ret1; - ret2; - - ret1=new M2(); - ret2=new M2(); - - if(big){ - ret=ret1; - }else{ - ret=ret2; - } - return(ret); - } -} \ No newline at end of file diff --git a/examples/hoti/WorkerExample.jav b/examples/hoti/WorkerExample.jav deleted file mode 100755 index 1e707393..00000000 --- a/examples/hoti/WorkerExample.jav +++ /dev/null @@ -1,17 +0,0 @@ -class Worker1{ - void doSomething(String x){} - } - class Worker2{ - void doSomething(Integer y){} - } - class Content1{ - String getElem(){return("");} - } - class Content2{ - Integer getElem(){return(1);} - } - class User{ - meth(worker,content){ - worker.doSomething(content.getElem()); - } - } \ No newline at end of file diff --git a/examples/hoti/arne.jav b/examples/hoti/arne.jav deleted file mode 100755 index 9b564ca8..00000000 --- a/examples/hoti/arne.jav +++ /dev/null @@ -1,10 +0,0 @@ -import java.util.Stack; - -class Arne { - -drinkCoffee(x) { - x.push("Hallo"); - String y = x.pop(); -} - -} \ No newline at end of file diff --git a/examples/hoti/hothtest.jav b/examples/hoti/hothtest.jav deleted file mode 100755 index f89221ff..00000000 --- a/examples/hoti/hothtest.jav +++ /dev/null @@ -1,9 +0,0 @@ -public class Test{ - public test(y){ - c; - c=5; - d; - d=5; - y=c+d; - } -} \ No newline at end of file diff --git a/examples/lambda/general.jav b/examples/lambda/general.jav deleted file mode 100755 index 751ba06d..00000000 --- a/examples/lambda/general.jav +++ /dev/null @@ -1,23 +0,0 @@ -//package LampdaExpressions; - -import java.util.concurrent.Callable; - -public class general extends Menge> { - - - - public String test(String c) throws Exception { - Callable halloLambda; - a; - a = () -> {return "hallo";}; - a = a + 1; - return a.call(); - } - - - - public String test2(){ - return "hallo"; - } - -} diff --git a/examples/lambda/test1.jav b/examples/lambda/test1.jav deleted file mode 100755 index bb0ff15d..00000000 --- a/examples/lambda/test1.jav +++ /dev/null @@ -1,6 +0,0 @@ -class Matrix extends Menge> { - method(){ - op; - op = "test"; - } -} \ No newline at end of file diff --git a/examples/lambda/test2.jav b/examples/lambda/test2.jav deleted file mode 100755 index 1f66bb0d..00000000 --- a/examples/lambda/test2.jav +++ /dev/null @@ -1,3 +0,0 @@ -class Matrix extends Menge> { - op = (m) -> (f) -> f.apply(this, m); -} \ No newline at end of file diff --git a/examples/luar/TestSmall.jav b/examples/luar/TestSmall.jav deleted file mode 100755 index d3213a1f..00000000 --- a/examples/luar/TestSmall.jav +++ /dev/null @@ -1,12 +0,0 @@ -class TestSmall -{ - void test() - { - x; - x = "Hallo"; - i; - i = 17; - j; - j = i; - } -} \ No newline at end of file diff --git a/examples/luar/WCParseTest.jav b/examples/luar/WCParseTest.jav deleted file mode 100755 index 5409750a..00000000 --- a/examples/luar/WCParseTest.jav +++ /dev/null @@ -1,20 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class WCTest{ - - void test() - { - Menge> v1 = new Menge>(); - } - -} - -class Sub1 {} - -class Sub2 extends Sub1 {} - -class Sub3 extends Sub2 {} - -class N {} - -class Test extends N> {} \ No newline at end of file diff --git a/examples/luar/WCTest1.jav b/examples/luar/WCTest1.jav deleted file mode 100755 index c89aed4b..00000000 --- a/examples/luar/WCTest1.jav +++ /dev/null @@ -1,23 +0,0 @@ - -Menge Menge> - - -Menge Menge> - -class A { } -class B extends A { } -class D { } -class E extends D,b> { } - -class Number {} -class Integer extends Number {} - -class AbstractList extends List {} -class List {} -class Menge extends List {} -class Stack extends Menge {} -class Test extends Menge {} - -/*D, ? extends A> Test,A>*/ -/*D, D> D, ? super E>*/ -/*Stack Menge AbstractList List*/ \ No newline at end of file diff --git a/examples/luar/WCTest10.jav b/examples/luar/WCTest10.jav deleted file mode 100755 index c02e3e8f..00000000 --- a/examples/luar/WCTest10.jav +++ /dev/null @@ -1,17 +0,0 @@ -/* Menge> Menge> */ - -/* FUNKTIONIERT!! */ - -Big2,d,e,f> BigBig2 - -/* Funktioniert auch!!! */ - -class Big extends BigBig {} -class BigBig {} - -class Big2 extends BigBig2 {} -class BigBig2 {} - -class Menge {} -class Integer extends Number {} -class Number {} \ No newline at end of file diff --git a/examples/luar/WCTest11.jav b/examples/luar/WCTest11.jav deleted file mode 100755 index 5fe2ab93..00000000 --- a/examples/luar/WCTest11.jav +++ /dev/null @@ -1,47 +0,0 @@ -Menge Menge -/* Menge Menge> */ -/* Erg.: -[[(TPH a = Menge< Integer >), (TPH b = Matrix)], - [(TPH a = Menge< Integer >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< Integer >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< Integer >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< ? extends Integer >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< ? extends Integer >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< ? extends Number >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< ? extends Number >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< ? extends Object >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< ? extends Object >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< ? super Integer >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< ? super Integer >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Object), (TPH b = Matrix)], - [(TPH a = ? extends Object), (TPH b = ? extends Matrix)], - [(TPH a = ? super Menge< Integer >), (TPH b = Matrix)], - [(TPH a = ? super Menge< Integer >), (TPH b = ? extends Matrix)], - [(TPH a = Menge< Integer >), (TPH b = ExtMatrix)], - [(TPH a = Menge< Integer >), (TPH b = ? extends ExtMatrix)], - [(TPH a = ? extends Menge< Integer >), (TPH b = ExtMatrix)], - [(TPH a = ? extends Menge< Integer >), (TPH b = ? extends ExtMatrix)], - [(TPH a = ? extends Menge< ? extends Integer >), (TPH b = ExtMatrix)], - [(TPH a = ? extends Menge< ? extends Integer >), (TPH b = ? extends ExtMatrix)], - [(TPH a = ? extends Menge< ? extends Number >), (TPH b = ExtMatrix)], - [(TPH a = ? extends Menge< ? extends Number >), (TPH b = ? extends ExtMatrix)], - [(TPH a = ? extends Menge< ? extends Object >), (TPH b = ExtMatrix)], - [(TPH a = ? extends Menge< ? extends Object >), (TPH b = ? extends ExtMatrix)], - [(TPH a = ? extends Menge< ? super Integer >), (TPH b = ExtMatrix)], - [(TPH a = ? extends Menge< ? super Integer >), (TPH b = ? extends ExtMatrix)], - [(TPH a = ? extends Object), (TPH b = ExtMatrix)], - [(TPH a = ? extends Object), (TPH b = ? extends ExtMatrix)], - [(TPH a = ? super Menge< Integer >), (TPH b = ExtMatrix)], - [(TPH a = ? super Menge< Integer >), (TPH b = ? extends ExtMatrix)], - [(TPH b = Menge< TPH a >)], - [(TPH b = ? extends Menge< TPH a >)]] -*/ - -class Number {} -class Integer extends Number {} - -class Menge { } - -class Matrix extends Menge> { } - -class ExtMatrix extends Matrix { } \ No newline at end of file diff --git a/examples/luar/WCTest2.jav b/examples/luar/WCTest2.jav deleted file mode 100755 index b881e55b..00000000 --- a/examples/luar/WCTest2.jav +++ /dev/null @@ -1,12 +0,0 @@ -Stack Menge -AbstractList List - -/* funktioniert */ - -class Number {} -class Integer extends Number {} - -class AbstractList extends List {} -class List {} -class Menge extends List {} -class Stack extends Menge {} \ No newline at end of file diff --git a/examples/luar/WCTest3.jav b/examples/luar/WCTest3.jav deleted file mode 100755 index 42525f11..00000000 --- a/examples/luar/WCTest3.jav +++ /dev/null @@ -1,9 +0,0 @@ -List List> - -/* funktioniert */ - -class Number {} -class Integer extends Number {} - -class myLi extends List {} -class List {} \ No newline at end of file diff --git a/examples/luar/WCTest4.jav b/examples/luar/WCTest4.jav deleted file mode 100755 index 5a6876de..00000000 --- a/examples/luar/WCTest4.jav +++ /dev/null @@ -1,11 +0,0 @@ -Matrix Menge - -/* Fehler behoben. Korrekt? - sieht gut aus PL 07-07-09 */ - -class Number {} -class Integer extends Number {} - -class Menge { } - -class Matrix extends Menge> { } \ No newline at end of file diff --git a/examples/luar/WCTest5.jav b/examples/luar/WCTest5.jav deleted file mode 100755 index 668489c0..00000000 --- a/examples/luar/WCTest5.jav +++ /dev/null @@ -1,71 +0,0 @@ -/* Menge Menge> */ -/* Erg: -[[(TPH a = Menge< Integer >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< Integer >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< ? extends Integer >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< ? extends Number >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< ? extends Object >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Menge< ? super Integer >), (TPH b = ? extends Matrix)], - [(TPH a = ? extends Object), (TPH b = ? extends Matrix)], - [(TPH a = ? super Menge< Integer >), (TPH b = ? extends Matrix)], - [(TPH a = Menge< Integer >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< Integer >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< ? extends Integer >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< ? extends Number >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< ? extends Object >), (TPH b = Matrix)], - [(TPH a = ? extends Menge< ? super Integer >), (TPH b = Matrix)], - [(TPH a = ? extends Object), (TPH b = Matrix)], - [(TPH a = ? super Menge< Integer >), (TPH b = Matrix)], - [(TPH b = ? extends Menge< TPH a >)], - [(TPH b = Menge< TPH a >)]] - */ -/* FUNKTIONIERT !!! */ - - -/* Fehler bei b : - Reflexivitaet fehlt: b = Vec bzw. b = ? ext Vec wird nicht berechnet - isRXSimilarRY ist wahrscheinlich die falsche Methode, hier wird geprueft, - ob RY instance von RFC ist. Das ist bei RY = Vec und RFC = Vec> - nicht der Fall. Moeglicherweise statt isRXSimilarRY match benutzen ??? - - PL 07-07-04: isRXSimilarRY scheint jetzt zu funktionieren. - Reflexivitaet fehlt noch - */ - -/* Fehler behoben. Korrekt? */ - - - /* Menge> Menge */ - - /* FUNKTIONIERT !!! nochmals ueberpruefen 07-07-29 */ - -/* Menge Menge> */ -/* Test der 3. Menge. FUNKTIONIERT !!! nochmals ueberpruefen 07-07-29 */ - -/* Menge Menge */ -/* Test der 4. Menge. FUNKTIONIERT !!! nochmals ueberpruefen 07-07-29 */ - -Menge Menge>> -/* funktioniert. Ergebnis: -[[(TPH b = Integer), (TPH a = ? extends Matrix)], - [(TPH b = Integer), (TPH a = Matrix)], - [(TPH b = ? extends Integer), (TPH a = ? extends Matrix)], - [(TPH b = ? extends Integer), (TPH a = Matrix)], - [(TPH b = ? extends Number), (TPH a = ? extends Matrix)], - [(TPH b = ? extends Number), (TPH a = Matrix)], - [(TPH b = ? extends Object), (TPH a = ? extends Matrix)], - [(TPH b = ? extends Object), (TPH a = Matrix)], - [(TPH b = ? super Integer), (TPH a = ? extends Matrix)], - [(TPH b = ? super Integer), (TPH a = Matrix)], - [(TPH a = ? extends Menge< ? extends Menge< TPH b > >)], - [(TPH a = Menge< ? extends Menge< TPH b > >)], - [(TPH a = ? extends Menge< Menge< TPH b > >)], - [(TPH a = Menge< Menge< TPH b > >)]] */ - - -class Number {} -class Integer extends Number {} - -class Menge { } - -class Matrix extends Menge> { } \ No newline at end of file diff --git a/examples/luar/WCTest6.jav b/examples/luar/WCTest6.jav deleted file mode 100755 index 9f941945..00000000 --- a/examples/luar/WCTest6.jav +++ /dev/null @@ -1,13 +0,0 @@ -Menge Menge> - -/* Nach Sub_unify - FUNKTIONIERT !!! */ - -/* muss noch nac der 2. Menge angepasst werden PL 07-08-03 - -class Number {} -class Integer extends Number {} - -class Menge { } - -class Matrix extends Menge> { } \ No newline at end of file diff --git a/examples/luar/WCTest7.jav b/examples/luar/WCTest7.jav deleted file mode 100755 index 6b90116b..00000000 --- a/examples/luar/WCTest7.jav +++ /dev/null @@ -1,120 +0,0 @@ -/* VecPair Menge> */ -/* Funktioniert !!! -*/ - -/* VecPair Menge> */ -/* Funktioniert !!! - */ - -/* VecPair Menge> */ -/* Funktioniert !!! */ - -/* Menge> Menge */ -/* Funktioniert !!! nochmals ueberpruefen 07-07-29 */ - -/* VecPair Menge> */ -/* Funktioniert kein Unifier!!! */ - -/* VecPair Menge> */ -/* Funktioniert!!! */ - - -/* Menge Menge>> */ -/* funktioniert */ -/* Erg.: -[[(TPH a = TPH A), (TPH c = Integer), (TPH b = ? extends VecPair< TPH A, TPH B >)], - [(TPH a = TPH A), (TPH c = Integer), (TPH b = VecPair< TPH A, TPH B >)], - [(TPH b = ? extends Menge< Pair< TPH a, TPH c > >)], - [(TPH b = Menge< Pair< TPH a, TPH c > >)]] -*/ - -/* Menge Menge>> */ -/* Erg: -[[(TPH c = Integer), (TPH b = VecPair< Number, TPH B >)], - [(TPH c = Integer), (TPH b = ? extends VecPair< Number, TPH B >)], - [(TPH b = Menge< Pair< Number, TPH c > >)], - [(TPH b = ? extends Menge< Pair< Number, TPH c > >)]] -*/ - -/* Menge Menge> */ -/* Erg.: -[[(TPH a = Pair< TPH A, Integer >), (TPH b = ? extends VecPair< TPH A, TPH B >)], - [(TPH a = Pair< TPH A, Integer >), (TPH b = VecPair< TPH A, TPH B >)], - [(TPH a = ? extends Pair< TPH A, Integer >), (TPH b = ? extends VecPair< TPH A, TPH C >)], - [(TPH a = ? extends Pair< TPH A, Integer >), (TPH b = VecPair< TPH A, TPH C >)], - [(TPH a = ? extends Pair< TPH A, ? extends Integer >), (TPH b = ? extends VecPair< TPH A, TPH D >)], - [(TPH a = ? extends Pair< TPH A, ? extends Integer >), (TPH b = VecPair< TPH A, TPH D >)], - [(TPH a = ? extends Pair< TPH A, ? extends Number >), (TPH b = ? extends VecPair< TPH A, TPH E >)], - [(TPH a = ? extends Pair< TPH A, ? extends Number >), (TPH b = VecPair< TPH A, TPH E >)], - [(TPH a = ? extends Pair< TPH A, ? extends Object >), (TPH b = ? extends VecPair< TPH A, TPH F >)], - [(TPH a = ? extends Pair< TPH A, ? extends Object >), (TPH b = VecPair< TPH A, TPH F >)], - [(TPH a = ? extends Pair< TPH A, ? super Integer >), (TPH b = ? extends VecPair< TPH A, TPH G >)], - [(TPH a = ? extends Pair< TPH A, ? super Integer >), (TPH b = VecPair< TPH A, TPH G >)], - [(TPH a = ? extends Object), (TPH b = ? extends VecPair< TPH A, TPH H >)], - [(TPH a = ? extends Object), (TPH b = VecPair< TPH A, TPH H >)], - [(TPH a = ? super Pair< TPH A, Integer >), (TPH b = ? extends VecPair< TPH A, TPH I >)], - [(TPH a = ? super Pair< TPH A, Integer >), (TPH b = VecPair< TPH A, TPH I >)], - [(TPH b = ? extends Menge< TPH a >)], - [(TPH b = Menge< TPH a >)]] -*/ - - -/* Menge> Menge> */ -/* funktioniert */ -/* Erg. -[[(TPH a = Pair< Number, Integer >)], - [(TPH a = ? extends Pair< Number, Integer >)], - [(TPH a = ? extends Pair< Number, ? extends Integer >)], - [(TPH a = ? extends Pair< Number, ? extends Number >)], - [(TPH a = ? extends Pair< Number, ? extends Object >)], - [(TPH a = ? extends Pair< Number, ? super Integer >)], - [(TPH a = ? extends Pair< ? extends Number, Integer >)], - [(TPH a = ? extends Pair< ? extends Number, ? extends Integer >)], - [(TPH a = ? extends Pair< ? extends Number, ? extends Number >)], - [(TPH a = ? extends Pair< ? extends Number, ? extends Object >)], - [(TPH a = ? extends Pair< ? extends Number, ? super Integer >)], - [(TPH a = ? extends Pair< ? extends Object, Integer >)], - [(TPH a = ? extends Pair< ? extends Object, ? extends Integer >)], - [(TPH a = ? extends Pair< ? extends Object, ? extends Number >)], - [(TPH a = ? extends Pair< ? extends Object, ? extends Object >)], - [(TPH a = ? extends Pair< ? extends Object, ? super Integer >)], - [(TPH a = ? extends Pair< ? super Number, Integer >)], - [(TPH a = ? extends Pair< ? super Number, ? extends Integer >)], - [(TPH a = ? extends Pair< ? super Number, ? extends Number >)], - [(TPH a = ? extends Pair< ? super Number, ? extends Object >)], - [(TPH a = ? extends Pair< ? super Number, ? super Integer >)], - [(TPH a = ? extends Pair< ? super Integer, Integer >)], - [(TPH a = ? extends Pair< ? super Integer, ? extends Integer >)], - [(TPH a = ? extends Pair< ? super Integer, ? extends Number >)], - [(TPH a = ? extends Pair< ? super Integer, ? extends Object >)], - [(TPH a = ? extends Pair< ? super Integer, ? super Integer >)], - [(TPH a = ? extends Object)], - [(TPH a = ? super Pair< Number, Integer >)]] - */ - -/* Menge Menge>> */ - /* Erg. stimmt - [[[(TPH c = Integer), (TPH b = ? extends VecPair< Number, TPH B >)], - [(TPH c = Integer), (TPH b = VecPair< Number, TPH B >)], - [(TPH c = ? extends Integer), (TPH b = ? extends VecPair< Number, TPH C >)], - [(TPH c = ? extends Integer), (TPH b = VecPair< Number, TPH C >)], - [(TPH c = ? extends Number), (TPH b = ? extends VecPair< Number, TPH D >)], - [(TPH c = ? extends Number), (TPH b = VecPair< Number, TPH D >)], - [(TPH c = ? extends Object), (TPH b = ? extends VecPair< Number, TPH E >)], - [(TPH c = ? extends Object), (TPH b = VecPair< Number, TPH E >)], - [(TPH c = ? super Integer), (TPH b = ? extends VecPair< Number, TPH F >)], - [(TPH c = ? super Integer), (TPH b = VecPair< Number, TPH F >)], - [(TPH b = ? extends Menge< ? extends Pair< Number, TPH c > >)], - [(TPH b = Menge< ? extends Pair< Number, TPH c > >)], - [(TPH b = ? extends Menge< Pair< Number, TPH c > >)], - [(TPH b = Menge< Pair< Number, TPH c > >)]] - */ - -class Number {} -class Integer extends Number {} - -class Menge { } - -class Pair { } - -class VecPair extends Menge> { } \ No newline at end of file diff --git a/examples/luar/WCTest8.jav b/examples/luar/WCTest8.jav deleted file mode 100755 index 9bbaaf23..00000000 --- a/examples/luar/WCTest8.jav +++ /dev/null @@ -1,25 +0,0 @@ -/* Subtype Menge> OK */ - -/* Subtype Menge> */ - -/* Korrekt */ - -/* Menge> Menge>> */ - -/* Super, FUNKTIONIERT!!! */ - -/* Menge> Menge> */ - -/* redureSup Test: FUNKTIONIERT!!! */ - -class Number {} -class Integer extends Number {} - -class List { } - -class Menge extends List { } - -class Pair { } - - -class Subtype extends Menge> { } \ No newline at end of file diff --git a/examples/luar/WCTest9.jav b/examples/luar/WCTest9.jav deleted file mode 100755 index 4a393aa2..00000000 --- a/examples/luar/WCTest9.jav +++ /dev/null @@ -1,14 +0,0 @@ - - -Subtype Pair - -/* nochmals pruefen koennte aber stimmen */ - -class Number {} -class Integer extends Number {} - -class Menge { } - -class Pair { } - -class Subtype extends Pair { } \ No newline at end of file diff --git a/examples/mema_usecases/UsecaseFive.jav b/examples/mema_usecases/UsecaseFive.jav deleted file mode 100755 index 9078f0dd..00000000 --- a/examples/mema_usecases/UsecaseFive.jav +++ /dev/null @@ -1,8 +0,0 @@ -class UsecaseFive{ - - foo(bar){ - bar.addElement(new Integer()); - return bar; - } - -} \ No newline at end of file diff --git a/examples/mema_usecases/UsecaseFour.jav b/examples/mema_usecases/UsecaseFour.jav deleted file mode 100755 index b4319c97..00000000 --- a/examples/mema_usecases/UsecaseFour.jav +++ /dev/null @@ -1,10 +0,0 @@ -class UsecaseFour{ - foo(bla, Stack blub){ - return (1!=2) && true; - } - - bar(dipsy, Stack laalaa, po){ - dipsy = this.foo(laalaa, po); - return dipsy; - } -} \ No newline at end of file diff --git a/examples/mema_usecases/UsecaseOne.jav b/examples/mema_usecases/UsecaseOne.jav deleted file mode 100755 index c5fc1c81..00000000 --- a/examples/mema_usecases/UsecaseOne.jav +++ /dev/null @@ -1,6 +0,0 @@ -class UsecaseOne extends Menge{ - foo(bar){ - SchorschKlasse x; - return 3; - } -} \ No newline at end of file diff --git a/examples/mema_usecases/UsecaseThree.jav b/examples/mema_usecases/UsecaseThree.jav deleted file mode 100755 index 248964e4..00000000 --- a/examples/mema_usecases/UsecaseThree.jav +++ /dev/null @@ -1,20 +0,0 @@ -class UsecaseThree{ - Boolean m_Zulu; - - foo(bar, umu, Stack lala, num){ - ret; - { - bar = 5; - { - myTestVar; - myTestVar = lala; - } - { - myTestVar; - myTestVar = m_Zulu && true; - } - } - ret = (num+3)==8; - return ret; - } -} \ No newline at end of file diff --git a/examples/mema_usecases/UsecaseTwo.jav b/examples/mema_usecases/UsecaseTwo.jav deleted file mode 100755 index eb954cba..00000000 --- a/examples/mema_usecases/UsecaseTwo.jav +++ /dev/null @@ -1,6 +0,0 @@ -class UsecaseTwo{ - foo(bar){ - bar = 3; - return bar!=2; - } -} \ No newline at end of file diff --git a/examples/mema_usecases/UsecaseZero.jav b/examples/mema_usecases/UsecaseZero.jav deleted file mode 100755 index b7f0eec0..00000000 --- a/examples/mema_usecases/UsecaseZero.jav +++ /dev/null @@ -1,5 +0,0 @@ -class UsecaseZero{ - foo(bar){ - return (4*(3-2))>2; - } -} \ No newline at end of file diff --git a/examples/pl_usecases/AchimTest1.jav b/examples/pl_usecases/AchimTest1.jav deleted file mode 100755 index 35d7739d..00000000 --- a/examples/pl_usecases/AchimTest1.jav +++ /dev/null @@ -1,9 +0,0 @@ -class Test{ - test(){ - return 1; - } - test2(){ - i; - i = test(); - } -} diff --git a/examples/pl_usecases/BoundedType.jav b/examples/pl_usecases/BoundedType.jav deleted file mode 100755 index ca33735a..00000000 --- a/examples/pl_usecases/BoundedType.jav +++ /dev/null @@ -1,12 +0,0 @@ -class BoundedType { - - m(T x) { - return x; - } - - m1(x) { - T y; - x = y; - return y; - } -} \ No newline at end of file diff --git a/examples/pl_usecases/BoundedType1.jav b/examples/pl_usecases/BoundedType1.jav deleted file mode 100755 index af71bfa7..00000000 --- a/examples/pl_usecases/BoundedType1.jav +++ /dev/null @@ -1,16 +0,0 @@ -interface BB { } -interface AA extends BB { - AAm(BB x); - } - -interface RR extends BB { - } - -class BoundedType1 { - - - m1(AA a) { - T1 b; - a.AAm(b); - } -} \ No newline at end of file diff --git a/examples/pl_usecases/BoundedType2.jav b/examples/pl_usecases/BoundedType2.jav deleted file mode 100755 index 47602aba..00000000 --- a/examples/pl_usecases/BoundedType2.jav +++ /dev/null @@ -1,15 +0,0 @@ -class BoundedType { - m(T x) { - r; - r=x; - return r; - } - m1(b) { return b; } - -} - -class Id { - BoundedType bb; - m(x) { return bb.m1(x); } - } - \ No newline at end of file diff --git a/examples/pl_usecases/OL.jav b/examples/pl_usecases/OL.jav deleted file mode 100755 index 66e95aeb..00000000 --- a/examples/pl_usecases/OL.jav +++ /dev/null @@ -1,16 +0,0 @@ -class OL { - - Integer m(Integer x) { return x + x; } - - Boolean m(Boolean x) {return x || x; } -} - -class Main { - - main(x) { - ol; - ol = new OL(); - return ol.m(x); - } - -} diff --git a/examples/pl_usecases/OL2.jav b/examples/pl_usecases/OL2.jav deleted file mode 100755 index b42eb1dc..00000000 --- a/examples/pl_usecases/OL2.jav +++ /dev/null @@ -1,20 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class OL2 { - - Integer m(Integer x) { return x + x; } - - Boolean m(Boolean x) {return x || x; } -} - -class Main { - - main(x) { - ol; - ol = new OL2(); - y; - /* y = new Menge(); */ - y.addElement(ol.m(x)); - } - -} diff --git a/examples/pl_usecases/Probleme b/examples/pl_usecases/Probleme deleted file mode 100755 index f4ebc5a2..00000000 --- a/examples/pl_usecases/Probleme +++ /dev/null @@ -1,41 +0,0 @@ -- Sequenz-Diagramme fuer TR-Algorithmen -- In der GUI werden bei der Auswahl bei Typisierungen mehrerer Klassen immer nur die Typisierung der einzelnen Klasse angepasst (Use-Rase ZweiKlassen.jav) -- Bound bleiben in der GUI erhalten auch wenn durch Auswahl die Bounds gar nicht mehr existieren (Use-Rase BoundedType2.jav) -- Parameter gehen nicht Matrix Use-Rase -- gleiche TypePlaceHolder in unterschiedlichen Intersections werden durch unterschiedliche GentypeVars ersetzt (BoundedType2.jav) -- Mail von Juergen, welche Usecases machen ihm Probleme? -- UsedId bei bei "extends" in RefType bzw. bei "implements" in Menge umwandeln. (siehe mail an Timo) -- Roundtrip fuer den Innovator einbauen erledigt 06-06 -- Schnittstelle mit syntaktischen Angaben fuer den Konstantenpool wird bei unbeboxten Typen nicht richtig erzeugt -- Boxing und Unboxing geht noch nicht bei allen primitiven Typen und Operatoren --------------------------------------------------------------------------------------------------- -- makeFC testen durch Verschiebung von TyploseVaribale yu GentypeVar - sind Probleme entstanden PL 06-03-16 -- Alle UseCases noch mit Vervielfachung testen -- Codeerzeugung: called_method -- Returntyp void UsecaseThree_pl.jav ERLEDIGT Fehler in Void.java 05-07-31 -- Parameter in Typen: Werden die �berhaupt betrachtet? UsecaseTwo_pl.jav -- Die Argumente bei UsedId Konstruktion f�r die Parameter in dem Attribut paralist von Typen - sind immer GenericTypeVars, k�nnten aber auch Typen wie Integer als RefTypes sein. - In der Methode wandleGeneric2RefType (MyCompiler) werden nur die GenericTypeVars - der Superklassen-Deklarationen angepasst. Hier muessten alle expliziten Typdeklarationen - im gesamten abstrakten Syntaxbaum angepasst werden. Koennte ueber eine Registry - und die Listener realisiert werden. ERLEDIGT SourceFile.java 05-07-31 -- getypte Variablen werden nicht richtig gesetzt UsecaseFive_pl.jav ERLEDIGT JavaParser.jay 05-07-30 - -- UNIFY funktioniert nicht mit GenericTypeVars UsecaseOne_pl.jav -- Einschränkungen bei TRMAPP von noch einbauen. -- a.b wird als Expression nicht in InstVar umgewandelt, sondern bleibt LocalOrFieldVar mit UsedId UsecaseNine_pl.jav - wird inzwischen bei zwei Identifieren umgewandelt. Mit mehr testen -- In Usecase UsecaseNine_pl.jav wird der Parameter bei der Klasse bei b nicht bestimmt. -- Braucht man das Field type vom Typ String in InstVar.java? -- in Assign stimmt der Typ von Assign nicht (Beispiel Matrix1.jav in bajo) -- unifyAndregister in allen Subklassen von ExprStmt durch register ersetzen. erledigt 05-08-21 -- Class.java: m_MethodIntersectionTypes wird in CTypeReconstructionResult nicht richtig gestetzt. - Beispiel Matrix.jav in bajo1_usecases -- clone in alle Subklassen von CTypeAssumption ueberpruefen. -- Was ist der Unterschied zwischen RefType.clone() und Pair.copyType -- in instanceSmaller neuhinzugekommene GENTYPEVARS durch typlose Vars ersetzen. -- EST95A anschauen. Insbesondere: Wann ist this View und wann GView? - siehe SubtypeingTest this wird immer dynamisch angepasst. Auch in - der Theorie aendern \ No newline at end of file diff --git a/examples/pl_usecases/SMatrix.jav b/examples/pl_usecases/SMatrix.jav deleted file mode 100755 index bbb6bb5f..00000000 --- a/examples/pl_usecases/SMatrix.jav +++ /dev/null @@ -1,11 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class Matrix extends Menge> { - - mul(){ - Menge> ret1; - Menge ret; - return ret; - } - -} diff --git a/examples/pl_usecases/Simple.jav b/examples/pl_usecases/Simple.jav deleted file mode 100755 index 312e8a88..00000000 --- a/examples/pl_usecases/Simple.jav +++ /dev/null @@ -1,10 +0,0 @@ -class Simple { - - simple(a) { - return 1; - } - - main(a) { - return a; - } -} \ No newline at end of file diff --git a/examples/pl_usecases/UnifyTest1.jav b/examples/pl_usecases/UnifyTest1.jav deleted file mode 100755 index 78cc68e9..00000000 --- a/examples/pl_usecases/UnifyTest1.jav +++ /dev/null @@ -1,11 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; -import java.util.Stack; - - -class Test { - public getValue(a){ - String x; - a.addElement(x); - } - -} diff --git a/examples/pl_usecases/UsecaseEight_pl.jav b/examples/pl_usecases/UsecaseEight_pl.jav deleted file mode 100755 index f2395352..00000000 --- a/examples/pl_usecases/UsecaseEight_pl.jav +++ /dev/null @@ -1,10 +0,0 @@ -class UsecaseEight_pl { - - foo1() { - a; - b; - a = b.foo1(); - return 1; - } - -} \ No newline at end of file diff --git a/examples/pl_usecases/UsecaseFive_pl.jav b/examples/pl_usecases/UsecaseFive_pl.jav deleted file mode 100755 index 6857d448..00000000 --- a/examples/pl_usecases/UsecaseFive_pl.jav +++ /dev/null @@ -1,9 +0,0 @@ -class UsecaseFive_pl { - - foo() { - Menge c; - c = new Menge() ; - return c; - } - -} \ No newline at end of file diff --git a/examples/pl_usecases/UsecaseFour_pl.jav b/examples/pl_usecases/UsecaseFour_pl.jav deleted file mode 100755 index 415318d4..00000000 --- a/examples/pl_usecases/UsecaseFour_pl.jav +++ /dev/null @@ -1,9 +0,0 @@ -class UsecaseFour_pl { - - foo() { - c; - c = new Menge() ; - return c; - } - -} \ No newline at end of file diff --git a/examples/pl_usecases/UsecaseNine_pl.jav b/examples/pl_usecases/UsecaseNine_pl.jav deleted file mode 100755 index 979b2baa..00000000 --- a/examples/pl_usecases/UsecaseNine_pl.jav +++ /dev/null @@ -1,12 +0,0 @@ -class UsecaseNine_pl { - - Integer c; - - foo1() { - a; - b; - a = b.c; - return 1; - } - -} \ No newline at end of file diff --git a/examples/pl_usecases/UsecaseOne_pl.jav b/examples/pl_usecases/UsecaseOne_pl.jav deleted file mode 100755 index 5156ae48..00000000 --- a/examples/pl_usecases/UsecaseOne_pl.jav +++ /dev/null @@ -1,20 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class UsecaseOne_pl { - - A x; - - foo(bar){ - bar = true; - return 1; - } -/* - foo1(a) { - c; - c = new Menge(); - b; - b = new UsecaseOne_pl(); - return c.addElement(a); - } -*/ -} diff --git a/examples/pl_usecases/UsecaseSeven_pl.jav b/examples/pl_usecases/UsecaseSeven_pl.jav deleted file mode 100755 index 5744f550..00000000 --- a/examples/pl_usecases/UsecaseSeven_pl.jav +++ /dev/null @@ -1,18 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class UsecaseSeven_pl { - - foo(bar){ - bar = true; - return 1; - } - - foo1(a) { - c; - c = new Menge(); - b; - b = new UsecaseSeven_pl(); - return c.addElement(a); - } - -} \ No newline at end of file diff --git a/examples/pl_usecases/UsecaseSix_pl.jav b/examples/pl_usecases/UsecaseSix_pl.jav deleted file mode 100755 index 45c140af..00000000 --- a/examples/pl_usecases/UsecaseSix_pl.jav +++ /dev/null @@ -1,5 +0,0 @@ -class uuu {} -class vvv {} -class UsecaseSix_pl extends Menge> { - -} \ No newline at end of file diff --git a/examples/pl_usecases/UsecaseTen_pl.jav b/examples/pl_usecases/UsecaseTen_pl.jav deleted file mode 100755 index ab5b8d00..00000000 --- a/examples/pl_usecases/UsecaseTen_pl.jav +++ /dev/null @@ -1,14 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class UsecaseTen_pl { - - Menge c; - - foo1() { - a; - b; - a = b.c.elementAt(1); - return b; - } - -} \ No newline at end of file diff --git a/examples/pl_usecases/UsecaseThree_pl.jav b/examples/pl_usecases/UsecaseThree_pl.jav deleted file mode 100755 index b0351814..00000000 --- a/examples/pl_usecases/UsecaseThree_pl.jav +++ /dev/null @@ -1,9 +0,0 @@ -class UsecaseThree_pl { - - foo() { - c; - c = new Menge(); - return c; - } - -} \ No newline at end of file diff --git a/examples/pl_usecases/UsecaseThree_pl.orig.java b/examples/pl_usecases/UsecaseThree_pl.orig.java deleted file mode 100755 index aecefabd..00000000 --- a/examples/pl_usecases/UsecaseThree_pl.orig.java +++ /dev/null @@ -1,11 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class UsecaseThree_pl_org { - - Menge foo() { - Menge c; - c = new Menge(); - return c; - } - -} diff --git a/examples/pl_usecases/UsecaseTwo_pl.jav b/examples/pl_usecases/UsecaseTwo_pl.jav deleted file mode 100755 index 8fbb75e1..00000000 --- a/examples/pl_usecases/UsecaseTwo_pl.jav +++ /dev/null @@ -1,11 +0,0 @@ -class UsecaseTwo_pl { - - foo() { - d; - d = new UsecaseTwo_pl (); - e; - e = d.foo(); - return d; - } - -} \ No newline at end of file diff --git a/examples/pl_usecases/Usecase_MUBTest.jav b/examples/pl_usecases/Usecase_MUBTest.jav deleted file mode 100755 index bda38eb2..00000000 --- a/examples/pl_usecases/Usecase_MUBTest.jav +++ /dev/null @@ -1,12 +0,0 @@ -class A { } - -class B extends A { - f(Boolean x) { - if (x) { - return new B(); } - else { - return new A(); } - } -} - -class C extends B> {} diff --git a/examples/pl_usecases/Usecase_MUBTest1.jav b/examples/pl_usecases/Usecase_MUBTest1.jav deleted file mode 100755 index cfe0e30e..00000000 --- a/examples/pl_usecases/Usecase_MUBTest1.jav +++ /dev/null @@ -1,17 +0,0 @@ - - -class A { } - -class B extends A { - f(Boolean x) { - if (x) { - return new B(); } - else { - return new A(); } - } -} - -class C extends B> {} - - - diff --git a/examples/pl_usecases/Usecase_MUBTest2.jav b/examples/pl_usecases/Usecase_MUBTest2.jav deleted file mode 100755 index 08e66aed..00000000 --- a/examples/pl_usecases/Usecase_MUBTest2.jav +++ /dev/null @@ -1,13 +0,0 @@ -class A { } - -class B extends A { - f(x) { - a; - if (x) { - return new C(); } - else { - return a; } - } -} - -class C extends B> {} diff --git a/examples/pl_usecases/Usecase_MUBTest3.jav b/examples/pl_usecases/Usecase_MUBTest3.jav deleted file mode 100755 index fc7a33cd..00000000 --- a/examples/pl_usecases/Usecase_MUBTest3.jav +++ /dev/null @@ -1,14 +0,0 @@ -class A { } - -class B extends A { - f(x) { - a; - b; - if (x) { - return a; } - else { - return b; } - } -} - -class C extends B> {} diff --git a/examples/pl_usecases/Usecase_MUBTest4.jav b/examples/pl_usecases/Usecase_MUBTest4.jav deleted file mode 100755 index 0325a600..00000000 --- a/examples/pl_usecases/Usecase_MUBTest4.jav +++ /dev/null @@ -1,12 +0,0 @@ -class A { } - -class B extends A { - f(Boolean x) { - if (x) { - return new B(); } - else { - return new C(); } - } -} - -class C extends B> {} diff --git a/examples/pl_usecases/Usecase_MUBTest5.jav b/examples/pl_usecases/Usecase_MUBTest5.jav deleted file mode 100755 index c1b2b19b..00000000 --- a/examples/pl_usecases/Usecase_MUBTest5.jav +++ /dev/null @@ -1,12 +0,0 @@ -class A { } - -class B extends A { - f(Boolean x) { - if (x) { - return new B(); } - else { - return new C(); } - } -} - -class C extends B> {} diff --git a/examples/pl_usecases/Usecase_MUBTest6.jav b/examples/pl_usecases/Usecase_MUBTest6.jav deleted file mode 100755 index 2d494563..00000000 --- a/examples/pl_usecases/Usecase_MUBTest6.jav +++ /dev/null @@ -1,9 +0,0 @@ -class Test2 { - public meth(){ - if(true) { - return(1); - }else{ - return(2); - } - } -} diff --git a/examples/pl_usecases/ZweiKlassen.jav b/examples/pl_usecases/ZweiKlassen.jav deleted file mode 100755 index e74b9b9f..00000000 --- a/examples/pl_usecases/ZweiKlassen.jav +++ /dev/null @@ -1,17 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -class ZweiKlassen { - - foo() { - c; - c = new Menge() ; - return c; - } - -} - -class X { - ZweiKlassen bb; - - foo2() { return bb.foo();} -} \ No newline at end of file diff --git a/examples/scju/Boxing.jav b/examples/scju/Boxing.jav deleted file mode 100755 index c632c2c0..00000000 --- a/examples/scju/Boxing.jav +++ /dev/null @@ -1,26 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -public class Boxing { - - public BoxingTest() { - a; - a= new Integer(12); - - v; - v = new Menge(); - - - v.addElement(a); - - b; - b = 0; - - c; - - c = v.elementAt(b); - - v.addElement(c); - - return v; - } -} \ No newline at end of file diff --git a/examples/scju/ClassGenerics.jav b/examples/scju/ClassGenerics.jav deleted file mode 100755 index 938046cc..00000000 --- a/examples/scju/ClassGenerics.jav +++ /dev/null @@ -1,12 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; -import java.lang.Comparable; - -public class ClassGenerics extends Menge implements Comparable{ - public typ1 variable1; - protected typ2 variable2; - - public Integer compareTo(String s) { - return null; - } - -} \ No newline at end of file diff --git a/examples/scju/ClassKonstanten.jav b/examples/scju/ClassKonstanten.jav deleted file mode 100755 index 059110ea..00000000 --- a/examples/scju/ClassKonstanten.jav +++ /dev/null @@ -1,6 +0,0 @@ -public class ClassKonstanten { - public final static boolean testcase = true; - public final static int variable = 32; - public final static char testchar = 'A'; - public final static String var2 = "Hallo Welt!"; -} \ No newline at end of file diff --git a/examples/scju/FieldGenerics.jav b/examples/scju/FieldGenerics.jav deleted file mode 100755 index d0f91aa1..00000000 --- a/examples/scju/FieldGenerics.jav +++ /dev/null @@ -1,11 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; -import java.util.Hashtable; - -public class FieldGenerics { - public Menge StringVec; - public Hashtable ht; - - public Menge TestMethode(Hashtable para1) { - return null; - } -} \ No newline at end of file diff --git a/examples/scju/InterfaceGenerics.jav b/examples/scju/InterfaceGenerics.jav deleted file mode 100755 index a66dd8ca..00000000 --- a/examples/scju/InterfaceGenerics.jav +++ /dev/null @@ -1,9 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; -import java.lang.Comparable; -import java.io.Serializable; - -public interface InterfaceGenerics extends Comparable, Serializable{ - - public typ1 compareTo(typ2 s); - -} \ No newline at end of file diff --git a/examples/scju/InterfaceTest.jav b/examples/scju/InterfaceTest.jav deleted file mode 100755 index 83c9d788..00000000 --- a/examples/scju/InterfaceTest.jav +++ /dev/null @@ -1,10 +0,0 @@ -public interface InterfaceTest extends Interface1, Interface2 { - public final static boolean testcase = true; - public final static int variable = 32; - public final static char testchar = 'A'; - public final static String var2 = "Hallo Welt!"; - - public void TestProzedur(); - public void TestProzedur2(String wert1, int wert2); - public int TestProzedur3(int wert2); -} \ No newline at end of file diff --git a/examples/scju/MethodGenerics.jav b/examples/scju/MethodGenerics.jav deleted file mode 100755 index 31c0fbb5..00000000 --- a/examples/scju/MethodGenerics.jav +++ /dev/null @@ -1,18 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; -import java.io.Serializable; -import java.lang.Comparable; - -public class MethodGenerics { - - public typ1 TestMethode(String wert1, typ1 that, String wert2) { - return null; - } - - t TestMethode2() { - return null; - } - - u TestMethode3() { - return null; - } -} \ No newline at end of file diff --git a/examples/scju/SimpleMethodCall.jav b/examples/scju/SimpleMethodCall.jav deleted file mode 100755 index 5133efcc..00000000 --- a/examples/scju/SimpleMethodCall.jav +++ /dev/null @@ -1,15 +0,0 @@ -import de.dhbwstuttgart.typeinference.Menge; - -public class SimpleMethodCall { - - public TestProzedur() { - v; - v = new Menge(); - x; - x = "Hallo Welt!"; - - v.addElement(x); - - return v; - } -} \ No newline at end of file diff --git a/examples/scju/testPackage/Test.jav b/examples/scju/testPackage/Test.jav deleted file mode 100755 index d9ebd0d6..00000000 --- a/examples/scju/testPackage/Test.jav +++ /dev/null @@ -1,15 +0,0 @@ -package testPackage.second.third; - -import de.dhbwstuttgart.typeinference.Menge; - -class PackageTest { - - public final String variable = "Hallo Welt!"; - - TestProzedur() { - c; - c = new Menge(); - return c; - } - -} \ No newline at end of file diff --git a/lib/bcel-5.2-src.zip b/lib/bcel-5.2-src.zip deleted file mode 100644 index 09742615..00000000 Binary files a/lib/bcel-5.2-src.zip and /dev/null differ diff --git a/lib/bcel-5.2.jar b/lib/bcel-5.2.jar deleted file mode 100644 index 2fa90ceb..00000000 Binary files a/lib/bcel-5.2.jar and /dev/null differ diff --git a/lib/bcel-6.0-SNAPSHOT.jar b/lib/bcel-6.0-SNAPSHOT.jar deleted file mode 100644 index a3753dee..00000000 Binary files a/lib/bcel-6.0-SNAPSHOT.jar and /dev/null differ diff --git a/log4j.xml b/log4j.xml deleted file mode 100755 index 64e7c5db..00000000 --- a/log4j.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/notizen/Joerg_fragen b/notizen/Joerg_fragen deleted file mode 100755 index b3da06e7..00000000 --- a/notizen/Joerg_fragen +++ /dev/null @@ -1,2 +0,0 @@ -- backdoorvars werden in die Registry eingetragen (backdoorFresh, backdoorCreate). - Ist das ein Problem? \ No newline at end of file diff --git a/notizen/bajo1/Fragen_und_Probleme.txt b/notizen/bajo1/Fragen_und_Probleme.txt deleted file mode 100755 index 498c1004..00000000 --- a/notizen/bajo1/Fragen_und_Probleme.txt +++ /dev/null @@ -1,109 +0,0 @@ -(X) Typannahme für lokale Variablen - ==> Eindeutige Bezeichnung - - BLÖCKE WERDEN DURCHNUMMERIERT. BSP.: Block 3.1.1 -===================== -(X) Klasse Fresh und Bezeichnung für Typlose Variablen - ==> Für was ist die Hashtable? - ==> Brauchen wir die "Registry" - - JA, ZENTRALE REGISTRY! -===================== -(X) Was macht Fresh.varSubst()? - - -===================== -(X) makeFC() statisch machen - ==> Wie oft muss makeFC() eigentlich aufgerufen werden? - ==> Reicht es die generierte FC statisch zu halten? - ==> Kann SourceFile Singleton sein, d.h. darf es nur ein einziges Sourcefile geben? - - MAKEFC() NICHT STATISCH MACHEN. EINMAL AUFRUFEN UND DANN ERGEBNIS DURCHREICHEN -===================== -(X) Kann ich davon ausgehen, dass beim Aufruf von unify() keine Seiteneffekte auftreten? - ==> Manipuliert bspweise Fresh.varSubst() nichts? - - WENN KEINE FEHLER DRIN SIND, DANN KEINE SEITENEFFEKTE. -===================== -(X) Was macht Algorithmus sub() in TRStart? - ==> Darf nur auf Menge von Typannahmen arbeiten, noch nicht auf Syntaxbaum, oder? - - JA, NUR AUF TYPANNAHMEN -===================== -( ) Wie kopiere ich V_j in TRStart so, dass es eine tiefe Kopie ist, aber dennoch die Referenz - auf dasselbe Typ-Objekt hat. -===================== -( ) Wie erzeuge ich einen Typ? Bsp. TRExp für IntLiteral. - Was ist der Name (Attribut) eines IntLiteral? -===================== -( ) Wo und wie wird eigentlich auf den TypeAssumptions gearbeitet? -===================== -(X) Wo kommen eigentlich die Typreferenzen in den CSubstitutions her? - ==> Wo die von Pair? - ==> Wie greife ich in den Syntaxbaum? - - VERBINDUNG ZU SYNTAXBAUM ÜBER DIE EINDEUTIGEN INSTANZEN VON TYPLOSENVARIBALEN -===================== -( ) Was ist UsedID? Wo ist der Unterschied zwischen Type.name und Type.used.name? -===================== -(X) Kann es sein, dass Thomas im jay-File die TyplosenVariablen nur bei Methodenparametern eingeführt hat? - ==> Lokale Variablen und Rückgabetyp von Methoden? - ==> Shift-Reduce-Konflikte - JA, JAY-FILE IST UNVOLLSTÄNDIG, DIE SHIFT-REDUCE-KONFLIKTE KÖNNEN ABER VORERST NICHT GELÖST WERDEN. -===================== -(X) Müssen noch weitere TypeReplacementListener eingetragen werden? - - JA -===================== -(X) In RefType.Equiv2Equal() wird TyploseVariable.setName() aufgerufen. - Was wird dort gemacht und wie soll ich das mit der Registry für die Typlosen Variablen machen? - - KOMPLETT NEUE TYPLOSE VARIABLEN ERZEUGEN. SYNTAXBAUM WIRD LAUT MARTIN NICHT VERÄNDERT!!! -===================== -(X) Kann Type.setName() nicht in RefType verschoben werden? Macht doch mehr Sinn... - - JAWOLL, WIRD VERSCHOBEN! -===================== -(X) Werden für Methodenparameter auch lokale Variablen im Syntaxbaum angelegt? - - NEIN! -===================== -(X) Wie komme ich in NewClass.TRExp() an den Konstruktor des abstrakten Syntaxbaumes? - - Gar nicht, es müssen nur die Argumententerme übergeben werden. -===================== -(X) Was bedeutet der Index in Alg. 5.37? - - V ohne x -===================== -(X) Ist Epsilon in den Alg. 5.30 ff die leere Menge? - - JA! -===================== -(X) Was ist mit TRStatement / TRExpr für Increment / Decrement? Wie AddOp, oder? - - JAU! -===================== -(X) IfStmt.TRStatement(): Was ist mit den Sigmas der Conditional Expression im Fall void-void? - - Martin überarbeitet den Alg. -===================== -(X) IfStmt.TRStatement(): Warum wird sigma und nicht sigma_i,j angewendet? - - ==> Implementierung von Martin -===================== -(X) Assign.TRExp(): Warum wird sigma und nicht sigma_i,j angewendet? - - ==> Implementierung von Martin -===================== -(X) Wann wird jetzt eigentlich void zurückgegeben? - Liefert TRStatement für die Zuweisung "x = 5" Integer als ReturnType zurück? - - NEIN! Alle Statements außer return geben "void" zurück. Nur Expressions und return haben einen ReturnType!!! -===================== -( ) Der Ausdruck x = 5; wird immer als Zuweisung gesehen, niemals als Variablendeklaration! Muss das angepasst werden? - ==> Unterscheidung beim Parsen zwischen LocalVarDecl und Assign??? -===================== -( ) Variablenüberdeckung funktioniert noch nicht richtig! ==> TRExp() für Local Variables Alg. 5.37 - - \ No newline at end of file diff --git a/notizen/bajo1/Notizen_zur_Implementierung.txt b/notizen/bajo1/Notizen_zur_Implementierung.txt deleted file mode 100755 index f222073f..00000000 --- a/notizen/bajo1/Notizen_zur_Implementierung.txt +++ /dev/null @@ -1,130 +0,0 @@ -Allgemein: -========== - -LineNumber: -=========== - -Hinzugefügt zu den Klassen: - -- Method -- DeclId - -Methode "getTypeLineNumber()" zu allen TypeReplacementListenern hinzugefügt. - -NichtterminalRegeln: - -- methoddeclarator -- variabledeclaratorid - - -TyploseVariable vs. Generics: -============================= - -Bisher wird kein Unterschied zwischen generischen Typvariablen (bsp.: "class") und typlosen Variablen -(bsp.: "public void(para1)") gemacht. Für beide Fälle wird eine Instanz der Klasse "TyploseVariable" angelegt. - -Dies wird geändert: Es gibt ab jetzt eine Unterklasse von "Type" namens "GenericTypeVar". - -TyploseVariable: -================ -Eine Typlose Variable kann ab jetzt nicht mehr direkt erzeugt werden. Der Konstruktor ist nun private! -Um eine neue TyploseVariable zu erhalten, muss die statische Methode TyploseVariable.fresh() aufgerufen werden. -Ansonsten kann über die statische Methode TyploseVariable.getInstance(String) eine bestimmte TyploseVariable -geholt werden. - -Zum abstrakten Syntaxbaum: -========================== - -Der Typrekonstruktionsalgorithmus manipuliert den Syntaxbaum nicht. Es wird nur lesend auf den Syntaxbaum -zugegriffen, ansonsten ist der Algorithmus losgelöst vom Syntaxbaum. -Die einzige Aufgabe des Algorithmus ist, die korrekten Typangaben herauszufinden. Erst nach erfolgreicher -Ausführung des Algorithmus, werden die Typen ersetzt. Dies geschieht über die TypeReplacementListener, die -die einzige Verbindung zwischen der Algorithmusdatenstruktur (TypeAssumptions und Substitutions) und der -Datenstruktur des abstrakten Syntaxbaumes darstellt. - -So kann die Algorithmusdatenstruktur munter geklont werden, solange nur immer die TyploseVariable-Referenzen -korrekt, d.h. in diesem Falle flach, kopiert werden. So zeigen am Ende alle Typannahmemöglichkeiten auf dieselben -Elemente des Syntaxbaumes, aber nur die vom User ausgewählte Lösung manipuliert den Syntaxbaum. - -ITypeReplacementListener: -========================= - -InstVarDecl -LocalVarDecl -FormalParameter -Method - -eventuell noch: - -CastExpr - Nicht! hier kommt nie ne TyploseVariable rein! -ExprStmt -NewArray - Nein! - - -Zur Substitution: -================= - -Die Klasse CSubstitution kapselt zwei Typreferenzen, wobei eine davon eine Typlose Variable ist. -Um während des Typrekonstruktionalgorithmus eine Substitution auf die Menge der Typannahmen auszuführen, -steht die Methode CTypeAssumptionSet.sub() zur Verfügung, die dem Algorithmus sub() aus Martins Paper -entspricht. - -Um jedoch die letztendliche Substitution auf dem abstrakten Syntaxbaum durchzuführen, muss die Methode -CSubstitution.execute() aufgerufen werden. Dies sollte erst über die GUI der IDE ausgelöst werden und -nicht Teil des TypRekonstruktionsalgorithmus sein. - -Zusammenfassung: -================ - -Substitutionen bzw. die Anwendung von Unifiern findet also letztendlich auf 3 Ebenen statt bzw. arbeitet -auf 3 unterschiedlichen Datenstrukturen: - - 1. Auf den Mengen von Typannahmen über die Methode "sub()" - 2. Auf den Mengen von bereits ermittelten Substitutionen über die Methode "applyUnifier()" - 3. Ganz am Ende auf dem abstrakten Syntaxbaum über die Methode "execute()" - - -Was ich getan habe: -=================== - -- Projekt neu strukturiert -- MyCompiler neu strukturiert -- TypeAssumption-Datenstrukturen erstellt -- TypeReplacementListener implementiert -- TyploseVariable modifiziert -- GenericTypeVar eingeführt -- Compiler-Schnittstelle definiert -- TRProg implementiert -- TRStart implementiert -- TRNextMethod implementiert -- CSupportData erstellt -- Jay-File angepasst: - - TyploseVariable eingeführt - - GenericTypeVar eingeführt - - Diverse Fehler beseitigt: - - Void - - TyploseVariable.setName() -- Klassen BoolLiteral, CharLiteral und IntLiteral geändert ==> BaseTypes eingeführt - -Was Martin gemacht hat: -======================= - -- Unify-Algorithmus angepasst -- Unify statisch gemacht und Klasse Unify erstellt - - -Ungelöste Probleme: -=================== - -- Unterscheidung von RefTypes und GenericTypeVars beim Parsen bzw. während des Typrekonstruktionsalgorithmus -- Umwandlung von GenericTypeVars nach Durchlaufen des Algorithmus ==> Kopplung mehrerer parametrisierter Klassen -- Anpassung des Algorithmus auf dem Papier der Art, dass alle Substitutionen nach oben mitgegeben werden ==> siehe Implementierung -- Unterstützung von BaseTypes -- Einführung eines echten IntersectionTypes -- Shift-Reduce-Konflikte im Jay-File - -Was (noch) nicht unterstützt wird: -================================== - -- Arrays -- Mehrere Klassen diff --git a/notizen/bajo1/Theoretische_Erkenntnisse.txt b/notizen/bajo1/Theoretische_Erkenntnisse.txt deleted file mode 100755 index 4998038b..00000000 --- a/notizen/bajo1/Theoretische_Erkenntnisse.txt +++ /dev/null @@ -1,45 +0,0 @@ -TRProg: -======= - -In TRProg werden zunächst die unterschiedlichen Mengen von Typannahmen zusammengebaut. - -V_fields_methods: -Die Typannahmen aller Membervariablen und aller Methoden (Parametertypen und Rückgabetyp) - -V_1 bis V_n: -Die Typannahmen aller Parameter einer Methode V_i als Typannahmen für lokale Variablen. - -Danach wird TRStart gerufen, dessen Rückgabewert eine Menge von 2-Tupeln aus Unifiern und -Mengen von Typannahmen ist. Diese Tupel müssen eventuell noch über einen Intersection-Typ -strukturiert werden, bilden aber prinzipiell das Ergebnis des Typrekonstruktionsalgorithmus: -Alle möglichen Typkombinationen für diese Klasse in Form von unterschiedlichen Typannahmemengen. - - -TRStart: -======== - -TRStart bekommt als Argumente n TypeAssumptionSets V_n für jede der n Methoden eine. - -Für jede der n Methoden wird TRNext aufgerufen, der m Triples (sigma_j, ty_j, V_j) zurück gibt. -D.h. m mögliche Typkombinationen für diese eine Methode. -Für jede der m Möglichkeiten wird daraufhin eine Menge von möglichen Unifier für den ReturnType berechnet. - -Dann wird auf jedes V_j der m Möglichkeiten alle zugehörigen Unifier unify element unify_j angewendet -und eine Menge von Tupeln (sigma_z, V_z) gebildet. Diese Mengen von Tupeln aller V_j werden zu einer -Ergebnismenge vereinigt. - -Dieser ganze Ablauf passiert für jede der m Methode n Mal, wobei die Erkenntnisse der vorher gehenden -Durchläufe immer als Eingabewert für den nächste Durchlauf dienen. -Nach dem letzten Durchlauf wird die Ergebnismenge von Tupeln (sigma, V) von TRStart zurückgegeben. - - -TRNext: -======= - -TRNext hat im Prinzip die Aufgabe, die bisherigen Teilergebnisse in Form von Typannahmen um weitere -Informationen aus der aktuellen Methode zu erweitern. - -Dabei werden für alle n V_i der übergebenen Tupel (sigma, V) TRStatement des Blocks der aktuellen Methode -aufgerufen. Zuvor werden aus dem jeweiligen V_i noch die Typannahmen für die Parameter der letzten Methode -(als lokale Variable) entfernt und um die Typannahmen der neuen Parameter (als lokale Variablen) erweitert. -Dabei werden die bisher ermittelten Unifier berücksichtigt, d.h. entsprechende Substitutionen gleich durchgeführt. diff --git a/notizen/bajo1/merge-to-do.txt b/notizen/bajo1/merge-to-do.txt deleted file mode 100755 index 0507c9b1..00000000 --- a/notizen/bajo1/merge-to-do.txt +++ /dev/null @@ -1,25 +0,0 @@ -erledigt - -r--r--r--+ 1 pl dozent 57133 2005-02-26 01:11 Unify.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 2831 2005-02-19 12:59 Makefile,v -erledigt - -r-xrwxr-x+ 1 pl dozent 296037 2005-02-18 18:00 SourceFile.java,v -erledigt - -r--r--r--+ 1 pl dozent 418 2005-02-18 18:00 FC_TTO.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 4060 2005-02-13 23:57 Type.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 9963 2005-02-13 23:57 RefType.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 10416 2005-02-13 01:18 Pair.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 51554 2005-02-11 17:51 MyCompiler.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 48735 2005-02-10 18:00 JavaParser.jay,v -erledigt - -r--r--r--+ 1 pl dozent 277 2005-01-23 22:58 matchException.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 1290 2005-01-21 17:33 ModuloOp.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 1204 2005-01-19 17:54 EmptyStmt.java,v -erledigt - -r--r--r--+ 1 pl dozent 1805 2005-01-07 19:25 fresh.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 2196 2005-01-07 19:23 UsedId.java,v -erledigt - -r-xrwxr-x+ 1 pl dozent 16244 2005-01-07 19:23 Class.java,v - - -Notizen: - -Type.get_Type() ist jetzt Type.getName() - -codegen(boolean systemout) --> Was soll der Parameter? -ClassFile überprüfen --> Was tut Konstruktor??? -Status überprüfen --> vorher unused -UserDef --> vorher unused diff --git a/notizen/hoti/Notizen.txt b/notizen/hoti/Notizen.txt deleted file mode 100755 index e722da65..00000000 --- a/notizen/hoti/Notizen.txt +++ /dev/null @@ -1,69 +0,0 @@ -Algorithmus-Probleme: -|||||||||||||||||||||||||||||||||||||||||||||||||||| -- return in while oder if -- �berladene Methoden mit gleicher Parameteranzahl -- Methodenaufruf in if-Statement -- Generic-Methoden addElement und elementAt funktionieren nicht: - - public getValue(Menge a){ - String x; - - a.addElement(x); - return x; - } - - Diese Methode funktioniert, wenn man die Deklaration des Vektors wegl�sst - - oder... - - public getValue(a,String x, y){ - a.addElement(x); - a.addElement(y); - return(y); - } - - -- Irgendein Problem mit boolean: - - public boolean simple2(){ - return(true); - } - - public simple3(){ - return(simple2()); - } - - Leeres Resultset kommt zurueck! - -- Multiclass.java: - - public class Timo extends Holzherr { - public test2(){ - return("Hallo"); - } - } - public class Holzherr{ - public test1(){ - return(1); - } - } - - public class TestCase{ - - public test(par){ - return(par.test2()); - } - - } - -|||||||||||||||||||||||||||||||||||||||||||||||||||| - - -Java-Parser-Probleme: -|||||||||||||||||||||||||||||||||||||||||||||||||||| -- Kommentare funktionieren nicht -- System.out.... -- "hallo nr. "+1 geht nicht -- bytecodegenerierung buggy! -- Arrays werden vom Parser nicht erkannt! -|||||||||||||||||||||||||||||||||||||||||||||||||||| \ No newline at end of file diff --git a/notizen/hoti/Timo Holzherr Statusbericht Typinferenz I.pdf b/notizen/hoti/Timo Holzherr Statusbericht Typinferenz I.pdf deleted file mode 100755 index 8e0a8129..00000000 --- a/notizen/hoti/Timo Holzherr Statusbericht Typinferenz I.pdf +++ /dev/null @@ -1,3134 +0,0 @@ -%PDF-1.2 -9 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F1 -/FontDescriptor 8 0 R -/BaseFont/CMBX12 -/FirstChar 33 -/LastChar 196 -/Widths[342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 -562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 -875 531.3 531.3 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 -675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 -687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.8 562.5 625 312.5 -343.8 593.8 312.5 937.5 625 562.5 625 593.8 459.5 443.8 437.5 625 593.8 812.5 593.8 -593.8 500 562.5 1125 562.5 562.5 562.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 675.9 937.5 875 787 750 879.6 812.5 875 812.5 875 0 0 812.5 -656.3 625 625 937.5 937.5 312.5 343.8 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 -812.5 875 562.5 1018.5 1143.5 875 312.5 562.5] ->> -endobj -12 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F2 -/FontDescriptor 11 0 R -/BaseFont/CMTI12 -/FirstChar 33 -/LastChar 196 -/Widths[300 500 800 755.2 800 750 300 400 400 500 750 300 350 300 500 500 500 500 -500 500 500 500 500 500 500 300 300 300 750 500 500 750 726.9 688.4 700 738.4 663.4 -638.4 756.7 726.9 376.9 513.4 751.9 613.4 876.9 726.9 750 663.4 750 713.4 550 700 -726.9 726.9 976.9 726.9 726.9 600 300 500 300 500 300 300 500 450 450 500 450 300 -450 500 300 300 450 250 800 550 500 500 450 412.5 400 325 525 450 650 450 475 400 -500 1000 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 613.4 800 750 676.9 650 726.9 700 750 700 750 0 0 700 600 550 575 862.5 875 -300 325 500 500 500 500 500 814.8 450 525 700 700 500 863.4 963.4 750 250 500] ->> -endobj -15 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F3 -/FontDescriptor 14 0 R -/BaseFont/CMR10 -/FirstChar 33 -/LastChar 196 -/Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 -500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 -750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 -680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 -277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 -500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 -500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 -777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 -277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 -277.8 500] ->> -endobj -18 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F4 -/FontDescriptor 17 0 R -/BaseFont/CMMI9 -/FirstChar 33 -/LastChar 196 -/Widths[639.4 477.1 609.5 852.5 529.4 374.4 671.1 1027.8 1027.8 1027.8 1027.8 285.5 -285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 -285.5 799.4 513.9 799.4 513.9 543.7 770.7 777.7 733.6 847.5 756.3 656.2 804.8 850.2 -449.3 566.3 870.4 699.4 992.9 821.6 782.1 656.2 810.6 777.6 627.9 599.6 699.1 599.4 -970.5 849 596.5 699.2 399.7 399.7 399.7 1027.8 1027.8 424.4 544.5 440.4 444.9 532.5 -477.8 498.8 490.1 592.2 351.7 420.1 535.1 306.7 905.5 620 497.5 515.9 459.2 463.7 -478.8 371.1 591.4 499.2 736.6 582.6 506.2 478 334.5 391.6 653.3 513.9 285.5 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627.7 856.5 782.1 713.6 -760.6 850.2 799.2 599.5 685.2 631.1 0 0 792.1 658.7 579.2 530.8 455.9 416.4 450.6 -513.2 481.1 363.8 592.2 599.5 619.2 506.9 450.6 588.2 529.4 587.7 452.4 556.3 611.7 -640.8 670.5 285.5] ->> -endobj -21 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F5 -/FontDescriptor 20 0 R -/BaseFont/CMSY9 -/FirstChar 33 -/LastChar 196 -/Widths[1027.8 513.9 513.9 1027.8 1027.8 1027.8 799.4 1027.8 1027.8 628.1 628.1 1027.8 -1027.8 1027.8 799.4 279.3 1027.8 685.2 685.2 913.6 913.6 0 0 571 571 685.2 513.9 -742.3 742.3 799.4 799.4 628.1 821.1 673.6 542.6 793.8 542.4 736.3 610.9 871 562.7 -696.6 782.2 707.9 1229.2 842.1 816.3 716.8 839.3 873.9 622.4 563.2 642.3 632.1 1017.5 -732.4 685 742 685.2 685.2 685.2 685.2 685.2 628.1 628.1 456.8 456.8 456.8 456.8 513.9 -513.9 399.7 399.7 285.5 513.9 513.9 628.1 513.9 285.5 856.5 770.7 856.5 428.2 685.2 -685.2 799.4 799.4 456.8 456.8 456.8 628.1 799.4 799.4 799.4 799.4 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 799.4 285.5 799.4 513.9 799.4 513.9 -799.4 799.4 799.4 799.4 0 0 799.4 799.4 799.4 1027.8 513.9 513.9 799.4 799.4 799.4 -799.4 799.4 799.4 799.4 799.4 799.4 799.4 799.4 799.4 1027.8 1027.8 799.4 799.4 1027.8 -799.4] ->> -endobj -24 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F6 -/FontDescriptor 23 0 R -/BaseFont/CMBX10 -/FirstChar 33 -/LastChar 196 -/Widths[350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 -575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 -869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 -863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 -319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 -319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 -511.1 575 1150 575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 691.7 958.3 894.4 805.6 766.7 900 830.6 894.4 830.6 894.4 0 0 830.6 670.8 -638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 -575 1041.7 1169.4 894.4 319.4 575] ->> -endobj -27 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F7 -/FontDescriptor 26 0 R -/BaseFont/CMBX9 -/FirstChar 33 -/LastChar 196 -/Widths[360.2 617.6 986.1 591.7 986.1 920.4 328.7 460.2 460.2 591.7 920.4 328.7 394.4 -328.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 328.7 328.7 -360.2 920.4 558.8 558.8 920.4 892.9 840.9 854.6 906.6 776.5 743.7 929.9 924.4 446.3 -610.8 925.8 710.8 1121.6 924.4 888.9 808 888.9 886.7 657.4 823.1 908.6 892.9 1221.6 -892.9 892.9 723.1 328.7 617.6 328.7 591.7 328.7 328.7 575.2 657.4 525.9 657.4 543 -361.6 591.7 657.4 328.7 361.6 624.5 328.7 986.1 657.4 591.7 657.4 624.5 488.1 466.8 -460.2 657.4 624.5 854.6 624.5 624.5 525.9 591.7 1183.3 591.7 591.7 591.7 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 710.8 986.1 920.4 827.2 -788.9 924.4 854.6 920.4 854.6 920.4 0 0 854.6 690.3 657.4 657.4 986.1 986.1 328.7 -361.6 591.7 591.7 591.7 591.7 591.7 892.9 525.9 616.8 854.6 920.4 591.7 1071 1202.5 -920.4 328.7 591.7] ->> -endobj -30 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F8 -/FontDescriptor 29 0 R -/BaseFont/CMTT9 -/FirstChar 33 -/LastChar 196 -/Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 -525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 -525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 -525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 -525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525 -525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 -525 525] ->> -endobj -33 0 obj -<< -/Type/Font -/Subtype/Type1 -/Name/F9 -/FontDescriptor 32 0 R -/BaseFont/CMTI10 -/FirstChar 33 -/LastChar 196 -/Widths[306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 -306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 -306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 -525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 -743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 -460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 -460 664.4 463.9 485.6 408.9 511.1 1022.2 511.1 511.1 511.1 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627.2 817.8 766.7 692.2 664.4 743.3 715.6 -766.7 715.6 766.7 0 0 715.6 613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 -511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 511.1] ->> -endobj -35 0 obj -<< -/Length 6023 ->> -stream - 0.00 g 0.00 G BT/F1 14.34 Tf 17.29 -23 TD[(Stand)-374(der)-375(Studienarb)-32(eit)]TJ/F2 14.34 Tf 176 0 TD[(T)75(ypinfer)50(enz)-349(in)-350(Java)-350(I)]TJ/F3 9.96 Tf -176 -21.81 TD[(Die)-415(Theoriephase)-416(des)-416(5.)-416(Semesters)-416(b)-28(estand)-416(aus)-416(Sic)27(h)28(t)-415(der)-416(Studienarb)-28(eit)-416(hauptsc)27(hlic)27(h)-415(aus)-416(Ein-)]TJ 0 -11.95 TD[(lesen)-372(in)-373(die)-373(gegeb)-28(ene)-373(Literatur)-373(\(Studienarb)-28(eit)-372(v)26(on)-372(J)]TJ 230.04 -0.44 TD[(\304)]TJ 0 0.44 TD[(org)-372(B)]TJ 24.63 -0.44 TD[(\304)]TJ 0 0.44 TD[(auerle)-372(und)-373(Ausarb)-28(eitung)-373(v)27(on)-372(Martin)]TJ -254.67 -11.95 TD[(Pl)]TJ 9.82 -0.44 TD[(\304)]TJ -0.28 0.44 TD[(umic)27(k)28(e\))-227(und)-227(dem)-228(Erstellen)-227(v)26(on)-226(Use-Cases)-228(f)]TJ 183.31 -0.44 TD[(\304)]TJ -0.28 0.44 TD[(ur)-227(die)-228(b)-27(estehende)-228(Implemen)27(tierung)-227(des)-227(T)27(ypinferenz-)]TJ -192.57 -11.96 TD[(Algorithm)28(us.)-364(Viele)-364(Use-Cases)-364(wurden)-364(k)27(orrekt)-364(abgehandelt,)-364(ein)-364(P)27(aar)-363(jedo)-28(c)27(h)-363(f)]TJ 337.75 -0.43 TD[(\304)]TJ -0.28 0.43 TD[(uhrten)-364(auf)-364(F)83(ehler,)]TJ -337.47 -11.95 TD[(die)-321(b)-28(ei)-322(der)-322(V)82(erv)28(ollst)]TJ 87.48 -0.43 TD[(\304)]TJ 0 0.43 TD[(andigung)-321(der)-322(aktuellen)-322(V)82(ersion)-321(zur)]TJ/F4 8.96 Tf 155.34 0 TD[(\257)]TJ/F5 8.96 Tf 5.66 0 TD[(\241)]TJ/F3 9.96 Tf 7.16 0 TD[(V)83(ersion)-322(b)-27(ehob)-28(en)-322(w)27(erden)-322(m)]TJ 117.64 -0.43 TD[(\304)]TJ -0.28 0.43 TD[(ussen.)-322(Bei)]TJ -373 -11.95 TD[(den)-370(anderen)-371(Aufgab)-28(en,)-370(die)-371(zu)-371(erledigen)-370(w)26(aren)-369(m)26(uss)-369(zuerst)-371(die)-371(Grammatik)-371(mo)-27(di\257ziert)-371(w)27(erden.)]TJ 0 -11.95 TD[(Der)-333(Algorithm)27(us)-332(m)27(uss)-333(ansc)27(hliessend)-332(ge)]TJ 171.22 -0.44 TD[(\304)]TJ 0 0.44 TD[(andert)-333(w)26(erden.)]TJ/F1 11.95 Tf -171.22 -27.81 TD[(Bisher)-374(gefundene)-375(Bugs)]TJ/F6 9.96 Tf 0 -18.39 TD[(return)-383(in)-383(while)-383(o)-32(der)-384(if)]TJ/F3 9.96 Tf 0 -18.38 TD[(Bei)-413(einer)-413(Programmsequenz)-413(folgender)-413(Art)-414(erzeugt)-413(der)-413(T)26(ypinferenzalgorithm)28(us)-412(einen)-413(Laufzeit-)]TJ 0 -11.96 TD[(fehler)-333(\()]TJ/F7 8.96 Tf 31.29 0 TD[(Blo)-32(c)32(k.TRStatemen)33(ts\(\):)-394(Unerreic)32(h)33(bare)-394(An)32(w)33(eisung)]TJ/F3 9.96 Tf 230.4 0 TD[(\):)]TJ/F8 8.96 Tf -261.69 -19.27 TD[(if\(i>1\))-524({)]TJ 9.41 -7.97 TD[(return\(">1"\);)]TJ -9.41 -7.97 TD[(})]TJ 0 -7.97 TD[(return\("<=1"\);)]TJ/F3 9.96 Tf 14.94 -29.49 TD[(Ans)]TJ 16.93 -0.43 TD[(\304)]TJ 0 0.43 TD[(atze)-222(zur)-222(L)]TJ 42.22 -0.43 TD[(\304)]TJ 0 0.43 TD[(osung)-222(dieses)-222(Problems)-222(sind)-222(b)-28(ereits)-222(v)27(orhanden,)-222(die)-222(n)]TJ 219.39 -0.43 TD[(\304)]TJ 0 0.43 TD[(otige)-222(Sup)-28(erT)27(yp-Uni\257k)56(ations-)]TJ -293.48 -11.95 TD[(Metho)-27(de)-333(ist)-334(jedo)-27(c)26(h)-332(no)-28(c)27(h)-332(nic)26(h)28(t)-332(implemen)27(tiert.)]TJ/F6 9.96 Tf 1.54 -23.91 TD[(\304)]TJ -1.54 -1.91 TD[(Ub)-31(erladene)-384(Metho)-31(den)]TJ/F3 9.96 Tf 1.24 -16.3 TD[(\304)]TJ -1.24 -2.08 TD[(Ub)-27(erladene)-435(F)82(unktionen)-434(k)]TJ 112.31 -0.44 TD[(\304)]TJ 0 0.44 TD[(onnen)-434(bisher)-435(v)26(om)-434(T)27(ypinferenzalgorithm)28(us)-435(bisher)-435(auc)27(h)-434(nic)27(h)27(t)-434(erk)55(ann)27(t)]TJ -112.31 -11.95 TD[(w)28(erden.)-338(Dies)-339(liegt)-339(an)-338(der)-339(V)82(orgehensw)28(eise)-337(b)-28(eim)-339(Absp)-28(eic)27(hern)-338(der)-338(Metho)-28(den)-339(in)-338(die)-339(Hashstruktur.)]TJ 0 -11.96 TD[(Dort)-326(wird)-326(lediglic)26(h)-325(gesp)-28(eic)27(hert,)]TJ/F7 8.96 Tf 139.44 0 TD[(wie)]TJ/F3 9.96 Tf 18.73 0 TD[(die)-326(Metho)-28(de)-326(heisst)-327(und)]TJ/F7 8.96 Tf 104.97 0 TD[(wieviele)]TJ/F3 9.96 Tf 39.95 0 TD[(P)27(arameter)-326(sie)-326(hat.)-327(T)82(auc)28(h)28(t)]TJ -303.09 -11.95 TD[(eine)-279(Metho)-28(de)-280(mit)-280(den)-280(selb)-28(en)-279(Eigensc)26(haften)-279(auf,)-280(wird)-280(die)-279(erste)]TJ 270.73 2.09 TD[(\304)]TJ -1.24 -2.09 TD[(Ub)-27(ersc)27(hrieb)-27(en)-280(und)-280(demnac)27(h)-279(nic)26(h)28(t)]TJ -269.49 -11.95 TD[(b)-27(earb)-28(eitet.)]TJ/F8 8.96 Tf 0 -17.54 TD[(public)-524(String)-525(overloaded\(a\){)]TJ 0 -9.21 TD[(return\(a\);)]TJ 0 -7.97 TD[(})]TJ 0 -7.97 TD[(public)-524(int)-525(overloaded\(a\){)]TJ 0 -9.21 TD[(return\(a\);)]TJ 0 -7.97 TD[(})]TJ/F3 9.96 Tf 14.94 -29.48 TD[(L)]TJ 6.22 -0.44 TD[(\304)]TJ 0 0.44 TD[(osen)-323(k)]TJ 27.35 -0.44 TD[(\304)]TJ 0 0.44 TD[(onn)28(te)-323(man)-323(das)-323(Problem)-323(durc)27(h)-322(das)-324(Anpassen)-323(des)-323(Hash-Sc)27(hl)]TJ 257.56 -0.44 TD[(\304)]TJ -0.27 0.44 TD[(ussels)-322(o)-28(der)-323(das)-323(Einf)]TJ 86.12 -0.44 TD[(\304)]TJ -0.27 0.44 TD[(uhren)]TJ -391.65 -11.96 TD[(einer)-231(neuen)-231(Datenstruktur)-231(\(p.ex.)-232(V)83(ector\).)-231(Jedo)-27(c)26(h)-230(m)27(uss)-231(die)-231(prinzipielle)-231(L)]TJ 306.97 -0.43 TD[(\304)]TJ 0 0.43 TD[(osbark)27(eit)-230(dieses)-232(Problems)]TJ -306.97 -11.95 TD[(in)-333(der)-333(bisherigen)-333(Implemen)27(tierung)-333(zuerst)-333(gepr)]TJ 201.38 -0.43 TD[(\304)]TJ -0.28 0.43 TD[(uft)-333(w)26(erden.)]TJ/F6 9.96 Tf -201.1 -25.82 TD[(Metho)-31(de)-384(in)]TJ/F9 9.96 Tf 61.78 0 TD[(if-Statement)]TJ/F3 9.96 Tf -61.78 -18.38 TD[(Bei)-402(folgendem)-403(Konstrukt)-403(tritt)-402(momen)26(tan)-402(ein)-402(F)82(ehler)-402(auf)-403(\()]TJ/F7 8.96 Tf 255.78 0 TD[(IfStm)33(t.TRStatemen)33(t\(\):)-476(Bedingung)]TJ -255.78 -11.95 TD[(m)33(uss)-394(b)-33(o)-33(olean)-394(sein!)]TJ/F3 9.96 Tf 86.95 0 TD[(\).)-332(Die)-334(Ursac)27(he)-332(ist)-334(jedo)-27(c)26(h)-332(no)-28(c)27(h)-332(nic)27(h)27(t)-332(v)27(ollst)]TJ 182.93 -0.44 TD[(\304)]TJ 0 0.44 TD[(andig)-332(gekl)]TJ 44.54 -0.44 TD[(\304)]TJ 0 0.44 TD[(art.)]TJ/F8 8.96 Tf -314.42 -19.28 TD[(boolean)-524(simple2\(\){)]TJ 0 -9.22 TD[(return\(1>6\);)]TJ 0 -7.96 TD[(})]TJ 0 -7.97 TD[(simple3\(\){)]TJ 9.41 -9.22 TD[(if\(simple2\(\)\){)]TJ 0 -15.93 TD[(})]TJ -9.41 -7.97 TD[(})]TJ/F3 9.96 Tf 205.8 -55.38 TD[(1)]TJ ET -endstream -endobj -37 0 obj -<< -/F1 9 0 R -/F2 12 0 R -/F3 15 0 R -/F4 18 0 R -/F5 21 0 R -/F6 24 0 R -/F7 27 0 R -/F8 30 0 R -/F9 33 0 R ->> -endobj -6 0 obj -<< -/ProcSet[/PDF/Text/ImageC] -/Font 37 0 R ->> -endobj -8 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-53 -251 1139 750] -/FontName/CMBX12 -/ItalicAngle 0 -/StemV 109 -/FontFile 7 0 R -/Flags 4 ->> -endobj -7 0 obj -<< -/Length1 3607 -/Length2 20122 -/Length3 533 -/Length 24262 ->> -stream -%!PS-AdobeFont-1.1: CMBX12 1.0 -%%CreationDate: 1991 Aug 20 16:34:54 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMBX12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /Gamma put -dup 162 /Delta put -dup 163 /Theta put -dup 164 /Lambda put -dup 165 /Xi put -dup 166 /Pi put -dup 167 /Sigma put -dup 168 /Upsilon put -dup 169 /Phi put -dup 170 /Psi put -dup 173 /Omega put -dup 174 /ff put -dup 175 /fi put -dup 176 /fl put -dup 177 /ffi put -dup 178 /ffl put -dup 179 /dotlessi put -dup 180 /dotlessj put -dup 181 /grave put -dup 182 /acute put -dup 183 /caron put -dup 184 /breve put -dup 185 /macron put -dup 186 /ring put -dup 187 /cedilla put -dup 188 /germandbls put -dup 189 /ae put -dup 190 /oe put -dup 191 /oslash put -dup 192 /AE put -dup 193 /OE put -dup 194 /Oslash put -dup 195 /suppress put -dup 196 /dieresis put -dup 0 /Gamma put -dup 1 /Delta put -dup 2 /Theta put -dup 3 /Lambda put -dup 4 /Xi put -dup 5 /Pi put -dup 6 /Sigma put -dup 7 /Upsilon put -dup 8 /Phi put -dup 9 /Psi put -dup 10 /Omega put -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 15 /ffl put -dup 16 /dotlessi put -dup 17 /dotlessj put -dup 18 /grave put -dup 19 /acute put -dup 20 /caron put -dup 21 /breve put -dup 22 /macron put -dup 23 /ring put -dup 24 /cedilla put -dup 25 /germandbls put -dup 26 /ae put -dup 27 /oe put -dup 28 /oslash put -dup 29 /AE put -dup 30 /OE put -dup 31 /Oslash put -dup 32 /suppress put -dup 33 /exclam put -dup 34 /quotedblright put -dup 35 /numbersign put -dup 36 /dollar put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /exclamdown put -dup 61 /equal put -dup 62 /questiondown put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 94 /circumflex put -dup 95 /dotaccent put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -dup 125 /hungarumlaut put -dup 126 /tilde put -dup 127 /dieresis put -dup 128 /suppress put -dup 160 /space put -readonly def -/FontBBox{-53 -251 1139 750}readonly def -/UniqueID 5000769 def -currentdict end -currentfile eexec -›œi_,+õ`ôÀÕ"WºÍÖP -½¥í˜5ö ÏÈð l.×j‡…kPôØ úëPŒ—ø(?ˆ±~M;Àö^Ãyy¬Ü*f˼[âõ:­ç-ѵZ/¿îeŒ¹_[³+ 5{^Ýòd tp¾ñÅ!¶ûÕÇ~¾Ùd¬Z+¾ÉسäŠå»:cÕEwK’+_ö°nÎCdZy°2}m‚3…þUó@-UÓ´HkçÑõ¿®\Gnæð^±ÒÊë&™X±”R—³üÎÔ†<½ ×ØÿÚÍEKNz—µŸçpæwQ›#ÖÀ„$ÕU$*Œ ŒI®ó”]™¹™§œçH®kýæ#ôF3qD/e#¥öÎÈ9§À%."Æ–ÈÌ­äV€åq‰ÐùŽ _•^59p³’ÏS -hÌV°]ß¿ l0t¾ë9ܼ¢r¦æ)ûzê,[§ºå {L¥•ßx 5)—ì>ådß"Ÿ»Tsõè̱ÌSé§â™¨ê¢›iѶ"±ðÏüX)Hu–ÙPËQ pÜŸt;ëïDö®’úÎÅvX™œ‹ð`a`9bÀi^¸} Ú«eeW Šf é®ïŠå_q¸¼v9My)gäØ;nŒ=™‡ÕåLS¿+»2…[”ds´H3½x‡=øäÇæhÿÿ%ª»¤tK$ÖË‚${0RÌ]fóñ¼ø¥j?´FêX{ؾ0%vRÎà5bŠíßØ(;ZÒ‹€­$ؘ— -È¡ã>T<äãÄžæ!ÅÎ>Šé0øcfɈ``hÙé#–ëõ³Û Eü= ÔpÇ¡M’»þ'½t³c¨Ž3¨é¨ZÃ!ç=Å+3;‘ pÅHs¤"-fà&¾m,ˆ•ŠpÁnå ð «—g^Ži"níP]6Â!¾ dtBDKð2_‰›¡^›Eù ÷=ÃIomàÝD¡yI¥(fÇ7t”¾ÿDA¼¤ü+ûryú)8ú›âÞv/ ÔpP‘H9ÞåÕÒ¶?ƒè§•83ïâI*01O2⽚u*½¨vîø†ñ9îÎ)ã &¥§rqÈ”P¶ËC ⩞Ĕ‘z7 ç"'† ·ìʬJýÔ¼YÊü¥Õ0ÜŠúU{¤”Tò»²K†J .&+ºÎ _JfÚ³½Wß‘ãÔD ™tfnF¯„°Àù(`EÑ^õÅæÏÄ-*{÷=ùzŒ`/¯©‚6ÍpÒUk®Öñ4BVJ…ºøüSgoÊT Cò1F¾ï–‘ü&²Ç2{cbupê¨ZÎI8ÈB!ñ©^WãB\dà—}x¼}2Ë0q’e ¤®\•0½‰´LV•Î`›«Õ -z,ͳg„•w¨çÀ0 &ÚÄe‹JUß-'@ì_v' ¬”= à'U`}5W Ü› ¶€˜ãÞÐÀÝt+ú|) -+ÚiN»­y»;Y˜iÿ6~ÍÅe_G]E<Ï“_c|,ð‹")hòÚ=60©t|µ¸¬K+ÄLÂ*HŒÈ š¡_¢Ä=É­¯²¤žˆ\üÕc´ n {–¼â²è‰–Z9Iˆž½ò^+ßôbÛ61³úñ8z;ÿ< ÿIrÿt:?¬ Õy•DM*ãK ¨ªœiEvTÒ"‰'Kùá²×hÏg,Þ:iEæ'ñá@:­Ü¦|ª‚•ýÎβ5ôÊ#nÌ+Ç€?Âù,¿ÜÝ ñ Í¨¶×:/Gx¾s//ýŠöÁ7¨<’``n^±JA|Õ¶Òà×"£zb…Ýe˜ù„S˜øT»ß@úzñÍX˜^¨™?EÌ?þ¶ºÊløÚÜé¹,›âĽ‘ëêîNã(KBúÍ̺ "¨þz0änÂ8¶¥0.{Å7´ŽYŸ–l”ëÚg H=5æƒù>»ºd|oy‘‹Ž-| )/0kÃf¹gšzŠY˜% É -u.Z#í£Í‹i›¨uà]+gXÁø††Gdþ&º¯Ùv¬G ¹<—1Zµ0îö¨øÓ+r„ë|Úê}õ[HG­YÛïw^G4~ŠXr´¢ANø¤Ñ³y$¾ŸÁÜÊ¡ nx|Û™Õô-VEEJ¨ÒHîè7%¾ÕƒÓXQOX©%o"á¬KñÊP߀tp…žñY(´ œ•¶ký™{2Ù>8±(É# ¸³‚ŸÔ þ%½(êyº2X²/“y…©Œ¯P"%õ >÷NE SøÈ¢Ó¬-Xã%<²PÔ^~UmÙ ìE’Å-‘V`lMÖ8+º¹óκòþ—95ÛóÉÂ\üð*ºÂA·nG’RXHÃ!ÄuÒþív#n—€DƒlÅ€ô _%šÒsáòMµ›9±¼¶"Ô«+ ˆþ7X¿<$1 VÉeÔ(ÐßÑøœv‰áàÆYµ•ÄÃKò çõÀód›à‡¶ÝÏÌ™ç\ÿËÄ‹¸qà‡zÛ€wTh‚ôBΫ šú Ûd^B¹1ü"Ç9±AÚ'Ç°MYøß/ëÝ.ŠD?7ç§Uí3ËZqžp‚^r„íçtc{ÉHà-?kK»a¡¢3“Œ:‘n‘(×>ë#bWßã;¥½[¸õr¬‰º¯?žF/kþú¼k²¢©¨åj*Z·1.)S(áæAÄC6‘4sò!WÈXœ Ö³¸Y•1Ñ ö]'V~ïøÂ7Óin¿¹ýL{J!„KIÊy’Ù ïƒ|/=:/Ž(@±‰hITð•}¹¬ßnF•Å21 ' <}7R¡¥;²ÀlŠu6àtýÔF&µD–É/ôñe¸=àv'ÛO Ôr/OÛEʤ:‚Ë8!x«6óGº®2QþÒ,Àgé+-:ËŠá€ÑUÙÅûìe›¨.'Ö½â{—ãµ—»²u²¦UúíɽÄq¥…¨fÆûmìÀEÓ²³Œ®ÀÛš¦V'?£˃yá¢E=yñ¾[ùkMi3IׇY”ôêk‡ -k*†Ð?`‡*÷q¦#pje]PÑ&c½—ú뤓f'–Δ S3”ªTK•*Ôééñ犮"NRãêü›·tQ1×bèÆïëL»¼Õ5½Ü<å \¢´*äDÁãA+k}…7M¸w­I%ÄåÒQ»½­Ë,ÐõIž‘.}™å"lïLõ@~‘µÔ³>óYBž’¾ò<ÖT4©i!¸Çy­zw)ÍB‹`2~¸Õ‚b³JI›/åèÔ¥‚ Ý&½XËœ•Û«Ò ^1ƒ¢2€Í‡Š[M·¦Ö¤s%µÚpÔÏøë.úwï¤YT\¥Q¨!¥‡ÿå¸v -x‰~œŸ4±gEŠéÖål¤é!b(«s÷>IDb:ÁÏ!dOd×»üYÌÛà­|D Æöd@¸If~*S¾[Z‚Z«"»44÷²Ú!!J5‡Í¬ã*ëƒúJ<Œ½dŠÉ'?Á•äæ›r¥Ët_2:iì#? -ú“”¾‘|QËȇâëÙÞ$))Bí}Án†nS£ç¿}Ž§×…æAN]´Óú“=¬Sþ~—p8Žkq¦ýâ_:ŒIw¨ŸGõ| aûçŠ9× 9xÅ­ 8ب ÷µøéŽÐùwv£ÓŽÎDÃ=™†3zšÆ_Ýâi,“DÕ[–hwUC¼Îø™ì†ß.6¬ÅÄË+K™Ð é=†Ì6ÔÅ7ÛvçÕ­ïþ’fXÚâƒt Ó¨ŸÙ¥Œ„SrXI:úäྠ-)÷¢XÃH´¤;ÏÕ.5iÊœåh_¯Á½/QÝÆ/C7—dcÀ%7eQmî]ð¹»yÚ ^ÑïHaOnãý&sFóÒâ~¶zU%x/ƒã¾{_:eb$W­òUÊÇõÆô?îŽ;cvø@¬ÅJYÊ#“$Ö0„ô¼’ËÆŒJèNóåd-185Š¿”›ü½Dø„B"=¬tQ…½ôÊåJksZ û')‚×:™ª›>o`•ùìöP©^-Æ_çSÊ Z/ûö›€ñZn£Ò¾åVT&=o‰Ãµâ!»îÀ)ñ4Ì+eHUQÚ_:L׈_'M˜ò!©ïKŸ;úzgáñÕUjç»E\j‡÷²õ_°øz,™;nX ·=„ÿ­æõàÛ¾_lÒ”Ö¨f4f’äŠåó@òÞÛßÅȆͿ[Ÿ¡!ŸŠIB»£ã• @êÞÑT€ó½êsÍ4Äàñ 90+DÄX<€mðp%(v0â XîAç_ê Ó VuÊ©”ûeH@>J—L±È·æúEQ=ªz¦ö¨9CØÈc¢*ÊR´ô@·Us,ô`åv$i#û€^ë'<">È -Û§ƒ„S\5æOtÁSíÕ¼Y›4ÊxЗF–³Q"2ÍU¯2WïT£Â !ÁçV(Å_ùtÂÝAíIë8¤Œâ>Íå9j~êj:vûo¶O¦L¸Àh”’®ûžú3'?K¸¥JƒCE"IÚ§ˆV‰PmˆGÚ¢•™OUOZRF§ÞEÏß⦘í`v9Í‹øŠ“n ÷ -õ/¨z!W$ (¢0ÈJØX!RàÅ…’7Ù³as>犿/Ñïöž6k¸˜X¾’Ãû—’ÝÒÃð[”$ÕØÍݺv3/_•µ* ëØ‚ ÑÍÐrr$d f9Y½o}ߧîtà7—Û²‚Äܹn ¬BÖ0Wo¤êÌTÑPã¿¿óZ(“›ádNýôû èœ X~=HÈ7ŠÀXÉôðñRÁ,yï“åG;íX#b‡b†ç7ÉâºòžÏÔo^^ıž—Ç=Þ`ÓÌP¶–×æ.C¾u‡=:¼ž¿©‰U5·÷ iõ±ž3^ìœà™ ê¡u¬Í÷Å1*’z¦tsßo!ç×Fx‰ê!1ç">Kô§qï¿a—}¨T@}î,¬·F÷‹#¿×ÿ¤’ÿ³yšúKÈŽho AÛwÈEä†k‹]£“³Òn8Aû·»SàÜUêÊ°‹_wE㼋‚ð_jë¡nÚUSÙk*)vߎÒ=‹P.sK‚À" o;àÀóî1ã®ðÿÄÍ"Ö瞪ёbz‹ÞÊ­Ñ5çJ¨Ûô<>å’<Äø±û¥‰Æ¿úHN×e+7Û¿:íV¢ÚSP€zq£iàŠÊïíKû®XŽä¿qŒ Ê†žµg¼¹zª>•å‚rt͹½=}€‹Ù­%£}t|fiîW|Ø«Ð%ξÍRÑRu¸6ýº'@—,e=†AblAÝ+rê29??]SÙœ:S°sþf‘uÿ™méãÉÞœ.ò?è?°¤9Æ+O9 iF-=$¡þ ˆ£2ËElŽ%Üg‡´âx“£¤àáü¸ -8Š ÓËÞ CQâéÌY9* ¹lÓ ²=Ä™,ÆÏ«Sµ¢©ÐD™£²û½kb,³€ë{ó¯ -»]¡JõìŽÜßi™½"!êB âýo¢Ú*ÄÏM¥R"²ˆ×ü™Su€Ú¾«—n‰ƒóO‡ÅqÎÜ>4âhd¾ÝJ¨¨4ãHØ=+fú†ÁÀíþÂ…’(;^…®ãPE“ߧ@¸+)(S¼94ŠTé:°¨t%5£‚°þåµRðð#f…—ÜŸÎè±âcÔÇP[$:#ìTâÂúNXö {•šµðÆ|‚âî$[mN¾à¨bÕw÷Ëq’U3«Ëiø‹Eνϸvë© '—³•°"³™Æ݃\ =lGX‘;ÃÖ4 5áåMô¹¢¼…»d`eb’èüWó2§ãÓûü!ÿ­\Wš'¯Tz³8»-ù.…Ò+;?ê4²5¢ýpVnM—›R‡ +ÂPÙõŸ”æŠwtêÇz CúÏÐ$èÍÄ–à}½+9'¿N «'$p辑óÎl‚¯‚ -ö†þyºû°Â©ÿ•jréc’hÛÕa­Xfï­þdân.†a¤KzþZ(»~¨~*Ns_P’´ÅvÁ 8ÁßÚ7™ÀŒâH'IlÈ€‚ÿx ‘Q„éÇA¹¶eI]P¯•ÛʸJNâÂ[Ç¢ûˆc…'áPzò“Öéí¾ûó 7ÊPÇÆçÓ‰wn\ûx­7¬ñ¹àœà“XïœJ©6ðº ÕƒCñ¹ÿTQ8VR#Ëv¾C°!Ö)ö±è×@¬‡\]ºM$ÎDZ“ˆ`š£$oÑ«Ov£¾è5¹» -./yô’xýêÿÚţ旻Ìÿ©ÄüÃÓðÆÝW·Ã $ˆÐú»sGÀç>»†sEùsÉÈGŠ³/™_®Îâ)‚²i=аȹæpœEêÕÀ>ÀÕlê¼µ Tøï=­#ršHrST5SX¹+Š;ðF#S3$DeÛ}‚ìœXmq Ãd‰ú‡…ÿ~uÆ0{Gz{^ÀNZ@ªÇŽF,[žÅÛ­ÑßJ‘äÄ»N$ÄÑX0éø:“+–@쥗÷Œ3 -+ \Ïд§òÆóiqç{›ÚÕ²ËÞàüÉôÆ…h8¯Ñîã OÜ¢4œ” "Q<ˆðnç -YVùü`ìUþJ,,—aŽl^ïLg’–õ¡Ðv·Ž6]”q Ù(ÖAÇÏŠé‚mÌ5•D» -!°î/Å& ³ M®“Ò ’5¢™—"·õ–ž ²ÜÝu?Ã~Q VзÝäxÛùcËwãV5G«0ÊB°-±óëfK™r*нdûƒV_Žî¯íß¹lœ'J EM7Ã-ïñ µÙl4Äpõw~—\°xû úLdÕ»Zÿe™I÷44WKYz]S9óª7„66 -½Ñ1*÷Oie_ì TèÿVªƒùnpm¾èbG€?À4ìlû€]Ž†6ÁÒf)ÁÚX ùsÖj³¦g¿<ÈâªG¨‚)Å„ÞYèUi•) éÕÕP… ¢ïA[=]WðHŒ®‰xTäú*•/"iæˆèæ`¸dð;dä¦˳£å@Ñ°Aæ7:îÍ>µGPKì@žå¬›ÖâU•¸[À¶;ܧ§:óqè´ÎDB×é’Ö™¹‡Þn£rQRË–Î&ËÍøUo(y(2׈š«Ž¶C_$ª]öî€_»ëR=‡Rh•iú<Å5º9"{¢¿›¦},ÃÓ^UéÔÒä?+Î=L4 Ý0TJ;]ï|ŠáqKv›Ëhº i†UyéL\OwÅ6Î)m»…‘©™.k Kˆ ³Ó†¶.·š²ÒÿR2¿ ž”’%4ÑÑP_Ôíy½¼q‹{E<ÊúÅôR’-o™j»êoV®¨=Ú¢W%9É8{¬¸õ”¯µ=¥|?G‹}ÁÈ{Ö¬ á—]Œ6§b!‡žÐ¡ÍÇFÕ¢&›øó`Ç÷,©]%ž“6á‰; cIEºå²ÔO·ø¯3K ˆhäv°”qSgpÕ]‚pf[Ê©¿a#zJQå8ÿw¶Jú/åK+7j¹ªM·Nºõ©çï{;’×c,)a*ù}4¿k 5 -·îœ ‘V\öÏÒ±'÷B‘ Í ™¾²ðy¾ŒÿgåÕõ2‰„¾f<¾-½!n¿ìD -åvr×>ò9«ûùo—ì—ß -}ÕTùÈäõØ0—cVe¹ùíŸÊKò÷É@^QpŸÂ39:z¨+úhU¥—@w”ÖMõ¼kí|›åF{­æ˺5 É~F¸1ܹf~ëvY8£fð¢éí÷±„b§V+üqÏE!›¢µÝ«£BãÕæiEX¯ñ“¾p…“WÏ"[èôÊ‘ºoÕ†ü»6ﻘÍSô cVî«éš¦ïá#Dí™?iÎ¥Œê¢ÃÊ©€æjwñfynPÏ‘ÍçT›¾ŠmÑd¥ÃŒN'ÇædbAó×»P{Wh0‹Æ%{nâEmƒ>MýʉÌBéÖ3ª7üõ;£-Çd\6çÂú#Ò«Èl5Ò3Û ž)M&ÇsX0넺Jb®':W÷´•îD¡Yâ É£Ð-P€Áy˜4ÚýÍ5‘K¬ÃÝû¿É«\d.ä: -ÜAŽ0Æ’y~Ñ‚Coë#=}óÏP;ÐL¢>¬!»Va£Hlc?·ÛHm,’ºpfS]÷e4,‡âß*};Â^¬¾€±<›d.”{ζ°§„Ïÿ^×íªØR2¡xCó¸êQ†Ÿ’ƒiFz üÕ-£F­ÝZ¸°Ü´=piì-ÀªŠXß@wɵ댃H—"¯™?ó^³&ËófGiu"“ÜQ\‹éä¡ ¢™ `¥:£eRÇà)­¶é5Ø;ü`´Èi]¸†·Wr%?q´}ôWÃÏEË¥x“̓ -¤C»©ÒÁ¹.—ß«,±±'ýC´û‹}%/ÒA£Ž»tþp:®ÀÄúru €Q¦8^cº6GšWïe­Q}`häl×ËY´Ý‘Y š—ʎǵAõ6@—µ}ëÛl‚UÒZàf…˜p'¸2’Ùø`Ütý—YH -Ú@¡Ì9‰Wþ(õÒô(z¯œ÷Ga†¤{ûˆáHÈMé%+©«‘sÄB`×SÂòbÛøÞÉù™ß„áKwï„QÈ0hÿ”j[­Ð ?܉5cøLã%Ê)N<Áþx»‡ÂOÜša¤x9¯;×þš@jÕÿq£Û«ZŒ,^ Ÿ×d˜O›«IǼ¾¶òüo %ZE~¨ˆ>Z¨·=®A#]œÍ̇ c\ÅÈýO<Œõ´k)¤b§>çvÃÄú‹§z–ÿŒ^Sʺð{©|—e˜ïcÜ*èô‡&퀨`ìÝO-¹©¸q;&qd"{‡— ÈMìË£oÙìA×tGkÛÐÐVéã$Û¸ï”æþ2;tØ#ÍÛ¦]ÄÏyï½S'XGêÔCjÛ¹ -B>Á{ÇÕù.è½…¦®Q~[ ’¬MÃeÍ ·i¡~G¾ -ÛxÛ¯íUfP¨ç»Š³ûìú½g=dŒv‘À· ),èÅhTT±&—ô›z†Žu­ @ë@Ý!&vöÊãUÊÉ®””UU@³ðÇa+bÿÛ´o¼Þ=’׉¼ºŒ÷=6d¯è“çNS•Ìe|‹*kï—'EÚD½|^žÎ "n¸ úže¥÷¦rUåØi¸‘Í*pHh4C¾¶oݤûÝêST»ƒ³¦l¤Ö"/ªqéa½{Š@î«oŽ_ÐÈÍùýDŠŠªZÝxëÌL¡ñ̳÷“yñ¸Ç„0G·Þuû¾ËELR—vÇÓÚ{Øô!œ7íæ€ÏFHç¬/Îté9«ƒ4éA`¨‰|"ôë7Ià±ãPÔû$ÔÑä*ú‹Vgé -ÔÓ­C?~HgÏëщ;½FIÌæ@fSìü‰à×õ:ƒÒ×DínôÐ(¢º‹VŦ˜¨ÑH/)?3ˆãn•÷ e$@Ž¡{ŠšÅåì,ìJêJŸ•‡Üs/hOL…ë …r‘ýmI$hÉ·\ H“¿eZSovffjTéÏúÂ÷ËËÑs½Ï–¾™ýfìåÕFnrœ,¦ÖI‘bÂæ쳑µÜ¯øÂDxÅ]zE"Ûûž)õ”ÖÐFóòߤ̽¹¼'‡i<êX7_ži?nñÅ%GÏ––n #h`-ÕÞ£Àv:;ÑÙHè \¤«<‘»È•&„¸8¢½ôtϤöXº@¥Q@6£¯B(«á&úWÀ½Áv'Nè©CH-:ˆ9 jŠNå‰TY£÷•uðø%ŸR-f™²æ}BЦ‰}Ï€`Ü·(^¸h»sD°º°'Ë°Q©UDšñ¡ÞÛ—±iÔÊBCÀßoc ß læÅ•`žkézÔÊ! .Ò¡]P¼–tÈ­¥/ÅÆãO£;×—`ÕY‹©DÅXÐ'9ÕKàL0H©¬‰1wÍöÏ‘[zF}¦$b”nÓº•7°Äª_š³àצÁÑ ßÌ,±ý e¬LH 5Nz̳¢ÎÀn2ÞðŒüVrsã§H“hv{†ã .ßEHBÀ¹oŠ! {ó;ûágº4Ö?8õ£SQ¾vC¨œ¼h þîb/ÿ±·î§±ðÑ@“ ¼jôªkžÍdÌo·œ™›‘N·Ô'=A¼Sš8éóºf'ÕŸ­ÿq -²:]hI“ßÐNÞfOÚè`³9 Á©ºlÑÌTAÏù»¥–°°ï»ÇT*¸X›ÕÊê|OÝϾH¬SÍ®)D¸mÀÁ†_‘j«Æ'©ÒÝyèÆ,û6s½)î#ò¹¼ „g®}Yóû¿Â8ÿ#±Sæ#ÉæÞ‚á›G¨r<+QA󰬉rY4êp€ù—Ý« -ÔÚ˜~ß$d!?¢Ÿ ©¢¿ LJ‡ÜµP -§Ò}§ï]ÇΡXÝí…M7ÒOO†<ΓH¾j"Ç(%WEBŽ3P-4ü£’Z¼RIïÑ7/æwy5ab[u¾­¥ªå 8æWÝ€­ZXŒ,ofnUÈvšy2%{%µ&ø1¯×‹e};m9bm5!Ò’ -+[ÊÀÆ„‰jààØ¿6ƾX»õâÀ_`:°{´Ô JOÐ0|j_¶w±°g‰ë uÍNB&“4¥åÛýwk5B—!å‰Q?Ã1û”Yü§f  NÇç™ßq –±¥í´Ø\?Á¦BÊØBˆýA%Àч—¶lË•~àÉ/Ä¡Õ­*TYYP-ˆ[L üù,Hôç'Ñ2Ä»„Õú~УŽt –8ÂdËLßB‹„ Û!Ý¡ÃR®Léƒo0;JhwÑ ¥Jµ -™­~ uúˆÌþ;Â@¢u £b:W³T€Ïlû9¢ŽÑ”WEÈÇÒP Ìç”°Ù?'Œ°ÊÓ€)°É·#ª€ï¦uîC¯£ïÄ8KÕ$î'«Ò.-kÿ¯o¢X‘Œ¶_íVC~¬ÂC›doèE•*ÇH©ÊþˆnµÂ>”4ÇZ\my½%ÍœîEãá^¼»cRF·#3€·þ‹ ¶xô#䋽˜WÌ°Ê…PôàÈž¯þÖx{c­lhÆ"³æW´…Ø{ƒ˜‰ðq˜Œíw†¯*¾!*ï—°ÿe‘P°¡ˆFLäGüKj¢c­Íúƒ¥å§•©A -OÊúq0  "<_6»Œ\3žŸ9ïyÈÜ©)AÐ*Ã*•Íæ³^"üÿˆZ€šÑùNš÷g§Ëbs˜¢?“´)GÕ§¶h"Ju…7nd éŒ ®Ž›'aÉ•pž,ßW<¶`9-üKœÕÎÛÌ£½hsëÃœÜ {!g;œÒFJG‹àúÉXRBð“-$í_n(e#Šu šE¿Ž±ºë3å³ôX+ã²ÕÌXTž¯õÙ“n!­º2Ã,©Û<ÛÍžµ·¯¾Ã‹ó¤øå-::Š5áRùmaœu€m¹tE8ä²¥F-Þ7£X‹¤<µŒdU†˜œv–U)Žæ¢?Ú¤#íƦžJÁmèR±ß¦[IbQž3Î×–Áü©IE3½+ Á¦¹ W/Þ, ½¼u E‘ðÃï•s(µÃ‡@…>Äå%Ó<< ‚Q»yât¤HÊJôu_ÕPqФC•ƒF.fä4 åWPÐ*âåorvKø…SÝÁ«o½¸yH'-53Þ+iEÊHÜžxb„ wL°íáüB™’u9V݉rwZÃ)¤§”&ýã¸YEh ²Ò{oüwX8yIμžf‚Éi¡Dé°Rl¨)}-«ƒÛ ëJn?ßÊKÄx?䥙wo™Å6H7ˆÉúý3H5g¹õ /cŒžžç/q"˜©á˜gÒ.‡bŽèWŸ.Ào¨6ÐsÂÇد§ù«4‹œÎžA›$TwÝuµÚ©úô„‹™e>°Ú“[TºóeYSà§ÛIçÚÀ ÀzôJ}Ñýøyšä¯bœjœnÌïФO¶qŒÈ¡˜÷›Ñµ‰ø;<Ù*•Ö9]`Â!ó‚›ÄáÒþÐò—@§Üí‘TâËkg‹Ÿ…Ñ•nî­¼NÇÿºPÈ{fÇÔ]!z -‘&=­r$—\üK²ü­c *¡ ý l&;Ö?¯Sê—™>s»b5ݱ¸ïÈøOBE:†$_Æ´NS¢‘¨„0/u ! Ó†Ž±ÈÄËbyÜþb°ÄØg |O;©¾c9ùŒ{÷”‡N(Û)Å|Ãòu½Šfº¨‘0óáoù-«ÅŒ?Ù°bԨФºïz¿’¿8‡“Š`™ÕMÕ¯Ì//ÿ¯¸ïò)AçÔŽg™ð“ð笵ûCc#X׸¸kXçbÿ/ ß Ã=¨öèt…GŠ—\ƒÐÆtT\¤É!û¨{%îÐËQëG<h"^Ã"çÔq^t$&Êó¶æa¦<~ýØh|¸h1QÙÁ¯£•víG»ù™Ðo{ ÏÛ5éòöÔ•Ôþ;@+OÖp]Õâ¿Ê´" -6 €‹R¬˜ÔÝõ¶ØSª‚!–²#u#Ž†þ©¡aï×Ú¦›‚ì'œä@u_W¿c²D¤Ÿ¥ˆ›]¢èûªG“s±“Õ–;Æåz4³ú>C2zµ(,¹¥ -°Ñ~ØíÂXß(º´¬Ò1JÞÚ?ô™`¸J˜mû§†g¸âËGçÓ$/×Å«€* z=øb‘¬MÄšF`# »Ü÷9=Olêy¡!j‡dìÑx2"„‘1K~ÉÈâù“¹@Øvv}Óçè®6 Åæí©ëcó ˜»` HÑØXª€îäwŠ|>¼@Š$¤ïQÐÜ…xãýÐI7×ý¯G-­õŒ°ÿ=%쪢‰Ž9“é“ÒKÙÅYs>¿Um UÙ²‡LÖIdnaÅF3ö*ûX`È“ -Î*<åí&e€·AKT?{漏ttj˜˜â] ñÀ§ƒœÒ÷NÁI bsðÙ¥é32xa+sßÛñ'…‚íðÂÍ&¶.ÀÍÅí_ž) ß U —Q{J/’ö«¹õ+±žÒ`ªˆn‡Häý³4²åÈ‚Øç¾Ù×zÑÇýdAíD_(f)J%Ÿ‹µLÔäˆE®‚3}é¤Vm[à•/ 囹´ðé ×ò+H$¡‰L„Û:IEä8ª`ûgýé“C'ÔzD˜!ÇÝ¥‘mFtê(ä˜õ§IåAÐE‡3‹ëw~’>««ÖP_iÿ£&¯åÎ -™µæ -‰7 ÛÑh~'Œäˆp+; -èñgJF^¥&8ôm}†¢‡«xºq^=Bû¾çÈ–w§â]Éàó ô„jÒµYA±ˆ)·m`Kfnº^Ûý‘ðÈ Îuf_â§Y$ŒÄœ¯ÞFZVJ”Fš!ëpU«y´¢Ëé„Ï^^¶¨ ¶ïÖ$›ä(xŠD©*zëïTo;ÓÜÎÞ»±x-väâ&ŠØÿ–C4&6R!ižâßU‰£¡¸Ï‰Èt÷©fm`žåˆávÈaÍ×›ìÙÙ}žR¦1µ…dŠþM=„Ò¥…}¸˶p-]eIU£åªXù½Õm @ÆL²k©©4VmmyùØÂ7xid!yM»9¡¯ÍçFo”âüŸ9mý‡„¾¥ªÚÍÖ¼÷L¿ˆCÀ)¾pàÌg—NÑå¶Eaî%‘EAKQ°|6.q·x½rkP*7‘Óá~Êtw;ÁHØ|ß#A,S0F6Z¤õEüè§_ˆ‚A~K38µ¶ ªh•«¥ëV*'Ù!…ÔlòzúZÜ|Ä¥¼ýÁ}m³›e$}‚$YVeA['r¼ŽË±¤Lý(\ÅPþ@”_€šÂý²" $-ø`LNû¨ÊËÈJ˜lØÁ#ë‚è /$F¬V+Í'–³N¡øú¤Áиc†%”hG?[nôU?B©~\˜}Gê -X(„î…»1°ëåMKá3m.Ûëps£~Æ¡q(Î僗œNÇýUT–˜=λ8瘡ôicc}ˆ`„ÊdTý/k±¢ÖìÂÉþÊš«åRs•k‹éÍ@–Ú“¤tQ껶öhqØ4ß“?jÍjeß«©ßúE¬Wiî-)µX“ÁÃ|–C þ8g˜-D!‚¹î¤">°¬ð$ïü¶·cø—‰òÌ÷Aƒ~  äÉ‚¼;|°ñö8—éx9YUâåÙ)‹ƒi”ø'Xøå„/îM]>ªõ¹ è>(áðÝm°“7¶‹í×CɬØTV— -ÏÄ£§µ_L¥®4)*¼Qð‰è“'j´º{oÙGØÚ $q¥g»õ3”j\Oƒ~Ò‚X#¡‘ -{—"E`†®  uéŸC ÿ<…“%JÉŒž›ßݹÅõ ×*šîÓ`Ù‚8©°è£ÖÉ|S…‚b©Bø¯˜œB¥™4ÆÏ8PéUê}²:¤ AÀùþâ:€I‘‘¥ëáQ.µŸo*ù°¥TÌ°Âr¸³FµbQ",åsˆUK@—[wq”P[ÙC{£þì¸ãžÄõY_;ä¬TL`’7dsž ɬ’¡ÌR‚~öž¡JŠÆZ~æùé'2ÓîÕ¿7î„CL ðE¢’¨ïpÕìsrÌòÝßd±)c>g ÙqòÌí>š›œa%HHKÌ[-Hû̧ì½,ô;¢œ÷õ»tªùš7µmaï»»báŒ&·›i"­0}¦‚9Ï–Ç£Fê8§ÛãŽÄ©Ñ—mŽ¥PÑÉK2Àîi÷l9–Ë‚ÿþ%qÙo:mß\¹¥÷l—}Éóò_Äa Œ»ÌÏ™AÐ4ô«­ñc ³Ï«+ üGÛ·á„kQŒéàÆ(ÐÊ÷ø _÷±±Þµ†u üú©–óÍ@°÷’3¥¶11È‹-ÒnË} -—²ÆËHõ §ÂÚsÏSwÅa¦è׊µœ(*êà”îtï^€ùD_ž8×]×àÀY©§1zHŠvp¾ÓÊ{ăúFô€lÜ #ñ|ðžÍ±9Z(µkNóñ¨¶úfF ÏÑ¡W¼»˜Ocw©/þ`3tº“C™r4WÚ}S†>|^<°·K¦u6xì6l¡µƒjÔ1UùVÇñv]Žtn‹Ðá+ÄøºÃRØ\Àžä)pØyH.eOL&ªæÄm—€=Ljê2CfuËeøƒ=4Xg^‡1sÄ^ËÕ«×~%/ëŠÂvÕîCóõño)¿plL?Rà$ Û´W*±‡ÈP; éëIiôM¶ŽÒ´W‰nŸÐTX ˆd7Ø›Ÿ:àÑl¸z”„69˺—¡Vø°{ñlfoI)î|ñ„­¬-¨.~ºI²<èñÆÃäRS;ÓŸ›ÁO{4"Ûª·_©l^úK ¤±>]‚gI°NÞ)` _ê¯Í„ŸQªý È¥‘ZŒ¬¶ýaá|›í•›v\Î’q6ÿûqÓ:Æ&¯4Õ+ÿÙú©Sƒˆ¡9ÞÜ!»Í™>–u‹uè:\'Ùëz)ÐÊÔðU¦¬ô˜ïeÊÖi‰žàó›ÜWt¸=m~䘙|.»©Ò¯Å%ªH™Í dµC¦xa1OL¢ög¤”Å| š²¯~èäåü°âB5ôƒËDÍ]ƒ0vIšÖ¼_¼—¥òís©ÓmJèÙç1fg¬D^©Ö<_*ÞÔJï½8+p7íMë•'ô^X;?Í ídxá{ÔÚûÕ6[—ì}”¼1ïÂÁ´˜]Û(p_ëöEá$Ïàñ4‹/™<òù¯û(L´6Žç[Ó¨J®ªì„V(êkÛEO.Ò‡‰«'!\ƒžÅÔo×8!ݢΣ¾<½V¬›Žb›Ü’íÔ2wÍXòÜKŒÙÆŸ†Ö†‰Ô¿PéP^PZ¬Q4V6urž›–çíK»6mÄÄD‘V -CÒ¼«†æ­É¼‚œÿ l üÂIÃÛu›—ƒ“ô²8¸WÔƒ€¿úÙÐD^b °ÏÒý ‘á‚ú‹rº„œ·NO¡hÃà–†›Ïé§ -D3‡Ñò'_üD½¤/ðª¶ú¥0Áía?lÚš ¡Š•gˆ9£iu>W%ã¯y/Ç)Ó¯pÖŸ~qà]Nî´€ - ”Š²‘©Û_Ör²ÉQõUKŠv)UUçÍòó›ÀH¬0G’v¹êJ Vè`{œ(cÝìêBzl©£Ž’îûä$8ÈKŸ9LïQœoã&D˜¨ƒqäÀ Ë®o½¸d°Œ)„¦²¢¤±R?ÔðMGø®9¦V„Úi¾Ã6žš‘ˆìh,)ì¥E,'VOHü÷ËBcŽƒ‚†£ùlöïˆþñ^Ab&?†æß.:ÍøÉp -}Œzöµ‘îâ¢+MÓŽÚ[9(ÖR}¥½ÉS}¶:@1ÿpW¤ô/S^{Ä)p!RjyÝZ¾OcÔî”™©¶Neu ® j(uÖ7o¶{=Š'L£­¼uÊñ²2N…’}‘,‰Î&ô#u;S¥\ ^Wo. [Ò\L¶}5¿¸9B µÕÿÖi‰ÿ,Y.´YG¨xìlÐØi<ëë²*ùü[%»g¢ª‹ïˤzcs3ÚE4—Ä¢ÌA³ùÂ6=O{q÷%É'b© Ï›àZÖ.^7ÃlËy`uBl”j>§§²Ãëf•fPYâAoop+˜¿§©Ç£j%8 :§|6C!ÿÙûŒÞ…/ˆß,EÍQF-ð-àËLָќ¬ðÆân0€å‰Á$`©Jfgë{šªô½Œ÷ï¿Ò†È–ö^Æ‘–üšðdÛfA‹sÓ9#_Ùü…CàM¨X™‰ ¾Œ .šØTÒ0ã¦( @N™¡^6¡¶ qqËhªõ?¸wÔÑ[hïXÅ6¬ç»ÉQG¿˜OWÂíx³,Tæc(àØ$ps’~ìWÙ¼„‹‘/6Ü=Ø¿ 3ÅÉÔE»&ñâé;êì&*69ªÞ9ª$]‰t¬ ´YÄS¬¾óÙ+†'=X )íKª€3E{I ,e/»h–§‚ÀZäTºô›‰îÜôD“ùÃ%=…Α¥²…:"ð$G •)ÈMô——ö6³Ù]Câ:Ã^ÙÙ§Š7X–<‚ç«zqk¿–êûÔV§À7ˆl¦öm–yo¾½­†ýáÄLÝ}xîïO*q¤¦zÓJ”X¦­‚§ÆJæ -Hù€„®¦ú´íŒ1³¦0Iº¦~ûªÆkFóüC§§káWrQ<\¾A¨;{® Emkîw=|jaŸi*Y™eNÒžT|Œñ%(í›ÊË»Þ7C oõ¹W/sY§ª)ÖÔŠdCQUW4FÙô@¿¡·À¦7’YSÖEžö¦Ï>ᤰ~{"æ†"4ŸÖ* Íˆ9›"4bÌ+%q‰n6êÕeÔ®Êsná/Ïea¿rS“æ~( -JÚb€é¡^Z$Ú#Ä}=ù¥øº”"!b¥K„D ‚pćG'OUïL§;ýî- ¬ B&klGfž{ƒÚŒ‹”ÁЂæîP1~*öõ¬ôŠÓ±j·›j°<ƒ²’ŠCkçð˜QX›EØÆNÚ«PÆIØóò{±nöVÌŽè,‚7JŒX°ó±®Íɼ×öB‹)•¾,) c ~ -è ñÓioûã†tžq¤]Þd0š9¡n×D $ÆçÑgٸО:tô©=sN¦§K–*½¢ÈV5褌ìJ€Ð¯1›â/ÔPãW°è—Ÿ¨¢)öt€Sé댌k`‘\2ؘÆiM˜·18~5šM†wAËš`ÎEæåDzÐQmŠp§ÜÝɶ§à“ýUsPé6ì`%݆é({ gÆê –f7zÃÍ{c)¢ -¶~5äÑ©÷”³ÚÙd¸ì®ìgí£|ÍÍ¡ÍVhz'¹£LöJ§Ÿ"¬ò”¯}ΫP‰Îê˜Dß c¨¬¹³5Ç›O-V£§™ìÑ™q®Á} ¼Q•PDvs•£pº19ÁÚ\Rê>Áf?fÏ:دZ$‘eá•Ã‚Ó­¹Ý¨lýQº:ž4’\–å -õŸ¢ÿ*Çó܃“K4ƯêÕÇvUHnÓm.8¡4šå›ú÷¾Gˆ&qò–oËBzvß(4û†²ëáýµµÎ2ÕzA ȗ؎Ȳ´j‡ GaTU=$8",ëNƉ}(Û]­õ;[jÝ›šqëEI³;;÷¦Ž—ÞMRÿ€‰G¨Án•E:ÐæmQó@=9=(ŒÌ÷-µv¼W -@ÓèåÒçÚ0¼y5˜vi•%ºŠE[‚ËÙ&ùÑaÊmÁHxšß÷8¬Ic>êó¸ˆf…EC‘Î|(îЂí³Aÿ"[3êq/X-ðœc0ÊÁ,H‘@ßEÄÚGÅMÀ}t^û’‰lËyp[¡H4§_=ßÑüͨ¼]àYR–€ßväô?á¡C«“Û^xj~Doä0 %¯k=\rV6ÍßRÉj¸+ŒÔƒª¿}d8<©HjÍqÚÐ<ÜßCáEÊÉMšÍT  fmåüƒä?j–£ñgu¢?t ÷¦©M¤Ð|AG¢?‰É~mÉjæl"ìx/¥Þ:ô ´¥Á¥©y`%šýˆÙŸr;9s»g4Ò Ý°ëmÁs*…'³(Þ\Mºï™t(¢ä\°€Â1µÙ"%Ïó0ŸC;ziz–í¸ <î×ß–ßrýðo4XÊñ›ù µe9&½M wýÔi]_þŸxéÚô•&Š‡ðøáºBáÄôÝ›5iˆáý•ÁØÿ¾ú†µìË+^œØ £w‡H߸|Q%i¡F—€ ûÕ£„àÍx>Ò2V®R›~xs¸ ñînwòøÑþÔËÈyµìfþ~®`ûÆO/±þsm;ÝIxÊ¿Lî¢Ç¼|Ùæ«1/n­pg—OdŽéM¨¿EÒôïÝS€\KËqƒ—aÊ™ÊDR¤ «¹{MµŸlƤ0‹…Ü´éZøXI2 Ø©ûøm™žğMÏFrXÅÆÕNÂ÷XÄÚ†mˆ‘kñf ç+Îë)T¬É±ßKd’>¡ó@íÓAž_û¯²ŸQ•j»9[¨áGþE³gvÀŠÇp1ri|R#ÉTya£?ü]yL\÷( c[šd¸7ÆÍñ” õӢ͒Ô£÷Ç¥ƒˆ™dÙ/þ U §ÁÞ†È+«£‘/1ðrí ¬·,¨þø¸&¶:0"?™ŒÇMxÙØÊÁ"±&|ù-]Ž½yá ž‹Ø›nLúÔ±Ö¨"îÍ»/ô ¢H2]Þ1©^ëž·]i›ž©F­Ò6TUÙòJCdvΞ–.3äPÁ† êWeë ØÛq4ÐR hî>ïŸ:„{m\ÍÍï+çÛî™{4üÏš³ðh Âwžê'áúk.­«e’SŒÁ¬Ë_dÃ÷—)C©Bçü(ڲؽ JX^”ÍkF}î~´9:h ·Íž:xZ&ÐPŸü“Yêßb—³ZÊ’9Çv¶¦#¥)¥N›0R#(8xÃÜìæšÃ›ÏbżlÐOSUr:€Ç–$®·÷d#@ ìn SWm¦I¤L·‘'_FÆö¬•ÌéÇßMèÞX·ùoB]’ÇÓDŸõàgD#‘ððDÂT¨£ÔÇYqP3P´[üj¥Ð¾Èt­*nõýa!Š´Ñ¯„<*¶icaÝíšž36ˆ$"yûý@’zšeX ©ªœ³cgÅ%Yü2 ©lý§G…ŠÞì¸Âêåù7ª«ýœ®BÁwI×!ñ1ƒˆ÷òèYëÕZ¦AÞØ(Eî¿šwcÙY@w1¨¥ç…Pœ7T÷E`Y ~¯ŒMÿáä¨ËxÎ\ü÷)>Zô‡wVB1M¹\Ál„zXÄñ«)‰ø6K¸¾½o«VŸÄÎhÙœ{wqf[‰R &¯ýG‰ÒÞ`fÈÎÈX#‰ˆy)tÕ‚jD¥¢üÍ„+œîêXßé+ -xÙÛWØ¡W`ŸE`2¬à?°êµ¼NüsÀâ›zé$C=Ú6›°§`ÀgwE_““jÔªŠ´5wÇž`¡o!qRw—I?–ôj€Ì8âÉ™˜fym¬ôõÅ•Gôg'§@¹F¾ùÞÒ¼²è‚I³âOkd#P®éý诚FµË&ݪ‡…ÌK$¨)µóè)<±Ïè—þ³i‡+•0£Àéfê:=%ìKÔõV\ß‹dV?àVɳî(=X¿Ñ¶£XÛ8|LË> ô\§¡ÑW‹¦rÑl C»óó¢¥Î‹L >ð€gÓÊê†|¤<}å<¦Z}’ÏyÑ?ZâxÀ å¡ii* t ‚–Tðh «œy‡aKEŠ<­_+ÓG‚p\Úœ µ`n#Î#Ç‹Cí/äuüíà¾@þBôˆ –C÷l¸ôÛú-œ{B_ñ™W¡ØÊN¼Î’ ·Y†ú¡fm;‚Ó û–H¹©ŽûÓïáž„ü3UýS‚Thw]t`Ì—X®ÿ2a«Ã7 `çºRyÒÑçø⥳¤'Ð2+eÔ†Ñæ#ÚEe*·÷íÞñüÓ[Lb -…¿&×2öxýy¢!?xßš»yÿ¹ÎZØÕš»Y·^H&^_‰™JN?å˜ c¹N µÃ8XßæötF‚Ó¡(Dù{N¸ÜÕ+­¤ÂiE–ø‰b `×õ™ ’kœKð& ݘL};ú†]Ãs<«ÉEÎRCA¶¾[ÛÈ‚º‰¸I?KµÚªÆ‚e¬ ‡þÆ©öÉgÂ怞n}§õ^™¯Gÿ86âÕ›ág¿{…òQ„74[ÖazË|“ŸÎZ™a\ª’f‘™ÅLajÜ(X±î>TF¸¿ëRÍ03þD|êV€ëœŸdï$²àgº,&ý|Ÿ`r"kT5BÙØ—1XjKuŽÐ\•¢è¢dÌ*úcò§•+ºá§q%0¸wÓxúã­“@a¯¥ïüìlfÍ4'¾gÈ@U6V/9;%t/ícPyžå ¬Ù‹jèÎÕ£ÐMféBÕD1çôÃkò›y)"¼ñØ]³f¶ú’®¸ž,ÿœ -ÆzA’oð>ßê”pXjÝà8’¹à˜š+«WúÐ~]Ÿz\µ¬‚E™I¢†äûÊQ™Tñìa 58ûÍL øZ¯ê«®0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -11 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-36 -251 1103 750] -/FontName/CMTI12 -/ItalicAngle -14.04 -/StemV 63 -/FontFile 10 0 R -/Flags 68 ->> -endobj -10 0 obj -<< -/Length1 3616 -/Length2 25238 -/Length3 533 -/Length 29387 ->> -stream -%!PS-AdobeFont-1.1: CMTI12 1.0 -%%CreationDate: 1991 Aug 18 21:06:53 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTI12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMTI12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /Gamma put -dup 162 /Delta put -dup 163 /Theta put -dup 164 /Lambda put -dup 165 /Xi put -dup 166 /Pi put -dup 167 /Sigma put -dup 168 /Upsilon put -dup 169 /Phi put -dup 170 /Psi put -dup 173 /Omega put -dup 174 /ff put -dup 175 /fi put -dup 176 /fl put -dup 177 /ffi put -dup 178 /ffl put -dup 179 /dotlessi put -dup 180 /dotlessj put -dup 181 /grave put -dup 182 /acute put -dup 183 /caron put -dup 184 /breve put -dup 185 /macron put -dup 186 /ring put -dup 187 /cedilla put -dup 188 /germandbls put -dup 189 /ae put -dup 190 /oe put -dup 191 /oslash put -dup 192 /AE put -dup 193 /OE put -dup 194 /Oslash put -dup 195 /suppress put -dup 196 /dieresis put -dup 0 /Gamma put -dup 1 /Delta put -dup 2 /Theta put -dup 3 /Lambda put -dup 4 /Xi put -dup 5 /Pi put -dup 6 /Sigma put -dup 7 /Upsilon put -dup 8 /Phi put -dup 9 /Psi put -dup 10 /Omega put -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 15 /ffl put -dup 16 /dotlessi put -dup 17 /dotlessj put -dup 18 /grave put -dup 19 /acute put -dup 20 /caron put -dup 21 /breve put -dup 22 /macron put -dup 23 /ring put -dup 24 /cedilla put -dup 25 /germandbls put -dup 26 /ae put -dup 27 /oe put -dup 28 /oslash put -dup 29 /AE put -dup 30 /OE put -dup 31 /Oslash put -dup 32 /suppress put -dup 33 /exclam put -dup 34 /quotedblright put -dup 35 /numbersign put -dup 36 /sterling put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /exclamdown put -dup 61 /equal put -dup 62 /questiondown put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 94 /circumflex put -dup 95 /dotaccent put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -dup 125 /hungarumlaut put -dup 126 /tilde put -dup 127 /dieresis put -dup 128 /suppress put -dup 160 /space put -readonly def -/FontBBox{-36 -251 1103 750}readonly def -/UniqueID 5000829 def -currentdict end -currentfile eexec -›œi_,+õ`ôÀÕ"WºÎ僥É99>'´~ ¤}(Jܤ—×r¼¨ÅC8ŽmÀÑâÄ”G@G ö^û7°…+§©  6Ð}¦¼µ) ¹µžþXw4z<^efªÓ2þo¼ÎÑAx‚*;Öxu&=k½ K¼öä‡î­`ñ»"Mº§&6•Bh.”Y¹Q²¬c„”ˆ B¾N!u£Àgå”[üÓÞŒ>Š¹€«`á÷ÂX¸]<„°8×Ðõ¾… Cþâlß»AÃmËU.„GÊgŽþ¡ÒuèU:"c±@wXvƒÞi¨õ¨farf„ÐÐþÓà7îF†' uÛ³YÏÜ]RoÊT×A2„õÝ$qàŸYô¿ñ©êMƒw1ö£n^¦•ôïÿVi·ö -¶ßXœ ŠHðmÁrCFvEÚïþDW)> ÄìxWURÞ*ÇsñAx>ß³®-*ë<¶ž°Ö+ðG€™|œz"‰oEkxCx,ÍÔ€Cu2yFÓÒTRI¤ÒŠ6M1c‘*hŒèÐD Ò{·Ëț€(ª²õ”ø¶Aä[œY‘€¶–cîðFZ$%ªO‹)ÚÞI0û3[#ëQï:¸(u]7Sêðh2eI{µËHL÷¤àúj³í^$üÆ\îN3“a"<ɯl¢Pšq’™T‡—é¯pžQN¾þaªx¦:+{=GT/½cãæ¹ÇÒß÷¯ë| Œž*RªW„N°~þgÛçмØ|†ôê ë#síñI«yU—ž&­AZ\)ÁßÐ+_x܆==nSzÓ´ §e)ß9U—ª×ò-Sí~W<æ áyñÈæmï…[T'âšzîe yôî4 ÌJï&;º1È)ïûÙßhÎF¸ýÒ€ ex‘8¦Æª”ÿW‘U’©Ná¯@NN-.F­¨6‹ŸÃ‰—šà]ºeXq.|'&`ïVÈq¤g¤ŠH`é£> %IíQ¦?·KDêçI =bA*?ÆõÑQ=ˆÓÔƒSÇô¢-…{µ>lBXÁœžïû%‘’†!ˆr¾` -»Ã,ŒerÜÝ6¹œ 2IÉ»~® 7§$®?Ì8D¨"Íxé6i0¥`¶Ž*KBmfqAÅ^á)Ì@! fb ofÚc)@·yª½¥‚ P -c÷ãkשTX'è¥ï“7Ý?Bt[_,^k=Yßkzš*ÎÅì ^@Ž$'YJšÓÿ@WE¥@ýe¯Ü¤k¸TiQx·n·æ—ü€¿…Tä*Ë2ö ¼J뎿(Ò”DLœ›ÏDwh…¿-û;XØàå~à2¨µ»öxù¢9`¹IÙ fî¦S·%6 Š­¯8Ö쓤¹°Õ͉°>c_þK¬"/zÝÕ•Pá ÔлyCK;½(ý=[Áï™ÚÖçR»šk-ƒPKŽ-5[^<ñŸþ 9 xÈÜ!¦ý;QЩ©H'—<À´_îÌšX¢1ë[&H\b¥B¢å¿y†J™!ÜúåÓn¶ø¹[¦…(åÅÿ@4CHÐ'ù@ÐXsO««±D°o•GÐ*mŽ‡·¾ 5R-t…k@RÎÕ…Lž} 5~ÞÄ€Ö•¹d:±„âPº:³5 -d}¹Ò‰¼^Eú·F‚õæÁÝôJ³´¦¡OÑW‡C°‘2¾¦6ÈÌ`”g¸Î`öŸÆ*°'€&qL†ˆ9y¶Bc9\ˆ’á-}aH™å½ÛÜ·@t© 3F+jëš¾ŠÄµM±Çô­6xz½ãRpg‡Ó—·Z”ˆ;Ï}ò>(Þâ¯ÿ/¸g¨i'öN2òËý„ §Â%±º…½šI­º‡tˆ œáˆ ÒwÏ×F3…,îÊþêõ*€Óc•À5S_exž¬Þ178¤dG3CǪ¤?»^êx83šê–vþÛ\FΩù_UdHk:X÷vHù‹Aã°?•%Ÿ8@е”µêPÃK6Ï5Õ™A”ãæR:J_Ÿ¨¶D¶ÈyÒ"hM"N¾m„J±ì˜° Í#HìÊ¿¨ŸE)@çǦJaÆm@Wc y^˜Ž†oBv!ãå³ýW´ ¥¶­Ctq ž¦¬ƒÚ4;&ˆ.ºy-FõÍ´Ðâëi”Ví¼õx‰z¢¿â\Êù°õÜOY¼ÅjŸ&·?ǃqÔ²tý–sònãi—ó0»¦±€»º‘xênDÇ]k[ôoÅæÞîKèR èA­ß˜ÊC \~xáÄ6}ž±So¿7adB;£4£×ÏfD–: ƒg´ÊÛÇLÞóÃ’¤´ PÔoqž*.qEd±¿,ê9fïÎ:7c Еù8eǘáÍÜÞ&φìÉ‘\ÑV]ÉŽåÐ+ÌFnçË‘×ú- ô:Šgžr¯æ3®‹T¥Â·8{»8Aîü -{<Îf\i:ëÔÓóªF·2÷ðbëèÎz©tµñõ…¦ì¬õÔ;/\Óå]¥Y¤Ù›8áðÄÒsÎàoÿg† Ç¿>ÑÂòe¯UîäðÄxѦKï¡4ñ²ÏÀÄÊ(MnÝíQz$µõ½Cɇ0 t ï2¦'AáMõÔ¨r%  {ôjƒ¼Â=Ä7¨Àˆh]ûA¢»zòQsk/œ)zÛ¶f­‡¸ªéì½CÑN£q`« åä"Y ç×DQ"±LÖH¼…„ЄǺ|0Àèý:Êëà bIØáUq•PçsòVìw¼}®œã<^ ¸“æ­º°wÛ®  t”¾A†å˜†i\Z•–t¯þš7ÆzsÄ{{T-L52HS´ë£+ˆ"ù7‘ÝÍÔ,z XP,ä7'NšŽÖïzLR¯aoÜÄóz!ÖŠUÆ3UbÂØMt’Û@½µ]ìo–DZn£yågêæ\‘r[£˜6G)“zÎAãŒZÔ²Eiýûø_Šãöz¾éº€ -MQÚõi%I’;Ü|g]bBù -CÍÛþÍFb8‚NC¬äòZ­@å¯ån畱 ëT'g¿êi:Ñ1)ÀR¾·Y‘F–f¥ä\̾Ïn@žÚŠ€UÛº•1¡ñ…ßú>—He -Iö¿œƒ¬Æ`Çy+<^—ÐËíùW^AºbgÄ¡^YÅGëÛÊï–L­.þ75ÄŸAÝ++Æo:â΄&Óâ+¹íØïïüÁ gZè6Žºhd÷k*‰Ü2jžK²>]Ë0ˆÈʲ»à“]œÍö9cª({¦˜Ü®*`9Lô7×ügŸÓĉº~ÁH¶è—¸“N¸¸QøÍÊ$£f²+ƒõ,ºe8pŸ$ÄQpü#ùȤ°Û,‰Éñ -)ÊA6#â¥\{‚Ú|׶³–¾8QTzæ饀‡£—Ü1«÷ä‚iä#ùE›îàAæ<_”@/ÓsÇ@S¸)òö:d™‹±¥ÿ]â®:O²hKH.Ù«_!^ø§`mqÅðLˆ”oÃŽÉ7Œ¹ÐÈz6V¹SŠÉ6Jåòø‘‰›œ*å¼XÄLh›IZ=,¾ÓAÜÒjPÄäŸ+鸞=RöƒUŠÏ®Ïá¾YäÖCet.0šÅô¯ô8zƒ¼Ÿ¾ñ‚h€]í¯n¹s­Ž×ÃNî˜ÐRækDBÐÉìNRX”¦ªÂtJ•ª·]ܹ!¡¨Ùc³Ÿøû‘>ª† ™9ÕóÿV4mWS‹÷¢ä5œ[×9«s 3ðèéƒý!š…â;h|ï´4ˆ3|&^FS8çe*­GZÅòþÍÀkƒm€]°>¦æ²]e‡Ž*Lž:a r¯`~6Ã-S„åe½€V>[ãýÌ×Kš…ÿ¬ çŸTÑ’M$:KÇ ŸÌΫø”ð¡œ#ù€õòó]ä8âLŽç›ù>¯ÆÊà À$`\̇-›ßóp=Le°^î -Ó ¤ŸÝÓP¦˜ÒÃ3÷TÑùˆ·åÚ7Õ·ÔýIðd¥7“™{£ÎLp­S„4Ïím°¼œ=r‰ÜÈ+¬Ñ†±v ôíº°…Ò+¡ÐÕB­Òå3)Òü$YvÔbáýZÍ4¬4`4jê †wtq<ñ)¸-ù¦R)ò=¶ãóæ+Ðü ‡ -ÓWƒ) "Aœ¶ç.סeéZDýÁì)ªTT¯Ö@èõLF%§\BYûâp¢šÍ)ûð&ÜÎN„õI0Âä³üRag…×S©&š ¥ß a†šÉhÛÉÁ¹NãmücÜæ®°ÚÁhYª2Z‹ SºhóºOl%d*ÛÊŒìišÿ,HHwª,®dûÈB3. FLSeX<™L Ø9¬(ìí#“šR˜#}s1•uª¼æQ¬ûøç2MQj·ôÐj/]ÜP<þÃè‘#^·lZ¢è³D¼«fèƒm#–yÔdØu£Ê]ŽfQ…%é5®ÉY×ö7ÊÉŒ1¿â#ºæÍôÌ>s$¤Î×&bdÔÅ©.X¢¥Ô 5üšëÂK¦Ãcä'„ ÿ›ÆguþfH–¿Ë^Ú?MTóç‡âCÄ!Âœ>ÜEäîZÓrÍ 9ۯ˓Ҧtl¾Sµ‰œD¥»«S`zå¤9Ð\T®®Ã¶Ì?=€Ý¢]•QXW ›!±ÐLòU|š së9ÿË[)$ƒä?í¦ú>é [ßjs X&嶡ʸÒ. -Ì®ñeztyU“פΪàóMd•®†õüKýÛ(+4®ï#ÇÃ~ð·nW²vqU¥±%:觢ø¿Ã÷ ³ŠãÊ7}lFe„0PìšÈ}‡™(l¥±OÄânX§qZІ묷²4'ÛšL3X¾5Aó€í™çedû}­×«¾”¨Ð¶ó´‡ñÌ·ÐhŽžº¾$Gß,Ò/Á—ˆeÔöã·æ*_S‰yà[ 0•[1SÖ‘ð‰™%˜Î”v>æU¿] ˆ¥¾ ¬ü|±ÆÖh­Ö—1dí -E%sM -Nü©íÜž¯>ZÅÂ?‚é3ùòïÞ|o ¬$“|—‡ÒM¿dG‹=Ó×Í•¬K 2š²”â7[˜Ú¤ -¥$s«íÈø{ü@&!R¹³F¶MŽ‚5_T8+— ïÝåR3:K…šáÚª’Sàg‹a|’sT°v¨2¹Ï‘ù*œðerèW¥ë÷£Æ²Åä÷A)ê2òBKVú#ùÔ«æëÁœq!8uó\Dl°*3uÑÐ?qp:š6ú˜N²fd;8%‹ó抬w'sh㬀`R<·"nD¥gUà2Ïd'èÍêà*ó`žÄ“R !QN‚f=k©ÉÇFqý\gîsÊÅ—C(CåeEèHŠ-[j)RÀ¤*Ýž•\ÀæPv¸ -Â)4lËí‰öo¦ÞŠhÅì$ñ4-]M% \»£<‰:nZÀÆŠ‡ýpzfühfïç,R(¿ƒª Û£ÌâȽ†ˆÚz ¼uÁ­ UÓaàœv7™(+f»…+ÂU㵚  šCÖFAšv”|º_ÜŸÔj…Åÿ¸[:z‰ÿ!|!&¹T¹UÀÌ®/“Ä !MÑç¿…—RSx-PJ{™Ó´´º”¾,ŽüéW[ÇŸa´Š2\¥ún>è%ÆÙS”u½®§§ƒYqÀXyÎ8!KKW`?îá)ÝÉŽOu>%̱Lƒ~]iŒnû_ -ù­…ÚM ÒúïCà#.K£ÕL’àtîLùÎñ¾!–z,åŠA þ—×érßÕí}ÇêgL&H:Lb`¼§ÿòÜ—ɶ¹ð8fY¿}!9Ú[EvJxz–eMkc3C"íc6:ï-çö6ÚOÑݲŠ–ÓÆ™ ‡aâzòêý÷ñ[mU…çèב䘳s}⣵~B˜‡%Å2ýŸ¼( ¤LØk~5§ŠÏÕj1ԺDZR^ÌF¯Wˆ—ņuÏó£TÒP¦þCMÛ¸öSW(îôjÈåɈÉrÆ÷3Þ¿Íø\ ¢+•Õy !…}$£ þÚ vbGtîb†Ü1&¾Â¨@Ÿå6' AðÂ1aØxÍeãÿµ ‚§ßqÚ]bCµæ3ÈoËPæ -!)(JI²Åk{¬Icå·Ž–ǧ R‹‹9ö”V¥´TV(z‡ÐZ? -™äRíÀ; 0 WÿﯸB„ -À ‘*™˜ÓôþÅzê9n£¿“¸#ÿæ°ðc.h-—:n›—HåSˆ1àkÎG0¨dÐul -å¨5(.‚ËòýbyÖþ²~p³º©êë/‚Ð"y$ÄŒ<ºñ¡žGÂã•©X:»1d‘—!’ -‚&Ö×s9̇ÆþU¶6FúLƒ§oí°|:š}ÏÐd -ñø~ÃXRÒgnqŒ󷛢ÈXÊJ#¤OoGµN›quQ2Mæ{Xa"dz.þäÆä^åb"}•{_¿PÒ¦¢v̓‡grO¶RÞ¹£Æùi’”°¤/ëd,;p¬I䧅¯qŠ*A€²Œ¬éˆf‚³ÞÓ&æÖgÔ& -È—'|Ì-G_”쮘‘Þüf÷ålÿ—';/•èäùJjð×îÝÿ;(u -g·ë&šŽ÷Qam11ó -³© LöfàÛÅ…ÊÁY‘üä Ö⛇Ÿäì5v÷óÞÞXÜrìË#‚ ÄL®ï°|µTW8嵕ör&Áfx7ÆöÓÿ§.ßùÖÍb‹ULðN±¾ª?­ýŽýŒ”ô £ -¯—–c›r1;.r“Ã_ÆÑllnô‚êK­•¦oþ^‰¶Ô}‹>~°ó -Ñ3Æé/53¥%x„¢·æ§25Z -.Š3[! }¯”$Eá­! ·¼œ¾ ^§ôfI~58Òt@ËŸ -ว{!¦cÆÅu/r©0ä²sD¬RÜgŽÈvñ+Zö‹MnòšccïÏuŒ©˜ûVêv9p#š5%¾Úê/ôìl óîxù¼c{, .D¶`ýøÃv]²‡Nêë3émÌ´ käâ=é-šC¹-QøáõB>àì›)Ë„ùÜŠg+ÔÏÞÑA]úJëÇRüB>º"‚L$XÙK 7~"‚&q\¬˜o”¬7ÞØ3 –®Â ß¥Ü¹p·¥ÔÚ;Ðæg*ö.<Ú{1[ô˜5»yž8®e¾ßÇqq\¾½bKˆ—ÿNeH~z^/¾í°‘»tìqà n¤âjÖa4¸ŠÒ.•YXíà §e¬ ~šˆNÀ>'œÅ¼oZ·÷õ”0ëCÞø( Ô -ž.ð«f@®¨R}ÁlÁB€v -þð·ÊºömüÞ–kð |!`%Œ=QÍnm˜¸ùÊÛÑïNÑò¤¶]Q@>Óçkל6h(¿²õy¬ÀKÞ¼–:Bï(ã#5»Gœß`Ï,Ê -Ìõ×̆'ºLñ£@‘“n”d Å-pU!ò}Éè½jݦ¾D *½–½PBt×uèû©5 ß2t›Ï0uÓÏ^r¤—[c¿û6®’%µizˆv+ûŽÏ@Ã躠–¿ð ÅëI¢ü\^¯Ì›ù¼ï¼ã ÈôõÀ»¬·áBN÷þ+Íf§ãÖí³‚™¼ý¸Dk‹¥ eêÕ”T\Ñb0Ã¥Uh~xTº},Û?Ÿ`ÁÓB¦÷r’Ýk=j¤Þ?›†ÉL† K"Ao.…o mwþ…]Ua”â’€íÖ¦©pIUTlG†íé±ûy]þœ„më.­Û|¯žô×æ˜`dg¯tÈ·ÐVsÊue~ª¢¦ÊªÔ°¬ªËø绎ãu´¡Én·®KkzÎ๬¸ÀÉ-¨‡ÂFuÃÓÀeÚ­{ØPߣH´l5HX¥É,¹wò×N½Û_¯å×"~ŸqºæΫúYìõ¨•#Ð-6$dÿ_¨êÔ9øÄh²J=œœƒ‘(Ä”²°§pøK‰—²å4\a©®Ä3:L;i[vÚµm>~dd´¾öï„à<²ƒá¦”™I -L -eԲɓïd`©§ÌÔ–u¯GÈ. ;úBÄ£÷b¹-tÿgàJÏÌcè®GùVðÙæN„ˆfXs©(±Š5ëßøop¸¤©ÓŠ9¼çñöiDC!]£lHæfˆþMüê«y§ZÆ­>°Èàþcúêe¶7‘Gõ…ë©£ûüò7ä½¢tÆŠ±0™tÚÛíîåc›sçÆG S%– nŸ>xëF4æ¿Ï?,Yè)¯ˆ@1å^ r‹’¿JfbéΊáŽ0€”µ·DÿM æéq†Ó.!=r.Zaxh1K˜3©;'†¹Gz–àÀ‚'©5Ãuð&ÌmM¬/RB®Ë_ÆDsŽYÖe…E)Õ)Õj”•ˆle¦Ðw($5?¨Yx Éöÿ=vXNªàüU¦UÀG|•|ùféÀõh„L'}l¾ÖUĶ×NZ y·lH•?YîÐt¥Vê™P ¼¦3-»nà@„¦ð,DcÀµs•É2´Mù1Y°Û˜Ô Ęøî§öEEý“œ©¹÷BŸB ɇe8”¢‰iF1øvûÖýÉý~DÊ%œ ²ÖÒ„¡ ›°y‡jßx 6—*>àÝÉÒÄ -öÀƒÂÁäB„’ÙÂ5 +VvÅù«YrŠ×L¨ßER8Ûï¿îÉsÁcz–ÏŽå Ów¥L+T’Ìü¡¬ÆÅ”Qƒ›Úa@!PŽ:úgswóäÁù%Zç - œÿ÷ Ý+9…K¸M_=s2¥ï6¹ÁÐïšd˜×»°ŸX -íTJò\Ä<È9[«&&ûá2(‡¤•&* Ü{›PI‹Žã%Ž•ˆ‹R®®é<#^ cë®E + h6æY¶1«ýÚR’&±Hmô)*eúy¶˜™÷5 ,£]Ù貕¦%g ÉGDQXœæù6àÀÖã6ê•'aLÌÃrBÝÃ1a¥Ž æ¹å”ƒ:Ζ.³X| k|ÿ-÷¡V¿Ä=”Ê’Üx’ÏOV«Š3r;zdzd²¨4y[WXE´ŸÇï©8×®¼Él‰«Ê%åµ)[ì#ªzRc^ ÎzIuIÑàúå—½»9‚DQŠ òoÒí¶ÔS³•3ö¾åŒÆ -Ÿ–ÇWé»Õp ìu°Ë»ß?¬ê­âÄ2 T’³ã°¡)ßó!53‚öõa“ÓTÅÝSxÜÞXY T.§$rP½p†QõQ rUðFÌ1,$z÷ƒŸÇ““$§šÛð¦&Ê÷>:ÓñæƼ uy,Ôö§FæBQ”7Ç£ÓÇz†Rµ‹Eàª7ˆé9»&ìuñ½û%öa¨ž2DéCjÎvDÚÚïé‹«¡ éääºÆòŸîH¤{+ö»•Ev=¨m8êdc!…±¾ÈLŒ”ËßM[¦Å3‚G^­®B%™ò¶®¡<€Ö‡gŽË´³Û“ÄCü<á˜˘é·PñŒö»U,N ¯&ѵõKÓ|e¤êvq +yv…Î(øº;¨`ØNˆ.….ÈÚÚ¿†*Ðñ³BGƒò’°“¾ƒÁhïØíÜ_ÁTO8l¸f‡§Õó|øÆb"51#K:¸7"ÓãALSbd% =ÊÞ(QDZhf倵8YV)¥qË*ìâå°‰“40Cªª_7ueôœ²ÜÁ„èuû”S’%QÅÇÀŸq±c½⑼Íœ²L95¤|ëð¥˜X®¦u.Z$øò¨Dœ©[cF¶0qÿÊÀ ´Sñ¹søW j7MùÕ=ËDÉFÍ•OêÒ ÓÄ”¹ „¬ŠÂ‰4ˆµQR_žœ;9W÷èåtU+FY7Ö̆·Háä;¥‚õk00¸‰ »º³y£ÌÿÜEÌX‘{w¨ØÚ4`Cs€ìÕ76bxvjò<¢?CPÐoº¸¬Dá ^Ý(S3‚ó`›CF«¹¼ÙŸð¥O·8;!ªmr–»ã¼ÁμIÎÝØÀ*ÈlMÙþ2”,9[á_ÝHl ¾ÀŽi:µxhD&Ù6£¯³­T -.!ÕN_Ï”5 ™›ÚDè ô: æj…!Y)—€„GûeYérÓ}~&òî²—Ju&_÷z­å"=•qFU2–Ï-SŽxù̲NH4çë s:óœ -³[Sá¹Ø~³.'98âs`ìŽO¢‚¼ìª¯Wã·¦›% ¥.?ÙÃ1É¥`žš!†·²ö~Wš3SzméœbìEh‰s“Ü»û} ¨6"qÔ>ºdú…øÅjqò‡ùš=x8=К‡ßW¾–ÑùÒ+²,§…vtºH,§èµgѽᖷB#sé>q2´í 0 êC³ç”èkFŒå°¸ö¤³îÊ6”Wœ+ÏœH‘ʯxÄçöE¬Âˆ8ˆ'2Ï¡ …5¾12ìxˆ“eU$QœÇƒÊEPÙôF«ÓíÂÁ¡ë ˜R¢ÙÞ=RÚ¶þ·§Y}=>1Ûö±ÃÈ*ö Ì[G³¦[ ú•±Žd“…ñº¦gr­xÝõ fy–Ù[inxñ@ǤW„j¾í[™¶oŒ×±5à ‰²¹2í%¶ûQÜâ"h­.d)˜ìH¶ˆìc;„[T#f5êjyK`¨s¿ë{•²æ9ÿú |„R2戬‡-ûÔ_ D5ã¼ÄÖ‚6•g²ˆD—¨ðŠt’PoGš ÓvK6`sv\¤ï‡Áw`Á³óV¦{`o™Å“ŸÊ®Cͦõ²åÖl—ؤ-\\Æ4˜@¦f‰ÆB]žEË?’7daêÀHRë$Ûä#Ÿeö·‹ª4¬_ÑÌ®à =·Œ /6>¾s­ŽŽ,‚ŒØ^†‡éãÉ= Ⱦrþ,ÀÒýÓŽ8)þS¨£t7vS%ØÉ-]øÜÊ)Yô žßŸà×O_ev½;Bxø1$ .=6r ¶ B2üÿ[¼„±åÖ}UCšN4À aµdZ^ò”bH=§b*P—iyñà]c¾”Ù©Š½­Š/YLõK5ø.Â^U´I¸ÄŸ´õ*¡€›ìjšCHLJÿÖ× ªs‹Qw¹ípY¼ :qƒ¨ñdëÄ4%Ï’S 3^ü‡Ô‡§{²ó¤’;|«%á áš0°Ÿé¹Ï³=”0Óö±Îƒ?LZW§ÀðôÎï‰ ž0ž -Æ‘O% -Ù-^ÂLÅö±Êwbƒ”Mˆ`ö Í¾Ô£r×ÒøY>&"IƘ¼Ü‡ÀÓ]㉽RrìôÃmœ³½Ü† ä–Ü}npÄîù«U‰ØnKä0U%Çgu~†¿`ÈŸ‰¦—qH-‹Y/ØÁK¿ w®=[¯Æ~–œÛ:x®Ÿ:l –v¢Üÿ¢ºAZ‹n -€ìº­f¼ø³%Mj—µVzêÚIÊ¥@ÏÕ¶×9 *7•Àee³Ü,ç½ ¼„ƒì›^úŠ &zv!]–%åùªÊ$V$ˆ~³vèÀxï'!hÔ6?ð&P©¤8Z¬°ª;ÔÀb[ŒówG—I¶Þý«Î(à3Jux—`_,¶–6åÜ'°oæEÝÌé88ÑTU|¨Ú¥âaRÀßmû—Ýþräí4®«PÎL%„ž)þò:=ʃÙZ©XˆÐ³dŒñ²Ek¦Hÿú7ZBvedjâ¢SÊÑì^ºA~·V6™,zœâ•ùï4}µ¯âv ÜoW‡ñ" -nϲu߃ñ[ï¥@ Ù±,§<ö€‹…sCÂy%MÕŽüVÐRï’xùŽ7×"ÉW£Ql+Ì8*G`¹ÍqôŒŸ«n¾ÿg-õHÎ-¶¶š½“yér-1² «³×»ìÔŠ*9o¡ñ‡Ù­/õÄÁ–£ºšïçP‘ØHC„²¥ôd! 1‘Œóšb¹€0L„.ÃX²ÉèjÔdmŒ¹†9_¬ÕFnêZQ4°¤ïËïÉÝCÿ·üp#’ƒÍÃpèiÈ€v÷»þ+XŸ´TĘ̀ëè뛑š!Å„ÿ·<›ïÐéÚ~¤KáI±*aÝXìX…=Žg™#™mR..óä›8!?÷“ñÓProî'Iw²¨]üòá# À‡ýÜ ²»W^Óóž>aƒÜå&« g”}’dG5i{©°ÄéZ)¡¢¶ˆX‹©°£.ƒÔq´$ó@îb'²vÝ|aÍM†çëWÍÕk½ø;ËPß´öÿnG6Œh¼[„‡À[G³Q÷QÃGU:¹‰®-ÍkNãg ØÜ„Øuaw©Vƒãû®O,ÚÞbósßÙ2^ØãÄs(pF¡¯° †Ù‡¸CÙéd±î3n–€!µ€!Lû÷[ÚÖ«Bm{ ²Àk”©²‚ÙIRÒýã¡Çm2Ú‚çJ@ÜôMxžÐq“ŽŽªjçÕ`µJ9î[p—ØHnh[KK!{ÂÕíÉH5ñÂR\[g)^t};JÇ»]%uÖ}¼£SŒ0CTK.Ü×щËâM|ÚÒxÙ:xV?˜'Ä=_ç—÷Ö¥ ´ÊMf¹ü§›°Åù£’ª69w-†·ç‘¼ÐÊÄޮP ÇôÝè~ÂŒ&x4A3%–«qDœ{Ù„õÙ«b[ -¡ÝÑ1”žÕ »7\žÅ íMÏgé@¯ /Šò),xb -lyíNï.²!úVÉèkÓf®4p|šù$Έé³Sg¯jÞÝ%pƒŒ¼ ´á>,6ÅqPŸêÍ‘«{_òRóŽ<°Ši`Ôd¾C·©íÀI^•K¡{aVžscã0í¯î¹~RÍ5Gþ~â3MÐæá#‘ ¯R8™µmk=ÄE±ÖLktNzY=ŠêÖc{]Ë.cnÙ£Þ”fñ¸îOÕ+[ÂQتä߉—?ÑÄ·»ÿx™Œ„«ÝÞaÙ’GæC‹ –ËI>:dØzÇ÷kî<üã=ŠGSA‘pF›yM¡Œ,ùÇ@ܼե>ÛÃ1 /ÏÑM ÆäÙ>‡øŸsCDã6Õfµì–Îåã¿‚µ$ÄÿÝmꦪ;mc“ÃË^§ÈÛ¢Ó„•É1=1‰Á-¤Ñ@k“dð)tl¦J"ŽtRÓa2I]¨„édë¤p´EÒŠ}|a˜§s×¹´m¡ß‹ -²š!'›¡`Ïüôàû«%vˆÃm?U| "µ‡”^0¦·¼Ž ¹Xza×Ë'°Ã¡øsÔø×+þ&xØCÌ -JÈçt˯ûÂËZûªcñZ½ÓS6Œrr0«zÃâ¾ñÀÊdîzv,é{Z#„ÉCr«Œ7G+ ý¹]Éýò·bØ ~ÑæºIŒÆ¾ý¸Ë!ÜM«¸²î…)Àk5ËkÍI@P–MÊ ÒH=~ïÕ -|[S]’sÉ…S»ØV»Òãæĉ¯ùÆsMí_ ‡”:ê°Rn"÷7Ø–3¼"›ÔF³}à—œœÌ°˜3æ£/Q ðŽ¢æBÜ, |¿‰ÿ$ñŸúÄi/vS¾]U9©öæó—æN†˜·¨Ã• Œ‘jñD¿’à†)™Ép›°¾¬ùµÐ_×Ø1?¡®¢$¡å¥ugl>Œàî)¯ª¿ÉP?Yk´c§,‚à‘.rÍžU w¼;%˜—|å&òé -àÖ†àMÀjŒçüK/2ÇØü‚tÓÑÆÒ+Žˆ>=l›þ[Ëë÷å×i\©v¨¾p™Ñ+ìЉoµyÛQq¥)qKXìVg -žMŒý÷àA' æéÖéÊ?Zœa ðÐá×ÅæV4­‡]-L>tN^[° ɼâËãRÇIY|’:C#pºý uÍW²=~ú'÷RâqÃz¤cÜ -Ë` èÈx×9+Q. 3ÛÄX¬´Ð£·)9Štį ɘ³ÀìÈôÚ+3þ†oXÌ`÷…%ó$»ç­ãTo|]ƒrîØúì=ž¤€+Dªªrm¬ø|LKiÛPÖZ¹?¦úH‘Š,JÅ?1æa0M¦Ô\è,™Û%z$Ý(gìÙ— ÂòÀ”ïµ ­¦Ù©z6"¯öùlóZóýÑ·ÝÁx¦¾óU'Zê¨mšSÙ,ì¨I¾+·ÅEãn"IRI£÷ra¬š•-´•DŠå ì ó.7ÒnŒî}ÜÞ4§(É·4ú@¬Ê¸|­ë€ÐÁW¢k3ØJy[:Þ¬y‡âg*ͨ¢Ü9Ç”[vEÍ"ôè]oÄnÄÈA€TƵÃ.Ú®`â@žV PÄ99Ã-·iá†P0—vëƸ]‚Ô %¹ƒüQôµ>\•¢\”&-K±ŠÝñ2j^c0…¯Ààj¬Io}\{§Í-ðˆOµDÞ^´ú`¶É–ü†õ‹Kf‘Åp’f]½+øßùvmÚfzüÄÏŸÚ&3i`ØÀÞRWxÝÈ—©ßírmÏ!7•æB)¨”ДŸO`i§¡’+Õþí”ÓÝMgµÞg”„Èh‰º@1]8AÅ-I+}©&·&æVS EÙ1Uœ ¿>Ì\^€:•ý¾„Êán÷àÇKˆ é ¤¨‹Â`Š&{q¼j$«ˆ[*ÁãúæÏnAÃv—Ó‚`ÎnA0¿ÐdyøÛ°}±Æá}{–<« ážbµKëä­9xºý¯/8dÅŒ:‰Ý©>ì9ƆᎴ4©v]›«ºf&êiýߘúKt$U§ZŠÌtë{G•PÔ]K ì–›‚$à%Tq;ã]eߺÚ×?œê6\O›~Ý¥*'õ‚ê„ùƒiç$¹Ö\F„š×]¸D¨ l¬EÚKà®äu/Ý׌J¬™L.¾JZgÁK±”Ö(â›K©ŽQù:0,DÂЀ§ºË¬ú·£SMÚlV .à#°¸ Ìnk²!nü )Øû$“µòî•4¿3f­@«Y½[kÍlWj2öèP¢€d§†œÔ‹g L랉t~*…]o|, ¼*ÿvÚʨ~ÔáÖ w&E°ñ¢~t­Š¼^±C ÌŸ®:Á0ÌDà)“4,ù±ôµu¥£f-W -ŒJÌ©ª¿l8,}Ç~= :/Á57ØIû*·êÏîÚl&߇-ò”Ù@2ø1Ùïo™ø‚þ2¢¾L­&0ó·ãÈ…ßÄqEÈòô‹#4ð^™¢<\¯áes6â³”å¸)K7†Ð'ïdLŽÖ?ž|º†&CŽoiãÆÉï÷- ô]R†ÀÌ5Å Ðë’Û œüÂjåõ…kÝÅ.Qþúeµ=9Á‘÷_$…˜ß#C—éf{Ùæjœ D@ZCϳw$< â†?4<Lw¯!K -4¾±f¬Ë©Ãš2à.àe£C¦ÐdzOÇŸ1'®xü…¢° ØFwÔ”7J9ç­$½·(xê¦v§ÊoÎÈìm*¡þiÍ™Ÿ±—ƒEâ)z bؼÄNºÜ‰"í?.åa=lij絎$äþß<ØV]€ä»s¸2nÕˆö_KïÑÀÆ -4ÁXc BÞ¾l841nÓ/Lp¶x˜¸-òvD2[ÐkM¶×^¶mt×èi15 -©,ÉîÙTÔø‡‰ ø%z½ÓªîU>©cJkRÞê¡|[ ö“²mõÍu•¿™ð DþŒåˆÌ±Nªý! ‘u¤â,³Ï9¿“—’Ù…Yh[Û‹d%8³ ×?F{u)dL‘.îÎ7&þËk¶vº¶áÞ;~ÿ¶|—JÇãx2!Ðqºvqc¡Ïó£Ñ¢®“ÍòÐØyVrg¸È’Ù²º ²I/䘰¹‰±P€`̲©4VÒ;%ù;ðŠãr×hë²^aû/ÿPG%B©Ì°ìЂÕ?o©Ü¥Iñ0j瑆&“[°¥Dñ^Ϻ"?H»ŒYqó¡›îŽïXãµi&––Û{@*Ç_Iäm6@g`Ÿcã±é%Gë/žÛxßE<2غ=ÌN·¤xü^ƒ„ÃèÓŽ–òÚ‡`»Ëu þ;‹Å7|rwRŽñÿØøoCyîÔ$vrG+—|~|'~@ljB–s-˜MÇK¿:ÑX"¡³‘Ö€ö“>´‚8¤Ç!2ÓúBENZû!-~“RKÅ<—,+ö6ʉ6„ÛàN&¨—p -´?ìD¨½ŸÐõfÞzÉSAœvó£F"ÖzêEº ¾¥üÆ/(àÛ2àžýÛ&‹hB3êÏXRrì¡p pEAÜÀO\´Á,ÐDI_E45[Þ‡jcçceóqÆ/Íjol=vË — -°Ó"º¶¾íÊŸô3ÿodg:{º(‹7“1¼ÂÅ ÁP³!L -JPƒ ,"VÚw?x¡—åŒ-¯o -ûa®Æ.äbÀý”΂’?IB«[–Úé_j$–·ó›!bR/ܾGƒ²œ‰­HBJçüñt“ëõj¸ˆûôøXXNÀÊðþf¨5?tg®îÚ¿NŠ™Oºp í¤Y¶Sö¼#Ú†‡ÒˈÂ{E—woÁÊêÁáv’œzÊ>¸ å ¼4(vÔÜQ*¼l®X<Òœ½í ¯†ÙPIa` -sÙæÝ«=F—Hz _y¹ÌAã^ëÖ…„ðï,³/T<7±¯ccêyë¹Vwé/>!ôº0·ø­†5}c+øÌ•pÈŽóz“=iÁìA¨[ÅH9[°õº'Œ–^?Ý©£päYÔâÒ¥ SÌ0<­û­lõu»©Íß=£Î9»E¼øXŒ<Ãå–ଧ™^}·ÆË¢O‚Ï»˜òP^@ì‡iÁJ¢ÝüðÍeób¹XÀeŠ—ˆ4·þïO8•ˆêjÇž‡­£šÐ7ÝäP~K l$gO³T‡Wœ™<+eâ„þ’–/uos„Œè. b=E¯ö‡û¼Å™̹Ï36ј–ž¼ÿxrgÉþH‚{Øfƒ3]z€?¥“«`Xc£´ Æàã -,:Ž÷÷ëÀP>—®j¦%Žj]åņtŒè%¤Zb¢~îË;Ó´Vz-ñ¬¡pY’#0/ß}y£O„÷I -âqæÁý §)åRO]OÔ¼nÅÑa -%˜w‚äØ8`Hé¿Oi´M_âNj–3…Ì`ùI…UÀ1³yœ*ŠèÎïÙ¬ŠÔ»YœÝÇÿÐð'/÷š+(ÉÅ3FÀ4Ä:p-«ÞYWÙÈ`'ŽR7M‚õ ±@¥À MÍ+ÍÓá¹yysÂôÜ|&§g”²ðébZæ0Û —À -t¯àÛê’qØê8{@iK4áÏ'd«ÇŸét(xFa€oŠ“Ç~I2úìwùx§ qkjQ -)ÆBÂ99í™Ðÿ øèn6·ªÛóIÜŸÏŸÓþ|,kæ]aË]ïƒ?3áË(ñêì#©È¥ìn … -%µœ˜²Y;(¸H8(òÁ¥±¸—lù'y×I})«<¤]‡zÑ0.AÅð'}'ÜGŠ¸`|˜¢Œ©çÀ#ñKþJ§Ã^Añ:n&­Ç[QYÇ -îGv,©9)þn6FHŸœ0a·‹#kIÛNøÒ†ìÀ¬c{~V=]Šn@Ö 8,G<´\%æó…¾¾ºž¤>"ÿÞ)ÐÀ{Ç÷Z##Ûô¥Èà= …ßcO~¦ÒkYUÃŽoë!ÃKI#^Èî‡úçðÝsV—§ É•îžw4¼‚Ò7}½)Ë8wñE)¼9°ß‡ñK¨^0×jÕylj€8bcªç±ÇÈn‘¬XyÀ\àŠÄúµ#zCÜO‹yë{m/G7¼ˆÍ!å8*_¼w¸<${·º•‚(† Æ&&˜®³-%Iï ì9S ½òR„ÇÆ'MmÆŽ§ãwžÚ…ŸƒR¨Tôç)OIï¡ZßúISéc™ƒ‘˜æào.4E¶mãNÍåÞôCÌÙVeÆI ì(ͺ£{6€ò$Øè–ÛîÐiJUŸyOéðð[@™„B$óž¢8ôË£̨ªþ¢zá˜CNJ‘î¦/k€¡¿Ó» Þ"ê¯ë®z -?‚›%ÆYO“Æ11ËmÑg:’¨ŸcÔ;ä@Þ1èüƒOŽpEùì`¯ÿP\ †í©z?òz…|@1+lzŽkoû-ˆ<.švÂ$Øv}Ëá)ï"³×EÊ<È+ÚpEcfÌ׬!Ú¥¿Ì&:ï"ø‡^17Þ„ >FÜë_,Dyç|lè‚Š•±WV€;P¼[/ÁN»~)]Ä9~þq ·ÖÄé8%È)Š»NÍ6Ì‘•‘hDje=nËE÷¨þ rŽŒéº|•ðñRÁ,°” ÂŒJ¢×©šêöÚ‘š¦W8G¿Hî’¿p,0Ä»gunÂzRè|Ëú1c/ú—É(®N„д7bôIvÍ„N1™ÚŽ0]ð$r—¤B 3  ƒp.^Ÿ­çùI¤/ÇbUÄ£: qZµSÅÎ-°ÒËïÄHkô8‹á¿Õ$˜ŠàÁ^!€–60&^¼ èØÒ;$ƒ¬ª5e+îÐ'd=Ç´KÞ¸“Ò‡ ¶&FÇ ‹ýã$èÝs™‘댪¿çcE+„È*sü5ƒ¶Âp«ñ ò(h&ï‚Ìý7¨1ZKú±ú´?SLÛ™  e”gøV„ٚϯw;¯?gøDöµñ†:Géž a ò8{ˆø{gúøF@n‘Ûá8­ ŒJÔ Z·CÑ0Ÿa%#Ú¬ÑÊê–”ÈåÏ•ý0y)r4yq£½È>μIÕÝûÏa [qì•Q¹#Ñ äPÞ´ݾƒ+`¼#óé K÷IÆø¢}E¶\ÐTÄŒ°ªf‡ÌˆnšTfÓ²SŠê±Ù¥ÏE£Ü¿˜Ys¥n²ò†#ƒZŠ m­Ú ¬Œ“I©dD³Ëéb¼rn/“Y'…¥ÛÒÕ;Ýo¤(›:~…N9YN¡ j)‡,é ‘h1ÞÀT yK~„f×yåôçìQº«ö’î@÷QšÔ ÕèØ­UvBÿÙ­À=Sa ͹㄀' ÅKvw§'Ƴ?ye{ $<-¡£Ë 0µ¤'Ûç/™ÁbÓœõ³«Š#×%‰‘È亢É1 „`¤ -yTP/PH 3üxaÓœÕE‰úA—7ÈP1ö‹hähQ[ÿÚ´Íô¿H[{ÝcQÓe‚£Id,÷Rx þ«ì)Ïjrüײ—Šã±s`Ÿ7E½ÃÍxP>¹E5T“!.n‘LþC¼ -¯خªÀCÊYÍ_EêSHGƒ©¬¢ãµ|5,Tù>©_9z$SKrVeãtYÊàÙv9À©¢›PqPeÎm5 N@fAqÕÛ\yË”³¸!ˆ62µ¡µÓ4yà@2ôƒRçy–!@ àŽ³"¶ f wîùðâf&`ië5^`#`†¬–ÉÀÕ–‚þxkú)jÌ„¡°.ââ‡aÇ•§xÛwN&(Þ¡ËYé?Å’ßÚÿ5÷‹TºfÕ€ÂðàÑ­õüK{wªZ-Á¬&jƒ!ßõXÝG„uD¢€T~—;Ðñd=ûK&$Ò¶Â$Åý {?É s/$¶¨u}qdýðØTÔ}_ˆÆ@`Ê–Be˜bVŠú¶:Ü›¢¯ÔµûT7ý$T°lj -c9f÷l€ -ÞÊG"nw´­¿Á•É¬Íå#2ÓØ ríBaTBb†W%Ñ1\*Ãa€ÒšË¯µuª3§ÀØ•ýùœ£é8Å©fm¯ã+sb•Ä Ǭ÷b¤¾w&‘$]ÏjçÈ -Nü$ºVw?´ZZ#P ­®ÎºÀëSÎ'1‡63¶–F=ëHƒßÔïú\ô™Ÿ”º¼å÷1ç+ßwnØù ǵæ ÉôUT[éò–7Eõ¦³}1)~rª S$¯2‘ Bdõ†ZÕá8}<Ý&'ÆÊÜÄ}¿$»'}Z¡ÄâÁÁ®ŽëSPvxè\°ñlZ?ˆ–¢úós´êÈjŠ¯²¦àÑ -ÊwºNp¯vøÔa™EÏß#Ric¿yK»‰®ï+ù¡ÊÒÏæ–å„zFDP•B ×'"Ûÿ‘ð+ïáÆ6½)Ú–g¯@iJôƒ×>Ùƒ–ûøù )2u܆\6DÞÍxUð²0áŠ!C¸N÷cwGö·æZ®Ï6-qä]<³ni٢ɜ &ŠG+a£Ò D†——´~yзA ÆaþâÍw'_ö¯ŒÔ÷§~EÂyð 7®ÀàÙ^œÔLÞ÷Gà “¾XÇ›[µƒ‹q½º}±'ô¤›‡Œ±$2˃n™ëËô·Ñ2©̶Lì`iâp…ÿÖ‹ÊWÝ’Ùk„ÅPQRpesKÂ@u"¸·"ƒ ä!fªJoèI" å¼›²Éro­vŒi©Cm®»îɃ¸¤xô§tÇÄ6™F× ßo–ë’ ¥]ŸÓJw+ÿª%‡§Ž/;V­qƒ'­MŽ¹ ZˆYk¸UÕí@¹ =å$ЖíºsóIAî{JžO¦}‘&6ž@ð*cߪ·«.SèT ìÌ;Ò»CÑhàËœ¾ñËS*NöŸV¨1d4d)QçB)U.ÆŠEóÂj(ÝçóÕ&¶#h|^Wœfëƒ} H´¶mù±“‰Vœ+å¦(Ú%®— Ž ®ÿuˆo @œ¹¡®¿v²ȵ„!’àâ‡Æ"k3¢,T'µæíóŽ),wT“Ó(¬ÒT$›^tX¼÷e3µÉØsêë3PN‘È$‚D1€.…|½„#=ó«…ÑrIÂ\‹(êP}(»T ìM„¸J¿KöÑš.¸W)#DßÎÒy -Q8âá+»gŽù•² ¡¢J;Ƴ^«t=ž9%F¾dº»=Ü“gÓS:çFW„–iJCïèÞ†ýLþaÝ2šk£‡îK§}âã7xa&9èÑ=øè#i ¾/’GTLˆ^ÿg|‰oÙþ9fùœýñ¬ ÆÉC3Ϙ¦ž)njA±çÍ Ú‹x0ç÷Hr94Õp©”«"Q$¬ßk6•Sª’¼œ†t*AãºGîF…©•g„^‰ DO3[DJ6ëÆÊfZÉésÏàå^º¿åáÛ6W0¥Rä'#7èB@²¨ñ¬pQþ÷ºfíû³ÎX`'?e!À Ô÷¹M>»è³R)| ѶU@Œ]§ ¬‚MàsèæUµ -ÛŸIv®·9ìAãøPisÛÕ±²º^7ëµ+ç8¯ÈŽ -/yazåYýÈÊDUF tûEÓÎ=n:1‰w@ä!`¦¶s´qrMÉ K}Ý6±;{G-ùYשž¾DÀ±Ùeón’äÁµh‚v/o»†dÏ›•À¤ ŒâÑýU”¡+%fp93ÞïÜbEãïøû4 U‹t´PèDãÁ«” ®UÞ> ]ÞÛ;†C¿(Ó¶ê(Î -@Ô¬6Ÿáò¢ñÊ‚µŠ9 D8<ä\QXß7„Úkë1Q@æho0 l»üä¡ÙÔªGBo‚RH”ìÚyÔ"ô›T¢±U&’Ùµ¶ÜÎyÛ=þ%¢è^8Ìt0ƒ€å\h¸™5}»Ä\&M3]U®'KÍó LRž5J:; ­W…ç´7ü©¾ ¶>­¹ýð­hRľ“ -" jo÷O§ÒsמÆ/z IW…[9˜‰9ð4Ûü,<§Ø×JJÌ×B`ƒQ@9s1ÃIŠBÓcßô1' Ä+’WpZ)Ûm”~Ø¡ Ûz"aŒlà7¶!N³W-`y ´×©NB«š>*`$;¼t¾†î}–\ÅåÔùqq³§9Ȭd¯J¡¾ßÉzï7S?ÃO˜ÃóàÓc~>gˆ¹ r½HmÃŒ›IG»DG™SÓæö9à`Á,ÂöåÁƒÂ)ÜקöMÅ,¯–Hmìñd1v©8iq‚/Œ‡á/ȸ.;6£­¾o¬ŒJ´!œzo¥nFcwHòÏÕí¥wJÚÒîòïUênøÙÜͧ¡¡«lŸIRø+%ØÄyÄáa!€&ð -Â'à\ÀýfMÞŒ,ÐDJØ£_µÔÙëLJÚdïÂëX“ãXœ!AÕ›œ2d«îFZñ&Äz0Q‡N¨K?N‘,¦oŽrAWžV$ð Fý2’4ùëú“¤9Ý<•zÜ,ƒÓ°`œ° ¡Å,­Üö…RczM’Ms¾õæ…IitHDºV©†l¿fÊg:¯W[—„^äÒ·¯šAÖ &ÒËê4j5¨Vm Ó<ಚÖ0ø;h WU•ÚƒâíöšÕ;³<‹~ f­»Ò࢕pߟŽ»ÎµAdPk“˜[S ­q—žAðO3|¹ñçÞŒŽ»ÉIÿצ3 %“Ï*618+¤âk?m(º?Às"KY†Âï‰ãILcâånÖòVC¹CYî#`ˆ·c·SÒìPíá0µaÜ× ›œ5Å©z“'øæ‡Îu$Pgî_þœéMÄÆwºì€âÇ9д ŸLGuî–G?6¢q°Mqœê?‡¨•L¾;*Ë<ŽÃœêH}ïøäº*Û#Ü”ÿ ïê“óš”x׿ -zý¤Ö+ß‘GŒ1I¦«ú ¯ÅýP5IâÞ;#ÍíòÀ½Æâ( kˆ±¹y…¤ª!u¢ú_¼È+›¥já3b¦ž=zæ:qŸw5𘋮önËÄCÐØéN\9á?$97ûËepBµðX\O·³yæ`\!³¸Që=5YLêGÚ¾¿BˆÁ»–Ãœýn•FêOðÁàÆSQ¸“BÂ1FÎHwg9äù¿x«£û²U½É|M^<‹}KnW÷Ž¦ eÿûýà”ÿ–y£õ´ì(y‰<>6û¶ÿeG]Ð_rG XQÅË—6\®ª”£ â†%aJnž‚‰0ãFLžªŠ_»]kÖâÿÏ'ÛXTqq0õC3>/m<<çñ0Hšý -Œ%OþÒÜ¥–<úð ™ÿ¡(|Ën±ñT+ -ÑuN ´gúˆ¾ˆbRA†©ÚE°U;GéÒ½úr|U.Ú17²¨iñïSŽû=.³¨l&ÉVEaüŸ9iظ -|hÃd @ÖRœJEñ£3€8‚­’þþGUTÒòöTYBÉЫëã‰$ÈCAˆÜƒ—v)GT>Fäê¨lS8Èô½BòŸAÜ{Ýo1&Ñ“BGžÿÉSfdCdÖOTZ‘TÜ9oê¬êC¼ØHÒ‰ƒöj)µzió•Øá=”gµ«G’ꬫJc÷T àOóÄSò'“”ðíœÏ7ÅlýJé…ê+b\:Û‘*ËFO!¦ü…%ÃRËY#öxŠÙ6[ü(ù¼õRʾFôÄÔè ±3¹lR]ÉìK-!€;üਣ@$ÝìšVµ`m` Ÿ&ë‡:tÄ­ «\1ÌóóAϲeÀN|ºnŠj_΀SÈ -Óþf¤ÛÕó×9¬ÐƒêßCH·0ØEdNµèôjKGÁ­luÅq=& jÞÝÿ5Àu¥.Zþ•h³ˆ¶c -ùzênƒÞìôofbänéO¸â-Ã{Ñë/mtÒ(¸áä†.5u¿5ú7c@òÖÁ?-µ©Ñoø®ÕdoT,üÊ/ðŒ; ¢ýû “Ô/þ{G=ÚŽ”Ý>VÆ®lðôÁξç&…£¯Õ‡ÿ™ÎY‚jDú—æ|¤š=!ŽŒmê3Á|D±ƒqµîã–«ÚcÂ] P øv¿Æ(ù¥'×~à@62bƒ˜¢g˜¿÷—êú È~àÖ\á67k•æiy¬cJ³æÐt&¢>:šjâ.Ûð)ƒœ«4p9Tì+F –Á9ÌCÜó„JÅç£!éš7‚+¸DZ@ÌÄù‰Òq‡Pa[¬HZ«&êÛ{ÅìCÅJ>Ew¾Vq§$öï["¾#õªYøx Óñay¹†¡Ç@pY¦j¹¿Ýê›I **q¯Ñl‘˜ýb”PÉ¡ú’$E£ÑûµA9¸ŠÀ;i.ü˜‰B§È(±&zÙ;ä.%1žðº/=qASìå“/Ä,«®ÁÛc\ŽÌ7ò_‹äî¦ñèœØõ܃¨”º—½;™Z(LÉÞÐ8±ʹP&*0ª½¦ššË7©±ÕCä3)ú`‹>K¬E^¬'.+™ÂŠ<\†ä[5¿/w J.­èÝÍm-A‘ך‚pæ˜>c›YIò›nvú#$þì)uÉùôb‡@u vg³¨¼—*ZÐýG^*C…7«:*¥vWaIß -û´S¿WØÝø¨N.íU Òúvõƒj¶&”"¬í÷*®}«¹È”Dò©LcÌ‘`~͊цç`jìMȘèyFþMˈüÌÒÁ¬3çD.’Õè±°<óˆaQºuï¤Æ½@‚ƒòÀC2æYff²(ÔÈx™&¢•Û“óó c¥/à~Ädu$ÔâdD'¥vœ"Vó]ÕI´áiQÁØÝ(+!%³ñ×·Ü›4T®jòÉÝIŒ\{t¸’`â¿ÝÄE2Ò½ýâ”Êq~Å7w—U›½±_ -OŸ÷‘ŠùÍ{2bOÊ’,i5ˆ½ŠZ‡È<œÞiZ°›gîkô4 ;=5z–qÐF¬Þ/çËb@ -•.£T,oÄûŸR•q82oMí>b]/+ '®Í"ƒ¤ù=µ‹÷ŸuÕœ5¢]Ž'Ò 8x¥Ë#1«'ðm}%‘íHŸZ#™®MŒb%M¤Úx·šîÜŒI¶áíAŠãšúRO]¬¯»Öü݈Pþ.Q[™>×`\"‘D“–ïo/÷à›VÎ8M{NÚ`<±Ÿçõºh°>`Aªt—†©ð}>C ö-îöLÒ2ó‘¹%›åÇóÍè° ‰\õ¸ %p/‡ ú“ë‚× vj%©âÍ\Iaú‡nñšÁ»Ì -¯šz6Üá‹¿Í -ñÄØ8ŒØÒ€†›Ü Iª_# ùûBYJ뺢£bX¯çJ|§&ÁØO·F!¶–¶±‚tçí¿8³n>@m¾–¯›eX‡Í£ð·¼tØ0¼²’zëäÉJ/>’kìߧ¿ì ­²Ž°yñ˜¦‘¢ óäF&”ýQˆm¬üú2©x|)÷(åÚÔ>ÎÝGŽä• _ œŸ¹Fê~}}: ZSíø~ÒÚ‚ºýìŠ?pH‰ -£’ùªXï{¯>Ñ3QÅ®µãÑjR¡fJ=ðp–’|½[™y¡ ÇÀM7rˆÈŽ‚òŽØ…Ù¡q§¦s1¹Øé¡i¶~‘CY-’ãg”xm•Ül*v›Ý?@mÌ$õ¤,MÞG¯”|ÚDR531•t`ôþÇ:Ô¸®u£¸K+¯˜†viµu‰]0Ño{/]î^.íB~y¿“á3=” ÜãÃ[4 9FÊ ››Õöø(9ñÜaLdÁOó«öÔùHY¨7èH>—4ø­xµvG’ͼIZbŽªZÄ#|i Îã¦uY)eŃ ø£Bÿ?T¾[ ËÇׂê<×ô$dè‡ -•áõÙ†ºqÛÍÅÝGpjüY Æþ¿)ßzçí9îYÎœ­m±Ùyù‰ølZ–ÅåE.§J{”ÙEßûÃVäen˜@#0ãÈ‘Ëôˆ˜léªýá©$ˆÆ’Žh»0wGâL+j—­±q¼Â;‰ÄÉhqÌŹfG~äçS›¦ Š‚½Ó°öä9¸Ìh1 [„W3\ŸEá„;@Ëþ»ÇQ9•œŠ³yh -\3%Äj6Çmå7Èúz峆*y‘¦Ù§b”áϤØXaý?óöê=ß˹Ó1Ö ”‘d¯b¥9õAå°ÇÂyK;FJÔÑ`‚üŸz«h}PÔîŠÛ7ñÎØ$öŠ7tq°°P[Èn·¢©•À3Ø\à\fÆܹ•Œ§j°Ã%Gy°Fxc¿L¿ev0©ûêláûÛ"&{Ë>l®YvEÌFÝEmRJy| Ït3RvG -nÊJýøžžÐô²Šw¤LÚn:1°"é81i?>©?'ÄFo½¸#!· ý°- ùÍä»NCI8N}×LиXxU¬Á:î‡ÝÂÑ|[«e(1ªüÃ<Ž•ùÐ@B¾š—Øbó¬³`¥i]à¶|='º"‚Yà©òjxPÍšç.§8ç®mHPËËÖÔ[¥v‚&×UäÈq`5+¬¸Û‡ÄäÄø˜¬(çƒeMâÿüuœ6åcßþi®Ø2¨rtä~?ãdÇó¦¤æK -gM¡žÁã<õõ*üü[!*ÉžRpLŸúy«f­Š<|r‰ÁåCE&ç›KŸƒi‡S¾˜, ¯£4Š“âž(’¡aÅ+úå]ÓbÌ -Þ4=RÄ/ WbÁHS»³klAH^…*ÁøuH -¹LÌíýhÇÝc®Ü™ŽíU§çf9j$ 5Êl4ÎöMbäƒÀ×Ú¹G?ƒÏÁòtM 8O©÷dæ½AçÙ )Xe§R :çfG‹nûÆóŸo–wªÿvÉïÄüewˆF^Ç.A¼çòn¾Ý’"Æh”̤ø缂f‚}ÿ" ÄôºöYX ®ñ!zêß'Y¾˜2…8É ÎiÞ¥^vë"µêbf!­Ir}$ǵ@ÿkÛßÅØ™ä5›–åÒ]שX¿Sv#l5 4)¢8_‰’ãʑγLH{Ø×›±‹×û¡±b©W´”˜Aú‡@ŠÍÖ²©’WxMPs»^ÛE†[Sì>'Çô"‰?TGðŒ¸Äó5#Åíæ0 ·7’ -^^«üì¾ø[2·qˆÙ°CÞ¸Õ40000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -14 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-251 -250 1009 969] -/FontName/CMR10 -/ItalicAngle 0 -/StemV 69 -/FontFile 13 0 R -/Flags 4 ->> -endobj -13 0 obj -<< -/Length1 3611 -/Length2 22718 -/Length3 533 -/Length 26862 ->> -stream -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /Gamma put -dup 162 /Delta put -dup 163 /Theta put -dup 164 /Lambda put -dup 165 /Xi put -dup 166 /Pi put -dup 167 /Sigma put -dup 168 /Upsilon put -dup 169 /Phi put -dup 170 /Psi put -dup 173 /Omega put -dup 174 /ff put -dup 175 /fi put -dup 176 /fl put -dup 177 /ffi put -dup 178 /ffl put -dup 179 /dotlessi put -dup 180 /dotlessj put -dup 181 /grave put -dup 182 /acute put -dup 183 /caron put -dup 184 /breve put -dup 185 /macron put -dup 186 /ring put -dup 187 /cedilla put -dup 188 /germandbls put -dup 189 /ae put -dup 190 /oe put -dup 191 /oslash put -dup 192 /AE put -dup 193 /OE put -dup 194 /Oslash put -dup 195 /suppress put -dup 196 /dieresis put -dup 0 /Gamma put -dup 1 /Delta put -dup 2 /Theta put -dup 3 /Lambda put -dup 4 /Xi put -dup 5 /Pi put -dup 6 /Sigma put -dup 7 /Upsilon put -dup 8 /Phi put -dup 9 /Psi put -dup 10 /Omega put -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 15 /ffl put -dup 16 /dotlessi put -dup 17 /dotlessj put -dup 18 /grave put -dup 19 /acute put -dup 20 /caron put -dup 21 /breve put -dup 22 /macron put -dup 23 /ring put -dup 24 /cedilla put -dup 25 /germandbls put -dup 26 /ae put -dup 27 /oe put -dup 28 /oslash put -dup 29 /AE put -dup 30 /OE put -dup 31 /Oslash put -dup 32 /suppress put -dup 33 /exclam put -dup 34 /quotedblright put -dup 35 /numbersign put -dup 36 /dollar put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /exclamdown put -dup 61 /equal put -dup 62 /questiondown put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 94 /circumflex put -dup 95 /dotaccent put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -dup 125 /hungarumlaut put -dup 126 /tilde put -dup 127 /dieresis put -dup 128 /suppress put -dup 160 /space put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -/UniqueID 5000793 def -currentdict end -currentfile eexec -€SQM(ì(Ú0_«&(‚Óü§ˆ‚¥±)þ–¾c(C¹¶¼‘¶X˜]µkÊ`îiÊ’Ï\‚ìæ.ÚÓáØ54ˆ"@ f¯e*ånЋW›s«¨ÏÊlqð<*HÅùÖ"f¯Jcuÿ` ›¬?Î4-hg§•Å3k²ós6g.DcŠ—~.©dN1ê­)ê3Å@àÈnmè«jM@§{¢uó•‰þ¢âÛ‚V­ÁÖùÌ€7¤~ÔiÅùŠ^<½JÎ@Ó@‹ÿ}Ø«°¬Wµµ¢Â -Q•{–ÄSí·Úå¯ý‘¤m“à¡3c„MíC#ñîm0*ê°$¥R1US\…Ü&ºÓ Åe€)vÒ˜Äé DÃbæ¿:³b¤Tî“Þ%ÎTAžuÈ âj„@KÙÞ:î?’ŇùW+ƒT¥Ã^ê~‹+¤ã3€!2÷`´ iŽ³Òs‹ê -¯z®–¥Xð‹a®ÇÇÖ[(‰»{™€ ÿî[¡šÉÎC{áÝüð¼¥g T;–D§‡&ÐÁZ½¹on ÷ʪ1•|¨, øq|‘¶:vé²S)Î&%·Ë{ù#ì+µìŠï¸Á£´"­a{=¤Ô–…ýDÌ!¡þ^A:³áYFÖ<~˜€wFGCwΓøóW -ûÕÛþwW†‘z¹ic˜~nü-?™úVì®d"W˜RVÌäïmoqÑ…‚p Twâ!Š7\¨Åȳ¯Ï¹gŽ»/ÀÃÄý14Å£ßkoLuì˜TfÄõ„uÉ]ƒ¦¿uH7Úùèhë ×nÄÓ‹Ù5¬ÊsáË›A’» -…?”r(ÃN’:‘3îÉÅ,bn)hÕO¤3¹p&6ûØ|]Äòx‡ƒP_BVÇz…\—¤ÞnáÔ||3é­"~×ñ 071¾¦ó]v@FîÓjÇXU©(LWsŠ¹…Þ§Ív|x -‘ç@æàˆË“Ô:H‘E!Þ-¾•Nô¹V;S)õü¾é'ª#0šÒ.ù4›l­ç Ñ›”`@\Þ¸›ña{,)zõb”X#_Œ•õ¼D-ë³M¥Ò éf`Ξ\Ñš„ªTô+oÈ||°Ë¼$™PÓ§ÃSÖ‘×{ 1È@Èô:" ütœãL'‘Ýb| tu9cÒå—”ImU®ÉoýHêý²ŸŠ¼‘“-Õ°eëÚKï'¸LC³ŸâG¸á•8d$m2SW¢F6[›+ÜhÍ×äM™Øld%e±ü7m.SH²z|D¶M:Éœ»õfZçoâxŒsEKÇ”±C.l:X»¸Ëï4]1xÈÐk&¿HZ\;ÓmÐ9°4å6«Üf2ë@8üÊàE>…³¾ØÃÔb -*¢Ú½ Ù0é¸édđîä[Y.N±)pd~*^h½¤)õ0t%|—RhøÂ5 &dme€ú°V/@dNÛº·˜&±lÿïÈ¡1sÌœ÷Èüf“ä†ÿ k-éhA¥úŠ4¥´¶„b¿úH$dÜ"ëPñø -&é)ÔÍʼn&ièC=FÔ3í‰ T7w6 %Tg”Íš:¬è¯ŒÁÛÑeŸŸ¤b¥¬æ¦­@5nŒHÞýG÷ln&ïÑnæ°ªå‰÷àðˆþ€½løìÝ(Ç5tÆçýB3±n¦1™7ÒÖ:”­vù[a=±¡'M_;Mõî柯ÊûäFo]_Hî¦*|ÜÔùA„7ppk) †ÃîÙ•"‡^õâÔ‘’ ƒ¿NŸqò–Eã!ëòñÉÆ -šm·æ)|>)Ëûz”qÝÆ®ˆt,ÇD’Ýz!uƒÉškç· $oÚ ƒ£¸.ö¿¨/ÍtØ»¦‹u@C]Ư±»ˆÑY=±RÎ’Áž²œŽè”wÍÛ¾)¸Üñêop™ é BP@O/]û¯£^p»‡ddÉ’4>‹ìfïH=ÎGO>ו=Áö»ÁN³IWÑv] 2… Zä”4/kpÙ¤$‘³|w¨¬å¿æ ‹n H‡jl¿­ŽþH`•ÚvOJ¹äØ?‰¿¢Ù¿'Y‚nÁdñ«9Iô¼t¤wÔÂM~°Éj–£†ÌX’³˜Ô‡Pý c‹¦Ö,Æ…hŽy¯1ñ;tO9Y„² -¤ƒý¥XÆ©¹ªé>z[[†Y¿1ÅCôÃpÿ°)S‡†»]³s#<óPn,M°Õœ¨êu§f+Ĭa0?O¸Sl4þ®N×rÜ´—4õ(_¯ÉŸ»¼=¾‡ ›Þ*„KM‹»¾õγŸ\­âRìad§NubPPΫØØQ5PÔBßæýÜ»n AaOè,ï6Û#§Ý1ÎoÉ#µuê«ëµ‚ ²sœË´⤩\ÿì“2ÚÏ“j1”«Ow9å´¨h§ÊÓ±Ù@o„´°rÀ, Þ|dÞõK—öƒh¬ 9àß^W3þ¬ð.ñ*Ы°€\/~×È$Ù³Hè“Ö?1¸‚ÅK*§èÚ¡J6D(óçüdž'NG‘DRpKÅjAʬslˆ&·ºÊO®¿íÝèþ;ËSî)V·¤¶™Ã<×ê¬4ã¹.:¼2…$S%™tãEd}RÚø5„Îò Åë5+øªÔÀ”ÌXœ§ÍéjŸ¿Â'g²†w¿æñðÞä%I†®‡‡¼ÍÌâ)‹½¦%3y6?û+ ·ƒ"ú²G€ûŒ!çi‡Ss`n©½©ñSRëTÿábë*Á”K×Ù€Ò2¢óÛ<ÓƒàÜã$ΪÈ>â›)€êmÝÔïW'NCC¯ôCª‚f*x¤ýnÙ‚d¦°¼bœù$ê -c[…Ö‚Âh>9íD$N‹P«’%o”1¨1×x‘¯þN(3¼Þ(zt~ˆ@œÃ } ŠOÈ m‘SCçý¨sþÿpNÁ÷E&ð^‰âEb)sÙ§‰slqæe‚º¾¬©iÆ.Xúg£¹ÓŒódóƒç÷m(9Ù_&/ŠZø}ï>Ã&”fQžhèW1ˆ9ý Q¦ÓX©:T>$õ÷épø»{ë7¾¬ªÅö- dëE¨DÁF·D±êÂÁãPâÜ2‹jƒø ²‰¨Ag´ºÆ>E=絊žùY×âü®µÎ¡Ý“^Œ]}çâhOðP)»E¯šËCŸT†W㾓Žz+Y$Ý¢ç Òj„¥×R”öåmÿˆóÂÉÔWÍÛòÓzÉ©<éÕ? Ê¤òWv)TX-G¯CÕ×gšDÔ]h.ç4“¢¸ÃâNò|„çÈy»±úÖ¼‹‰»'•žèkä†xma-•F«YÕ!cgÀ'µ°õAÉ®'x Ie¨F™ 'óóàšÐ¹Ét#q«Vi¢ÏHcƒ:Îiÿk°Ía',ùE&E„ìÜÒâvzƒoªËì¬IÃû(¦Æ"‚3ê,šïÚ‡ê,ùÓÕ/ÖÑf­'ßÄò YÉ¡F±ô¥GÛ‚uˆ†éÓ`›I[ÙAa`Wä`¹HV‘¢Ñk§Ã54©Û®Émhà !˜WûÉ.¾˜uï«¥gÌ“Þ 2ÄÊR“³¤î˱1Á(blAqëË-îƒ ›Ë˜´þ#¼cÉl!ë}œßâæ…9WÖѨWÁþGöлyƒ›lˆp.¯jY¾ýȳZvŠôêÂw÷ïºÚf³Òê¶W»ÈÍJD4MŸÓ@­Ýòܬ0XÒ"gIexÌqk~ÃDF8!T•§¿yVñnã8dëÒêç²ê7 qAIRòmhš½˜ç`0Ù.MI§—4þ£ðWæ/dFÐæD>î?&w›è ™¢x]‘À øúöñßà -á“š äšDŽ‰°í§Ìïj„I³X°Æaä -y5¦äøfìä#ÎL—Œ÷I󲸪µjîíÔ˜Ûw?w´þß\e£Ò«M ÛŽäV×Ú;œÈÚ Ê­˜¥:RŒ{V(ðe·ýÛ¼JtÃ'Qè´trŠ:o8 â%3üIxòWÒy»µMBFô úŸªžÆÌ Á™`\-®ÏR‘}=DÆ -0íÆ»Y&ÌŬ+¯®|ØíH}Ó„-:ziz‹‚)/êDûÔ öÂv†ê¹JRc·{‚ÕBTx×K^N¨CŸV çÆ&åÃï¸w©¯7¿ÌrÔU™]õ;?DQÌ)¥` êk/Ò½ßo·¶¶á”wBbóµÂ]Ëw{d:1€Fà*»ëg Ù‰-n°…<¶*ÇçÓ†§|lš8ÿÕQ^µ÷pÜ ¼MåbïÚªÎÞ4 nöÜîÇ5Ú6‰é÷XëuÂOÌN“¡÷y™òÔ9^ÒI Ë€\ã¢jGìóv§ŸH ”Üó¨kú—·ÉwøÂÈÀq¶ò²QiZ@·5×øâ¤z÷ýâ¦ç2ˆÛçU[¨.#ú-ã "'á¢^mô샠W‹N™ÿ7|že]}mäÏgÓì¤V$½Ôîvª¥ùœs¡ûG Œ~¤r‰6»QþvO•  ÃÿÑÃb#öa;"ix¸ùã\› ܆<ßC—%¦NJúò2<áÒ¡hÜWËO/$IDK\iVò6sHú1Geo×ÅõGtŠùƒåRŸ¤x~T Ü@#7z{~$Š7U °ýQŸ0ñº:2=øŠäþÿq…ùå!enÿ¸v($à^ÛÓ·x³Ä€x¯;$}=z>å†~m¥!7š wQÌlSüj¦Qž-“­ ÌQEô׈ðFê¾™qÞÿÆ·×›î ©.4¼ÁQ$Ò@[¶´âe7&TMJqæX2“ oá‡ó˜bù¼ÕÌaŸžÍúS]­ð;ªõÃ/Ì®ÿ4FæzbÓ±R”ä&1d¶PžˆÓ"]ù ¾,s©ÌŒÆCd[9LÃõÆë‘ñR,éˆ*`PLÆœçŸ>å³ ->\,*˜¸¤ÈeZ‘à=¾rätïà ±ûbätÝ®‹ -ÎP®û´{›ðzËÊ1“€Zýa]¡œŸ“+ÈÑD€ö¬N`Ô§ÃJ¬CÍ&0ªÊ¸¤Ü…„ïëV¢åi^„9P#߇ý?Ó•ăØOâ¡€¯Ù…ÁU©â*aðÅý:6ÜQJ„°}@“ˆ¸—ü’ÁÉ—$‚æh¢s†³4”÷Qµ¹ìL^×e¨ZgY`ªdNwikîhN Œi¨›Ê'~Ráú•ÃåLúVëT¹,:Š-¢ËDÉÚ§ºá°P‡Ð%÷geˆ^‰ÖTb ('>̳Œp!ø8c1;óQ®²fŸú½_\#¿D š2ÒýîÀž0ê;þ3B'Æ¡CËqj‚ºÂ´ÎlÝÛW.ÑÉ­iÿ…:¼XÀÊÏü †Ø |žÔÉݧkR?àLQ˜Cà·0ô»™ÊÔ“ •”=¹_Å+£­ŒÌdxÕËåÝ›íÎMà“Sæãšž©Çm‰ÙI q<¤Qi=#Z ‹ -=í\ò¨FìåÊõ&'¬Ûçlõz ÏghÐ¥9±ZüQƒ¹Þ)Ñžd¶KÂàuµ6fmwÝdœ}q´è…×(‡’zÀpÌdè%‘wv&Nr*¦|"¤)¼ 8µnZ dsüÊüÁ{K؆ -ݹ¼3âýífï• _ÿExÃy✳ÁìúABÀ¢­ÃsËoéŸLøåµwMzk«±ú§ –[ü£L/ÕfàÐ>jÓ„ luZ”Qþ†&£*é|îœá^¦UapçäÓiwƒ½BÕ†S\8̨ÕC©ª¨(Ä>‰¼0¶†™¦ÀÜÅX•£÷› ÇŒ#’]ŒÁ |Qú渙*(žÝViÃ1†§è8Õ £ÁÈ%XxPøw°]”<_‡M$b-Cîâ\¨|*¤U8ËjÑP‹”»߆ÏýH;ñØî(Dæ*.И˜;wB¨Aº*Ø©%hbNóÅù²ô8ž#ã#ÑúOpq§Ø'@6Éü‡¢U<~%Eâ¥oí[ùfM_´‡!¯pàC“2kÞ 0‚Â’ÉÂQâØ, ?é¤bàåçh)â;–¯®¡S—ðPY¥üf¢¶"¯bü¬QnÃ2|• Â´*r Ñ.ÑÔôBÐóÞUI6Ô[OD½ u–WX±jùÓžx§=ô.û¬ÂÉ¿uÈIâ»Ë­&?…wám`»kÔcß:K¬bò‹DοR¢h¬'wž:1{–ZD2‰buAÅ7hó6”Öîv;¾Ø¬Ä_ ïÒ$à•é6˜x9Ù,NSØÃò_ß -‚h³Šk’†SZI²V1¿1Eµ«Ë¦jnãNà 6}Îlú—2‘2áU5ø EpcŸŸÇ.Û´ê™ï||üît¬p’|©—Ñ«iÌç†h ‡Þ -©`u÷T¨ë`Æ8X=û´´ÊHÂÓ§Í@U-Ýz‘U`+=-þdê¤ý¶Oårà¾è’ªðÍq=gR0.¤öšêgZHîiÂAhçæêÙˆŸàrñÂõÓ¨'zÜž£‚qÚE\Ë5˜ú™ÅZx€sܲ&]@âÞ$ûC™éÊ€šÕ+ʸ;Ði,7¡¸5…½s j½é‡8#ÞžžÝŸ@>xçÆ4UaË”7’¥áL·Ch|ØCû0kiFØ») €.ãð–õMpt;"æaø‰ñ—'ÿ›l'<ã³^oZXkAlõ\) ­pÓHÆö2.ñÝê6ñ¹žÕÐ=¹x¼ÿ1åîžÃû–žqÀ†GW®ïP¬Ö¦ðŠlÏæZq.Óud·=Ï*^†à\w%ÞŸßYí>’CuCes^W1…5 Ùw#Þ"R8ŒLoôF'€±A€ÀÎÅ”½æ_F’Ïôµ/mµbG[ùéA ¥8ž›5tÆ/àÍEá–—ì¸Â8‹M] [‘Noˆ?pzeµuŒõîîMÑ'1_ÃïÍY—A²Îû=,µÝdâ^ïÈ\²ø€ÌjÒ œŸ V©Äèβ´ÈÕyæõzLÊŸÃîª|4¼QÖy• ÅSNìüÅ+žÔ>v•¬¯>ÄY œ Áivîøó›÷™$IHˆÔÜ¢H@S¢•˜ÞÇ +ùKÂIKä„–vÞjù¹£)Úoö.ÒjuÊ0‰u åÞ‘”)¹‰î´Á «vK¢Ä_&KWq¶«˜àÖsXÞºÝ'È›ƒ",šªšÒ2›^ÿ©H¯÷°‹M<ŒÞbåø!?JÔ—›ýÿúÉDƒÅF³^–]M%ü…f#áFï:U8 ÀÑá‚è×uœÒ´g¨BT¢ê¼êùçd [»„R#S²P\V_HžJ`dÉÅ&o‚7A¡½•ykÍ­³€R.ïŸû·÷ŸlC¶h\÷/ “É£Ž1®Œ®O;­QØ&&ˆ¦D<æ |övÌOuXIâùÚ±A0ürãÆäàbÀAêÅêĆ%5þÜ ¢ø½þâ·,ð¾Q ºà¥p¯†ê©4 ò’ÀQf ­¬O~¯µû,Í¡‹³þâp*F/Šãšs;™ÒŸÚ‚°9dôw¢ÿU€úHtö o5¤(~¬+õežBýAòWïEyŒâØàœ“þ|Aæ}y1naÍîîîÆü›òn€?\>ç@Mí øÉݾý9â -ÿµ‚½PIÞš×CxI3týÎk›odoœ¶lµÞTW½Q+ìÊí?ÕÅØ4„no‹ãû&zJgu…<äXd)OêÌe´m`M„ØF ƒ9Òà4·zIÝøWÏá‹7™L_%qê=Çéf`d|€ƒž?4w×…„‡7öS$;ïoôœ4|_éÇôZ(÷ºÅ­™)ÕbŒÛ½Ní2•ðlë‰Óxc,4Õ ²+ï§à¯¾EêdÀ;Ñ6{cv?EpÒ_Yè=4NÜÒl¦l‡ÿ ï³äͪ;ÊøÉCr‚†#ésv‹o«'ÆÏ[íÍ7—,ÂP[Ò¢o}ZÉãö#J“p¤KÉ_±|_q»C…=ÇÊf»¦Ì)úåck!Â6oˆg^Àë+ãÁ'¿ÕyÏŽÙewyC\u Ë—¥/5G{þ*ÕZY°µ ß % ý¶Õx¥Iú‰…f\¾ð•ÙA-ÑÏj5[Ç~$G«Ý!Ú# -¡^ þÁ·^\l¹ÓÈ`©^ŸÙ`ësîÑáhãWÏ0W†¨ðcê-“¦£ø†Ëäöx¿¡ÊÖ9$¶@…a¤5àr ÍÒœSªSÁt{ tæX‹:·¶kV†ªXì›þ}ÁÙ{Žæ'Éç–¹W‘pOÎF™D¼ìw®Zš_*s¤‰G‰ïK£4Û… -q‡˜‹ü1Z^ z¦Õvt0hñŒz×A¶¤¶Þ¿Z<>â_Ýà ý^ï"XI㵿F(îG:40<%$׋Ž{“ñ©RÈF:Á™|‘Ý#<Ë~Jé\Ê ä­HâÄ™9zOUŒ#6Þ•}‡"8¤FÃ$£iB›,ãHª_«BX—î·]âbd*Ñh˜ OV¡5NU§Oe´Î~–l`’€´Ÿ -ñƒ <Š`E¼wtÓ‰SH–*zî”zÉbTz¢‹`Œâùì4„ŽÈlKøPzœ -é iv™Síž…Ìõ"1g/y¸† 1\ÏÄð3ÖÓ‚ääV[ÑÒø`ê‹Ö6ØX/Ó2—/¾b„CUÉ3xkãt§îC!xTßw—놀¹=’ öCÝp²™:z -AY©¾DGŠw³ÒÌ80'mêp×"$ÉHà拶€+ÆéÑ1óþÖBw‘9\³9=Hª®Ý9¯ÖPŒœ´ýgý;ÁŒeòr®*R,u `·§Eë‡Ü‘dQ˜"{.r›l¤ž¹ÒiPÙE“ ‡ÇbÑk‘L1û_]o¡ïÉS+'¯¿sÂ~/É"Š¿r’ äŒã8•* %©žÜÒ±T®by³3è"êÏ \×5ž¨4ˆ]°æÐ{ª‘û6LýCãxí ¹¡÷ç’,…ÚöÊÅüQ)-L}Céw?&* 2x"Rο"t„.£°l> ºñßá‘gŸc1g5ÿh mOÝ×çjrF•)"Dfí! ‚®yÄJ‚Ž{b_‡,Z7#ÿš ç×}UɘO~ü¿;šnPGãȈÒkcEüã¼øÐl•Å®ÞÐ@73ëkÞ/jeÍá=æj-Û?‘*»þ ÕJm’™á0œ÷IL“‰oçl/û˜ã1[(•!ÊÊa=¥¦gâM³°K¢^­~*ÒÇ–·‹®²î.`iØG’i^ß¿âß¼"tؼ‹³U¨N4Ççr`I~ܯ·õˆÑÇf<ËøÝñþ#Ä›!°ÇXqÏåïpßm9:çÏ f.(\éÄGg/sé8æ!lrõ»«9C´ $û „(‰¤¹'ä§÷bà«ÞC lM€&÷jb³³[ùS±ì“.Ž$ï Ò¥ Ðì†ÖÀ¦ jý¶%5>Üùo:H0=Æͷ䳶çØ 3&söÑݦ¼Ù5ÕžµD_¹1åžbØ y,*ÆN`[å˾¬‹¹ÊC¢–PàºûBÚ’ÜÈ”‹?˜Å"žWþiœ›ÊmøM_ë/UÄ”ªR4Zðò³œ6vÕ¦ýà²õçt­ÁªNžÊL]®ð÷Ú¤-7ÊûÏæ|Ý>|A>aub….âæ‡D‰PqÑ’´PTpÒ(ÈΆÿKeäTøßSv‚&#AÜZo²hé Ç€»&äÿ³‹' 9Œ<»¾º‘ĘŽãØsÓ§ÈüOª {”¢>e;ÖFP[†ˆS =×4ë"®Þ®è'O¹d7ŽtN‚Çjeä -`ÚGšÛïpñ€Â®Þ–g+Uá'ו•þß÷êüôƒèl"mYˆ>È8º5#׆åV…‡Ž¡Ìo+2Ý‘®kìýÇ{˜%ÖãñŽ €!A;É^_d¡ Ôqœ×†¿.ó᩵Ï(Øe°‘e5¾kSå˜4TeôX9h/Xu0¶:;©-t Bª¡°qì¿fgÒ-Ç0/ -R™óóC/Ð8 ä;λðbc ®œb¶ÿD OúŸ…„E -¾ÿ_>á›?ÊŽë@ZÛŠÄ€›Ê„iuÅkPy®r™§ìÈØFw`Hi0pFXä6@͉æ“´wŠ¶w³y}å`®·à¾W×#¤ªbîŒB¨<A3ÒbåéËÓ•2óˆbû„Ã3íhTC–W•Ç%•eûoà–2¢Â’V :Cî·/CU¸6ÏPDvtwªÕ4diøäéq-ø  ·<ðDJ™M┣Ãs(+õ{™Rþåk zØšìy¨]À?Ò£_[‡àaÑ[e¤ƒ˜ø6xkAÇIÛô%9™ð³ ÞµÈî(B}°Áÿ~\CO•{×GuÉ€´«F¨†RÈÕ›æͳS#Ë%é¯\ÚÜ2J®ûŸÇáïM(Œm¥$‡¹"©ÉRhuË>RŠ·‘"ùˆeè’Q¢ -Ž´Êv(;$À°ðÝ+°Ó^>;ÐÕ5÷·ñõúSIÉ•°g4kch¨s„ÛÁ‹¸ØJŽE -rsø@1) FZD¢hÊ¥éï»qN`7»äòBnÒK¤²†Ä)ØÅäƒ :æw G‡GÊÆZW úáCqËýl9º¯ìšêîÐæo0åôµÐèÙÕm¬mU!c' íÚIå'+ɃðÎcr™õÀþ3+~)w°¸¬wÁ F% ?»³}Ÿ[²c¸»'ŠÿAJ†¢ø¡ñ>¾ÿ´×#ä²”q•dƒgà§ß¼ínú¥>øIÇî!åfT ¤D"ãoûtýýÓ2ùâid -Ãl:Qµ÷a˜ñ¯÷»ßŒè^~l*Ú¾KG‰|òJ{Y4IOy eÁ‚–¹wã2½…22òâ¾u_6«‹s–Jhž¨Hù÷ðÅ…á%ð Woø+±¿U}M8• Ñ®‡¢˜QK¯Ð ‰F_ÔEv+€ñîŽgþ¾‹[%X³,ç8 a*VØ$˜>µ@:pcƒÑ5º_Üéƒ;F[4$I€+v„«‘EHÈŒ2þ‘ß°‘wQØCPX¬¿ · ¹Aªn…Cé›p„º—MÐ?£ùÞK5f:¬)L•—®!ë]´1ÿý¿;#óÂgVbÃ|¦5i¨Ô{…;Y˜<‹nâE`²ÇÔ&(9•Øj}þĶU‹ÍíŠtÒ»l†Ï¹έöÅþÿÍw}×aùùîðžšQ £;„q0–Yd-³å3@z®6—>Opï Äbvšã™ì˜a®]*$<¦S‰CR Ͳ¨f3óÙ_æÖ1&ÿ6Ò‡Sœhl©¦ä´aTF|éÏê£ÞþýЛó¥XL)ÚÈ-ùA‡4°̵vfàë^Vïú0Yûì'ÓßøÚ­Eî½­½'*ç™ ¤Í4vùá'R˜BÚb ±â)ZG+?TW&›–‚£Ô Ænë{‡O&úœà²Èe‰7qf½KìO0¡K±þÊ#ŒéGmfÑ¿BY”a§Þë¤^P©¬D§X²'|ôy×ÏΈ hz®Ù/}„2΋¬ -Ö-ÿv@UMYèŒØ0"¨¤-,­nÁ—¾ûsf¹iÔhçQ™Cõ=Ó$òéyU&Ss“Ãå)‹ŸN™a¡‚£$Þ SŸÔƒáÆ°X…„£ µ$‡ºY·Ž)Y³¢¿0ÛtÕ…½ÚRàˆªg*ô -“<”ΛŸcüƒír±š¸ËòiüóÙ‚¤‹‚0zæƒ;<Ó8iRoþ’÷ÐÝVÁcÎD,°ßIo*̺ˆÐ¿& ¸VàîÑgÆì²ÓñsÓgÌ'ÐòoØ™•¢íÆÑ¢õxG÷#gSûê´•EÊhhŽQA!òÍ FǸèžÄî"’EÕ7øõ›vÖtá ´a ǵŠgàÁNcGÝè$ 0sM¥Ã˜aHR‹ò sß=Úgå34¶xd? ·ø‡Í‡¦ö5ú_­ -.ä6h¨±—:B†j9›(‡€˜ ЫQx}ò£zVMúÊM›cIÆRÀdDúIøâV:Û°ïç¸%B»üL“Èص…†¯Î–xÔ7>ÏãCTpÃ`“Q€¸ ,µ>*á²V´&àŸì_/zˆx³­è3ê9ï= -¬`á¬?ÁQpÜ?¯mfNb’Å&†fÚÛAnW8mlï!Rµ)ÆÛênV;_}ëÚ>Iînü¸†wê*­<õ(k!æHì3/yîd‰%°]P&ÎÁ½W¢.XY\ó&µý²ÿÙ¸ÜyL^xTDTm(Å+áÂ[†34,ÁÉÃa*Æñ?SMú®É-k,½œ?< í¹&z-ЛD4lÅ§Ñ McruÕÑ0xì“k–¼Íš+x:“œ[vœclÙNJ$¾©RAp?ÖôîŽ6/ã>!êÿŠà-ë¾›7›z ªéL3 ÊdôäˆûXÌÅñ3©ø¨BÑ×Àt‰»v¤béÀâ7ú_Íý:I¶·pgðU·û(•3„Su5}eÃTß¡(³èÓü n/¨Š_()é®é÷„Dc«i]¡xÂqâ X“šµøßC–Y™ ˆ_:zC¤¾IÇ«Ð=¯]ÇŒæjÍæ4­Ã3cëd*º}œ4ÇtÌË÷ô­ù¢âöT ÄgÛ FŸÊÒ#J±£süèØÙä 0U³imrÄ€€“LÆ.Ž…Pç ¹UŒë®~ÝóþyûPnægo›v—ûJ¸LàHCM$NÖŠäAñŸü²àæ-¸2Ã~âmËoê]ªD—åo™RÇ”V+ò†¾‡'&.Q]õ&½›—¥ìµdQ}ãYA7Wd]Q €ƒG)ÕØNKÁYQXœN',m°µ(Óu=ÎC aTô§ÅœõªaÙÍaÏã9‡¶\¯É7#9æd-Äaì„ -O7è(š#+ÖY«%ÌVܱ¹íôÇò<§Y‹&C  Êðy¬¤ö–0Æ«a’íØ¢5 =#ŸÎ0ÎÅÇYyqn"¦³‘~ -×_þWç6ïFÔLØ͈W£‚j~MYl9s”$ãu5i›B:"ËÌG{—&yD5óŒú±Wr]Aþ>S±l¯õo³\ëcï ' &R°¹ÿZÌžŒPŠ¤vŠÑw—_€×ë?¹+©¬_ÍÙs‰‚ßä¸ÛÖFÐñU‰n–¶wß{YŽñ·D.ö%Ìç·½Oßí\º&ï(m¹/™ÎÖ1­©¶ä«6TÅIÕSš,k+ï}–…öź*å'=ÊfïÆü³Ü/Ô{Pæþ6xSᆢ—”=‰ì[NÛÒ°M¦41J§ïXÃô1éÿÕ—=©@"Ã>:i“0W/ØÚÏŠ¹ÏöçbŒWse-UÆNή7Èyü£P(ó;sÈ2;5Öêç²µ»êçÚð[;4Ê25Ø¥7êÜ€ÝÃ%gá_€»*HL¥¨óÈSijt '³M=úr9Kˆì«Áôé,Þzš[W@mª—®¥vA)7ÿäâh˜SǸoØi' /í„‹Û•«>Çx6á+½û ÆŒ ªO[`}‹rL$ÏmÏOT",îNÆCñÔL9Š½™é‘‘ï¦vuÂS·Ã”bþd _œž¶„ÆsµHÝIðÃRRòéÕÔW€ælÞIú–S”/(­DBix¢q"Íw¶éÐ ¯­ÑÓ‘îDQÓùNÆTp¼tþ-"RðT í`ŸvE‘N”7Ùʬa¾‘÷l_yÉƦ÷>i ÚÞ;•%à ¬¼>Áv‰¨Î£š8{''Uöž'Š¬ £Žäš¼y(Ð;# 7ö #ˆ«bÊ[8-·i"˽¢ÖWEh€v6T´Ø4xÛœcy¦\N¤…=¹¨IÿÖV„ÃhæŒlíÍ…¿º†é½´ÍŒï)ºBíO¯ÕaÂˤxiPUu" Ž3º}A+·±ex¨4»ÏâdG»0òÇm³—ôYg¸ñFçÄx+ :—¾ A-K+mSQ%).H‰kÉ8‘0HÛ›ze ²o߉’7)¨þNŒoxoôô¼¢Œ(aÞ`¨Ô•K×ì€Î«}®lÐu†ç3±èbÚ‹M+Š"ÃÀjãM^¦ð\—´ý³ûîy•òê—PÕ>*Ë`Xɘ‹U¾oh,hœ™gIi`WÛÎïjµïÍ`M÷B´Gcü0´(‘û+g@*$ÞÁ[£&¼‰æÅtYqxì|ÆDûÚ¶I>T]‰Ì†½ø‚b„èi}$ûÅc ÿö†éøöÅ÷xŽ—_©òÿÑé›uæœ#•òë<×N.a´@Iß eù•#2(I©¹8Á´9¸bw ÓxÉ Ì>êQ5Ý>öƃùmËã×@ô£ãYA•™á^âAµ§«…-µpÊ]0luº‰š[àõ½ˆ;nߨêråöhx¿á Q*ÞH/,}ÐÖb õïfôÓ¾¡Nç2rBø¨ÙHu 4Ò+|6²ËÀqÕÊ´9»2 x1þóÉxVEÙ™fÛS€„Å/- ö¨œ$Š¦ÓMîÉ\AÉ1ÝPvÉ·9ŠX«¡ªzݬ·0•}ú4üØaˆÛÌ|Š” ž{?©Öq"+¶^«„_w‡ëø*Y§êÃÌÙ6õJŠ©ãl˜?¡7n‚_áÔúÆ+Î=Ë(\Q8!^êÜ?ùPD–®°ÄCÜž²Œ?'½DŸ·ìÆaiq†ùÃË’/+œœÔ¯Ö;£Íq©ZRÌÍPÉɾ¤}1#ÛH˜§RuÙ=têßç+{ãgŸÝ­LˆQ–Mº )€3qïa¨9ß²oÿ•Ht–´( ËØŒú»ù‚¬µå­‹MM&ü#/æSé³ Õ 0ƒ>+r§£Å|—D ™!1Ï -çpxÆ7o±‡ëoÊÕ[@й+™ ¡Ž»¦¹-\âX][Á[<Ã&CÇH¬3é_¡³2†p;)i‚w+G„·b>n«Ã -ŒT%˜¹p¾Ø÷žÂÔ"‘¸§p›r‚‹uÌ–fË'2b1dL«¸è£Àzݨ[ÑD®Îœ.ž•Ÿô*¸VÉðÄ[ KÖ7C†ð ÅhÔs€+@ùé¨ßWw2xKRú­‰03íœÂ™e@éºé‘n’vfáí4ÊÀ"‹Œ{Ž -Œœ½íû äÕÂi‡3ñ‘+è?ÅÉ&2‡ÆmPYØOR`C‡àhHPÚ9M+K¿¿ÞÍE¿ˆs€tQ*p~"uº(j‘ù£.dÍt)ª®}ÖÒŒ1YiIE–Ôƒq~žÌH 4žÓåýꈱù®~šÚÛ ì^¦ê9Ÿ:”.4ëå´ƒÏyì§h^'Œßn¢ûÒ§Ëñƒõ%wVÍ>4$yã«u¦ßÔù×óZå*+ÓÏ\“¬¼1g½É§ðÒ] ìsך˜î‰§i夯é}Uh9Æaµu¦`Ûc™´=ÅMTð~‚™bzBT±ÝwƒÌ|­´J–èåL·*DŒÓ‡úÌ+æj]šEƒêkNv…sž"õRHŽèÓ‰é½ùÎÑQÿº·œšÁpÙJÝR'F ¯>W÷pcü­ç?ÅcûPËðò‘;h™’jký‰˜oÀ`ÉØ:x þLMä“`‰#Œ¾k—?”“ߌq#p&FDiD9žâ[Z@Ó®trˆy >-_\9U8/¤P¸jXÆ‹ÚÓþ“Øá„Î%pÌoŒ!âwÝPmL€d7LÛ‰ÔÅïYÿE¼©‹¹ÿ^R¼X™œ)lâø¾b·£M*Þ•M†«±’[$)l9 q¶Š+(ë¡WTGþÿ%ö؇ï¶oëJ7`hKDö;j~6~7–(ÍsBØ y‘?G—þ¦PjVÔ}Ý~ -à°mR5žÈÑÿðP-=x˜íFB—M¢H?m_OHû¢†+–„ÚÕñþt4xo(De#úE”.¢–”à?,ãg¶ï‚ˆ;6ø|ÔVõf¤v}1yJ‚u•êNè¥Ð%Tcÿ¤“³Nà¼lÁÒR§àùµRneÃåvÙU[ÌŸ`½Óݺúìïäeš¼â0ïÌ;ø½zÃõÏî>­~ Éò}Ñ/}…ƒ|ši:3×0˜*+…M[±˜yÜi ýÑ:z…‹ñL”›ÒkI?=ÈžgÝÇgìfûi¨8P¸ Ï®ƒëCZ_M"Q}¨¢uÖ ËÊ”Dl8þ?(¸½¾ë=ÍgäÖÉ«$Ÿ;Ê«÷ïüø,7óݶÛêY×MQ[ñ•ˆùžÇ¯b/Ù¬ç¼]…5´”CŠÑ·º/ inwT>¥Ÿ•[Œ-6M •ô±tÈxú¸Î°1/ÂÓÆ+JŸo ê¼ߧƒš% ób}:Õ­Õ½¼÷['Wà÷#¥vìÊÌÍi?Y ™ÿø !Çþº¯¹!À©äNŒ:‡Ûi²çzeÑ6&£;š‚®© `vÔÔµS;<âM‚sàÑ^9«€XäMÛ’pX¨×䆭Ôi*ðèRðÁÉ*k\ÔçÄœwt¼ãRVD7æU;d†þÉtQÉ4Óž±7¨ì Hoò§üKÓ¬ÿwð;’ñš_öõé–<‡ · wù¶—à|ëu¹®‡°?× â‹”$Þö'Þq÷Pï7Œ²dŽ qtæ/Ê?ËÖÆñù›¤ê´“â‡QûÅ}h—U=½gYúœÊp®šsr§ ÆÎ5|¾L(•uU]’>’Ú£„_²ÚÀýË5Z\¡ód|…ã·Gñþ¡,øª!bà2!½ÍýÊô·MÃìáe|Ù›ÃNÊ‘þy‡ýuÓä40{ wE~™NŽ8¹›m»S :ÇÌX§ú’» Ž*: Ï?dR”='^*ÈIà³[9Æ5QÁ¤?<5d­oÙÑ‘*kE‡N\g²XÚÍßk¬õ×5‰ž¦Æ-ã¼ôE…šXÀ×DX -²R¢n‡û¿,å•å¯F¯>íëuêi‹-?X+v8€âºo*§Z ô€ µ¼çÃïauZM›ýšÈ\÷@p!Ì2Ë„ÁjÃ~ƒë_ k{ë"Üãù¦pk¦tvz¬Öø†ñ²¥@7®‹…FéÝ×.±‹Äv?•Î*’òâž8 ø¼^aûÊ–"ÇÎâQaŽºuEBûŽÞ2ÔŒ è‚ù¾t.Êþèó#°^¬øFø|ø3æý‡~&†¿’¸uüiw³Õ$èØ¿Ã×!‚¿6Œ‰PkŠ*`BφØÞ»‚2\±ÏBÌ]Õ.)Ø-ž„ÉWå+®h¦A¬2BŒðŽ,´O|¿>‹QÞ·²ËÇr"qsmAÿJgrVšK,,HŠ6þÙPR&š ÌDIÛ–2èyf;|g.¸_&V*5¢hq”{ÖŸ~ ?É€ðf6DÉëà0ꇙW~Î\ÿÒ·I -ÈËÅe5–ƒ ~’Ðr…N NqŒéÔߤl":_ ]ÿ<!µ%÷6apDH˜b …­ÒÍ‹)$3ÈŠÏ3À"¬éån³¸!4ó­ÆûÏ·ºr¢1m6hgL2\ì‹/†áš ëd®Æáõ{¢•-äLÈ_¨¯º€„Y",v„-M­ãÈÒóf¼Â"º{©2Šó0Ošâ¥Bþ„Üé´³á<#懼3`åxö`󔆔ì±vceÁ;êºÇµ‰Òìºy”‘s[Au2ã’Õlⵤœ­¤( †>Ólßt}­ó ôÆ«‘ ûp+=v<6ÉÄy,ŒÌó•ó¸ ² wg1LþžÈíòŠÚ|Wa5a‹ÎwíÐíˆÔÚükN”ƒæwUx®¼XîX#ÌàaòŽ^Åéöî { ¼Ðd¢ïÍ÷«Û¡ ãß•¦…–\÷V±š–d¡g&;'Q©·Êœ×i©¡m ÅýI•œ“`ä™Ö_kPkŸT¡l’»ˆÆʇQÎþ`sR²¹UQÐa)Ê :ŠQ×ñõÙÇq놽Î@¬ÈóX1Éåío]S2']tˆBŽ—ÝÒJlð0¨ÐN>ë~†æ¶æðºnͨ´€m²Û<¡)Ÿ\mC¦JÞjzo¬`Œì†ý“@}kØêH}|Få k4&a„#XY% Ä•ƒø¸VìäÁ  á.N0U@¬f.þö‡îËW-ç”sçÒ/ä½³ šRoh´qû Ë1‚úæµV%ùÂfJª?ûù·™âü’îzÅãô³¦©Ëí5ãN†Ù·åä^Êé‡jƒ²ò¿·Ž© -#*ù󿶤_U×;ÌkžXR9]\ÕÇxÅhtÛ£¢ÿȱ±ê M›E™aú ¨Î&þªö,½f7˜û³ÍMnæäõ|Ç\_Æ™ßAec>øÍ+â(Pɉ­èå³oÛE÷¦øåù$´Öp¹ãÔïà +Öô3u4T³Óï¡bvW}ãòiËlW -mNÜ(@“¤²Xb¾kÈg  ¡©%B4veüÓ âœVvî«»>&ÿ !Ê!þ²“e¥ki`áçg–À—ØT&¶=_”fÙÞßù2y?iuO6âÙ"ž]çØ2çŒúâµ4‹tª†æB]€™Æ±ó䢙ûvð(½Êø­ê.Ž55»¤´*_0Ñ1) óž§üIᆵ]rDêÊР?ãpvq(hzHƒ­=•zñ·h†íµžsEßÑC¢L½uè(®0 §ÒD7Ô¥ðÕ&]‚ËóšOT-I†õ¼5f“e™†AQ -É1-"€?$#ߺ“+»ÊòKVëR šZœÈ¯&ˆµŸ4Ž{°‚;,„›ÚO½éØž—XžÁúŸ1ÿ…Ð{mXÕŒåÚÇò-—FÇÙb Ü€EâÐ]̯Y*TpûN»Î;Z¹I´äÉûØvs3`üà/Û¥å{3F^Ui›[{e}³m)ãø~édzoïÓiÓã)D Ь&i{4ÔèpHìT÷ÃælŠe‹¨:…é>2»ÆÆA¿$Âv¸\±íaò*Êý½7¹”1Lä·¸$Ý&c+}Ãv¯ÓÄÖkåä(+tûnNM@LzEò«ýA -¹Á é±Â¨îi^Lër©Yç™± }̲FCæµA R‘Õݤ™ÓVÊÁH¢Ö#;c äŸݨe§Jð†l/ÌY_oРÍÀ¡FS˜ŒFUL7¤ËTCè¼U5Ìß±ÊÑÖo8¤ÄÎË×üÄ{½;"HÆwôùäýR=DïÏ°ZWäZâŽ>ÜxQ%ÙUÓ¹AôýrÿT{ž«0¿Ó>>ÿ†ü~X,÷>ï˜fÖæ,ª_sLØüÀ ô8~\äÀ­Š‹äï2[,'šC\õ 2ÝÍR–(PŸ¶w;G]Á5bWµÓ©Ùïi•£}ÓðÖÎTQ„\ù@ù`íXàòÏ]m×DsÄíÇ&Aâ‡â•Ëµ:îü?óì -]º¸Ã­1åö³9ÁtŠžX…lÝkð‘"{(5v}šßB§¶9®À iCyO½*Q¦o†êj}Ø+B¶‘àúº¾?T…ÏtÔ”¹ußø -i‹úXìµØÈsrKû¦± (*Á*éQ='ÅÔ]ûÄv1»'Ï¢€l,» Ú” eç_•hFôæC‡sÉNŽ®×º^‡¨†Úz„nâšCÏÂÑ0£þ´v ‘¶¬5|—4‡W:# ÿt¢ž ;׋‰ár›tùµ‹ñþ_®m× ‘£0ˆE66¬+¥(mÚ 8 þ"5ÁV7ƒÕ)§(´ì,d@[|—®V*ú$ 5ýž:nFƒÆ2¬ –ŠvÇuÕT}…×£oñ/á2ÞïI~•VËåC§oŠRk|Hî¤õÿÆ7Ú\éT§B¿9ƒß×jONHILW²WzÚÌ ;ù°ïúX`ôTì”v%ç ~Ne*Ï'oWòE@­Ã]Püu—¡P*Ž¥Ö~x†y -„Ý"^ƒÙìªÿžÿ§z¬:å}NgË Åþ4®BwØd…oï­ÒíÛaèY]±²ÊlÊÜBS¹S¬ïûùó2áÿב‰ŒÐïŸdÖŸû§’›¯½ÌË”3sïÛ W0iĬ˽‚ßnÑbO¸ÐÔ³åa [U -~îš³^Gé©oäžÂqj¦‚$ã¦ZáémSîEMÝÏ”ž9w3N:šäY_6c“Ò2²Ê¢D°)ò¼`-´!áLVY+·ûåé²ïpÝwÛëCëÍù¬•·Ôj. ÈŽ;}4Æû2“çý| D{.µÅçô +ú:(-…“,ÓÃÐ[Ó|\«4n›‹µ˜ŠÝ—ÃjaÞ(¦ŠT¡~cöÅ`AO¯8Q\9Q©3Ηêu¥ˆ1 VL£ÄÙº³FhÆ­¡y,U °)^j*Ä°j;©ŠÊa©Q½Ànµêa)’ºÙs­p?[%ÑGÍ’çM‚A@΂vß8˜ûþ2È~i/Ó$þxþ‘±xœŒ B¿wÂìÃsN:ÞŸÇq~Òæ—›ãG÷*QK”:í%°¯ÜÖÈ7A‚íæ$‘EŠ^§o©‚ÃÎÚ•']Õ â«?¦/UEøÎ7„ž( ‡ÚË•Ô×ZâîÙ—ÚÓ›§4`ƒ Ff cÔAnÁ¯¼Ûþ–kLL\ž×± -j§:úûÁiçRÛ Vú(¢ššëúN®Ð4xwŠþ‚àª-·žÓzøŹ@ìÆ¥ûó‡bPR5A[(\rÚ!ôÿ˜cväÀHC$³¢¬ümyoõ;T¡§=½­’@#Å×ý—•šŒ^ê…Z·&tŠo ®o‡š:Z‡÷ür;zn…™êE+é+ŠüÔ¾]=,l@˜MH:Ÿ…dŒ£w¤Í—Πëû—¸°}¦þV”Ã/ ]#ÕŒ²YåLFÝ«êìŽÁÅ’#7¸Ë'A4=çÑAç1k/ Ç\bì×aATŒ1÷¹ pnNxÎT¬ô’"U0ô'¦½ÿZË®‰À»ÙãÞ¤äÇÁ7–¤§Ó*¥còB -©º\ -%†—ü+ Xfx¹_(£•ü4\´ÐÞc>@cG»ƒåa&‡+8œ½WÃY€~:æÎ#Åñïtké&%áaºÁXL·™@Û˜Dê‡&§»lÈþgG&ãn¬ÍÑ¥á‡Ôž­~Xî¨ )–Š.J5)Y.ùÊ’sls7ØZD£Û ©o¹¿ÁAw¯ázª'·ž’´Õ?L¹Âwº¸8Æ@ï¯>ôÙ\÷¼aO>ìîÖ¦Wáû6P]ê(åµîO8†Â?gü¥Ò맥ä³í®êŠ~mÀAù˜CöE»8¾„Žä•³‘û¤ÀÓŸ;[2¥R9~×X¾áàðÿé£yÞØÊ=¸;v|;ªb¾?°p'áÉkâe— ¸@=çwPVPgô/‡µî¶P$¨éŠ;êõþ_ˆÞÎõ/­Xå Ò‚­ëÒk;‡9Çyæ øÇ)xÈNö6;zy±†ãŽŒ}ßí…·€_¤B¢®S† [¡)­3Ò‹Ì6 ¶ÍîÃzl+tVðÃ@/Õ³ãÜä;GžðøÅqý+â)Ç!ä‡)u_ÏñK0ÎüÀZð锘ô¨c+…‡šðàI_ïUHò¡øɉ&ÕK¡ûDŽTTš$4¡ûÑRçßn§ SÆY\ø$Ìw˜Mˈ·4q1ËrzX›e—Ã. R¿Â³kL ù¡Î'F™.¢í›-á²¹¢‰h++ä¡2Œv¼@½q -‡Ñø¹ ­•åØ ø1KEz/0L£0ÔWPŽìÞh!Ѷr±—3“üüÔ2î°ëO³bÜÙ´²€ë^â £…=wžÚ§à;3œí _@L:nírì1òZfHâ·5(Äð«ÎUÒ›ÛÁàgÀ´OŠ> O@—Å£mÍÆ!ã'GfCÙŸ_]¡YÌuùósŸsZa&)½3F¨@Úß -aV}ˆ—íÂ,pÝŽåÚ‘q®F¨Ñ׊dÝ.,¥Ÿ÷ø>ÇNÀç†Ü¡ bv@¸_>¤¥}ªé–Z÷7à‚gÄ«ífÙÏú"à\5”¤ Ñ)1òdw gs‚Šï²Q„u]¢]ô+#ô“Ð$Ï8ÅD%x0æZå“}è¹àñ’‡X’݈¿MóljG V{zå‚påø“ÏDþ@RÅÊ73£mäÉi8ö·üÒmíË·­O%…zÔðoj#§H%G|‘)hü±=èQ{âH1Àâ#¦­x4£Î pY‚-f0”ª}èÅ$ÑàåUŒfFUEJ: ¥KPBœZ*ðÃÈbÆÖd¯Raen?ú ±üËQ#(èzãÈ<£ŽœÏ–®Ñ¹>øäÕÎ{ô~Š€Ä «bMÃÀ0‰½\A^‹£=²‰ðŽ^E†^œâîž ódg&Ý%Õê¼–·*},‰¹/0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -17 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-29 -250 1075 750] -/FontName/CMMI9 -/ItalicAngle -14.04 -/StemV 74 -/FontFile 16 0 R -/Flags 68 ->> -endobj -16 0 obj -<< -/Length1 3664 -/Length2 26750 -/Length3 533 -/Length 30947 ->> -stream -%!PS-AdobeFont-1.1: CMMI9 1.100 -%%CreationDate: 1996 Jul 23 07:53:55 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /Gamma put -dup 162 /Delta put -dup 163 /Theta put -dup 164 /Lambda put -dup 165 /Xi put -dup 166 /Pi put -dup 167 /Sigma put -dup 168 /Upsilon put -dup 169 /Phi put -dup 170 /Psi put -dup 173 /Omega put -dup 174 /alpha put -dup 175 /beta put -dup 176 /gamma put -dup 177 /delta put -dup 178 /epsilon1 put -dup 179 /zeta put -dup 180 /eta put -dup 181 /theta put -dup 182 /iota put -dup 183 /kappa put -dup 184 /lambda put -dup 185 /mu put -dup 186 /nu put -dup 187 /xi put -dup 188 /pi put -dup 189 /rho put -dup 190 /sigma put -dup 191 /tau put -dup 192 /upsilon put -dup 193 /phi put -dup 194 /chi put -dup 195 /psi put -dup 196 /tie put -dup 0 /Gamma put -dup 1 /Delta put -dup 2 /Theta put -dup 3 /Lambda put -dup 4 /Xi put -dup 5 /Pi put -dup 6 /Sigma put -dup 7 /Upsilon put -dup 8 /Phi put -dup 9 /Psi put -dup 10 /Omega put -dup 11 /alpha put -dup 12 /beta put -dup 13 /gamma put -dup 14 /delta put -dup 15 /epsilon1 put -dup 16 /zeta put -dup 17 /eta put -dup 18 /theta put -dup 19 /iota put -dup 20 /kappa put -dup 21 /lambda put -dup 22 /mu put -dup 23 /nu put -dup 24 /xi put -dup 25 /pi put -dup 26 /rho put -dup 27 /sigma put -dup 28 /tau put -dup 29 /upsilon put -dup 30 /phi put -dup 31 /chi put -dup 32 /psi put -dup 33 /omega put -dup 34 /epsilon put -dup 35 /theta1 put -dup 36 /pi1 put -dup 37 /rho1 put -dup 38 /sigma1 put -dup 39 /phi1 put -dup 40 /arrowlefttophalf put -dup 41 /arrowleftbothalf put -dup 42 /arrowrighttophalf put -dup 43 /arrowrightbothalf put -dup 44 /arrowhookleft put -dup 45 /arrowhookright put -dup 46 /triangleright put -dup 47 /triangleleft put -dup 48 /zerooldstyle put -dup 49 /oneoldstyle put -dup 50 /twooldstyle put -dup 51 /threeoldstyle put -dup 52 /fouroldstyle put -dup 53 /fiveoldstyle put -dup 54 /sixoldstyle put -dup 55 /sevenoldstyle put -dup 56 /eightoldstyle put -dup 57 /nineoldstyle put -dup 58 /period put -dup 59 /comma put -dup 60 /less put -dup 61 /slash put -dup 62 /greater put -dup 63 /star put -dup 64 /partialdiff put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /flat put -dup 92 /natural put -dup 93 /sharp put -dup 94 /slurbelow put -dup 95 /slurabove put -dup 96 /lscript put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /dotlessi put -dup 124 /dotlessj put -dup 125 /weierstrass put -dup 126 /vector put -dup 127 /tie put -dup 128 /psi put -dup 160 /space put -readonly def -/FontBBox{-29 -250 1075 750}readonly def -/UniqueID 5087384 def -currentdict end -currentfile eexec -€4y‚«9BÙ0ài§ H1r^ƒ vû¡.Hn˜œ˜tµ'ð’W"xp'ôDpÔ„&,6 ßÝß6WS:W»÷0H¿»ü·:e„TAýÈ7­ÙJÈûÒ.>ÈñÔ´»{8"Ìa˜ïçh½ŸÎ³Dnä¨Ü'ÖÍ$…8Nõõ“ÿÚCòÒ °Š¢z²[wM± ¬ýÍ3æŒFSj´'½×ÚSK x­=x“ ¤øÕŠ¾ýEÛ›ë@Ø—’&ãø$žØF׵̽‰U ÚÝñße±?bhvhcxNúÁ(àù—á¤01*úÈóÙHíì×Õ -µÈd¹n€%oÉŸ·LaÌEn.íðæ'Õ÷s–:fdÅ¿#Ê~—W -/Sk’å…Ͻ_¿6 ¥Ñ—SŒ0N“¡_<“hÙBH>ô(±£ñ·åHý#¸U#ȸ¿E €O¶‰ùÈf“÷ß±Ä?h'Çð'£¨‘HñœÙKˆ©¬cÜŠhòT¶Oo<=ãëÀ7Ú@ȱéON-&´gï ~¯×ê|†à%¯RÅÎëƒYQæ~£¯ži‹Ò–Á„ÿ¾wöÝùÐo©+ìëËà7 \ÙÔPÐòj\­ù>Ð -¼Ï,™n|äRn59 ™¹ÏÅ™%ñDL ÙÃáü)2ÏŸ©Õ€êÁ¼•c4Ú9‡ -u|;îj£à² ˆØZÔd@*—&ãâ {u!¤7“wLØÑCW¼HÂj®Å–⮓-,ßD¾7´Áá)[aŽö<«Æ|Š“‹*"î§Oíû4gvшUì¹\Ü‹¶«·|ÿ”:pªs,e‹%«Âþâî>I>ðAL·#³PlGu@õ÷#z 8€Jy.åú‹u,áHÃÈËÄa¢©œ®pÛúLÙ pZV"hAÐcfEà ûhþ“ŸVÓûiœ@èIYH•¹ó°2U ¿`…`zs.tŽNòLîbj®»À’Œ:®×`I'Q΃]ѽi³@X>¹±á·HÕ¼ ¨yû3óæ|qd>šHxq“M5ý¬ó¶";8nÞ–œïŸT?j ¹ æ@rU’÷Ë·ñ‹¨CÎ, yzñ§·4;¹†û¡œÞVºä«×±:»ºµ…œ²Go„ŒœJ€Ït•²æ9¢Ê}øä–¿xžõ€§‘»—xHëek}<¹³W³žˆ[ -m5”ž†­ñ ¢>kí5ÕLâ¡ìmŸR رóȼÙ0:O¸Å*ËÐã‚;úwë¼L‰¤«]¿Œ°óFŠ¢|62Iœ¾J_¿jq‡M¸°t,P" ®“ÞtÛ U±`&*†MŸB9W°1»ó=y~…f ˜ŒžŸºÐ³§]÷òƒ Ü@NðÓ'¨r ÅÍ÷ºÁU\+ÏÛq©$Ôa˜§+!†“oFûµ†øâí÷<íd+"E¼!C0]Ñýr D -“ñûÿøBÄÏIöÄt5V†õî#>‚ÔZWÈ$ëF?”žR鵪oЋåæ?&˜þdÝúMNose¬›ñðŽ9ÖJ2ÐVì$XBgó³óy5À›÷rÀIWC3zE¾x"ió^EÕ“¿4ìiD…î^;:´$Ig¤®Æ8çšjO´Ÿ³ˆ‰áâ‰UÐøÄ0<±O%ÿÍ}vLŠ‡ 2ßr¹Ú¾5JƒX™º®É•¦ö*”¨jÉÛdÉç[º·ÆŸÈpÞ`¤Ì3tÈ”ÙÓå8ö6ÅׇÞÆIˆÿpßø“µ«ÏãŒzÝ8ÿÙ¯¾Å¨ìßü4î€f¶ Á$ÑYUMÓD`þÍZôÇ°!uîtºÀòš@óÕ5Lœ9mptk6µ")† o'XˆM¡¾Ð×st)ctŒ- õÆȵܳˆæ±x2ƒ~)ææ±ÉnÕÆq.‘3>}ùWÏÑÊšÒu=Å¿Æ‹ûm7*ÑÍÙ¹”†wßSë,:¹£´¶ÝÚn*þJn"E -ù°ŠMÒ â}7, w/{`-Y4ã²;¸'þß8â¾¢ðKQ 0X ÁƲììZcf¹iÚûö:9Sö€Ö‡Î”X*³‰þP3WÞ/7Î ‚µ!ÍÓtBÌ{è¯HÇŽ¼÷Qp1+ÛÑSêÝÝ+¹üW°{€h ’Æ›2ÿ¹™”äŸg»ÕðCÃF«|ƒ‹µŒíÖОhØrÌ•ì(³û+ - Y‚*¹UƒŽ/KÃ,‡ áÒ‹KFzh º%u›Kì¶[û­‚Òzµ2eò;¨Î‚P Òò{¢jQÖQa¯Cáôh -‚ŸÊRº‹\—&o­jrcïTªæ+V_ ¶dKGë\^XcšáÙßêVzc -Í€6^oO»x®00ED3Ú >©&èÂd)ã‰Îi[·Ê'ݵ~,|¼np<úG^ÕUÉ#ñø÷Ûž–óסÔåËU†È¬_Ý #[ÿózí"~­Å„q~H ®bÖkQSXŒx˜†³ÛRà;;µ«êgËòDpQÃX»áËmB3 ›¤O2†gƒ‹bI¦×eÏo¨:†ÒK‰mfrµ)•PÝ0mgbÄ°vƒR5ŒvSØdÞA -Qêß}x‹eÔf>"¹¨µ]5ê"83l&í -߶ù°~yå“9g=«¡BÙɈiGaá 7 ÿqàËÁ&ËQ´»—œzA^g—ò#ù~2pà˜Îuø;ôÅõ¯å§Œð^™$yù‹ÄÍ;Osà—~¥Ëaó nN8Ý—2 -iXl~£™7=’ÍP瘰Ž_ÇG¹»oÁ Å#Lr ¯ÑÈ?À¼Éœí™ÕÚ2®¶—xBBUßæ -)íUÓÀ4¦Ó<„PNÒQ {UTÂFÖÉ»Ö*:þÔU6Ú3üü\ ½#?e,•Ëv©)¬ûtO­`¡¯Þéq‹Q:]ˆ-çWÌÅTê\)‡õt·4ínøÄ2j"$Ùl@ßÞ À(µ¸÷¿öîtÔÛ¯,ÿ-OÐ(´“‹ƒAŸáÓ­4¦(<,ûéjzöPK»¬÷KœNˆ3̨Ý|<Êù †Ì=W­ [ÿûŽ4“°Ó#ùMVþ‰LÓÒû\·Aøþ©‹®7¿1’‡Gí+tî·ÐÜJC“dMùO‡ŠFØÛœ„ôf›­¾€÷4΢?5²É÷¶(?’u„s8–&€8Œ¶¯ÒXݦ…ųSÎÙ7…ƒ5Ô2ârÈ°Xtm ,}"lxíÿQ -3¡0k÷ä[J{F©ÿör«ÖšBG`éó83Xâue,V£>˦3÷ut†Uµt*ÿŠÑ+çFçïø‚ÜùlÕsO{Åz’yÖÃÍ@Ö!qô+çб…eÈ;k7ìÉë–wÛÞIÈ$^9Ë; ¶YTŸ.‹ýÿ9ø‚_˜0Œ×¼Ãï8*ÿ7øIÐîXÙRàojåU&¡ÏìœYÉ xè…öPOÚŽc /Lí΂²+Éâ=ŽAèù|1TËÕÃdœgªˆ›žka˜§ßhö -,yš6«,ÊýŽÄ8çµ ËázgÄÈ.Ê™äÇ%7µ a¦±FD*ô÷çVpïC¨Xðë0äŒÝj1Fg½‡v”¡¨7 _š…ŸÑeéÄGÉÅGC9öòÉ9èÝ‚ëS>Î#5N©ã–œ2x ˜¬¥ðÙF:+{2„9ãb[äCS®t÷c»î!‡pnj̇ì¥Vʬ™=ì‚òˆQþ&¤96èź“".Ê颔0Ü âÐ[ÏV¥Ó`lA}ÅYÐ0½|ƒÕ»G=Y8÷”WMN&_²G¬\ù -+"‡† Õs»YU–ÙÐï4îÛŽƒÄu! ]‰Š(¿rÒç"K00†ÿw9&ORúVW]ȈWJÀƒ6_u‚†ÉÅÐ3Q·‰üf9JoFbºö•t]Ân_|œi¾z›œøŸ˜Dˆr(Ÿ˜“®W‹ˆR[@‡#hà6Å+ //A¥Jrµ»[`wƒ«žÈv‹e—qç<͸nzÖ&Ó¾½zò’×%$íë™?! -W¾i:ƒRKñlÈ8%ïr Q׃]v©‹5‡ÿ—ßL`ÔR%^ôÁ= gŽ¹ O‘CLO*¾ût+ä¤t@›1 -ά£°ü.¤S|sP’CÇß ÇxÂP¡Õtãkº OdñÌ’'¿N—Ý QÅüÞýÚ¦ãDÅ` xýö£z]ÿñÈeKõ¡IR!6ÑŸ$®Õ s¼D/-pñ¼gô5>Í+¤Þ‡°p¿¯ìPÚéGÈAfÏ؉Km¬ßÞß[U…éàS ?”0»÷}X^ÍX ‘úk+¹ü­P×= b‡# “ª]Ï’œyÉªÏ '„|–ËO!N9»¼ÙíÿÕ.ŠR‡"8xˆ‰Ÿ¼‡èˆÂ.<¦¯×ìgÁT3÷tX«T´8 yª9..ؤ'Ñ ‚ØÀ*Ƕ -‹t'{Ì £Íh!7›Çip¹“bN“ÙþgNä9àˆ—ˆS% ÃÙ κ÷±2Á\ä›3„5Ú’uuµÏ\~$È‚´éÆèÆqBê»_’c£r9Ü˶ƒâÊ*|Æ B¨Wªw&Þä,!48Á« åûQ&Êrv#²õ'V8Nm¯ÍKÍbÍM ½œ !¯ Àñøú7ˆv]¹í^c±±\sde.TÍ4³Ñ:$ž³'RÜ^¹æB€~µ3wŽp<ûÐØ9A§PÎO|±'к¹y¯†uÌx»7{‰îúH¥BܾŸ¥ýæÓK}ÀÐ@NúÙžew4Ü1JDîØ>V£éJº•4¢œãìÛYΦRªôÓ©0”Þ»3Jtÿ¨æYš[òªÒ›Dœãœ3ƒ®‹×fɱS颩qõjýØ°íO±Ÿ"¤Ü˜ÏG´{y péãµJ×üKu]Ùcç„ét ¯ùÍ.I¡kh‹ÙYõý tñ-¿ÑZ8óãž_©|s‚XŸå¦Çvg2 þ‡v®Öf¢GÇ)n¶rf÷w -Œ -ƒ‹n~¶m)=|y˜U38^ªGãÃû=ÀÞ#ÍkKë9‚)Sù~xdÛ °¹ìüÔåhÔ™xãK\ìà,X‡vº6sW¢½æõš™=k”G¤ŠÒÿ6šÅ`–éȶÉ%œ#ÜZ/ÿÜk‘àÐ<üŠw/šÎöÿ~4!òŒ7F$ÆfÃ}”4ú$nU¥à.Éæ×U -µ&&toóälªÞá Öøo§ŸC UàU½¶¡xzž‚(ˆÛ\cy{æq&•éfŽ:`‘)íG…jgòt:¦d'6½ÀÂ<“ùæ“qK  §Ý×Õ—Ì4;`ñ¹%‰¢;¹ðë¾­—SJ Þ<ßwŒ›ÿrø˜8s W3c$ZÙ~LºÕ$xÂ Õ ˆ,~ýòÂuÄ(‘0¨Èc9RÕ‰€Yv‹$`“©).”LGý³[™•{î;pÍžEgE[FRÑE÷ÿ»v³Ík #N‰û1´n§Ùò JýΪ¤_8÷Ô÷‡J¬;Ù Enh%î?$»+ ‰sw“Óû3až -S‰ T†3Ò®ƒü«£v;vû·mXWK,ãAê°H‚Û::³Ûcà¯]ÆÚ½ºk(WŪ2½ÞË'¼íÕ?æûŸtùAýP5¾¤•è1}?Øõ‡$­ ,¼O9¶õ²ù Ã3ËORÞßÕ96©kÍ3¿Î©pKe [‹œéIjØÒÂ5Ô–så‹çƒ±ñOú@¿ö,-LP+:“m pÜma{WfTïQ&׶§f–pÏXض%=%àŸXxêÿ&ôË<ΠüÚ®±!ï£ -´û Þý0ÙdeÙ¶úvÃí(Ñ@ÈUNÿ—L‘-R°20“òÄ1.Å+mÒ jÝ熒ø…×'”a½·Þ óe Šp¡ÛðG£ T+ ‡bñ“Ø]Þ¥bûÓ¥3(/Êjï°þC¸—ø^ëxsæ¼üêY>«B{•]"møuÿïvî VÉÂlKÙ·/ð’9kð9ö5’‘u¸¡™aå4·®v”ºvX?±w>ó‡$Û~1yqÇMuÙ؈d[øL"ÛÊwKÇÔª¶HN¼nròªÐ–éŽ6øñÌ_;ÈóÚ¢²õFqœLsKÖ0´¥Ï„É× -<þJ—;xN§tʼÄÙ> ¾æ -Èü]Hty(Mž \ã®ÔvQœEÝ^4QirŽþcoÆNŒÿL¯ÁõQyÃóžw¥?7—¥ôüŠ¢ŒF›²ËÓ]ÅÜ®Ï ¥êÆ,ZSvçP>EOÁÏ]%s-[=¢«ÄìÎ4„¨.iÚV_åwSžç~µMìSB¹ìŒi^fÄð‚k]ŸQ°Xý‰ ™e.'Œ=xC—¥l¸’ÐØ’‚¸Ã,¸´ÐùfÀý¦Q¾BÝ”Šç  ~Ð8–JßÝùqw_góô¦[lõiž8€Õ—‹Vʘ}/øSÜýÃ:ÐÅÕ…yПCìÛó9¦6Ýâ¿©ëþ}6øü3ó.Šxâo£ˆ"Vv†ùvc«4gBÞL¸kÌùElg} ¹ÓÐØƯj8õ/ÿû,®Ð’„K¢?a¥¹îKHIÒ¿F¤•¹5 Ö,T¹éž³xå–?„Z*ˆBx¹BÊ„®h0q!ŠRÄW‹ß™†ho{$Œ±,=c[žN!–½ÇP†~v庴÷ZÇgÑê2/O¬z™ð1J*Ü©1õú¼jÝJø½]”ñý³K¯›<ÙĨ'‰Bnzôñ~‡†•/1¿µûpÃ>_7ÚqN u¿0Ï -æ1<ôÏšîC&KyG5@–‚~aXz#ꃷß]Ä™ìoKŸ!{FÔˆéŽ)WjH®aZØÀñØÌËëü­Ð{ÏÑÏѬ¸ömc†2ŸôÔñ¯&†dÀ¸ÞdA¸Áš‰9^#?æÝT aVN«J84©m‚Q²]¼Öfë&uµ~œ¤tÔ%M÷^Øõïà"ƒö›Cåßü§7ü€çá»á©, OЙǷÙXÂÇ‘,ümI§z„õ -„ó[ìJ¿€…›øàÆj÷ä×=ÜÅ÷'«qb˜øÕç/­hgâ¸ÍµBJ²ï“?$~‡†~à5Ü µ³Ö‰º®²Ëgÿ/‘ëO¬ô¨èdyjÒ‰î,£ðŒ)‹y6ü¡ ÔÕà9¥¤øËõ~Ü…(j’k³:M<[†pŽ)Ç,Síý$éf#O'1ø°š£»ÚÑì\Vð±Ù2æÑ5[(µ{DæeÆ7+›g.“Ó[r>1a99ËâÇ -¤ õ´,ùh ò5æg¤j½æƒ`Õ%mǨb¤“¤Ëj_‰…íZ%ZÖUЙ þÎzì`AŠaô|Ðl®9‹"¯Ó«U#̪ñ¶š¯ˆF®7bÏ<Ÿ˜´\Ô5ñ¶Ôå&4G¥à‡éN)óÖß{»ÍŠó%;Š[K²u×ï_sÌ|¨‰`ªã„æM_VëÖNOpþ©ø0ÂY÷<Ê#Zb¥£qj}1ÜýÆŒRüŒÕANŽÁ©PF¸{38 -¯¢(—ãm‚6ÀÇ+P9Öá_<%[ž¤šôè¥Âdq1Z÷Ÿ‡DI7jýâ¥ÅUbƳbjoóF¾Â=IT£¿—QUÔ[ŠÕ»Ÿå/R òoâ=õøSïkkFìÐYæR6]÷x©ïŽìSa‹/Ä‘¾ÊÁÝ -HŽggî -éÖ­4è@ÙJщDM„ãeí H_œðù&ìÑ…„7¸œ,ÖN-ÀT|v50ž>ó»n“wª/ïèÈdÜzž&ÄÿÄp'˹¯˜1x6@¡g< N´ér1Á‰jYj -RL;æxozC‰5½ˆµ™SòñίT÷ŽYìˆ#?Ãëºc6þ# §W#X‚B¬cë'‚'õ„ŠÙ«=@² ù©°NÀ=( H9o»xjvàè ÷ëËÜ1£?Y×ÿ)`8¥$»k"`¢"Ú_H°£å5»šz‹7UR×”C•òÓ@,yãÌÆúµõ8#ìr@-]ƒ|Æ -ì^"( ïkEŸ¦4˜Y¶á+R1€îêl«Ä{5Ålôaõ&å)Ç>Kæh#ž%ÎnŠp¼*¦˜}”¦5½ùî SpãPH¸0N¢tþ帋ül–"³‡Ye'OƒÈž,ÉȾM-£ý5ŒÎ¯ê?Õ¡P ³Q†E“ÅL±+óîˆ(7—…˜E«3«kÓæöò˜Ñ´DX*=’©Z,$ÁøçC–,ìTÐøÓ2Asþ'q¶µµO÷ˆzq›ÊçrfE¾öý®Ä[°éY´¥ÂºNý3V”~Þñš¾Ng Qˆ=Ýum{•LXàUĹO½øÕdw -¿/VšX“³tÈTGã…ws=d¾LH½;:,Äï”h§^?„èíÐaÅßgn¨EUgê¸DVD!¿ªÖ£¨ŒDdÎ:ü³–éP c‹4¾Tö>Þg|2ù½}ïXžPÔ`hæømðeH8‹riR PÅWƒàݾ+u‰wúl[KÛÆÑ¥Œ„&¹y+áò«¦¢öM§•Kïl°EbæU?ËFúkê†ÐÒ×ˉÌGúÚp»q0Èœí¿GTéqÑ+et=þ|ç0þ3‡¹¢1г¬ ö2!·œYÿ¸ž/Hk<½ŒÙ1#?JÎ5dK¹¼©4›_âŸn×oÙ%lf°áGª=2"\V¤ýšÈOÌ1Æ8­Ù¤r]IèœS†ók•£z«Å“qjC„”vÚ”ôs|,Ã/éNµÈ'¨öíør²QÅý./¥¬™åêwk¾ñ<†ÔèÝ,ž`s«$'ßú.x!gO­Îèùn®ŸèÆgâè~9@&Ït=?/‡k òVÚV­å¡5tèaÄÎÚz ϺՌ–l‚º.gèbkA/ÏRó톆¤¡¬t€ìr˜ì4`HÉeå›*E¡B,øõvÙ=¨wªs=“îËÁl‰ÛÛ4úlÐ_s_ö+%s†@â4<…}d --Ò“¢Üdbp¤…O%a…—÷áÑr¾k5µ}@÷jŽbÊï,q,¨xE7y­UËqa^L{÷ý ·ÐTB+Àƒtºý†[)¾¹gÜ9¦ø•¬®²®€jùq„7}šÍ¶° -‘,N¼(0'_›~a\–mú Z¢=q;Kr1ŒêaÅw®2™J{B¢ÌZ†Áý·{KtØu#AÿNÖÐhÒ·»lO[Ë”U%ßùƱ$´@¬ý—«fñ=ÿN1該&åpŽÉ~šZ¼óóŽô“½«\$-/l>ô’’œøN`[n^¬Áb›AõúĤåG§ ÒĆÎñž7"pž58Ʊ‘¬ØDŸÚñ?•B†‡]‘]ât8áfciá™—Õíd÷å±”J„(çOó„¡d=<(®~±¾2Ñess)¢NèVärsdƒÕ|Úa:L®Œ›ß©èAðË8 -1•Xø±Zä˜’Ì - ]¯>1¡¢FcÓá¾HYÚJ¾–2ÔJ~aì¸ϲ!J” ¯ªÛLC4©½ ¸wybÚ„._ ¾MŽ ˜ÒÐÀgEi|6ÙsГ©ì$צ¸t9ðý¢NÄ©,‘È›R¾hu~µ®ùà’…WÚd¿]žQ;¤RvÓM(o—ëXE}Y¸wô¾hãÆõjæ×´‰ ®YŠþò2¢±Wˆiç1'[ @$åï÷dèã“JrÇÉ‚«Ž.¬ÑÂúM…cãùïIÏE˜ÅÄìÁï•?{ÛÒÁ˜š·ãŽFaMÔ(©©ž—Ñ\(>>ºœó‰í¶=¥“#%r%8Ü_¦ºlÔÓ ýVÂXBοutm£Íã§À«ÁWÐv)R81çíôµ¡ÝA] ÿ¿[»Õ³œA.‚ð¹¦<»è#!¾€3C¸R¾òÃéÛ³ Ê8øÉû-^Vüûç ¯w¹C&‚ŸmŠ¥,>˜]þÿ‡û*°ãJ9û5%W”XG˜¸7âÜ2¼™®®ÿl+ V ­‚Y0ŸÕisiÛžÃÔ¼“]­ÃªÅÑ°Bó~*^غ÷ú…—€½4;lS±ÝÏIìpšâ!UYv§e©þr³‘lçV¼E§ÁOk®Æ•ä]T~/‰„rø  MBz|Sý]ß_Y]oºÃV“•jþq¯Õ?ëý“”ÁÇü!CIy4{¦tdñ«Ô)@µGà[¤-f-ŒT‰µˆ³ôø`,£Pj´QÕ0½vúH3pd?½EdhaŠ¨-Ü•WZS7hòM¤ãÓ"PJZØ´*;(›ëRæûö¨¯VÝZ=›O2¬¿¡ÿ´E]ÄY^ú"T ”œ¡’ª -¸io> }o¦ŸÃ€kõô!Übl€úh)êØqòçð‘z å4dvùu¥»¶7ûhQi‚”nñsX¢z0C^æX[ø9mÝ’åÛyÄVqV£W›ØGójxCÙù¸'‰û(/u²²¨ -ó“CÒÇ\™›~ØDEÿõf{ŽÕa9ñ” )µxbÝ9iZ<Ï"E)‚êá5µfR ³b‘Cr[5Œ2EŠÖɧ® ¼$åèp¶É(D3çs5<ÌŠ·„1Îå%m™ -Ik0nfvØçn F2ÊJF}¸iÒï½ã˜æÚãè 9ç)ƒ¹›[‰¦3‚Â&XÁbƒæ¯ñÎWÈ'Ô=1 W/˜r]“%ó-!.¡õa__":¾ p¤Ö¨uØò– 0‘Õxæm÷*¡FŒAö°a’rI˜Êù©LE)‡F1¾S,$=lZeͬøþröê:4U‹ìÒÏÁžswØa4Õ‡d‘ø©4€Z|.âœtÛ~å•6ä GŽa—“(—Q«…ðT´u{Äa´Y¬ú=ìò¶¥HI¬Xíe„=Že’•‘¯(|/CnË*hDˆ¥†7U„Ëq§èèT`š¢Ø9ÔüŸz|@Ð%5²²·²ØJ²ézÁÄÏy¡1U7ß&w³2ÌÓÝË2T&-˜]$f͒Ʀ¶ ú 4º[DS mwª°"1=µ5´T¶$:”´RcQ Ó áúož–[>ûØÔÀòoÅLyR¯`Ò@OºÚx<—CÙ•T`™Š=R71sšÛõ81AÔîêÎXõ5Ö¿8>¼´‰­ôlTòTýG¼÷Ú'dåÙÛtËËóíÝâµî%÷Q—x$­ë/Ü8àJÍI‹¢© oe4ë¶CÛGËå6û]Œ%#ù™;µÅκ$„…«6$:Kxƒ,Ù¨rî®w8UX$oV-Ɇ–N“Hý^˜8¡|›Ò€K·?î‡Tu*ÀlZsS–¨UŽOê¨7…ày¤c‹­üüÖY?Þ"á( H€R8Õò - ÝÕq¬ñ­|l’:b'ð¤èfLàCb(3¿ú&q~ÄÌ®¿×^ð«Atd¯–‘1§«çÓÂ<ŠJc?¡¼2HÄc7Ê*ËN¦nð×Ë&×W[SÖˆ“D`Ýô¡ûÅúøck–UØ Éßxl§/¸ÒAäëç6~b‹ NP\ðµkÇÞZ* pwm¤é»×Ô5Þí?ˆ †ã“y'''h¸!Y×[½œùÔûxpc?ƒ¥ô-r{Òš§Úiy`zö•ôb¾ŠùHÄQ]Šƒ{"ßLU­ŽstƒJWqÆGŽ3@ëzkÝaB5›_³Ø‰ðÊyüÿÝþþ•µ3âwÝÍïÌÀå.¯ª9„ -¡Ù‘W!ùζ{÷‡Ô3ØŒ•#ÜFÂb¥%éñÒ0øºÇNϦÊ@2ôЋT*Ò¾Å=û&ff<“šg¿”lXŒ5rrò$ðàú~.eà ¤“5øºÚÔlÉi,8$‚±WÍ!é2rÏF¿=Jâ±Êä?’Ü|œNdƒT°+ð©<©@B?×Xî²Çõ{ç»gÜBeâ,!cå`n.µLèâiâÿì¼ Læðñš@ƒ—k<Æò±|þ/³[Yl9eãMœ AJ­ýÓmƒð–ËpSQ‰¶ÊÐõj*nÚs2À8Q…Y)ÄóRxV º™›¨ŽR~ þÒå*¡E[óä=Æ÷¯g…ÐR²ÛåÏC ÁtiX)‚÷C ð½’¼ueXcõ€ÿ—£ügžŠ(Ú§ÚúHhmÝ9` YóèöŠ-‚P‘1‹µHò%)Òš\I.Úm¾‹ÕÀžfóÝ[õn†/„šÐW2^_ñÏÂê-¿ÈP˜ãÍ ê·6‘Ïz˜¤:ÂÝÚg­K½¢_5«¾Ò=v}ðTՆ΅íº†4ª¨ù;Üôæ)6×Ë2…Qšã%(AI$Túc héîO ˆï¬º¡€®ì˜ëaz”ÝQQ–ëjŽ›°¯fÕ;% øÖ«hkqD^ðÎëq¢uj…óÖO‘mÖ^ÞH‹æFïö&_>5KfˆmÞ³ò½QùÜ>šÜAoá·Î¶÷;O=kquHXU¯ =`¿«jœ~ µ}žÛÉé ljk‹–rŸÔ(qx¾tVlñ[3$€2¶.Å< daò‹­ð&ì7HÆáãù¾oíE²|%}îŠEð+Vžò0ÉWˆ½|T Oˆ­røê¬nÕÏUÎôDÁ¸ÚAt¤õ«ô\¿JÚA}·¬ ü÷Ù„™Êä;Éç=Ó$ֲµe_•0ê§fÔ lJåµûóN”ÉägO¦J«rkˆo¦ -sMC ¶ø=«¤µKœ :Ù<^ê舙Ù†X6Ú=!,2ìi7~,¡ ꄹ³î·¡ qISŽÄ›¥=8Ç›Â,˜[¿.%iŠ‚ãè%Šú‹c'âïïGd¿u½¶¤©`íõ‰8N' éGÿÒ”d¢1Lž·z&kKûláBM­ðgK7s‚ʯ² cœ ³8©qDj^æVJ4÷K;uIÌ5ª£nœ>ƒ^Ó­ƒ¬(ßÞ<`ö5â]{”¿Š,¨¶Ù°qQ L5ïÈ£ÕZ!˜G¦Ý¬Ù‚Š€cokÑš ÚxL(Ùç-^RØ ´é ƒžºÕšãº5AH¾4+ˆ=_Sµƒsã;­2CÑÐÒ˜¬ŽR÷3LÚ®I2jceÇ0JÎ~§R6·Am*e›u]"B¼¨7hþr»3ób{ø®åý¹,W¸hÕøGý m@äÅÑœgè\(òHñe$¤?$â—¾Åy²á\5ªAÖ7ì5“å·¥ ¹ÐÚçâsC2ç™T2n4@#™«È¹<%ÒikP”m™¨+-¬1QötÛºP#ÑC¨»oïß8< öÜÃ)öÀŒ ÷‹Êo±”]‘ðxÎ rV+ïÄFóuaäÎ<KUö£;ÿÏëldwåéñÒ$g¾‘´ïÐ"¡0´Üða؃à ;;+™ødí…C$Ä–ñwºZÂV -’á•ýã󀯧N -gþgl>(³¥œx2ß!þEâ{êx{‚é_@0®Ä 9`õ`GŸ³°Úià,Åá;Áâ{ûU“Ã"e·ÃSø£Ñiy¶’òT¶’°¶¬ÊQü6‚–ó~»ÀPáó|Õtm5~¢ÿOÆÕ…{ånT¼6PÇ.$'ƒTÀ½Í‡úƒ,¤à ø¿­¾î¡$h£á™á]Ž ˆC%ö²O­)‹ýÜÚEõ Û§&ÄÞUFÞmcsFÉU]e¾^®[¾Yz’ô¬{5†ŽðÅÍ{å†9oDÝ[âî¢I™æÜsvZ©Ç–È®ð¿~-™VÓ% )Á_¬F¡†¨C¶¢rê [ÙbÐû35<ìíze*[jŽ@.ÇI³ñæ%^•û ×PßÄêtvøÄ+Í<=—¨`E"ãÄ|±{RÑ ©0ÄR8æó‹‹ÉÎn4˜ÚBwêEÇÿÄþ"ŠRmÛo m -ß|€Qø‘*õ3H|Ì—Ã1~X›ÄsÔÐ+îÊ¢ _‰1ÎE' -Ž$G’¿À´¬MqÛçð‹ÌB¨×<­¥Õ0£êìEMLÊŸåJ..W úv̬ö~cä3Ø4@ŠÉÜ5òtÒHjs< õ¼GEfæŒ8b…‘ úG£´ÀYEÏâ”bk×´²žînz …Qf{NªÇ/¶æ»@ Èr•išÞ¢=×áXBIŽ;Q-˜i“ˆT,À¶åxûøX)BŸz„îþYO´pŸ¹ÎèâÝïµpÁã6T6Aö™RSùÒ­S­¨‡ÞŒìC;Å,¸}Eb™3MÁ$Üã!ÏäP‡”¶~:‡"5P§ ´´Ï׶“¸qëÇ£™°:®ó@(î_÷áï¾Ï¦‘ BÁ& êТg]‡˜?6¯Í'ÝZðs¥çNß_y}CGÞc£Û Ú&ðûý—;õÀ>,IØà`NR/^·4ñ„Ѧwþþ¦ÛaB 5êHdV•²p ¸ x¿ƒn^/ĘNŸ§Ö¸ê…‚@Í *@-ŸŽ…n~¸>¤äú¸Pûè”=ƒÂ›æ³Q8ÇBñÿiäaa f«¶YU*]ÉÑ1I“hn=é(9kór»}Y˜˜Æ<Ùã=ô`×—4¦IÉöG`;‘À?rA¶çJíh„•[ëõyÚYžDæßÆÁpÏ%x_Ý{S­âêo.H¦!lêóÖÖ–KˆMøë£g7Xá2 ¸}¡Ôï"æo¬A§µÞó M\âÌ!îEM1ÐWBH\ÞZ˜Ýn%í^$-?±Q¡­²ß„#ºŽÂ8¿ü9•^äMsµuŽ9ï_¾‰ ¶û¦î '»J\"…èV¬äûà›©ЪUéÀÛäN\åK$$QXãñ5$nr‰¥Ë°IÖµ…L+ŒqòÜ+ IŒ~’`löÖO–´4¹bYR6ßcbÁ·'ÍæmµŠ{?•‰í­f|ÁÎÌV.@ýbã\CgÒŸië©aÔ—îºs¼ËÁÙís˜hÓÇ8_|uA£'7¼Úš”²N–© îB|MŽ‹¦úºíµV¾wæû(däÎËgÅ8ctdŽÂŒVœñÖB7J=b%?“z¶{·*Rää$Z"Ø­8X -Jà£t^8Z>)-t“ü6}d´° -÷̨h«©ü}:¯æqç}Rì á«ë]˜z -W¡†¾Ž¾wäõm‡—œpt¸“}¾âüÖ ·æÆ|ÿô6iÑù&l N[˜·é÷dCÜ­ô‚£ËD½¯Ó´1­/ªín½[Ç®WPbúMÿó‹=¾ô° éHL§øN$|VMÈTzšËtk‹Ì`Ó{GÎÔà×­ìÇ2ǼTÒˆ-0Öj¸á~ -æÿ;"¿¡ãؘ·úpÓá‘Ô÷s®Á# ïõrÊsˆ‹z›35cþ¥–¦¼ß=ä_Œ’úü6Î{r;ƒ…5Äð÷ò…Éî!÷5žÆBPÎ`e¸1Ò_àôª 6xvä@s€ÛàIy‚ƒÛ’TÿÞvG@±Öª¢…îaî»YæÂå £['gýú¦÷¦Áœ0Ê¥‡Xø\êêj†/·“ žf»ÇâIbÑí¹½“2Ô@c¶¤ìL$6>zi½awW<·’Üi»ÿðEl˾ê,×GÑ4y”¤¶†ÛÄ ë›[* ±ÔõÎKò¥å¸!I†jqŒÇ)ÃœÑ×bßè »Ðà –©iª8ÌÐ,ÞÎHM¯u ”á"È>i¬!mSþòu'¥É JÚ´=ÁŽDƵ‡ü—®¶¯È7Õ©õ¶y4€=w§Ñç‚“7í—ç'¢%@I_¼jö9X£ Õ.y%¾‹ (?rJÝ\¾Ú· bçÐRcêðCÿ• ^e±)`ør¤æ+¶ðóà ’0U™Š_†äˆNë'f7W"ªõœƒ¬û?1¡Wùlª -»2TÕòÚ¼&X$[Ä¡—Jôó"™Ä/£\¸ôµT`gãKäøœ›3È”àòGÅâ¡Øõ±0HfÍ92Zð¨óEK [—£5Ú*éÂ7¸/½œ¯¼ó=IoY;–™o¦ˆ ¸ý¡$:¸}Þ…ýy‡‚q¶ÊôçF›b”jG»A˜­,b;Ys–w9r‚įéC–½×k—(½>_ƒq -Ú¢Ðñ»ëSÐRú¶ -äªýoC !!ùB:¸ÂuÒß üË Õβ}ñ“§¹rCÈÍ/ôÑј³˾¬k¢åÒÛ.ûnýæÞõ9Z\$N¨ñKD¯¢J’tgU ¬aáèoš;ìc‰'±H­TiÍÇ}˜…V¶9vX§S*ùÎ ÅlÊ$pàÃDNW§˜Æ0u½˜z“ÊñÀ ôs#uõPäØcùPYQò¦aá’±¯4ùWdïþ¬2ψ-%®¢z´‹GÌß`îayE‰Êb¡IÙ•~Åo&¢H­_V›è7y¾QÃês¿Ê‹–]ý×3ku'J+)¾IO¯}` ¸Fï£Uyí_REêNLÀ„’q=©(¹‡y\Îç´ËìÈŒ–€P„=RÁ)ùÁ‚ephCdýN6½ ‘a²X Oé×݃ -«¶µHøŒSñ‡ú“vÓ¬î;-“ØxP…ÛÑ#ÊE£<‡MSƒ -|ÕB`Ú„ -/‰e‘¹ÃôÊp½FCfcA9‡QbR£7Ôè²k1Ô”{ƒ®Q{|w"XpýLãääóÜ×kÀw‰ÙY?œŒ‡M´l¶¿vØ3r¸ÒÁuÑ  à¥LÖ¸ì¯Ã…ï~'{¶*RßaðÆ2ng‹b™Ð­ æIv¶‘kS€Ôtº¼mmA׃ã!h`ìa%?æÜÀ`áoˆ@?ÏVT‘y´]|8Y[f ¨˜sÌs|ÖxPÁøò"ËÂナ €‘=8â²Ú·–Úh>÷ë$ìšâRExâß,S£Åå³55Ùÿ[§®n=Úíq»N2²¦J–^Èíaé».(.- B H—¢B3jј«Tsœ0Y4oë»)§ŒBø«‘Êc(šéÞê'øõ•è³"`±ÞA!#ªmÿQ$x=l«”©ô(,±H#,šÔŠ×Y|ý©nã)Xþ‰ÿÊ9U pµXìØ4õµ’\Ù×ÙšªÆçjÛ„ô[=<+å«qÅô‹­í™Æ¬Ü)蛖ijÅ}ŠD„ú.1Èâ$B3 -º˜ Šü\‚öy²&n•þ-ïÑJ—Ϙڔþ£!¥¬lþå´k*K;èr™  âõO¬é :ÂR‰ÊÈ«‰ŸÇ–~X%$~zúÍÃèxK÷¡fT¯†Ì`²Ïv2¸ßòG›c§š‘áIzkÕ.mäžíJk÷éŒ\…5Œûö|s.ëÙgŸ‚‚[ceªätƒoþšã7['Xoäû•ÚøÂÈŸ^¿O‡‰^Ë þØqœ“îñ pòñ¢ø!Š«?6Æþ¨L3Ôú»Î°ñ ‰[¬âôŠ=ñwñ̸ZýFÍÏáwdÑvϾÐÑ;É]\aÇêÊ!#2\ÕÿÖÇ ‰Þ½.Ôÿ=„µñpF¸Xø¥u÷×\!URþãÔ¤3Sè`;níqJ7{æÆw­NÍEïKh<Ĉm¯¥ ‹óCÇГ\“âݵØGÛ}*åàÑìE=¤K„IÕ¥2\à‰&IŠÂÑ ô.±²'–B@:‡¿ãĽn¿¨l÷O´óGXT¹Î.¢?—úlÕt‡ -·qØä¦þ§{( Ù%Ë­kQݱ¸ÃnƒëNhì -./ã¡ ¨ °2òdä€Vºa™šËƒÓè˜G&“{Þ¯Χ޶_ʨJ˜s‚²á©U&†pÇ!¥³UgÖ“pÑ\±®áµºñö öÀBWæ²ÄÁ©ýM^pT´u² ÃXOjÃ|½î¬¾-€»Ìq$¸jí½®Æß÷÷Ìj‘­w“ùäÎõ’Å} êzCîT³÷ò•öþÝ2¶Û-ž{KšI»çÌŽ<Ý,qkÚË¥†·JJ³i­Zéöá·˜Âì,Qm§kº 6z×YαǮÏØ6‰å5kÔÃõÂýƒ|{ÒW^þ¤Ì•PîÄ6É)çŽëBå yÄ<‡‰¿õÐf5ÕŠ®P‘ÃQ8÷¾ÅÞÍpÍ+Yß?=¼àÂÎ=@¸ Æ$b£öeµ• ~»Så”%ùú©¯Ð •h“3Òs(·•åq‘ÒTó‹qOªßø²9芈&¯ÅíüêÎCœLðúÏ}\î>WæÚcíR!¬þñïì†c·¶0V×ʸ$Dºýgs _±%U7Æav04aɆÜíâRµö¥nŠU‰ÊÀ>…¨ß¥³\ƒ¸Zs.!ÐÇIJBÊ÷ÒR¥+üe´.×4 ¶ÙõæÜMø_ªOS9qOp‡Y[¯ø4k±„>ÈR;0(âÏŠ¥eÞ|‰‰sq¹Eð®ïýbÐì›ëع3I$îÃ#·QHGZÔ—….ÑAµ…<>"Šµo/àë½(UJÒ´‰B—yþG3 ñ˜ì‰N<\òǨª×ŸÒð&ÛcÍ "™¿Û°Î…ˆ`N§w_•‘«±•KE«³zV»!=®ü5ö™ä™‹º!G±YÕË!çøy6—ã«Ã-óyEËw|YãkÖö4ÿîT†siåþT ¨fpLrH?îÚyÓ31üw5 Ò•IÀïÏ…á×U2tõ‚®krN^CÃG Lð+—éºlVnV$ÌpÉ ÷Ð6ÿù8cîB±T”}j¦: ^é%³H¨½Ã‰Ü9/æcI¸Üî.N‘lÔf. vøü|얶ΒõH“¸ýqƒñÖщÕT°Í ÝažhÌ$¾¼cyZXH¶þCl”ŸZÀËö9k‰¥9aa½[ãgøîdtßhêZFUà?ÉÅTü£=ðã/ë©š6ûÁ1}x­—å|Ù°þÜGÖ-`$F=0“ ç¼ -éy$½Ž%ˆ8×Cbß> ö šÊWrw$nWV–Ìt¡e;á«Û” üc£ -´UìÌ!ž…Bü2K.¸Üò{ÇF08ºƒž³äsÿãm‘¨M¼‹ço¨» -ã Øs¶k«žk ꙨnmH¡ÃcÔ¯š—è¤boXY·.A/>$ÓШ#Õ!@#–’— -Ç^©æ°cçS…ÃîP—T?á’‡Ò¡Û*M¥RÍ+ ëàÞ;žà(Bóf%`t´Ñ¢“•õ;²kÃð&ØÙ OèaËÀ‰ì¥jmæe»@ŽÑ㼇¼oêB—^ÌÏËà1ù^Œûð.r©‹ÊÐÞáfqª¬DbÖÒÌ©Ä9cL蓽ÔÜŠÑEö rWŽÕÍí.fBfpbÂä^’8Ub°±Zº‡+n¸¿ÜªtT0—T»ÙÝM¶—ë3 ^²6uL÷'-ôØd×OE*òR¬)_:´a~h¼ÿÙJh_2ó%mñFòï“(c9Ÿ3€Ó ë³ÙÚ+›™5 Â¡})×è .J“lŦ#*ŠG3Üæøq´ïªÛ -Ë_[ë¹ -šj˜•˜–­bf‚¼¥B39âF¾øçüÏÌW«—RÃM3éóÖÓ¨n•Wl_­ª]uy€Þ$þ‰!Ðw4Æ(Œ|qV~θš§ÃT^}댭ôþWĺböç$Ô’‡6WBMÉК>Ù¬4J¬Ò2þ-§§Ÿo»haô«”w-ŸÔÙEÛÍpïøå Pl·W€™M»+]—÷ò€Ûü;åbYØ*I_xå†z9¿ÔFb'›{éónbc§FàÒzävuØÜ%ß³ÿw.ª²º¨1Õ%¢çÈ£¹®aú]w±Ø ÊÈð×ESWÈy¶ ±ßPÏ»¬uÓíR:)v`ˆÌ’Mß‚~b£rH—07HY/Á. ØŠþ#¨þéÅ ÷„ñ°ã›§I•ÐòVâTóë°PGxãðüôÎû1d¹¥u~¸ìY•ëýF8 üf£ñr÷ÐÒß6¯¼À$¦Ö{ͧýrüjÆ•?@5Ž¥ê(Wfìa2Säz¡càNŽÝ[f$ IÅ"NÐθ@ɸŸÞ1_…%ÅëÓ;9@rªõÞÇN(t{P‘EUUAM¹Êö¦jœÝÄ[¼JCõ|º3”ûbû–ß渤¾>¥­{0Á@ž›µú´6}f~Ñ tj«âæé8æCM§ùb@4–Ó¸ @ÿ[ïùN£ù2ˆ‚ñ&ŽÍ[\æéŽ0B½ÌT¹”Ïx7/3 ît_ˆ]î" SXä†Ô*g»K¾x¦Uè›,ªÀ`qÀ¡­ùRˆÌƒo‘çP1CƒÍʯ/br›7‰ôGq©Â¦Myq)ùqê‡èÌJýÔ3µJpnæ–ˆJ×W?JZíÌf„—ÄYÓ ÁéyÞøä) ÝP~-Ò‚øO¼wæ mpæR£Ä]ZeÑ•²Ò’#”ÏÁ͸"cïž%Í ex.4c~1ñš¨Ÿ#R´7ÈãÒ©÷µbJÖzè}f-ïÛŒóý&7#5ýßúb´FÄk vØ'eˆe؆òÀ­±õª¾H̾á‹ÅoÛ¹%c擤r%®Px~ËJãØ¿ê@Úk„ãÒ8Ò>)¢&bª6PÅõ]Ô€(:“§|.í‰s?Ÿ!h ž0ó>Ûä8"ÒŽží®„ÞM8/X/˜ .ÉM>¶›Éà;ÅŽiN-¦y`Ö™öÁü§3:ºj0[­T¦Æ…4Þæ«1¾úä—„ -Ò6²ÚZÞdy” -ùŠÚ…‘0që z"1ÕEà í‚Žºën ŒÄw‡PZÊjºëgL—aXXožš¢÷­ŸP‘˜‰@cGÝ°iaâ1£àýp9RR^éÇ3w]½Ëw-6ÁÓ¼ò"Ø©Âx«}´½¼6Ì-š¢È¬GRχŸ‡;ÿK^rÚî- ³„—S «ó®s*8Ÿ_z¶QûåƒI8ë6IE’Ò¾Åi̼kú·½þýجñBgòLœrWbŽòæ •H‚Rò”_¸ŠØûÓVƒ®Ï@jÒû^ú•aª¸n*5(rÀ-²§ -TQãxÓ²C >!™7þ¼ˆ¢­ïÈ¿˜G-°lqsxæ{z¨tØ_[eìnõ¯‰G$A¬´÷ô¡f£…¯Ú‡ <‰Œcù¼ºÈÊ3_ÉVÿSÔÒì‡Ôj œUM ŠßÞ5/¸JYø‚6Syh"⫬k?½Üï®.„&\!Rj>àf¦ph¯gUÃÛqw8¢Œ+Í`Žà~‰©2’«…¶®ÈA‹e5BÎdÚ#6¯¨³ ¤—›"‡Þþ»ÌRÁ|pšd;Œ‡.IÙ .Beð'7äsÚæÇÝÃò°¹ú~3E4Ä €§@ÑöÛƒƒu>À =ÑëzÊ×y¬Ìý/ºm÷ » ‹,8Ö}*…³8VyŒFÔ-ˆobaQð·¼úY=“]­å™XŸ×#¿å¿‚¥Rô?86½Æ¶mXý¢eƒ”Ž$¢ù€L(EhÐ M¨PÃaWWjº¥L‘Í&\Ä°ì„ôœçA8§%_®¸~ø[|š4çV§yìB)ØÙï[ñW`ò©ùT˜(CušÅTºË‡vù¾#­•T±y‹ÃÙÙ³oÚŽÆ}[\¹Pàç·wËqüæÂíÆâ¶`À#ï;úÕ¤ H¸EššN®Šu¿÷3ãp™™vjˆÊ¡¢sèFçëËqs\™¼®fªnõ˜RT-Èíõt&3ìuTx?¬Œd}e} Å\©]ð¨ï):âùþDšëõ^!”ô°XëlqÍKO·•€mÎYr„rcæuݸe“.³ÍÄç—b„b|t¹M_©õUæÙö\¡*]¤õ8ÝžâƃÁtË—€“YçÄ‹¡Z[/”)À–Ûxa—|{›1M|sfœÎ²pðìI..yô¼–û°R†LrñÒù»M÷¸¼ÊLZH[2KDñô<ƒù2œ#ÁN³¾„+¤›Ïq\¶o6\Ï—ò¯PŽÆÆØ|pùÁÏdbÔbƲQ ÿ×Ö/TkË5¡†°¡IÃ-#ÏvHžQ!1îƒ;~‹°émÎAÆtVi‹ÐÛc5Üé¸>tâ´ª½ÌÚ—z6¤²ÜäúEž‚wNH³˜ b”CQ8A×Kî‰Î8Vµú]àÖèpôø­Õ Éá(¯ú¬–¤'ÎSa©Äs†/5²ìÊž+h[A_ê™:ýVÿ>h©DÅ^;¯‡oåݹØd»þWžµ@õöçè±7lF”ÿÃÀ„BÅœ:﯎FN¹NEæ‰×÷ÞÔ³q¢\˜æKÇ+¢„4¢©A{%Qƒu?¹ ñ”Òõ²Â f/j"þs,2ÃQ\{À„¶ï­òÿh”3¤ïaQî ý£ùb” -rcÁuafˆ yz½}íH}E·¦±}~@ÎáÁ=¦#i+J0ß±€<ít ™?Íõ–°i–D÷¡‚)¬<è 1>’Ç.¨6ºBjsA~û‹—lG|Jì6‡âãzÂÇÜ™ {¢ý LvÛL‡Ä$³³7Dš-}5ˆ:9d¸ˆÇ ¿èpq¿kæ Èœì5ih^lUÇÜE]Ióòþ’ù“`Ü;¡Î_ -ÄþqFtZ/¥ C'ü—ŽÙHÒ0›TÚY˜©Un—”G„¬M®õH:ëöC -ó¤Œô ±@m©‰Õâ—ßn–¦ñùê]B÷v¸@DaZ´¸ ¼€ÔÞ7£sSVå¬k¡ª¡êáÓK«ª CªÊêù¶:² Olr¨ë{Êú9Ñ¿¿zçr^cºÄõ¦ãýƒ?WOC^>ÜHèþÑàw¸µ¶ea%û"Ïuo—ëTv·z$ žŒì&€)¢ã r39/Ð&š2pflÔu<ØýjtÇúN¿Z»¾…Æî½þÒ¨ôÓ¾Xîh~~Ím|Ð¥{J…À棢u‘óBI= -˜øj—ÓFÔõ$øžáíw]ÞÒ¯©<–…Ç}(dÛ/l¯úòôI¨05/RN0ù¨ÿ·‰Šã¯)bƒ[=™¨Øe8étŠŒüÅsüÆs&]#!ßã«11Ôx‘‹Ô>B}2ºâ6”œ¥>s椦ÄÈ…vk2)\ä%컩™º#DÈ¢Çø/‘Gx8È¿È+Öw£¸NàéÓÓ6aÙ´8·îo°1}¼þôÑ7p¶ƒ¶”j²U -ÄpI–ˆ’ÖÀâ[tU:|kT*× ÄÏó§ÍQ}ù8 [À&ÔR 1™' ÚK6’×½º|«&뛯•{Ž”ÂÅÃs={€ž‚@”¢ ÇÔgM‰9³U„UaàCQm‰*Ë÷ð5N†w|©!NBŸºZ¾ÄýÏsã±=6Èý&pFRç]ª—$ËÎ~öP¾5"¤Ó žŠ¸§ÈÞéÜ’¿,©&L„|~m‘M o'@üò-C)$eiÃÓzÆ‚¡ŠuÈP&ʨÇpf¨°æSðWóºŸÁœçO‡Èܾ7™jhDèËt¿.ýº:èÒQ‚\{ÂÄKEåËDH®_f· Þ³‘H—uA(ªGJ<››ÞCüO=ÇoGsOÀ‘#€ßÚž L|W\¢@™ü ‰P÷Z¾—ë€ñ nèE´^TýT|–ºËÂð\w½>aÁ¦®æu~ƒ%g“©íùÎ"í‹5Émö¶F<ÄÁ8Ý‚V°íÓFH<ÇŒ§c“ÿ]²È{×(ètÆ]FÙz¼“_Vd+Ùœú~Ü`%ÜÊîû½‚1‹ô¶dd0„šËöôBùë”H­f:‘|K%&œfpvÕ´é?ü5]=x2žGY -_Jú…¶´’ŽÔA,ð¹Ïl|{0aÕùRq·1ÂPÁsLsjÖÛØ´1š-¢¨ÃFjg_¥66¢»HØñ7ØfTêöyšEêC^ïÍ ä4ϧð>iÔj›)W܆z¿M<$a3#0^bÈ\FØ›ÎÁü\“«zÔ…ÄjûùßS!›üQï8†H¿›%-/“`{<Œò—®· HÇ¡¨œÇ€¬îWVÁÍ…’EÙS;À¸¿âi¢8èr;ÂÖ0°ôÍDãLÁ`îÚr†¯Qkû[,äz[,duCüŠþ÷.Ï ÁŸŒ\S¾s¥Áà|^9+9F›!/ð.Ù¥ ËžúÌÉÝZÆt/ ¬÷ßOqšºàÊ¥hIKÒi°ô®ß†ù'kéÁ<³¸„ßß }Æú¬´hŽOž&TCwðRç+qG•«}Î+ŽŸÃ-I÷ßûÄq#|Wàm"oГ/*î4ûËŽ}e¡CUðøè¾WZšq*¨t])awê´ÀI»4üZ q$ óþ/HY¡¸ ¤³%¬ ýfœ1ø¼H5Zдtwb´“=õ›q#s“«¶Ø¥LLrLùfð». ŒÊšëJ©“Œ¥ŠšHöy¸oæS–9½žqüMǵZΠ}²´{u”ÊyZüÕ)^?×N±Õreo1îÃå+Æ—x&£x¹µÞH.?ìß]„­ðZM£½7¬òeOàH1—Ë•ÆÊÊðMFrh‰bTZ0¢DÞú3+íFÔÎØ¡ªŠ*™S~é\ÒM 5r# ÛMtÂá[GØêø‰Ìï—ÚøüùMØ÷äÙ×iÀ<£ù¸àçΠWô -Šîáúbô¶&tó—ÌH敇Ãß“À>Ý'‰æª;ž½Qþ1 -ÒGldYöÙÚ—ö´‘J¿{ÿ6í\ÕÕØû»ä"Â=íê~ ˜óFJÐÄøÞB಴¿õ[ªD35ÕŒ{boíÒÙˆ¬! -kéYˆš™t.¹Æ«›(Ö³aÛ&;î^,$Ož¢ ÞQnz¶L,?êȺìu¤J¨)¯‡FÛª‰ƒÞëJîf>ÝËnåÚy -Uí'ܦ¹Ñ·YÌI˜®ô÷@ o®FÒ€ÐïõÑ~ÊÐ~³‚8ŠÁtÑ@¬ÙMÝõºÆ› 7«¨-„Ýš)GÔƒnì®*GqmŠøJBkJ_­Á`RŒžƒTh8süÂ,$ð7sý$¦*lQÊÖ¦ô9(Z±¦e(¢{êï‡$ÒVþz’ÙƒMŠE©’_;Cšè¯l9|¥,øi •èg™{3 -ïô»;îj£Ã.Pcð«ù§i;ÝßËfÆ~ÃÐdör2MýPT7þ„ 0ŠX[N´ÙÉÔŒ½@ó»ºâ3i¨%˜ìñ2€Qc0ØÓ6ʆäÙñ$÷CÇ¢†5’²ô@Š£Áxäe©É_µø>IyÞcÆ8h3ZÇ‘ ¾fQeVSDCý¯=’5ã•T4S…΃ՋrËÒÐz˜Ò¾ÊÊÂrý›8¯'`›3š­,e3r/ŽÃ]–p©Àê“–JòvóÐÆO”½J«&Ð4µ69V}‘QE€Àª†ù r•®g -òbgÇÎUO#U%¬öÃZã#c4pt±8²#ܪóüPoщÁ‚3£ÃãšÌr5`OâÂp4T­˜ÇO;šÓ)öœ,,Üæh¬h³•5ðk›Øó#sä°fe*Èê¹°OÆÔ+²þ¶›LSX†çg¤] ÖY‰>?äŒF«‚,ÑP±Å .Ø]éä%:^hžâÉ-¸NØY:H*½å˜rŽÐts:‚ Ã­Xþõ{¬î²€ «Vh£§”-qZ§µºS§“giõUÄÏ_ ¨ŠØc|Ié§ã®K™ºàð‰}c±J›È€O$g8¥xGë–êàæ_¤UæûÍ<£Yœ~„—ÁUøT4j0©Vx.íÏÝÈ$B(4·`„ì6fãÝÂz•S7€„ -ðØ€ü?Õ«ø^ˆÕZau\Ÿ_Šå±Æ{S*,®é9p4Ò®øШÁ1Å8œOG õ–S7ÞÅÔ¼d“;ÀËhÀ#^I¾¿}u×ÿÿnF~$î †ÍjÓJõ(r“>ÕeÑZ»N|#‡{‡^—ÑÌs4üåÚß›Uõ»òmÓ߸EãvJC"ÛBàZŽCþ'XæüžS6= .ãé‚õo0È=÷à»±´êšûKìYØItËÖæÂm`ieKö)*ænUQÜÞF1)ã«š1s'¦ÕV¸ìn²‚Ó›ÕþÙÉ"¨‹Õ*J:¸»¦FVÍeÆ”±µï®ëŠÕÉZ¥Ÿòb#³&P—Äžö=|wþU©lJLå©iÿ€y–q ÀªõYH¦é3c—ü[ƒ¡iú„x<{[·Ê -2¥Mî'M µ¬^燞ÔÉt8=­¶úPYtæcÎÝÔÐ ß,OýR¦ 7è(]@IÛx 2ˆb‘‡âNvD6¶ÕÇŸéÒ’¸9¢üQžÞ玿³VT´È }ù¢ÌgMó3Å4â„Ã}â8|Ÿ?ìþOCQxÛwŒA,ž1©uº…fDz´êç<3Äž -x›ÖÒŸ±Ò*§ê›Ì`N`,ý§œj!†“ŽIÒ¿cýŸÁ f·F>«Í*üù`žûZÖi12³4B°î®,Êl‘<~ÕÏäiV s—ïà9 Š|Í8lI‰)¤¦ˆ–´4¾û¶ñI^ÔP‡îªx½sëè¤? ÷í¾¨{Ví– -Vðà‹°’FåŒ6]Ú%¦hžOV]TÈCb¶C/¼a)“÷÷J‚Ÿø5³dŽî‚39¶zTúvÎFAéHøžµ«œ·V‚ÓÒÈ#ò`Ž½ÏÓžÁ¼(æ¯]WˆG×Ö•mÍ(©nRÄ¥EÄ͇ڣ“¯s€—¥ÑØOÌÔ€Z ¸èyoÆfIï6Öû|×m 8ûÛáj%‰²†ZáêuÈ»ý"ì˜߀¡> §—›*tꃱοPרí4ªSútY¯¯, Š…C?W>iyª3i5Dbä»dÿHƒ¸ª×q#º{qÑ¥D÷ªìÔ9 +· &ÅßÖÀ _Ø·[G©^i<[+=Ï0 -‰÷y¤û)0 ÛÂ6©½S sñÖâ£Îœ²}éü2$7PâÝå8”T^‘e3¼ ý‰+Jrx·Au\Ò*e™ “0 •bvóE iD w4Ë—ýÆãíQÉèí‡×K΄9{^ªZûç3ÄTs$p¢¦JO|éõÏ•¦Ø{Æôê7;È2ÙXÜ¢'8 4S‚!ñ°‰twÈ“×éùjÃen i&k;ÊÃxZŠí4A*ï×UÊ, jÏ¥:@Wc“ÃdïbªèŽš•¥ësÒÇž~¡Eק™Û‡ÔE„qÒJo™x…k—%Aï¥æ…ã¶ÀÌ)³&OŽÝÕ°ªÎ  Þ ”;GE^]¸s$ƒ²Œ˜e_Ñkžã1h|ž‰nY•ýÌ<ÂÕÕÍ/Í„e|cZQ!ˆê}ìrÉUú@t!h³†RØôÛž@Â%{bÄ2Ä¡ùl‡æЦÐr¥`žwJÅþ%>ß\'5ö;ù¸mÌ’»¹6Ò1ö‰„³`Îq’Uåmˆva ,5"9=qÒó·[• u›u ò}³ -ȉQLD]N€Ê‡2¼U£ÌJkkIˆ+¡dö:šÝ>èhÝÎÝh´>-RT’¦ªÙï³*›c©E-ñÏ»ž(ó (E¦çŸò“õLz_íÜ‚:¥‚Œb!ž=bœ„ßE#:tõÈønºÂÎtÀ D3¿?©ÔVH–~ÈÂñËF L|xvë¶D·!/ -¶ÿÛï+jP­Œ•¢&^vß% EßC¯-€#¾¶[•ë%’%j[«ØÎØðW‘+úäX`I=:çêO+BŒZirs¯–m”$,Y¸ UÖrCŠ´¹¡Ô¿uÄbÞÌw˜ŽH°ƒëžÐá°ÎÉ°!)j# ‰©0Èׯa¬nÈÕú8ÂqJÁoF·ýkë SùùCLv v¼ë[$¹Ê~g½°Yo¹cw*NÀA¹aÖCÍøQ¦"| tpÕ&«Ý_v-è8û™×v_þ21½u‡ëàœÀëÈgf\A°µMÂà±>µO²È%Ê®Î/þS(YbT'k!ÌXò“A¦ Ü­ãøÕžCŒ¦?²z ?'Xv ;‹MBP^.[jjê\‹Uí¾bØdõàCè‹ø‘èDë™W ¥Âhè$Ä Âz‚´g»j¿Š›–&‡”áº.–83aŒ)ÉÉtÑ»é¦ßdѨT¾ŠÎuάwØÈŠZ*ºL‡¡ cFj(É­ Ô)¡v%²>wÖü‹‡—€ø6“YªR<’,¡Äo ŠŠ\Ïð¦t݃<Õb¸Ô¬Éfý­Ü -¸U->Výó¼¸)¥¡”¿Ì[ˆ´&ËTy~¤ævcÃWÿÂ-|ËFOiû‰ž¹,I#|6QgÝ~üïÔâýÐ#Û—)ö §j¯wžöÉ•t~\' 3•{åÈCäರÛàÁ·gÏÎÍy³@@ih?q¬ùÁ˜Yý¸šÈâ€íÎл2«(¼GŽ‹ÙE¡W_•zß…õalg£þ‡D>ú@¹}Nk©þÔŸêT´!š4ÿZüËZ0Ï«Û¥XGHªêú ¸n¾†§l 颅:‹tÔxD¦$V Ž ‹"«ƒ’”9Ý2ü³Äá`2q넘X[ß¼Œþ4²@èu¡æ¬.õßXM½‡4μ·¹Çó”æ›—=™Ý:ð wM”öàœt}þ©ò£4wß¼Oä“\(åCÖ†ÃfˆµxaŠkÀ9„'ûZôcxVç$•ÛT*{|‹ȉ–¿:êÀÏ’÷LøƒÈt)ß“›Š¥xì\"±Z30000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -20 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-30 -958 1146 777] -/FontName/CMSY9 -/ItalicAngle -14.035 -/StemV 87 -/FontFile 19 0 R -/Flags 68 ->> -endobj -19 0 obj -<< -/Length1 4310 -/Length2 22083 -/Length3 533 -/Length 26926 ->> -stream -%!PS-AdobeFont-1.1: CMSY9 1.0 -%%CreationDate: 1991 Aug 15 07:22:27 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /CMSY9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /minus put -dup 162 /periodcentered put -dup 163 /multiply put -dup 164 /asteriskmath put -dup 165 /divide put -dup 166 /diamondmath put -dup 167 /plusminus put -dup 168 /minusplus put -dup 169 /circleplus put -dup 170 /circleminus put -dup 173 /circlemultiply put -dup 174 /circledivide put -dup 175 /circledot put -dup 176 /circlecopyrt put -dup 177 /openbullet put -dup 178 /bullet put -dup 179 /equivasymptotic put -dup 180 /equivalence put -dup 181 /reflexsubset put -dup 182 /reflexsuperset put -dup 183 /lessequal put -dup 184 /greaterequal put -dup 185 /precedesequal put -dup 186 /followsequal put -dup 187 /similar put -dup 188 /approxequal put -dup 189 /propersubset put -dup 190 /propersuperset put -dup 191 /lessmuch put -dup 192 /greatermuch put -dup 193 /precedes put -dup 194 /follows put -dup 195 /arrowleft put -dup 196 /spade put -dup 0 /minus put -dup 1 /periodcentered put -dup 2 /multiply put -dup 3 /asteriskmath put -dup 4 /divide put -dup 5 /diamondmath put -dup 6 /plusminus put -dup 7 /minusplus put -dup 8 /circleplus put -dup 9 /circleminus put -dup 10 /circlemultiply put -dup 11 /circledivide put -dup 12 /circledot put -dup 13 /circlecopyrt put -dup 14 /openbullet put -dup 15 /bullet put -dup 16 /equivasymptotic put -dup 17 /equivalence put -dup 18 /reflexsubset put -dup 19 /reflexsuperset put -dup 20 /lessequal put -dup 21 /greaterequal put -dup 22 /precedesequal put -dup 23 /followsequal put -dup 24 /similar put -dup 25 /approxequal put -dup 26 /propersubset put -dup 27 /propersuperset put -dup 28 /lessmuch put -dup 29 /greatermuch put -dup 30 /precedes put -dup 31 /follows put -dup 32 /arrowleft put -dup 33 /arrowright put -dup 34 /arrowup put -dup 35 /arrowdown put -dup 36 /arrowboth put -dup 37 /arrownortheast put -dup 38 /arrowsoutheast put -dup 39 /similarequal put -dup 40 /arrowdblleft put -dup 41 /arrowdblright put -dup 42 /arrowdblup put -dup 43 /arrowdbldown put -dup 44 /arrowdblboth put -dup 45 /arrownorthwest put -dup 46 /arrowsouthwest put -dup 47 /proportional put -dup 48 /prime put -dup 49 /infinity put -dup 50 /element put -dup 51 /owner put -dup 52 /triangle put -dup 53 /triangleinv put -dup 54 /negationslash put -dup 55 /mapsto put -dup 56 /universal put -dup 57 /existential put -dup 58 /logicalnot put -dup 59 /emptyset put -dup 60 /Rfractur put -dup 61 /Ifractur put -dup 62 /latticetop put -dup 63 /perpendicular put -dup 64 /aleph put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /union put -dup 92 /intersection put -dup 93 /unionmulti put -dup 94 /logicaland put -dup 95 /logicalor put -dup 96 /turnstileleft put -dup 97 /turnstileright put -dup 98 /floorleft put -dup 99 /floorright put -dup 100 /ceilingleft put -dup 101 /ceilingright put -dup 102 /braceleft put -dup 103 /braceright put -dup 104 /angbracketleft put -dup 105 /angbracketright put -dup 106 /bar put -dup 107 /bardbl put -dup 108 /arrowbothv put -dup 109 /arrowdblbothv put -dup 110 /backslash put -dup 111 /wreathproduct put -dup 112 /radical put -dup 113 /coproduct put -dup 114 /nabla put -dup 115 /integral put -dup 116 /unionsq put -dup 117 /intersectionsq put -dup 118 /subsetsqequal put -dup 119 /supersetsqequal put -dup 120 /section put -dup 121 /dagger put -dup 122 /daggerdbl put -dup 123 /paragraph put -dup 124 /club put -dup 125 /diamond put -dup 126 /heart put -dup 127 /spade put -dup 128 /arrowleft put -readonly def -/FontBBox{-30 -958 1146 777}readonly def -/UniqueID 5000819 def -currentdict end -currentfile eexec -›œi_,+õ`ôÀÕ"WºÈÎÙ°š'Z²1NÏ‚“R‚oN—]ÎÎÇ+,󡈙ÌÞÙ5Ð; lƸ<ßO#¹¦ ´™v¬32cÉÜïͽL„í£nt‡cMŸÔZô£ŠV¤A,; ¯úëq{ðÞŸûz„`¿GZg°Ç·Œ:ÿ€Œô¥í¾(1·Zzî f°T—¾ö³ËÁˆæ%º‚|#ÉùŽšÛ!qœ'‚ì†Ï/:;Ę=þo¨úËüfˆ±þ¼0ˆõÊ"Þ©^Æ«*úR|Í·•** ¼€GÝy‚MH_Àij¡Ü™“ê|î’YÏ ‹cìÏd8Âл&Î_®ß -¾ðc;´ó¡8t*ä"¸‰êý/ þãDF‰F -c6»swƒiÕô'?#Šwœ²BÜs`lt«” -9Ì¡ÿ¤AQRÍ~@ØT–åÂ%&MˆÊW¥Îûãevóń뿨êãeµEynÛd L¯mw¢CS‰µô6XͲ§~Ö¥.Lg‹O¶oŸ§?~û]á‚‚ÖàèZ½&…m …(ÛÀ³aE=LݾºËAÝl™í±6}Ц©Eï=äf‹]Ts´™­ÌN¦^° ÄÙûXÓ/Y~ÕúÂñ(º«|êÏU¡ìKKrQÍùô‡#©0ñññ ¨ƒúË Iarw¨ ÑôÁ—ÿÇUA«Ê„äoÕ¾4M›²“c4}«qå÷f%QÐ@$pî—×zÓiæ%\5gÊ:ºm÷K ¢ñ€Ž?£[Yqb“ûoþÊ9üû³”³>迶ØÄ,ð+¥°¾™²6€Ýº[aýû©eÕÖjàäG¡™mkIˆqÒèÎwdãp¼V>”!Nó¡"N»ÂEþ YS]jwð Å Ñ㾈ËѼõb3´ŒËééhJ觙ÀµîýnO7õSË´Å Ff!7â-Ü “Ôª‡IÈ™é‚Pcühª«”g!^J¬.•â~=5„JKE+-›åÂKÁqtN;Ò3=Á•›9ö¤"Águ^Ž%x °ïp8Ôõ¡-øá¥c',U·¥¾O›)øaÆQÖòS² mÞ«˜e!ï'*GÝ<Â…ðì4vÒ«´ BÌðx‘€¶ôzder›0P™"[oœEwd7yn=XðAþuï\!Ù¥Y!öE`•J)>$J;p¨p£RêVån>U¦´ïøO ’:wÁK:ýØjó†¿7a³q¡ý¢5œ ´D’ ÚtB> «åˆ•ç¢¶_D5@q>ÃíǨÕo6Ô·¶ñþt|/‡þD!Àž6ŽÈÇ@TY‡>@:!;œ´¦èìgB.õhñ ¼”½¡½¼9øX÷ÿK0xh”…luK\Ε@ÓÁ[s ðæ’ß’ÔEBh_¤¥³oas뺞¹2ömêK8å“tNÂ2;“2¼û„À±D*ÿm²‰‘¬F‰½;žy»à¯BÖ(ŸŒ–‰”Ï´ôeY¸‡p 'Ï£5t^6@ö÷ŠfÃÅÒÈa6€ŒaÖ.¼vÝBäU î^³áËK?šÄ» '4¾I•ÐYᑧ~ö„µxJSÐmæj›!qjU)‚à üöKØY¨‚2~!O&±±$>hè¹?>©ÍpGÆ9#-,n’4ÜÙ/ 0:EY›È-‚K("OÔñb)­‹.'Þ0Å`Ž÷öÄ  §pVÓ n §ÅÖÅV$ÊFŽMf1DV)æWÂTNS¶9PÔó»N nвDó#°GE”w·u¢ŠñA±’ žv\»'؆ºÄ&TlÛííð·àjë®mD™âV)6m©'Z,ÝSÌâÜ@E:¼»Ã¸Y˜.¦ƒ(rÚb_Ylèúë$½¡!€ò,<|RÏéÖõ1DwÓ¸±â¸†©w¹îØ|IÏp®.¼…ò#`”ÝsíM…þNâJÞИôO´µ©àæ}ûX@…%Žÿ/¤â9íNÝn‘ÞÇÈ]§å3¨·Ì U«©µxtpájÂõÈ™Ìu”«QÔ¼³™u —Øqsæ ˉÏ'üJ‘Ti~ûláaj¡Ðß-ÿÓ -§èšŸ¶3ukö ÞPl=»QB¦`Há-)rçêÖ)îŽlÝ]OžÎLv5€ëmšƒÖìoY”ÖXãσèH“%w¹1(†g‘j%'¬Þ4ñµËjô˃:‹ö©’IÌCL4tm`rèwžK•ƒ){ᜠfüè+»,4Ø!Y‹"îg‡pé[H¤õifO¯çûÓhÑåЛiÑßs ’¹?!tÙ\CZ¬ò@qßÛ†öÑáŸ÷ÀlHV8àhRŽ0Ë”˜7ˆ`âÿd(T={ýÛŒŠ9'Eª7Ûn41Ô¹œù¸â.1¾%öÊÂ,¤ÄºçO÷XmˆÖø˜j_µ -É䦿oÎY’îå‘ç(?ÝÏgÐi6Îû–Š6˜ÇƒÒSáÞT$¾Ä#Iö6T~7º™åž–ø–.ÿxJ¶à4 ¿ -¬þá+ú^¸”X}¦e´f ¢óêîxñÔÀîêi|ÄÚ~«…!Y§®´­]F¸ëœ-<Ë\dgîÔ•ù'êwU."ÿü'Î+K«Ý’UF›Ñ;¸¥é˜×ßO¨ë¸€ª!üXmµ¼ž‹r*ÂmstϽÿXª§Zß}éë:ï#ÇŽR˜>6ùô¢ø—«EJVž´Þ“–C„ñˉVî}K5Ä,¶mËnæÃœäžþ½g“)†è6øÒ>‰Øz" ›»E¯½ÞþM‡fèc†!æ½OxP2Á^tøõý&ªiÛdè¼vx¹ê+;^ûIï4È)Ô—•ù¶9K+TÅ×Á(µŠ‘&á„‚%Ü'_{©ÃÛ 3:MX$êšøR|´Š1_íHÚîͪ²›âÒ†þànFZÙÞ¤ìþy=n08drIœÝˆ¡u‹ÿYú¤W=×],bS7£XÙ£Ú4ÁnrTվ㥛™Ãn&„´Å§ßçí³W¢¹£æMõÿS7tò.—\#ýÂÅëõZNK17k·Èñ¦ç,¢ˆÒAÃð’8Ƶ *|JHªÝ\ÎþÙßJ¢]~ÈÉ¿yøj¢¥§o ›ªÿËS„‘º›t†_\;׶øæëTÊÖãΑë Óé˺=€€À§ CÐGX4Ñ‹; ¶ NÕ+4Ò«ö1sÄ‹xb¦ ˜¬“ÌR˜U©Œgk€ã«©»ÜGɧÇ\ô©ëŒ -A}Àœý?–C€‚Ž«É%Œ¢(ˆµ -^’N¶!†,Ô˜˜yOUðJôï{Ð!åO¬.ŽQ$^ÊÆ.Fs­‡ c_»‰ý*gÏߦ_dE€A]˜ C -WÄKV]ïƒSJ ³‰ý‰çê1ÛYvqÞú– Ä>=@(eÿƒ$nÉa7´ÈÕKÆž—Ý1uâ`3“¼]»†i®µ»RĦ¸Õo¹‚øß×±€.—A !?\†s!ýá‚ ›VÀý¿©µ°­˜ˆ‡ìr”=ŽŠ¥R·#„f—ÀžF ‚ÊwËâÛUmM$Ó% õôº»¼]çºoÁaჀæqü;»{ˆ§Úø|pS)Fž&Y¥a1LÓ¸‹bÄ3Yü8xŒ0)ouÐ4žI1ã•å¦ã&­íÀ¹e YáÓ¥ËLkk˜ÚÍÇ6ü¹\*<9:Ï%ΔÝü¹ô€‘S… -ZWAßàÐöÚ•Ï·.6,¥O˜.» ·0L]§ªctÌÚv(?¼{I°M£'OGà¶0µzàÐýJ©ÍFV*bxÌC·\i^àO:1ÞÚgræß^U´V9J­ÌE&›éÊv¿,DÊ9Ë„2åûÖòg¾!²¿eX‡~ª>T¶hÌÀvDüÏ°´2U©JHÖ&ê+²˜Æêt:·R3%1µè±¼k¸Ír §ÖÎyìapn_ܺ«ÅµTÀ«ÔRÂË—kqÌÏûKW@`k³ìôÇyþã7ô´wáïÍJs8å_ù:”rLÂõ<È¢¦”¨a 3ÚÜ÷ÛÑP¤Bé¢{Š.Þ‡ýù¨óIÛœÒ+fî™ïž±¬6IÆ4µû¹ÅÆß~%O.•Ì‚a¾2§qÑ—ßÁˆ¦QX·ŠØ`Æ÷Fˆ·~l³Ä&DnÉ3åÉ ·é±{…ÄÂ_-äzUä;ÊRºoS¢Ì :â0“šúöWý…1:&þ¤[=“ ¢N=ñ>CÏá9>°ÌÓˆŠLÚ´©¼®T‚WšD‹ß䨙a[§n·gh$XSZÀý,t -â?Ûå\3žÎ²êåYO™? }tT Å 6^Äjmoìâ6Ê]QŽµvú¿’yè¤+mWØßiŽÃ^¥5bÊ­D›‹êâþú˜©½Sq毗͸¬¤ṙýJé.Òž-Š×ršþ¤dw‘ØÉXFnÔÛ¡J†âj¨3QñÅïÂtäÂ7 Z—h»ân!Ž4;¹L5Ô¨õªQ¡Šu[X=å+„ —­Žÿ ¸f°üÊœQÚÖcÜäìr—•Cî ­‹ìªFjðD2Êám4€€W>NC²D®®^Ѥôûf1ç=ûƒuyÊô4! éöôªZóP®“:m1^ÈluÞnäº%èº»ãøÿHµ ,ƒ­žé #Ãw •QÊÉËWVƒÃ -? Ž?† Õ¿ z60¢µák´ê 4‰ößó?yAǶÖ^“½"Ä2ÒÃÉþ-º¶w.øaû·ÜÄ•Ž”"A‡4¿ìë -•öç˜÷Õ).ñ¾ _¥’µ/Ù½‹ÞIUz¿&Þ1 œ¥ ¾;/ ›B®‡®Ñªu²q¹ë5/œF•{2›¾/ É÷Æ´2“'_£[ÞoKV$ÓdÒ=Îäžíc~Cš¿-ŒjŸ¯ŽqêÒƒ,;ï•q ‚î¢ÓÒÙü*wÇžÛ1ˆ¶Q‰I+þ¾AF­9°Ržx½Ë£?wœµãAj€äU¿ ŸžT(ÙŒRð=¡D, Ÿmâ'Ð…$BÕ½-J{†/¦óuÿ]ùN.ˆ´~úðê„À À2b+Ôê«£ -œÙQÛðÄuô!Ït¾û‹ØB/å¸Ïm˜z­ÔL?¸âW2õ¡ -#R-/m5' Õ’Z¬ JÉ0§â¬×™1…¢ÝOjãÄ2ÄÞ"ßýˆúZú¯­àü‚£f%w$¼~™\àU - ïèì?N>(ÛÄ·ÚXBVHWgú+ Ï™m‘u*]‰r­¢¯ •Oæ¦1Í´V„ˆãfÃĭض¢³ïvT:¢‹fº)%:©Bcÿƒ%”,e¦÷$ŠÞ­®¡&ŠOÖŽ3¾ -ÁؾB#`C©gFÇáòí¶´oµw[;Â,V“P@æX$ëK"”‘/|ZßÛ„8¥Å}}Ô§Ú÷qÀöôE¹möj3µPì=…íÞV¨‚nö–‘’ùK7@—Ë —sDØD„¦ˆeœ•EB>à(…[ÿ$kÕ…þ†­Rfo&Ulë>Pk„MˆÔ*Ýä4ªN1¹„CŠŸxøËH¯ûä’æn½¸¶zךÑP5F`$lE! -˜: qaò$ê X‹ ‚£ýv“O¢!èŒaÒ-;"Ð(n·ÑÌ(À‰÷ì4†n±rødp©6mª@:_}Ô)Èwé•îe΅²x"¶³j4У?§÷åµ»”®0«p -É[à)a 3ÂýAáü³©¬jR)äå_Éà‚/"‘òÕ0ÜÜU'.xbU½&6ëvÈk‚ne‰pdÇvÂrô„fG’W™ÝŽ¸]hyþ%žûFÝ4®ZXcÕïv·=‘'Π&SßÞ‹àìäuîá³·’Eú^©>/ºûx÷”¨âz‰¼^š:º“Õ/zãìrùbÛ7,zñï®n;ZÜLûiq ;ÌFc›½XÍ™À,É[tãA†1$Y¦Êå8È`Ÿ?—s†Š•ÏÅí³f•«Ž×Bï4ð>õ0·“`ÃKJ5›Ž@²T‚êl¦’Ó°hƒ¹ÈÖ¬¾AúK¢":>Û~,Оž ´¡Œs•SC`~ƒçYÜÍæ•ðséélÑ1ʇäOÈä^›š¯ÈƒT‚W ØrÑÑXÝdlC`ÕÅ¿ïH+}‰aŠ”£>oIÿrÀXÀBÁ‡ÅRÔ0¬QœIj`Î[}æbñçŽ*¯ÿÛkö”ï3»ü8Õo‹J(É¡ý#ŸRëÐ.Jêú”J ×Åí‰\¿Ò<† -ð¼H.,ïŒÎX…~(¶&<κl3ÌŽ ­=¬öÜiiŒŒí|)7ö·¦Ê®To½ÿ¯÷ Ö4q¹¹Íf ‰­f«ÿ’< ¯°m«3ýd-:ï¼—®]b?äŽû†D3i2%%+nM -7iUíÅdÿÜ.JúX¿Dt*žºzÏGzÌ'(dS^Íš8"—ͶףJi—“o…õ3‘Q™¨ª!ùb„+£œqžš4Âßû»ÛÒâ8 c¢ôpÍuŸÞÿíššüU{v ”Ýe›æã\aÞ,éÕn@$éqiã˜BñÛEymÕnòIæ^Æ¿ç.Ú1.Xp¹®c]€ezÚÀ‹ˆ^.^FW¯¼ÀiÃ7Ñ°?ÛÊ9ýH¼[ÐÅ¡´Òãf\å¡\·€ü|Xð¯ÙÆÃsuÇ&ïÅÄÆêÆ -¨b2žÜBŽ—×Q/a¾b€' Ê«­9*?D ëâßI„Yç¶V!j­ùÕ‘† V×ÇC«qÿ…îe-›k*éaÆ'u%4Ä,\xv»àÈˇä×£¾¦ýV¨EY -©0Í-¸•hzQ‚í‚jˆÌùïý¢§ÉÃN×æ+‰^iOñ#Ø -Î}ò¬îì2SÜåÂBb½s¼%<äaíŠ^\T™ãQ£5àíÃ{ *¿E~½MYVɳL‰Y¤b±2Û5ˆiŒÎÇqݺ)Ðç -Kó^ˆØ¾%Ü [u.[%K2ݽÒ<#ßGͶ[j0X‚Ž¬cåM3‰‰‰Œ ij=ÝŠ¬ž%P ïBÉ;e§»Êj©A„ÙуwÛÌ‚ã§/°…lˆôÆÓ'7×-Æé¶Älc°JºèÎv¯·=¤t`F}H\Œ¥§-:hÿÑòïb¡|?íûÅ~,… -iDâI¤{‰XXHÌŽÒÕ2'ÓtYõÅ#‡SØn–¯¡ß -gî·žƒhœKÅÙ5–ŠœÆ‹ñÁŸia“0þ+ì6¨`Ãáв-` ½“$xn "6~oë³Vã¬^ÎÇð^Ê2Ô]_äfn?q§fH÷ ŸàäSÐKŸ&Á”5n e‘“?ãû\yv_|°nsÔŒ²$”|+°àŸÍvÁ^»$ RºàÞIìD<‰™úU~%EhL¬q´ÐD3}rPGqÎÎÈÌî4ò-1æÈNÁø¿Â!ñÑAÍ>_pèºô=£èd« š‚ŒÁ E—O5„÷ ^çBÿ0ÖÌYxO¨µœ?2T‡£jl…ú&áTôµu:NmŽí;Bj{9- /¯6èržAž*@Â\eœ¦ƒƒfùtáë0ÔÊ.RÁÒ‚ÒÇá3µÑĬCX·JM ¡«1»Ñ=“ü–¡ =Ôw]`òy>ÙNÕ}r/ŽwTxQÙ‡j»aÀEzBûqxá:@Ȳ%M./B¬°yÐó…çÛâYÅ»:)„:é‘—³Ø„€©En|ŒŒ.‹µ´jíÆžQ•LŠý¯µ*x_^ùb¸ûºÄçê!H 4K›†iàéû`÷­n Ùú³†egžC 1#³N_’bšsžVžr¯—È°`à`¤[T -]æÑ䮜%Xk(wDv”ôô.îŠûq1ºéÚ%ZD(þR%EîçÇCg}†Y ´Ë¯ -r4Æm ì™#keŸ7ÿíÁÞ­jgMJm¤{f¿Îj÷§¨t›“–*]¾‘˳ts,––1ߤñå&ÓaBhí®ÒTärYí»8áÍ18“•íŠ&ûí"e*ý@¶'ó¬ÒÑÎîtÊa¦ºæLV~hÒêbŒ#§—r¬Üùûê—¾#-j¶÷»~ïÀi…;€ÙÃ>¸Kú`¶¡ýJAœ¥K(Ž0K"^>„bt?^£ÜhOU]òà8Ïýªn@AïZphP{¹Šïcø¾ÐMN/+ˆÀÇè; ´ÿŸX?‹ÖþE1Êv®´k9èô\t™÷–fj P Î¬4=YŒvf|ÎGxÄP­ú\®ðÖYxSìSµ so!CcÉ°ëÁcù\\IÊR¹1OË› ¿ûc™Z¹•Ï³æ_÷oB©Kó—äI!;w…Ž+¾BHWÑÇ#Ej^¿£m¬) dÞ!ÙsV}NSîï¹ßÄ¥¡‹èÍ{Xpùul£hˆuÈ)PBúœ8ò§™ŸA«p(Æuª@ =gÌco˜ø…ÉSl¬-Ñ/w'š Õ‰®dGcõŸæ=I`1oxš1¹'—šÍÀ৳::ˆó0µ ,ó}‡Ñ>ao36 ôºðu‡‚ú{¦jÔ«Š;Ó’OÀ÷!¬e–ðÁM<ì‡[ç—KCž„º¸OC±¡*ÿ.;ê+Åa»Sª'2Oè£Ú( ÇǪ¤èr™é{ÉZìÊR¹~ÆÕzÅß¹å.|Åà»êX¬Ýuï¹2™[ôÞ~ú¤ìDêU—OžqÀqÑg”K#<÷‘®1§ç2S’Ú1÷\ˆ±Êvìÿñ½¿Æ•ÍÄЉ)MÿÁ:WãJräT©»èÔ‚CnŠxˆT(|iûqÓ¼ \á%©çüx˜­Ÿ®þ½Ödâ‘úWéêØÇ|õÎÐœ’t²2.׶âèùÃÑúŸÍ!Tà›S^i¦’QÈf¦“QøòO8`ÓÒ¸ýë{€Yàõ{:Æù½ÕßqšÄ„5QOf¹ Â5 ñO‰©½’¾­\/ó 4³@í¹ 6ˆžÄ %¿S,‘áàûŸÛ¨ZŸ¿œƒ"‹B—ã³øzÂÑš©Ìq`¨DªxÑMÊèÛŸ5¾Þ 3 /és²Ú"”UÇ‚õ3µ¢Xôݾö]A8WüCÇb’Ã$="QÄì­¸(gU<ÊÇÍyç/Ç…¿-ˆN€9z4Ä&Š€¹ éÍ2.Ô£6ôÀHÛªJŸ3Ê«uÜþÅ>'p#)q£Pº›0K:{Gác½|¿rE˜G€ï{)DTPÑ:駑B,ÐÎß³œÔl«à–Žq®·úy(Á‰'&Ûî&Å:U^½EÅ.Y–$tËhN™7ôDI¡îž=‹“òMœÄûâ&éúÄa ‚ùþšuÀ’M°q¢hÔʵaÚ#Ú¦d¯ý¨ŸtIÓ¡Œ(X _˜f§ÃÄV€ÊrÒ]-× ß4 ùW.K@å¯tüñŠ p»ekÛ¡ø¨è–ä9*¦¶¯ƒ«kt„°Á -×#QL¡Ý!ÿ’AÐ-­—˹p‹†±…çR¼jf*ŒbâmlÜT(+Óy‰L¼fäªZ8ôM㮬§~iAP» ÿ!ÏÛYþÞ]ü|jœÞÁ%š,«ñw„û¶”÷x7o¼4ÈU{xñv|¤Ò Å»}¨àø€ƒM9cÏ2ÑWD8¼bæ–Ç¡PYÑ“€×9°]Ï«›;a>ܾ© Øþ·³gÙ ([¾ÁÓMžvÂ:î¢åŠçûbg/—âc¾¸p˜ÊX§È™2™¶î#ïj:u©¥Lèa3­V“!ôq£·ã·'}¢9Ï”‹£v•ñÍŒñRƒèŠ×Ž\9•:,žÂ fBü#¡¢ Á¨ç?izðuðl¯ã¤Ût>7ÒÞUiü[§öWÜ™Wö„ì øAÅ©®qŠ“Qf±!j¾|XB§#œŽoŠÐìsÙbŸw©ƒóä˜íA~J(3©aggD¨%-’“×èiZ•)äKe{aðSz( ©B‡×˜?ü½j•|{t×ÄלGL¯fªÀ@]ì-Éhè_œYÊ!<c²²òêeD2…÷è:¢®ÐY&u1k -±Â•Æ¡þU<Òéño|È!ö'*ŠÐ wU”º¯ß÷Vœ»³S1–`e”å±äÇrëYŸ?3 -³ÝŒ&UZªFÇ[î= 9W 0u“9O\Å0}®™Ç:oÎì¡›ü5öÃþûE¹´b—–°çp¦¦¾¿Ó£Bw݃äWZ,K“03lo®kGCFI[hù'q_™Xã\IÛZ\­¼˜YbÄ Z}´Â¨Ü -@š±‹pÞñJôLÜpK|_›ðÞRö…Ú¬³œ ®æsœõÞåû*QÚ§è=Q ©½@dš ë„݈U¸Ý9Çv`„Ý£ óWÏ\ìãп߷›@.wvgí]B©»¨iãlë çÍHÊÇV-Ç@Wt—±jmQ(ï‰åÍì|“êÛ±¶™¤‰ÎËQº\/!°=5‹è‚ë'M¥™,S#uYê{YÈuWö1êdÙ“ÌãÛ -¢‘å8P–cðyZò •Ùˆü/Ôx ç”eAvÃ1î  Ú-ÿ~ƒ§”…—²1 ý:Á±¯r´fk,èEY(]ålt&øäÖúiM×0þö‰ú)ýR MReÛÐyha·+꼞béà,îÞœ¯G‡}kzMó”ñ×|úÏñ²²RiRè•hþ[ré „ ÝixU„DLDuÆZ¯­AvùÙGA<²Ê'·xz7hð%NƒfEÞÜÁæ®<^¡ ußý2ßœÉã æ0+§ÑÕ%Ž\kb1ǾŠä~ÍDÕz´-1žªóÔó]½Ÿ:AŽ9âîÙE€ˆyˆA*GÎ`Ά½ÜÞc‹áR¾Û½V® -=Ó¾â0icfÚ‰¸«c·k%š<7äM^y7¸E>¾Þ€ßôý” 4àÄÒB:Aw¸XsU~Kl"KÌÊÓ®ºà¿²zìú}MÞÒ;x8mÇx] NÕé,ÐoHF‹à ض²Pþ`^®…{®U:L³#ˆÚO©W¬#½5 Œú÷–GW³B®õ;M•i¡’—¡Ø©ÇÖ»TV#]àEÖy€|ø¢3=”Іשæþ½Ç½A".ý¶1±ép4@ Æö3÷IUúæÖ´“QÝýª ¬Ê®§;P ¼û$œAÒ¢‹ÄUFp™î¼Á¹úlë 0‘1Uì#·¢ªŠèð÷¤pƒ½½€Äé¾ -â-¥’8uÐ7òî—`Jrg^)XÁò’èºo¿GÍA•ÃÒI3ZÇîóLAšÐ‰lvG%›]_»#º?ñt<Šb©b“¬Ìžä˜Üûç³ÛŒq:ôBò„V€·&p©ÍVQõßL~qu]óVÕÈÂþ(Ç©€¸NLJʤѻÿBË‚àY«\*ÅÖ¥>É2oaóÅ‘–¡¤~ä`Î ö§ƒá*q¥Šx3‡Ô~[Š'$ÐÃ[9 Þ$d6ƒ†4¿i1¥¾5Ó7Ú4yGàV:Âär}P!\NÐ -.È 8Ö· npâëa¸WšGÆ °/<9ÕŸ^l°t=ú=7%]Ëê2“²ú‰ÙTú†ÆuOý²¦š’×d™t³\<ÐåC\Š°«Ø7wÐôÉtLÌ3+jçðAøêà NsL·;å´(=Okâ,gû|fAö,Ø -\…æ9¾Æ -2¹·Ÿ‰”漫*ÙÚà&µî¿<•Í(kZ! *È’Gâ™l¼ª[Å÷-áò¯ã&CIäОB•Ž!bÏg«òÒÃ5BNÄRÑ£SL­X¼HæT•(â ¡Z¾??FVÙ{ ‡ÓVªæç o$þrF£Büe]E¯ÂìBGøÚÈõ¶½“ 4½CPC|æ¨j_må¸å}³º 4Ia)Qã_G^ƒ¶YÜÉB¤7¡¢w†bìäW"Ý%Ð¥—‡÷å‹ –¦R·pŠŒ‰Ú©µw¹I-Èʬ'Ä·<ÏœU´0û͵Æê|ù Ò¹T¾£Lÿ¦h>Å£¸Oû¾åPÖZY6hHgÄãiÁØ3ôÀAø[Ò˜´I­S1`kÞÿ[\“nÃV%Jlë4E¼´ä ?ïÚÄi:`M¾iÖ}D=ÍäsZ‰¨¸\F8 ŠA•Û3q_a³É[Eâ±?…"¤LIHª”7ˆO€SXÑÞ@6𽤹†Lù„/]n~ˆùxô€üÊQäàÉ)Áã"u•ý¨ë]ca¥Ž ÎÐzÎ}3ä(FWxM,¥ ÿñ•]]”—°ÙÍFÓ}ª×•\Dö?èì=r õÇôíxŽýOF9ëz\ÅA›ý$\•«Ô­&K¾g!÷Jeâ·üá ¢5䦀%Eèå%¼¶EßÝ›‡¿sygoªCùþ¥Ù쀞ߞ´ œqã„/®+.è«b‡ÃAõAqD­¤À[›ãûã%$:âÀb87ÒdŒ'ÛaÑ€ªª~²•.(…6§6acEH1­ÓĆ[TU¹}ïõÎitk V:Š*ˆ­†êŽj}|0ý•}®3ºêEÿf®oÄŠtÅgûèÝp”í,Mnq* blÿgçƒR*o„ô±Ãkæ Uî Ôùºôd– -šØëFÖÜÓ6öt!¨DTQ_¸\ ¨è+S­;¡A³2ÿƵï뻨Üxë¹E¡L‹!/QÀÎ.—æÜéHˆ1½–í_*Á DÊ‹ùÒnNx<õj;Q@Fÿéñû®¦÷ŠÆlb/cn’w¾ýSxö…73á‚;¹=[­†G®«î¹iôÊãu—f| ùñpK4’ôƒN“(<ò–RpmÀÆ­hŸ;ôû|<,äÁ"È÷Í0ªXèÀ•?UCšàÛího nÞj4µóK_Ç='‰ô´ýŒç #Ž¸KÅÏqÖéýNaˆHÉij;¦¾}…fÝ7²ÂDª†âV¸å•G4í¦DrÄ8 Ck)=$[&Œ]ªu -о?Z{Hç×OÙãçúWAûÂMq„@U–£À”’ƒÚÀÁÏëѬoŸL£ù=T[t¨ÃŒ¯ô¿ã­lŠð/ü²WjÂZêWü2(6²­¢EÑ!ÆæZH9ÜR?ºgÔ/ ¥‡Œ“9àbI¼GX…š™E£i¦z×ómX2VÝeþvÜD˜òTÕÍ3ÉÇ—ÀQòÝDztAH¼ü"Dõ–4 iÙ¾”n³îV BT8ì­ïK¨©E-)GÇÍÞß]Âî( w$H*Ý\JNˆúX9ô\•ËlAØwY«!^Ϯح8zp²}®a"‰Z²“í@‘+ï×ÂReص.š°0ŠY ¨ Kl8÷®ÀpÃ]$ÃÖTaC÷æ%sÚlrZ&¬Ý,X;ˆ¡ÉÓ¾›9%`B\‚ýâÅž Á‘ɧ3‹”÷-·•ÁQÁ{`´:ÝM‘çñ½ÖÉc"ú]â!V+|Zþø”ô©Ý6BidPŽAU²72!Õ¯¿Ε‡˜Ì¤æª>îëLr¡$¦E×2oÔçúf;;“…U¹á/:Ôñ‚Q(ZŸC_ÙÁW+ÂdÃUÇ’¤w§΄>#ú·£%À2)¢W³ -ZÍ ®äÚ‡pW»?ñjxÒ“¸¥PxX¼žƒê øBë¹äÄ‹´H ÐëDÑ’ZˆïŸh¯†žGxp¤§ü[)šÙÓ–l!Âqkz}ƒrÍÞ`Å WJ·xÉÕ”Y¤2ÁÇ‹z._#ȃý J° þòBk·åìï~‡`=Q¿ër:»þÝDï“eŠ³Z0k–Ù-6¬bÎ,,`æuƒÛÏ7•:~Òò/í+38¥´« ë‚‚®›åû7xvÓ½ "ÉÔîNPˆcr¢6¤…4" ! £F×fzŽ"„97×{w ï¡•Þ:AÞwλ/«ÅT24J›ƒs˜HC¬)s¾ÂË­VÙeÊ+ÂpÁ¨R"Ïì]¹9²kèçn¢ÝuÕøŽà„~š‘5Ó‘`#:Ç(ç>.ó¦È`r-i©° W¥Ë@OÕe?=¾ph·„Sò†ò¿§,ö¨ð½þ¤þ87±*ÀÌÿ ’™ùµ;åhXK‘–9Žˆ“”ÑÚõ–^H_Ï\ö‚½…‹m;F{N±)q×åäî;д±nç× ±Ö–6¬Í¤XÃÈêf3b§fPó‹Óíì¤û8ˆ@ˆ{`챿_g¯î¥cÛÒªBˆa]œKæÅUü\/Òë‡zNæ{…ž–g“0s*D\<Oïy1Ìû[Á¿[½S¥½ˆÙ¤$ñ®³‚„B–À6Qá Do×]¡Ó[wéNá扄Jȉӳ’$<þñ)ÛœÐHHÍq DråÅýÁ:Aƒœ·¸W4C]jú+ ³É¡¨"udÏ_¾šL.úYYf/+tXl‚o{9—)(ïŽ:×N}õ>Ej[tÜþÐ9ä´º%ÑKœw -êqEÓ8`;%è«·.…¡ú~(0œ?ñÏ3:£dJ[vM´8£Xë\§ì¯þ­ÄS™láxiðAÒâ Rûà6#žTŠï”k -×£ÜybéÞ“¥]ø|Ìâ"©Êk/ÝÈVö;1w‘ï¤(Ñæ\ -FØhÅhh@C{Òs MB®S—8ô¤k7Á¥OCüp u4øyi1Um^³âOQó—›ô>3kÙþ᡹ÝȵÒ2ó\$ I\Ò|¾Àò%`å…n†ë|à• Ú÷¯¨7Øk–Ä£¯l)ÐjâRq+QS±¬ÍõŠ¡Ó.x¾´BãH5¾»î€:‘‘­ò¦¥yû®^È(±:ɋ⹈Š¸DU£‰yã€"h ôlrØŒ¥›jÍ—6L°ôõ°øõg÷8@ù;0©# 7oïÎá{b§ñóRü7%þŸOO0u½’—ÉM˜Œ7Úa‰øÓ¯bI"ñ½M™Õ2HŠ8‡èõ!S©_Vuœž¡ IAZðW󀞄pM^­ÜPª)v‚eÙ|Žþμ{=©—½{ÖûðŽ­9…Vk=æ¨JOÛwBŠîJ¯ 'IŸ+è}Â0Aòf—]O©è©4NÆÒâ;0_ÐßÀ—% Ó…ëÛ‡!µ…flúV!Ë%ÞK3$eÏÌ,ÆJ£¾crúµ³@+6×$- ¨²+øòO#Üæ8p){ŒÏ 屉 -[Ãÿ×ø3±66ÿ–ä!ׂ<‹iþ~YJÿž½¡™5ÐjqG™O©CÒ%_÷Ukë~C„qÀ§©ûp/Ã+í<£ -ÙqÇåÉq¾¼5Ô xýàì#!û6p&]n$¬»´IÞÕôÞ] v߀Xè‚“kÂK'‘#¸Ÿ‰ˆë˶´MOàÆù쮚¤Žîô ÃYÄý‚§k¸ì°/LYicñ’¨å®zå‘{ E}4ù°|Æ á h®ä¤M$$Õ©ÛPtµvYà§YšøÓôâxT0‚\†‘)|&Yí(iÀâ3”à=ÕPe¼} 6*ãV…²„ÒuÚÂbn)‡vp‹††e²£ÕãrËB²ˆ xóy(†ø `‹Š?äd5_Øo®zjhÂÃø„§¦-ûtÒ¤x·Ó%ˉÍR—râtÎóHÝá‚9Ñ?Ï[³ Zýç|ÊŸõ¢ë{ˆH…X Qð,o?×h2ͦ_ÿJ¤ˆSsdœ•Ag6«~òr|°y>W6Ëo±"ÊøEd -;ä¯ÃOš"ÿ¹Sÿ6eMÂfâK•A²ºýjÿ‚ñ¨›lŠÕ$©¢mÊtä»KÎôys\¦W¶<ÛJüCLÓ…¦«¡Ù«Ãñ(—H½)Þþ~E­¤ ö_p -šõŸ-lꌘ‡Ã‚ûɆ²ayÒAö∹ÈðÅwsVgSë®RúGîé·L9nÎ,–' ðŸòa˜?Ž»1/´ÀŠ²ÝM:³ÃhF륙ÆêŠdÐÍå¤å™SB2ÔHLzFÿvçÅ.¶h9›Ç£  ñšGxºM(XSŠ*òûr,$+%IªMm´Ô‘Ç3 É"²%”Wb†pËÿ-M ŸÔ©rŒÔüh óºèé¼tÓÿ6ѼOj?ŠÞ]ã_ "¸‘à5oÙñu N¨Å¡:\×ÊKšHÿ‚ûG8µlèÚw 5Žüë&´þ?™âDoÝ® «âs.îÁšIÏcÔ‚Ñ!pŠAmwc±ì±&fé61óvb[eµ”‚Æšõ5»Ø“Ÿ²R·((A›cZ|û ¾Ñ¢ñö9õrtKèà B@—BöS'SzÔµ.FÑ(PIÔnM.†¹ȲNb2‘kšH~¡ÛåGø?ÍkÕ·q28 …f³3<œTšõyu¾M3ã`S”·{± »ÆòG¤ëe¨l2öu¼&06U¯}Ä5ôR\¼Ç?lt1𦳖XQSzi’É–Œm;Ë>iþ"§cç·Éµôƒjþ/T\Ò±ªf(1o슴uæ'm -¤óíÈت™n|U˜ 7)’€R®J RIðÿ»Ò‹TÒ´–Ī°¥(2ÙQ>ˆV(w&’0ÀÖ\ -„WKÌu1@kžyôõf'æ’µ4jYêË“(éllF;B ä³»}£^*°—]`!ÁâŠÓ‹èy2Ý¥?à ¿§+j¯Ì×¥¯/d§Ód¯*â}¯[æ~«Dð+óPzA‘ú‚"ƒ>áV’Œ x®°EH½ËW<£¥ûÈ«G¤%¬åÞ¦ê*4¹¡p{e©û:9MÀ‚jjݹwd­³(|ÛƒÌz&Üe Df -.%¦O¬®úaHPßYzrËo9刃ÇzN·-v {ÉÑ;ÛŒÜâÁ j츖Em–Äã–4‚96„Ub‰ï€-8e{¼„©?Uã7÷P->¬¤öŒG]² -šIwf–««!ÃË>eòy &è@~j?¸;œ–ÿ>jqçj P^Œç넹©½Ù‰&§r€Ìãy¦ë NéäíÉ¢9!« ï8>ìÔËF|b–#z[žbaL„~[±ß»%Î<IGÇ Ð›z cÉÏ :b©tÕÃØÈX÷Ðg/výðQ=&F?¢8ÔÙjXÿ‰‹1üÐÚI‰fEm Æ Me®¸‘XÝêFå¡f^­qXEµuè›þ4Æ)uZ›ýê‡E¨žØÍE,¾“YM$oÀÓPRÝ;¯mu)I¹¯•ýÛÉ7ÒÛ‰¼dåëqÑ;fÛñÚYà?¶M㪛.æh`z»T·ý^„Æ[ e„ *©Ã&ÙÓ2Çb*÷7‡Ü‹˜Ÿ¾àªsÔ4(ÐgKçaréNW‘sc5ßòè%nΩ•Xiéî'ubOvu!o»JŒd3Šæ[GN”¢H[utA«ø`Ðë1ÖWÿõ iOŽ6çõ/.Ã3Ê{1ƒt÷NÈþ®lú’ - @”îBòáè‰ôiÿ„‹ðÑ5HfŸª“3“„€åš¸ô ë˜ÒFÝL =‹y6@'ÒB•$ $ïN2;ø2ÕNã<Þ‚iEþ©÷ü¸Õ꽎{£¦#χÏá¢&ˆÁ¹À—ñ#}ÂÃà±AÊz&¯˜Ô¡0ÂI4~Ü/冔çˆHP¨ßtP'<„«šíæ„CH;¡y$Šà¸“Ý,ù‚qÈÚ5ñÀKñ8Açxq³¨¬>uÅ6JuÊÿǹcŸÉ -}UöfzÏ¡=m#˜…ç‚I“%õ$Ïy_P¹"àž oÂŽ÷»t9¥-úH°M%„Fj¨¥ )ד¬Q¹³TÒò¯Ä!Ü#þº.TÁX$sØØÓrmœ­’\ô%9‚s×rOý>%­}îý]÷£¿@JvzVÕ3MðËI}`Bq/UÅß@ Rd›U»PО¬²´Ç\Dëc†ØBÍô 7ÚiY< r°•NUôéN0?šdJ@j·qsí¤Â`î–IŒ:öŲ#×:¹ñh_`gåÖfÈ4*­L0ùàþò%\*Jæ(Ü6Á_Ü1Í»Ú#W¥>dý±Fê4‡È™*s=üCë«Ç£×~c[ÔédÚ/TÓŠ „:¦Ùä½0ñnIñÚ9íÒ¢Áêþaßø=*_Í&§C¡òÈWm5² -Ê’ºŽåV xg¿û²X£ \{¥§7eªÔf´ð؉Ðà¹?Ž¤OB^étÚÃpd¼Z}Û‹ã.Ì‹7µ™óuÒ$q<`?]ÂÇŽ€.I ºñJ–bÿî,MÌæèÓM8÷ƒ -›E5a%éNÚŠ1ÆÊë?‹ý¥îJ|ñ§Œ2Ò¡b7œ \MWy¤¡uÞ,ÑJ IþñO›ë˜È¹ga5Ø$y1Uxrà«æPBŽÃ€¼5Ÿp[–ÃÄ[¤Fž’;uN—: #CÉr1T˜\êE$ÌÌF™èÉW~u †_l×þÒ.k+¡¹_Bo°Q‚2à&˜ôK—æCÀNZ;«™LÔ8Àj:úù–JŒíÃMûÿ)ƒˆN$µðPÔՑڎ?ÃXÝ"0rÚ½×S§KÙ(uºåOYžÀNÚ‰¢ êh"2åfÊõº¶Hß­ÆœÝ9E+¢|žâ—K»+Šï‡¾õ;±}¸pt_Ídd{¼`õ8ÞñâÚ©+g+#áPÒ$·½s'?X¯×æT>›âA×Ãc(>©åL4—d¡ß,´„}s€Ã\õL.Ñ&QÖL¶€MîqjonòLË6ÆF¹¯÷ëÕ‡¢æo2R ·›H°Ÿm#àÛ x·yI«†Ôû‹,Êdb¯BïâèÏ~ŽYÓ®&5™·!Ç÷©úùÔî , òì ÁÝ0³Ñ)Öúõ.“yæC|³õÜuð:;ôWò›X) 6KNX²–ÜâŒî ˜?9œ$·ÐeçLQÈåMöè““´ap¬áà®,ý•@cæI Á9†O7ÄÐgÜÂ*» }+9eÙ{ăæZÁ@C÷V³Í—¾$Ýd*øƒaªÞ3Èž:¤ùÚÁ…¦ðçè4°aÕ†|3¸Äb¦ B‘¹Žiç°A•a­Bì°Ž/À–DøCgî~Q5›À|!•Ä!fÝ.,Û|j®Jù€'ï8&è¿“ñ Q‚¿Åè8ë•·J·?´½b–îàÜ÷1fÄé½ü$g"!ƒ¼½M¶§r«ÁÈùâ ÑW6ÛJë)¼ÒšY¾dÄc8Wt`ÐM>@n­$˜ºbÐïjÕ"FÛ<ôŒûn+pô?=[hFN’+Áº>)Q¥ùÁýk"£Ï-›“:ªc+æî¿Ò»–_íÚÛ¤›Ó`9"æ{`ÝáS?êf‹Š³§:X—iuùx“>ˆ¿ãT;?úôÙW]X¿w¯J|®â,¯¯Š¼Í1­ÊóB>®3žñPB‹[ƒ^õCŠJˆi^O.«(Uíô¢È¥tt|m}óÿ¤j°!pû ÃòÄ»(T-òåSÕô\ÕAgë+Å+[Ì8åKû`[ -  .«ÌõÇ?–\ë3Ë‚åx´Ã˜ÉšÅçÝ£*vY›œèÚ D Kq¼ÎtOnLR‰KK¡nžGà AvÐ×\îP{ô8˜ú¢}‹åû»lù×â%þǃCŸ1R!ï©ÏT'j|Ñöø…>¥v©à¡5Û\?b…Á(WÓEÛŽîøâöÁOËí—7­¡iXL -[÷€‘;^^Ú§5c‚ëwÞÒ› -;G´×©°xë2¸*Æ‚K„ÖØ›°UB)hWƒ³}÷7u§Ëêã9íè´<~ÜÌ•jààM:‚†º öÚÝÉ–ŒD0â­JÊ/÷yd–†1O,6¾lªHâ[VÕ æ+ã†3ç›_q:rˆûZP”©ŸÍT?*ÝQü¹6Xí»e:­Æ¯¼GZi[Òƒ“FTžÂ`/B!ZOédî:µÿ ÿ±Ûf¯vwl·GåÝŽaXÝ**&RbV.k[ „{ÏL.äé ßJ=¡÷%¢¯NÚ–nuq¡ÑÔñã4~6ºçÓ(Cù )QjQÃʲÈäØ™òLÄô^Pá2PŠÅ ’¾H´ÝêT·âE”#7x[Å­%Á§Æ«Ò©%øY:䯚Üî÷U]mÈíyÚ‹=¿£ž«8K ´*ZŸq„Ø‘Â?ó>ÐÝX°4‹çû?FSCð_øqåêc‚·’wVÕ&\g쾜¹‹\ Ù•ó“è('<å L’÷Îä)¹fЧ¼KWùå¶Ìº4½¶ãò“*¿PÍ_ Ó.4”–´ó‚~Y‡%ø€Ÿ«¬šã[[§—HÀÉ‚•ÖLƒÐ@R:+ÔÞ.è;¾ÂÆŒŸ‰—¶]Žž³ð÷êM,ªÇŠ Ž gZýÏ`Žù#U¹³Ñq›Å'·ÝO>JËómáÍ9í -èaJ#´;’ß#‚íÚîÓ¯gÇ­7ômÁÙ Ÿ…| «]6‘Üpy…˜™äøó:V³ä_y ’w“†-kü¼ÙÔ:KÖ‡(ÅL\cú¶]Ÿ÷8ñ»pßÑò"A«·– -Àî5‹gÉ A -èX<Œš‚~Š,'“Yà¿ÁAÂaÕÄ?µ–“zh¸B½gF¿2ÕŒO+ø-q|e¬‘ƒ¿çÊGͦ²Éê{RDþEo“žøø%‰NK#øy[«?EvººLsö:n“Ý7"ö-å­·‘˜.RÆÜ:ú¿s èW¥Ù<¿*-ãdÄCd«ø+þ Ųêñ -“áS€É›`ŽwVŽ¢åº øÍA×ù‰ÎFÑûjïŒî  c”6L$gf!¸f Ñu랸ÎcE(ç3>«ªe$oÔ܆eŸ…n»ýnÊIng,4Eü)Z7 ê?ºÏðQJnóPó -$—>âÑ“Œ¨kÔa„Y˜e,«%ï'=ÿS°ÄK[¡:Që’I^ë(¿Fxƒ°™DøzµÂ¼|Q`ÎIðÚ"è–xÓCb¦<5gêŸ(qs˺ùŽÕluúÚ2_#‹™Š³–¡ ….7 ÏPvÏ™­Áþ)Ý­>^d—%¯@ê±óù)Ë2Ÿàn˜kÐùVU›qSÓàú? W¹Ü8à†=ს±ÀzP‘Íò.S¦º•áØyÜýPà÷ß-¶öè>¿AÇäÑ|ÚºJˆmˆ* -švéB~Lvu¬ë=’“ÀÁ’PmbU½Š®‹€«»Êöûç3Çã‰Å*ø"ÂÃË‚½›SÙ½’jçèžäx.ÈAÚòô =ò8û< žRt,gtúú¤ÎLÔû鮵Š¢ó¿Ùè  ÆÍë+Ç…õ†íwP%Ê„é뤫§ŸóN“']ˆ…W°qœ. g™hbú1 cÔ­«¬{PÝ„\˜±lÎ\×ûD™çúU?ÀÑ·¥ïÂXYí§Öú¯Ž4àÂve5ä*(š+Ïv„Þ‰ôDNv-D²áŸÔ÷LžëSjÖÎ8âL‡7¤ [&ê§<±t€õøqQ - :§Hž¼W²uϱ]…K­—5™0oÙøCdS6ã\ŠÒ6å™ÄE{6@ --ȳäûH8/ëØd£Ì‰|–}ðØ„‡°ÿ_ò\bÉÄ=T¢€àõûw†zŸÂ<m§å‚4_¸ËùµàBQ(Ånó¨æÈw¥Ž\º¤%ªXm†,è†DG¨«ŸFªr)™‚Å.+øOaÀ¤Æ‡‡F$?ÃÎk R+‹ðlGfãå¡1÷ì–2f”Êr?Ú‘—:I»êÏÚ.9‰äÊH÷O¨®s¢€â@"§f¨ˆPÐŒ›xt>>Ø—º>Ù®n{YõöÓhã¡r Zˆ"}A"Ÿj¥æ–Úì‘{þ*§µäó*ÅraÙ(ªÙjŒÜQP2£nöè-w%ÛÌq§¡¸†žµˆÉœç‰2o#+–ìrMì¡rVA°:ЃkÔ!s´Ä°H «úeÒú wаs"õ¿7ߨ#Ííá߬(ŒÝ™Çö¨ˆü›Ìi©­‡uØå‡f×?¥ÈŽ)(:Ïq~cüzPI TYN¡>ˆ›sD@ -'ðÇQ˜Ë¹9¯‰é3 3¶\¢UÌLË'7z…F.*KeÇꣅ#;lGsØ]¸FÕ«‚õÀ°¦¼š1v—M¡¢9ÓR²éµFÖÖCíqKú‚Ç… Æc ú'9¤#¢ÎP<ðݼ?`·¸²ã·S'ùY÷úLþ¤’å ?m2xó;óïäÉôÚgmÖÓ°ÓÝ(Ú–W'5•ß¡B€`˜†¤˜zŸŸ‡ Ù¥ÈÖó#;Ô±Œáj€UzÜ­ÊÙ¨6j6ÅN3¸/"ÃFêO×'ÔØÏêÜÔ?=ÃKÌm“Հɷ P³z$+×î$ç¼!„rÄŒ’Ñf‡®EkÚû*d« ½ÛÝ ~€ñUYþ%ïõèK0êW#C"W™vž×zÅÿÆP„ró¶ì§ à¦7[-Ï$ËIRAgJk#îÛÃ#>0Mx2Ƽ¤däHÖ™Hh—v(œÝçÙ9HàªÀNE&ËÕ‘^êˆ&60¦y··Ç”ügþH…§w…¾äs›,È¿Õ€1»ši#47K“q•;AšluA@Gör‰ŸÆ‹b±%cÉ+=ß³¨°3nîuV¡¯!¯7dÝꑺßüö`è&QøÀßKºlª¿‘ž…Ϻ*^iä‰=.Ƀ%™«VHKÖÍ«ìð^ôÜB—œ“WõAsØ[Ψft³€®ÎŸ;6ÐrÌãÙXmŒöRN2ïåNÙ€´YéòÈñ‹»xð¿ü/ šó‹0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -23 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-301 -250 1164 946] -/FontName/CMBX10 -/ItalicAngle 0 -/StemV 114 -/FontFile 22 0 R -/Flags 4 ->> -endobj -22 0 obj -<< -/Length1 3612 -/Length2 22258 -/Length3 533 -/Length 26403 ->> -stream -%!PS-AdobeFont-1.1: CMBX10 1.00B -%%CreationDate: 1992 Feb 19 19:54:06 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMBX10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /Gamma put -dup 162 /Delta put -dup 163 /Theta put -dup 164 /Lambda put -dup 165 /Xi put -dup 166 /Pi put -dup 167 /Sigma put -dup 168 /Upsilon put -dup 169 /Phi put -dup 170 /Psi put -dup 173 /Omega put -dup 174 /ff put -dup 175 /fi put -dup 176 /fl put -dup 177 /ffi put -dup 178 /ffl put -dup 179 /dotlessi put -dup 180 /dotlessj put -dup 181 /grave put -dup 182 /acute put -dup 183 /caron put -dup 184 /breve put -dup 185 /macron put -dup 186 /ring put -dup 187 /cedilla put -dup 188 /germandbls put -dup 189 /ae put -dup 190 /oe put -dup 191 /oslash put -dup 192 /AE put -dup 193 /OE put -dup 194 /Oslash put -dup 195 /suppress put -dup 196 /dieresis put -dup 0 /Gamma put -dup 1 /Delta put -dup 2 /Theta put -dup 3 /Lambda put -dup 4 /Xi put -dup 5 /Pi put -dup 6 /Sigma put -dup 7 /Upsilon put -dup 8 /Phi put -dup 9 /Psi put -dup 10 /Omega put -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 15 /ffl put -dup 16 /dotlessi put -dup 17 /dotlessj put -dup 18 /grave put -dup 19 /acute put -dup 20 /caron put -dup 21 /breve put -dup 22 /macron put -dup 23 /ring put -dup 24 /cedilla put -dup 25 /germandbls put -dup 26 /ae put -dup 27 /oe put -dup 28 /oslash put -dup 29 /AE put -dup 30 /OE put -dup 31 /Oslash put -dup 32 /suppress put -dup 33 /exclam put -dup 34 /quotedblright put -dup 35 /numbersign put -dup 36 /dollar put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /exclamdown put -dup 61 /equal put -dup 62 /questiondown put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 94 /circumflex put -dup 95 /dotaccent put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -dup 125 /hungarumlaut put -dup 126 /tilde put -dup 127 /dieresis put -dup 128 /suppress put -dup 160 /space put -readonly def -/FontBBox{-301 -250 1164 946}readonly def -/UniqueID 5000768 def -currentdict end -currentfile eexec -€SQM(ì(Ú0_«&(‚Óü§ˆ‚¯¹¼ÊtG7R"¦n.ÝýB;Å  åDhïEÈ6¢ ä¥òŸãà,«03ÆØutº²eƯH¶­¡Íb+b¸-dlþî¥ÿþF³™#V¹§‚Üí£u?fpÙ®‡1tÉš´0ïà³OOÜ®P×Æo5‚íeÑáÞ^’…îõ]Þ~ðÊ LÀì0'w&ö°±5ÂûÀ“õô¾Üþ)a[>³«@ý6â–o%~<,œÅxºwÖÀXaû¾õuS’4tWe -ÃÎ"\Útç¶YŠBù|ù1îŠõý ó¿ÏAÅÞ\kI%‰,ˆCQ> ý(xÕmφœKQkT“•ùü÷¿k£&aœŸÇÉ,hÂä·3z׈MµÝÍm‡•Â|„<‡o³JÀiÿ»~LCSŒ´èÏ·ŽÚæ897A÷¢í9{k -xômbð0­•H—PX†¨(ÂÉ3œ-Z3Â(l9•JòÕ¬| hMê™Ã÷ò·°Qî¶Ø;̃Úÿý#|ÚQˆêþWN˜p—ô3ÿ€*†¿Ï%«<¬I V6­$©R†Yä¦â¥C…9» ñÂI¸Ó´™0'í2ò+HðÔcvÿ­é¥„ÆÒœ»ñ$ºÐHñ^PM‚¼RÎKZf—Ù#ÚÉm5ÿ.{=#«¶ÛÞ7m‚G”Y|‹ ñ®Êd·© Äú&·t-I<»CVu¢ÔRÆÙèÑàœ2G…>ƒ=!öäHS å]x$£Rõ<@œbm`B-Vî Öóçp£OfŠ÷Qêÿ¾&Ú©kúJÃî…Äék›±¦=…Á:õ.0¦Ê¼|jYt‚”JÍeZà(©wêáiZÎ_ñM‹ojÈT Å‘ª¤²Í÷ic‰Z|£…2°l¢k9﯒sÏ%Ù-у±c‹¹læÞ“=ùhÛÖóHƒá( ÖãoU”¯:@ž…0å£Ñ12üv.A?Ë›a}{ ]|=WxKƒðÁ\Aòl©áQ6ˆî« úhö¿²8VõL—ZÍp $Ö›xߢÃ4íƒV¯b»Õ ìvÜáœãõ"ý%â‡ædXØ :¼Æ¢%?]K²J›ò¤lÒ2YGâ¯;Â`ðÿ‘Ž£›DZ7vÌn™ë—û²2K‚;Sþ¹C:òq-K¸ðú´;ËNK:V4vmÄ"™¤”“ÏŸÎrÀaL%ÝÔOe–o¾è’á•#7>¡Ãøê;IX˜ÒMây¸ƒ÷;ÄF7`îWâškÏ9y\Aö늘 -î‹æ9Ø;^H¦±¦ véY¿²à¼>Ûë«žKi^hT%ä³´Åà¡)35¹Ÿ´ïgÓ£‚­YmG9ÉCÅ ¾tmS#0a¹òÙþPG½gÌþ -Ô6öþÚÇ«îrÎû>6¦ pX©ð2Ùͧ5·SJl¿¿0ȧÕcÛØ>ƒ±X¢oºUçÕW”$b*ÖZGà49ÿ€vúˆ;)R²í¼ Ó¢ÕÜœˆ#E …Á/+¦RÔ?éu@߬,Ö]cÛkè¼<`Dô -T~y?+`xýö%¶Ð²J‹†°v´òò÷/ò:Ý&«U@1íŒ!ŒXEH ?Q;eöÕ’Ð2£cZ *ºdlÛ;Ò€ö‚hyj¡ ºñgÏ~,6È…õ1sãͤýÇ°täáÁœ+fPW„T\O?&±¬Ï6Ãj:]KÇpì@L¿œJ3å‚|hÓs !®r5q\ ø¢Çͨ© ô̤lθcò]îØæÒº8ŠûÓèÉtš†Xe‘iÿ2«ŸLÎÁ×be¬¥w¼ËSÖ#”€°„2”$†6†¬´P -Ž|´²=+Ãì¼ rc¿6‹Vΰ(ˆZ®näÇ+¨ˆñÍUi`•xmî!ß¾Žtîf‘ ÖuZ;þÔï-Úè˜ÂÕˆq6ki$ñù|?ø‘G›ÜlÒýÚºœ…=aO’ãEü |Anû[ļj»Fö' æ˜ "Æ£Þ?U;´lÿû#Š -$ŸR‚’ó{ì}ÏŸÊ:ÓeØ{ŽzlU[4dG[*k[àzðVøDð'}y´»v@Þ½»ÆWØ­ŽÖT‚»c²ÈÔ—¨òñ:éÞ‰yÙ°a)}ålßÈò…l>­¿_ëɽñ`»öU®`~37ŽÖPãø“葘çDñt ZÞqÅê´(°Z]½ŽcÎfFc‚„cÌbT´'9”bÌ•TC‹áð4¦$döâ°Ñë!Ù¸èkîÙW¹XaÜ)'à›A{s$ˆÊ.H¨á\æ)×|ñ~¤[û:Åž…û…iÔÈÿ@DÀ¾ÅœMsâ~v<bËIyvÚ=ji%Z4È˵Xô ¯bÂ5[¦Q$)€RH«dk4çe,qˆyÛ¬ÓeZ“yCr i×9[Pv§‚‘âϪÛ~è5¶‚µÖ¢¹ùCŸ?ûÆÃ_¹ô/vj,ÊÚ£2Ô›è Æd QCÆÎÔƒ`FýS˜Ì hß=»?¹×´‚×t´ûžY=h|»euÕUŽ˜,äB‘#j|Ø{ hT¢6†ŸWw˜Õx?ÐnšyòËS˜˜DÑ-Û¡Îö†‹„9Å&–®tiEþ U¡©öFR~¯OX"{2êý/^ü™òéw¬ãLT+Ù®¹™èÞ·í¥³/=;íìÁ±ç‰î$ÆqþLX¾†O¿iãïFç,Ònõî€ëû³• BMÇo˜|Š½·ü²³ñ,™Z»³Ü:è ÄYrÁ1u„ÁáU wd21‘Ïc›JcÎ~ŽèÕ|ÍEm ¢à˜TyÎ,L‰VEèÜ™$à¾9ü°ÍÕ)¡vyV¯SUOÍdárÖ[Š/ò(ØKWÞÇö*’ÃýÎÖôšFÝC¼žŸ"ƒ·4•$kµÕ:§c¥,Æ‹~såå\º®˜y–³±²,ê9Zr¤ ÃxkàÙê¦é˜šoòÀTÏá¢ÝrUs ÊáÜ1<#¬2ËLE%&ù3߬ØNñí¼IÙ݈Ÿ¦¯ª¶©ÆUŽíìp3 Gø£žÉ\ ïÐPp(&¥½93õ>¶{XV/iž4±‡ùbDú`’|ˆë5~ øjyÎ+Ÿ‹ztj€úÄQ›€á¥xʦ:¯%DV$­Ú¦A¡:_ tÝË;píÎW/ÉT¼1‰_j 0°E¾¶# 1j'^ý­¨ªÌ¤Z€)tÑ)bª¿mJù‹zËhâ6Zåøñ4Uk5µ,ßbùTwûuåvÕ~Ôx9¢F2ªx`·ŸïØÒÛ²¢ÎC)ÒkO+/à'øÌA9 Ê…~ßiUë“ñ0ëZ¸H«)ڧ˒?éðÿ~–ŠÀ9Œò[V™´¹¯¥™žäýì'wr -2`³ä-y$®$¹V&ÞKs%f§É„×½æ¨`Y8Ý9Á †Fx˜Ô—8§¾ô}‡[""þûõÂÏ%üÃz2š­"-Ø¡q1ä4ŸÆí„ééTÄISw»nofS­€ch¯µ^÷RK)ðDqz§(è•ÕêF7’É#Dvµ ?Ï|P> ¿o[ر޼0×õ8Ûýsƒž‡DC¬QWeo­G§[çÝ÷†Í;^…ã¾4xÃjW5tV›Š×™ÅÝ[ûy1"ŠÈ3 -²líÇ#{eÛ%3|á´Œö? 9[iÈÿà:4]¡wg3㚊)ŽÛGòm1r`——Âú=öðOÞ]>·maNÖCçÈÊùÝS7š mË€a1L%P®ÀŸc!žw…a>‰„>r Äë¿×JRo Cˆô¬?Ÿ¡sý­¨£*²œR¯ã¬òõ¢û/ÆÀá2¿%ÈžÑvMº5 ¹g¾,‰K¤‰INhàp¡´ŒÁ - npÊNG‡êå?õOúñ‡ÝL™©^Okê 7€³ù}\~õ´å±(‚+#”PËikÿ¾|³!PAO<ïTM -\ùÿS³Yt€’¨^î»s¦‘WJ‚­¿9ö/ã8rŽ“I^Ü_oB!ÓI펨ž9/3&ÑK*€itÄNtmIÝUÁw 9¶‰:F­ESjV›JÒl%pc‡À«# fÏlA,cƒÜ™Ü15ÅM¡òðËÝõ)3 ½†s¼sH:H9î—EÔÉët®é(oxÀ@Ÿ© Ç}[ºOB Y%@CPXª¤ÈX±+ÛîEíÄPÀFÄ1{y$™(æéË£ÍàN‡žXãê^DwŸ_ ýªœ8â'C­ÇûÔ%μuårì[åR!„e*Ã4‰ìâoP‰[ŧ"ÿ¾ºJ–T]–oÖ1ã‡åcg44$2Ž‘,>FùÜ¿iT§›2û¡}vð–m@·HŸVÒ¥1P»G%mð3›íë‡Øq=ó n€ÅŒ&¥ - kMηQâlesÄýÛ:æQÕiâTÿÓ9|µU;ï@*¾jÍ›ºº‘tÔ^öïÉ6Y4O2¤À!Ö¹°«+WÃïb?`µ½»a…îCª‡¶!TÌbjÁâÒ³£H‰˜9RAO;Éöâ¾Ìw,1 øâ‹ë 8 mÙ{°"͘#ˆH¾îLݘ°òÓF˜·¿ -•&¤Õ¥ôñ…LÏÂaÂ/¤'eØ6Šê=¶ŽgŠ¾iª|D§ž{ï˜+Y¡d™ûã¸Uã¡Q›mŒ§yR¡þòü×»lÃÈ[k$ôg“'¼¡l©¹R<4,ô†©*=EeÐâ?wA´5k~ÃÈàNwYvàñp±]œË]¤Ñ9RZpð 7* ÎMÏ-;²ûæfi‚ -ŶLOev9„ælzÀ¢ ÒK(ʶn, Ó>“­âÝEù€Ñ½ÇêU"©PŠ¬kß©Ë°Îß–YÄ3‘ÿ©¾l{H­o`4eâÀ(xü<·~×’Tñsu€'xjÕ,|&}·½î†â%ß܆jšchUKk&³aíŽjU)'Å›= §„(ïnëÍòè쌇…›ðÁ…ž‰3©ŒdsÏÅp Éä9¹ž–ÈÍŸæÇ{X0Éš7\`y 2÷Ô4qäÅ™J×+°f®µñ·XàÁáîÜlÖöë­Žô­ÌI½¥!gägªyR‹hÑ(4®? N30Dç:‚³CE$#¬ѧxú¦·E…5êªì×H¹°œ,%2’>©Mˆ¤Iña õú¾ ¹Zµ&c±õw«pJ«x˜ÝXqúj¸jvÃ{ œ}ã—ü 9Ç>ŠF£ÆmÚ×hX^»6/ø§÷ Úþ;à $mÞ\IÀïÄ È“í:ü"ÂMåËÏÒö„ÅÛÀŽ®½È sÐþ{{³|#M3Ä]÷ÚY.2!ªY¨†erq/öúšL¼/W¥)Ñ¢˜_àélnjæÅ -e­Ú÷®¶_Ýœ, ø¨VJÌ/XEÓ(àb÷öA7‹Ã4(h O° ½ -n„Š™[þ¡Ëoî ÜáñUý([ÖØ¢Á 麛™<Ñ no2ï Ž_¤2ñ-¦>®´|?l÷$^§ÛdÃ?"nÞ"éðÊ]]™ÊžŽY€5òZ÷h~líA>ÓG¤LGà2q˜}_ÌÑ(\û7.š·ÈªŠÙÝ{|õfðµ <9^mo°§°Ã¥²„6)ãMŠñô’+žÅ¤ž­ÿ^7m©3$t¬Fê bˆ÷üYÃGpɼÓßrÒ%ôŒ“á)‚»º+9 -'ž¼üb _Dz¦!Yo/¨5÷ÉÔüš:&|ù zÿË­ TÉNJõôÙpørÓç¶K'ý ä|[úôwWÛŸï†l#ÆÏÞÑ…çk€‘TñÉ'Y?‹æQ”p“>Šó¤IG5T® ]̃‚` g¢ #å+]žA†Ãm3#¾-·nP€ãj†[‚î§BeaZ领ž…‡M(ïÚF<µ[¹ -2ï%“ªWWuìÐÉRÕçÔòÇaMêÄØ<èUiVÉg6‰Ò4ñ¯|‚©ÑÂfP¿±EĹ®Ç¥ÅÄ“œŒAßäwœ}VŽG¸'+öôž¼†‡­gLUåõÅi׸ŽÒm2æ<΀×E7c“½®”¯—|܉*ÇHN|ŒÄ¥›Ä"׎Ö{Qß¿õWc^ˆG,o‘ú—±-=Eܼ² ¶ðâ] ‘Ö|Ôo®a¾<®Êßs*^(€ìo1¼„òÅn–p7â‰H"DôõLzþ9dpó˹Ö\õP#FE$÷cîõç/¯/4ù`ÜèŽ4ìÌ°K™›U4¡¹.zå©ÝÒ¯P¸;Àˆø¾}ÙI ÷ü±6 ×¾¶ÅøYø¦#õ˜F)ÝLé8 ñ¾Ggìè¿ËJ_rM5"ÿ|øÔüRAgrîåãã¢Q-²”m1#!¾Ýmã™\H ó˜3.»«ËW…q ¥ëUbôb\ÊäÏkÔÅkxŒ°#cø-ezE+7/$¨)’GôüYMüâ HÅkÞ|ÍOžõ‰­¦þO:RãÔœÒ4r‰D±Ú‚tÑ‚$­Dz²uÝì¼ëÎìZr4üùv ûžúZ²ÁÞòí[|›e–]€'%"õ¢ÐSr?Y$”ý€xÂ!}!3/ÀG@†BÞ$cV -…pûÆ‚¼öš<Ã.2)Ùž ò(øÆ\õ¹)Í1! -r‰žzÝœ€Yj)DÞn‹ªcUýR ×Ê“ôñ¯-ßiDIñxø¤R'r+N fäxco‹YŽ6a¾5=óOèrž—»O˜ËSbit\ò¹vô%0¾³Æ%±s^G¯^]]ï½ÁÝ©:‡Úq‡ß„%1¼Mâ(Ý4¬nMàÿÜfšïWü¥TztoäZ‘ü%ò/Ìï=Ý"9¤“?z¾—W»¾§u%ŽÜEŠ¦ò-ê‚´ñ¬~ ~¼7†¾Ø™£›¨¼Ìh ^e9k·vCxH››4’³@쟦˜´çZ;|~ -·¨AÏ~ -« ¿'ÎØìÃ]¤… ncæêùÀ¸I«@óáÒA´.ÿ¿ÊDxù«<ÚÇ‹ßµá%› „[‡M‘ÏBøX“ÊÌ—:Ò×RØþÚmd ³²[Ç&ƒêôe™¤ û%¤í'RU°r[ -®¸áJig!}TÓØi¶}êñ<0<]ò^}OÂô€ü›-Ô[Lu9 5Dƒ6ñ½0¡T«Üè$ú¢úÒQÙ$D–0€Ér,„•ìànH›ã³Ecû8­ÉŸár_=zÑœ£•ºŠ›xVÕ -‰¶@_“”6†15“PX–¥9ð4ûÄ&*)—rdF€]>M'ÒhH 03\9}DȦ{ÝÜ}eÿ_Ëã˜ê—5EþÑ3¢èîд’ËIWè\<ÇøÉ1Ü&‚¡šo뎆 Š¢‰ÿ¨ü6ËŸMǨ©ø‘.¦AÅ)iù.¶çÅ‚y~%°üÜV¸C±ÝðiVkó/¥1”*ªÔUVG`‡YôJWIe=ô¨Ì@#½d<ã&ŠG6›Ë!ï@A½æù%ŸwŒÂ92\ß3ªØ=Ü٠Œçœ±Ì¥[Ç~µû!Çét–ºäHBÝ¡ö!Y6×P“úªçx–Çþ˜Éðýn®f9Íœ3½\âhׂ±SŠJê¬ë± ßMµˆ‡e4jž°ôW\ï‘ø Ô;¯ž™õñ¡pW¸¤çÍöeà -/ïÏâçþÊÅŠîXqL3ÄÚºh…J2ˆ> šÄO¸´®3‹9ÄT$ŠJMÉØY¨a”ºÂC¼î=w‹ò~Ô¬æ;°„§Å•–ÿ &n|ʪ·³Ôp±„ EÑâª|.™¦áúù «ºìá9nûãå3’L¯eÊYâŸúãÊ1ST¿ìMG’ä.¯T!çûÂÏø¹S\âÐ#”ÀØ3‚Å;¡w›£¦¦ÈFcËØ4˜M ’K: r•¶a•V›Œó±0 ð˜ÓÏ[C¿D¿"=ñ“q±•¡H(f\5i¶µ¼&j”QÙT¦€Îô-'Ó(M£Ë—ý±ê´œfbž’3|9Öù’?÷8„ù'R·Žúƒ /bXìš -›ü‰½sÂK5^ÁðΆŸtÏüb»÷À0¸æò9б¹ ”åø¦ª^]²õ{l¤#ÄùÊ©K  )ÊŸÎݪìêlÔÕš‚By„žpª¹%ܾ§’½þÿcoâÓW~±/Õcõ8šà&)B= P§ÙÕ¥îÐ}vòè\³xËhéâSËÙ ³#ª±PNHìðŒ0ÅYŸõöù.ó€4V6wò¦Áóý_SÚcЬøéºÏ( .D( lØíuS†íj»šS˜TæsžÑë{¤‡ FŠWðÙÖŠÀÿ¿Û€sµ› Š`‰õeà‚I©=x‚æ À*ÝìPË$mj6<Žq^. N_&]¾©`„5ª§õ‹'ÃÔBN€^_ËÑÁ}eʳ6Ö×g -Ç¡»Í*òL)ŒýƇÇ;±‹™‰7ç0_~ïòR9h‹Úÿ ºS1F~îñI±­Ó3À¬„=Ó‘]&ÛׇôXíâ4¢aöüóW¢_ÄM:(‹MØöôëå’#FîÀÈôëv -•™fRЦ= @§¹žÝnì&¨L„0>väMP¹ãŠ%Þÿx_ĶqŸšÎt$¨Ž{>Vo9à“¸ÀZ2øxíPšcáÕhaïÆó–¿4):ŒŸ©Ye/_E]t–Áõœ@„¶ à"W³­c: ÔE‚vS¸¤'çì™@KƒbTÇìÃLJ®”÷‘Z U|4>Æ3oµ— ¦ÜTKãÚpé¢ï3-¬E¯7iî6gDTå‘ –‰•{ðÕܳ!&lWÇFıø0K”E+)ˆ¶ ØA9½Y&Âͱ¦Š¹OäÙõ§¡‡|.JF©†A¬Ó”aŸnÀTìðÀÝ ÂØÂP¹•Š¥Ê“àcsWŸ?¬L‘~D! -§¤Nã@ÜÖ9æ%jòNOáÖ”±Ò£¥ñáQŽ¶•Œhu‡Qâ x™žà3µœwkìüõ5á]œO ¸©ÿ¶ü{ø-•¥â§þ’ ²øñ„' þ?_‘VÁ¹?9p‹ÊŸù<&h}»É‰)#¤sÈ’êseWFmð·=­æ©†¯ÿzeÇ8\aDÄ‘Jíx×…‚s£ÈýwŸa!lÚ¨v…˜|oÜ"Ñ—ëÿ?îúœ!ªž¦ä."özg•Ê‚ ž7ÅÄ w :6L(Äz+ iÊzB|]Ž—iÇßB]`ñäHILÉÁbBWT¶mﮂ¥ ßU¤, jEÎUjÈEzýäwü§ž€ŠýIÌY€ 䤅½-<´ œ¹õƒk®fè÷ÂÄ·¼þŽF¦q¾¸™âäj10Œ€?Â:xCü,Ayomð½ˆéå½ßRGf&9M¹€ZQ8W–ìU9— ¨58q´8}D}?&¦¥©Ö¿©o滬4•ùÞ¹¯Æjö°]‰Æ`”}êœ -_ÖdϸÑÏíË“Rxk×?â‰L,3–ŸôìÙÐ/¬!•,wó@¾'nµLPþtcÛ£ãêWÜ#9dÄèŸê¿mœ §‹´‡%âQ}#º( -NÊs¦ÉúpË]Úèæþ·øÝb— ](h—ff<0í¥žP‘c×à¼Z+kBÿÝù”G«sÃNÜ;@` ×|¨Ÿæ÷ãs-ð~“G™þ’d·]‚AÎÔÖÃÉGÍ¿ØÒ…•8‡r´ æÿí7-04½— -Dn•J=ëYT'{ïa¤;™w"?ÌÚU Ù3¡Nµ÷ª™oäHؽf«ò®™Ï3„²ê!Þ›ëRE)<²ýÂ9 ó[¿“2õ@ „w*ÅuÄڳǷ¿ªï–ŽÕ(²—ÃewŠ©Dæ5wˆ7f…À4ÔUÚYØ&‡bd.ñ>d tÕe̪O𬫧m rÖ’Æóslœç©y(ÓÈ.Ü""¬"SÜáµÈV)@¶zÁÿŠù½Q.´Á¼â”ÄœÈðá ‹dvÂÛŠœšÒ£J‚¿R>ø"¯n ¼@ú$åÄ )¬ Ó˜›W‰ïº7(~, ¨6G>:6×_ÿ"µ‘´¬äê95M{êײê%fR'2Îäõù¹BQWK•A”mégdcõÂáćî-ôiÔûÚ#ëçSŽ˜Ø?]IaÀOvÿ¾[YÕsNç±Y S\5ºÌ;6³ýMûºøWvBæZùEþƒ$ž˜ß½åïÆÂÓjz?§öõð*ݳ„€çÀÞFËe’³e´k‡7_þŸxÇÏ_ªª¡Q¼å*|Äó O¶DZa#ÀLK©χ¬÷µÓåz0€vÛŸ׳4êš`i2Å0t-È­#Ž”euü†¡ûSVxiˆ.¨ÒUW÷ˆdžG; ë z=­`Ÿ2c ]·˜Ù6ëL°kZ~ȳNÁ ‚öo"®·&ÄsBXqr½mÊ\]Ì{Ftò,Ž„xQqòÀ—X„ªâõzõo‡;ªµÎ7è¹½&hˆ¬˜M“u¶VÁ·oæ/¡xÁ fnvŠ;+æÂæÜuL\ÿîî0}½¸þ?Iõ…N½îvÖi?‹ckãܑϱoKË ÌMŠ÷쥩ro4–D§Ô—Ulû•c¶€ÜÔ!ë®tÙŒG}–˜û9ÉÜŸ¹ T^G2d»ž¯7akØóöIÄz† ‰øU?Çj°;S0ZFW ¿JS·§aîî’è*\¾8Î×a¿Š”áë3È -纛RD€hXhÓnÎ…Ýu16q…\8”k»Ç2xÁNÑgÓ„[T„ör!ÖÂÙ úæ^^ÙB6¨h" -›×…MJ_¤‚B¼¯ß®¸|ñ£²a‚±èQd¢‡+‚á=ÚÓZ"g\ÅòtØŽ Œ R祙éšRšdûæ9ˆ+XÅ>ÁÔ(h©¾ p¦ã¶&«/þ3‹­ìì«¿)“©­c7R^Øm ¬ß‡©€^Aé½á×’ÿØ)$Ù’ÌmÊP—nTãP2”£Qn‘Kñ¦rJÔ·@^à(Žà2‰–ëÌ꾪yCáI¶§PÆM'¡±ß˜ÝWLfå4ÈÚ„|´á»ëß ìÍãfGÕÁdŸL)ß* EÚ­3/#xŸD8ï½¥–íþ)Zl ¹ºÜ`' -Šs¦«Ò©wí%@Tb0Ï탫ϑÌ×—˜ÒÃ{Ó)óÄ8»£–Íg ©cœB˜MqÄð¬@(íî™ÏßòçFGwp/;S~{ÃÔb¿Ðß!7⹦,vε€ç®öt`×ÌÄx¯ï¡l>Nvûºâ·ì^˜Ñf/©°b°ˆýzÞÊ-½Ë“o*ï·×}*M4í´ÌwËã>ïú£‰ -Æúø"ŒŠþï.›7TW!Æ¡s@Eün¯Ðß} GìÖᲊ“îö|õqü¤ø©ß[h|7™é‡œ¯ö…6 ’lD%©†I(òJÀ±ç´]dì`L¢Öm --äîùì¥%T‡ËnMåÓ¢I@«ôDSïÅ“£ù‹±Y˜AΉƒb1{+þ­ØM§ªím¹Ü#óddð.›À ‰ù.Nþ$zr¯â›;Chu¹ÁÆ4ëÞ%ÿé„ÐÊ®H&Û±¾=˜|¤Ïê1v†wrãÖqˆB¯"2a$9c‚"l²=€kU*‡-6:Òò0ÕZÑÆ6[–=8þ çÂßXà›ÓBÈœa~œË–2…ï ÀfÓ¡Ý´9WVV>EêîF{Ķ1œ°²‰tå)®8Pã»w[8ÉkÏ;ø”fÀµã?ñÊ)àsô€½Ôî,õaÔÓ´}}pÍÁGªUËFœìö·É’„ªnåAg_ƒ_i~ä©¥C ó;÷›ãÎBüp@`·„¢ç—9úk`…¿Û3vµ´‡‘Úÿ<—‹ÞO¨›§Bï#Cùj‹‹Äá]†úNÛ’£³`·Þ%4:—Us|3$þØ4@;åD¹¯ûMB¹¶F¢Wž¿óú–=^Jcä‘Ýïp¡Ü`CÇ‹m‚)™"ìDY–¼7Ë®L~N0uôÖYÚ -ÈP}­öóQ7½P œÒde£Û2rm΋nLíxßlKÒgwo”pv@¿Yë»Voíê¨Ä©Qs£‚þþŠhI¤ïº©ß;f”Íúа%tI"ŽRƒœ‰5~^Ðâªï¸æQG1g9/íP]«z$w#Ž*‘6ý”ùb¡¶,ðô¢5:$ÓI€·>!=‚áhä?øwÿÚT…x E¹UCeî5á,ʦ¡àȳb¤F™Ï˜¿REF%€<Ö…¹+æ줂2w~ìýRêd -+Pˆ ŽJÛ#<:8'Åø¿ Æj°<¤6’ÛþìY#Ž+ú!û2) na€íÏœ„ÄcF[íê[³Qeâ{‰ÁU¦ƒ6›AbH%Î$˜„gP_T+ëÜÇw‰Ó]?ÝGÿ‰´Ö_’_ÊíîLVÍ 'çÇ:…: õ©ŒlÝI&FoÜ䥯q?ÚR¾àBŽš‘\W\õL)ÿtý¾‡ÿÔÌ#!ys³NV&4ñ·-î üu¸åh…ÚÛ 2ìµÛ}*Aר©‡ %UMÿÇùQ§Ãdìlîë8Áý§,ªÙj0#:DH·eI mëÝüÑWÒ/ |’MçirŒÐKP¸²j‹ ¿‹W¯9v™iìx³a±J!PƒÅì%1ZÐQ¡Þ7#®jå»Ë³Œy…é½ÅîùO <öa±£âÒEÅðÕ½€ÔߨՌ4ìÅ¥r7x -Aàd¯æÉâ”O¬úñgÝ ãEX®) ®Ç#lB _²]Dƒ7ã:ˆžs ¸êŒ3T@¾&¢[´Z~ºBp0m“^ö˽–ú€$äñ4ªû1`¬ôþ ß¤‰n]bù‹e|5ÿVxO¯]‡0×íÔòLÿ̓\Û'MEnUZy Œ.=­qÔ ¤Â á#9FÕô6¡ÀCñ_£øH‡¸¦µV« •mgÄëœëiœ –(5’ÀDkBHƒ‰¿bC=‡ž‡bä®H[whšê<ÚrÔ·‰^_‘Øñ'2Î& K]6?ˆÍ€ggÓÔëàiÿ=ÔÙ¦r´ôâŠp&듇qpØ™›ÌéÚ×&©]»==ùTЬ¾FíZ‘ŒôYãc „€ºk p¸àuD“,êi ²¼ßÒilŠèÁ>q#W0~ÊM²Vtˆ©MzsÜ =ï6oÒ!ϯC\ž" ƒå•¢yŽ=ÙÊÇÆ>%WÓä¥x²ŠT2LñZ¤yü㈞’ŠHrQ,ÄøÀ¬©¬ýX¼:CNã3„/Ц𓶧ÿ=pT½#¥0’ýKþ‚C¢10§ep"È‹ŒFðˆÀúûÀ‚äšöÎùL«+Š¡+fg„·gO6ú¬×ùh¦¨ þr€(6½y-{#6^ôØL¶§9àyTLÙA»—Åž¸¢ù½ÈºÎ^:aG|†¯ÀòcŸà°<ƨôvëÞzù¼Ëφá?ƒw)Aq!$½} Ô¨gaôA"¤?ŸfÉ™Qå7ˆô¯zy^(ëLü<3¹÷¿*ƒ”†!Æo'"Ìþãm÷°{¥ƒñÕ‘9Éø‚q#‰Ë¨„‰&Ø,:É£olµcGüßF™…o<–`¨xâ!),뙳ŸxiÉ‹:²LËÀÍ×Cį¾q äË+™æ±Cï#ÄSdrXë‡X€,§Öì´Wtøþ=:wMGfw æ"Ól Æù‡1q1$#IÝð -•ÁéG†¯¬KàWã% e~ÃeÀ;mÁáÂÜRRHG64íH@XòõWŠ4ÚÀ ÷æKTÔvM8{TǘZ‡vd Äk†I=•³R=”_Q”v1nvÖqx(Ķù´çŒÕ­7ÝX?ÈW/¼ù$6ô5›†BûÀà eÊ3Gß Âêðd’™ƒt!wžÑc“DGŒfwɯ"íE.s'{è€};Å’U‹8}”‰–®mlø} -zzè²Í°5F`ŒcQ›1ï2ŽC.©D¿YUµ´É*×pï4Gú+‚zLgÓRSrëRîj@X÷üÚUä;Àd^ÂñæÌ[²¦Ï©Ú_¬ÞûêŒLßÛÀ¶ ±ÔzhŒ´aùå Ó4@”\ʪ瀯÷ ÏÉMöÃ8Kûà(¾$÷æÜ æT‚*XIû˜çJ®YþiÛÓKß‹*k™“E·G¼®€[&æz%Ó‘4§¬W—Aõ H’ºÔ¨ô[Ìqÿ3mèj1S}hvž¶¶ø¹RÝán˜ZÐqœ‘kâÔqædb­Ž~]"âq -ï°•E´Ð“^A]çÍ…«DÎOBþo–$‡ø¹Ø}é,”rÔ"bºJ˜â~|geW±”b ×&hí»}ózðØÛÐÈ­Fž.é)ñËÎ"{ª‹•ÌîKZÕ -ã~L$Þ|…çÂÑèvœÔ¡˜§FƒÓÄ1É\Omš{›Óë8]1Ý¢V>TÂpá@Œ½öª’V­qóÃIì‹XÇÝ"Q²dû¼g@  Sab…a#p9AýåJÅb#1,ÎG‚Ó?V5O×ã¢LrËBj`©®ã˜ŒmCLz¶Åñ¢„"NXDß»7i$} Iî2º‘îô@ÒÐ+©\f…»ê·µˆó±ùìÔJWWsHÁ>è÷aéûwœÃß'':µdZöÑëzó³€—à7K1úz2Àá@gH/ç÷@/5þ%ßrº¶) -¸.: ŠûaµîäBÊN~Ö¤O€‘2[,#ô‚î–ˆ+=å ‹‰Gµé×’¡ŒÀGò`øEƒed›pKnøÊT„Ñi4ÁtP2( o€É|U½ŒÎŸŸP]i¾¸ÔªŠ±S§ÿYø$eM¹«Y}"½ vBòDÄø„ÏÿNxžÑ”v0Ú„°h \çæ‚Ø”œH@M}Jïò¥¾¥v'ð·¨Ûò`T»'È2THíKJ¬Î©qÝ1RíD×UÐ{ˆ>\9xËLåÀ:È y*ˆµÆ0-WéªYïð=#jà Ög¬Dü¦¦3æɈ©(*ÑEϱ3oöDþµLõŒHŸ‡²Ù -ؤqÇ㵓øC~Ná¬ûÞï*ü…¨!9 C.˜\K’ Æ¯®úŠë’ëÉ°´éöêŠ÷1ñÃÍÉô>¾ú×iu¹–úš–l…¾W3¸±¸û8&×Íߊ ©Ø{æÉ·è%Å*©(ßÖîŸÖ62+ n Ù⽆Ü:ßgƒ{ïÔX1èšþ°1ìÇš¯’æzD‚:'>ûezúi[Ÿ™ -Kƒ…PKãË:“œiƒ®þ -šp5ǾH~I´¸#LÊ©)%Æ{cÎÖór˜,s£¡ÎìÊÖ´rNeSÛm8Ð_è#ìÚ -¼ ˜Æg¶ŠÒq1ËÈ…c yF” ÔQ»º´RˆÂu©¬jëZyRªãu3r:hÐíù/ÏZÝ<#ñïqÌöuæ"\Å©cntêÜw(8+Nĸ÷ÃìÿÃã0Yg?€!wMsÞž¬üKwÑ€ª&H¤oC¼[C´*æ'­JÚÚÁw6šV ‚»„1¸†ðèÿ¤’ÌqÀün[Ejša%Õ–õ&0¡µ£NJ]²V•ÍGòµ¶Þö“þxÿߦ˜éï÷º{PB"tý¦1á r0#Á9#”†'á%^ºúäv­ÊG„ö=ü'3?U$¼ L¨S–]¬‹Ï×Î]K£ç‚93Y-ËÙp“Þ= ³ç;Ùëd¼ôI.B} Ðuâ¼Sÿ.f4v* šØÐRPE5·ZèA–æJZ*T*]ÜqÖ ‘¹OB”Èlº/ HQÓ¯¹°„ôhg¤Ã‘-Ú~äÃ4”å%?úmÄp×&^ÿhñPµLNwagýBfÇŠ i -IœËòðâ„oÝÊgª&Ô†|ÎPŽ6c­lXÜ>NŽö=g¯Œ³¨|Oϵ!¿Æ’XܸKÍãTgd«ZŽXi¼"Í{ä¬L[‹´«Æj·Hu 8•ÑÔèOÍíå=t°ºS§g‚&Ð{°~‡K"³å"}@ÝEÆ’üšûtùcüd1j’ÕsÌ'™Þ/4;_gÝQèK-ùlà{g¹TøóÐâ7›»"-‡·Ì§ë n,_Å÷ÙÜýA(b+J¡ ˆæ÷Íž¸€8Z7Z’‰ÚãÙÔý—šv°ŠcõCô‡'Ó½ºêuÓ-‰ÍeƒáÚ\s¤ÛÍSÝ| 5prPôEÿ<³Ê˜*0%‰•Å®ÉÛfö«Éu¹y.ã\¿˜˜£yh_b+IÜÑSA»¡|òuÒõ‰ŒKHUJÔkÿ5É Ñ.?>â9þ‹èd§¯·IÄLÉ* =l G¨?}~d$ƒÜ´R6&-“W<ú-cÙVv3À²Â(kÔtøUG¸.ƒoªß:–³|¦5ìùçnW.išeh ̯֡rÊ¥‘eú˜ýŒ&ƒHä˜VV5êСaå.:&ôÛ8`EM‹È$¸3“'tl*¼Ó˜ÙT&‰é,'vÛÉ£-xêžQc`WxK»`ÌùÉ«¤rãžÛ¸·Þ˜®*Ð!7û2"HÄ°&$XÀKøR¦úF†½wEªiÇ°aØ{° -§ÿ¨ÚŽŠaÊ“œæc¯—T¦ÑÝ}NûY¦±/µÞMÛ¾9GcºhÃ5f‘Éq|-Xq?ñ˜Áj]™Ò[×”E˜Õp°8L@O3B\È–=¯X€`û »æB¬†Iøá/…Ëh6ZZÎîn4@S±¨A#z±¹îKr\ÉwÏdZØ‚[ŒêCßÃy7Vq É—¦þÚpv„ˆÛÏ6—¼T²…I 7‹ éÎ](½ QÉ9fhø£ðçUÂKMÆjÔ)ï‰lUòÔ‡ÖáF…põrîU½H„Jà E둇¼X/.x*…/d¦šŠª¿éÛ@ÇJ-£YGÅx©_÷øpAjpT£>Væœÿð˜2á /› âS9—54~¥i×i®øPÍzm»„ î#d䉹xc‹àŽŸ/.=d—z³*¿J,~<|ˆ »(*ŸHk«ULÉ·9 ÊwÓ<ì·|.²ïò쎒xH›ËÚ׌÷!šô+á°vb½~g<0 ð2çoÅ•ž5¬#Å­ç¹Û½°àa¹ž»Š¢ç¹”Ô…Ü?ýö$c…BÅ :n98E›ª±Ip×ûEh‰dVÓÃÀ,#*Šw¢D‹kˆjÆv„·ýš:Ȫ­k ™]©‹ ìAòð{ ¢PZÅvê L_Üy n8ÞR’B®cN*׿šŒš¶âù¸ôæhÛ^[_ø2ôã¾á\OÈ˧@†ïÙG6/"ÈÊTÎïÙ¯C$Àû“q1Æm.á.J!<ü›Ç=êàCÛ!†¸Ìh\´&‘à& +¢6a/Èàë6ðVåqCÊ/oüø‹ª¥ÃŽn‡½xéfX§T„å<Òìô“béèÆàoðrüËn¶Z]P?’C¸•Tj?Ùw”X$ GQE³Ï;!U>Âs‡˜sY»¡°ƒµýGzHQe°ínBíFs™Qê,ÃØdR“ŒW9q|ËÀIæ+•4<ܺèÛFÍkÇk‡|ÝõÓ ¡o·Ö<­›É ]$[e´P"¸×ãüu·*AÙ‹Ùœ'ê åiðÊ¥öæWòbåZ}œ#&q <Ãt¬“Õ.id -; ç6¯”®=¬ë7ŽëaT¯éãáŽñŽ”è±Æ2€§2žXI*$ï -;y¾“]MüóáçÃ2þ9]ÀvrT·é¹"2ô=¤ šxª’°¿ýxè”ØiÛø~ ù‘ß¾F3gÐ<<µ×*`"[êëñÇ»à£_BA y¥ÇÚ—¹ÿ· ™[‡Wª•Þý—n&>ãôËŽzÊ)ge0å8»ŸÔôoc»æ½zñ‹©€ fÅΟÇM=ƒ‘ÏëÓµçÚW-ž§†T¡ÀVÁ+£!…6?Lä’¨²(vÓâ«È’ÄÏxWÛë&±&²¦×ñs‚ h/$”†aº§ÇË_LŒ©xßêâqûV-NF[˜ ù£iÙQ­Ìè­¾MñTk¨4ØI–w¶Ôô]ïüqõ殺ãB!‚4òKm`{ïë{ã àÕ Ò3ZÑvƒööÁ  þ³7òÜödê€äY½žgåÚ­Û©ôEôL‡è eÞWƒ½ùŽ¾5ˆºD9P t»x7´0ÀÖÙ‹AL;„U/–¾^D‹¯•~fÀ°þF’Âr÷%Í,R÷yé"¸ÕøeÉ©w$ -"ïÌšã=ÉÍjJ~ùJ;8a<éJ"ˆ<¥'ó˜mÑ0­ÀEÝjÈÜc¨™ݯ6ÁÓÌ‘õo’7‹[«£8°½Î·ôð¬‡s'»l?wˆÍ¸W|6¹áÍ^>{PG²Ÿ'³Ë$ªiG#jqL¥$Bf+)Û¿ékái!ºÙ5$¬‡–Òq#–€ e/ƒ—“ûýÆSÁXIþ´`Z?mïA‡IåíuØy"C`î«®Ç5䡵{/í(FÊð×J± þm…$$Ê|3É u1mò8€ióèíþuË~˜œy‹!çæ"BTŒ0heT’çî|-¶· WVæ–î:iÜ·è«õE;_ÕÑÌ8C·ÕO‡À1ùÇÁIÛÆ*€ˆwf’x­Ï<:›VWïåYý¹T¡¹gŽ,€“q©iû ‡v´y‘î5†Præÿ×úi0ƒ>ÀÇ\1i3w¦¤8ÉñûâREëö>oq/ôU+f¶X¨ºOA–æ×)óíõ2ƒÊÉ.¶´ØX°àSV½™{Å,‚ýßÜ^ákYc:6ôø8›&¦ ‚30®r”^{ÉÓ¹¨„†Fml“Þ{‚d»U [‚1¾õ}•š¬PAª´Aý0NñDBQ£ë HµÁöëÆÅÛ=H“xóˆSkö¬ÝKœœž=«‘ŸŸh¿Ö^MCÏ“ƒ"® ì…ŠI(Ò‹;Ýòôÿƒ¬:c½7"%¹pé\;½–Ps’sª^#˜¡$+W•¾Ý‘ -¢ *jíbt£ä ¸g©ü.ŹfɳjnüåÃ'Ò›b vC}¿L¬Ø+8¥J«R/+$¨*6ÅEÞU6‚‚‰Zjv¯²¨Ùó#û›„¹#öûaÖezF´QÓL§ ¬Ð —ŠöžªŠ‚ s¼4"Ý€P¼ œÞâ’⸨¢šfG†ºµ5S›9-Û¡ÔŽŒ_ƸY7r4d Hwk•y'´LS­-K1gàµë££é¾òyƒFA‘?“§ì§4Ñî¡~ã’>5Ád¤¯† úDÉGÁyYI·Á[…‰§‡éÍTÑ€4å3Ó¶¯Ç7)[z¯>lC:OöLíÊ/Ó—‘^zø!=ØH8*f_ldžʸýáEÍ‘¶˜G¶ì¾Q~#CR8›1{Ϙ‘+ø ”V»3 -N‘‰0ˆK6è}]Ùõ -w³UT”‘êC|#;„öàCçËN!Ókg?棳Cñ¶šêõqŸÃ‘#ríà›•häŸèã¡–4‰´$JÃn2—/Uh·ŒÉ,ù–ê‰Óû -f=Æ ±ÞY¢Î碯ÚuO…&&/Èè—‡„¼]W©5šÐ‰FV «ÛyÍùø Vo5’‡ä ÿGæ²p§½hî‡hiø‚üzp -¸èSÙ:où SÓIÖ†ëPº7{Hz¦”L× ªoâ¾Sôü0–Êú%óp4ÙÊÄY¤p¤;yÄ Ê>…tœíMÇ.š—`ºAEÇ•vJ¬¨”‘s_Q™ÁXçƒK¹¸ÿùUhwÓã1_÷³ËÛxMà°pÇÎÖãû°ç6}&yÍâ™ûrìvd–5¡q=ú”˜€óM”ï°Š±0|hs¶Ž§ŒåÍ¿C²ŸÖì0‡É¸<Û9¼‰YmgRÉ“ô+»®œz¶Ø¬Ò&qpÄF#Ý×òAù¿ÄŒ$}÷æýæ’àñqŬØÍê@'`ŽÀþ­LQÛ];Áa$†kùáÀhTsF=j÷› //¥âËY*ãf÷‚NÔÓÛê7:ïFy–‰Âã1©Û#¢¶R§ÏŠé{Ž°ë„Ø#Š+~:Âõkò<ùBäó΂@Á"šú2ïý‰È­Ûe¬à)ô:iÚ±‘]†×èçíÀ]锨ÌàþûhbR@ šT-r8Hdc+;§±…qzx›š›9é˜Å~¾%¹2,ÚyL$KXÉzá@>ãÈ?¸+qÁ_ƒ„*Ě׈‰nÐ@eéóV"Ÿ·<ݪ{N`Ú<-Rè 9+ÕrÉc4«†É‘ˆþÖ ³š˜¯©`hP;NôŒƒAª0Üql!ÿÑ‚`kBx9èØú2;¾OßÆE›ÎÖRÍ!®ñÃÞw•žŸ‹ha5&ˆ¯äXMj§-•ic†A§æ‰e~Ìq¢šºï¦‹k³ð¸©ï(•sÆñØËL4É. âºÇ|•Tb†%n\q ‰k0ó¡'ÉšC¸N‘ù¿^QÌ–ák‚Ö°]ä‚:Š¯Á¬B·+«U·¾È I?)\%ç$ù°¦ÛVt~ÿ¾?ÈVAØYÑ{ -¦Yœ…¯ÂkkJ€à’p܇.¸NhTB°¶L¡>ÄB¹§ÇÝð ¸K."©…>Ah]rÈ ò§«LxÞUûÚ‡±·ê÷g>{—o °Û@R³óVÍ'D¿WV\O^7d^þfW”¿u+ûÜbœ@(b µÎáDx,-D›Ó{“L¥²§8%ŽVÿȈ$EÏ‘%ŸH`Õ†ßDºñ·œ¥Õ$³æ']¥D•*Y¢t_2Ô³¨R ¯ÆÄ;N*®´S’)ÉÚØq®ÆÿšÃ¾qÔž‰Ë6m¾ò-r Ùu5Nd·‚ÀXÓ“e7j§°ýi2CEó sá¿ùæ_›¢æÚÀ Ž“Ÿ›*€"ép©~‹#j« —IváOà²~½”‘ðC€±GÀÌö+`$û©w漫ëæ£'¬ã™yÌaý‘ÈŠ¸\„ÝaZ/@0«F6cn®Öýô¤ªºQwrösMÕªýaÛDßn·/¿†%cæPqŽý:‰WÅeSN#š½œkÚ²<µáXu¤ó -½•°÷íÇÌõÞ{RÈNv,‚G+ÃV"ç\ôR ×ú‘ÍRqÓF¡µ;-J«–ø;{þ÷Õ%Ak7åÙOkbìXÏJ’ÞQ²,T–Y­çØÅõ¥J;ààRª!÷¡`m~‚Õç´š"tý¾ª»ºÀë'`bN”¸×sÛ {Ã* Cx0±²”yã0T— ÅÂ~±†1I‰œ^¡^¼Ö4pn éÙΟ(Îñh”×P¯þh…eʲ×-8 ¡}ó„ÃRìq® €²ë'D¹õ¯ð|‡ÿŵÐnl¡ŠÑzóépp,õV€:yPì¸ sßß\•Hšrø-çM cl–ý‰”Aªèñóqân÷«®fÍ"УzÍÆZ¢¼ºž†1ëΆ›Ž»",»úSÊ?}-¡3ï$’XXS[fö@5*‡× 1g¿1œjbúj¯)Ý“’cÕfIƒF%w‹}ľ”tŠHHqï3Dº[—ü<1›ÆV‰àïäLò¼ñgÝGÀ©¶³ pk$Ødìßòbî)Çö8ágƒ]æýj:®êrlò_¤&kÒÐÊr¤ÞòjÉYóØ?µÕu§ýÝ ^ ûyï Â^g6:BÈceP—`_H¦õ§ýg®1e¼ê¥…íç•EkQIYºv¬›•_O/w#5ò†:x5ëqËÕ£Yëg•Ž´0ŠŒ-M4’ìùø¡Ò|´À–d0<@Ͳ¦•ÒŽ:}*tY/Ä´€{Õû4ìÔdѱ·­XÕ·NpS³L‹Nã°~[ßô8VöDêÀT»6†¼è<Ž$‘ 2 ˜M¯ÛÞ#õ™3O,8ˆí¼–ÝŽñdr“’·­ôFò“ÁºÅÃØG*ݽDéh謨R+¹= -bZìçZ7 -1¶$$£W-þøù0|0n>Ð|Â2%QC´×ÀKFüêLqµ'~O$†Ö­Û¹(czÀAHìWÏl‹|è(£¬Õi€´ a£9TœUßÖ9²_̶c®îVDöµ…⦶œ‡3Þˆù‡”D3|Qåc(Á‚K¤ oˆ¸R¡£¿ˆuŠÅýã]àŽ†A¤JÎ ÕËw åQ¿~°ò "†Œqì:uš ‹‹Ö$H(–An|Q‘^gmµ~­ôjÀýÝ\©ˆöZE0(‹};º22ÉX0™žÊÇïÃöWÜ[m”[kùâjHë„9¡=´ ‘Dÿ߇“kl^´ýG"_mçzö•#ò™Ð¥ŠÞÿ(¸c»½añdÌÀ² ŽÖÔÄvO‰ÂõhA²bwŠá¶$ÒLì𠫪¦u⌮–çõ£mÜå”É\øÿ æÍËKøä’å\.Ÿs^;»ê¿ – ` &h«T&凑1¾çÏ)ìÀ}´O­¼$réÏqLkÝ›§~æés¶Y®O; aÒ9±{½¨ØWqÕ|ü³8Ý»1qï…u?og¸RGšë2¿Wž)EYæ½£c!É?HìSãî"Q=M¦ÀäGsÛ Ä¬DÜct¸§ïέÀ0a)³ºþ5h0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -26 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-58 -250 1195 750] -/FontName/CMBX9 -/ItalicAngle 0 -/StemV 117 -/FontFile 25 0 R -/Flags 4 ->> -endobj -25 0 obj -<< -/Length1 3604 -/Length2 20581 -/Length3 533 -/Length 24718 ->> -stream -%!PS-AdobeFont-1.1: CMBX9 1.0 -%%CreationDate: 1991 Aug 20 16:36:25 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMBX9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /Gamma put -dup 162 /Delta put -dup 163 /Theta put -dup 164 /Lambda put -dup 165 /Xi put -dup 166 /Pi put -dup 167 /Sigma put -dup 168 /Upsilon put -dup 169 /Phi put -dup 170 /Psi put -dup 173 /Omega put -dup 174 /ff put -dup 175 /fi put -dup 176 /fl put -dup 177 /ffi put -dup 178 /ffl put -dup 179 /dotlessi put -dup 180 /dotlessj put -dup 181 /grave put -dup 182 /acute put -dup 183 /caron put -dup 184 /breve put -dup 185 /macron put -dup 186 /ring put -dup 187 /cedilla put -dup 188 /germandbls put -dup 189 /ae put -dup 190 /oe put -dup 191 /oslash put -dup 192 /AE put -dup 193 /OE put -dup 194 /Oslash put -dup 195 /suppress put -dup 196 /dieresis put -dup 0 /Gamma put -dup 1 /Delta put -dup 2 /Theta put -dup 3 /Lambda put -dup 4 /Xi put -dup 5 /Pi put -dup 6 /Sigma put -dup 7 /Upsilon put -dup 8 /Phi put -dup 9 /Psi put -dup 10 /Omega put -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 15 /ffl put -dup 16 /dotlessi put -dup 17 /dotlessj put -dup 18 /grave put -dup 19 /acute put -dup 20 /caron put -dup 21 /breve put -dup 22 /macron put -dup 23 /ring put -dup 24 /cedilla put -dup 25 /germandbls put -dup 26 /ae put -dup 27 /oe put -dup 28 /oslash put -dup 29 /AE put -dup 30 /OE put -dup 31 /Oslash put -dup 32 /suppress put -dup 33 /exclam put -dup 34 /quotedblright put -dup 35 /numbersign put -dup 36 /dollar put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /exclamdown put -dup 61 /equal put -dup 62 /questiondown put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 94 /circumflex put -dup 95 /dotaccent put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -dup 125 /hungarumlaut put -dup 126 /tilde put -dup 127 /dieresis put -dup 128 /suppress put -dup 160 /space put -readonly def -/FontBBox{-58 -250 1195 750}readonly def -/UniqueID 5000767 def -currentdict end -currentfile eexec -›œi_,+õ`ôÀÕ"WºÍÖP -½¥í˜5ö ÏÈð l.×j‡…kPôØ úëPŒ—ø(?ˆ±~M;Àö^Ãyy¬Ü*f˼[âõ:­ç-ѵZ/¿îeŒ¹_[³+ 5{^Ýòd tp¾ñÅ!¶ûÕÇ~¾Ùd¬Z+¾ÉسäŠå»:cÕEwK’+_ö°nÎCdZy°2}m‚3…þUó@-UÓ´HkçÑõ¿®\Gnæð^±ÒÊë&™X±”R—³üÎÔ†<½ ×ØÿÚÍEKNz—µŸçpæwQ›#ÖÀ„$Õ_ÔÝ¢IÏðµkŸ:ÿéÐÞ!\¥*kÇqUÿkŒº\Ödk£1%JÅŠÎe -–};'#1¸{mðmZ¹Ø«éùά›a$Hݟ•íBѵÍÂ侫1‹ õ¢Â“Wå4:·¼ðè‡ - ÞOúËl³ý½ÚH/Ë„@=.š2 *öÍ“£:B¤8WÁ³ôÃ\ï”ñºÓæ‘P×[yù\œú÷£5²wæCZ³tö£çŽJÁäaU÷C­eÅ×x@:„¬I˜_Ó<Ib>LIlÓSÒ®*H jB -8ìåÕ²5ÅãX† ˜}(NaR{e;,hÆ6ïB56 -ÊÛ•HCïôÙ¨%h§¶‚Åtãy? :ïu\equÂ㆕!-Ÿê{Ôµ€\© …±4Ƽ¡šú࿳ccÊ>%h¬EY¦ŸÃ/ëD;a$;E·RM—F6…\ƒÈH›hþ½Iq©SCQß½ ú.öl…¹—«/k|m l´917Ÿùx/  _<½&]‰üOfä 0weÓ„Ã*¨:NO‰¬yïŽvîЄPãFoºõO…2O -O½ÌÂ-2ä,SÑL;GDP¬J„=ñEå#I+Ô ÃÖæó~&2í¿lÿ9ÖI)¿¸ú:"@üï?s89É°îêZ/5t5®q·àÚT˜]Í0”ùs‹OÔ¢ëÓ8Œܻ¡ÏíîÈ ì®G3ºÇË/’bżnå ôå - €.{ñ…×ýeﺴ¦¶$ÞlÂŽè÷6Õ•Ì®üXú#éW‰…«a%"÷°cÔhÇÉZµbGT­fr¾n÷’‹rÖ$ÁhFDæzeKLî'£Êøî­Mgz2MÖ F5>qæ¶ò±äVb)±žãÌžQOÐÀ]ä<º×‚­›?nÝr{NŒ›§/·ý~Ào,ZÈÂ,Ûž¿ïÃ׺–#9#˜›Qw Ș­{C4zgåoñÙAj ‘Îlílü¤á;'#€od½øaÏÜR!SƮݛGÃcrpÞñåäoú݆æè›Ö›Ã© rS¡ƒc‘Úªü¥ è¹jJù í <66j“õ³ ÉóšË©/°,ê×àA øÔî GhÍÖÏSE—Å9¼¼!•Ã.Òí“TàíªÿDŽ ßTåLLpl~ˆÖ­¹y*ìÃ]=3dÈá9žHÑä?‹áJ7dõâ h³­ ms3€k•ÄìsæOš>J·0ï²®uÊž&K”è`5-ÏݨëKw¿ÝŠ¾õ[L'êôà1D«¹J•ÒmÓlç·ay–à¸Õ•’«Ö²Ïû80:vV4q•×‰_¹’ÔÈ_éÒ¦zF µÛ~"Ì`r Ç1i¹Eö;pTyðÌ(v„«ô…èœ -¯&è³}©äºÜS·ý¦}µÐ¹w—muä?Ðrÿ*9\\åõ&FJ+,bôcgyí«¸hÕÞ››nu<5øuS ÂLšä»HZ\uÀëä*O«(A¤ ÙNÑ‚0¦-<¢ÒæFÇ:Õ§ŸîøIgÿ"†·'Þˆ-Ÿ‡9¾D7dæ†;´Ø6 Åô°Í,.ÎTôùåŠh §gë^N-WJ9ÿ¾XB†p”b\LÿÃÇQew¯ßÐäî/Sɵƒu`Ý^üå´tiõÐxÏÛªÑæÇ’^;GW±Á§˜Þ#»4ª;jó(5Rî) `öÿ ØÀœ8ª~?éÁH®ç0LÛÒ|$RRtG|ð‚¼ˆ'såhN©L/RãKœpùSô R¨èd3Ïv›à5•q#ámš"€ÐrOÏ8[@{c{üÉ ÁÅ<­(\žxÞ4ç|é–ä¸I;^éü×ä(Ôõë÷¨Óˆ¸Oº2,üEËNÁð]aMÊ;)‘¢¸ Î£*˜ÏÖïãíèRª#))fì+”*(û;ÀÑvT‚“ËdOtŒ' Èô3ùF0ñe‰‘…¬tØõöNÇ7´Aµ'E¤¡h× =s¾ï=äέ6t¢ë7ævýùQ¯±#Ì œÎŽ¿š¦%‘.3˜ÃÔ?u‚û¼”ÈîÆÜ\’¾Å„Ù6|LS.º4Šuö¯Ðï -²Ý¶¿æ}údW6k¢©–Þ•?O\L<·^?ß‹Î)‹–2|‘i§é=$$:H÷"%{Ý-Ö’<…KÊÑ ÓÓ-ws†u—а¡O¹Ê„â{˜$†àù•!k2ósu'=¤×êìÅò}—±ƒÏ7âoÌŒ=‚ÉÄ‹ ¤¬BrºÕˆØÐͶUž ͸þ “IõÌŒ .CßØÆê×'þê«”v˜kj´´.+‚rG'îm>—½À0#ÿ²Å—,¨v8 {Ä…|ëšx%,›Œÿ |¬ r‰÷¯© b|éøÃIìþà÷¼Ž.¨˜é5b r’ |<Ž¬fwt‹TÐק €ÔP³uš“]S­s¸šŽ$j"}Áxs)3ê‰Öm=GÒU­ç‡3A®Ã R9Ñ¢àe#âñÓ1cgÏ_RÐ*`õ^‡žøo¹«a}î+½&ʬ[Ú׳J >éZB6üÖæá¶ùDý³„œEW6 T'QûRaü»båGØù·Ö ]ÂïæÔã{=¦ûz€åÙ£TÁ3ª}pˆa®®‘ð$Û­«åß+%HzKéµLÏ0S© A¥Ô)Ô—MDëªñr¢ò?)‡z;Òßàõp˜³t.çî2™ómh>}[ý¸auFÿÖº~Qázìøfb€·ã@^ -æ÷Šâ£Š=ÀØ™ŸWŒæ¼ýX!¶ÆºÛÜ킪HP»·sä‘Ïé^ÂÆÙºŽ²° Ófúç™ÿÍé\ðp™þn=Þu{&@u• pÖ'Þ· -Ÿ¦îð4P“.—7o1Ð4Iif“¡û‹’/í@YÔοy‹Ùµ›B(=«œõsšØqhöÆ}h¦Rët· °ÚrgpÏ—Å™Ÿ<øþ]/Kc·/˜½ÃÃWBE?Á„¦Ò–XSú0v0ÇÔ³Á«Òß#@.2$–K:VPêG`‚¤[|Ë£¬ÅÞe¶µG„™Ù÷`(å{ÅG5/cžµ^¸"˜ß¾¨Ø…—…2gv¢oÝ‹N<ü - n»Ôéá$gO*3 ¢4Ð$Ð(Üí4jµwåàg£±àkvYQ»F³’ûͧvË´¤WÔ‹+цž.µ(µ†ðÎ!„¡œYÙ§+ÐvÊVÌ6nuê1Áœ€úW † +¼²NŠ9-»Ø¬É_Ë]‰Îšÿt¶Qc`á“&ûUõ\V2ZRù‹ŽÛÔ‰žOIËëÑlåÙœó_H¼óHtaò-{0DÊ° É”¼ª÷^^-ÂZìsrÄæá{½0YnRÎ¥‡¬ÐN 4ïÔ Òíø±×wp1‹%‘ØLS V¢úëk˜« 8Œ©ì€iܪPFdóurrM :DœÈŽ/ÀabõÚw6Õê`¨G,ÌN˜q¹éDYiÕq¯à,ìx­ - É›¤”"o9๠—KÈß°úpç& èÓ–ä¤ÓÊBk‹©è:ýÄTŸfÇRÉAÉ´á;q¤SKFˆ´q NwþŽè_güo'x˜ûΈ{n¥ƒd¬ †Z‹}ƒ*Kæ:$C_e‘bÏàRGKXEÛ¼s]PØ-Ï0=dµ™ù³íIÈϱeÁ<âX‡CH¿Ï¤6‘Ù¤—/—Åud -;iSnñìû v˜{ð óÿï•è#„WÆ°s}ÊJwWƒïâ5HDWö¹‹4±ñ qž^[Uæ¸.p(¨õ”Û¹›Ò¢Â%oŒ°ô*hƒò§¸y7ØòpXï‘a†W‹zµ0a'Àù‰éYxŸó¯Æo¡_¿Ï|tOú?â$§;vɧˆ7ž`öUX ÄéðdI­>õã‘Ë"¬}늷©’Îâ†&\âsÑÀÝ×p3CËÚ”1‡nBÅ øÖ‡ÛN§+5Ž áî¦óFøŠôs5H³Igoˆjh¬%Üqì/pŽíùÚ ¨)Ñ=×D=n³7?ŸÞï„'J’T÷ÕöÀ MÎDš"[íô˜rf&egÀæ÷…>ÿqãñ0«ø!-/‡Ç‡„$+ôQÜRÎcÁ¡g1pà<¥pÞhhHã¤ñV`½Œ,QZšB?àžµrõ:ÄØY¤]¿ªSqè 6‡™oU_0\‚ÜABBðÙX¦Xp‹Ø×Y¼®³&MHð/ÄìoÚ‚÷ø>ìñ‹uèb‡VkÜÈ:k½¦Ñs¾èÄÚsw{Zצâ^µèûÊø›16S^ÆVUÂÅ|pP[zYËwó‡ÜmQÊáþf8¿¦ƒ©¢˜3|©žw (Ï„òtÄ¡©‰ŠçÜãuó<Í1m`o(´þìy‚vŒåŸcëoã¦o qƒìçºBŸ -»eÔfv½àpB£.„¾ŒÉomåå4»Íá}”ëÿìdmûŸˆ at²e˜ŒéÏ×_ŽMpJ J7¥Ò±P‹a~%Ñ ‘¥ÌIùŸÐ(œã/Á›¢OO.̾C¢ü,Ü‘Å^ì…U.½ÿßß–A¿îtQyLsLn¦©lÌxÕ+ÔüJ왉Œo¸i_Zõ.%ÀAñS¼@„9RôôTOš -Ši?¨(0­óÊÙH.ÉÆ·Žº@÷÷[äî–½Äæ^%É°'^>éÞß½Ú—Ä¢0:¨õ±ÕÌÞÚC¼c}‹µža;H”3u9ZJ-«àpÞ (÷¥™ÝÄ-dPy+÷¦Dˆ §†µ¡“£ÜÌó›{#¨1–wjì´níhéÁ¼Å"…x xñ&§Ã>KÎM0ÈôŽt}+ -‡I‘d=lG?Ó`9è)Ê,ðå€^iq!ï*W*ª±1j¹øÓ£­›îX,Ø{rÜlÓ P”høH¸)6£è9½&Q.z 2p@Ü=½g“$†±¦µâº¬ý~+%®´ -¨ˆ‘íLXЗb¿ôú÷Áfí8ºØgá›ÿªž1¾T¶kPï•5IÆâZ"%$rpŒÀn -ñÑj¤t¸àçUÔ’Z¯!Áû'7jœÆ5ðä¦v¡á×t…üŠÈŽ$4–≮¨‹ÞO­˜ŽýÖzhÿshg'^Fd® -˜á¨5Ü!4—ú¦‹iRToÝ@ü¬qâk8LÅ h*°íp)G`{Á$s}ð ô²¯…*óÞe•¤¸ËN¶b%Ȫ\Óôd³‡Ç À"Ñk÷¾(ÌÊXÝ<]Sc>vÜœioé?ëS°Ä¼»ýYLZœØWô½85žk;Ýb&]xÖ´hD•\Aoá~uçÔˬ5î6qú΀¹Q¦îìÉŒ`>´‚ΖÃXz ÏÊ¿rN¿Özé>½e5¶é FÕ…ƒwŒ6”ëØ_#i¾Cœöv1|3?ôò-xL ݹLLì‘GþiøÁïÀ3Æá+ÿAÄm´ÇOõéY•ªÈö¡Ê·6,sÞTuèI¡­·…Jò•ª?µY“÷ì8èr‡Æµ7˜öé9S´´<Õæ8ðáˆê°î`§^®[ƒÐŠ9ø`Øx¦ùoewV Bm¶u“ôP—“<ù@RI1vüóz¥Ï]õg,a‚ž ï^?Ô™¤)<}•;ýA3ØÂ_ÈmÖbcÈ6ˆ¬<Ë•¡ó(…nZ :³'!‚W¤˜Ð«JadžëÑ;©D@®¹ü‹ºòÝÀçÅЕ;ÕÇíåYbŒBFû轃أ‰4/»ª¾ ;ýÔD^܉ê¥ëK,l´K"½ãÇ1<Ý™ŠSÚ!›væqAøóã¿4Š©Œ{˜øá®ÿWC]Úë)»vš­‹ÿß­^ÂÁw¤}„[Uí4 Úξ×»†õ(95˜uJð&ÒÅÔ7EéQu7téÖËI½µ –³á‚,¡.ôÓ-þ¦ÄÛœþ´(Ö³ª¤§ ü@´WÏøÌçd/r™ÒâÊ€pŠß“ Þa(´wJ-ûÇ(Ù?m/e”Ÿz°Ç]§_ ÔùŽÍcà>&—ϲ,à·w]›m&°ñsAý¬¼°`§ N”Ay¿[¦Îñ_³W¿„E¡< œŸÍÈO™¨˜GÑHq&)ŽY&Oz8BäƒÂ›ÏuH¨Šÿ‚mL~3«U¶°FârÖÁ£#o;l‘÷ Â!»Øã9ãw·~ao£Ú›F“¹ –±»#¤Oý$ /B³ñyFð¾T…}ÈË©Tºuwµ×l?ÍnÒ 6ŒrlžÀŽ©þ«†’™À$8Œ˜zZº"2ÂqR„¼PÎñ×…ƶCxåƒÖäxWçºÅ£àž‘àíºwÌþ-öX(SX@aÁù¹,ñ›Oœd’xG1uÖû» ¶&-ª ‡´O· gE'Åþ(W'÷êÿzѼ  dWm›§áïæ¼Uî®°üqvÁ%kZ®ø~6¶3o•ˆÁB°c3ølãŽ}õRԀƩ¥¥ìÒÅ'šNùIwùÄþ—ß„³¡ª7õæ9ve§„µG–4 Û&ñ"6Æñ ‰è꼃þä‚(YÖW@²pû± ³H¢#s†Y(Ì[ý8üÔÑšêñÂ.Jv!ñLJƒØÐv²ö¸@ä0ÄÏø>+d3 ±áQÕ²nûò_ÞA{\¦·à¿I¦-änÃòÖÌ„C‰Þß&~!\"%£ý D·÷£O‡)P¨EÍ¡×ö ²1ºãî¯Ò”!È„´wn²Ýµ¡".hégº_„bøL›< žò§ªýÇIi7 ”z|]¯£!?a -~å1Ø¥^hi®]ÛU²ó†µ¤t OWæÑ£_¶?• Ð/¦ÅÁCdç¨ïm|˜r>ÅÚ¾ã¨T‡DôØ£`š‹VëG46K1ZÐVüÙÎÕL>–n«7Áí²`¨Õ6ÙmÑ£n_É,¸Ä« -³r~yõÀ×0£:.õÄhç½÷˜¡Q»þ~LÍÙƒœ#²X"Ì·Ê\–)ûý¢ AÁý}T˜5ö=)]ØLØ#î¡pÆ”nÏ_v•l¹4hÄEÉÉûµþå£j¯ëô8ÿÞ«©ý q=çKQIñ,£UˆA­cjô¹[PÈ>8'µ9HõhŠ xJoä…û¢}ú•t2sÉ­³vfdó€'usëØ@@©ø󥾘ž¤9Ò—k‰ø7•Ú/î´æþJš4%ÜþsáŠñ`8c¦<³WzK ij®Os àõ<š¬LBüÖÜWÿ;³$]ïR½TC«'¢[ŸA¢Ù^w»òÎÈ*+W;G5xÎˬÍfÈâ³A¯ˆG¿t·úÙ¿†ªZ±’Õ±_¶åƬìÐ¥r0>Õ÷àxѾ“#”iÍÛwŒW†„¸•·rÚŽ$èPcìÜŠŸõóÑ‹`±c`ƒ3NÏ5±6 í2^å¼áÙ ŒB·›‹ûCâ~j~ÏSp&©bT®µýÄ„~Q^5l»CPTn[øeâàÊÎìv]©n¼úçzIqÁÓ¿Ê͈upßùŽç‡>º®GLçÙ†Ó‹ï¯vp<dÎ5i¯ƒ¯ã"£Wÿ¬t° _Yë-žé:ƒ\ È–É–¥ÜÖXºD@É ò$™4@1W ‡÷®Žº”ò§•ÊN”ŠT…Ôÿ5¾‘x$W¥GóôÇáœÜg¡FTÙsËqœVÛàb†L 5£+¾©`DR¾¼}!Ä'Ãçä÷ˆ:ÚpdG£“ E#Þߢ֓j£LxšsÓý+ -J*~¥0;lü Ø¼ø·}÷–’ÆÙŒ†m¯½0—EÿÑújáP·ª]úžk}ZÚÙqhö´ÿd+xqÅCžnÍAüñÿÐ`¡l†}Þð‡.[i·ç¶àÛ{fÁµ–? ͪ­9€­MÛt.ò§*@]¢!B_²+5ж¢Òí5MTÈ ‰ß¹f±%w>á¥Bh€%º*¸±¯À[}ɹ2b¯åþZ=–ÔÅc뎄Êj÷uè›ëßž•t¨¸æ@ðÚ¯Cèœ$ì.Œòsu÷tDºº)…ÍX†ØÈÅÜÝ1Òº‰,Æ^H‰y+¨Y:ZÉÞOnI±V+; -]Âiϵ€ÆkÎK(ö’?ËøW,ëNü ×H bìÞšò¡[© ©]Ĺê¢^#H!¤) _ÛãVÆøâÇó˜¬{bSØOPDýX'Û–#\7üêŠFb*Âæw¢ŽMŠiÌ>š—uÅ̧Ã#Þ5/ç¦|¤Ea2‡6´²õ¬`[UgàµWHs³Õ±}SË]±gwÁqG~û‡”zM½¨€ŠP`R;À3aQ½€å{O Açœ -uf…"³¢õÅÔcèE2Æ–>dSP¿A“—;É`C¡We@vG½æú-0HãŒN¾Ÿ—8ŸÆ[Üùìñ•Æ+D}jp¯¦Ù$·—®unQØ»hƒÈù?#~Æ´vÆ-´±a©Í{Ø$ñ}ì:ðºŒò‘æçx¤dŠ ­Žyù÷—ˆã§í²ý]úå·)´@½Ss%‰0 -ö@{½Íçtu‹ø@ýŽ­†>ö >· -XÄeô³8eáËÿð*BÐ2J ~yâˆgîù¬-]V&-[Š33=Yg¨Y_©¼Òeñi_|tiÓÆsq²â-L=?ÌS¹LÚe¿UHLÄêúáŸöYï§Y¶]Á3 €µÉxvX§¬x' /ßl­ [ÝF?“³m·è£±ÄúiehŽÁðšlHòƒGGúe”¨ñÙ‰žH¥‡)Ÿ¢ï>î‰åràM~£-v®¹¯Ð×ÈYxM™MV÷Çsô¡Ö]_î¬Æin0¤ÍÑÒ+×,’‡lÈŸ\ÇÙò›1,‡„ @Ó¼º -® -˜£˜Œ%«Éˆ×~[®í5*¡6Påú˜I)pÿ>ŽO®¼d­AÏ3C…:euáá(†z‡Ç|Îý2ù‘×óάãÖ BV{Òˆ`qšÛE ž;á á8ˆ'Â6Õxmpõ?^¦åÍ#b;j1H³: Ì°ã/°êX…—¢>…íÄ&™¥ XÇQ‡u²<«ŒY ñåm臂´€aì¼bŸUwÓT{³Êǹ!²ì€¾OH;Á€~¤wœ}Ï©ëc%|ö‡£é£·×q‰i̓Ì,å¦2!²]©Æ¸Mù¬ÊVí3Uè)j‘#sb.0«ÍP…Hì**æºöÏz h<¤@˜ŽŸºW<Âfb]¼ßŠ:•Ò¤/à ‰‚¡²Ù jptc%F ÕöÙQ ñzi)ŸÑ¶>YîS…Ró›štL}.Òê/#Ù/O‹(ÄÞøPlËAnÔ` gèï¶z÷¨ìGOIY´ä˜vÏèLÐØ.IƒÁzoC˜ò¸ÃÇ´£®úÄmîs -™ZéFb‡ÆŽ&>1ºs › Z£¶ùØíSçï -ÍŠ¨D -¨8ÝMK[í“ÿl«ýúÂ÷ 7lé¿ž=M©±¬Û¢'p{í3¨ªpÛ!-ŸôFM3–ik~ð•H*žÏ-¸x–äG@¥áã<¦QÃÚ7.…ß_ßý#œ{q|õJ÷`òtf>eYüÝ4È,™¶¢~zyƒð 4!l!¶ûôàg"‘·À±þ-VQQ°À5%ÄÕ®®ÑÔ&®øÇ…<÷¥§xá|01¾à¢Þ^D®°rÙÉ™fCИ/‰z‹¼w$!ã-Ñ{ªâsÀuƒ,LI¶@Œ‡›î's2V1aWË9½TGšþÑ>ôÌÕkqs¸@fP7¤ÊùŠ¿ó`Ÿa¡³ÿ.—04LYR-øb,d“&«gõÞáL³©ñFXE}ô LD”Q´tÔú¦pÖDƒèhñé=K§+&Ž.y‡é¦).óâ€9­«¥?“U­"ð샷q,}ÙÖ¢†·OݨÿòîME¿º½쯜5ýC3kôûuºÉYî ue=šbœ»5io1„î8`‘ÊßóWªÖŸvKRUUÆŸò Í%Šµ,ø¹)bêNÑ£Á÷uè < ö‚?¿ªØŠ//Þ€È-U}È>Ž»ñƒúBãº:ß=_ë ¤šñ^/J^0ÿOÃãaYH£ -lA$Üe7÷ϘO[|3|m²YÄÇ+ Œ æ”-ŠÒo[ªWJ45ã6Q`×yïÆœ–ðô+"h¿Ðàt7@¢SS^ò쪵é3),#’CŒí_Ǥ_»€Á¤ýb [í¬1/Š;K¥¦'ËB⻋7þ•Š„Òj‚œPÂazeÞpè‹XÕ›·(îö™Xªƒ'oÄ@¦Él ‹u(¼¶©ééAóëhûrQ`¸äü¤p±«fV$.sPX=îwÚb%Þ±Ñ 1d¢+\9“\z÷“ZfŸY†ö‹öòµP†F¡pädaû5R:xž8ˆ­8’i-玣Xˆ!S`ë›\O[y—äôBEISìçîÂnë9ç¹=7öñ°s¾/ÀprÙjudkøöÜ áª¤F¶Ö -i¸aœcԭϱzØìlZÂm£m¶IWsì%Eç4õmÎ? ÷$%Ôó ãŽ@ÎÑ åˆi~M©Qqk¼Aš÷]ki×`Q·_D¹Ž9R-1Â=ÚAë\µçy綟²oÎø„4±u$¥zªj“WG>“rÞÃ5“1ê]{ñÌÑÝ¿5ðáryF2‚S¹$ÎçˆðÜLy)«3v„ÀcutÚÄËI«H¶¢¶†2õ|3d7Bû„´ð»Ü™ú+15;#X»nKÊ ˆùÉa9aªœ,Ƥ#.büý’EYa^T–g–Afœ:)xfµ”¼dD„öX6׆)¥¦#våŽúö– •µ%(Ýã Œ½ ß9ÀÛú&êŸÒ–ÎÚ0¦åÇ7îGI15ú …u«ükúÂi ÛDĨ¥š)iÌ41_•Ç ¦*@H ÿÃkzl/Ñ|Tò—•)mQðl’@Úá(‡D|³Á&@ÐéÞ‹ò®¦BD Y'ª&sžx¨¤\ªõSZÆjÐcÞ‚fAHù‚ÙÀ•!Øvf3]ÝÎgÏ;£ÇzÃâË3*Ä¢<ó®žd\›Z]!}}¼àä…Ú¾A(öÒŸšp<ÿ*>‚SçÀ&x鄶#Å…É J8>çÕJ Hù¼go Œ‡wôX7̾½Ù³¶ vlõ¤,›óô0ÄE7éH»¶Ìe©Á]$µæ7W™ >çDQÓT^›éÛ§Þ3}ª‰È‘6‰c@ùx‚ï®Ù[ -r.²@Må(CÁ>å#˜[ §þãgEwá£T6ðúl-ƒë4/vºô‹›Ÿ±À&zÙ;äÕ¬Ð9kéðŠÕ$™ºYÉöáÌ à"æïk•ÓT¹¨9¤RuRæ©d<ô~ܳƻظ·ö2)ºÂÁ?éð†ï¶ïæ=xÏñ…R þ$ ÀÃà!7­eX.ä›nçŒw•—Ã}Ю„u =ŠnêÃB:š1>–‰¦±æl¬D ÂÐ3ð¥Ñë9æ4Âg Xð+/]Q¯QßìR/t © 7gSÛYRmÁÅúÝ<…Ò¬ß*ÅI~y+§jR¨…WÀÙÌØ‚.¼é¥C]nnÛ÷ÓëOŠ©0›ò¶²a$vmk…ÎÅ£í'·MõEH–”œŠÌ±ÒaŽX^©µsÇÅþ·_Ë{g\ÐÔÖ¤~T§ò`¦6¬ÏtH^ÿRŽëô#™fÅÅýØÇü?àÝÀ­ûHZ+ {3‰°«kkÂ]jðA™àùÂéÁ WBß[`ƒÓðÿ%OVQ¸¼]Àiê•žR·6• ¾õÞ™¨¹%M ~_° þ³XpãxÃ`³õø´•ÚãKCi´«{EvaD,Þ7hèBŠ›jM½>Ïš"í)M™${ù‹.Ä1{ñ0H¶mŽÍ=Ë.xϯHM‚¹[¾'PH¾ú¾º34+jX|†–+|¨ÿMF×1ÿå?õ‰ýC|A_ëÓ 6çfªO«ÝóûUi1ô—…Ž·_NʃYžˆbMÕÿÎ9•°—lÌ,·ù„‰†Ò³eKé“ë} 4d}ȽrJgýZAïpsüÖjº(üâå&(8°ÀJH5Ž°êÂé§àóŽUøŠÙ"3eÓh}¤ËXõ@ÚjV1Sµ…XÚ`J|Á̳";—Ò?›}'ë{¢‘T^.­±pz­%|FkJjT¾Î¡ÏxÇêÏÕÔOd]+ñ;†å¦žÃ+¶²úf_±~䯎òôèZ2Ù ‰ßz¾*Å“,òpÀ9‘’ ˆyÙtÌzçׇ©c÷Öw¦aî]_6YW_æç-áàmu©7¡1pf_ô÷\~%*ÙgÓ“‹Nç\M)ó -Yžwÿ ç/BñMIÞZÛiã#¶ÏžOÏ/„ür×ÚŵָK )çü²ÕE™°IçZÆïóŽ2xö61À+¥¶Ò£„ÙËôã9…ßÓ~w±AHô‘ô -Dv"»ç‘Qµ:U—š0¾°×r ¯m¾‘S©ÿò¤^b -?Å'è p´¥ÑbÄØ…nG:öµëZÙ4\w¼ô+ùé .^îí³¨ïŸ--C(]ðÞÚ#³9 üÚþçñäîԑ4n`t&ñQ§CÑ4yˆ/H,ÅãGÅÖ`Rƒ“+)e¬ßÎölDÇÔéçfQžX=ÃÜþ xö³Ø®*’¸`øÐþïþ†¸ ÞÐÃÏé½£*¬`•yc%>Õ(×õzóQ&ˆ#ù7®R¦—ê«ZØRMªQÊm‘Ÿ˜ 0п[’Ës9Š)Oâ á<·W ËâÆKã—_ÍõPýHçþwúhE0¦¸>m€1‰„åTðA6ä•Æ¿T¥ÓÊ)ÜÈ—‡3úÑÁ‚žh†’ƒgø¡É8W€+j/qm9S|¨xNä!ëGµÈÝÖ `2¹s8¤ÕÛL¿ÜºªxGL;uñ.ßN¹¼‰!LnátŒ ×/\Þi¢"†ûçÒ¶[/"Ù1$šGé×ãÔ—aŒ5I1o†˜B‘£¥¸]ÐÓzó#÷Àö¨öRh…×< )BÔãŒ-¤è^Æi º_Œ*v¤)ò¤—œ2ŠVäÎ T~ÙM*ó$>öëPÖ€Â#$|$—[ÚK*õFE:èÑy2… }ÅD§í iö…ºOËuf [Í™=âäÒ¹-’†dϵÙfƤR9Ò ¿pàæll´L´fŠP¨j!x&à9sH ”P\{Ì‚hùìhñD…qÂ[ìjŽxadÅ[‹…E⺠*4ú[°4¿ÎÈåµ!¦Ûk´š°ú?ëÎ<›‘C!ÆaåI`#›Ö”°ÍAïžXKHÈ·F®õö):·¬5D/ ˆþ»¶Iv0¤Ay®ÒW鄤Ï7t™¹Wê’†¸q?-šÎ›[ׇ]óÝõ£°Õ‘p+¦°Ûe­GqdÎÀFi%/ýÊã\­;UPóppýEöÖB"1o¡‰þvW^0¡tŠ·×ê -~u‹ì ‘ŠUBÓ‹SŽOeÇ€î®Åº#Fy¡3bäw_“.g÷îF~CA^±ø6f©Žm|c¼VtÉu¶2Ñrm×´Œ .K/ºMu¨a®8-ïœ\úSy”÷÷û4ò+576Þ‚ºé]ºÁs[ÚãwöÑ2Ž©Èû9s•$YRq¶ÀXM.ˆ%¹•ª´Å9;YJ]áÆÆ< -¾ -)ŸÁñÑÔ$qf¼ß-…Ÿ‚,pXw?NÒFõNá3ít˜°Ú´~cB -ÛZè}sx;pšÔ&Árbù€ƒªøAͧhk–5  øb¤´“±R_Y¶Ð<›#½]”Ô‘ô»Ö±RÅžnf¨®~šœÑ4É“£t­vp‹²>&äLœ3Çt–n÷ÒÏ_¦ÙÔÑ™6–‚™Ô|¬Z¨GQ6º×ÅQ’Ö¨ÁSˇàÞ;Ò -‚Ö-» 0«›ôÉi9Æoš§ ìk¹+A) ÕÁûÚÖlSt§ñLíÃ&‹¦(®¤ñÒ¥Îk‹?ØF)Æই&?ùöè¾IÞ¦A“åDQ3©~ÿÇIÔà‡|¬ˆ “Є¥HY¸&­sº}YH€mÙÙ)àfð6L²LTé¼.tö褶Ø6í¬wÛ - ÀMc“¹ž -'îxHĪµP ‰)Oj‘pAZ{ˆU}#V‰I€H™üÿ~éBKÏŸ«0ÙÕU†"ʽñVp¢pÂÂ6jq—wÿ/W€èGs I&äÕ7Îr«‹££bدªµ2æRÑèGà»[óS=n†ÃÎT°?ÂÃmÅàѲ,£(m(ˆ­)x˜å<ì2k‚l0å'±ã´¸Øû:%ÜOrÃÁWÁv¹O$üÁš -ý¸3ÙCŸ=S -\éeþؘO™…ÑX,¤~Ç“#§`ÿ¬½Ø;iÊcTÔ>מÀ¥^["päÁº[Ù+XŽ8;GEèw·È8w?_W\Ã$¼ømxfYÓr„)B3" ÝV#89ÂÍ^×c}NƒSî»@—Ríp$´äwgfî Â=Ä^$J7ÃÍÿùÄv°3•j§=ס“Ã|:å;NÍ{vÃÄ"Ýúw;ʲˆë‰‹—"ŠK$æ~­ÍŒe`뙩-r¯=yÔ»&7^1ˆ¿HÚÐx+Àv-M]'{Xô>MMÅØ@“á§áðϵ-…ÈŒo?M^Hß²ãEŒ]AŽ}þÝ¡mŲšæ4ò5L,ÿÝ:¬Æª™©?¹&vªën%9º(§$ËžO‹Q&«£‹ráÒ©JÉ3ÃÍZ£´º|r×ÇÀÄû—å.âYœ>8›XY«ë0 _ÝË?Ÿ¯Žd?nEüHXÍWs푤Ûÿò(Ö1vë¦àäôbBÈ’ÕZ6©¨‚¤1‰:¶çaOM𛓠j¬õçÿ¼Kë„ȧ…nÖQ„*]†Ï#w¦PRq—ªpß!ÍкÀnOYžLx(ýLJµ„F9[Kâ!ÛÅœõK9º»Üª5Ôÿ)Éù`ƒ-rV[Ù Béh |¤&Ë…¨¨ÚæK«¡ÃçÙÆÄå»ónt—‰#T› rQ:|~¿‰r7’­e-È ªÏ/ð’eIìñõï{Ý'á¡U8ã‚*ÎEH©l:ÁJ`X‘LæDAØ—ÄR™¬±¦¡>zí³!Ú!ª12á>”ÎŽš–žŒeHþ0ÜßmzGvw€'PÛó'ñN:øú"QãË¥Òq±‘†y•—wÇãRÉ^Ö0Ì-ï&ê7“ýàÀlŠ[ÎŽnuâ;4š‰L -Ç¡28Â7]ç:Ï;©Ž·?’…Bª~Q.Ýöä0ÙÌ›v÷“d - u!(0à‚2º’âáåXð -V>;{ɘ–W¡,ùñÆJ…)–þ7qËÆö"ñÌŸœûzYDÒoÐzi9mr\P%»%.  -]3vÉZ— á UÜÌÄ–Fµtà˜O$¶"d´XMFæGBÏGèüPyã¾ÙÃp«€UHé1Zü2ïÏh–GêNXJŒÔ[‘Α†ª›¤M£Ü°Á½{¦! r›d±4FÈå–B°%âlEæš^{4F„û -„œŽ/;)—eÂ:DZn™Ë¸ÙõÅ~š¼Õ2Á¶þéeSMõî×›ÿI pÞ¯J’ñ’g!Áª'|c7Šå›ŒÙDب>(O‡Zôž ó»3 ¨Ñ‚ó_f/'SÙ‹2&Ü}i¡¨73Ö³èÇù45{aé“åõq±™eòYþÄ6ŸzæÕÙœóáíL¹ƒX§i~S‚´—4þM¼ºÑ³ñtœñzFÊݸ -À´ÔŠTŽ?[^u+}'Û?.™è6#Òúgï#%¹z_>™ËwßvÓ> ˆ…#hz¨7D‚W‹`“ε°4R4'Ðæ1¦miÚzĦé;D„Vû wÒu:’?Ù!xÃïí¯ýÿ!Š¢¢SºèÍéüu,´9ò¿-’r¦Ç-«7”Y"“Ñ`̈ n‡¸õ;¹ ôl˜Í–òŽÍñXŠ}Ë>1tÁ(Î^ ÙN¶|"¥’¸=¯iïø£!‘d‡—éb0Cc`¤” CŸgÞ¸MH…ò­0´’óÔ9`¸½ŠëmQ5®[†Õ×±N1M2da•ty@ùÓW«Üù£å¤ -P£äs]6@’©ü° ‰ºUJ}*‡à<㊠­ ø†%&û?¸ælVjL‡(Ô7ŠkúÑ(Ä?ÝÙ6%+IóRZÆ>œôví½£äQæiÆþOE¤ºöœ#ñâl£N Ã85|Ί†Ä'ìt†ƒÜ9ùJŸàMÌqûãÕr™vŒ½’?ìÓíw&ì¤û®‡¨¿Úd;=w–—So¡;ñÅ=¬€ϯD(Ò븫7îÿ…¾Z ÇÂjõÿË™ß\ßœ¼+UÜ”S[QpFų[õ„D¬ÊŽÐͼÊ%¨«Vä軇Š¯|Rk×YUðŒZ^ÌbÎNè³êÕ9®¶¶¥4¼ ÇUR#:håAÚŸ­>ÃÿT厴 ´ÂüÃƃŠƒ;Rád‡}QV„ªö\,å2oâ)@=i8Ú”eFTR”½Q,](kw꟭¡ÏÕÔø¼„õL +cH&ÏN’‡ëCmnU_Y¢ÒÇmÓìX}|”gý]/Ç›L2TtÀ¬nøCUç>™÷"2ïf"™ïVéï¿WbIßû¨Æ‹÷yÞiW¬¨l5ÛÛÅó††Z0~œD §'øô>Î7 –€PŠÀíc5Ý*fŽaµƒÈL´[gX‰ŽÄßÆ9 sì€|pó‰#F©Ìɦ êT$#sGÁN‹w)ˆÿ°óPÝry­ó2eP@N+îÃä’ÖôҀй™\+ÿÀùg8yÿMEð ùoÍäÒaÃ`Ll²e]xa —BmPGDÔÿé,dDˆŽ÷ØZrÂ¥¸^ÍÉ°S½ôq~+æ¶,Hn¨iIVsÞÄë¾…ÛÓœZ˜fÃè¿ Ò0`Ã'ÝV\tôkám öWL´•‹~Î;ÁT Â&#.ˆÇ”U0 ÿxPÙ»ëPLâ)¶{œ<5ù¸9’†›˜ý_2‚«%8|nHŠZ§©§¶¨rÞ@HÎK…›vpÏmÀˆ¨zº¸±~„nI‹ÿ<âF„ÃG‡j¿Wð(L|ڤȵO^nÔ>òq¥P%uî´áý€ËÁé4™Y(©f'D -µè›CtåxøÏèSÕ -!ö€S” ‘çñ"o¹ûÕbù;üÜ8„ô29ëÚ­i©·Ö\³Å0»Á¨hóÔ³\0¼êPÛz77èðÜCû‘ý¬þ|¡g1ÒÒÌåUþ×3¾iêoï¥zàLù™Ÿ¬µ…¿êÛÆ@ºç‹hç8 u¾úÆòÀ»«ÀŒˆÒ[a"†ÉR'\õ yâ=%¥ï’ÝͨLêPftxHÑhxAÍ =qÝ<#½pBHY(`5‚ЫÃ×,‡’˜ûÂíŸ!â'æÖ_ö(!~Ä;žÒbÏ"sÏÜ6F"ª‚QíoôTí¶6Tj°7IJd¯1èwÁFaçê½ñoçå|—éßÚ?þDš–dób¶ž»ÕóPsï -Þ"`Çájh&å(5j~yŠ'W^¼ÅÌ<Õ{\F]P×êÅÜê½R§m„C†·Sý¯ÕȺRÖ_zÁõ>ÐÝ@="Î~iTODvÃÚËØppoGO²ôEkþ`¢…†ûÓZþhŠõ *n -˜ì¤¦ñ j¿/̨ÐV£!êÏX¬h„ ?oùFÅ„éÉ“Ò]"uLœg õVµ8šwÈ7+_@³ã|ÿ;da¦:ðûJuÑQ”û0èäÍåTe%S¼L~Fó¿êI„4iäÆY£åÌz©|×è+ÚƒZ.ØíÖÙyPe’kÌKk8>§{Ø|’ë -û|½`ž¤PæÏQv#3aF -#_ÆF¬Ñq'€ážÎ¯¸åý8÷Œ3^ —-R-¡;mbYŠîäQCõŸsçw`p÷Òa6¡2.–ûøÔ±"ô×u¥«®Y¶¥Ø…Öÿ Ó„ÂqJú@Œl~“|0îéÓão/ãïÆCÿ‰áT!Ös­¹´Ü* føþL¨Ö÷5gMI~Ý’4óSkrJWŒ«þ;W¬—$H'Díd‚QçŠX)h½Ù-Â˾€ü´TV yçÛ •l6Œ›äqL&°Öõpèí¥”­N_@ŒêgZ>¨?~´YuDÃïWoK_®EA¯é'L¡Ž’âà(oÓߨù4’S•3ð¼Z†}zaõ€ø£€øJ¬Ý(! Âhvd¯”eÈ(þûŸ§„øê8a'yH¸Œ½üÀÈzaëÜ{Ñ”B’_êð?E+Èc ”ÄÖ‹‚dKÌ롆©vP½/`ZoÞW„pi9¢¤™ŸXb€s$ZaND¶ ù. -Ï °¦ÎÀ€[n)òJ©6F¤ÊT߀Šx™!R -C0´âÍ/‹Ÿ";Öü;‡SмoUµN ȵ•ÀÜáà}Ù -I`2ów€ñDÕG™IÏ_”Àë‘£Oƒÿ×úh=´®Û–s}EÁ¢JÂKtBú5@Â{Jb‰_‰ sµ[p–R*æ)ÛœMÃ^þyg|š3æ5²‰¸yÎV¼–‚`šùZÉã^ê™–°¥Ò5—n£Ô8nµ_DOc†¸Ô]Ü}n´~4ÚÞpqM´Ææq^±F =#‰–PÂKZS8ܼ)‹q®‹ÚÀÝ8xmŘþIe¦¯ÄúÞ_,ó«¢Í—>ïLGPÊÎé剛eYNÃ^¦Õ(ùÃü_›îÕi!öO/]|cE +÷ -ö‡o«·"þo¿.sOE«¹^A£ÖFŒvÏ,\FÝN v«}ò >d£».ZÄ'Áü†U¹Ç\¤³UŽ¹D9@¢5.ÛLô¡E‹åiß@¤†Ë›2] 6"É2áÖÙ'*ëòì36h-Ñ̸QÚTŸv:µ¿Õ\Ké¬[ÝE»¿¸Uœy'¬,Ûž ïéLL¯r}^òõ-+£9=Í©X„õ^ÁŒ;´F”äc.埪} Õ‰’tbþ_rñ€·§k%NûÊÉJz”ogï¿»ÊÑ\‰#mâÔâ°PG&jÃaš-º:w™Ô¹ ­‹F ïÓêG3§†¥">¨,n|kxé…fw(o8BýñC#9ŸëgY›H¤wk°|§Œ -k‰ô+WäY‚¶sêé°%¦¡ãTÇÉéèoÐÚäû¸0ß‹Ó€­1wôßè„‚ß9¡æ¹SÌíÅÕ¶Æïˌܵà'Ê€è¸TmìÁ:ÝŽcÀ¬%DÝDx¿ŸO5çDg-™”*ágZ]ã9µË})~ø»©ÿ—IzÉì6!g#‚Ý -P`Å ‹çø@‰æ…Ñ4+WÛxäjnÜžq訑”·6;ùFô˜ÁĨ@iýl“ ¹G™.ÚÒbÛ~xŒb -ÒŸ ‡©C²ªX£,fæ‚„u“ß”çL&š÷U‚E1ÒènŒ K³°ñD<ëãÍ(õÞ³•Gí«uUÕce0Õêø]©=ܬîYàø R+ruÇHb;¢”fÝ šY×ßÎ/šµ$,Å!pæ7}Ÿ#V°æßZ¹dToŠsô„à-ÿ€bKÎ_J - -‚Ü2®­ðVZa1Ä:lŠ|ÃíÉs>¹Ãº¿1ìCO‚‰°«ˆK*Pí²åß~ž.ò{ôÉ´é•8F5üm άïûo@XÐ=¹…=Ý ‹e߈´0]éJCœ<}–OôMòåïhÔÏÉ/4ºÄûçWˆßØTÂÀRW¼ ©¹ÁÇ]?]:ý¨&B®Zí¥´ú‡ » -•LàÕip_Œ(ÙfÊ*ÎTQ·$iV(‚Nú… ½çÑuÓZj®âlú­‡±Ò'â8\øHfµÿ$Kp’O¾AOû+&;Lpø]67ièÆSo…£†æ-¶…j©£¼NÖæ¹0º*%‘ -! ÊÒÛ¿\GãM|‹€Æ`ù°¨ ÓûhÀ]©>~£{çÝ€ê¯4Õ9¸+×.Œ_“<Í°oØîÍÎ#ëE&{,ÝÆŠ÷ -оãÑUm - _ÑèøDæµõ iÙJG¿6<3Òe”[j1‘à+áæ¨È(å -ï¸ðo«acî 뻚6àîe5¨ãäo7DKÍñJ ˜îVn¿{oônzÔ°"·åça)Ï2†¶<:ø‡óÚsÁÜ:…AIFùH}!´¥¯Ô6ûÌ©…€&}ÎÙ˜lñvLO•-rsaä1èLx¡… €ÞÙÙ@FžÑ¬©Æš“bÁù+M({óŒÂÚö7½rjG××ê ÁsSz»í{aMm/ëô‘2a4W‰~± An»"1ÑÔ–ìými÷RQ«ÐÕ;¿>r|7ä ÔfC̹/{-M„ï)É­Î,I ESω8¢ÝÇ‘qü¸Õ\wÂÂÿ쮽 }Õßgf¬Õ” _ßTOAkš¢vA&1›ß59¶ò°ÁK^ýÚ‘H\ÅþkÊ¡#]¦¡¥—†˜(sæÓ«ôTÌÈ¥¥}uˆ/ñ+¦Rï÷+'¸õ n_N1›N9oÆ}ÍŽßóIa‡Á§·21/ÆŸé°[- †!z¿3ƒÀú¯Z"œøizGßâ}9( 3V‚ŠtgnÍçŠú e!´»Ô‚ÂØ›ŠÅÈP¡ÿmÆwóZç« ÀÜæÝ éãì?8!3û6XÚþAÞ&»áwúñÙyŸw‡Âápåi<¦5X›rŒkÖ?û0yO-R¨–Ô…º?lZ¥|÷Dß‘s…ì»×áéaÊß=Ë|Û4 *'RÈÌmN7ÒWx×ͨÌ/QúJÁ·˜‘Æ ÷ª@+2* ÜûŒ(´l3&¦¹Z„xÕÞOœwËû¯GºN™‰%䵪ÌÙ™«â[õ͸X‹…ºÀª‰L{l¤oãOtRÚê Ø3·îžöõl¾±Œ£ph%˜*R ¿ñP² -<¨³±ˆ»„²ª¹{v=FÆòxJiò0ôÛ7c|Ï­Å=F=×2ò“KF'¶M¦%U›1ÇÔ"îñíZ5ËñóyXê0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -29 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-6 -233 542 698] -/FontName/CMTT9 -/ItalicAngle 0 -/StemV 74 -/FontFile 28 0 R -/Flags 4 ->> -endobj -28 0 obj -<< -/Length1 3675 -/Length2 19217 -/Length3 533 -/Length 23425 ->> -stream -%!PS-AdobeFont-1.1: CMTT9 1.0 -%%CreationDate: 1991 Aug 20 16:46:24 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /CMTT9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /Gamma put -dup 162 /Delta put -dup 163 /Theta put -dup 164 /Lambda put -dup 165 /Xi put -dup 166 /Pi put -dup 167 /Sigma put -dup 168 /Upsilon put -dup 169 /Phi put -dup 170 /Psi put -dup 173 /Omega put -dup 174 /arrowup put -dup 175 /arrowdown put -dup 176 /quotesingle put -dup 177 /exclamdown put -dup 178 /questiondown put -dup 179 /dotlessi put -dup 180 /dotlessj put -dup 181 /grave put -dup 182 /acute put -dup 183 /caron put -dup 184 /breve put -dup 185 /macron put -dup 186 /ring put -dup 187 /cedilla put -dup 188 /germandbls put -dup 189 /ae put -dup 190 /oe put -dup 191 /oslash put -dup 192 /AE put -dup 193 /OE put -dup 194 /Oslash put -dup 195 /visiblespace put -dup 196 /dieresis put -dup 0 /Gamma put -dup 1 /Delta put -dup 2 /Theta put -dup 3 /Lambda put -dup 4 /Xi put -dup 5 /Pi put -dup 6 /Sigma put -dup 7 /Upsilon put -dup 8 /Phi put -dup 9 /Psi put -dup 10 /Omega put -dup 11 /arrowup put -dup 12 /arrowdown put -dup 13 /quotesingle put -dup 14 /exclamdown put -dup 15 /questiondown put -dup 16 /dotlessi put -dup 17 /dotlessj put -dup 18 /grave put -dup 19 /acute put -dup 20 /caron put -dup 21 /breve put -dup 22 /macron put -dup 23 /ring put -dup 24 /cedilla put -dup 25 /germandbls put -dup 26 /ae put -dup 27 /oe put -dup 28 /oslash put -dup 29 /AE put -dup 30 /OE put -dup 31 /Oslash put -dup 32 /visiblespace put -dup 33 /exclam put -dup 34 /quotedbl put -dup 35 /numbersign put -dup 36 /dollar put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /less put -dup 61 /equal put -dup 62 /greater put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /backslash put -dup 93 /bracketright put -dup 94 /asciicircum put -dup 95 /underscore put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /braceleft put -dup 124 /bar put -dup 125 /braceright put -dup 126 /asciitilde put -dup 127 /dieresis put -dup 128 /visiblespace put -dup 160 /space put -readonly def -/FontBBox{-6 -233 542 698}readonly def -/UniqueID 5000831 def -currentdict end -currentfile eexec -›œi_,+õ`ôÀÕ"WºÍÖP -½¥í˜5ö ÏÈð l.×j‡…kPôØ úëPŒ—ø(?ˆ±~M;Àö^Ãyy¬Ü*f˼[âõ:­ç-ѵZ/¿îeŒ¹_[³+ 5{^Ýòd tp¾ñÅ!¶ûÕÇ~¾Ùd¬Z+¾ÉسäŠå»:cÕEwK’+_ö°nÎCdZy°2}m‚3…þUó@-UÓ´Hkäe•›ˆ÷m÷‚LZ³‚Äá ßèV¶óERÊHÂKWÝ„HúÂWÄÙ?±"á!Ók™²×­¸¦fï›çx§¢ÖxàÖœìÃb2®‡¡r¯à•S*Œô ÝJ_϶ÌýsÅr#4à`œgCîey‚ 6|IšÁÔW`ÀÎÁæ~+ër¾m(yT~Kµ$e·YGÒ$™‚#'Z,4 -ÀC(Ì)5Å>âr?æ5z)†?lG{> t+0¤Áï«2MgƒáËǪÿ© s—Sx¹Þ¼Óöª¶&£a¾€hÆÝ +䧻ôï¢Â6¿~%VÁ{Y#×°üm_êt@aG@§|Dky-”VBJ]Uº—ù}ÍÕ¸9ö! RÑZfaÓ¬'džs$íèƒX›9åÑRy0 ËZëg¤MÐaGãCkÛ²‚Î=)£±ßÇ+ÙBøË3v´á,ÿS§“Ù54lë*ü4(Í“Æqì%,Þ4V™š¯tªP…Ú£^çSýÂÇØ>ÂÞÚ«±¸›™äËR‚œ¿´Z(okó«ÞÜËÜë¯i”±à}ð ºGòûöl`(& µ¼<»½·¼»íœ2#6¢òäùT ]HyÓÙvâ„ŠÜ…·cÃTè~¤™˜Å × w"Uƞ呼6På"†æ÷šÖ2Þ9ÿ›@÷%øæà+t‰)Ýy¸ü.{v ªðŸ? -Å”ˆ°ÒÔ©\%΃ -R#Ö¦4ôq÷7»!KÖ±†|ÏÑiN†YZÂÓÅ×ïüÔw=½¸BLtð &SY…qÃõÙq&q èµUüÈù¯Å€œÇîa1æbãÓn= g¡ˆ´&B›DRÓòã?¥48öv¹Xu*ˆ¢Aa`,«ï‘ÁÉJ -]´Ñ‘=ºÉÆ*´·TÓ ´4¬ƒ[ZZ(¼ú¿ÖÍ™aüƒ¢Û/Ä‹ôÐob:¿Í×÷.{+ë·™\gýIð‰@¦Ö˨Æ\v—Ù~ÔÅyb÷¤›,‡ °Ùª›‡z”Éb˜.¼É±`…ÌÜÑŠ÷½ÕÙ·EŸóÆM·9U^£Bâðû‘0‰ý§5I-ðff42aR½ “äØ<–‡µûl4šcB®‡÷Á^qr“’0Ûu´WW€À©‚OOžÍŸ,'!¼º÷>“{Åz€°Ä×»`IŸ!–Zmž© 0rNŸ³ú1èTVƒ‚ø»¯Ü%䯛X¨Ø¯.ƒW©ý²&­AFš”OxÞXé–È‹u1]É‘ÀLc´ñõÿÿñ-ÖÉü¥[–./¿IA¦¬ú *!7rf¤1 ¥tàö0 ÐgÃ{EX=ÃqÝ/é抮¾jŒï"°¯#ö‹Dü> ¯Ú:èˆóªî%°™¢ÀÄË2zÓ'Z}Ày ïž+¸5d+%JŒáõœ÷¿Æ“åÍG® 4cW^D­Hi k˜²ø - -3 ÉÐX2}Óä/Mm‹ÃrDYF³ e¹ÐYµX'í²ýÛyðÜi7C"nÀ¹•§®^›µ_Ø0u:Æ>øêÁ±„ð`ôa?†Ž×èÙoi鼂Ú=¶O“›ý´¶J[.‡–ÃáÎ9&²ÖôB@ˆ  X^ÄIâ«zó%}´7òº‹Ç-ïÊïÇgù-¯}‘¿«*ïÇ錂eÌVöÕö;ËéTÂíŠXÐãßÜÔk|ÅYÚ°®€=eý§’ìPìÐ0ÔÙÁœUË~¥w‡§Š?qK ^Qy?Ë#YpÀ¹0Ì Î3ì8Qønˆ—äݼã-x‡oöh—*;­òù¬"JÜ…SŠÍÖ½¨S7½IºCDÎáÀ¢`?é«êûû–à@/îêóÅŸÜrBìYðkü‡¥bbš¼¥&4Mû$¤s9Ü}x9+‘5•}açÁ¹~)¤Þd·‰T¦Ã4R™[øÀc€; ¥¨ZŠ»ó[U»L¥~‘‘oaÙ ÂM~aØ[T›­º+ÝýîÔšõJo_bßöBð_qŽ¡L’dzM î‰/¼1‚fýçÜå8GæöL/Hæ ÍäaÞj°¡³§*ÌC¡„X£É±:§"é™Ûa°ñÝüИ1N¬Ôþ˜i2Z›„{tÜkõRAøï¼euvk:9wð¾)~ Æݶìß æMê#°/ÆI¨l¡N—βÌkœ£Rº^ÒzwëCá3Æ *¿Zµš 23XVÞ"‰?,¿Ìj"ÏÖ ë ³(Jõð¿Ÿ®D’ +Ãã¶g¤ -ô,ªxß—(mÓO\ûKËD`s¨0r#ħõKIètxö·%#憛ÿ¿$6˜ÎSßÅj+u€ÛÈò˜D÷·x¶Q~Âi-žo”ãõÑÙŒ û3•«0-•Io:Ö]áùŸ˜h‡­B¥øêD/Ùdþ+âˆ}æ¢IÊEQ GÜÖœj7cÀW¼jøçÂÆ ÜZÈTX @ -n¶<ÝÑyiï§yŒ›â 5A]ʈ.*zQîº0·JJvgLþK±ó­´ê<²O­’¶lý þ¿>ü…‹C³/»ÕÉýé 4=Ifo}°W|…ÀG£hI ”æî–¼4A=— 6L@W¯þàˆ -—а}LròàÝmYA¾¾«fÞÒvA"ßñ^û[¾gtb.)Çô ÇaYÂ<» -}LÅB·å+l “,Ó-j‰A¢1«Û­`ÚÉIOŸ’Ë*¾St*YtDz̜rµk<<¼3o6k™$|=Ô²‰s4x`iŵ’¡†ySe6)ýîäÊ¿ÀqÃòüШˆ &õÏïµâ1“كѼm•K)!g©ró5ËܤBǾꛗ߂-‡Úù6»HZÜø!ÇíHx`-)9Õ•U?_@“·ϯ›ý%ßÓÚ— Ûí¼ˆLßÖ/Š}ÜLtìDÆêL&O©ûƒü)/ƨ]ŽU@Ð[aafCd<´ÒÅÀÎÔœè…å6xð uy,Õ:/ƒä &íÇ0ÝÝø86Zh=¦¦ó>zIl»”S!‘öfÊfã¿TY -Ö€ëþ’©ö½Mü±¸•½Î&îLc.È(ö¼9¹°Ê:XQ¹di¼k=7/„¿AA¶2×—ÛPODç Sª„Ovñÿ´U¯¬ŒýÄŽp7yr¹ª8 L”WÈJä úµN3ÄŒÍóPîáB/zÖœóÙ…Ç ´Ë ‚µ¬$šË„ª³C¾…'5&Ÿ˜Á-Œµ×Šš!™kr§ƒïêaÌM±kÀ– -™ïPý6JÑ õŽÒAIxÊLQ¦à0ßð,ú«ÀÛ¤.âD}§²—­Í‡6C§ÈNÄ MaW -iíNÃ#¦kŠ²hY °'•¯e`¡Ì!o1²^–¼Öïh}ÁÒÙ¤Oß[<Ý„¾ã.*'1 - Ìè¾°ë> ì·ˆ2N%Í(¾®—CWà(Û£ý¡ÝQ¸¥ÉOmÏ©!‰Ðª®'>þäZ¶êéx '+|0u«0tý&YÄFÿëhÔžøT írh–ÓwÍ":T’ŠçdÑÂþbdŽÜî“Ý¡a‡·· ˜ PdUŸþÄ}m›&Ùö«Ï›}ýDKb!ŸÅ€ŽRMZn©Øf&yØ+(”>E­Š‹¸º ¢n×Ä`GEàÙOͧýGõ“‰ËÈé-ÜoA)ÂmL÷‚@‡åaUÁ Ú;嵡hý“]Æ~ÑcˆoÊ)¦˜~øÙ$1ZÿpÝ݃јJσ>0ü½[.ÝŠ-wî&ãg)´åK‘íe2€oÑÞ¯‰J_Ý«|ÖdmnÚ9¡f—¥ð_5êðÀéQq~ð^Ô{Àa˜rú([ä°“ ÜY“Í2ö&—EV>¢ßžäÌçqO ¸Ìe­ŸˆT³ÚǼ*Í(|,@H…,©ZH ‚É"»å}G³¯ÆÒ¢¼–Ûßf>”ÇË -hk[ƒ&RNõ'v&_ÜXRýMÙ5þå ?à^qº!ŽPxKÓ}±znÖ¿ s áýŽô$YÎ[#À¢Ê‡ÊåËZ·›ö€w§Y›Ì·Yâ=‘6§“{ JúPÃûÛþò á‚„³•‡1ð‚Ò/Ex+rY@q£‚oHëzà„¹Y»ËWJ¾;=`-CižÁgZš•Ã~ í®m3/×qëfi&áŠkw,»S+õ‚Ù-. ½rFê´+Ô'ò«Ôá5 á°š7Oá(ýŠIœgÏ? ¥1H˜‡? O¶Ê´ ¸æîjø•18­ïÔit¼¨&Ù3¿»4˜A{ÌòÌözÀAlwfv¶ÕPH ˆ—­¸û ͺ¿œt‡HÎdͽ°«”Ö¡¿êx0ÀªÖÃ,¡U„NæR“–éoÚ1.Lrà@yÒŒ[¾R Ù.\J¦ÞP $=NØó°«ó"8ä«3RžŽ—fÙ:ȶ!HÀ¬õ˧r44Ùµ+âD!ÇßA‚‰8lo«%CJê>l){°gðfƒñÁ@w%u0eΪYÿ%a¦h<ýÇ:¢Ûú)š%¤· "õ†$ÿ¾DI6ÝĤصZÀ d§1©meEÊ7¬c©Ü¼f\¤“z±Ñ¶\ñ&’’̽¥Ö(º$0¯/Õ‘E§÷ÜÞ\‚›Çîö¨I+>iÛ¦ä\|ô|÷ÜÉkõ{\–r >í>éb‚Aâ|^8è§GúÈ=rÚê8ÉmÍƸöèK5;f¤ðB½éý½ˆ‚‰ -ê¶+Ž‡Bƒe´ã…êmRð æX=B¬s„ÿÉ›æ!Šºi?_û¢%‡¤-–rƒ… 0†.Æ~>23´ÑE¾–ÌàÅ«®¤7“îø -*Êäö™æ‘éF„ÃP%|½ewT7Šƒ¬c)Õ ·èÀÜFÍåNДE*Ðý<|q)ÝmÙ÷Ñ[‹L‚¢L3ÕÞ[€ˆN,¸¤XWl®HQJHz”×Gòªôð¬ÒTïëéaE¨ÓÉ/``”Ò¤Ç;ჴAõïÞ‹ý–ŒâGâê ¾ó*hbÍffÂÒvLºšåm·œ ‡–O ¼ß…þŒåºÑxìK÷Çié - F¨ŠšøÁ"Ü}ä$+ž(¹æ\3 -cI¥²¼ÌÔY:ÿ¯6‰ -®õ1X_mæ -Šw½ÕöÑç /,ßö#hª‰sGÍ ºä©o®&ù´ROšûq Õ|ÒõvÝÙÁü:¯Ú¬ÁÌVo›ìzh/`By( —™ÙOo#SŒc6œÊH šÝÊùNŽ:ÏGäÚižÎ- ö¦Ð÷h%Ђžgfè´«_‘:îú†ãfF/z2]XAj¿ädj3CSXÅ%‹Óí2Ok£¶Šft_suÐj¥i<4 _[3âhñíÅ“vOü´"$•’ Úb -þôL|2ÿ}'Ñà;ðp4c{DYØÒî"æ‚<œG|Ò4ܶÉ)îIq(Ç;\Þ‚pD -˜'¸(/ð² (¦c[Xµ\o\ˆ ƹã¬J)¬A­Ùª«*ü㸟‚à:§‹¨æ>N8dÂË -‹W~^¦³–~ Ò.À‹Å=®nÔp½›|µ?¸â¶ÝPq²!Þ…\ßsW6AàøÌ\Ïáú¾Á¬™øh]ÃF£c´iGzaT9/â9LÀÆWº0º˜“%kj\æÁ#©»cžöÆ©¼x.¹",˜nÏ©µÁYgUgº]i¯:GkÀ<­¹ÀÂטaµóáp°}ny‘²pú3êU,„b…}÷ýŸÚèp©íËgLïÀþjMøkc9‚Å ‰ 5AÒ2y¸È>à«*BÖ E×±±¯­û»¨8LLïÊok¸ö¯3äµE“œ?cH¸ÐU¹ã‹E Z) W4c› ך¸BŽ‡*â0´ªå®2Ö5…6äFÂ+€ÃL‡ª×¥¼s…&þt”–xîÝo ûŽÓJa¾¯Ah·pèÂÑ|ùÍMT{žˆ@§f°zo’±lôpº(®:p_ï?zO·‹Çå1XóNƒ*&%ÚÄ"ÒxíæûhœB÷°²é»e1¿µ‘þü5¡ti©aùf¨Pcú+/W…p¯zç}o.,b÷ÉðFëÕë· Þ›ÿE*†ý©l,°öz7¾tü¤L˜Zìb#¬9âãäBÉYJQ8µïm‰ÒãŽmýl˜M…Öhè‡rHviŸ ™g5+PX®èeÒáÍ«¤ö@ø¯e¢˜—á² Ìó‚ÈnŽ(0ºB_d—Xõíwž©î¨+\ÈmSARÚÌS~~Ç%µ|C%üžD¯§n%KL—}½¬9$xî®*Ù×R`ÛeôÂ6Ú“GSTõ{ç&°?Ÿè ýÎæõPK‘A K,¾~®Âîýåmã]y‘nÔÕþo ƒ§nt@YAmáQhsæA•ÍQqXœ61D=ËݵVÈq6tÇWèºæg~¸h W>iy’É)Ácè`4gÊ?¬€O#c{ªè[Áã #_§—ðýdÌ]œÛJPçÕœw|æ|Ú”2Ç4å|•=íY·–NŒ°|È€C°•¸PNáwÑ÷RBD3|Pkº]ïâõø– 5qu߆Bt¢ÚÁnÍ]Œü*µ¼Æ=Ö™E¿–<¼—ðh1‚v [‰r…S¡3d1F¨ôtþAP,šØIjß<œ.¯35Dqa"ùd„Oæë:ºß -_„%Ú5 "É÷œ¯À6@ÞŽi§ÊtÓÍÅjÀª|‚ùšß›aºÒ¹êÀ;û{9i;pTÆZ 3_þ^6ßšjá>sÆÇÂ3Ê-jo"÷*bÇL‘O›w‰W݃ćé$)Ö:Åg) kIt?ýæ;][™7ìYñ8Ty!íýË´_úÉ: >ñ|ˆ˜¬T`]ø2}wè¯Ò,¸÷:¬>ÉOó8³qJÂ)$ћԖºOvô‘D)ÕÓv1 Õá#9Ø#)/î„%1 ô šA„O^âÜÂí½STM«J -¹™µع ³ŒÎæ8Ïí-õ*ÑCrÚSÉø/‡kw½Ž‹ý1‰!WMƒðåp41šád’á{f­N³æwØèJAŠ…ˆ§j—'¼[[šY¹–ÚZ§u«åã®í“@žÎ:—1¦‚$8ØèÔA–·?ø¼Êƒû;fNÕ,Ží.†õ{,åÔ¯9‹òfMóô¿^ŸdpÛò¼h•†(W q¿V‰uscHVµÑXÞxôi:3’%Ñ_bùR©ä*Iè4½—ò 2(rH©ŒÑAM2Nwâ¯ÅH$îQoDK}Äx¦O?‚oOàgÎp=‘õ+ j_*†F'øV(Öïá“ñO×4Ðë™à&|L ™,¦{šs#éFÜŠÔì88“>=ÜNâBíê%‘>ÊnÇ'q\I¶# †Ž”®ó ¢¬#góxNm˜¨ÁÁ‘Æ×YŠeˆ ¸º[BPìH"¾M&EÁt”¿Øùô_ÄLg\yÞÁ”e\QzmÏÓ,ü'lì»Åü`9ýñ4õnç‹ZžÖxÇ'/èý‹}¨To+•R¥Äúµ#~%@6’½3׺ÙÜVû«|iËy%'­àÈØÚ“åÀÏŽJš½t;eý®„«¯°gFP(W–Æ ®‡5Xõ<… ‚´º;ÔfQ™5òý ´ËúR#Ñ¢nsDD’ x´& òµ¤òOâ%ÑAµ¥o²P)Ë™vìêä†Gf.|˜yh™Ãár=ɘûBöñ±=So‚ùì<§ûß$Ô ¹T¨!qÌ“mú$pj]O´‡ºÐ»à®Uœ•"£1ó’æI„Õ'D¤¶ãXšˆ6 •!G\ ‚pODG‘Ëú¾êÝZg¸dY˜C¡þòT˜0» G“7«ãÃú»™!Ââ’D•ÆþÅŒª?ôVNžÈxèKÂm'' -©.d®4Oƺ~Opèt2ïÈ?·nvªí0mjZ¨síRîЇ´lEƒD]þ怾çtÂ2þºâ¤ûÎ7•°0x}Bûùw¸‡Û±hTtÆŒÓ -jí'9,øíãòkO\&Ê]“~d¢J}oÑ&¤nç3½¬‡!ܲŒ  Óµ¯Wªÿbf@øÝŠ…š„ïÁPAGÄDRgbß”W¦ýF÷ð ÷aÒD8ÏË â–iæZ§26¥ÌúÌïð_Eú¸|ùn¬íÊ™žIáæòÓI[¯›Üè]ÌšI%ì%‰µ`7å.–tÞ’Ép…Ý^<âì¸=ïõäÓ|ËÀ’˦®…!,!â:ü:<ùpà(Q··)Ã|D–%ˆ×‡š Îz+›"Ç~XÀW²íTU–((»04åÌ·NÈöŒuÙêPsµG‚¨Õ\Ê|G°Zu䨥TÃqlmY¬ü -fÊPV¤€±“óòç¹w\ÅŸXc¹½˜½i³W3zÿØ»ÙþÈÀÔQŠ¦òá‚R¥™Á Ô)ëŽÏÒŒ÷»9æpzA£Ñ¸JG }háñõÏÃ=€“ÁðøÛ·„3á´5JÆ ÚU”dèòÊ”ÿP’ÞÄ”Ÿl’¸óÓƒ\b;sK=Tòé3§ûfO ÚAO`‹¿aLeæDr;*r6a–>wì1c}zäÞŽ® æ¯4‡Ð³ƒ®Îü¸¹ÎÓ\eùMù€kÝØ*ðå!û‚¥´ÎÙ˜à*£ L®•=s°…MšN½'-t«GW-h|`äé`Â@Ì+â¯zùá0L ¥"ßRŠ’?—ÅÎ{D ýО½o»€ ¡Æˆ+‰eÛpà—nTå!šlXo»!Är`VÁÃ5a2¸_ºÛ^ÉøÙ3OËìæx^¾âKébvnö |òIˆ-èÏç‚#M›tc#﬋ÿœÁ³uÆ Ìp«½.¼ë¤åÀó¤rüGO—LìðÞ]³å lóÐIrM¥q¶F—Á¨ Yæ»j!ìØTO~ƒÆ¬$"ò_\ À¯ë¦$F}Ôµd^.Më,v æÎûàÕ§‰[Jbí¸o*‚ñª¬­U¥$è—ÆÅ ahEÏ’òZAGŠFMK”<{û¿:ò*ç ã`ÕÞ1™KH3Pñ¿õíG‚©Æ˜/ucÞ*k‘öwôÚÄpÁžŸÔ¡%0Ìg††bÀT2­zȃf· `#õP ¶ŒM„嶒¯xÃ]Hôó9+^Oë)ð¸i¢‹‡™ã ÊNÅ‘i"3V,Õ¢PpObÅO`ƒÂu×ÝŠwn†ÂÝ·ñ"Ì’÷:ípÝÆ]bu%þðAµ—´8@Ø*à ¥K[øRá©Í_¿¤Ë<«ƒ‹ÂÔÀ¸ìÓ|d…%Š®S ¿ +'­g*̾l‰¥V„H1'ÃÐ:·ôØ£ÀE5%›$,Fï蛷Бa­ÚZùcæ°#ÓàõvÐô‚µÞuÍÝ)!ro¹ß·9±É¡Ú¶Õ¯¥:?Â/3]æBµøƒõ^u|!Ón1RQâFêÑ :ëß&Cý'[eiñðëÄ-¬n2'GÿCX\—kÿ6.ÿ ©G$E:¤³(‡U6h½HKcVÿÕ"?½ˆAµ„ó¦˜=½¾ N¹¤‘_íV9¿ëóPom_(É»ÂO)CÿÞÛ¾OÄëJ^>K†Õ~üCX.jôdÕ€‚é·VWÕ?$.3ªS×ÕþH=9_0Þ€5ÄE³æóÿ†j -j>k¯óP>‹Mæ£vòO8 OÇÞ@wžKwæÉ7 -l“UfŽp¦_HÍÙ8å,Ðçt¾ŒÖ­°‰K†éT/º‘Ž`lˆ)œ’²PâÖ<°b5º|qZh¬ðÿ®L§hfì áEˆ‡+Ž€òÿX%1`b·äöwÌÜùN't9û<]#ó`¨«ÎæR$ú58­Ïu™u,ƒS%ü -ú´q²l\™¿¬*c²:d—À×¾90a‘áq2ýRÈ*µo×('Ï©ŒŸL'$œRØchw—F$®i*#ëk¶ªj²Ml«‘7t™~8ÞÆ#H>Ú9…R…*nIëò‘¿NårϸZ€[Ç¿Ù¡¦ÚM²C­SþŽÑê=ب±2w60ÆAz køcûÓ\NåZþ#ÔP2“š.BåÒÏÄf•!¤PC£}ÐoaÁEÉ=å@]j¶ýc*-t¤_ÉD¯çÖlCªæ<Ìú2¾Ð3ê×ÉKKM°íÛz„Z,‘ͳPœ/–nEáêîç~CaèfqÜÞÀncX‡ÞaHRpã6rÀ‚ b¥?—å@2áÓx+ÑLtfîã—£XíSI¯§b¦?K*n>Fúï€q¹ž:tšZúô^(^oi¿i¶`[’ËÎ>‚#0â ½»¤Iû]÷ÖpfD}öHë_Ù¤Ñw´Þí„C¥ZæÖ<´Ù`ãÇH‹ -•!‹f~ƒVèô¾ÎHZíKÚñ!Ιàž5šîÝ"ÞûNè“>¢‰gpM1cžU…=ök—úJtórSV%OüSöcuîêAÜpë'C;Îo˜5v§§\Â~¸©©ø±€n!Ì'€_Ø’Aw$ÎûŽK4RMœÛo Jýo°e`AÜLüyTÇ}Bñ0âðyc¸Öz(žtÄÛê5P$¡®ˆŽ}sƦzû˜<ÀA®<£hQŽutéðƥȖ†âGžÝL Žé(ÇOŠòžGj`ðiË/Ò3´|t¥„™X¤ª¹ýéìýP4ˆ6ÎH™êÿÓ‡)䛩J“á†rl$Îe¤¯r  †ÌöÇv"®UŒŸ:jp¬Ûk4°”m°b–{Âúë쟦O¾»ª@‚î43:ÏÒ÷(}ŸÀ$:³iÔ';9ÃÂÛÍ)’H7ï(ÈÈLLMw¿Vc¨ð°g焽;©þ:Ç Ù¬pꓽ©©üp¬6¾tšQA˜Æ©©Se s÷Ä Iggòÿ£EIÈÀ´Ê$ÄhÒ!&¨¢ýmܨSW’dOšSb‹§‡çkjZ·ä²¿uG8ˆ9Ùçû.ë£5{¾•ñ × i02#MÈÊ¿B Ÿ<=º‡-\]èëÊóCáƒE¢³K)žnÄÀzeßÂ~xrKµe#‡õžÍ3XV·f”ÊC5´<±J4è`W¨rb-ñLjâð/Ndu´5eÑs ÐÊõÖ‰dû^Y Ü¥¢íðHN6wϳŽ¼Y“쇸´åˆÿœ+…ƇáÛèšÑÅQc¸ç?áø¶s|ÎߢŠ7ÅÏX½YÍl~Ï“Ó‡Ûk «UBºS‘€Ž«["£‚J‚f»êGç“ÌbH$£‡±$#`~߬5úÛÏ/#þ+ô”§¼ÑcíR0:²gþ[ÉÉÇHèÀ¯ÆS“èÆFzÏ.–û"ålP#”̇!X0R•,s²Q©f‰Evú_¯Jl¾t¶e¢0zA•öÒd¿ÔÂÚtn®áÌfÕ¨‡ƒM—Ä ä}+ö('X_I§n&ožJx`«=HùuΈ,BØáN+#ik }" Á0ö`çXç· ŸmwC{ÝbE2Oƺ!ÜœOå¼#DîÃƹµ:hZ8I:x)ïQøžôàISž#v‡v>•dtöPÈ‚ pè¬Fp«j‹Ù¥—s=°Á€˜èŸtµ‰ P  öm3–Ô -Ðã.¨Ü=~ÕŽ&Çv™{ÿÇFˆJ¢Ñ2Õ5q8ëÓ^„P[‹fˆ"pþ+œÓ”fÖ¾uƒ³ù±p½IžËm¿ü€8*•ßìÙ³]O%Ó[Óœ²d* -µpâ9MÂ1ÎUìÖ!"·è¯üì4k -é*®ïµ²›#A‡ÇË÷5ÎÝÍàíøñå¢ü#o7ÙÔ¨à®2ŸMyáê³óEì†$>mæõÅðÛøú‹.<A'Fo$G*xü{˜K:¨ööUñìþæ¿GV}óãÌËf(Y°$Ÿ&Ï5ž6‹…\– ¿Z„ÛôÌöŠeËÿZF¾¶ ãc5؆SJ)^¦ÖW=ìÁUm?€P0§…?äöè–§"Ì\K–ƒÇÏï‰o8ê*ZsÔb—JÀsh)߈-Oª§-ÞÛƒŠ¸í9"W²¡µúxÕr™ -D“ß0ºÏG0Ùÿs-ë„£×o˱TュZ<€;z’¾õÕeY¨vç`Æ +óCt©yoŸ×2:Égu³F¹žjÒ”ˆ…Fï·¸í®LíÙÆ+Ñ­ÄZn¤üã¥È¹þò*y@-e8ù`Nºöw“#·ƒ»®~g˜ƒ] ³jpûìß:×'š¢A‰Ø÷\‚¯X©°w ±UúØ´el¸ìI³¡NTp¡Žm†ÐqR_ò§yä²t®@UÞ;R:f -~šËÜ5OE‰Åž`ŠÓb‰˜ÞyÊßÄT†™\iý1^ £=á U…ÁØC¡ ÂÄ2ÿã y™n4J?#eÒÄ/t5Ýý°±Ê+ágô)œwÜÛ»xdo ~Ý -A‚%´œ¢pÊœ`fäuÅ–zO­rdcŒc߈5q§¦=[0dt~^R¹‘yá?»Ü”a¥CBÚ?¹ê¬zÁ npŽðNzØLrî°£F_¶±Çl"ÒæLÕLÃöÊkÙŒi º›T–Ä% G—ËÁVo8ËF¿,h®(n⢋ž÷Ò2̉HQ¥²þÚŠ©t%âš|Ôvé‚ìu­r+ócFca~ß Â©;ô¤YÀs þž|{¡ß=®ŒxqÇ€¡‚…xˆ2àZ;éÛ fÙe󑦋:0t3è#AµU ©¸}J®?So­ãºØמ7´ø@g4^÷RiîÚ@0ï(ÏyøŒ_Ÿ[ÊW'7Ö 3‹Íae^¢Ñ‰bûX¥(‘…Ô@î‡`TìÏŒÑTh'…/CøêAǪÂ!éLtÜöÈ`8HoÜ ü¦¦‹t (c5Ë6‡éºû]k·ót Ù᦭h%¤»R$‰vl„¯*}ÌŒ âf›“HÏGÇz3‰g7W;ÚW yìmÌQkQ¶|Ÿ-ôƒZ¡'ÊÌ» ŽBÛ½Kc]ÞåÌN¬êû[£áä•ßŠ&L'²5‹(oÎɃéóÎÝû‹YØS#˜/¸uˆÚ±ÏFªÃ¤ºfyšà¸3u%S2¿–ÃG¸i`IÖó†´vU.ü’²+ÏSåŸf=PÝ|ˆY%Ä ò}no"š®¶‹B?t¹—9Õ‘+í5\¶•Í~([d|Sí¶¯¤yW5Žû/ùäÅEoñVÓê°W‚‡Íáuð•%³74?L*k@ïòqF{RP5ùŸiúš¼,¼x»£B½0»\<À+†’þ‰2‚CµNØ—¥º—r¾dÉ#Nþ®æ*Å\ÖZfÏŒPÿ¥;_;xÔŸÉÓ\g|j‚~ÿ¡ ¢Ý{ó"36éÙ:]¬²SfjÒ4mðŒ“7Îè§E≋LH(êþ"úBÊf®âG¤°½”>Ao“{¨˜ŒkRn®xÞ0›á§däóÕH/ U º÷u²n¾<®ÊÒFf¤wp2Yª‚q÷:Ì9õÞÒPòów.K$¿ìiL–9 ˆ?s¤æx'â{¨y$ŠàâûXlN~2ÆNÐ:ºŽ -$,4_<¹¿w+þç²æ¸Õ3Ð?Rã¿ÒDÓw¢¢áÞ¾®€1N/³Žvb<±ºr]°Î¾©|ôGú98ë¦í Ej‰ÙH½©ã©OöW`Õ: ÄJHhø—G/ôîONåŸBvŒQy—¨IJ±› Æ\âôsý›74Ii«4SMlÁÆ¿MW ÍÔ؉“Žq½Ã¸@b„œŠEûi̺ʧúÆSdOõô„÷y;3÷<2º 5Wè];›y#¨K7oOÅwjË #ÇóúÙ4–Ù¼Ô‰œmõœ#˜g•xÒmR77žAégݶ}yŽæïõ›PØðÞBˆÚàs‚Bu `™JX²4êPÂX×CÑuï*€Ì~+üw«'O÷õl'•˜×Ê©¤ZŸª^i¸·>µ¦íTêó>2OU6P RõG}Ó8Q‡âš;é…²/y ßC„ƒrÒà¬Õ mÁüK9õÞrÜ)þÄÇ -Ö^¢"­+Ø$ð'TŇ–Ü’¤rºÿ´ -’.SaÚšmÖW£³òN*…°ÃÈC”@h“ò—X›”*é ñ;K%ÿ¢êŠLd*~[ÆÎmÆø›vyuh@0p±¿pܽ‰Zƒ8œù1¢Ñé]ÒJ<é™û &aÁPê~’$=Ê4Ç®º[”h”ØÛf2üÚ}7z£Û$#QÆ0A‹+%5Þuùàá;›×Ã?TJ Dó“ê?r föÉÂJb“V†: -êyo•‘¹Çùåq–é)ˆ[L Oe3x^HËqT¨9Vc†úå}›jÕ„PâlÑÍóãMAÿtyXbž9“Ù¶/ü:l•t‰Éù¡0`k¯!¡]DÛ°®Áš+Ð"ò·Ä ÇÇ÷rÒJÞŒÚØSöAcØ%TõÜš~!¡ÅÄþh÷ækP .O²½ Ì:eÎ`ù‹²dHB€z±sÄÕ ±Žèƒè؆*®! èC0[ƒ™"EÕãºl?·BÅ^¡×*k6Ù.˜-xÉKNú/œ•U¡‡j:Á´›ç/ýܶÝpJ[ðLJ+¼“è&ÍLˆ“•M™üG•œ—ù¨(èlÂäù‡Ü Á4É$µó'™Ì)²1àR?m½É Ö|Ø#å£|DE¿4uÉiÿ*úñQ!ïûT”?¦UÆ xvºS;­ÇŸI’xygt|‘upëÌÈÜB“º$¬y¸NYGn_¯ñU¯5=ëÒXþÉ Mz\—Qõ¿þéÇ|µ£ÞR¤Ä«j¤ãä„yØ·tHj Ë*ò1f²FT_Å2šbíûvÊvvvÿ!©ÑqÇ\Ó¯z¶ÿ± tX›¦Îøcød'ß -̲¿>ú{¬[û'Pü`åå;"Dß­ËTŒW?ówÜäþ5“²¤|Á?¤x*uÑ¨Я€¬ZJ±tê?Å™‘[í¹Ú¢7:ýq V^—oYd*“e§¤\Ô.öWí{]»I÷úXûspHH#RfRþõ4«ª¾vyùQU.¢Q‚@B,n«¨8ëÀÔ/{æ'×¹Ï Ñ6ˆú ¨ -Ì_)<õ€£wŸ3RÝâ-TǤ+ß ¹Ô—–qþ|Ëd)rðGvLõÍ ÊÈO!í…MvÍ“d§}òÇ«wŒöEŸGìÇPÙa\óHû”Ä¢%žý.]AWIQ=®D/„ PFyµ¯ _8^!èßÛÊ­^ät(Î.4z­HîaË¥£÷x~‹bTƒWr5Öð$EÂÉã6L˜kQûÀ;Cô÷ql"]°N#Y^dò×v¬öT—hUMÓvæªÐ\*vMþ®ŒëÁ)vñÚ¤[2´ŽA$Dóam­á -Å…áØ·“lJ)<æxάGÕÍ• ^J¾©‡á: i­bE5 -Ý"à%põ‚BÊþÁäp‰ešµYßž˽à‘éÓÁeXßócÔåÅ¥ØbÃGçÚ›š®¶yy£XÝL#±ø#:}ç¢V®éÉÁIÆ´GôÕ\Ü’R¶L:éý´\5Ú³3´0‰ -?2¶•üSÝÉå!¥¨‘½¡ñ›7>j7¹ÞP?xò}é ‘ûƒ\LBg¾¯‡cLÒc’«ØSŠTÄËν wH³Ä:ʃW0Ðåê·®Š†Vgü樲ÓzK{×!y>´ÎºPFKCšÈ¢$È÷ 4^]SÑF r‹àꑵ„ç‹Â縴T_Ù/#æÈ!¢·ƒÌóü*qU¶–—…³FÅäDu­vPÎí#Âù‘¨ÃÜ!YSâ"¯„VsLVvN?¥9á¥9Cgàñ ¡ë®þ†vÆçÅ¿õC?h¹s^d(©nö,¤;ð 6Ú±Vr£€\ž°>ž¼¶üùCûÖ×õñÒ_dËA~…i -BP¡[À“߸eïבÑÅ¿dX+Y¸Áÿ ;¸ÌÊCÔfæs3§­ã¿$÷†ÐS• N2ɳZÊpá -:µ7=Yg]í}i´F£ù e…Q²×úsb XÉÆóÀJªX4nåêô© åq‚ú]ú3"K†N `’ú_­¾÷|ÁHƒ4¼µú7SN•5¨–w—<ÃM«}áa" Ï{Ü6§-›?Vê‰Úsë~‘'û×j.F"¡:ŠuІ²3ä×®FŽû>‰˜œ³øÏD…Y6Ë8,Â'4N#ß´´ˆPä7Cº¹z=öº7EhÙâ¢y§/yÿºdË{íÆ0ˆäÿœg¹Uò²wU´¾óî •*u{¿5Øg!|7ˆ²ÿc•Vœm¹·TQBøÉù<äF[‡Rº˜EÀ-®ûW·(ÞQ—m€ ÂôT]#÷YGaSDóž²3Ä÷}€/ªa®×o Y(§‘I}§Jó}žkóù'‘«ýeliÓòPXµCi}“®0fB96½ÌÐâȸ†o¢5ã~0nùã§øÑWЎΦ#J‡IÁøønÚá¶\ù’]va¸mØŒ±(L­m[ø(‹u§üM6ŒgÔ&‚hap§þª+ÔŸ!!®ã¥¸n9`¯Šç8vG/Öç}˜—Ü"«Í‡ê4a£'Í%·Îk}gâ3Ò¶ ;wÍ0 F>…kù8¹¿rúôhBmÔ1†ª¥Þ»á-5ø›FN½§ÿªFsÙœÊ:ºht¹Âïz×Z&!hü€{l|›¸Ýå9}ÇÀ:ÃûT ÂLU'uil·”VìüQÖ#ÏaRtqHìÚ‰°®ïˆ÷8¨Ê$i1Ô}¥-7Y¶d‘õø„\+)[ÛAu§0é¡ÙÂ^EåÏæm%ÞSM< ÊÔü¥Áá!wÎ8Dz‹ByAåBe -Ž_D0¤k?yWï,ú˜é¯²gûŸÁÂô¨}Ì¿ÉÑB -¸7®Ä ÷ñy[‚—ÁI•8¯ªƒÝýp¸™QÛψg¡€Ú˺ïåZŽ*T@X7Ì€…÷Ý‹Â2Rhþ5ì’°Ù£@›» -ÄeŒ‹1÷áM_Âb ¸âgèVAòFÇøh+‘ -“ž³ªí»qqde‰vÃ*S¢ù;`¼G1¡ _“óöDÖèJ_o- -3òæG%~ùÕ‘N1TüÝZu’áÀ‘)j^9]‰Ú‹…áŽÊ ŒÊ¼w^dÚŸ0¥3:Q"â⺋ ÿɾÉî¯fžˆªáöYxO)ïdjXödOñPðë6quŒÈ‚BRIìÏuƒ±`P~ÛÝZ6)#§Aäþ’øh‚cT%TŠîÿ<|0”¦Qù’|·ÐÏœ‰]Þöï‹ìùL)jh#Û¨¿9^¢7EçJ ùÊ"C/´ÿ¬'‰BîpTazÚ¹Ï5-ôYbjÿÐÕÕÙÝÝ,å¤*_÷6ň†¹K‹ hÜêDfõÝ»s5+ Æ‘y“ÌF–p*?·}Ö×Q55c^ x (·#•É¹©KìåÆ®$!&ÓÆöXWÁUP1’Z¨BwxÄ?~"8‰I¢1²ùimÑŒÓzï°Þ-*ýõ<„xW@üœ–‘Eü´W‡ãânÚt<‘²§á$ñ³…X¤ñDw˜ÿ©¤^\QõV :3ö2ØVÊÒ½ýG3f—­ñf³[VÆ¿;ãÙ·‰nqM„®.öz¾š½ÞõÌV¼»£mÈ¿ @Æô— >êìáýZLta˜¢\Ý -4ÖîÆÞ–f$ð[¥qNò@Jú=¥øo€êªÝß7 ð">”¶P EéQ¬¬ÞÞ¤&s þd¬Peqž=iW¹¶Ê´ð8{ÛÃdeÐÄ =­NÝÂáê;}§TâÞÍKÁÑF®,5ý‹ñ Îâ•ØÓâÔ”!úõ‡}Šìî|×Òz£q¸ÿEÛ²[§}'‰.B[ŸBfõ° võ«Ì«<U•ðD@îMß³ˆ#Œ™=º£ZÕDÔ—* Ç7!5Êþí›ZEoHæ8 î·Ã`âÛ+9קs(ƳèN1ÿøKø\m^¡˜–\ýs[Ÿ!£iO55Ī#] ÖŒ ³|ÖTºªì­1ú¾¨p|Äx}s: Q§åˆv«0×A»°ðš–V¤°dÙû!_Š‰ ”oìæÌV9ý8Ùº{‰ŒqüÐó..)gzKVèB›ÃˆNù`uÒ®ÈýìZÇGóXŠ‰Œ×&d׿r§C,‘œKÄ¿’n½æ|.?–s”$RѵÇ`EÍŠá­?R‰ƒ ³6Ó0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -32 0 obj -<< -/Type/FontDescriptor -/CapHeight 850 -/Ascent 850 -/Descent -200 -/FontBBox[-163 -250 1146 969] -/FontName/CMTI10 -/ItalicAngle -14.04 -/StemV 68 -/FontFile 31 0 R -/Flags 68 ->> -endobj -31 0 obj -<< -/Length1 3621 -/Length2 26931 -/Length3 533 -/Length 31085 ->> -stream -%!PS-AdobeFont-1.1: CMTI10 1.00B -%%CreationDate: 1992 Feb 19 19:56:16 - -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. - -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMTI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 161 /Gamma put -dup 162 /Delta put -dup 163 /Theta put -dup 164 /Lambda put -dup 165 /Xi put -dup 166 /Pi put -dup 167 /Sigma put -dup 168 /Upsilon put -dup 169 /Phi put -dup 170 /Psi put -dup 173 /Omega put -dup 174 /ff put -dup 175 /fi put -dup 176 /fl put -dup 177 /ffi put -dup 178 /ffl put -dup 179 /dotlessi put -dup 180 /dotlessj put -dup 181 /grave put -dup 182 /acute put -dup 183 /caron put -dup 184 /breve put -dup 185 /macron put -dup 186 /ring put -dup 187 /cedilla put -dup 188 /germandbls put -dup 189 /ae put -dup 190 /oe put -dup 191 /oslash put -dup 192 /AE put -dup 193 /OE put -dup 194 /Oslash put -dup 195 /suppress put -dup 196 /dieresis put -dup 0 /Gamma put -dup 1 /Delta put -dup 2 /Theta put -dup 3 /Lambda put -dup 4 /Xi put -dup 5 /Pi put -dup 6 /Sigma put -dup 7 /Upsilon put -dup 8 /Phi put -dup 9 /Psi put -dup 10 /Omega put -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 15 /ffl put -dup 16 /dotlessi put -dup 17 /dotlessj put -dup 18 /grave put -dup 19 /acute put -dup 20 /caron put -dup 21 /breve put -dup 22 /macron put -dup 23 /ring put -dup 24 /cedilla put -dup 25 /germandbls put -dup 26 /ae put -dup 27 /oe put -dup 28 /oslash put -dup 29 /AE put -dup 30 /OE put -dup 31 /Oslash put -dup 32 /suppress put -dup 33 /exclam put -dup 34 /quotedblright put -dup 35 /numbersign put -dup 36 /sterling put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /exclamdown put -dup 61 /equal put -dup 62 /questiondown put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 94 /circumflex put -dup 95 /dotaccent put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -dup 125 /hungarumlaut put -dup 126 /tilde put -dup 127 /dieresis put -dup 128 /suppress put -dup 160 /space put -readonly def -/FontBBox{-163 -250 1146 969}readonly def -/UniqueID 5000828 def -currentdict end -currentfile eexec -€SQM(ì(Ú0_«&(‚ÓÿÒ&”{ed›S>µé㨊‡þ˜y¦‡• &öGÖà‹ñM˜>ÑÔ¨Ê-¨Ù…ùD.¹õ¶í—¬|3áãj;ô`ÓLä_1‡—ËñŽ8‰Lô¬8ëHÒOã¾{ꤣs‹H1þYÖÙÎ.Fkbœ{¢ùÎ>Ë¢ô;Áb¥ wÊ(‚¤*ýÎÃô·[]c༎]ÉRWvmŽ¤g­œºô{æyu€Ìíh„³¦pÉO߀ýí‘9çô€Ü:v¯r­›CA‡s ß®þL¿åÇíʯ$’ýp0“.Z<'¾F‹}«iÚ¡»¶3Z¸ÝýÆ–|X'cúCV;¡w™EÏBü±œ÷ŒQßÄØQmCÁ«8èeï6†_ÿ:°¼°pºH“÷H-ÇšÐ=3~R}ŒØ;¸¬zÿMógQôñ*ªê+mr`Àš&é‡É>#}¼Ä¨äè\Ó%Ÿ@ÓÊõ\t,»@­ ±L ¤ñ"¦?{”[úif!‰ÎM”dÒêÙöí`µ°AÕÔ^—¾'¥v5N›„dò ßÚ…^µdÓK .„bZvÑoí¹ˆ¤=-dÃ'hÝkŸTèæŠÀ»s™áoMK t²- -N›[ü!¿ Õ1âeåÿÀTÝNÐ×NÊ ç–pAŸ’à;ËþìóUMf–öòžÑZ% ‘þz‹n¥0GÙ{¥dXšeÊa‘)ñâjÿæÂ/ 8TŒã~ûnž›`µZœ´EO×Çù//”7–‡«Y5¹F¥D‘§sœ’iàñûH±)‚í³½QþeitÛŠ}©/OCÜk6im†Ò6 ³a‘ÛŸêré‚ËÅ8/iÚ7|é@ˆ¢§aµo9„g Wó]ÀÃwà,‰Èrâ.:\q#Í'ìÍÈs’©ýö;´·dœüSï“ìpÍ´£>L¡tN” çxâF“„)àž„õÙ("'.iz+NÅ.ÆMgIÕ«|ZF{|O²µ™¸Sg&“Z_Bm/-­S™[™—tL B|ÑzâFQ@2óûªöþ›Imj+È¿·p@ÒnªCF þ‰Áÿü=€¸f5‚¸“‘+||Våu=#Ü/ï\:ï ™)÷G -½Ü™ìüÄL”VR¡›Šüÿl˜½È~jyù€ê ýÇ­¼—ÿ™W‹€™2Û{›jx2"(U ¥†sù5Óþ¸’½é@Üw„*Û—56«ÂvJ®þÐ#§ð£ ³ŒØÕç¦SÏà‹5tÆ!ËŸŽÛøK°4£™öô#qqÂÓ©gâÚ²‡ð%¨Õ *bÇqßžyïÏé,µæj¡Ó ¯@xžÈ%3o°ÿºC¼àóˆâ…´2é¼…­VA:ï:Ä5ÏÅÓºi{PS…ÞÀÓov„ŸÅPah äÒìÁàZ©„8©fRcDܻգU.ö±Ë 'gJ«Y@tÜ{Mß|U)¹ìß9¡HØU” -`ªØ÷¤ËŒ¿ø«>Á ‹mɵ~|·á¶fE˜mÆÉsopzϦ‡àJ‹Ô‰¤“9EûwR/Mò¥dyýN¡tvqà2EºÒvcÜ2­å‘ìW¡AK2¾>ÜVÖãTÏ”Áד©¾àdliÄí"_A<úsù) Ð¼ì•kü)ú{P ¿ãŸ†CŸÒEFRÀ!=3e븣c-3Š…Ò+¿™ÔâjøõéßÔdÉÏ$ûY¢õÐŒæi v„ƒQI(«‚?3^=\rþêÏWªeñH -ÙÑ…àBås/†¨Á§M2qt[ÕMGÊ ‘Ys@Å]èž3‰)+bôÃÁ“«"`—j;ûêq0‚?tž^U^Þd…ò^g6a{®’ýKb†!-íÓ¡0%z&Ék·0Y7:³}_ê…E儲œ”:ìmgÉÃ;ÄHô,V&L¨c¦Å†ÄâA‹Û£Ø˜8§é*êÂŘֱՑ ÓÉÒIÕ[+aˆ ö‚£Ý?(Î5lÅT®ð‡î&WgQ%mý`°Y7ò´í¶ Xƒƒª$ZéRëÊ ›ÊF¡¼‘Qfaͬæ<_;·Á}á!Î۲Ϊ;u7z„,X¸uq–Å)È(¥±]È ˜0Jºíó,Ð×ôFŸBÓl³±Ï)ù?òŸnBËUð„(PŒ¾ùÈ‚'Í>=i!)`g8­ó!H g{`Ùªz38·LÕ ‹i^¾‚Md2WÅQv“ëÍÐH·‡¦ ÏhÓ»ÀÛÎSa7ñ‘ûÕ©ÅQpü€mùá,|„pDÏLFL¹=²ó4d ü†˜³9V×·¡*ˆ»Ýù¿n¡ëzE‰= P ßŽþ!¼æz¡øã{h]¯TG–Û…1Çñ$\‰ôc1Wµ7^FRM×7<˜O{'4óÏià…kð΃*t@}KÓÕ{·i-È1;ZËõ‚ˆÏ… ÞË9<‘E+èaqU‘ía¾8•2dîèTNÛ½WWjBô¬¾ã ç_K^æž°} ¬£ÿE~K}ÇZk^äÏëÓò¯ëõW ¯“2 Ï4>´àj˜ -K‹Æ©²„w#œ®;$æ›óXéS °å‚+Ô+ÏMàVð.Àû6éÇB˜¯Ä»=A‹@c0ÇUïÀã¢Z³ëqxÐr»Øƒífvºë»b}n:ÆßÔïøÑÇB«»%à¾úCWO°9ÏNfÇ™HnìÅf=%)¯žœ†ybÅ“jÓóMŸb>߬`HYt\‹åK–¹É§f¥‰þûÌ”c$:$÷iñkN —›»'ÑÌA퀈µÕÓe -Õn RŸ½»g»(Œ§JO÷bú OMÅ ÒäU -ad ‰ÙqnD¬­÷,u´JZ7H¿ÑÂA?DD ÝÔºE¾p¨HÇU0º—º ˆ+s>Y„%E±‹<œ0‡_½|¡lj}5ì“Ùô -õÍ–AÆ -ê·~©XšlWðÝð‡Ã}/Ž>ÑBaKFŒ,UÁ™:ÍB5}µ’& o8>hóF½Ìˆ­.Ãô+ɸ¿9#f#æçÆúPŸ¸;jî¯/]ºõˆ7fú_ûpc-þªC»Û´yÆ|Ùs6C`àqÍ‚À´8Jgü T,ÄäÒ¼Ž”ò{àÙ^–´¥â¤ëŠÓM7»ÓØ• âéÑÿ7z.ê¿Éמ7»E&©~%¾ íGô‰ÐÈýao(éU¿ÈP§[ë-œIYi -áOœ4—¦‘ÁãYrsÇr]™ÌäPë@y‡Ñ*:o{!PMn5+_ v„mxïIfd·hŽ4–æ@š -QFßS%AÚåíÒ¾„þìø¤Ñæ—šBgÞ$e‘Y_\½ŠU~v¿ -,itT·’7— ¯—¾ÈÑüm•&‰k -p‚£ägÜxÂE’pr2Z8ˆ›8È­3¾·ko]†¦3~"R5˜`âë=Øë•|ØSþ—GÒ¬Zó>&£‰\ð‚†v U*eÉU›™ÍÝ¡l°ê¢5ªˆ”3œöÚÚà¬_ ­²UÙÉùÔ€¹¬8•ž×6¬•ºpµ¸¥жé†Ü8Û· -où -TXqm°Óá!¶5}6×T)ùXuAÔI=R˜5K²t]aH1C8ÂvN„ûuî6OD8M›¸öÓ_ók©)j{f|KíÕè‰$i/˜ã&šÜCh¤~7)Î)Ž -†£ßª7TÔ¥HÚ:£²¤‚‘úSXñúáè3ãûöïýÛj¦Dº+N¦ Z«ªŸùRYd£¨+½\"¬GÐ -¨[…ÇÞÝç¯ ¾¥w"H(#“ȲÿÊÿë®ïGûèÒK^`ñý ‹*® úÌÌ…§b­Ê·U£¾ŒeH^/€3ü@¯o/“¥SfíôWYù“êºmóÓS…íñýz’s ‹/_K/ÐtP&ó?xö$þF@aʽeÁ="ðŒÇ’.‚O2DuN—ª“™þwÙì£HÜ0׆ZšÐžg9J‰Soü…HmTRÊ@ºtî 1,à‘hjsu¤&!‚$ç%¨që¬2ærqˆ„ -]Ð8a¶ÊMkø… Z2„5ÐÝ}ªã)ñ#Á¶Xÿ¼AÛÄ^1`¼`‘2hÛ(œ41´Màp'æþœÓþd¥ŠÒÛ€óä»Æ‰|å½(Œ%V±±}g%œJÏi“0OjäŠà).‡i¥Ö¼”9p87òÐ?YVÏŒ†ÀêÖÌÒxäÄ5 -Ø»X”fk>ñ*6{¢œÇp,~³´üXèf78”˜æ¥S|C™-{–×VGÓ+‰"sõìë “/’;ʪÀ bÞ³ßó(s£½ø´iÄòFnˆi?ý.ûˆ`Þ;á£éÖB£ß\Y4”!<¬IUL3¤h˜ç—¾Çµ†6}E˜Ô?Hº'âß’–{Ç·öH>UÇÙ±—?eÝ=\s!cÒ‘v:lY†(÷‰Ô†k„~C!’wû2Ýh$F64Rô”ÏgÑYÁcRÙÂ`ªÈgÀ²ú_žUdb…œ§§€Ö´x J“@fœn]»´.^EaÐhÓïÌóI=L¼1þš.>xQŽmµ­VÒ ”yO­‘í¸–N$!žtÌò[O®ànH}º³”œûf•Ò-X8}T{ËéˆòYÜß,+hý°RýÖµ„— -‡eè+èŸíéëâ-$„•“Âj/5Ê\B> -¹U¨qhëó! m^ˆ¦j¿&xå_Y˜èh¡Ig”2RÜÚ“­–+ê—7©:ÔˆAøÙì©K -?f¢ìñ¥N-©åù!HMéZC3TÝTHÖÈK}Š‹LÌZŸÒ,@n4ðIé}_¡$ [ï'îNí4x²ø¼r‚ŸFvT×Ó? -¼4—‰1ú傈öjzØS桇r9 S2sP°Ó£‡A ‚ø±Põu~íU…VøÚÍW7mdï)ÑO&ß³³\ë=xÎ-Ÿ³3RÕÊ.¿t LýÛÃ⤄4±L»<UÖÆa|ˆ`«—…0Ív«WxØTî H "‡gâWb 1ÓÊÀ,Ë ÐþZÍ4¥º¾WŽ€OÆÂu¥ÈÖª|Én$E˜Ç¹ÖýÐ÷1 ’lD6°ÐæÕIÞ3l0ƒU¼3ŒÑ -CÊͨÞT_ÌK3ïdÁ^ŒÏœâ®Ÿ÷_Ù>¿o¥JSìMa;o&øSKŒ‚™Vç09µoÕI›@­Þ™<ï»ÛÛÐ)ùl\Khù²îæùµ— S½Áeülÿ$¸íikÚP¤{/ç;º ®ªñ&¤SkC¡–¶p äf@±9y/=1EŠ³ü›¤à^„ e|=Ñ`ÃY»/| W­7§,·Ó›Âaý·íÑ÷)2¨áX—ô‡…)g¾ ¤6æè`ˆ}¦tvJ­^^%âKgH‚;* xö†B3‚ኋ°Œj:ƇY¨Õ¿+í-U,RK,õÇæ™ÎÂU%#cêà"„¯æ6ÓŸRÕâ\h#{A¹ö•9rèœçô?ö)8Î]Q×0ÔLÇšù(ÕÿÊ*'ÖyM!¬°Æð¹{±fX‡"ÿxë¦7V'{5+sIÙÞ;Ì—¹b'ð¾~Z“÷jW°¨´XoAIòänZw(·º^°8†íí+fÀ´ŠøueÏŸÁ¿H‹¹©8Ú - }œ3k%c¿%ð1üQR$Ä^¸Ð\:¢¹ÑÝZ7S0Oʶº†Œ!Ó.m[&«Þ~ªµ°% -ôòôçsýñ4êcß>5WÈùK$-`'Óц¢Ë°†r‘×Z:€a“ëµqWþær nNN¯C+}Ï ¾®jyëÀ–Ò.‹HÔƒ¤ÜpÿüB/¡—4«,ïèø€M­ŠGVmݶvn!„zyi‹Èakh5‹Ëúë¼ø‡0çS.ô ͦµ¥´¨nqa¾ðÀôî(¨Ÿñ¢v8Ð÷m†²ùš;V‘ÁÃk´§âTµB'€u¡×mŽþ¡Ã'[˜°ãÕ•$ù3äÏÙiå‚ÅC­Žö€-™àqsó) µÊÔ´;O'†)cYäEܬÿ^Ë^ó1Êäýxuß0*Xž¸¿ѨTýñÐÔõ¨Í« tÕb–£û<|¥ø -¡‘"êÜÿ—çÎÉ)³ .Ö•5Ï<ö£×7=eí_º>^LýºTíß -£XgËzδMÃÏ) nb Grþ9<4´À·øD®ÛZÿð²S“e¨¯ÚF¢¡…2¾ÇݵÀ‰d¾úÓ,=$ €€ã”‡™¥Éž¥8Îh}· ? ÍL -ƒs:ÉS¿÷j ˆ³VþiOýcqè«ø&&žñþn°™ëô妔—&±O¥Ð -ظk·¥ù³%.Jͤۥ#õÖbáÀ,pŒo“ãt}n• ‹Â¡é …M2ÜÍœÑÐzs ²Ð/÷AUû"ìà冼žÙ­®T-'ñéþPõ`¬ftýÉü +ÚUBi TX¢Š2(颣7-éHˆÐdÏï¤q5bnóR(î;%,in8ßCÄHP½ÀO³b'n äúO»]c_˜ô± ù°pñ£„SýleîGHb¾ÿ£†¼±æö3fëîI wi•é„àZ §ì@×'ôãHK£ælîÑ^ÌÒ—ùXá#)‡•B}¬kÝ.àŸö‘ -¥wˆœfŠ¨»Pvê÷`ŸÄ˜ÆÅB1«k.(P¥YùO»È’Ê‘þŸ¨©ª]z媚E¦û…ÕïGI.•¹blª³>„™q)’ÌCû×òW ë ñÞÙq²ëê¿$$4¿Ú¼Å…‚‰€Ýíƒ >¦˜¡÷m÷œü«™Êà3 -Å÷t^úp–×`Õ? =!¥Ôu¬ï6©HÜ9T)KûÐù¾0ÙXØïŠrE…)¡U°ÇŸ´h]Ûý/¾ä ïLæD.4u!å –’ÜÒ^\Ts¨#uR“HH¿¾H4~8àôØQàÃ7N槑\p,rs ×JÓèN E´óê0ð¬KÄhêÍg}Ǫ‘æ(‰Q]R«Ak83§³Ê2⎿ßoò»=“é:够§Êºµù48°Ïé6ó"tbJ!è}EV,§Du10}Õ¼jtWƖǃ_è7ƒ¯‘€¯Q²¿Pî¢_¸Âg8ÏÏpeÞSùåž°—Kpéß«nã£BÞ¼(ù[þ907Ø >~„5ÎSMô|—ÙPh‰¢%L‹Så -®GæŸf¿øT_ÀïÚg]; š@UÌâýºNÿ'²æ8ÓýIþ×o­ï¡cà<|$Ccµ}xÈqéìUy¿¢°Ù¢ ¡ræèPÞÕ׸Ö»ËTT#vm¬@)?˜3™^úRÊ߈·à æ6ËêÆêJ‹ç’[ ¥¤Ë‹Ü¢ç7>qôÖôþwu_Q³WŸ&/µ—Áµc$ø­p(Úå)&ÛšÚ (×èa]–»ŠÏ?ÖTnGû/(«u–kAB M˜¸wž#QœŽÞ0u q°t¶ä±$FOJ©JÅ2}[ -= ´ÄÁ5⃬àmëœÊ‹xÌäw¸éõQJ‚Õ_Ñ%©?ü´8XCÙV¬ D ˜ë_LÇ(¬€4¡ºßSñÕ9# ¼ÛónU“‹EòÙ½‹§åõû2EºÍƒéRØ[D7¤Î–…W =¨%¨–W¯¶¦Šzæ­óï]’®Ú¤ »èk|gE˘0qY¯t¾bšFGkæ?ú(7}%j†Ûo(ɾ̉,$ðOãºZ%8)ôÀ~ºŠÁkåËFÓæ?ªÜÎ&œf;èÌ`¼öpG!ö$L +óH,[$ÉÚ#Ù uWŽí5dVÞ ÄÃnª oñÌëÆ`>Ü…îà]M¼ÖyVöÁs1çz¥xr@÷ Ê{‡Êé¾ÆøìYêݪ!&`%ƒÈ^ºRL|Ü'äãÌÇßû/Ñg 6òôÓ…F º£¶©’¬6`:ûþr&ŸäiðLJk*ÐoUµY!ø ѨÑ/¢L#Ã\¢W†ÒË ¥¯N<-áÑúí£T·/!vé j³é¨‹Ëú<¸-ª{Cn ¯Ø€®>IhÂØ(ŸAÍ}Oüa걡+`£­ý­ÎÙuOd¦H¤X®fõ¤G7¸ÑoCc!Ÿê«šè°ÁP³ÄÅÈ'¿6tðóB/“€«¹¦ëÕN€@âG”îŽ<öÇZÆ+ý(CS@ª B]›u“œb‚]æìXŸ@c,I7“EÜ㳤–k¤aâ4.1ç›%³=ꃩmW6œÈW1ß ‘(²Z!°þDĦ)ÛNP¤9ho›³úP´Üßñ›¥°ìVM”î =-»ñ5„ãA­K0‡þs;’„°Cã–S] ,‰‡V<”â_Sáen -…üÑ*),h%O;­Õ“˜§%¡6AéM}MÕD^ÀƵ!”¯pç+×áü˜AŒÚ¶ÄÄh@7—g7üx20â#0þã=i<7€a’÷2ÓZA^z¾ºÐáƒ^ౕ?P¶6êɇ4Mà2Æ“’j §wÈàÂçÔËÀˆÏëÖ¿¢Ý­_m\þ”ZcZÉI@gVƒ)1Zì]£ì—N± ¾ -Úbò• sM«'2ã%`›…·öç 77\Åx0IP!U–mi»ìEub@t$B²ï·¯¸µ·>•èÝ‹qžò(7AñáþJ;÷Î<&UyIZT1cIœ­dáp´0’¡j:P&ç$óÓY#Ý••­Pk»ä|èFƒŠ)¿~o¸­¿{'áÐ;˜ä‡¾Ñõãtd} þ;zSGXd$˜dQf×; ä¬n­µhˆÓéÔ`ƃ%ÿÇÁúÞZÆ€à nWvh¨úµ±í3+Høí‘šþûºÇÏ—|¿;^¤*éÒJ¦ö†ÏIdsþ¼ÏÂ>aˆ…Ó}RÔªcÁ°DDè_è×¢ö^1ƒ &dD,í"?Cj3Àþ0–—2ï•m"ªa§À­z1x\ÄqDH"wXx¬„+,­P•æ6Ã.¸çqÍï³.ãЭÎCËؤÊɦ™¯„ÿA…«>ÃÛ£ªÃ¼9¨³K˜•S8ÆvŽŸÞ›ÊY•P5oeŸfmÀ®B· œÂÃÚ…¶å½MG(Ф*/¤ƒ >Ká«NWTËwfø âøÝêJTÆÓØL5~x¦Òôlš>7m¤ÏTXUš ñº‹t´D)Lk óêòš(Sà -Þ=ÍóªJ<ªörëÑC²Žü¦?kÇ^„ÝYø#ö%b­Å^§€1¢~•]yÌëQ—«|¾øƒ¾bþ:“ ôï*,èyÈ×>S)¢Ã„¢å@ß -ˆêh5°>¦ñóPðÕºÖS5†6qÏ_wb9Ýb8—u"í¦m¤duÐB ­²¼Z2PsÐ -³ˆE|™ýѯ#9LÄ|¸å º÷uµ?Ó%sYZ«iŸ´C÷f1šæHXå )ÞëC4'ÔL÷»o4÷ø_g›ãS¤w¦·Ž½„$-gE:Z(5k¹¨Ù%M©ê(G¢jŠõF@Æ[-„˜p8±j#,@ÄÍ -l²{€á5Í㳃½QB¶d c*‚('À$´ã1˜EÌ,àÃ9ÇÈ™)Ý,»«ÍfþI¢ázõæ‰l'7Èx)y,üù×SàÓ(ùnþ'CÍ?5z^v÷ï\Yt¡r·«^ÈgÅaÏxæ§2ÿcnF¼ß¸‹.÷ˆUêÒðLjš"ÞéŽV2KØ™RöӉɋ2‡ý˦¤[=6™)}—Ö›ØÏy$ÙO°V€Cw:šZºb U‚ÊhSë‹S{Ouó=öË;°Þ;ŸL}$eB5õîõCbLÃXßuž›Ú£èÀ&¸.p¡?Æ3ð¦ÃÜïQð³>[ïË#<_žñg&™î&¡—e! L¦:€##“\*˜ êh±{ˆ×¹‚yn‹”<<ˆÎÖT¢›jðíxÈãj[u;õ¥q¼Æ>ËÍP¬ÃˆŽ]=á,Ä™ƒ®Ïãn,:º£ÿ´ÐÐVv×λ­i„HKå‚åQc†#‡d†¬fN­a>«vöùà“¨dàEÕgæ~Ó{ vT¾Èø± çÃX-b^ï ¶W§ôzšà%„¡Z»&c«²©íÒúèÏý\ë²µ8®†½öÀ@aÁ(4F«–´Á͸™ IO4}?wnêC?¬ ÂëþØçE~¦æ…l´”´˜9‘× ïŸGW0iÑfNK ‡e¦ÅfŨ¼í·ï¦^¿ƒœ¤>šVZ¥V@•H?`PH`bˆ÷¢lã¦í×éœ`xC6¿ù3E2›L~ã¯óƒrcAY'VÚ°>‚¾ 0›ëïH/>-éœîFB¥žóU†*Dàü¥¤(3dˆõ°°5˜Ÿ|V”áRëËRvz–·$ 9þæ^¢—3"j¾ø@Ñ ONÞ0=$VsK8Œ¹q|Jì¡Ä9ÔA7öìè©3DN*öy…íË$Ž4ÀêäOœ"®LWÈöªø1AtNøn;•+ PEéÇ%²?iky¦G÷oSã1Áœ©³åNõÚdxìSur”q…5‘ó[¢€O6˜,٧奖;y±VDÏÁY¾A†»d¼°ôç†>z\»²Q²;^ƒ"ͪ:‘×ÂU× /ž©ÉáÈð!ó™1 p€Á@Ø褫4v´œÆkŠQçÁaÜ.qdrÎòhÂå‡ÚBð(•ã§dè.í+&h+­bø`©ñIáz}âcC{Æ3]ô—˜ïä”Yâþ6ºùw]—¡ÝÔßÂÕUi[Y Qð–È RÔ–•Q–å¥zøawŒ> å;‹µ­G^·„Í×ý{wF`›CS¯qCL€PÍ)HëϾs÷5¾(z\¤è:ø´²mš“ŸÖ®ð÷¶Ôn°oÛW¥þ,}ZîÎãYòRQè…>ã°å¢ý½‘‚¦¹É›ÁŸþ…ÛÇl_ŠˆYªÏ‰5± ¢Ÿú:AñG‹í­o¦®2Ö¶ùàÚh-E%b9uªTÞg^#ZNC^Ò¹ËrH°±MY ˆÉÌ\lŒ…@Æ{x…ÿR*´ˆnkœ+oñŒböVùœiµz!ÀIµÊ‡i1°[ѵTè¡ubÆzé/%»‹Jøén§»wiù$øÁ‰`+ñìàJ%'ybÃŽ!ó Z'û} aOq|. -W^Ó~¸ k8«Œ G d»(Oª:F³qïQè\sý;ž:{Goš!ÿ£ºñ-Åô¬LÔyyZ,Þ˜“š t£àµS&p(” -Su§ê©¡^Üòz¦0QG|Ãör£ÕŸkíy ÷4ÚOk¿d:WììñœÆ„Þê’\ì¯<Nñk ½^ acÎúç”ö7ÄOί1@ü";Ï ?f2i­AÜ'ÀFRú@p¹¾üšÓ~çž®^p=¹¡¯TØM_—`}zwù¹Ì^Öbmâ)fTcL³oéDÃ!ñÑ¡ úŽ~Š22+–kŠÚ7ñˆºnrÒ9ÖÈk-_š›¢œM½±ž-nóP"0¤mDh-Œ$—´ð;ÂVGX’Rb?иR“‰}½_ßB‚ug­}I¡™ËkLbwÄ勵Cø¹Öéx—9~5›ÛL«¼Â¦”«ÕUEÔ´wAþœUºX´`ÆUOåzµ°.¦)n;Š=|¬"Ö€r€óäTpŠ-ñùuή…'ež©ê…,°|æ¡GE8Hf²ßð«wö¾TM¡-®©X$ÇV:VòKøÚ¸€“1ÑÊP‡ ð5“Ä!Ò)Isp¿’ü¼À¬›_’s"¸–ÙoöC}`g2¹ÞÀ¬Û-éÔO~›’©?^6öêÈÎ!‚œ OÀaÈBÎBÀ(±ÍØI€…zM÷Måd²Â—çšIm³˜HFkŠkÄ“óÔÌm3[W½„Éßjo¢†÷î@sÐx­`nÙi¶˜‘?Íìh¬©ã·–„ï}æVÞA’¤mí,Cî>#Úæ)áñQØÛR²Xœvþ"B•ovåÁtA.¦‘t{OüÓÂ:`¢˜¹šº÷õ´‘òTÙ @ œ#ЀQ(­•þšÝ2V-¾ òÊ!Y+Õç9êŒÄÖf%;µùÓ‹•‘ÃnêÐÈ7.(ÔZhæqÑpo@¿ Ûú®ãWŸ@?¬™dIáæÇZ$ø=Š[‹¦€…U­¹2¯9EZÛ!ˆ%ëÓ„êxiªÆänÙŽÎT2 ‡Õ²k5=Äß8eI5Änª*žh¨ì„Q™Pÿ00øßÉ4+Xóâî¼#dÆd -Árq®òKð΋Nžf—)Î_ÿ²OOäY¯fËíªù-÷™¦MR{QTÊ AÛæ®ÐzÅü¤³ÍçøšùÿŸ‡¸µoJEöS`f4¾ð==_?$öURlÜòè—Ù¾ìêAŸ 6Ø=BáOQ¿š ãNk·IÙAô¥ #%ªfv–U­„É‚@’ñc~äñÀ&ÐjŖЊc~Ž‡¤Š–¯Ü6„ÊѲ‹šó¶² Yy†=ßÝVs¿‚_d8½tt%HÕ°TB^¶IÏðÑ08HǬsý]r{ç!ˆ‚ÿ…¨°eAqƒ]“{aÜ®WŸ)<ÍÕ þ{Ì·^~áòß,æ…59çÍt¸±Þœb‰zHhš$míø× Dø¶Æ"3õúƒ£y³7kRó_r›©æ^ërC¤„Ï{®f ôûm•«Á×+<¹]“Kˆ5ÐWl~uÒôvb–Ú…æ„ø#hÜ ­›»'$´£ ž‚õ)a²0œŠOWÈ_‰èY7PQ§zˆ¤½Àê‰Ë÷=Øæý#{@$Âmc³)šP î‘}ò—ÙQnDLò271­@Œ+„߯¹®#›MõGPxä¸ò”ŒFwdp×ÉG³"õôXÓ‚Yc§vÜ(Õ¸ðž¢0š3]—¤Þ•+„ð_<8Tm ¡F‹ã·üŸó· !üú´ÆÉùÓ}aí«'giS‰IÜ9#ï=¹!†ìV†]À©Ö•PTpt¤š… -ÚÝÙn#hx˜`zÈíÕìAVX~zA½ÚcwðÄ6­pÅ6cVlAG‹ŒAQz@ ù½¹$ÖOUh’Åi£rf&An#!ÿ‡_ßÒ6Ϙ1«n,y;ãæ5OKÍÒô·ûÙíº=õ/€" Lit—Ö7ˆ´l½,ôX´’5nÂñqÕ„_¾~Ô‚#Yknrêñ!›×ž2ŸVKûmæ¦ö,ˆ8ϺªT4-è=@Ÿ)îe]ÝÃÚÍ*)· ·£˜³iV…y´e±?¬p÷9*‹ÄAs~='Hà¦}~ŸÐ”çªêâÌ ƒýh½çÌÂÉN“-3;Šv#ÿ?ié!)¾ãea$Ð…f• mºÞÄfÓÜjFmO]\`»óÊ6ôS­GCöB~g8Âr‹Dj -iSÃá þ6ß_::DvWûªBo »Ë ê¼W÷îåÓÌ°“|Òt&€ÝyB<ÜÊ0»ñë'gƒr¬Ê¤ååÔÙ¾ûÑÃg¿³XŽ9o†Ç0Ù‹ ^ëJÝüŽhvZ¯6vŒº z¿‡C‘cgFÐñæ«$ÞXµ~øJ®"t¢ ƒ@²ImiÃ¥ 23Ã$°>Sõ‘¶#Žsg‰[Îc¾:PJù Œ,ƒ§?A* ^«š[§Ñí}'šTj'óI:ÄN/rç×l¦ŠÕü¬<1ÁhÛß(œ †™Ð- œ¤qýÖ:w)åN—®®{ Ûd<¨F´Æ’ò;Ác Qlé9ï†_|D¸Ç¡‚Ï7*;“+0XyywÉ WÅá-à¶*fLi‘‚ïƱ;×bÔǨ^}õ»š‚ÞãÄ•žNN£0Ê.Rtr^s^HUiÑí _Y—ño}^²”u)Ëpg˜ìý?ÊïGªÿ¡q/Z/»sbîó>fðI<0À8<¦Ã»®©›£K§,øãѳ£`;£¿›ìƒýx ã5=–f™"¤ -ÍW u/XS<‰–›0Š–áNÕs€Ï U̯©UŒ Ï߃/X {ÕwŸŒ -Ÿac„ÙÈ…ÑT8˜hv—/[µ(qÀPEæQJõWëWŲèhWýÓt•ŽíDiOQ¥¢>¯œ²¯²Šn[’Žå3®PRŸôÕŒìs?ÆÙÖ¹â5ÕÚŽ¾–hǯ ÍÛ1€ è«[•‡dOïBe£Sm?D‰Á¢¾Ï]]-nù„µÄºgLtì¢bú*¤¤·K¹ô)t‚#6zkÍ’§óå¶öB_4CQ©N­©ÚæJ%Åhªºu¬Ë¢o„àÎ ‹-³xƒ'Æ=è÷#ÆÅIpŸ¯òÇÜv÷sÅZD¢h„]yhµ*{I^“²/ŒVœ#¢šZf,“š¾ßtå%´sí­¬MÏR&@Ÿ™‚ãùò‹Ÿ Ö®î‘ê>AE;ÛèJáey{~ ˆ9ÍÌfe·Fícѳý·s˜ÂpµnÝ%æ z J÷˜€ÍGÞø=K -»™¸Èx°‡M {UUËfŒÕ·¿Í,ºv…/t¹±ü•aoæ#@ÓýcâŸY:ˆB±Q"cÎŽš¢]ý^ŒYùzNWæÏ‚4ìJ–Á^Fx”F­Á,ùÓéÚãE# Aù$ús7ÃXX`¢‡8‹²›vüΛÌ3î|ãš$+7YM(Œªg „Cæ•!E*«"WTIÂî€Ð9:Í?|“x´äšZM p}®…yº«<î×òíTXQƒªÏ§mÃËí(iœÈc‚“¢è…¼ØŽ°nl‚Œfô/SJc¸`mýñÎOˆ#Ò·ÂéÍ×GïàËrAPSfn%kçœ1ÊIÍ')£J’í¾§sŒÒäô,Ÿm¢Õz£×…9Û뚶H½[Aªâñ8oèŠáY¹é–çØோ4[×CC?p¡A[ìqÊl3"bŸ€¢ˆ{,›dDáFVlÁLsÁxÔ™Ìxìo*œd5¥¢Ì|´ýû@™Ö(¸+ãuVY–Ì^‰½å Õ©Š -,\º³S¿1 9Ešó‹;e2’ŒGŒP¯#ÊKƒK5W]Úº×ÎÏïáî©ÍÇkZkG|.øu³é£YJmþ*:â…€I²€þÍúòªñ¬w™uzƒ=p—D•× OJ‘õxäß‘~t1 ¡Ç ÝkMÉ 39–ÜžEÒV¼í~é#W#¨ ðÕÔò÷誑ì"ËSä…é5üš¸[±ÏìkÓçò4ªoß&,棾3³„Z‰g§RÏ8{ÑzvÐ{u‡ãª7Œô~E&#üÒÁDr?^@ÞÀE|n–Ãg„îEWž ݘ»Ó‘Û«ïÇT°ršòg†‡Ù­»)þ3Ö"¶,'ÅÊùOé„=èí!ÉÎrŒƒ$wÆ~¶“‡YØ-AR -ef‹Ë=EëúÆdÿ Ò ç»¯À?Ž„ŸÐ‡'ðl$v|ó ªÑòá^*¨Ó£äšpÌ ‘žŠ£?Fh3áplÓ–ùÇÉ:ŽY0îQ¤Œ?›0Ž‹ˆºœ¾$½?&s ñWc}Èr æŽäÕû\lnýWã¦á¬(›B-|óûӜ㛮·š -¹yPd`¢¸®-éWÑúÙ™¯@c.ç¸~3sbÝ †®2È:¸¹`;qÔkrR90yL$sÞ˜VÑùè‰ýýp¡·Ùè‡Îñ --ÎNÞÍÉÀúVʵõDaóÓú\ ‚ª^(ÓÍÊØH¼äÃy'iDÄ*ì~lD~Ôýp½TX‡ðÜSÀâU$mt–¹‡8>-½ÁÚìlèÝ1“ÚñÝÁÞ¹Ù‚ç6"j`¼ ÞM{V[±èxyD2 Q|h¹»´† ¶6„m츲—;ˆ¥?‹.,N­@ËëÄÂa.ʪì*ÀwânOÍý»ÞŒ««,Ïöj œÇ—Rñëå‹kÞ0úí ª‡ Ïê4LѪe -ß%ÔÑojÛâ_ÿž|={~‰DÍI÷a&yÂMÄ™-Âu2Ê:ÌícÌi‘ðr‡\ÜM4ýÉ'ÿƒ<Ö±•¼†Ïl4ãàáÇ° ×õÞ>$ý;K;àêcz3|ƒ®J Ç«l„3>fp?ÓMgõ€¤æ9ÈŠ¯ü“ËkL˜^9ê$Š×¨Sý}­mº£P¢ºçYýìÍJ¹p\-"R+ý~Êü¿]\„ÏøñAE…t9Ž†_Q‡£ƒ¹+…}V%ÿŸ¹ìÆÍìoer½è˜99Ê_G`{õ¥öx5Á&^¬Pü»T×á"©øbÝÅúÊ“}MäࣅçRÁ«W ³µj§Qï©°eW½ÄÂcGp²ÚzKú³þ3"b½lI’|ÇÔ3ª®w jIT£¡ç\qcÑ|I„¾90úR˜3£Æá$3íÃ6$5 .ª”£\…üÌ9À1E§˜>… v…tç‡Ã]åÛ­úÈK4º=²=Ñ Vôº¿þÉ·š`¶zš"×\])”¨ÕM8cžÄðÏ8Æ’à÷£rì%bdŠ¥¶:»amææž¾/¿.NÚõ}Ó7¡¤EæJy5XˆˆWú·ø<éêµð GŸbÚ½^ujHMß -dF4ö?yo<-Ih»U'–qÝv'0üÏù0Í`<Ÿ3¨ŒsòU%I†³[f£nÂf×=å{*µ:1êWâ± Ë(CýZzåiÃQ×¢‹ 2ïÂöþ´ÃEi¯®6K¾Œ2?Îk!æ! 4Ô‰!'ÐëŒa}ºÓ¯>¤ÏêºN¯Wö9yý &‹0xLo‡M^Øœ Œa§ö”‰ëãr(XvƒÜ‚ÿtý˜ËÝðKíóP—æaT·Ì!0’|zq_KC8²ëo𭺙 ^”Í!&^±?¬•¹évÑßòIj`¨•™³ ~[?N F×ëȳo€@]„0ÛRgòªìZ â#ÓVW@BÄÿ/Q§1åMÜЬö±šµe2JÛ=ŽüçK4“ðÖåmBHËdŒ(ýà¦4ây-)qLfľ¼ ¥ ÿ<1,gäB©Su‡Œ êgf6ÓG¹6¼4Jñ6äšJÂä]&€6l¤!ÐåÜ­‡¡> Ÿ9b0ºÌÒÄÎ:³e¡!ó[(\×­Â~O>â®EúŽüµcÆÚ‰_¾„ 8JÉx}ŒJ;Ûn.‡¥‹Ÿ¤µ•üº Dˆ³w@MîP‚>îò"À¯*²v&_â ân3š:&õ´±©1lŒþ§Ìµ$BÒlpâ%c.˜+ÂV”|ÏYÃàŸ±”{Tà¤$fÏd-Ê‘ÿ˜æôàðê#¬Á•«~zŠê«»Õ%{Ì÷6 -Á’ÃH¾¬j'=ªöMT®§Ôxo˜×5ŽH6 1–™¡úªªÞB‚nà³ 'p%0ANÙ¯tTz@_"ÍJÎLÜ ƒ:Õ/I/´À9$<î?$‰»<¾±"¹Êýz¸ªY¯29$‹Éïh5š«÷w’×yEð º÷ið¦¸4Gás$*;êyâ‹85A8Š³ÓBꇇo,µZ¼3:?Ð_G:´“gOªÈñDPìW5‘þ^iä—bà…plˆ -¿¾À’‚†ÑïlRПü2Ä 'œU›åÆsÒCž wFHêž¿Mš„éªRƒàþºb“ƒŒÞŒ>R*êÈWäêx‘øì‹JãfŠa¹$¸êoÑ°Xš]+j³åõ ×+ÒÅTqÁžõBâxó‡N¬ô²ÂÞ1,a£öNɇGÃf‡N"3è ˜÷]L'[*àÏh ¼ã‰.ÓüÚqŠàônÁ¶$ÜËöè@$®Ò“úÏ ý'uÆÖ’/“w±ç““÷Àw_$Uíá¤Ü1ì¹õ| YžFœIÂ=Ý ÙÜæð6ï­"Å€1#^¸ûiúí­æžñì—“ù'9„‹î¹û†-¸­Á<†½–1ø£BO´îW³ÇجÅnŠòî1mÍ>Æ's=É'w)h1 0ØqçÝZ­ð¹K0oìâr¼¡<|üAÎî9{T!â|>SRÍ[˜Ä”O°›Ç6(Œ'=×KzšUeêžiû>G9¥†…Œ†Q"!%«䪿5¯})H¸±?iIšìC$$W¹?ã‚Û}ÎQXIع–î[Ëû/Q`˜näjçïtÿxpg[Ž]"û…”ø j–q…ý–2²»–âï_+räVù®Éß)×Õ¼Z­ÿÙÙ]FW8Yîgpð¡tÜš[žó]"Ûñ‘ü-ýUJ†… s ¨ +¯æ)‰|ÿ;„væJ©““ÆmèÏz[{WRàR:t:¸ÌO2ƒ¥DÎ H_Þs²ãd×u÷Ñéø"˜ e“±U_+üƒ˜4 |J]— -,Ì‘r¦isuHÌå‡ð‹÷,Œ8äd^]NJh{|Å]«}¼Ú -pzäàü7¡œÅøºöø‚XC .hc#Œ >|?á~X2Tƒ¬¥3h‡šÌ¾g&wÀÙ&ðf…>\ÒT._oësâëyƒßîó€:Gà¿<ÏÎÛîÆóòÅg9Î?Ÿpd˜#娭\?[ø"1ð--ªµ‰­êˆR +_­vÅœ ú.Mt¯"fXiy‹xÃéŽóEÑl`d"oz‘®pˆ¨_‰3P[ÀÃÞ”KðŠ%¶’ÆÇÙônÛnÔP;u0³¸˜b;Oà1Ê´*;™Ïh:8ÚÊI²¯s6*`â"™¡fÊÎÐm6‚‚;—¥F “ɺÆX\«qf쇄ˆåý 1Ymlþ²’í­¢¶Ã9pA¨ÉríÛzÊ‘9öĸ. 9Ñ̇¡‘½â>¹LU¼rôuÃ$BÜ´¡ÒÄšj%j"ßp2ED5—žò™3p¢ì}jFè2ýìB_˜PS^4@×$ &1£±U–m/¶Ú÷‚²çǨ*tbvR̼O7Ž|fóIGd°q„÷Öª^ 6%lhiHú¹CÖì_TXÃvܘ&N8ºr\ÉGSó}û»W»ù³¼‘”2 ´Âò -C`Éxô¦š•6à*‹‚9ÎñÙvÀá†B³½×Q7WÌÈ_ºDM<|ÇÏ?œæ‹u¸»CÓÏtÖã÷‰¿ðæ­a½k;WWrㇶw¢‹Ù`‡Â‹þDPimäN¥ 7^Ýv„ -à¿}ñ&ò©k,"ìÀoIó·7È’V–xÖ¤b¢®ˆ£Ý™0Þ¯¿´w:Çé"ýx2 -|ÐW8h§O˜‹ÛÙK<2ÃDÅ'ú]'Õµ -òÙø Öeé1ÁÈÜܚΤMvÂø®³˜Áj.·XG᳚YðMAŸô(ëUW¢Õ4’†uÖoHÛÔ ¸Ü•˜ûÆ»è0átxMF¦áI&Mv|/>+(Aû¼Ÿ.7æS+§ÈúQÆ)W……IIJ-Γìña4je2H -=†‘†ä'„þr±_©ÙX -d‘E,®C:2»Êß`òßJ18‰Ê„t‘I#œæ›ýØÕrÃY©Ø:Íî¿·TØ u‡j©ž\†uB2ŸÆ$} @”žx°†\°õÀñ=_#÷¿‹é¥=¯+j°Á8¯ÙDÛX¼Ë.)J§”ê&=ÇY¶´^¢Â¡ª%wÑÖN- Q[êhÍ’@u qè %t‡jŠÄS¥ø S#TÓ£ma.;sUÕfõJÔ•’3‰‡m¤Éuä?ŽñYZVÿÔbX«!^†|+«0×F¾ÉwH„±©XÜ °÷ÿ©Œ{Ïèižd DP*¼â ™z‡¶ݹwË|fû+t–¶ªÇ¦5W>ï¹õÅ0EpƒP‘I{8Š¼í¿0»äÜŠ«¤b?Æêõ96 Ø—ƼžŽªRßûöRvzôOrµ#–'õ'„ÕAEÓ%ÉTVpëúÑÀñjÄÜ»)Ÿ Lô+pðÓÊ®ÇF Õ®z-f B9oÿ¡<§ˆz[J’Dàào. V£³w"R)Öü»VÝËÓ-º0ÆþÔ˜¾‡"ýD¥eEº@…?í›Yo™›±EBB>í¨Ý‹»¦QÚ`&9zFß­vˆa/m~ë•›¾Â*·ôí¶øÛço-9NaÒ%(;¤aP#”®ºuûoºÊàV¯ƒ[/íæ¾Ijý<àk½Š4÷}眫€Zˆ$Ò·ÜÕ?û>Sj"§F -Wˉ ±Û6œ®2…dühà”¢u¹Ö¦‘VÁñõ,%³8Ókî[¤Ü?ƒå5ù2dåÈäð†´+a?WWSê=pŠ_Á•– »êïMæÑÅŒEæ§Å¯@Ì9#±©ß,ú¼ëý†àÆvËz4‰P÷Un1\%Vxج'ßuƒ·šÔÎ{ šf‹6x‚Ì€‹ïø"ܪdŠ¦<Ù„¥]“ Ø,ãÛ§ÕQk¬Ö --²V3¯o†K0{ì“VÄ™B/í‹„I±B´Ñ+7î¸+ÕÃT7Ûg°™³:éˆÀîÖ0×ØBÒWa¢n< -<<{Cýàu›ôçé!wÎé­xÏ×P›}ñ6ìµóspr¶žÝŸÄ”yçw”Ô¡\-Í)¢jû"Ö…©¥zJ -Ø? Å„B™ËÔÎAYÍœ>Òý†ì=ËãŒlë¾òR"•p®Ac‡¤ü¬Ðuíµ9‰i/ó½þØn!~¹ÞOek7sûs&¢´Opz"s·tåð¦Ü«¹=0[}ߊsyoŒÛ¶ƒ´KÆ<ø‘:ì½î9 ½šÈ—µŸ]Çâ´œ™:-œº(ÕpNדi4ªü ÜtG«÷¼a÷<{ñÛ¥XS¡'¾«g’í„ð}†Å?,"ºÙ€Ìb.Bª¡½Ì¢“ K_sקl½¼2´(œ79úZu¨L)‰H3çw’ÝÞ,<§‚¶4¢†œÝkþm=¿é¾'gJ>½Û8®ÔÀ‡j¥x—{¦…A„¾ÌPzêÕêò…¼jnú-a'ãˆycžà{Íhõ3rÍê/˜¹íõXLpGÞýnßV«Íh‡4ß„ò“£8wwfF9~6ùŽ‡ÒÝ­¼Ž'84Ž[UZ^†ªÍ%çß”X–ÍƱ~Æ»•rF¼­/šŒÃp»ó‰è¶É´XOm®a˜˜® -ú{5–™àMÔsS<ú3C;—Ýå[ÚÐ "å]”1\EµiÝœ$òì£DÛúÜEP…Ýšn‡"SYdš´YÕr¢ÑOY0éKÖrd >>oXã5·ì©tƒ|Àµ&>)ÓL²ú˜æÊÐÓIÀ¼ýXL½d‹³ëÉ­¨Em }ËÅZÇ*Í":ÂXò!ŒõU[0Û4…™žožzº*Êïí†s[nÆŠ ɯ@‘s‰oŠSæ‹D)S6éM¬ÑM)pF`‘ü-ÄÕô]æÙ©!€àïiÚ7àO¥±dZ©çF7!)ÉSA0‘X -¤6™Nð-[ÁåOð¥N×¥R@²Ö$Üÿ‡{ãŠf‹V ÿ–É\†;ñ¨Lí+[Š×â¾ôc×F`‹½=;1^4îLjGÿ½s‹ÀÄ„õš@é/ \Ž F:/$'_Œ¢í…ÈoÀ’¹/´§n0<5œr?µòƒx³PVÝEÐú‹sWtg¹FnÜž}Y„§þº§/#Ú–¦3 &"6lVLFWem«³áé žo‚ÙtFOÝEл¯ xB)~W5—m÷ -<ô¨{ÉnLûЊV9¼ÕE<‘WŸkæ¡·áø‘™¿K‹Á_¥ªüó¼x|jøHis§¨MÔ´·ö$:Hç[¶7d[õ`¥¢qmܹ¢FŸ¯cõDÛ„Wÿ/0HŠŸ1 ‚‚MÓû•}öǃ¸ñ—4,Œæ ò(J¯DL}mÌ×DÍ„ÆñŒê48Œû¼Îï†÷1ºõ ëk4ËVquÉü ícÞ FkL5Óª_Ÿ¨LPþ‘Js!Ǧjé!]š€èú®à0ÿýlTþ£m±žìHâløuôº ÞNøK«½UÆgÞë]=ƒUU¹Œ°´]%‡±ßB„¨íxÑÒÙh›@l07Yá'9|eÄõF÷Ý1Ò£íkli/T1³A)ë“aÁÑ¿u>€{ ƒí :ˆæbLðôk¨Ô"Ñu CäÏùºov¿fι_ßLª‰–å¿{W^Ú‚Ð&»§m}µõO ~zæ6cì™8¢æ”²s¾™6æ™’u;–zB a@ÅþìÅp>ZVZ';gaüy+`Âb©-Ïý1¤®ñð—•1{;ù?Œ$µ¬šc6çÖ[Ä/Zhÿój:V&Kž{e\[— hNÐMŒ½î‹¯Á‡‘H¿¡€°õ3ªÍÑô·¨)hp«zNKLÝX8×ÀW._½¡ÓeI©j|BîŒMaé„(]‰¡‹Üq¦Æ‹z’¢¤Úvò•É.\uA`ìšQ®Ÿzÿ¤G°ìB¹-Y;©sÙvV©GãÅÞÒ…Èc¬!b§fw“ÒÈÔ¾i£ÛR9£ð1`5Ý—A¶톂 Xf©´J°¾jFBùå¡Q«Î»hk’¯ ÒCd_9‘³U>ü¼ä} /h5„Âœýµ[‡’ý#¥US¬¢ Àýȯ!ܾ2+YQ\¥´re/é µš ý¡Dñ!çbmÅÿÖN4}žÎÓ!qÖ ÒлA|5÷£Cz´Ò\œT #ì«œöb4H'ý Å/Gq–üÑv8¼âE7T]ù‘H±@ÈlVÔ}ÿ#àßÿ­ÎSvµ?ŒÜ>^&ÁÇ¡¸XîÎMÑ$¦óSŽ”´·øø~geTÝïá¬úÒ±Sgoƒ~ùÊpgŒw‰*¾ç<Ý5=5ÃQÍo¬Žµâo2AH1Ý“TòY£ è^Q ú.R¯P ¶Ë -Û=Ü‹v|Ú¨OxÐ ’üä–N0 nKÏßÖñkå’ìxíà€Ùgÿ¾>}âGâo•íeÈðGðIõUËDö `Û«t°"wü㟰“Þo²àC÷¹»lä€ €@”ãfó#yú\lB³}`ņH@çÝÕü£l,6ø›»ÿ÷$"¨±n)v™bBç©q¥"ht³yк YïA@‚Ö - µ³b™ï¥d2ïuþôÌ{®ÅWÄ*ÿu î«Æ#2D¨Ž7O‘ÀX„Íç›ò¼¦jÐ ÆOKAuÉÅ/šVK›SNŸÚ¥$•l¤§LߊÁSq¤Ô÷RgúZÆñnØ•êh@>Wb(äàŸµúLÈ'RAѯU3 É嘱,÷üJäÙW»µ¤yi»s’ܟ̶ؔ{\\-Þ˜¿æ³âo°³aŒÏtw3ˆ(yCáD¿ùËZO0²>Õõ®-¶/öå ù’é£;¸.×/Æ+]~×­su§|´ÎR¯"Dº–ëú£aÿ!42¸ý‹‚&ѵ¢$_sV³¸LâÙËœ^ëì©v­ÐY/x»ŒM…âÕÆ›0³[2ðÑð7LÔuþ‘ŽMÙƒ¿5ÇõÌ´ÎAÀqá _¢Å²'pqS›a‹A«­Þ¬0 -y%þ ~Ðiu‚çnÀ¦ +j)ð÷$;”ªÓO°ÄgÁZ!«ò8XZÃ/àu&GÃuµ{Çó­jüqØkUÊòÅ{®mQŸ”º/•©çí“1ÒŸHæ%îAJ"…\$Çh½«¬/^\Op$Ä#hµáaòu'К{ud“½MEÄ Ø·þméHµ6”ªL“6á"x<Äéd¿ðcŠÆ*L*9ÄXûIà$ W¤ì°¢Cù³>-êËí7œáN‹fç/;ðYŒÕ[*%ok„!ŽVQ+Wؘ¿|8¸új‚ËN¹eÈÚ´^€0-mݺrš÷r(þ)mP‘š(#ߢGàÆ6Ïmó§èø'µ­Rêb‚äœñð ƒ? ’¨Ûr„Qð°ý¢£O òÜ5€®!§0>ìÜ|úî³ò"™À¾Bò{gÛ”ßÿN«Éh(¤@|]¶ñÀ¶Rs×òŽ§“ƒÓ>Xòë·÷¸ü¶¤ÿ -¸ŸË&£Vxà éšbóž£gûÁäú/¬š 3WÔr`ƒñ^‰aÅ/“w̦€Ìöãa©QF±U…5ɵޟŽ?ˆ‚·êÂG½ó-)Öù_žÔMSŽ¯³v„,ž ëœDÜXnÞà.3P(蜢­¤héi[ P“èŠiW1‹[ãÝœ¯2C‘Lï2%ª[#ãÑp)ô-sj-,ÂdÅðÐÄžÏKvœÀ>ä^d¤ì‘¹0{ ûÔ±·„ÍXâªÊV{ÊkÓ½n/ºÔø´þÍ]«Ø)öÉï›W_#Özóµ*<ᑺì¸Ã NPã§DY6ˆ$®}ĵÜRÌ•Çe·šÝ|“–‚pycú˜}ó:A·ÃAY¡Ñ%¼æ²/X¥7‰šû/ý*¿Kà§Oö  k -Zdaû#@ ÛíIˆØÓ–@¸N• nB¾(8¸™àŸŽC#iÛ)¶‹q1ÜHœÕª•ƒTêˆÍdtÉþî?ÉzÂÒ*X>R¢c(e8=£ß«ÙlÕÕd¿v±`¾ø²—7¶ê -ŒÔ“Ïš_—ºðB•Š Z¬@ä.–?3cf3ô^0þ³ýäù`¸ýw‘´`€u¬f¼ß6‹Ç ŠXEFÂwiæ•ñ‡ƒ¼¤ãMcöÍ>¢ÌØÞ?ýÝÉR`:MK¶Ãó[=¼<¼x¢pÿùÇ1‰¸„mgÅþ»Ó„2 Àѵ{sáØx€ùn)URëüs.aV(x¹…uR-ÛM;³ò'{ÑÈ"–de¨Öùþìl ¹%ˆªTÇØEÀÁi‘”áÒ8¨üàÆñ÷ÒŸ†®ÜIOÃrØix#÷ÍÑkß¡ikcWâ~ô ~ ¬¤dµ]x5‘Ç- Q­†•D/ªX Ç¹lœn³J$Êâz1Š™1×Ý7Ùƒ¯Ÿ[<ýEù/Tñ]¥Ñ£Ì£g9á‰Æ6tØ‘@ —iæ´+§)áïÐ,mòPèû‘îž–˜Ç'W°0ÎOÞ iþÉ%€XºœM=« $µErY®`ŒOÈã?buVæU“T¨¦`P ¢É_Æ`‹NyÄÿý¼it /."s,ð‘¬$1‚µâ Í>w®±))~NãbÎ'í–?—2j9÷ XìHù’-ø±'iƒq ~‚_µœœ}äì:Ý Ô&¨5k{´Æ60µ3^¹¶0 Çhk̘cÏŸ#ãè©Ë¤ìŸ#-$ÞHþƒÉ›_FÀúq.»ŠÔ& kîÂUÁâd@ïê‡Ì:Y+QãÃAV•ÒžÑÓŠÂüa3 ;'œ&\Ëä O BéK5Bòj°Ýp¡×ª$Ròê?áÚžä>Ì8þâSÛm]8€@«±>O³ºTXûn-ýôE‚ÄðØwŠ[³a›Ï4ac9)VÇ3½¶%šß¨‡Wx@ëÍè.=M¾¹)O²¨q<¦UêÎ1$›âCáÒãqT¿d¿™C}þ&Ûî?£<Æñ -QIš¢ ǹ¢1%ÞAþ¬·I3°±ó(®´b9»à²OƒWq‡´ô©p°uå¿ÁERÂ)–(m˜pñ2údpKë“@+wïdVeÝ­^ül« –Ê|¤µôd{ È“§ -çwÀ(»#&¬ÌŸö§Ø’ÅŒ}ixkl õþ5ÞÑ -íîæ(dýØEgùñãrïƒ/§Âo–ï«rÛ^bø­ÐçÍe#ö¾ù¾É† IÔæPIë•î5Ù°ÝØ -¢y_ˆ8º«¢þÊÚog¢*5<öRBäà–zã= –`§Û­·6K†x³kBÞFh”#™©!A -â$ÖÅ:ù—ZúŠXŽCKiþÃ?3ñD}·^)ƒyZ>%ú=YûDb¼ÌMêjg—÷’͸À·ÕÚàe| mœ#ÚWC‘qmåzïç0ËÂ.V 3\G­ÖkxœÉŸ3ÕÙÖƦ¹’gmsl'ØË5…{øEë%åhÛw~¾“ æ™p…—€³ÀJ)aÒ÷óN1¬ -™ÈÇÕïzezß÷ÛºøÙ‡³\]«ì–ìï6W©¦vɸß_]¼¢ %Bér#ø2•¦uŽõ@t´ÁxÅ1Jºú=^NBó•šzj}G*¾N];c2ÆÊ[¯=aâè­4Ó”ðŽ¾ø5ñÒNäÛØ1˜\y O¦¾®‚kxCšËa\ù{:;®tìÖRe5VÔM·(A°wñ»±¾î‡ý#ÉZBI ýšõ›_rŠ ¡¿«x#ƒvdøö7 †Ç8jÀ$»Ë׸@#–©¯§¹¦à>©‹ P7L=ŠZ9:ݲ„IüÖgàŸT²¬=Ø#ÈÏJöÓ%CzX<ø‹±Ô½‚ò¦fÙGë‘Uæ„>t³ï’÷E.²ª¦×ãªv“Nò£:0ÎÂfcÁxSDt:ˆSÐᘉl’…ó¦‰F2}~À?ø¼hÜ5[qXn—@ Ï~á,þSèrþØ2œîó9r€ÇD/ƒ£)\=~¡©eᣵÊý¯é¿þœ¯ùymL¬ÿ ew‘dÒO ò”SÙ]áO¡Ò­ËQð_©‡{ÁY°ªäÏ-é>&Þö DÒ^Få¦aÂ[3Ù”0ΙÉÄqbZBœöœÿ–—83¢iä‹C^ï¢1-^!Niä’£ç½BžÛKV“jUÍäuµv¨I¸y‹ý¹¦®:Üj¥‰"åŸéPDø(O¥­¯ó èHOz[Ó]Å ›EMmœ>% äüÊ‹Ð;r´ŽAï»w9ÛU£±(n`NþÓ~/o±khŒ Þ†ÊÎ+l:ˆW·rÈt³è…ÐÒŒB›–߶’ÿ´‘¼)žþN³aÄÏΘà«öx "–#:ç¤îF«¢7z"ÎÃl+iBî"z¶tÝð/nT$n@¨)HÇx9¯‡Ð~ÀÒ‚À£ˆŽo ²ÔdÊ2fq7§ViºC…ô µP´1tûèãÙ¬ ‘/ô‚ö¤äØIß«åDe+|Ëû±àv¡¿÷_€ LÇ€˜/ଜ#Duû+ÚG¶[ㆠ-ûŽ ú±gM2Kp@â‘Ó­£Df$ƒ0vߘ@}/çÙHÌZvàõ•î_Š·×1ŸýÓ¹#‡ M Ú~Þ{ƒR**ÉÏP ôµ0­Odï”ö_fÙÑ$ÖP–iôŒ '!L&Øà˜ˆì¯@3á~Wòâ­-¥|)+(h”›«2S¾ÿ À‹ z“¡æ w¥L§•éI¶Òr¥Çož÷±¡“ …ØfáÿFáëJsèôõO5Å»3#n­Ê#ØÔ"uIŽÞÑs׃2 f\“TÜŸXØ7¶fÎ3|F«6µG“¥`~fõ¨’nଜÒñ8h7óXš1\ûÙ¤–'MþìбC•Õqûâä{Š'…8—¾L¡.ÛàÀëx¾üv1Z¨ö¬õ?ý±Óõ›ï騘„HG€w+l$å¼ûH LêKµ êž à[£ZÐ_võ‹Éµ~–¯Ûrêü2„V„ð¼ãJ0;Ï™7™ -½¥'%jâ:¡ƒAiX•2&¬b„0!—þOÿð$ÐO-‚ OF-N¦xz²HC8õÖ…rlšš’ÐÙàXŒëÃAÊfUc#ÄíÝ$@H RY¡¶÷ ÉZêÝÇ-Kå6æVM0ïõ’°iv/’K ÚhC°U 6qÛ› $G/&&nñøaäÚ–(VïÄé‰Ç-GX"sL2Î}~¸,ѸéÚ@ÒÎ&´véÇë)6G–¸hø³%".T[Ú’òÃÈJO¹ùw¦~å†HQR¹÷À}‚ŒáÉ·í™ûDŸ½”‘ûöþk$ÖfÞc£rc—QtRNA“Ðò|íI¯‡jÄóù–~õëÝþêÇÉ(üò¨%×ÿÓy·Fóå››Ùto´9ÍÆ[ÍM§tš[]œ«Ýö§:Þ&S=<¥§¿õ8B÷ÊÚ;(l¨Å‘ ›9{÷5N­µdÙÆÕÕýæ'ÉM>ù°€ó<ÒæÀZÅ„¦Y7o¦ÃäÂKpî ÷};•RmJÒZô¸þA¦|%± -Ä…„½8U¾½lÑ -éP°'Ž“Ùkj™ó0|ñÖQ°úùûK79ömc>v©Ó4"È]~êLçõým\ *—g‹|¨³€]Ò"½UƸ‰sô!Wï·qtËÞˆ#ø6¾/\úZXˆ²EÌöÁ ^0¯úãÐéœ×¡¼Þ5‚Ò£ÓU46”=ÞvJä¸2E¾¨T0õX·#d8!yÊc“õè±Ü„üWƒÉ'FÆõÉ[Á€¨–¯P“ôg–j¢Ëh_ÿ7çã3‰—bMÔGcL]âds`jÍm½Ï”ÑYjôP]ÞàÙdߟ_«ès½ö#ó :|@¦%[0>¹©SnËüò’õq˜íÃ6ahZIÑ R[ýÂüM划”ð×|}A¤[¤øä6QBfÈ9¾0Oæ„:ÒÖ„8w€VW[IJuCeKðÝÝ -s-T¯}\8<°f/œÈbÙî+'.ÔB>´»þßí*Ëp 6œ™la*êóDqbù â9whŠÃ®­\W÷<¸õE#)k&¶O¿’lh{z¥÷ì$r­˜» C‚å|ëœî^×ÓI¬… -C·ÓÈÙ‰ˆ»QzÅÌxÄ4Ï1õO.%fËQžaý¢½ö?çâ¿òu Œ)’>ê‘)vâmP6^¯…ž {éÛF­Â&ð¯7ïvhÄž -Æ‚ˆªv_x¡Òdl~PÛuqA¢hæJÁ õêÕj´®Ó_ˆn$ït]WÆ`lTö>ÙøT|‰öÉë·pBCÞ´ÃøQòª‡­ªƒ”"¥XÑÊl—"™Hib:”ªÍÆØëëÃNø,«x{ó_šávÙo&D¦ÏãúÎ>ÿ_]ú’1WŒúWuÞ­'T˜(zÅŒs&Êåà¼öáG ðH¤vy­½Zoî÷œßBDt'«ÏJeW)ŠÊ·Ú_ŸŒ3r]ur±…Z„·–*ºÀU´îqg.ø;x¾Â¶Â,Î-hF69šFÉ×ìÿûsž/ðDvj…µO>¡6Bq: 'ƨ?a¹Ó¼˜²›ïÇ£ËX# ÅÊÅÐùǃ^@? ÏŠqˆëÃz¡À÷u­ªfWºÒœ]Ï,¬,Ùüâ}dí$~®ç«­ÌeW—à]ê`Ô4û#"¾®œ—:?Å’ÅÀæ§.µ÷"A·3|’yðIçK£q–™žœ-LæKê!G2?Ù÷ÄIZ+ã¦=@ê¡+t#°1éžÿªÀM†‚Ž\ù¿žßCi)/ -Y¯„…®¿ºóxéµ(ýQÞ¥‚­@Ž|±¬í ƒ÷ÂèÊ|K¤â\Äm|·å‰Vd§µ\ÐÚ½ÜoßÅâ)·À!œ“…\äûpÖCv ª ৳¯¶Xª<“ć?äq·CƒmÑa |¹ E~ŽºÞ«|¾í^Ô0uáèËÙ晘~ qmjbè¥ÝöGk¸Ut§RÅU0›l›r-’J±Þðƒ^sâÝ™0ïAtôÀ˜ò‚PœK,y™ËÖ 4¢úùó†x¥œ(»®qH™ƒ‹¨DÌ0‹Å”¦L´w¾Rèù›,ó„C)æQFÕî_¦¤ÎÜ.Eúš89G’‘ů yÿä‰ÍªBÒ„™¯Ùf ¡ü¦t ^âá uF•X,ôNc1™Á†6ÞY$‚\$sH¶ìª6î‹Æ Úu—¬3͘DeÒ0¶NI7·æÃÛM)Lïß *#7ÈYE­6¸òø&À®FÚVÓݵJ9†Ž†ŽÎÉEÖ„“W¦Ñ–ÙÌO¹g³ÎR<•¨GxÜva¹æÉÔ;¨ZŽpmqÕøë/òõ¨N±µb`Œ -ªÈF½qG„ûëZÊ6Øã ö@U*˜y>„´õV‚im­»Hx#²àæ‡ß8ä•]Sðû8CHž‚o~ íQÒ£ëÊõdtÁ«'Ü rq÷æ;7™®+݇D¦0JÄFܲ‚yEq¨°XàLqøx‘>|œaìyÉeF-Sð -üÓ´ïZ·M[å¡ÿsygt¹½BœwP]S„?gcqõŠ_/jèÁd!¯ó¤UüAO J±˜´©÷²u4ºÞ®vöPn剛BQ›Ôo‘ö­-õ(¼—6Wk©¬-/èâ´%(ºDŠUë¥$ùŸ6{ƒ÷½§¯¸Å1ÕJyXEG·šä4¿šõ 38!E>HA¹¥v¾6‡¸czI<ý1‡—É16k8¯w¹¿dÑ( e½¥%XŒn®?n½ºÈÇ£• ?¯|@¥Õ—Ùe€½uý®SÍŒbê|ö1ìó¦CÞ=«à!,·gÌŒW§EÜV`6*?s•„'~¡«ûa±Qs•ÅåYJXNd¤=þÇñ`ˆeG÷ -‰-ì5œ»¥Š²›[ŽVÁ6c*v—$nÇš‚!²ú:*ü8õ_ØQ.2zo¸ç(î.Ÿä:oyBE`ñÒ¹÷hsêé¾R«ÿLÿ±\ÆÇI… žÑ’³9’lÙ(ø¯væ˜)²üéˆÆa<6К¹D7 âOð¤H»¥Ž ´Ç¶;% eCÿ¸ BÄ€ý±V“ôÄ—%ÉÇJºŒŠÁTxŽÔ¢-³m›OÛ“ÍJ?©‹‡¹ÕBP^] ™:7M‚#Ä ä;â-¼üB\êœ!*8tÝúõ¡¬_O:€ÃBi¦õ׃<0â[µH¾y/}I©AtÆžÙ ¨¸O“F4–kpÐF\.I©ª¦$YàÁx |´y¢¿ÕCr‡!«¸•¼ÜX¹kÆÜ¢<90÷-jš.aq;Ãò´æe/uéüTî$`ÚàqÉhàœpnWyÒ`—E ŸÎe½ýO[ØFb[l¤8wòþicr„ïÉs¯f¬‚é\y´à©I܈ÙX¼õ-b ¸ÓBW’éÆ8ŠB£yŸ1ÒšK¯‚`é¨3ÉSÈò.Q;ë”01Xxæûf1›n˜Ò«¤Mu‡’͸`q¾bãÝíÍRpˆœÐ¯~ÁÒJ²¶kî&sá·GˆP9\x “[ÔG‰Š =#ºsöb¾»û/Eí`‰eÙçt2½Åß_QmÝ£S!ø ’fWé¡a2ïb•>ÕœÚ,-ÃŒ'Zg^%xχ -DÞ}sæy®aæ¼1³¿—ZçdŽßOÛ=aܺˆ-H›.F›ôãé:Ê -ƒt~Ú¥YÕ’ñËÒ'xµ¢™_C(«Úaçw+€òø_¨::>¶!µ—·‡Ò†ÉüüYM~Y|£¡•×›¬ƒ8û´ŠŒcÙ³ºázK?D¶ÍcVžÌ.þ¥µô5PAèÛc}¼è#á?HÐw2¹‘A/CÞs#ä­øb¨EIÒÖó0_A–å:ëîë=ë‰P°+Ïü*´²p±–›ÅÕ¦œêþU:–èëÏ/Ê¡”[Å%kwN)‡¬õ¸þ €QÓêpW›,¦GbD¾h!Ò -š¯ÎÙ)ส„^Lj&óšêè°EUõÖê?zIÔ×G m)ñ¢ÆK¡b-~ßüb,šP›s¿”we„q`…®È}O=KÕ¸7§%9R?.?N/M¡×_”æ‹6ÎIJúÐávˆÓž{ÎG« p†ü‚0ô0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark - -endstream -endobj -1 0 obj -<< -/Creator( TeX output 2005.12.20:1950) -/Producer(dvipdfm 0.13.2c, Copyright \251 1998, by Mark A. Wicks) -/CreationDate(D:20051220195101+01'00') ->> -endobj -5 0 obj -<< -/Type/Page -/Resources 6 0 R -/Contents[34 0 R 4 0 R 35 0 R 36 0 R] -/Parent 3 0 R ->> -endobj -3 0 obj -<< -/Type/Pages -/Count 1 -/Kids[5 0 R] -/MediaBox[0 0 595 842] ->> -endobj -34 0 obj -<< -/Length 1 ->> -stream - -endstream -endobj -36 0 obj -<< -/Length 1 ->> -stream - -endstream -endobj -4 0 obj -<< -/Length 33 ->> -stream -1.00028 0 0 1.00028 72 769.82 cm -endstream -endobj -38 0 obj -<< ->> -endobj -39 0 obj -null -endobj -40 0 obj -<< ->> -endobj -2 0 obj -<< -/Type/Catalog -/Pages 3 0 R -/Outlines 38 0 R -/Threads 39 0 R -/Names 40 0 R ->> -endobj -xref -0 41 -0000000000 65535 f -0000260896 00000 n -0000261486 00000 n -0000261161 00000 n -0000261339 00000 n -0000261060 00000 n -0000014315 00000 n -0000014556 00000 n -0000014376 00000 n -0000000009 00000 n -0000039099 00000 n -0000038912 00000 n -0000000930 00000 n -0000068762 00000 n -0000068581 00000 n -0000001709 00000 n -0000095905 00000 n -0000095719 00000 n -0000002603 00000 n -0000127134 00000 n -0000126947 00000 n -0000003580 00000 n -0000154338 00000 n -0000154155 00000 n -0000004555 00000 n -0000181017 00000 n -0000180836 00000 n -0000005468 00000 n -0000206008 00000 n -0000205830 00000 n -0000006444 00000 n -0000229716 00000 n -0000229528 00000 n -0000007163 00000 n -0000261239 00000 n -0000008120 00000 n -0000261289 00000 n -0000014195 00000 n -0000261421 00000 n -0000261443 00000 n -0000261464 00000 n -trailer -<< -/Size 41 -/Root 2 0 R -/Info 1 0 R ->> -startxref -261581 -%%EOF diff --git a/notizen/pl/Packages b/notizen/pl/Packages deleted file mode 100755 index b5b873c3..00000000 --- a/notizen/pl/Packages +++ /dev/null @@ -1,3 +0,0 @@ -JavaParser.jay: -- methodinvocation: name wird im Moment als InstVar interpretiert. - es sollte aber eigentlich über primary und fieldaccess geschehen. \ No newline at end of file diff --git a/notizen/pl/xxx b/notizen/pl/xxx deleted file mode 100755 index a55d0822..00000000 --- a/notizen/pl/xxx +++ /dev/null @@ -1,77 +0,0 @@ -Set { -Triple ( -Substitutions: -Set { -C --> Matrix, -D --> Matrix, -E --> Matrix, -F --> Matrix -} -ResultType: void -Assumptions: -Set { -m: A, -ret: Matrix, -mul: A --> B -} ), -Triple ( -Substitutions: -Set { -C --> Matrix, -D --> Matrix, -E --> Matrix, -F --> Menge< Menge< Integer > > -} -ResultType: void -Assumptions: -Set { -m: A, -ret: Matrix, -mul: A --> B -} ), -Triple ( -Substitutions: -Set { -C --> Menge< Menge< Integer > >, -D --> Matrix, -E --> Menge< Menge< Integer > >, -F --> Matrix -} -ResultType: void -Assumptions: -Set { -m: A, -ret: Menge< Menge< Integer > >, -mul: A --> B -} ), -Triple ( -Substitutions: -Set { -C --> Menge< Menge< Integer > >, -D --> Matrix, -E --> Menge< Menge< Integer > >, -F --> Menge< Menge< Integer > > -} -ResultType: void -Assumptions: -Set { -m: A, -ret: Menge< Menge< Integer > >, -mul: A --> B -} ), -Triple ( -Substitutions: -Set { -C --> Menge< Menge< Integer > >, -D --> Menge< Menge< Integer > >, -E --> Menge< Menge< Integer > >, -F --> Menge< Menge< Integer > > -} -ResultType: void -Assumptions: -Set { -m: A, -ret: Menge< Menge< Integer > >, -mul: A --> B -} ) -} \ No newline at end of file diff --git a/notizen/pl/yPluemicke.output b/notizen/pl/yPluemicke.output deleted file mode 100755 index 408e3f3f..00000000 --- a/notizen/pl/yPluemicke.output +++ /dev/null @@ -1,7548 +0,0 @@ - - - ------------------------------------------------------------------------------ -Info file generated by Happy Version 1.18.5 from JavaParser.y ------------------------------------------------------------------------------ - - -rule 87 is unused -rule 88 is unused -rule 132 is unused - -terminal BREAK is unused -terminal CASE is unused -terminal CATCH is unused -terminal CONTINUE is unused -terminal DEFAULT is unused -terminal DO is unused -terminal FINALLY is unused -terminal FOR is unused -terminal INSTANCEOF is unused -terminal SWITCH is unused -terminal THROW is unused -terminal THROWS is unused -terminal TRY is unused -terminal VOID is unused -terminal LOGICALAND is unused -terminal SHIFTLEFT is unused -terminal SHIFTRIGHT is unused -terminal UNSIGNEDSHIFTRIGHT is unused -terminal SIGNEDSHIFTRIGHT is unused -terminal PLUSEQUAL is unused -terminal MINUSEQUAL is unused -terminal TIMESEQUAL is unused -terminal DIVIDEEQUAL is unused -terminal ANDEQUAL is unused -terminal OREQUAL is unused -terminal XOREQUAL is unused -terminal MODULOEQUAL is unused -terminal SHIFTLEFTEQUAL is unused -terminal SIGNEDSHIFTRIGHTEQUAL is unused -terminal UNSIGNEDSHIFTRIGHTEQUAL is unused -terminal LSQBRACKET is unused -terminal RSQBRACKET is unused -terminal EXCLMARK is unused -terminal TILDE is unused -terminal QUESMARK is unused - ------------------------------------------------------------------------------ -Grammar ------------------------------------------------------------------------------ - %start_parse -> compilationunit (0) - %start_parselambda -> lambdaexpression (1) - %start_parseexpression -> expression (2) - %start_parseprimary -> primary (3) - %start_parseconditionalexpression -> conditionalexpression (4) - %start_parseconditionalorexpression -> conditionalorexpression (5) - %start_parsepostfixexpression -> postfixexpression (6) - compilationunit -> typedeclarations (7) - typedeclarations -> typedeclaration (8) - typedeclarations -> typedeclarations typedeclaration (9) - name -> qualifiedname (10) - name -> simplename (11) - typedeclaration -> classdeclaration (12) - qualifiedname -> name DOT IDENTIFIER (13) - simplename -> IDENTIFIER (14) - classdeclaration -> CLASS IDENTIFIER classpara classbody (15) - classdeclaration -> modifiers CLASS IDENTIFIER classpara classbody (16) - classdeclaration -> CLASS IDENTIFIER classpara super classbody (17) - classdeclaration -> modifiers CLASS IDENTIFIER classpara super classbody (18) - classbody -> LBRACKET RBRACKET (19) - classbody -> LBRACKET classbodydeclarations RBRACKET (20) - modifiers -> modifier (21) - modifiers -> modifiers modifier (22) - classpara -> (23) - classpara -> LESS classparalist GREATER (24) - classparalist -> simplename (25) - classparalist -> simplename COLON classparalist (26) - super -> EXTENDS classtype (27) - classbodydeclarations -> classbodydeclaration (28) - classbodydeclarations -> classbodydeclarations classbodydeclaration (29) - modifier -> PUBLIC (30) - modifier -> PROTECTED (31) - modifier -> PRIVATE (32) - modifier -> STATIC (33) - modifier -> ABSTRACT (34) - classtype -> classorinterfacetype (35) - classbodydeclaration -> classmemberdeclaration (36) - classorinterfacetype -> simplename (37) - classorinterfacetype -> simplename parameter (38) - parameter -> LESS paralist GREATER (39) - paralist -> classorinterfacetype (40) - paralist -> classorinterfacetype COLON paralist (41) - classmemberdeclaration -> fielddeclaration (42) - classmemberdeclaration -> fundeclaration (43) - fielddeclaration -> type variabledeclarators SEMICOLON (44) - fielddeclaration -> modifiers type variabledeclarators SEMICOLON (45) - fundeclaration -> funtype IDENTIFIER ASSIGN expression SEMICOLON (46) - fundeclaration -> type IDENTIFIER ASSIGN expression SEMICOLON (47) - fundeclaration -> IDENTIFIER ASSIGN expression SEMICOLON (48) - funtype -> SHARP funtypeortype LBRACE funtypelist RBRACE (49) - funtypeortype -> funtype (50) - funtypeortype -> type (51) - funtypelist -> funtypeortype (52) - funtypelist -> funtypelist COLON funtypeortype (53) - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs ARROW expression RBRACKET (54) - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs ARROW block RBRACKET (55) - lambdaexpressionlhs -> LBRACE RBRACE (56) - lambdaexpressionlhs -> formalparameter (57) - lambdaexpressionlhs -> LBRACE formalparameterlist RBRACE (58) - block -> LBRACKET RBRACKET (59) - block -> LBRACKET blockstatements RBRACKET (60) - type -> primitivetype (61) - type -> referencetype (62) - variabledeclarators -> variabledeclarator (63) - variabledeclarators -> variabledeclarators COLON variabledeclarator (64) - blockstatements -> blockstatement (65) - blockstatements -> blockstatements blockstatement (66) - formalparameterlist -> formalparameter (67) - formalparameterlist -> formalparameterlist COLON formalparameter (68) - primitivetype -> BOOLEAN (69) - primitivetype -> numerictype (70) - referencetype -> classorinterfacetype (71) - variabledeclarator -> variabledeclaratorid (72) - blockstatement -> localvariabledeclarationstatement (73) - blockstatement -> statement (74) - formalparameter -> funtype variabledeclaratorid (75) - formalparameter -> variabledeclaratorid (76) - argumentlist -> expression (77) - argumentlist -> argumentlist COLON expression (78) - numerictype -> integraltype (79) - variabledeclaratorid -> IDENTIFIER (80) - localvariabledeclarationstatement -> localvariabledeclaration SEMICOLON (81) - statement -> statementwithouttrailingsubstatement (82) - statement -> ifthenstatement (83) - statement -> ifthenelsestatement (84) - statement -> whilestatement (85) - expression -> assignmentexpression (86) - assignmentexpressionlist -> assignmentexpression (87) - assignmentexpressionlist -> assignmentexpression COLON assignmentexpressionlist (88) - integraltype -> INT (89) - integraltype -> CHAR (90) - localvariabledeclaration -> funtypeortype variabledeclarators (91) - statementwithouttrailingsubstatement -> block (92) - statementwithouttrailingsubstatement -> emptystatement (93) - statementwithouttrailingsubstatement -> expressionstatement (94) - statementwithouttrailingsubstatement -> returnstatement (95) - ifthenstatement -> IF LBRACE expression RBRACE statement (96) - ifthenelsestatement -> IF LBRACE expression RBRACE statementnoshortif ELSE statement (97) - whilestatement -> WHILE LBRACE expression RBRACE statement (98) - assignmentexpression -> conditionalexpression (99) - assignmentexpression -> assignment (100) - emptystatement -> SEMICOLON (101) - expressionstatement -> statementexpression SEMICOLON (102) - returnstatement -> RETURN SEMICOLON (103) - returnstatement -> RETURN expression SEMICOLON (104) - statementnoshortif -> statementwithouttrailingsubstatement (105) - statementnoshortif -> ifthenelsestatementnoshortif (106) - statementnoshortif -> whilestatementnoshortif (107) - conditionalexpression -> conditionalorexpression (108) - assignment -> lefthandside assignmentoperator assignmentexpression (109) - statementexpression -> assignment (110) - statementexpression -> preincrementexpression (111) - statementexpression -> predecrementexpression (112) - statementexpression -> postincrementexpression (113) - statementexpression -> postdecrementexpression (114) - statementexpression -> classinstancecreationexpression (115) - statementexpression -> evalstatement (116) - ifthenelsestatementnoshortif -> IF LBRACE expression RBRACE statementnoshortif ELSE statementnoshortif (117) - whilestatementnoshortif -> WHILE LBRACE expression RBRACE statementnoshortif (118) - conditionalorexpression -> conditionalandexpression (119) - conditionalorexpression -> conditionalorexpression LOGICALOR conditionalandexpression (120) - lefthandside -> name (121) - assignmentoperator -> ASSIGN (122) - preincrementexpression -> INCREMENT unaryexpression (123) - predecrementexpression -> DECREMENT unaryexpression (124) - postincrementexpression -> postfixexpression INCREMENT (125) - postdecrementexpression -> postfixexpression DECREMENT (126) - classinstancecreationexpression -> NEW classtype LBRACE RBRACE (127) - classinstancecreationexpression -> NEW classtype LBRACE argumentlist RBRACE (128) - conditionalandexpression -> inclusiveorexpression (129) - fieldaccess -> primary DOT IDENTIFIER (130) - fieldaccess -> SUPER DOT IDENTIFIER (131) - outerclass -> primary DOT THIS (132) - unaryexpression -> preincrementexpression (133) - unaryexpression -> predecrementexpression (134) - unaryexpression -> PLUS unaryexpression (135) - unaryexpression -> MINUS unaryexpression (136) - unaryexpression -> unaryexpressionnotplusminus (137) - evalexpression -> postfixexpression (138) - evalexpression -> postfixexpression LBRACE RBRACE (139) - evalexpression -> postfixexpression postfixexpression (140) - evalexpression -> postfixexpression LBRACE expressiontupel COLON expression RBRACE (141) - evalstatement -> postfixexpression LBRACE RBRACE (142) - evalstatement -> postfixexpression LBRACE expressiontupel RBRACE (143) - expressiontupel -> expressiontupel COLON expression (144) - expressiontupel -> expression (145) - postfixexpression -> primaryandname (146) - postfixexpression -> postincrementexpression (147) - postfixexpression -> postdecrementexpression (148) - primaryandname -> primary (149) - primaryandname -> name (150) - primaryandname -> name DOT THIS (151) - primaryandname -> funtype DOT THIS (152) - primary -> primarynonewarray (153) - inclusiveorexpression -> exclusiveorexpression (154) - inclusiveorexpression -> inclusiveorexpression OR exclusiveorexpression (155) - primarynonewarray -> literal (156) - primarynonewarray -> THIS (157) - primarynonewarray -> LBRACE expression RBRACE (158) - primarynonewarray -> classinstancecreationexpression (159) - primarynonewarray -> fieldaccess (160) - primarynonewarray -> lambdaexpression (161) - unaryexpressionnotplusminus -> evalexpression (162) - exclusiveorexpression -> andexpression (163) - exclusiveorexpression -> exclusiveorexpression XOR andexpression (164) - literal -> INTLITERAL (165) - literal -> BOOLLITERAL (166) - literal -> CHARLITERAL (167) - literal -> STRINGLITERAL (168) - literal -> JNULL (169) - andexpression -> equalityexpression (170) - andexpression -> andexpression AND equalityexpression (171) - equalityexpression -> relationalexpression (172) - equalityexpression -> equalityexpression EQUAL relationalexpression (173) - equalityexpression -> equalityexpression NOTEQUAL relationalexpression (174) - relationalexpression -> shiftexpression (175) - relationalexpression -> relationalexpression LESS shiftexpression (176) - relationalexpression -> relationalexpression GREATER shiftexpression (177) - relationalexpression -> relationalexpression LESSEQUAL shiftexpression (178) - relationalexpression -> relationalexpression GREATEREQUAL shiftexpression (179) - shiftexpression -> additiveexpression (180) - additiveexpression -> multiplicativeexpression (181) - additiveexpression -> additiveexpression PLUS multiplicativeexpression (182) - additiveexpression -> additiveexpression MINUS multiplicativeexpression (183) - multiplicativeexpression -> unaryexpression (184) - multiplicativeexpression -> multiplicativeexpression MUL unaryexpression (185) - multiplicativeexpression -> multiplicativeexpression DIV unaryexpression (186) - multiplicativeexpression -> multiplicativeexpression MOD unaryexpression (187) - ------------------------------------------------------------------------------ -Terminals ------------------------------------------------------------------------------ - ABSTRACT { ABSTRACT } - BOOLEAN { BOOLEAN } - BREAK { BREAK } - CASE { CASE } - CATCH { CATCH } - CHAR { CHAR } - CLASS { CLASS } - CONTINUE { CONTINUE } - DEFAULT { DEFAULT } - DO { DO } - ELSE { ELSE } - EXTENDS { EXTENDS } - FINALLY { FINALLY } - FOR { FOR } - IF { IF } - INSTANCEOF { INSTANCEOF } - INT { INT } - NEW { NEW } - PRIVATE { PRIVATE } - PROTECTED { PROTECTED } - PUBLIC { PUBLIC } - RETURN { RETURN } - STATIC { STATIC } - SUPER { SUPER } - SWITCH { SWITCH } - THIS { THIS } - THROW { THROW } - THROWS { THROWS } - TRY { TRY } - VOID { VOID } - WHILE { WHILE } - INTLITERAL { INTLITERAL $$ } - BOOLLITERAL { BOOLLITERAL $$ } - JNULL { JNULL } - CHARLITERAL { CHARLITERAL $$ } - STRINGLITERAL { STRINGLITERAL $$ } - IDENTIFIER { IDENTIFIER $$ } - EQUAL { EQUAL } - LESSEQUAL { LESSEQUAL } - GREATEREQUAL { GREATEREQUAL } - NOTEQUAL { NOTEQUAL } - LOGICALOR { LOGICALOR } - LOGICALAND { LOGICALAND } - INCREMENT { INCREMENT } - DECREMENT { DECREMENT } - SHIFTLEFT { SHIFTLEFT } - SHIFTRIGHT { SHIFTRIGHT } - UNSIGNEDSHIFTRIGHT{ UNSIGNEDSHIFTRIGHT } - SIGNEDSHIFTRIGHT{ SIGNEDSHIFTRIGHT } - PLUSEQUAL { PLUSEQUAL } - MINUSEQUAL { MINUSEQUAL } - TIMESEQUAL { TIMESEQUAL } - DIVIDEEQUAL { DIVIDEEQUAL } - ANDEQUAL { ANDEQUAL } - OREQUAL { OREQUAL } - XOREQUAL { XOREQUAL } - MODULOEQUAL { MODULOEQUAL } - SHIFTLEFTEQUAL { SHIFTLEFTEQUAL } - SIGNEDSHIFTRIGHTEQUAL{ SIGNEDSHIFTRIGHTEQUAL } - UNSIGNEDSHIFTRIGHTEQUAL{ UNSIGNEDSHIFTRIGHTEQUAL } - LBRACE { LBRACE } - RBRACE { RBRACE } - LBRACKET { LBRACKET } - RBRACKET { RBRACKET } - LSQBRACKET { LSQBRACKET } - RSQBRACKET { RSQBRACKET } - SEMICOLON { SEMICOLON } - DOT { DOT } - ASSIGN { ASSIGN } - LESS { LESS } - GREATER { GREATER } - EXCLMARK { EXCLMARK } - TILDE { TILDE } - QUESMARK { QUESMARK } - COLON { COLON } - PLUS { PLUS } - MINUS { MINUS } - MUL { MUL } - DIV { DIV } - MOD { MOD } - AND { AND } - OR { OR } - XOR { XOR } - SHARP { SHARP } - ARROW { ARROW } - ------------------------------------------------------------------------------ -Non-terminals ------------------------------------------------------------------------------ - %start_parse rule 0 - %start_parselambda rule 1 - %start_parseexpression rule 2 - %start_parseprimary rule 3 - %start_parseconditionalexpression rule 4 - %start_parseconditionalorexpression rule 5 - %start_parsepostfixexpression rule 6 - compilationunit rule 7 - typedeclarations rules 8, 9 - name rules 10, 11 - typedeclaration rule 12 - qualifiedname rule 13 - simplename rule 14 - classdeclaration rules 15, 16, 17, 18 - classbody rules 19, 20 - modifiers rules 21, 22 - classpara rules 23, 24 - classparalist rules 25, 26 - super rule 27 - classbodydeclarations rules 28, 29 - modifier rules 30, 31, 32, 33, 34 - classtype rule 35 - classbodydeclaration rule 36 - classorinterfacetype rules 37, 38 - parameter rule 39 - paralist rules 40, 41 - classmemberdeclaration rules 42, 43 - fielddeclaration rules 44, 45 - fundeclaration rules 46, 47, 48 - funtype rule 49 - funtypeortype rules 50, 51 - funtypelist rules 52, 53 - lambdaexpression rules 54, 55 - lambdaexpressionlhs rules 56, 57, 58 - block rules 59, 60 - type rules 61, 62 - variabledeclarators rules 63, 64 - blockstatements rules 65, 66 - formalparameterlist rules 67, 68 - primitivetype rules 69, 70 - referencetype rule 71 - variabledeclarator rule 72 - blockstatement rules 73, 74 - formalparameter rules 75, 76 - argumentlist rules 77, 78 - numerictype rule 79 - variabledeclaratorid rule 80 - localvariabledeclarationstatement rule 81 - statement rules 82, 83, 84, 85 - expression rule 86 - assignmentexpressionlist rules 87, 88 - integraltype rules 89, 90 - localvariabledeclaration rule 91 - statementwithouttrailingsubstatement rules 92, 93, 94, 95 - ifthenstatement rule 96 - ifthenelsestatement rule 97 - whilestatement rule 98 - assignmentexpression rules 99, 100 - emptystatement rule 101 - expressionstatement rule 102 - returnstatement rules 103, 104 - statementnoshortif rules 105, 106, 107 - conditionalexpression rule 108 - assignment rule 109 - statementexpression rules 110, 111, 112, 113, 114, 115, 116 - ifthenelsestatementnoshortif rule 117 - whilestatementnoshortif rule 118 - conditionalorexpression rules 119, 120 - lefthandside rule 121 - assignmentoperator rule 122 - preincrementexpression rule 123 - predecrementexpression rule 124 - postincrementexpression rule 125 - postdecrementexpression rule 126 - classinstancecreationexpression rules 127, 128 - conditionalandexpression rule 129 - fieldaccess rules 130, 131 - outerclass rule 132 - unaryexpression rules 133, 134, 135, 136, 137 - evalexpression rules 138, 139, 140, 141 - evalstatement rules 142, 143 - expressiontupel rules 144, 145 - postfixexpression rules 146, 147, 148 - primaryandname rules 149, 150, 151, 152 - primary rule 153 - inclusiveorexpression rules 154, 155 - primarynonewarray rules 156, 157, 158, 159, 160, 161 - unaryexpressionnotplusminus rule 162 - exclusiveorexpression rules 163, 164 - literal rules 165, 166, 167, 168, 169 - andexpression rules 170, 171 - equalityexpression rules 172, 173, 174 - relationalexpression rules 175, 176, 177, 178, 179 - shiftexpression rule 180 - additiveexpression rules 181, 182, 183 - multiplicativeexpression rules 184, 185, 186, 187 - ------------------------------------------------------------------------------ -States ------------------------------------------------------------------------------ -State 0 - - - ABSTRACT shift, and enter state 13 - CLASS shift, and enter state 14 - PRIVATE shift, and enter state 15 - PROTECTED shift, and enter state 16 - PUBLIC shift, and enter state 17 - STATIC shift, and enter state 18 - - compilationunitgoto state 75 - typedeclarationsgoto state 8 - typedeclarationgoto state 9 - classdeclarationgoto state 10 - modifiers goto state 11 - modifier goto state 12 - -State 1 - - - SHARP shift, and enter state 67 - - lambdaexpressiongoto state 74 - -State 2 - - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 69 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 3 - - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - LBRACE shift, and enter state 42 - SHARP shift, and enter state 67 - - lambdaexpressiongoto state 23 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - primary goto state 66 - primarynonewarraygoto state 31 - literal goto state 32 - -State 4 - - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - conditionalexpressiongoto state 64 - conditionalorexpressiongoto state 65 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 5 - - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - conditionalorexpressiongoto state 44 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 6 - - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - LBRACE shift, and enter state 42 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - postfixexpressiongoto state 28 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 7 - - - ABSTRACT shift, and enter state 13 - CLASS shift, and enter state 14 - PRIVATE shift, and enter state 15 - PROTECTED shift, and enter state 16 - PUBLIC shift, and enter state 17 - STATIC shift, and enter state 18 - - typedeclarationsgoto state 8 - typedeclarationgoto state 9 - classdeclarationgoto state 10 - modifiers goto state 11 - modifier goto state 12 - -State 8 - - compilationunit -> typedeclarations . (rule 7) - typedeclarations -> typedeclarations . typedeclaration (rule 9) - - ABSTRACT shift, and enter state 13 - CLASS shift, and enter state 14 - PRIVATE shift, and enter state 15 - PROTECTED shift, and enter state 16 - PUBLIC shift, and enter state 17 - STATIC shift, and enter state 18 - %eof reduce using rule 7 - - typedeclarationgoto state 125 - classdeclarationgoto state 10 - modifiers goto state 11 - modifier goto state 12 - -State 9 - - typedeclarations -> typedeclaration . (rule 8) - - ABSTRACT reduce using rule 8 - CLASS reduce using rule 8 - PRIVATE reduce using rule 8 - PROTECTED reduce using rule 8 - PUBLIC reduce using rule 8 - STATIC reduce using rule 8 - %eof reduce using rule 8 - - -State 10 - - typedeclaration -> classdeclaration . (rule 12) - - ABSTRACT reduce using rule 12 - CLASS reduce using rule 12 - PRIVATE reduce using rule 12 - PROTECTED reduce using rule 12 - PUBLIC reduce using rule 12 - STATIC reduce using rule 12 - %eof reduce using rule 12 - - -State 11 - - classdeclaration -> modifiers . CLASS IDENTIFIER classpara classbody (rule 16) - classdeclaration -> modifiers . CLASS IDENTIFIER classpara super classbody (rule 18) - modifiers -> modifiers . modifier (rule 22) - - ABSTRACT shift, and enter state 13 - CLASS shift, and enter state 124 - PRIVATE shift, and enter state 15 - PROTECTED shift, and enter state 16 - PUBLIC shift, and enter state 17 - STATIC shift, and enter state 18 - - modifier goto state 123 - -State 12 - - modifiers -> modifier . (rule 21) - - ABSTRACT reduce using rule 21 - BOOLEAN reduce using rule 21 - CHAR reduce using rule 21 - CLASS reduce using rule 21 - INT reduce using rule 21 - PRIVATE reduce using rule 21 - PROTECTED reduce using rule 21 - PUBLIC reduce using rule 21 - STATIC reduce using rule 21 - IDENTIFIER reduce using rule 21 - - -State 13 - - modifier -> ABSTRACT . (rule 34) - - ABSTRACT reduce using rule 34 - BOOLEAN reduce using rule 34 - CHAR reduce using rule 34 - CLASS reduce using rule 34 - INT reduce using rule 34 - PRIVATE reduce using rule 34 - PROTECTED reduce using rule 34 - PUBLIC reduce using rule 34 - STATIC reduce using rule 34 - IDENTIFIER reduce using rule 34 - - -State 14 - - classdeclaration -> CLASS . IDENTIFIER classpara classbody (rule 15) - classdeclaration -> CLASS . IDENTIFIER classpara super classbody (rule 17) - - IDENTIFIER shift, and enter state 122 - - -State 15 - - modifier -> PRIVATE . (rule 32) - - ABSTRACT reduce using rule 32 - BOOLEAN reduce using rule 32 - CHAR reduce using rule 32 - CLASS reduce using rule 32 - INT reduce using rule 32 - PRIVATE reduce using rule 32 - PROTECTED reduce using rule 32 - PUBLIC reduce using rule 32 - STATIC reduce using rule 32 - IDENTIFIER reduce using rule 32 - - -State 16 - - modifier -> PROTECTED . (rule 31) - - ABSTRACT reduce using rule 31 - BOOLEAN reduce using rule 31 - CHAR reduce using rule 31 - CLASS reduce using rule 31 - INT reduce using rule 31 - PRIVATE reduce using rule 31 - PROTECTED reduce using rule 31 - PUBLIC reduce using rule 31 - STATIC reduce using rule 31 - IDENTIFIER reduce using rule 31 - - -State 17 - - modifier -> PUBLIC . (rule 30) - - ABSTRACT reduce using rule 30 - BOOLEAN reduce using rule 30 - CHAR reduce using rule 30 - CLASS reduce using rule 30 - INT reduce using rule 30 - PRIVATE reduce using rule 30 - PROTECTED reduce using rule 30 - PUBLIC reduce using rule 30 - STATIC reduce using rule 30 - IDENTIFIER reduce using rule 30 - - -State 18 - - modifier -> STATIC . (rule 33) - - ABSTRACT reduce using rule 33 - BOOLEAN reduce using rule 33 - CHAR reduce using rule 33 - CLASS reduce using rule 33 - INT reduce using rule 33 - PRIVATE reduce using rule 33 - PROTECTED reduce using rule 33 - PUBLIC reduce using rule 33 - STATIC reduce using rule 33 - IDENTIFIER reduce using rule 33 - - -State 19 - - qualifiedname -> name . DOT IDENTIFIER (rule 13) - primaryandname -> name . (rule 150) - primaryandname -> name . DOT THIS (rule 151) - - NEW reduce using rule 150 - SUPER reduce using rule 150 - THIS reduce using rule 150 - INTLITERAL reduce using rule 150 - BOOLLITERAL reduce using rule 150 - JNULL reduce using rule 150 - CHARLITERAL reduce using rule 150 - STRINGLITERAL reduce using rule 150 - IDENTIFIER reduce using rule 150 - EQUAL reduce using rule 150 - LESSEQUAL reduce using rule 150 - GREATEREQUAL reduce using rule 150 - NOTEQUAL reduce using rule 150 - LOGICALOR reduce using rule 150 - INCREMENT reduce using rule 150 - DECREMENT reduce using rule 150 - LBRACE reduce using rule 150 - RBRACE reduce using rule 150 - RBRACKET reduce using rule 150 - SEMICOLON reduce using rule 150 - DOT shift, and enter state 78 - LESS reduce using rule 150 - GREATER reduce using rule 150 - COLON reduce using rule 150 - PLUS reduce using rule 150 - MINUS reduce using rule 150 - MUL reduce using rule 150 - DIV reduce using rule 150 - MOD reduce using rule 150 - AND reduce using rule 150 - OR reduce using rule 150 - XOR reduce using rule 150 - SHARP reduce using rule 150 - %eof reduce using rule 150 - - -State 20 - - name -> qualifiedname . (rule 10) - - NEW reduce using rule 10 - SUPER reduce using rule 10 - THIS reduce using rule 10 - INTLITERAL reduce using rule 10 - BOOLLITERAL reduce using rule 10 - JNULL reduce using rule 10 - CHARLITERAL reduce using rule 10 - STRINGLITERAL reduce using rule 10 - IDENTIFIER reduce using rule 10 - EQUAL reduce using rule 10 - LESSEQUAL reduce using rule 10 - GREATEREQUAL reduce using rule 10 - NOTEQUAL reduce using rule 10 - LOGICALOR reduce using rule 10 - INCREMENT reduce using rule 10 - DECREMENT reduce using rule 10 - LBRACE reduce using rule 10 - RBRACE reduce using rule 10 - RBRACKET reduce using rule 10 - SEMICOLON reduce using rule 10 - DOT reduce using rule 10 - ASSIGN reduce using rule 10 - LESS reduce using rule 10 - GREATER reduce using rule 10 - COLON reduce using rule 10 - PLUS reduce using rule 10 - MINUS reduce using rule 10 - MUL reduce using rule 10 - DIV reduce using rule 10 - MOD reduce using rule 10 - AND reduce using rule 10 - OR reduce using rule 10 - XOR reduce using rule 10 - SHARP reduce using rule 10 - %eof reduce using rule 10 - - -State 21 - - name -> simplename . (rule 11) - - NEW reduce using rule 11 - SUPER reduce using rule 11 - THIS reduce using rule 11 - INTLITERAL reduce using rule 11 - BOOLLITERAL reduce using rule 11 - JNULL reduce using rule 11 - CHARLITERAL reduce using rule 11 - STRINGLITERAL reduce using rule 11 - IDENTIFIER reduce using rule 11 - EQUAL reduce using rule 11 - LESSEQUAL reduce using rule 11 - GREATEREQUAL reduce using rule 11 - NOTEQUAL reduce using rule 11 - LOGICALOR reduce using rule 11 - INCREMENT reduce using rule 11 - DECREMENT reduce using rule 11 - LBRACE reduce using rule 11 - RBRACE reduce using rule 11 - RBRACKET reduce using rule 11 - SEMICOLON reduce using rule 11 - DOT reduce using rule 11 - ASSIGN reduce using rule 11 - LESS reduce using rule 11 - GREATER reduce using rule 11 - COLON reduce using rule 11 - PLUS reduce using rule 11 - MINUS reduce using rule 11 - MUL reduce using rule 11 - DIV reduce using rule 11 - MOD reduce using rule 11 - AND reduce using rule 11 - OR reduce using rule 11 - XOR reduce using rule 11 - SHARP reduce using rule 11 - %eof reduce using rule 11 - - -State 22 - - primaryandname -> funtype . DOT THIS (rule 152) - - DOT shift, and enter state 121 - - -State 23 - - primarynonewarray -> lambdaexpression . (rule 161) - - NEW reduce using rule 161 - SUPER reduce using rule 161 - THIS reduce using rule 161 - INTLITERAL reduce using rule 161 - BOOLLITERAL reduce using rule 161 - JNULL reduce using rule 161 - CHARLITERAL reduce using rule 161 - STRINGLITERAL reduce using rule 161 - IDENTIFIER reduce using rule 161 - EQUAL reduce using rule 161 - LESSEQUAL reduce using rule 161 - GREATEREQUAL reduce using rule 161 - NOTEQUAL reduce using rule 161 - LOGICALOR reduce using rule 161 - INCREMENT reduce using rule 161 - DECREMENT reduce using rule 161 - LBRACE reduce using rule 161 - RBRACE reduce using rule 161 - RBRACKET reduce using rule 161 - SEMICOLON reduce using rule 161 - DOT reduce using rule 161 - LESS reduce using rule 161 - GREATER reduce using rule 161 - COLON reduce using rule 161 - PLUS reduce using rule 161 - MINUS reduce using rule 161 - MUL reduce using rule 161 - DIV reduce using rule 161 - MOD reduce using rule 161 - AND reduce using rule 161 - OR reduce using rule 161 - XOR reduce using rule 161 - SHARP reduce using rule 161 - %eof reduce using rule 161 - - -State 24 - - postfixexpression -> postincrementexpression . (rule 147) - - NEW reduce using rule 147 - SUPER reduce using rule 147 - THIS reduce using rule 147 - INTLITERAL reduce using rule 147 - BOOLLITERAL reduce using rule 147 - JNULL reduce using rule 147 - CHARLITERAL reduce using rule 147 - STRINGLITERAL reduce using rule 147 - IDENTIFIER reduce using rule 147 - EQUAL reduce using rule 147 - LESSEQUAL reduce using rule 147 - GREATEREQUAL reduce using rule 147 - NOTEQUAL reduce using rule 147 - LOGICALOR reduce using rule 147 - INCREMENT reduce using rule 147 - DECREMENT reduce using rule 147 - LBRACE reduce using rule 147 - RBRACE reduce using rule 147 - RBRACKET reduce using rule 147 - SEMICOLON reduce using rule 147 - LESS reduce using rule 147 - GREATER reduce using rule 147 - COLON reduce using rule 147 - PLUS reduce using rule 147 - MINUS reduce using rule 147 - MUL reduce using rule 147 - DIV reduce using rule 147 - MOD reduce using rule 147 - AND reduce using rule 147 - OR reduce using rule 147 - XOR reduce using rule 147 - SHARP reduce using rule 147 - %eof reduce using rule 147 - - -State 25 - - postfixexpression -> postdecrementexpression . (rule 148) - - NEW reduce using rule 148 - SUPER reduce using rule 148 - THIS reduce using rule 148 - INTLITERAL reduce using rule 148 - BOOLLITERAL reduce using rule 148 - JNULL reduce using rule 148 - CHARLITERAL reduce using rule 148 - STRINGLITERAL reduce using rule 148 - IDENTIFIER reduce using rule 148 - EQUAL reduce using rule 148 - LESSEQUAL reduce using rule 148 - GREATEREQUAL reduce using rule 148 - NOTEQUAL reduce using rule 148 - LOGICALOR reduce using rule 148 - INCREMENT reduce using rule 148 - DECREMENT reduce using rule 148 - LBRACE reduce using rule 148 - RBRACE reduce using rule 148 - RBRACKET reduce using rule 148 - SEMICOLON reduce using rule 148 - LESS reduce using rule 148 - GREATER reduce using rule 148 - COLON reduce using rule 148 - PLUS reduce using rule 148 - MINUS reduce using rule 148 - MUL reduce using rule 148 - DIV reduce using rule 148 - MOD reduce using rule 148 - AND reduce using rule 148 - OR reduce using rule 148 - XOR reduce using rule 148 - SHARP reduce using rule 148 - %eof reduce using rule 148 - - -State 26 - - primarynonewarray -> classinstancecreationexpression . (rule 159) - - NEW reduce using rule 159 - SUPER reduce using rule 159 - THIS reduce using rule 159 - INTLITERAL reduce using rule 159 - BOOLLITERAL reduce using rule 159 - JNULL reduce using rule 159 - CHARLITERAL reduce using rule 159 - STRINGLITERAL reduce using rule 159 - IDENTIFIER reduce using rule 159 - EQUAL reduce using rule 159 - LESSEQUAL reduce using rule 159 - GREATEREQUAL reduce using rule 159 - NOTEQUAL reduce using rule 159 - LOGICALOR reduce using rule 159 - INCREMENT reduce using rule 159 - DECREMENT reduce using rule 159 - LBRACE reduce using rule 159 - RBRACE reduce using rule 159 - RBRACKET reduce using rule 159 - SEMICOLON reduce using rule 159 - DOT reduce using rule 159 - LESS reduce using rule 159 - GREATER reduce using rule 159 - COLON reduce using rule 159 - PLUS reduce using rule 159 - MINUS reduce using rule 159 - MUL reduce using rule 159 - DIV reduce using rule 159 - MOD reduce using rule 159 - AND reduce using rule 159 - OR reduce using rule 159 - XOR reduce using rule 159 - SHARP reduce using rule 159 - %eof reduce using rule 159 - - -State 27 - - primarynonewarray -> fieldaccess . (rule 160) - - NEW reduce using rule 160 - SUPER reduce using rule 160 - THIS reduce using rule 160 - INTLITERAL reduce using rule 160 - BOOLLITERAL reduce using rule 160 - JNULL reduce using rule 160 - CHARLITERAL reduce using rule 160 - STRINGLITERAL reduce using rule 160 - IDENTIFIER reduce using rule 160 - EQUAL reduce using rule 160 - LESSEQUAL reduce using rule 160 - GREATEREQUAL reduce using rule 160 - NOTEQUAL reduce using rule 160 - LOGICALOR reduce using rule 160 - INCREMENT reduce using rule 160 - DECREMENT reduce using rule 160 - LBRACE reduce using rule 160 - RBRACE reduce using rule 160 - RBRACKET reduce using rule 160 - SEMICOLON reduce using rule 160 - DOT reduce using rule 160 - LESS reduce using rule 160 - GREATER reduce using rule 160 - COLON reduce using rule 160 - PLUS reduce using rule 160 - MINUS reduce using rule 160 - MUL reduce using rule 160 - DIV reduce using rule 160 - MOD reduce using rule 160 - AND reduce using rule 160 - OR reduce using rule 160 - XOR reduce using rule 160 - SHARP reduce using rule 160 - %eof reduce using rule 160 - - -State 28 - - %start_parsepostfixexpression -> postfixexpression . (rule 6) - postincrementexpression -> postfixexpression . INCREMENT (rule 125) - postdecrementexpression -> postfixexpression . DECREMENT (rule 126) - - INCREMENT shift, and enter state 101 - DECREMENT shift, and enter state 102 - %eof accept - - -State 29 - - postfixexpression -> primaryandname . (rule 146) - - NEW reduce using rule 146 - SUPER reduce using rule 146 - THIS reduce using rule 146 - INTLITERAL reduce using rule 146 - BOOLLITERAL reduce using rule 146 - JNULL reduce using rule 146 - CHARLITERAL reduce using rule 146 - STRINGLITERAL reduce using rule 146 - IDENTIFIER reduce using rule 146 - EQUAL reduce using rule 146 - LESSEQUAL reduce using rule 146 - GREATEREQUAL reduce using rule 146 - NOTEQUAL reduce using rule 146 - LOGICALOR reduce using rule 146 - INCREMENT reduce using rule 146 - DECREMENT reduce using rule 146 - LBRACE reduce using rule 146 - RBRACE reduce using rule 146 - RBRACKET reduce using rule 146 - SEMICOLON reduce using rule 146 - LESS reduce using rule 146 - GREATER reduce using rule 146 - COLON reduce using rule 146 - PLUS reduce using rule 146 - MINUS reduce using rule 146 - MUL reduce using rule 146 - DIV reduce using rule 146 - MOD reduce using rule 146 - AND reduce using rule 146 - OR reduce using rule 146 - XOR reduce using rule 146 - SHARP reduce using rule 146 - %eof reduce using rule 146 - - -State 30 - - fieldaccess -> primary . DOT IDENTIFIER (rule 130) - primaryandname -> primary . (rule 149) - - NEW reduce using rule 149 - SUPER reduce using rule 149 - THIS reduce using rule 149 - INTLITERAL reduce using rule 149 - BOOLLITERAL reduce using rule 149 - JNULL reduce using rule 149 - CHARLITERAL reduce using rule 149 - STRINGLITERAL reduce using rule 149 - IDENTIFIER reduce using rule 149 - EQUAL reduce using rule 149 - LESSEQUAL reduce using rule 149 - GREATEREQUAL reduce using rule 149 - NOTEQUAL reduce using rule 149 - LOGICALOR reduce using rule 149 - INCREMENT reduce using rule 149 - DECREMENT reduce using rule 149 - LBRACE reduce using rule 149 - RBRACE reduce using rule 149 - RBRACKET reduce using rule 149 - SEMICOLON reduce using rule 149 - DOT shift, and enter state 80 - LESS reduce using rule 149 - GREATER reduce using rule 149 - COLON reduce using rule 149 - PLUS reduce using rule 149 - MINUS reduce using rule 149 - MUL reduce using rule 149 - DIV reduce using rule 149 - MOD reduce using rule 149 - AND reduce using rule 149 - OR reduce using rule 149 - XOR reduce using rule 149 - SHARP reduce using rule 149 - %eof reduce using rule 149 - - -State 31 - - primary -> primarynonewarray . (rule 153) - - NEW reduce using rule 153 - SUPER reduce using rule 153 - THIS reduce using rule 153 - INTLITERAL reduce using rule 153 - BOOLLITERAL reduce using rule 153 - JNULL reduce using rule 153 - CHARLITERAL reduce using rule 153 - STRINGLITERAL reduce using rule 153 - IDENTIFIER reduce using rule 153 - EQUAL reduce using rule 153 - LESSEQUAL reduce using rule 153 - GREATEREQUAL reduce using rule 153 - NOTEQUAL reduce using rule 153 - LOGICALOR reduce using rule 153 - INCREMENT reduce using rule 153 - DECREMENT reduce using rule 153 - LBRACE reduce using rule 153 - RBRACE reduce using rule 153 - RBRACKET reduce using rule 153 - SEMICOLON reduce using rule 153 - DOT reduce using rule 153 - LESS reduce using rule 153 - GREATER reduce using rule 153 - COLON reduce using rule 153 - PLUS reduce using rule 153 - MINUS reduce using rule 153 - MUL reduce using rule 153 - DIV reduce using rule 153 - MOD reduce using rule 153 - AND reduce using rule 153 - OR reduce using rule 153 - XOR reduce using rule 153 - SHARP reduce using rule 153 - %eof reduce using rule 153 - - -State 32 - - primarynonewarray -> literal . (rule 156) - - NEW reduce using rule 156 - SUPER reduce using rule 156 - THIS reduce using rule 156 - INTLITERAL reduce using rule 156 - BOOLLITERAL reduce using rule 156 - JNULL reduce using rule 156 - CHARLITERAL reduce using rule 156 - STRINGLITERAL reduce using rule 156 - IDENTIFIER reduce using rule 156 - EQUAL reduce using rule 156 - LESSEQUAL reduce using rule 156 - GREATEREQUAL reduce using rule 156 - NOTEQUAL reduce using rule 156 - LOGICALOR reduce using rule 156 - INCREMENT reduce using rule 156 - DECREMENT reduce using rule 156 - LBRACE reduce using rule 156 - RBRACE reduce using rule 156 - RBRACKET reduce using rule 156 - SEMICOLON reduce using rule 156 - DOT reduce using rule 156 - LESS reduce using rule 156 - GREATER reduce using rule 156 - COLON reduce using rule 156 - PLUS reduce using rule 156 - MINUS reduce using rule 156 - MUL reduce using rule 156 - DIV reduce using rule 156 - MOD reduce using rule 156 - AND reduce using rule 156 - OR reduce using rule 156 - XOR reduce using rule 156 - SHARP reduce using rule 156 - %eof reduce using rule 156 - - -State 33 - - classinstancecreationexpression -> NEW . classtype LBRACE RBRACE (rule 127) - classinstancecreationexpression -> NEW . classtype LBRACE argumentlist RBRACE (rule 128) - - IDENTIFIER shift, and enter state 41 - - simplename goto state 104 - classtype goto state 119 - classorinterfacetypegoto state 120 - -State 34 - - fieldaccess -> SUPER . DOT IDENTIFIER (rule 131) - - DOT shift, and enter state 118 - - -State 35 - - primarynonewarray -> THIS . (rule 157) - - NEW reduce using rule 157 - SUPER reduce using rule 157 - THIS reduce using rule 157 - INTLITERAL reduce using rule 157 - BOOLLITERAL reduce using rule 157 - JNULL reduce using rule 157 - CHARLITERAL reduce using rule 157 - STRINGLITERAL reduce using rule 157 - IDENTIFIER reduce using rule 157 - EQUAL reduce using rule 157 - LESSEQUAL reduce using rule 157 - GREATEREQUAL reduce using rule 157 - NOTEQUAL reduce using rule 157 - LOGICALOR reduce using rule 157 - INCREMENT reduce using rule 157 - DECREMENT reduce using rule 157 - LBRACE reduce using rule 157 - RBRACE reduce using rule 157 - RBRACKET reduce using rule 157 - SEMICOLON reduce using rule 157 - DOT reduce using rule 157 - LESS reduce using rule 157 - GREATER reduce using rule 157 - COLON reduce using rule 157 - PLUS reduce using rule 157 - MINUS reduce using rule 157 - MUL reduce using rule 157 - DIV reduce using rule 157 - MOD reduce using rule 157 - AND reduce using rule 157 - OR reduce using rule 157 - XOR reduce using rule 157 - SHARP reduce using rule 157 - %eof reduce using rule 157 - - -State 36 - - literal -> INTLITERAL . (rule 165) - - NEW reduce using rule 165 - SUPER reduce using rule 165 - THIS reduce using rule 165 - INTLITERAL reduce using rule 165 - BOOLLITERAL reduce using rule 165 - JNULL reduce using rule 165 - CHARLITERAL reduce using rule 165 - STRINGLITERAL reduce using rule 165 - IDENTIFIER reduce using rule 165 - EQUAL reduce using rule 165 - LESSEQUAL reduce using rule 165 - GREATEREQUAL reduce using rule 165 - NOTEQUAL reduce using rule 165 - LOGICALOR reduce using rule 165 - INCREMENT reduce using rule 165 - DECREMENT reduce using rule 165 - LBRACE reduce using rule 165 - RBRACE reduce using rule 165 - RBRACKET reduce using rule 165 - SEMICOLON reduce using rule 165 - DOT reduce using rule 165 - LESS reduce using rule 165 - GREATER reduce using rule 165 - COLON reduce using rule 165 - PLUS reduce using rule 165 - MINUS reduce using rule 165 - MUL reduce using rule 165 - DIV reduce using rule 165 - MOD reduce using rule 165 - AND reduce using rule 165 - OR reduce using rule 165 - XOR reduce using rule 165 - SHARP reduce using rule 165 - %eof reduce using rule 165 - - -State 37 - - literal -> BOOLLITERAL . (rule 166) - - NEW reduce using rule 166 - SUPER reduce using rule 166 - THIS reduce using rule 166 - INTLITERAL reduce using rule 166 - BOOLLITERAL reduce using rule 166 - JNULL reduce using rule 166 - CHARLITERAL reduce using rule 166 - STRINGLITERAL reduce using rule 166 - IDENTIFIER reduce using rule 166 - EQUAL reduce using rule 166 - LESSEQUAL reduce using rule 166 - GREATEREQUAL reduce using rule 166 - NOTEQUAL reduce using rule 166 - LOGICALOR reduce using rule 166 - INCREMENT reduce using rule 166 - DECREMENT reduce using rule 166 - LBRACE reduce using rule 166 - RBRACE reduce using rule 166 - RBRACKET reduce using rule 166 - SEMICOLON reduce using rule 166 - DOT reduce using rule 166 - LESS reduce using rule 166 - GREATER reduce using rule 166 - COLON reduce using rule 166 - PLUS reduce using rule 166 - MINUS reduce using rule 166 - MUL reduce using rule 166 - DIV reduce using rule 166 - MOD reduce using rule 166 - AND reduce using rule 166 - OR reduce using rule 166 - XOR reduce using rule 166 - SHARP reduce using rule 166 - %eof reduce using rule 166 - - -State 38 - - literal -> JNULL . (rule 169) - - NEW reduce using rule 169 - SUPER reduce using rule 169 - THIS reduce using rule 169 - INTLITERAL reduce using rule 169 - BOOLLITERAL reduce using rule 169 - JNULL reduce using rule 169 - CHARLITERAL reduce using rule 169 - STRINGLITERAL reduce using rule 169 - IDENTIFIER reduce using rule 169 - EQUAL reduce using rule 169 - LESSEQUAL reduce using rule 169 - GREATEREQUAL reduce using rule 169 - NOTEQUAL reduce using rule 169 - LOGICALOR reduce using rule 169 - INCREMENT reduce using rule 169 - DECREMENT reduce using rule 169 - LBRACE reduce using rule 169 - RBRACE reduce using rule 169 - RBRACKET reduce using rule 169 - SEMICOLON reduce using rule 169 - DOT reduce using rule 169 - LESS reduce using rule 169 - GREATER reduce using rule 169 - COLON reduce using rule 169 - PLUS reduce using rule 169 - MINUS reduce using rule 169 - MUL reduce using rule 169 - DIV reduce using rule 169 - MOD reduce using rule 169 - AND reduce using rule 169 - OR reduce using rule 169 - XOR reduce using rule 169 - SHARP reduce using rule 169 - %eof reduce using rule 169 - - -State 39 - - literal -> CHARLITERAL . (rule 167) - - NEW reduce using rule 167 - SUPER reduce using rule 167 - THIS reduce using rule 167 - INTLITERAL reduce using rule 167 - BOOLLITERAL reduce using rule 167 - JNULL reduce using rule 167 - CHARLITERAL reduce using rule 167 - STRINGLITERAL reduce using rule 167 - IDENTIFIER reduce using rule 167 - EQUAL reduce using rule 167 - LESSEQUAL reduce using rule 167 - GREATEREQUAL reduce using rule 167 - NOTEQUAL reduce using rule 167 - LOGICALOR reduce using rule 167 - INCREMENT reduce using rule 167 - DECREMENT reduce using rule 167 - LBRACE reduce using rule 167 - RBRACE reduce using rule 167 - RBRACKET reduce using rule 167 - SEMICOLON reduce using rule 167 - DOT reduce using rule 167 - LESS reduce using rule 167 - GREATER reduce using rule 167 - COLON reduce using rule 167 - PLUS reduce using rule 167 - MINUS reduce using rule 167 - MUL reduce using rule 167 - DIV reduce using rule 167 - MOD reduce using rule 167 - AND reduce using rule 167 - OR reduce using rule 167 - XOR reduce using rule 167 - SHARP reduce using rule 167 - %eof reduce using rule 167 - - -State 40 - - literal -> STRINGLITERAL . (rule 168) - - NEW reduce using rule 168 - SUPER reduce using rule 168 - THIS reduce using rule 168 - INTLITERAL reduce using rule 168 - BOOLLITERAL reduce using rule 168 - JNULL reduce using rule 168 - CHARLITERAL reduce using rule 168 - STRINGLITERAL reduce using rule 168 - IDENTIFIER reduce using rule 168 - EQUAL reduce using rule 168 - LESSEQUAL reduce using rule 168 - GREATEREQUAL reduce using rule 168 - NOTEQUAL reduce using rule 168 - LOGICALOR reduce using rule 168 - INCREMENT reduce using rule 168 - DECREMENT reduce using rule 168 - LBRACE reduce using rule 168 - RBRACE reduce using rule 168 - RBRACKET reduce using rule 168 - SEMICOLON reduce using rule 168 - DOT reduce using rule 168 - LESS reduce using rule 168 - GREATER reduce using rule 168 - COLON reduce using rule 168 - PLUS reduce using rule 168 - MINUS reduce using rule 168 - MUL reduce using rule 168 - DIV reduce using rule 168 - MOD reduce using rule 168 - AND reduce using rule 168 - OR reduce using rule 168 - XOR reduce using rule 168 - SHARP reduce using rule 168 - %eof reduce using rule 168 - - -State 41 - - simplename -> IDENTIFIER . (rule 14) - - NEW reduce using rule 14 - SUPER reduce using rule 14 - THIS reduce using rule 14 - INTLITERAL reduce using rule 14 - BOOLLITERAL reduce using rule 14 - JNULL reduce using rule 14 - CHARLITERAL reduce using rule 14 - STRINGLITERAL reduce using rule 14 - IDENTIFIER reduce using rule 14 - EQUAL reduce using rule 14 - LESSEQUAL reduce using rule 14 - GREATEREQUAL reduce using rule 14 - NOTEQUAL reduce using rule 14 - LOGICALOR reduce using rule 14 - INCREMENT reduce using rule 14 - DECREMENT reduce using rule 14 - LBRACE reduce using rule 14 - RBRACE reduce using rule 14 - LBRACKET reduce using rule 14 - RBRACKET reduce using rule 14 - SEMICOLON reduce using rule 14 - DOT reduce using rule 14 - ASSIGN reduce using rule 14 - LESS reduce using rule 14 - GREATER reduce using rule 14 - COLON reduce using rule 14 - PLUS reduce using rule 14 - MINUS reduce using rule 14 - MUL reduce using rule 14 - DIV reduce using rule 14 - MOD reduce using rule 14 - AND reduce using rule 14 - OR reduce using rule 14 - XOR reduce using rule 14 - SHARP reduce using rule 14 - %eof reduce using rule 14 - - -State 42 - - primarynonewarray -> LBRACE . expression RBRACE (rule 158) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 117 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 43 - - funtype -> SHARP . funtypeortype LBRACE funtypelist RBRACE (rule 49) - lambdaexpression -> SHARP . LBRACKET lambdaexpressionlhs ARROW expression RBRACKET (rule 54) - lambdaexpression -> SHARP . LBRACKET lambdaexpressionlhs ARROW block RBRACKET (rule 55) - - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - INT shift, and enter state 115 - IDENTIFIER shift, and enter state 41 - LBRACKET shift, and enter state 79 - SHARP shift, and enter state 116 - - simplename goto state 104 - classorinterfacetypegoto state 105 - funtype goto state 106 - funtypeortype goto state 107 - type goto state 108 - primitivetype goto state 109 - referencetype goto state 110 - numerictype goto state 111 - integraltype goto state 112 - -State 44 - - %start_parseconditionalorexpression -> conditionalorexpression . (rule 5) - conditionalorexpression -> conditionalorexpression . LOGICALOR conditionalandexpression (rule 120) - - LOGICALOR shift, and enter state 81 - %eof accept - - -State 45 - - unaryexpression -> preincrementexpression . (rule 133) - - EQUAL reduce using rule 133 - LESSEQUAL reduce using rule 133 - GREATEREQUAL reduce using rule 133 - NOTEQUAL reduce using rule 133 - LOGICALOR reduce using rule 133 - RBRACE reduce using rule 133 - RBRACKET reduce using rule 133 - SEMICOLON reduce using rule 133 - LESS reduce using rule 133 - GREATER reduce using rule 133 - COLON reduce using rule 133 - PLUS reduce using rule 133 - MINUS reduce using rule 133 - MUL reduce using rule 133 - DIV reduce using rule 133 - MOD reduce using rule 133 - AND reduce using rule 133 - OR reduce using rule 133 - XOR reduce using rule 133 - %eof reduce using rule 133 - - -State 46 - - unaryexpression -> predecrementexpression . (rule 134) - - EQUAL reduce using rule 134 - LESSEQUAL reduce using rule 134 - GREATEREQUAL reduce using rule 134 - NOTEQUAL reduce using rule 134 - LOGICALOR reduce using rule 134 - RBRACE reduce using rule 134 - RBRACKET reduce using rule 134 - SEMICOLON reduce using rule 134 - LESS reduce using rule 134 - GREATER reduce using rule 134 - COLON reduce using rule 134 - PLUS reduce using rule 134 - MINUS reduce using rule 134 - MUL reduce using rule 134 - DIV reduce using rule 134 - MOD reduce using rule 134 - AND reduce using rule 134 - OR reduce using rule 134 - XOR reduce using rule 134 - %eof reduce using rule 134 - - -State 47 - - conditionalorexpression -> conditionalandexpression . (rule 119) - - LOGICALOR reduce using rule 119 - RBRACE reduce using rule 119 - RBRACKET reduce using rule 119 - SEMICOLON reduce using rule 119 - COLON reduce using rule 119 - %eof reduce using rule 119 - - -State 48 - - multiplicativeexpression -> unaryexpression . (rule 184) - - EQUAL reduce using rule 184 - LESSEQUAL reduce using rule 184 - GREATEREQUAL reduce using rule 184 - NOTEQUAL reduce using rule 184 - LOGICALOR reduce using rule 184 - RBRACE reduce using rule 184 - RBRACKET reduce using rule 184 - SEMICOLON reduce using rule 184 - LESS reduce using rule 184 - GREATER reduce using rule 184 - COLON reduce using rule 184 - PLUS reduce using rule 184 - MINUS reduce using rule 184 - MUL reduce using rule 184 - DIV reduce using rule 184 - MOD reduce using rule 184 - AND reduce using rule 184 - OR reduce using rule 184 - XOR reduce using rule 184 - %eof reduce using rule 184 - - -State 49 - - unaryexpressionnotplusminus -> evalexpression . (rule 162) - - EQUAL reduce using rule 162 - LESSEQUAL reduce using rule 162 - GREATEREQUAL reduce using rule 162 - NOTEQUAL reduce using rule 162 - LOGICALOR reduce using rule 162 - RBRACE reduce using rule 162 - RBRACKET reduce using rule 162 - SEMICOLON reduce using rule 162 - LESS reduce using rule 162 - GREATER reduce using rule 162 - COLON reduce using rule 162 - PLUS reduce using rule 162 - MINUS reduce using rule 162 - MUL reduce using rule 162 - DIV reduce using rule 162 - MOD reduce using rule 162 - AND reduce using rule 162 - OR reduce using rule 162 - XOR reduce using rule 162 - %eof reduce using rule 162 - - -State 50 - - postincrementexpression -> postfixexpression . INCREMENT (rule 125) - postdecrementexpression -> postfixexpression . DECREMENT (rule 126) - evalexpression -> postfixexpression . (rule 138) - evalexpression -> postfixexpression . LBRACE RBRACE (rule 139) - evalexpression -> postfixexpression . postfixexpression (rule 140) - evalexpression -> postfixexpression . LBRACE expressiontupel COLON expression RBRACE (rule 141) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - EQUAL reduce using rule 138 - LESSEQUAL reduce using rule 138 - GREATEREQUAL reduce using rule 138 - NOTEQUAL reduce using rule 138 - LOGICALOR reduce using rule 138 - INCREMENT shift, and enter state 101 - DECREMENT shift, and enter state 102 - LBRACE shift, and enter state 103 - RBRACE reduce using rule 138 - RBRACKET reduce using rule 138 - SEMICOLON reduce using rule 138 - LESS reduce using rule 138 - GREATER reduce using rule 138 - COLON reduce using rule 138 - PLUS reduce using rule 138 - MINUS reduce using rule 138 - MUL reduce using rule 138 - DIV reduce using rule 138 - MOD reduce using rule 138 - AND reduce using rule 138 - OR reduce using rule 138 - XOR reduce using rule 138 - SHARP shift, and enter state 43 - %eof reduce using rule 138 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - postfixexpressiongoto state 100 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 51 - - conditionalandexpression -> inclusiveorexpression . (rule 129) - inclusiveorexpression -> inclusiveorexpression . OR exclusiveorexpression (rule 155) - - LOGICALOR reduce using rule 129 - RBRACE reduce using rule 129 - RBRACKET reduce using rule 129 - SEMICOLON reduce using rule 129 - COLON reduce using rule 129 - OR shift, and enter state 99 - %eof reduce using rule 129 - - -State 52 - - unaryexpression -> unaryexpressionnotplusminus . (rule 137) - - EQUAL reduce using rule 137 - LESSEQUAL reduce using rule 137 - GREATEREQUAL reduce using rule 137 - NOTEQUAL reduce using rule 137 - LOGICALOR reduce using rule 137 - RBRACE reduce using rule 137 - RBRACKET reduce using rule 137 - SEMICOLON reduce using rule 137 - LESS reduce using rule 137 - GREATER reduce using rule 137 - COLON reduce using rule 137 - PLUS reduce using rule 137 - MINUS reduce using rule 137 - MUL reduce using rule 137 - DIV reduce using rule 137 - MOD reduce using rule 137 - AND reduce using rule 137 - OR reduce using rule 137 - XOR reduce using rule 137 - %eof reduce using rule 137 - - -State 53 - - inclusiveorexpression -> exclusiveorexpression . (rule 154) - exclusiveorexpression -> exclusiveorexpression . XOR andexpression (rule 164) - - LOGICALOR reduce using rule 154 - RBRACE reduce using rule 154 - RBRACKET reduce using rule 154 - SEMICOLON reduce using rule 154 - COLON reduce using rule 154 - OR reduce using rule 154 - XOR shift, and enter state 98 - %eof reduce using rule 154 - - -State 54 - - exclusiveorexpression -> andexpression . (rule 163) - andexpression -> andexpression . AND equalityexpression (rule 171) - - LOGICALOR reduce using rule 163 - RBRACE reduce using rule 163 - RBRACKET reduce using rule 163 - SEMICOLON reduce using rule 163 - COLON reduce using rule 163 - AND shift, and enter state 97 - OR reduce using rule 163 - XOR reduce using rule 163 - %eof reduce using rule 163 - - -State 55 - - andexpression -> equalityexpression . (rule 170) - equalityexpression -> equalityexpression . EQUAL relationalexpression (rule 173) - equalityexpression -> equalityexpression . NOTEQUAL relationalexpression (rule 174) - - EQUAL shift, and enter state 95 - NOTEQUAL shift, and enter state 96 - LOGICALOR reduce using rule 170 - RBRACE reduce using rule 170 - RBRACKET reduce using rule 170 - SEMICOLON reduce using rule 170 - COLON reduce using rule 170 - AND reduce using rule 170 - OR reduce using rule 170 - XOR reduce using rule 170 - %eof reduce using rule 170 - - -State 56 - - equalityexpression -> relationalexpression . (rule 172) - relationalexpression -> relationalexpression . LESS shiftexpression (rule 176) - relationalexpression -> relationalexpression . GREATER shiftexpression (rule 177) - relationalexpression -> relationalexpression . LESSEQUAL shiftexpression (rule 178) - relationalexpression -> relationalexpression . GREATEREQUAL shiftexpression (rule 179) - - EQUAL reduce using rule 172 - LESSEQUAL shift, and enter state 91 - GREATEREQUAL shift, and enter state 92 - NOTEQUAL reduce using rule 172 - LOGICALOR reduce using rule 172 - RBRACE reduce using rule 172 - RBRACKET reduce using rule 172 - SEMICOLON reduce using rule 172 - LESS shift, and enter state 93 - GREATER shift, and enter state 94 - COLON reduce using rule 172 - AND reduce using rule 172 - OR reduce using rule 172 - XOR reduce using rule 172 - %eof reduce using rule 172 - - -State 57 - - relationalexpression -> shiftexpression . (rule 175) - - EQUAL reduce using rule 175 - LESSEQUAL reduce using rule 175 - GREATEREQUAL reduce using rule 175 - NOTEQUAL reduce using rule 175 - LOGICALOR reduce using rule 175 - RBRACE reduce using rule 175 - RBRACKET reduce using rule 175 - SEMICOLON reduce using rule 175 - LESS reduce using rule 175 - GREATER reduce using rule 175 - COLON reduce using rule 175 - AND reduce using rule 175 - OR reduce using rule 175 - XOR reduce using rule 175 - %eof reduce using rule 175 - - -State 58 - - shiftexpression -> additiveexpression . (rule 180) - additiveexpression -> additiveexpression . PLUS multiplicativeexpression (rule 182) - additiveexpression -> additiveexpression . MINUS multiplicativeexpression (rule 183) - - EQUAL reduce using rule 180 - LESSEQUAL reduce using rule 180 - GREATEREQUAL reduce using rule 180 - NOTEQUAL reduce using rule 180 - LOGICALOR reduce using rule 180 - RBRACE reduce using rule 180 - RBRACKET reduce using rule 180 - SEMICOLON reduce using rule 180 - LESS reduce using rule 180 - GREATER reduce using rule 180 - COLON reduce using rule 180 - PLUS shift, and enter state 89 - MINUS shift, and enter state 90 - AND reduce using rule 180 - OR reduce using rule 180 - XOR reduce using rule 180 - %eof reduce using rule 180 - - -State 59 - - additiveexpression -> multiplicativeexpression . (rule 181) - multiplicativeexpression -> multiplicativeexpression . MUL unaryexpression (rule 185) - multiplicativeexpression -> multiplicativeexpression . DIV unaryexpression (rule 186) - multiplicativeexpression -> multiplicativeexpression . MOD unaryexpression (rule 187) - - EQUAL reduce using rule 181 - LESSEQUAL reduce using rule 181 - GREATEREQUAL reduce using rule 181 - NOTEQUAL reduce using rule 181 - LOGICALOR reduce using rule 181 - RBRACE reduce using rule 181 - RBRACKET reduce using rule 181 - SEMICOLON reduce using rule 181 - LESS reduce using rule 181 - GREATER reduce using rule 181 - COLON reduce using rule 181 - PLUS reduce using rule 181 - MINUS reduce using rule 181 - MUL shift, and enter state 86 - DIV shift, and enter state 87 - MOD shift, and enter state 88 - AND reduce using rule 181 - OR reduce using rule 181 - XOR reduce using rule 181 - %eof reduce using rule 181 - - -State 60 - - preincrementexpression -> INCREMENT . unaryexpression (rule 123) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 85 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - -State 61 - - predecrementexpression -> DECREMENT . unaryexpression (rule 124) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 84 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - -State 62 - - unaryexpression -> PLUS . unaryexpression (rule 135) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 83 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - -State 63 - - unaryexpression -> MINUS . unaryexpression (rule 136) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 82 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - -State 64 - - %start_parseconditionalexpression -> conditionalexpression . (rule 4) - - %eof accept - - -State 65 - - conditionalexpression -> conditionalorexpression . (rule 108) - conditionalorexpression -> conditionalorexpression . LOGICALOR conditionalandexpression (rule 120) - - LOGICALOR shift, and enter state 81 - RBRACE reduce using rule 108 - RBRACKET reduce using rule 108 - SEMICOLON reduce using rule 108 - COLON reduce using rule 108 - %eof reduce using rule 108 - - -State 66 - - %start_parseprimary -> primary . (rule 3) - fieldaccess -> primary . DOT IDENTIFIER (rule 130) - - DOT shift, and enter state 80 - %eof accept - - -State 67 - - lambdaexpression -> SHARP . LBRACKET lambdaexpressionlhs ARROW expression RBRACKET (rule 54) - lambdaexpression -> SHARP . LBRACKET lambdaexpressionlhs ARROW block RBRACKET (rule 55) - - LBRACKET shift, and enter state 79 - - -State 68 - - qualifiedname -> name . DOT IDENTIFIER (rule 13) - lefthandside -> name . (rule 121) - primaryandname -> name . (rule 150) - primaryandname -> name . DOT THIS (rule 151) - - NEW reduce using rule 150 - SUPER reduce using rule 150 - THIS reduce using rule 150 - INTLITERAL reduce using rule 150 - BOOLLITERAL reduce using rule 150 - JNULL reduce using rule 150 - CHARLITERAL reduce using rule 150 - STRINGLITERAL reduce using rule 150 - IDENTIFIER reduce using rule 150 - EQUAL reduce using rule 150 - LESSEQUAL reduce using rule 150 - GREATEREQUAL reduce using rule 150 - NOTEQUAL reduce using rule 150 - LOGICALOR reduce using rule 150 - INCREMENT reduce using rule 150 - DECREMENT reduce using rule 150 - LBRACE reduce using rule 150 - RBRACE reduce using rule 150 - RBRACKET reduce using rule 150 - SEMICOLON reduce using rule 150 - DOT shift, and enter state 78 - ASSIGN reduce using rule 121 - LESS reduce using rule 150 - GREATER reduce using rule 150 - COLON reduce using rule 150 - PLUS reduce using rule 150 - MINUS reduce using rule 150 - MUL reduce using rule 150 - DIV reduce using rule 150 - MOD reduce using rule 150 - AND reduce using rule 150 - OR reduce using rule 150 - XOR reduce using rule 150 - SHARP reduce using rule 150 - %eof reduce using rule 150 - - -State 69 - - %start_parseexpression -> expression . (rule 2) - - %eof accept - - -State 70 - - expression -> assignmentexpression . (rule 86) - - RBRACE reduce using rule 86 - RBRACKET reduce using rule 86 - SEMICOLON reduce using rule 86 - COLON reduce using rule 86 - %eof reduce using rule 86 - - -State 71 - - assignmentexpression -> conditionalexpression . (rule 99) - - RBRACE reduce using rule 99 - RBRACKET reduce using rule 99 - SEMICOLON reduce using rule 99 - COLON reduce using rule 99 - %eof reduce using rule 99 - - -State 72 - - assignmentexpression -> assignment . (rule 100) - - RBRACE reduce using rule 100 - RBRACKET reduce using rule 100 - SEMICOLON reduce using rule 100 - COLON reduce using rule 100 - %eof reduce using rule 100 - - -State 73 - - assignment -> lefthandside . assignmentoperator assignmentexpression (rule 109) - - ASSIGN shift, and enter state 77 - - assignmentoperatorgoto state 76 - -State 74 - - %start_parselambda -> lambdaexpression . (rule 1) - - %eof accept - - -State 75 - - %start_parse -> compilationunit . (rule 0) - - %eof accept - - -State 76 - - assignment -> lefthandside assignmentoperator . assignmentexpression (rule 109) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - assignmentexpressiongoto state 163 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 77 - - assignmentoperator -> ASSIGN . (rule 122) - - NEW reduce using rule 122 - SUPER reduce using rule 122 - THIS reduce using rule 122 - INTLITERAL reduce using rule 122 - BOOLLITERAL reduce using rule 122 - JNULL reduce using rule 122 - CHARLITERAL reduce using rule 122 - STRINGLITERAL reduce using rule 122 - IDENTIFIER reduce using rule 122 - INCREMENT reduce using rule 122 - DECREMENT reduce using rule 122 - LBRACE reduce using rule 122 - PLUS reduce using rule 122 - MINUS reduce using rule 122 - SHARP reduce using rule 122 - - -State 78 - - qualifiedname -> name DOT . IDENTIFIER (rule 13) - primaryandname -> name DOT . THIS (rule 151) - - THIS shift, and enter state 161 - IDENTIFIER shift, and enter state 162 - - -State 79 - - lambdaexpression -> SHARP LBRACKET . lambdaexpressionlhs ARROW expression RBRACKET (rule 54) - lambdaexpression -> SHARP LBRACKET . lambdaexpressionlhs ARROW block RBRACKET (rule 55) - - IDENTIFIER shift, and enter state 159 - LBRACE shift, and enter state 160 - SHARP shift, and enter state 116 - - funtype goto state 155 - lambdaexpressionlhsgoto state 156 - formalparametergoto state 157 - variabledeclaratoridgoto state 158 - -State 80 - - fieldaccess -> primary DOT . IDENTIFIER (rule 130) - - IDENTIFIER shift, and enter state 154 - - -State 81 - - conditionalorexpression -> conditionalorexpression LOGICALOR . conditionalandexpression (rule 120) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 153 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 82 - - unaryexpression -> MINUS unaryexpression . (rule 136) - - EQUAL reduce using rule 136 - LESSEQUAL reduce using rule 136 - GREATEREQUAL reduce using rule 136 - NOTEQUAL reduce using rule 136 - LOGICALOR reduce using rule 136 - RBRACE reduce using rule 136 - RBRACKET reduce using rule 136 - SEMICOLON reduce using rule 136 - LESS reduce using rule 136 - GREATER reduce using rule 136 - COLON reduce using rule 136 - PLUS reduce using rule 136 - MINUS reduce using rule 136 - MUL reduce using rule 136 - DIV reduce using rule 136 - MOD reduce using rule 136 - AND reduce using rule 136 - OR reduce using rule 136 - XOR reduce using rule 136 - %eof reduce using rule 136 - - -State 83 - - unaryexpression -> PLUS unaryexpression . (rule 135) - - EQUAL reduce using rule 135 - LESSEQUAL reduce using rule 135 - GREATEREQUAL reduce using rule 135 - NOTEQUAL reduce using rule 135 - LOGICALOR reduce using rule 135 - RBRACE reduce using rule 135 - RBRACKET reduce using rule 135 - SEMICOLON reduce using rule 135 - LESS reduce using rule 135 - GREATER reduce using rule 135 - COLON reduce using rule 135 - PLUS reduce using rule 135 - MINUS reduce using rule 135 - MUL reduce using rule 135 - DIV reduce using rule 135 - MOD reduce using rule 135 - AND reduce using rule 135 - OR reduce using rule 135 - XOR reduce using rule 135 - %eof reduce using rule 135 - - -State 84 - - predecrementexpression -> DECREMENT unaryexpression . (rule 124) - - EQUAL reduce using rule 124 - LESSEQUAL reduce using rule 124 - GREATEREQUAL reduce using rule 124 - NOTEQUAL reduce using rule 124 - LOGICALOR reduce using rule 124 - RBRACE reduce using rule 124 - RBRACKET reduce using rule 124 - SEMICOLON reduce using rule 124 - LESS reduce using rule 124 - GREATER reduce using rule 124 - COLON reduce using rule 124 - PLUS reduce using rule 124 - MINUS reduce using rule 124 - MUL reduce using rule 124 - DIV reduce using rule 124 - MOD reduce using rule 124 - AND reduce using rule 124 - OR reduce using rule 124 - XOR reduce using rule 124 - %eof reduce using rule 124 - - -State 85 - - preincrementexpression -> INCREMENT unaryexpression . (rule 123) - - EQUAL reduce using rule 123 - LESSEQUAL reduce using rule 123 - GREATEREQUAL reduce using rule 123 - NOTEQUAL reduce using rule 123 - LOGICALOR reduce using rule 123 - RBRACE reduce using rule 123 - RBRACKET reduce using rule 123 - SEMICOLON reduce using rule 123 - LESS reduce using rule 123 - GREATER reduce using rule 123 - COLON reduce using rule 123 - PLUS reduce using rule 123 - MINUS reduce using rule 123 - MUL reduce using rule 123 - DIV reduce using rule 123 - MOD reduce using rule 123 - AND reduce using rule 123 - OR reduce using rule 123 - XOR reduce using rule 123 - %eof reduce using rule 123 - - -State 86 - - multiplicativeexpression -> multiplicativeexpression MUL . unaryexpression (rule 185) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 152 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - -State 87 - - multiplicativeexpression -> multiplicativeexpression DIV . unaryexpression (rule 186) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 151 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - -State 88 - - multiplicativeexpression -> multiplicativeexpression MOD . unaryexpression (rule 187) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 150 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - -State 89 - - additiveexpression -> additiveexpression PLUS . multiplicativeexpression (rule 182) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - multiplicativeexpressiongoto state 149 - -State 90 - - additiveexpression -> additiveexpression MINUS . multiplicativeexpression (rule 183) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - multiplicativeexpressiongoto state 148 - -State 91 - - relationalexpression -> relationalexpression LESSEQUAL . shiftexpression (rule 178) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - shiftexpressiongoto state 147 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 92 - - relationalexpression -> relationalexpression GREATEREQUAL . shiftexpression (rule 179) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - shiftexpressiongoto state 146 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 93 - - relationalexpression -> relationalexpression LESS . shiftexpression (rule 176) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - shiftexpressiongoto state 145 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 94 - - relationalexpression -> relationalexpression GREATER . shiftexpression (rule 177) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - shiftexpressiongoto state 144 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 95 - - equalityexpression -> equalityexpression EQUAL . relationalexpression (rule 173) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - relationalexpressiongoto state 143 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 96 - - equalityexpression -> equalityexpression NOTEQUAL . relationalexpression (rule 174) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - relationalexpressiongoto state 142 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 97 - - andexpression -> andexpression AND . equalityexpression (rule 171) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - equalityexpressiongoto state 141 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 98 - - exclusiveorexpression -> exclusiveorexpression XOR . andexpression (rule 164) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - literal goto state 32 - andexpression goto state 140 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 99 - - inclusiveorexpression -> inclusiveorexpression OR . exclusiveorexpression (rule 155) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 19 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 139 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 100 - - postincrementexpression -> postfixexpression . INCREMENT (rule 125) - postdecrementexpression -> postfixexpression . DECREMENT (rule 126) - evalexpression -> postfixexpression postfixexpression . (rule 140) - - EQUAL reduce using rule 140 - LESSEQUAL reduce using rule 140 - GREATEREQUAL reduce using rule 140 - NOTEQUAL reduce using rule 140 - LOGICALOR reduce using rule 140 - INCREMENT shift, and enter state 101 - DECREMENT shift, and enter state 102 - RBRACE reduce using rule 140 - RBRACKET reduce using rule 140 - SEMICOLON reduce using rule 140 - LESS reduce using rule 140 - GREATER reduce using rule 140 - COLON reduce using rule 140 - PLUS reduce using rule 140 - MINUS reduce using rule 140 - MUL reduce using rule 140 - DIV reduce using rule 140 - MOD reduce using rule 140 - AND reduce using rule 140 - OR reduce using rule 140 - XOR reduce using rule 140 - %eof reduce using rule 140 - - -State 101 - - postincrementexpression -> postfixexpression INCREMENT . (rule 125) - - NEW reduce using rule 125 - SUPER reduce using rule 125 - THIS reduce using rule 125 - INTLITERAL reduce using rule 125 - BOOLLITERAL reduce using rule 125 - JNULL reduce using rule 125 - CHARLITERAL reduce using rule 125 - STRINGLITERAL reduce using rule 125 - IDENTIFIER reduce using rule 125 - EQUAL reduce using rule 125 - LESSEQUAL reduce using rule 125 - GREATEREQUAL reduce using rule 125 - NOTEQUAL reduce using rule 125 - LOGICALOR reduce using rule 125 - INCREMENT reduce using rule 125 - DECREMENT reduce using rule 125 - LBRACE reduce using rule 125 - RBRACE reduce using rule 125 - RBRACKET reduce using rule 125 - SEMICOLON reduce using rule 125 - LESS reduce using rule 125 - GREATER reduce using rule 125 - COLON reduce using rule 125 - PLUS reduce using rule 125 - MINUS reduce using rule 125 - MUL reduce using rule 125 - DIV reduce using rule 125 - MOD reduce using rule 125 - AND reduce using rule 125 - OR reduce using rule 125 - XOR reduce using rule 125 - SHARP reduce using rule 125 - %eof reduce using rule 125 - - -State 102 - - postdecrementexpression -> postfixexpression DECREMENT . (rule 126) - - NEW reduce using rule 126 - SUPER reduce using rule 126 - THIS reduce using rule 126 - INTLITERAL reduce using rule 126 - BOOLLITERAL reduce using rule 126 - JNULL reduce using rule 126 - CHARLITERAL reduce using rule 126 - STRINGLITERAL reduce using rule 126 - IDENTIFIER reduce using rule 126 - EQUAL reduce using rule 126 - LESSEQUAL reduce using rule 126 - GREATEREQUAL reduce using rule 126 - NOTEQUAL reduce using rule 126 - LOGICALOR reduce using rule 126 - INCREMENT reduce using rule 126 - DECREMENT reduce using rule 126 - LBRACE reduce using rule 126 - RBRACE reduce using rule 126 - RBRACKET reduce using rule 126 - SEMICOLON reduce using rule 126 - LESS reduce using rule 126 - GREATER reduce using rule 126 - COLON reduce using rule 126 - PLUS reduce using rule 126 - MINUS reduce using rule 126 - MUL reduce using rule 126 - DIV reduce using rule 126 - MOD reduce using rule 126 - AND reduce using rule 126 - OR reduce using rule 126 - XOR reduce using rule 126 - SHARP reduce using rule 126 - %eof reduce using rule 126 - - -State 103 - - evalexpression -> postfixexpression LBRACE . RBRACE (rule 139) - evalexpression -> postfixexpression LBRACE . expressiontupel COLON expression RBRACE (rule 141) - primarynonewarray -> LBRACE . expression RBRACE (rule 158) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - RBRACE shift, and enter state 138 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 136 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - expressiontupelgoto state 137 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 104 - - classorinterfacetype -> simplename . (rule 37) - classorinterfacetype -> simplename . parameter (rule 38) - - IDENTIFIER reduce using rule 37 - LBRACE reduce using rule 37 - RBRACE reduce using rule 37 - LBRACKET reduce using rule 37 - LESS shift, and enter state 135 - GREATER reduce using rule 37 - COLON reduce using rule 37 - - parameter goto state 134 - -State 105 - - referencetype -> classorinterfacetype . (rule 71) - - IDENTIFIER reduce using rule 71 - LBRACE reduce using rule 71 - RBRACE reduce using rule 71 - COLON reduce using rule 71 - - -State 106 - - funtypeortype -> funtype . (rule 50) - - LBRACE reduce using rule 50 - RBRACE reduce using rule 50 - COLON reduce using rule 50 - - -State 107 - - funtype -> SHARP funtypeortype . LBRACE funtypelist RBRACE (rule 49) - - LBRACE shift, and enter state 133 - - -State 108 - - funtypeortype -> type . (rule 51) - - IDENTIFIER reduce using rule 51 - LBRACE reduce using rule 51 - RBRACE reduce using rule 51 - COLON reduce using rule 51 - - -State 109 - - type -> primitivetype . (rule 61) - - IDENTIFIER reduce using rule 61 - LBRACE reduce using rule 61 - RBRACE reduce using rule 61 - COLON reduce using rule 61 - - -State 110 - - type -> referencetype . (rule 62) - - IDENTIFIER reduce using rule 62 - LBRACE reduce using rule 62 - RBRACE reduce using rule 62 - COLON reduce using rule 62 - - -State 111 - - primitivetype -> numerictype . (rule 70) - - IDENTIFIER reduce using rule 70 - LBRACE reduce using rule 70 - RBRACE reduce using rule 70 - COLON reduce using rule 70 - - -State 112 - - numerictype -> integraltype . (rule 79) - - IDENTIFIER reduce using rule 79 - LBRACE reduce using rule 79 - RBRACE reduce using rule 79 - COLON reduce using rule 79 - - -State 113 - - primitivetype -> BOOLEAN . (rule 69) - - IDENTIFIER reduce using rule 69 - LBRACE reduce using rule 69 - RBRACE reduce using rule 69 - COLON reduce using rule 69 - - -State 114 - - integraltype -> CHAR . (rule 90) - - IDENTIFIER reduce using rule 90 - LBRACE reduce using rule 90 - RBRACE reduce using rule 90 - COLON reduce using rule 90 - - -State 115 - - integraltype -> INT . (rule 89) - - IDENTIFIER reduce using rule 89 - LBRACE reduce using rule 89 - RBRACE reduce using rule 89 - COLON reduce using rule 89 - - -State 116 - - funtype -> SHARP . funtypeortype LBRACE funtypelist RBRACE (rule 49) - - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - INT shift, and enter state 115 - IDENTIFIER shift, and enter state 41 - SHARP shift, and enter state 116 - - simplename goto state 104 - classorinterfacetypegoto state 105 - funtype goto state 106 - funtypeortype goto state 107 - type goto state 108 - primitivetype goto state 109 - referencetype goto state 110 - numerictype goto state 111 - integraltype goto state 112 - -State 117 - - primarynonewarray -> LBRACE expression . RBRACE (rule 158) - - RBRACE shift, and enter state 132 - - -State 118 - - fieldaccess -> SUPER DOT . IDENTIFIER (rule 131) - - IDENTIFIER shift, and enter state 131 - - -State 119 - - classinstancecreationexpression -> NEW classtype . LBRACE RBRACE (rule 127) - classinstancecreationexpression -> NEW classtype . LBRACE argumentlist RBRACE (rule 128) - - LBRACE shift, and enter state 130 - - -State 120 - - classtype -> classorinterfacetype . (rule 35) - - LBRACE reduce using rule 35 - LBRACKET reduce using rule 35 - - -State 121 - - primaryandname -> funtype DOT . THIS (rule 152) - - THIS shift, and enter state 129 - - -State 122 - - classdeclaration -> CLASS IDENTIFIER . classpara classbody (rule 15) - classdeclaration -> CLASS IDENTIFIER . classpara super classbody (rule 17) - - EXTENDS reduce using rule 23 - LBRACKET reduce using rule 23 - LESS shift, and enter state 128 - - classpara goto state 127 - -State 123 - - modifiers -> modifiers modifier . (rule 22) - - ABSTRACT reduce using rule 22 - BOOLEAN reduce using rule 22 - CHAR reduce using rule 22 - CLASS reduce using rule 22 - INT reduce using rule 22 - PRIVATE reduce using rule 22 - PROTECTED reduce using rule 22 - PUBLIC reduce using rule 22 - STATIC reduce using rule 22 - IDENTIFIER reduce using rule 22 - - -State 124 - - classdeclaration -> modifiers CLASS . IDENTIFIER classpara classbody (rule 16) - classdeclaration -> modifiers CLASS . IDENTIFIER classpara super classbody (rule 18) - - IDENTIFIER shift, and enter state 126 - - -State 125 - - typedeclarations -> typedeclarations typedeclaration . (rule 9) - - ABSTRACT reduce using rule 9 - CLASS reduce using rule 9 - PRIVATE reduce using rule 9 - PROTECTED reduce using rule 9 - PUBLIC reduce using rule 9 - STATIC reduce using rule 9 - %eof reduce using rule 9 - - -State 126 - - classdeclaration -> modifiers CLASS IDENTIFIER . classpara classbody (rule 16) - classdeclaration -> modifiers CLASS IDENTIFIER . classpara super classbody (rule 18) - - EXTENDS reduce using rule 23 - LBRACKET reduce using rule 23 - LESS shift, and enter state 128 - - classpara goto state 183 - -State 127 - - classdeclaration -> CLASS IDENTIFIER classpara . classbody (rule 15) - classdeclaration -> CLASS IDENTIFIER classpara . super classbody (rule 17) - - EXTENDS shift, and enter state 181 - LBRACKET shift, and enter state 182 - - classbody goto state 179 - super goto state 180 - -State 128 - - classpara -> LESS . classparalist GREATER (rule 24) - - IDENTIFIER shift, and enter state 41 - - simplename goto state 177 - classparalist goto state 178 - -State 129 - - primaryandname -> funtype DOT THIS . (rule 152) - - NEW reduce using rule 152 - SUPER reduce using rule 152 - THIS reduce using rule 152 - INTLITERAL reduce using rule 152 - BOOLLITERAL reduce using rule 152 - JNULL reduce using rule 152 - CHARLITERAL reduce using rule 152 - STRINGLITERAL reduce using rule 152 - IDENTIFIER reduce using rule 152 - EQUAL reduce using rule 152 - LESSEQUAL reduce using rule 152 - GREATEREQUAL reduce using rule 152 - NOTEQUAL reduce using rule 152 - LOGICALOR reduce using rule 152 - INCREMENT reduce using rule 152 - DECREMENT reduce using rule 152 - LBRACE reduce using rule 152 - RBRACE reduce using rule 152 - RBRACKET reduce using rule 152 - SEMICOLON reduce using rule 152 - LESS reduce using rule 152 - GREATER reduce using rule 152 - COLON reduce using rule 152 - PLUS reduce using rule 152 - MINUS reduce using rule 152 - MUL reduce using rule 152 - DIV reduce using rule 152 - MOD reduce using rule 152 - AND reduce using rule 152 - OR reduce using rule 152 - XOR reduce using rule 152 - SHARP reduce using rule 152 - %eof reduce using rule 152 - - -State 130 - - classinstancecreationexpression -> NEW classtype LBRACE . RBRACE (rule 127) - classinstancecreationexpression -> NEW classtype LBRACE . argumentlist RBRACE (rule 128) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - RBRACE shift, and enter state 176 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - argumentlist goto state 174 - expression goto state 175 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 131 - - fieldaccess -> SUPER DOT IDENTIFIER . (rule 131) - - NEW reduce using rule 131 - SUPER reduce using rule 131 - THIS reduce using rule 131 - INTLITERAL reduce using rule 131 - BOOLLITERAL reduce using rule 131 - JNULL reduce using rule 131 - CHARLITERAL reduce using rule 131 - STRINGLITERAL reduce using rule 131 - IDENTIFIER reduce using rule 131 - EQUAL reduce using rule 131 - LESSEQUAL reduce using rule 131 - GREATEREQUAL reduce using rule 131 - NOTEQUAL reduce using rule 131 - LOGICALOR reduce using rule 131 - INCREMENT reduce using rule 131 - DECREMENT reduce using rule 131 - LBRACE reduce using rule 131 - RBRACE reduce using rule 131 - RBRACKET reduce using rule 131 - SEMICOLON reduce using rule 131 - DOT reduce using rule 131 - LESS reduce using rule 131 - GREATER reduce using rule 131 - COLON reduce using rule 131 - PLUS reduce using rule 131 - MINUS reduce using rule 131 - MUL reduce using rule 131 - DIV reduce using rule 131 - MOD reduce using rule 131 - AND reduce using rule 131 - OR reduce using rule 131 - XOR reduce using rule 131 - SHARP reduce using rule 131 - %eof reduce using rule 131 - - -State 132 - - primarynonewarray -> LBRACE expression RBRACE . (rule 158) - - NEW reduce using rule 158 - SUPER reduce using rule 158 - THIS reduce using rule 158 - INTLITERAL reduce using rule 158 - BOOLLITERAL reduce using rule 158 - JNULL reduce using rule 158 - CHARLITERAL reduce using rule 158 - STRINGLITERAL reduce using rule 158 - IDENTIFIER reduce using rule 158 - EQUAL reduce using rule 158 - LESSEQUAL reduce using rule 158 - GREATEREQUAL reduce using rule 158 - NOTEQUAL reduce using rule 158 - LOGICALOR reduce using rule 158 - INCREMENT reduce using rule 158 - DECREMENT reduce using rule 158 - LBRACE reduce using rule 158 - RBRACE reduce using rule 158 - RBRACKET reduce using rule 158 - SEMICOLON reduce using rule 158 - DOT reduce using rule 158 - LESS reduce using rule 158 - GREATER reduce using rule 158 - COLON reduce using rule 158 - PLUS reduce using rule 158 - MINUS reduce using rule 158 - MUL reduce using rule 158 - DIV reduce using rule 158 - MOD reduce using rule 158 - AND reduce using rule 158 - OR reduce using rule 158 - XOR reduce using rule 158 - SHARP reduce using rule 158 - %eof reduce using rule 158 - - -State 133 - - funtype -> SHARP funtypeortype LBRACE . funtypelist RBRACE (rule 49) - - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - INT shift, and enter state 115 - IDENTIFIER shift, and enter state 41 - SHARP shift, and enter state 116 - - simplename goto state 104 - classorinterfacetypegoto state 105 - funtype goto state 106 - funtypeortype goto state 172 - funtypelist goto state 173 - type goto state 108 - primitivetype goto state 109 - referencetype goto state 110 - numerictype goto state 111 - integraltype goto state 112 - -State 134 - - classorinterfacetype -> simplename parameter . (rule 38) - - IDENTIFIER reduce using rule 38 - LBRACE reduce using rule 38 - RBRACE reduce using rule 38 - LBRACKET reduce using rule 38 - GREATER reduce using rule 38 - COLON reduce using rule 38 - - -State 135 - - parameter -> LESS . paralist GREATER (rule 39) - - IDENTIFIER shift, and enter state 41 - - simplename goto state 104 - classorinterfacetypegoto state 170 - paralist goto state 171 - -State 136 - - expressiontupel -> expression . (rule 145) - primarynonewarray -> LBRACE expression . RBRACE (rule 158) - - RBRACE shift, and enter state 132 - COLON reduce using rule 145 - - -State 137 - - evalexpression -> postfixexpression LBRACE expressiontupel . COLON expression RBRACE (rule 141) - expressiontupel -> expressiontupel . COLON expression (rule 144) - - COLON shift, and enter state 169 - - -State 138 - - evalexpression -> postfixexpression LBRACE RBRACE . (rule 139) - - EQUAL reduce using rule 139 - LESSEQUAL reduce using rule 139 - GREATEREQUAL reduce using rule 139 - NOTEQUAL reduce using rule 139 - LOGICALOR reduce using rule 139 - RBRACE reduce using rule 139 - RBRACKET reduce using rule 139 - SEMICOLON reduce using rule 139 - LESS reduce using rule 139 - GREATER reduce using rule 139 - COLON reduce using rule 139 - PLUS reduce using rule 139 - MINUS reduce using rule 139 - MUL reduce using rule 139 - DIV reduce using rule 139 - MOD reduce using rule 139 - AND reduce using rule 139 - OR reduce using rule 139 - XOR reduce using rule 139 - %eof reduce using rule 139 - - -State 139 - - inclusiveorexpression -> inclusiveorexpression OR exclusiveorexpression . (rule 155) - exclusiveorexpression -> exclusiveorexpression . XOR andexpression (rule 164) - - LOGICALOR reduce using rule 155 - RBRACE reduce using rule 155 - RBRACKET reduce using rule 155 - SEMICOLON reduce using rule 155 - COLON reduce using rule 155 - OR reduce using rule 155 - XOR shift, and enter state 98 - %eof reduce using rule 155 - - -State 140 - - exclusiveorexpression -> exclusiveorexpression XOR andexpression . (rule 164) - andexpression -> andexpression . AND equalityexpression (rule 171) - - LOGICALOR reduce using rule 164 - RBRACE reduce using rule 164 - RBRACKET reduce using rule 164 - SEMICOLON reduce using rule 164 - COLON reduce using rule 164 - AND shift, and enter state 97 - OR reduce using rule 164 - XOR reduce using rule 164 - %eof reduce using rule 164 - - -State 141 - - andexpression -> andexpression AND equalityexpression . (rule 171) - equalityexpression -> equalityexpression . EQUAL relationalexpression (rule 173) - equalityexpression -> equalityexpression . NOTEQUAL relationalexpression (rule 174) - - EQUAL shift, and enter state 95 - NOTEQUAL shift, and enter state 96 - LOGICALOR reduce using rule 171 - RBRACE reduce using rule 171 - RBRACKET reduce using rule 171 - SEMICOLON reduce using rule 171 - COLON reduce using rule 171 - AND reduce using rule 171 - OR reduce using rule 171 - XOR reduce using rule 171 - %eof reduce using rule 171 - - -State 142 - - equalityexpression -> equalityexpression NOTEQUAL relationalexpression . (rule 174) - relationalexpression -> relationalexpression . LESS shiftexpression (rule 176) - relationalexpression -> relationalexpression . GREATER shiftexpression (rule 177) - relationalexpression -> relationalexpression . LESSEQUAL shiftexpression (rule 178) - relationalexpression -> relationalexpression . GREATEREQUAL shiftexpression (rule 179) - - EQUAL reduce using rule 174 - LESSEQUAL shift, and enter state 91 - GREATEREQUAL shift, and enter state 92 - NOTEQUAL reduce using rule 174 - LOGICALOR reduce using rule 174 - RBRACE reduce using rule 174 - RBRACKET reduce using rule 174 - SEMICOLON reduce using rule 174 - LESS shift, and enter state 93 - GREATER shift, and enter state 94 - COLON reduce using rule 174 - AND reduce using rule 174 - OR reduce using rule 174 - XOR reduce using rule 174 - %eof reduce using rule 174 - - -State 143 - - equalityexpression -> equalityexpression EQUAL relationalexpression . (rule 173) - relationalexpression -> relationalexpression . LESS shiftexpression (rule 176) - relationalexpression -> relationalexpression . GREATER shiftexpression (rule 177) - relationalexpression -> relationalexpression . LESSEQUAL shiftexpression (rule 178) - relationalexpression -> relationalexpression . GREATEREQUAL shiftexpression (rule 179) - - EQUAL reduce using rule 173 - LESSEQUAL shift, and enter state 91 - GREATEREQUAL shift, and enter state 92 - NOTEQUAL reduce using rule 173 - LOGICALOR reduce using rule 173 - RBRACE reduce using rule 173 - RBRACKET reduce using rule 173 - SEMICOLON reduce using rule 173 - LESS shift, and enter state 93 - GREATER shift, and enter state 94 - COLON reduce using rule 173 - AND reduce using rule 173 - OR reduce using rule 173 - XOR reduce using rule 173 - %eof reduce using rule 173 - - -State 144 - - relationalexpression -> relationalexpression GREATER shiftexpression . (rule 177) - - EQUAL reduce using rule 177 - LESSEQUAL reduce using rule 177 - GREATEREQUAL reduce using rule 177 - NOTEQUAL reduce using rule 177 - LOGICALOR reduce using rule 177 - RBRACE reduce using rule 177 - RBRACKET reduce using rule 177 - SEMICOLON reduce using rule 177 - LESS reduce using rule 177 - GREATER reduce using rule 177 - COLON reduce using rule 177 - AND reduce using rule 177 - OR reduce using rule 177 - XOR reduce using rule 177 - %eof reduce using rule 177 - - -State 145 - - relationalexpression -> relationalexpression LESS shiftexpression . (rule 176) - - EQUAL reduce using rule 176 - LESSEQUAL reduce using rule 176 - GREATEREQUAL reduce using rule 176 - NOTEQUAL reduce using rule 176 - LOGICALOR reduce using rule 176 - RBRACE reduce using rule 176 - RBRACKET reduce using rule 176 - SEMICOLON reduce using rule 176 - LESS reduce using rule 176 - GREATER reduce using rule 176 - COLON reduce using rule 176 - AND reduce using rule 176 - OR reduce using rule 176 - XOR reduce using rule 176 - %eof reduce using rule 176 - - -State 146 - - relationalexpression -> relationalexpression GREATEREQUAL shiftexpression . (rule 179) - - EQUAL reduce using rule 179 - LESSEQUAL reduce using rule 179 - GREATEREQUAL reduce using rule 179 - NOTEQUAL reduce using rule 179 - LOGICALOR reduce using rule 179 - RBRACE reduce using rule 179 - RBRACKET reduce using rule 179 - SEMICOLON reduce using rule 179 - LESS reduce using rule 179 - GREATER reduce using rule 179 - COLON reduce using rule 179 - AND reduce using rule 179 - OR reduce using rule 179 - XOR reduce using rule 179 - %eof reduce using rule 179 - - -State 147 - - relationalexpression -> relationalexpression LESSEQUAL shiftexpression . (rule 178) - - EQUAL reduce using rule 178 - LESSEQUAL reduce using rule 178 - GREATEREQUAL reduce using rule 178 - NOTEQUAL reduce using rule 178 - LOGICALOR reduce using rule 178 - RBRACE reduce using rule 178 - RBRACKET reduce using rule 178 - SEMICOLON reduce using rule 178 - LESS reduce using rule 178 - GREATER reduce using rule 178 - COLON reduce using rule 178 - AND reduce using rule 178 - OR reduce using rule 178 - XOR reduce using rule 178 - %eof reduce using rule 178 - - -State 148 - - additiveexpression -> additiveexpression MINUS multiplicativeexpression . (rule 183) - multiplicativeexpression -> multiplicativeexpression . MUL unaryexpression (rule 185) - multiplicativeexpression -> multiplicativeexpression . DIV unaryexpression (rule 186) - multiplicativeexpression -> multiplicativeexpression . MOD unaryexpression (rule 187) - - EQUAL reduce using rule 183 - LESSEQUAL reduce using rule 183 - GREATEREQUAL reduce using rule 183 - NOTEQUAL reduce using rule 183 - LOGICALOR reduce using rule 183 - RBRACE reduce using rule 183 - RBRACKET reduce using rule 183 - SEMICOLON reduce using rule 183 - LESS reduce using rule 183 - GREATER reduce using rule 183 - COLON reduce using rule 183 - PLUS reduce using rule 183 - MINUS reduce using rule 183 - MUL shift, and enter state 86 - DIV shift, and enter state 87 - MOD shift, and enter state 88 - AND reduce using rule 183 - OR reduce using rule 183 - XOR reduce using rule 183 - %eof reduce using rule 183 - - -State 149 - - additiveexpression -> additiveexpression PLUS multiplicativeexpression . (rule 182) - multiplicativeexpression -> multiplicativeexpression . MUL unaryexpression (rule 185) - multiplicativeexpression -> multiplicativeexpression . DIV unaryexpression (rule 186) - multiplicativeexpression -> multiplicativeexpression . MOD unaryexpression (rule 187) - - EQUAL reduce using rule 182 - LESSEQUAL reduce using rule 182 - GREATEREQUAL reduce using rule 182 - NOTEQUAL reduce using rule 182 - LOGICALOR reduce using rule 182 - RBRACE reduce using rule 182 - RBRACKET reduce using rule 182 - SEMICOLON reduce using rule 182 - LESS reduce using rule 182 - GREATER reduce using rule 182 - COLON reduce using rule 182 - PLUS reduce using rule 182 - MINUS reduce using rule 182 - MUL shift, and enter state 86 - DIV shift, and enter state 87 - MOD shift, and enter state 88 - AND reduce using rule 182 - OR reduce using rule 182 - XOR reduce using rule 182 - %eof reduce using rule 182 - - -State 150 - - multiplicativeexpression -> multiplicativeexpression MOD unaryexpression . (rule 187) - - EQUAL reduce using rule 187 - LESSEQUAL reduce using rule 187 - GREATEREQUAL reduce using rule 187 - NOTEQUAL reduce using rule 187 - LOGICALOR reduce using rule 187 - RBRACE reduce using rule 187 - RBRACKET reduce using rule 187 - SEMICOLON reduce using rule 187 - LESS reduce using rule 187 - GREATER reduce using rule 187 - COLON reduce using rule 187 - PLUS reduce using rule 187 - MINUS reduce using rule 187 - MUL reduce using rule 187 - DIV reduce using rule 187 - MOD reduce using rule 187 - AND reduce using rule 187 - OR reduce using rule 187 - XOR reduce using rule 187 - %eof reduce using rule 187 - - -State 151 - - multiplicativeexpression -> multiplicativeexpression DIV unaryexpression . (rule 186) - - EQUAL reduce using rule 186 - LESSEQUAL reduce using rule 186 - GREATEREQUAL reduce using rule 186 - NOTEQUAL reduce using rule 186 - LOGICALOR reduce using rule 186 - RBRACE reduce using rule 186 - RBRACKET reduce using rule 186 - SEMICOLON reduce using rule 186 - LESS reduce using rule 186 - GREATER reduce using rule 186 - COLON reduce using rule 186 - PLUS reduce using rule 186 - MINUS reduce using rule 186 - MUL reduce using rule 186 - DIV reduce using rule 186 - MOD reduce using rule 186 - AND reduce using rule 186 - OR reduce using rule 186 - XOR reduce using rule 186 - %eof reduce using rule 186 - - -State 152 - - multiplicativeexpression -> multiplicativeexpression MUL unaryexpression . (rule 185) - - EQUAL reduce using rule 185 - LESSEQUAL reduce using rule 185 - GREATEREQUAL reduce using rule 185 - NOTEQUAL reduce using rule 185 - LOGICALOR reduce using rule 185 - RBRACE reduce using rule 185 - RBRACKET reduce using rule 185 - SEMICOLON reduce using rule 185 - LESS reduce using rule 185 - GREATER reduce using rule 185 - COLON reduce using rule 185 - PLUS reduce using rule 185 - MINUS reduce using rule 185 - MUL reduce using rule 185 - DIV reduce using rule 185 - MOD reduce using rule 185 - AND reduce using rule 185 - OR reduce using rule 185 - XOR reduce using rule 185 - %eof reduce using rule 185 - - -State 153 - - conditionalorexpression -> conditionalorexpression LOGICALOR conditionalandexpression . (rule 120) - - LOGICALOR reduce using rule 120 - RBRACE reduce using rule 120 - RBRACKET reduce using rule 120 - SEMICOLON reduce using rule 120 - COLON reduce using rule 120 - %eof reduce using rule 120 - - -State 154 - - fieldaccess -> primary DOT IDENTIFIER . (rule 130) - - NEW reduce using rule 130 - SUPER reduce using rule 130 - THIS reduce using rule 130 - INTLITERAL reduce using rule 130 - BOOLLITERAL reduce using rule 130 - JNULL reduce using rule 130 - CHARLITERAL reduce using rule 130 - STRINGLITERAL reduce using rule 130 - IDENTIFIER reduce using rule 130 - EQUAL reduce using rule 130 - LESSEQUAL reduce using rule 130 - GREATEREQUAL reduce using rule 130 - NOTEQUAL reduce using rule 130 - LOGICALOR reduce using rule 130 - INCREMENT reduce using rule 130 - DECREMENT reduce using rule 130 - LBRACE reduce using rule 130 - RBRACE reduce using rule 130 - RBRACKET reduce using rule 130 - SEMICOLON reduce using rule 130 - DOT reduce using rule 130 - LESS reduce using rule 130 - GREATER reduce using rule 130 - COLON reduce using rule 130 - PLUS reduce using rule 130 - MINUS reduce using rule 130 - MUL reduce using rule 130 - DIV reduce using rule 130 - MOD reduce using rule 130 - AND reduce using rule 130 - OR reduce using rule 130 - XOR reduce using rule 130 - SHARP reduce using rule 130 - %eof reduce using rule 130 - - -State 155 - - formalparameter -> funtype . variabledeclaratorid (rule 75) - - IDENTIFIER shift, and enter state 159 - - variabledeclaratoridgoto state 168 - -State 156 - - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs . ARROW expression RBRACKET (rule 54) - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs . ARROW block RBRACKET (rule 55) - - ARROW shift, and enter state 167 - - -State 157 - - lambdaexpressionlhs -> formalparameter . (rule 57) - - ARROW reduce using rule 57 - - -State 158 - - formalparameter -> variabledeclaratorid . (rule 76) - - RBRACE reduce using rule 76 - COLON reduce using rule 76 - ARROW reduce using rule 76 - - -State 159 - - variabledeclaratorid -> IDENTIFIER . (rule 80) - - RBRACE reduce using rule 80 - SEMICOLON reduce using rule 80 - COLON reduce using rule 80 - ARROW reduce using rule 80 - - -State 160 - - lambdaexpressionlhs -> LBRACE . RBRACE (rule 56) - lambdaexpressionlhs -> LBRACE . formalparameterlist RBRACE (rule 58) - - IDENTIFIER shift, and enter state 159 - RBRACE shift, and enter state 166 - SHARP shift, and enter state 116 - - funtype goto state 155 - formalparameterlistgoto state 164 - formalparametergoto state 165 - variabledeclaratoridgoto state 158 - -State 161 - - primaryandname -> name DOT THIS . (rule 151) - - NEW reduce using rule 151 - SUPER reduce using rule 151 - THIS reduce using rule 151 - INTLITERAL reduce using rule 151 - BOOLLITERAL reduce using rule 151 - JNULL reduce using rule 151 - CHARLITERAL reduce using rule 151 - STRINGLITERAL reduce using rule 151 - IDENTIFIER reduce using rule 151 - EQUAL reduce using rule 151 - LESSEQUAL reduce using rule 151 - GREATEREQUAL reduce using rule 151 - NOTEQUAL reduce using rule 151 - LOGICALOR reduce using rule 151 - INCREMENT reduce using rule 151 - DECREMENT reduce using rule 151 - LBRACE reduce using rule 151 - RBRACE reduce using rule 151 - RBRACKET reduce using rule 151 - SEMICOLON reduce using rule 151 - LESS reduce using rule 151 - GREATER reduce using rule 151 - COLON reduce using rule 151 - PLUS reduce using rule 151 - MINUS reduce using rule 151 - MUL reduce using rule 151 - DIV reduce using rule 151 - MOD reduce using rule 151 - AND reduce using rule 151 - OR reduce using rule 151 - XOR reduce using rule 151 - SHARP reduce using rule 151 - %eof reduce using rule 151 - - -State 162 - - qualifiedname -> name DOT IDENTIFIER . (rule 13) - - NEW reduce using rule 13 - SUPER reduce using rule 13 - THIS reduce using rule 13 - INTLITERAL reduce using rule 13 - BOOLLITERAL reduce using rule 13 - JNULL reduce using rule 13 - CHARLITERAL reduce using rule 13 - STRINGLITERAL reduce using rule 13 - IDENTIFIER reduce using rule 13 - EQUAL reduce using rule 13 - LESSEQUAL reduce using rule 13 - GREATEREQUAL reduce using rule 13 - NOTEQUAL reduce using rule 13 - LOGICALOR reduce using rule 13 - INCREMENT reduce using rule 13 - DECREMENT reduce using rule 13 - LBRACE reduce using rule 13 - RBRACE reduce using rule 13 - RBRACKET reduce using rule 13 - SEMICOLON reduce using rule 13 - DOT reduce using rule 13 - ASSIGN reduce using rule 13 - LESS reduce using rule 13 - GREATER reduce using rule 13 - COLON reduce using rule 13 - PLUS reduce using rule 13 - MINUS reduce using rule 13 - MUL reduce using rule 13 - DIV reduce using rule 13 - MOD reduce using rule 13 - AND reduce using rule 13 - OR reduce using rule 13 - XOR reduce using rule 13 - SHARP reduce using rule 13 - %eof reduce using rule 13 - - -State 163 - - assignment -> lefthandside assignmentoperator assignmentexpression . (rule 109) - - RBRACE reduce using rule 109 - RBRACKET reduce using rule 109 - SEMICOLON reduce using rule 109 - COLON reduce using rule 109 - %eof reduce using rule 109 - - -State 164 - - lambdaexpressionlhs -> LBRACE formalparameterlist . RBRACE (rule 58) - formalparameterlist -> formalparameterlist . COLON formalparameter (rule 68) - - RBRACE shift, and enter state 210 - COLON shift, and enter state 211 - - -State 165 - - formalparameterlist -> formalparameter . (rule 67) - - RBRACE reduce using rule 67 - COLON reduce using rule 67 - - -State 166 - - lambdaexpressionlhs -> LBRACE RBRACE . (rule 56) - - ARROW reduce using rule 56 - - -State 167 - - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs ARROW . expression RBRACKET (rule 54) - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs ARROW . block RBRACKET (rule 55) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - block goto state 207 - expression goto state 208 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 168 - - formalparameter -> funtype variabledeclaratorid . (rule 75) - - RBRACE reduce using rule 75 - COLON reduce using rule 75 - ARROW reduce using rule 75 - - -State 169 - - evalexpression -> postfixexpression LBRACE expressiontupel COLON . expression RBRACE (rule 141) - expressiontupel -> expressiontupel COLON . expression (rule 144) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 206 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 170 - - paralist -> classorinterfacetype . (rule 40) - paralist -> classorinterfacetype . COLON paralist (rule 41) - - GREATER reduce using rule 40 - COLON shift, and enter state 205 - - -State 171 - - parameter -> LESS paralist . GREATER (rule 39) - - GREATER shift, and enter state 204 - - -State 172 - - funtypelist -> funtypeortype . (rule 52) - - RBRACE reduce using rule 52 - COLON reduce using rule 52 - - -State 173 - - funtype -> SHARP funtypeortype LBRACE funtypelist . RBRACE (rule 49) - funtypelist -> funtypelist . COLON funtypeortype (rule 53) - - RBRACE shift, and enter state 202 - COLON shift, and enter state 203 - - -State 174 - - argumentlist -> argumentlist . COLON expression (rule 78) - classinstancecreationexpression -> NEW classtype LBRACE argumentlist . RBRACE (rule 128) - - RBRACE shift, and enter state 200 - COLON shift, and enter state 201 - - -State 175 - - argumentlist -> expression . (rule 77) - - RBRACE reduce using rule 77 - COLON reduce using rule 77 - - -State 176 - - classinstancecreationexpression -> NEW classtype LBRACE RBRACE . (rule 127) - - NEW reduce using rule 127 - SUPER reduce using rule 127 - THIS reduce using rule 127 - INTLITERAL reduce using rule 127 - BOOLLITERAL reduce using rule 127 - JNULL reduce using rule 127 - CHARLITERAL reduce using rule 127 - STRINGLITERAL reduce using rule 127 - IDENTIFIER reduce using rule 127 - EQUAL reduce using rule 127 - LESSEQUAL reduce using rule 127 - GREATEREQUAL reduce using rule 127 - NOTEQUAL reduce using rule 127 - LOGICALOR reduce using rule 127 - INCREMENT reduce using rule 127 - DECREMENT reduce using rule 127 - LBRACE reduce using rule 127 - RBRACE reduce using rule 127 - RBRACKET reduce using rule 127 - SEMICOLON reduce using rule 127 - DOT reduce using rule 127 - LESS reduce using rule 127 - GREATER reduce using rule 127 - COLON reduce using rule 127 - PLUS reduce using rule 127 - MINUS reduce using rule 127 - MUL reduce using rule 127 - DIV reduce using rule 127 - MOD reduce using rule 127 - AND reduce using rule 127 - OR reduce using rule 127 - XOR reduce using rule 127 - SHARP reduce using rule 127 - %eof reduce using rule 127 - - -State 177 - - classparalist -> simplename . (rule 25) - classparalist -> simplename . COLON classparalist (rule 26) - - GREATER reduce using rule 25 - COLON shift, and enter state 199 - - -State 178 - - classpara -> LESS classparalist . GREATER (rule 24) - - GREATER shift, and enter state 198 - - -State 179 - - classdeclaration -> CLASS IDENTIFIER classpara classbody . (rule 15) - - ABSTRACT reduce using rule 15 - CLASS reduce using rule 15 - PRIVATE reduce using rule 15 - PROTECTED reduce using rule 15 - PUBLIC reduce using rule 15 - STATIC reduce using rule 15 - %eof reduce using rule 15 - - -State 180 - - classdeclaration -> CLASS IDENTIFIER classpara super . classbody (rule 17) - - LBRACKET shift, and enter state 182 - - classbody goto state 197 - -State 181 - - super -> EXTENDS . classtype (rule 27) - - IDENTIFIER shift, and enter state 41 - - simplename goto state 104 - classtype goto state 196 - classorinterfacetypegoto state 120 - -State 182 - - classbody -> LBRACKET . RBRACKET (rule 19) - classbody -> LBRACKET . classbodydeclarations RBRACKET (rule 20) - - ABSTRACT shift, and enter state 13 - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - INT shift, and enter state 115 - PRIVATE shift, and enter state 15 - PROTECTED shift, and enter state 16 - PUBLIC shift, and enter state 17 - STATIC shift, and enter state 18 - IDENTIFIER shift, and enter state 194 - RBRACKET shift, and enter state 195 - SHARP shift, and enter state 116 - - simplename goto state 104 - modifiers goto state 186 - classbodydeclarationsgoto state 187 - modifier goto state 12 - classbodydeclarationgoto state 188 - classorinterfacetypegoto state 105 - classmemberdeclarationgoto state 189 - fielddeclarationgoto state 190 - fundeclaration goto state 191 - funtype goto state 192 - type goto state 193 - primitivetype goto state 109 - referencetype goto state 110 - numerictype goto state 111 - integraltype goto state 112 - -State 183 - - classdeclaration -> modifiers CLASS IDENTIFIER classpara . classbody (rule 16) - classdeclaration -> modifiers CLASS IDENTIFIER classpara . super classbody (rule 18) - - EXTENDS shift, and enter state 181 - LBRACKET shift, and enter state 182 - - classbody goto state 184 - super goto state 185 - -State 184 - - classdeclaration -> modifiers CLASS IDENTIFIER classpara classbody . (rule 16) - - ABSTRACT reduce using rule 16 - CLASS reduce using rule 16 - PRIVATE reduce using rule 16 - PROTECTED reduce using rule 16 - PUBLIC reduce using rule 16 - STATIC reduce using rule 16 - %eof reduce using rule 16 - - -State 185 - - classdeclaration -> modifiers CLASS IDENTIFIER classpara super . classbody (rule 18) - - LBRACKET shift, and enter state 182 - - classbody goto state 259 - -State 186 - - modifiers -> modifiers . modifier (rule 22) - fielddeclaration -> modifiers . type variabledeclarators SEMICOLON (rule 45) - - ABSTRACT shift, and enter state 13 - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - INT shift, and enter state 115 - PRIVATE shift, and enter state 15 - PROTECTED shift, and enter state 16 - PUBLIC shift, and enter state 17 - STATIC shift, and enter state 18 - IDENTIFIER shift, and enter state 41 - - simplename goto state 104 - modifier goto state 123 - classorinterfacetypegoto state 105 - type goto state 258 - primitivetype goto state 109 - referencetype goto state 110 - numerictype goto state 111 - integraltype goto state 112 - -State 187 - - classbody -> LBRACKET classbodydeclarations . RBRACKET (rule 20) - classbodydeclarations -> classbodydeclarations . classbodydeclaration (rule 29) - - ABSTRACT shift, and enter state 13 - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - INT shift, and enter state 115 - PRIVATE shift, and enter state 15 - PROTECTED shift, and enter state 16 - PUBLIC shift, and enter state 17 - STATIC shift, and enter state 18 - IDENTIFIER shift, and enter state 194 - RBRACKET shift, and enter state 257 - SHARP shift, and enter state 116 - - simplename goto state 104 - modifiers goto state 186 - modifier goto state 12 - classbodydeclarationgoto state 256 - classorinterfacetypegoto state 105 - classmemberdeclarationgoto state 189 - fielddeclarationgoto state 190 - fundeclaration goto state 191 - funtype goto state 192 - type goto state 193 - primitivetype goto state 109 - referencetype goto state 110 - numerictype goto state 111 - integraltype goto state 112 - -State 188 - - classbodydeclarations -> classbodydeclaration . (rule 28) - - ABSTRACT reduce using rule 28 - BOOLEAN reduce using rule 28 - CHAR reduce using rule 28 - INT reduce using rule 28 - PRIVATE reduce using rule 28 - PROTECTED reduce using rule 28 - PUBLIC reduce using rule 28 - STATIC reduce using rule 28 - IDENTIFIER reduce using rule 28 - RBRACKET reduce using rule 28 - SHARP reduce using rule 28 - - -State 189 - - classbodydeclaration -> classmemberdeclaration . (rule 36) - - ABSTRACT reduce using rule 36 - BOOLEAN reduce using rule 36 - CHAR reduce using rule 36 - INT reduce using rule 36 - PRIVATE reduce using rule 36 - PROTECTED reduce using rule 36 - PUBLIC reduce using rule 36 - STATIC reduce using rule 36 - IDENTIFIER reduce using rule 36 - RBRACKET reduce using rule 36 - SHARP reduce using rule 36 - - -State 190 - - classmemberdeclaration -> fielddeclaration . (rule 42) - - ABSTRACT reduce using rule 42 - BOOLEAN reduce using rule 42 - CHAR reduce using rule 42 - INT reduce using rule 42 - PRIVATE reduce using rule 42 - PROTECTED reduce using rule 42 - PUBLIC reduce using rule 42 - STATIC reduce using rule 42 - IDENTIFIER reduce using rule 42 - RBRACKET reduce using rule 42 - SHARP reduce using rule 42 - - -State 191 - - classmemberdeclaration -> fundeclaration . (rule 43) - - ABSTRACT reduce using rule 43 - BOOLEAN reduce using rule 43 - CHAR reduce using rule 43 - INT reduce using rule 43 - PRIVATE reduce using rule 43 - PROTECTED reduce using rule 43 - PUBLIC reduce using rule 43 - STATIC reduce using rule 43 - IDENTIFIER reduce using rule 43 - RBRACKET reduce using rule 43 - SHARP reduce using rule 43 - - -State 192 - - fundeclaration -> funtype . IDENTIFIER ASSIGN expression SEMICOLON (rule 46) - - IDENTIFIER shift, and enter state 255 - - -State 193 - - fielddeclaration -> type . variabledeclarators SEMICOLON (rule 44) - fundeclaration -> type . IDENTIFIER ASSIGN expression SEMICOLON (rule 47) - - IDENTIFIER shift, and enter state 254 - - variabledeclaratorsgoto state 251 - variabledeclaratorgoto state 252 - variabledeclaratoridgoto state 253 - -State 194 - - simplename -> IDENTIFIER . (rule 14) - fundeclaration -> IDENTIFIER . ASSIGN expression SEMICOLON (rule 48) - - IDENTIFIER reduce using rule 14 - ASSIGN shift, and enter state 250 - LESS reduce using rule 14 - - -State 195 - - classbody -> LBRACKET RBRACKET . (rule 19) - - ABSTRACT reduce using rule 19 - CLASS reduce using rule 19 - PRIVATE reduce using rule 19 - PROTECTED reduce using rule 19 - PUBLIC reduce using rule 19 - STATIC reduce using rule 19 - %eof reduce using rule 19 - - -State 196 - - super -> EXTENDS classtype . (rule 27) - - LBRACKET reduce using rule 27 - - -State 197 - - classdeclaration -> CLASS IDENTIFIER classpara super classbody . (rule 17) - - ABSTRACT reduce using rule 17 - CLASS reduce using rule 17 - PRIVATE reduce using rule 17 - PROTECTED reduce using rule 17 - PUBLIC reduce using rule 17 - STATIC reduce using rule 17 - %eof reduce using rule 17 - - -State 198 - - classpara -> LESS classparalist GREATER . (rule 24) - - EXTENDS reduce using rule 24 - LBRACKET reduce using rule 24 - - -State 199 - - classparalist -> simplename COLON . classparalist (rule 26) - - IDENTIFIER shift, and enter state 41 - - simplename goto state 177 - classparalist goto state 249 - -State 200 - - classinstancecreationexpression -> NEW classtype LBRACE argumentlist RBRACE . (rule 128) - - NEW reduce using rule 128 - SUPER reduce using rule 128 - THIS reduce using rule 128 - INTLITERAL reduce using rule 128 - BOOLLITERAL reduce using rule 128 - JNULL reduce using rule 128 - CHARLITERAL reduce using rule 128 - STRINGLITERAL reduce using rule 128 - IDENTIFIER reduce using rule 128 - EQUAL reduce using rule 128 - LESSEQUAL reduce using rule 128 - GREATEREQUAL reduce using rule 128 - NOTEQUAL reduce using rule 128 - LOGICALOR reduce using rule 128 - INCREMENT reduce using rule 128 - DECREMENT reduce using rule 128 - LBRACE reduce using rule 128 - RBRACE reduce using rule 128 - RBRACKET reduce using rule 128 - SEMICOLON reduce using rule 128 - DOT reduce using rule 128 - LESS reduce using rule 128 - GREATER reduce using rule 128 - COLON reduce using rule 128 - PLUS reduce using rule 128 - MINUS reduce using rule 128 - MUL reduce using rule 128 - DIV reduce using rule 128 - MOD reduce using rule 128 - AND reduce using rule 128 - OR reduce using rule 128 - XOR reduce using rule 128 - SHARP reduce using rule 128 - %eof reduce using rule 128 - - -State 201 - - argumentlist -> argumentlist COLON . expression (rule 78) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 248 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 202 - - funtype -> SHARP funtypeortype LBRACE funtypelist RBRACE . (rule 49) - - IDENTIFIER reduce using rule 49 - LBRACE reduce using rule 49 - RBRACE reduce using rule 49 - DOT reduce using rule 49 - COLON reduce using rule 49 - - -State 203 - - funtypelist -> funtypelist COLON . funtypeortype (rule 53) - - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - INT shift, and enter state 115 - IDENTIFIER shift, and enter state 41 - SHARP shift, and enter state 116 - - simplename goto state 104 - classorinterfacetypegoto state 105 - funtype goto state 106 - funtypeortype goto state 247 - type goto state 108 - primitivetype goto state 109 - referencetype goto state 110 - numerictype goto state 111 - integraltype goto state 112 - -State 204 - - parameter -> LESS paralist GREATER . (rule 39) - - IDENTIFIER reduce using rule 39 - LBRACE reduce using rule 39 - RBRACE reduce using rule 39 - LBRACKET reduce using rule 39 - GREATER reduce using rule 39 - COLON reduce using rule 39 - - -State 205 - - paralist -> classorinterfacetype COLON . paralist (rule 41) - - IDENTIFIER shift, and enter state 41 - - simplename goto state 104 - classorinterfacetypegoto state 170 - paralist goto state 246 - -State 206 - - evalexpression -> postfixexpression LBRACE expressiontupel COLON expression . RBRACE (rule 141) - expressiontupel -> expressiontupel COLON expression . (rule 144) - - RBRACE shift, and enter state 245 - COLON reduce using rule 144 - - -State 207 - - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs ARROW block . RBRACKET (rule 55) - - RBRACKET shift, and enter state 244 - - -State 208 - - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs ARROW expression . RBRACKET (rule 54) - - RBRACKET shift, and enter state 243 - - -State 209 - - block -> LBRACKET . RBRACKET (rule 59) - block -> LBRACKET . blockstatements RBRACKET (rule 60) - - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - IF shift, and enter state 238 - INT shift, and enter state 115 - NEW shift, and enter state 33 - RETURN shift, and enter state 239 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - WHILE shift, and enter state 240 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - RBRACKET shift, and enter state 241 - SEMICOLON shift, and enter state 242 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 213 - classorinterfacetypegoto state 105 - funtype goto state 214 - funtypeortype goto state 215 - lambdaexpressiongoto state 23 - block goto state 216 - type goto state 108 - blockstatementsgoto state 217 - primitivetype goto state 109 - referencetype goto state 110 - blockstatement goto state 218 - numerictype goto state 111 - localvariabledeclarationstatementgoto state 219 - statement goto state 220 - integraltype goto state 112 - localvariabledeclarationgoto state 221 - statementwithouttrailingsubstatementgoto state 222 - ifthenstatementgoto state 223 - ifthenelsestatementgoto state 224 - whilestatement goto state 225 - emptystatement goto state 226 - expressionstatementgoto state 227 - returnstatementgoto state 228 - assignment goto state 229 - statementexpressiongoto state 230 - lefthandside goto state 73 - preincrementexpressiongoto state 231 - predecrementexpressiongoto state 232 - postincrementexpressiongoto state 233 - postdecrementexpressiongoto state 234 - classinstancecreationexpressiongoto state 235 - fieldaccess goto state 27 - evalstatement goto state 236 - postfixexpressiongoto state 237 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 210 - - lambdaexpressionlhs -> LBRACE formalparameterlist RBRACE . (rule 58) - - ARROW reduce using rule 58 - - -State 211 - - formalparameterlist -> formalparameterlist COLON . formalparameter (rule 68) - - IDENTIFIER shift, and enter state 159 - SHARP shift, and enter state 116 - - funtype goto state 155 - formalparametergoto state 212 - variabledeclaratoridgoto state 158 - -State 212 - - formalparameterlist -> formalparameterlist COLON formalparameter . (rule 68) - - RBRACE reduce using rule 68 - COLON reduce using rule 68 - - -State 213 - - name -> simplename . (rule 11) - classorinterfacetype -> simplename . (rule 37) - classorinterfacetype -> simplename . parameter (rule 38) - - IDENTIFIER reduce using rule 37 - INCREMENT reduce using rule 11 - DECREMENT reduce using rule 11 - LBRACE reduce using rule 11 - DOT reduce using rule 11 - ASSIGN reduce using rule 11 - LESS shift, and enter state 135 - - parameter goto state 134 - -State 214 - - funtypeortype -> funtype . (rule 50) - primaryandname -> funtype . DOT THIS (rule 152) - - IDENTIFIER reduce using rule 50 - DOT shift, and enter state 121 - - -State 215 - - localvariabledeclaration -> funtypeortype . variabledeclarators (rule 91) - - IDENTIFIER shift, and enter state 159 - - variabledeclaratorsgoto state 275 - variabledeclaratorgoto state 252 - variabledeclaratoridgoto state 253 - -State 216 - - statementwithouttrailingsubstatement -> block . (rule 92) - - BOOLEAN reduce using rule 92 - CHAR reduce using rule 92 - ELSE reduce using rule 92 - IF reduce using rule 92 - INT reduce using rule 92 - NEW reduce using rule 92 - RETURN reduce using rule 92 - SUPER reduce using rule 92 - THIS reduce using rule 92 - WHILE reduce using rule 92 - INTLITERAL reduce using rule 92 - BOOLLITERAL reduce using rule 92 - JNULL reduce using rule 92 - CHARLITERAL reduce using rule 92 - STRINGLITERAL reduce using rule 92 - IDENTIFIER reduce using rule 92 - INCREMENT reduce using rule 92 - DECREMENT reduce using rule 92 - LBRACE reduce using rule 92 - LBRACKET reduce using rule 92 - RBRACKET reduce using rule 92 - SEMICOLON reduce using rule 92 - SHARP reduce using rule 92 - - -State 217 - - block -> LBRACKET blockstatements . RBRACKET (rule 60) - blockstatements -> blockstatements . blockstatement (rule 66) - - BOOLEAN shift, and enter state 113 - CHAR shift, and enter state 114 - IF shift, and enter state 238 - INT shift, and enter state 115 - NEW shift, and enter state 33 - RETURN shift, and enter state 239 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - WHILE shift, and enter state 240 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - RBRACKET shift, and enter state 274 - SEMICOLON shift, and enter state 242 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 213 - classorinterfacetypegoto state 105 - funtype goto state 214 - funtypeortype goto state 215 - lambdaexpressiongoto state 23 - block goto state 216 - type goto state 108 - primitivetype goto state 109 - referencetype goto state 110 - blockstatement goto state 273 - numerictype goto state 111 - localvariabledeclarationstatementgoto state 219 - statement goto state 220 - integraltype goto state 112 - localvariabledeclarationgoto state 221 - statementwithouttrailingsubstatementgoto state 222 - ifthenstatementgoto state 223 - ifthenelsestatementgoto state 224 - whilestatement goto state 225 - emptystatement goto state 226 - expressionstatementgoto state 227 - returnstatementgoto state 228 - assignment goto state 229 - statementexpressiongoto state 230 - lefthandside goto state 73 - preincrementexpressiongoto state 231 - predecrementexpressiongoto state 232 - postincrementexpressiongoto state 233 - postdecrementexpressiongoto state 234 - classinstancecreationexpressiongoto state 235 - fieldaccess goto state 27 - evalstatement goto state 236 - postfixexpressiongoto state 237 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 218 - - blockstatements -> blockstatement . (rule 65) - - BOOLEAN reduce using rule 65 - CHAR reduce using rule 65 - IF reduce using rule 65 - INT reduce using rule 65 - NEW reduce using rule 65 - RETURN reduce using rule 65 - SUPER reduce using rule 65 - THIS reduce using rule 65 - WHILE reduce using rule 65 - INTLITERAL reduce using rule 65 - BOOLLITERAL reduce using rule 65 - JNULL reduce using rule 65 - CHARLITERAL reduce using rule 65 - STRINGLITERAL reduce using rule 65 - IDENTIFIER reduce using rule 65 - INCREMENT reduce using rule 65 - DECREMENT reduce using rule 65 - LBRACE reduce using rule 65 - LBRACKET reduce using rule 65 - RBRACKET reduce using rule 65 - SEMICOLON reduce using rule 65 - SHARP reduce using rule 65 - - -State 219 - - blockstatement -> localvariabledeclarationstatement . (rule 73) - - BOOLEAN reduce using rule 73 - CHAR reduce using rule 73 - IF reduce using rule 73 - INT reduce using rule 73 - NEW reduce using rule 73 - RETURN reduce using rule 73 - SUPER reduce using rule 73 - THIS reduce using rule 73 - WHILE reduce using rule 73 - INTLITERAL reduce using rule 73 - BOOLLITERAL reduce using rule 73 - JNULL reduce using rule 73 - CHARLITERAL reduce using rule 73 - STRINGLITERAL reduce using rule 73 - IDENTIFIER reduce using rule 73 - INCREMENT reduce using rule 73 - DECREMENT reduce using rule 73 - LBRACE reduce using rule 73 - LBRACKET reduce using rule 73 - RBRACKET reduce using rule 73 - SEMICOLON reduce using rule 73 - SHARP reduce using rule 73 - - -State 220 - - blockstatement -> statement . (rule 74) - - BOOLEAN reduce using rule 74 - CHAR reduce using rule 74 - IF reduce using rule 74 - INT reduce using rule 74 - NEW reduce using rule 74 - RETURN reduce using rule 74 - SUPER reduce using rule 74 - THIS reduce using rule 74 - WHILE reduce using rule 74 - INTLITERAL reduce using rule 74 - BOOLLITERAL reduce using rule 74 - JNULL reduce using rule 74 - CHARLITERAL reduce using rule 74 - STRINGLITERAL reduce using rule 74 - IDENTIFIER reduce using rule 74 - INCREMENT reduce using rule 74 - DECREMENT reduce using rule 74 - LBRACE reduce using rule 74 - LBRACKET reduce using rule 74 - RBRACKET reduce using rule 74 - SEMICOLON reduce using rule 74 - SHARP reduce using rule 74 - - -State 221 - - localvariabledeclarationstatement -> localvariabledeclaration . SEMICOLON (rule 81) - - SEMICOLON shift, and enter state 272 - - -State 222 - - statement -> statementwithouttrailingsubstatement . (rule 82) - - BOOLEAN reduce using rule 82 - CHAR reduce using rule 82 - IF reduce using rule 82 - INT reduce using rule 82 - NEW reduce using rule 82 - RETURN reduce using rule 82 - SUPER reduce using rule 82 - THIS reduce using rule 82 - WHILE reduce using rule 82 - INTLITERAL reduce using rule 82 - BOOLLITERAL reduce using rule 82 - JNULL reduce using rule 82 - CHARLITERAL reduce using rule 82 - STRINGLITERAL reduce using rule 82 - IDENTIFIER reduce using rule 82 - INCREMENT reduce using rule 82 - DECREMENT reduce using rule 82 - LBRACE reduce using rule 82 - LBRACKET reduce using rule 82 - RBRACKET reduce using rule 82 - SEMICOLON reduce using rule 82 - SHARP reduce using rule 82 - - -State 223 - - statement -> ifthenstatement . (rule 83) - - BOOLEAN reduce using rule 83 - CHAR reduce using rule 83 - IF reduce using rule 83 - INT reduce using rule 83 - NEW reduce using rule 83 - RETURN reduce using rule 83 - SUPER reduce using rule 83 - THIS reduce using rule 83 - WHILE reduce using rule 83 - INTLITERAL reduce using rule 83 - BOOLLITERAL reduce using rule 83 - JNULL reduce using rule 83 - CHARLITERAL reduce using rule 83 - STRINGLITERAL reduce using rule 83 - IDENTIFIER reduce using rule 83 - INCREMENT reduce using rule 83 - DECREMENT reduce using rule 83 - LBRACE reduce using rule 83 - LBRACKET reduce using rule 83 - RBRACKET reduce using rule 83 - SEMICOLON reduce using rule 83 - SHARP reduce using rule 83 - - -State 224 - - statement -> ifthenelsestatement . (rule 84) - - BOOLEAN reduce using rule 84 - CHAR reduce using rule 84 - IF reduce using rule 84 - INT reduce using rule 84 - NEW reduce using rule 84 - RETURN reduce using rule 84 - SUPER reduce using rule 84 - THIS reduce using rule 84 - WHILE reduce using rule 84 - INTLITERAL reduce using rule 84 - BOOLLITERAL reduce using rule 84 - JNULL reduce using rule 84 - CHARLITERAL reduce using rule 84 - STRINGLITERAL reduce using rule 84 - IDENTIFIER reduce using rule 84 - INCREMENT reduce using rule 84 - DECREMENT reduce using rule 84 - LBRACE reduce using rule 84 - LBRACKET reduce using rule 84 - RBRACKET reduce using rule 84 - SEMICOLON reduce using rule 84 - SHARP reduce using rule 84 - - -State 225 - - statement -> whilestatement . (rule 85) - - BOOLEAN reduce using rule 85 - CHAR reduce using rule 85 - IF reduce using rule 85 - INT reduce using rule 85 - NEW reduce using rule 85 - RETURN reduce using rule 85 - SUPER reduce using rule 85 - THIS reduce using rule 85 - WHILE reduce using rule 85 - INTLITERAL reduce using rule 85 - BOOLLITERAL reduce using rule 85 - JNULL reduce using rule 85 - CHARLITERAL reduce using rule 85 - STRINGLITERAL reduce using rule 85 - IDENTIFIER reduce using rule 85 - INCREMENT reduce using rule 85 - DECREMENT reduce using rule 85 - LBRACE reduce using rule 85 - LBRACKET reduce using rule 85 - RBRACKET reduce using rule 85 - SEMICOLON reduce using rule 85 - SHARP reduce using rule 85 - - -State 226 - - statementwithouttrailingsubstatement -> emptystatement . (rule 93) - - BOOLEAN reduce using rule 93 - CHAR reduce using rule 93 - ELSE reduce using rule 93 - IF reduce using rule 93 - INT reduce using rule 93 - NEW reduce using rule 93 - RETURN reduce using rule 93 - SUPER reduce using rule 93 - THIS reduce using rule 93 - WHILE reduce using rule 93 - INTLITERAL reduce using rule 93 - BOOLLITERAL reduce using rule 93 - JNULL reduce using rule 93 - CHARLITERAL reduce using rule 93 - STRINGLITERAL reduce using rule 93 - IDENTIFIER reduce using rule 93 - INCREMENT reduce using rule 93 - DECREMENT reduce using rule 93 - LBRACE reduce using rule 93 - LBRACKET reduce using rule 93 - RBRACKET reduce using rule 93 - SEMICOLON reduce using rule 93 - SHARP reduce using rule 93 - - -State 227 - - statementwithouttrailingsubstatement -> expressionstatement . (rule 94) - - BOOLEAN reduce using rule 94 - CHAR reduce using rule 94 - ELSE reduce using rule 94 - IF reduce using rule 94 - INT reduce using rule 94 - NEW reduce using rule 94 - RETURN reduce using rule 94 - SUPER reduce using rule 94 - THIS reduce using rule 94 - WHILE reduce using rule 94 - INTLITERAL reduce using rule 94 - BOOLLITERAL reduce using rule 94 - JNULL reduce using rule 94 - CHARLITERAL reduce using rule 94 - STRINGLITERAL reduce using rule 94 - IDENTIFIER reduce using rule 94 - INCREMENT reduce using rule 94 - DECREMENT reduce using rule 94 - LBRACE reduce using rule 94 - LBRACKET reduce using rule 94 - RBRACKET reduce using rule 94 - SEMICOLON reduce using rule 94 - SHARP reduce using rule 94 - - -State 228 - - statementwithouttrailingsubstatement -> returnstatement . (rule 95) - - BOOLEAN reduce using rule 95 - CHAR reduce using rule 95 - ELSE reduce using rule 95 - IF reduce using rule 95 - INT reduce using rule 95 - NEW reduce using rule 95 - RETURN reduce using rule 95 - SUPER reduce using rule 95 - THIS reduce using rule 95 - WHILE reduce using rule 95 - INTLITERAL reduce using rule 95 - BOOLLITERAL reduce using rule 95 - JNULL reduce using rule 95 - CHARLITERAL reduce using rule 95 - STRINGLITERAL reduce using rule 95 - IDENTIFIER reduce using rule 95 - INCREMENT reduce using rule 95 - DECREMENT reduce using rule 95 - LBRACE reduce using rule 95 - LBRACKET reduce using rule 95 - RBRACKET reduce using rule 95 - SEMICOLON reduce using rule 95 - SHARP reduce using rule 95 - - -State 229 - - statementexpression -> assignment . (rule 110) - - SEMICOLON reduce using rule 110 - - -State 230 - - expressionstatement -> statementexpression . SEMICOLON (rule 102) - - SEMICOLON shift, and enter state 271 - - -State 231 - - statementexpression -> preincrementexpression . (rule 111) - - SEMICOLON reduce using rule 111 - - -State 232 - - statementexpression -> predecrementexpression . (rule 112) - - SEMICOLON reduce using rule 112 - - -State 233 - - statementexpression -> postincrementexpression . (rule 113) - postfixexpression -> postincrementexpression . (rule 147) - - INCREMENT reduce using rule 147 - DECREMENT reduce using rule 147 - LBRACE reduce using rule 147 - SEMICOLON reduce using rule 113 - - -State 234 - - statementexpression -> postdecrementexpression . (rule 114) - postfixexpression -> postdecrementexpression . (rule 148) - - INCREMENT reduce using rule 148 - DECREMENT reduce using rule 148 - LBRACE reduce using rule 148 - SEMICOLON reduce using rule 114 - - -State 235 - - statementexpression -> classinstancecreationexpression . (rule 115) - primarynonewarray -> classinstancecreationexpression . (rule 159) - - INCREMENT reduce using rule 159 - DECREMENT reduce using rule 159 - LBRACE reduce using rule 159 - SEMICOLON reduce using rule 115 - DOT reduce using rule 159 - - -State 236 - - statementexpression -> evalstatement . (rule 116) - - SEMICOLON reduce using rule 116 - - -State 237 - - postincrementexpression -> postfixexpression . INCREMENT (rule 125) - postdecrementexpression -> postfixexpression . DECREMENT (rule 126) - evalstatement -> postfixexpression . LBRACE RBRACE (rule 142) - evalstatement -> postfixexpression . LBRACE expressiontupel RBRACE (rule 143) - - INCREMENT shift, and enter state 101 - DECREMENT shift, and enter state 102 - LBRACE shift, and enter state 270 - - -State 238 - - ifthenstatement -> IF . LBRACE expression RBRACE statement (rule 96) - ifthenelsestatement -> IF . LBRACE expression RBRACE statementnoshortif ELSE statement (rule 97) - - LBRACE shift, and enter state 269 - - -State 239 - - returnstatement -> RETURN . SEMICOLON (rule 103) - returnstatement -> RETURN . expression SEMICOLON (rule 104) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - SEMICOLON shift, and enter state 268 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 267 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 240 - - whilestatement -> WHILE . LBRACE expression RBRACE statement (rule 98) - - LBRACE shift, and enter state 266 - - -State 241 - - block -> LBRACKET RBRACKET . (rule 59) - - BOOLEAN reduce using rule 59 - CHAR reduce using rule 59 - ELSE reduce using rule 59 - IF reduce using rule 59 - INT reduce using rule 59 - NEW reduce using rule 59 - RETURN reduce using rule 59 - SUPER reduce using rule 59 - THIS reduce using rule 59 - WHILE reduce using rule 59 - INTLITERAL reduce using rule 59 - BOOLLITERAL reduce using rule 59 - JNULL reduce using rule 59 - CHARLITERAL reduce using rule 59 - STRINGLITERAL reduce using rule 59 - IDENTIFIER reduce using rule 59 - INCREMENT reduce using rule 59 - DECREMENT reduce using rule 59 - LBRACE reduce using rule 59 - LBRACKET reduce using rule 59 - RBRACKET reduce using rule 59 - SEMICOLON reduce using rule 59 - SHARP reduce using rule 59 - - -State 242 - - emptystatement -> SEMICOLON . (rule 101) - - BOOLEAN reduce using rule 101 - CHAR reduce using rule 101 - ELSE reduce using rule 101 - IF reduce using rule 101 - INT reduce using rule 101 - NEW reduce using rule 101 - RETURN reduce using rule 101 - SUPER reduce using rule 101 - THIS reduce using rule 101 - WHILE reduce using rule 101 - INTLITERAL reduce using rule 101 - BOOLLITERAL reduce using rule 101 - JNULL reduce using rule 101 - CHARLITERAL reduce using rule 101 - STRINGLITERAL reduce using rule 101 - IDENTIFIER reduce using rule 101 - INCREMENT reduce using rule 101 - DECREMENT reduce using rule 101 - LBRACE reduce using rule 101 - LBRACKET reduce using rule 101 - RBRACKET reduce using rule 101 - SEMICOLON reduce using rule 101 - SHARP reduce using rule 101 - - -State 243 - - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs ARROW expression RBRACKET . (rule 54) - - NEW reduce using rule 54 - SUPER reduce using rule 54 - THIS reduce using rule 54 - INTLITERAL reduce using rule 54 - BOOLLITERAL reduce using rule 54 - JNULL reduce using rule 54 - CHARLITERAL reduce using rule 54 - STRINGLITERAL reduce using rule 54 - IDENTIFIER reduce using rule 54 - EQUAL reduce using rule 54 - LESSEQUAL reduce using rule 54 - GREATEREQUAL reduce using rule 54 - NOTEQUAL reduce using rule 54 - LOGICALOR reduce using rule 54 - INCREMENT reduce using rule 54 - DECREMENT reduce using rule 54 - LBRACE reduce using rule 54 - RBRACE reduce using rule 54 - RBRACKET reduce using rule 54 - SEMICOLON reduce using rule 54 - DOT reduce using rule 54 - LESS reduce using rule 54 - GREATER reduce using rule 54 - COLON reduce using rule 54 - PLUS reduce using rule 54 - MINUS reduce using rule 54 - MUL reduce using rule 54 - DIV reduce using rule 54 - MOD reduce using rule 54 - AND reduce using rule 54 - OR reduce using rule 54 - XOR reduce using rule 54 - SHARP reduce using rule 54 - %eof reduce using rule 54 - - -State 244 - - lambdaexpression -> SHARP LBRACKET lambdaexpressionlhs ARROW block RBRACKET . (rule 55) - - NEW reduce using rule 55 - SUPER reduce using rule 55 - THIS reduce using rule 55 - INTLITERAL reduce using rule 55 - BOOLLITERAL reduce using rule 55 - JNULL reduce using rule 55 - CHARLITERAL reduce using rule 55 - STRINGLITERAL reduce using rule 55 - IDENTIFIER reduce using rule 55 - EQUAL reduce using rule 55 - LESSEQUAL reduce using rule 55 - GREATEREQUAL reduce using rule 55 - NOTEQUAL reduce using rule 55 - LOGICALOR reduce using rule 55 - INCREMENT reduce using rule 55 - DECREMENT reduce using rule 55 - LBRACE reduce using rule 55 - RBRACE reduce using rule 55 - RBRACKET reduce using rule 55 - SEMICOLON reduce using rule 55 - DOT reduce using rule 55 - LESS reduce using rule 55 - GREATER reduce using rule 55 - COLON reduce using rule 55 - PLUS reduce using rule 55 - MINUS reduce using rule 55 - MUL reduce using rule 55 - DIV reduce using rule 55 - MOD reduce using rule 55 - AND reduce using rule 55 - OR reduce using rule 55 - XOR reduce using rule 55 - SHARP reduce using rule 55 - %eof reduce using rule 55 - - -State 245 - - evalexpression -> postfixexpression LBRACE expressiontupel COLON expression RBRACE . (rule 141) - - EQUAL reduce using rule 141 - LESSEQUAL reduce using rule 141 - GREATEREQUAL reduce using rule 141 - NOTEQUAL reduce using rule 141 - LOGICALOR reduce using rule 141 - RBRACE reduce using rule 141 - RBRACKET reduce using rule 141 - SEMICOLON reduce using rule 141 - LESS reduce using rule 141 - GREATER reduce using rule 141 - COLON reduce using rule 141 - PLUS reduce using rule 141 - MINUS reduce using rule 141 - MUL reduce using rule 141 - DIV reduce using rule 141 - MOD reduce using rule 141 - AND reduce using rule 141 - OR reduce using rule 141 - XOR reduce using rule 141 - %eof reduce using rule 141 - - -State 246 - - paralist -> classorinterfacetype COLON paralist . (rule 41) - - GREATER reduce using rule 41 - - -State 247 - - funtypelist -> funtypelist COLON funtypeortype . (rule 53) - - RBRACE reduce using rule 53 - COLON reduce using rule 53 - - -State 248 - - argumentlist -> argumentlist COLON expression . (rule 78) - - RBRACE reduce using rule 78 - COLON reduce using rule 78 - - -State 249 - - classparalist -> simplename COLON classparalist . (rule 26) - - GREATER reduce using rule 26 - - -State 250 - - fundeclaration -> IDENTIFIER ASSIGN . expression SEMICOLON (rule 48) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 265 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 251 - - fielddeclaration -> type variabledeclarators . SEMICOLON (rule 44) - variabledeclarators -> variabledeclarators . COLON variabledeclarator (rule 64) - - SEMICOLON shift, and enter state 263 - COLON shift, and enter state 264 - - -State 252 - - variabledeclarators -> variabledeclarator . (rule 63) - - SEMICOLON reduce using rule 63 - COLON reduce using rule 63 - - -State 253 - - variabledeclarator -> variabledeclaratorid . (rule 72) - - SEMICOLON reduce using rule 72 - COLON reduce using rule 72 - - -State 254 - - fundeclaration -> type IDENTIFIER . ASSIGN expression SEMICOLON (rule 47) - variabledeclaratorid -> IDENTIFIER . (rule 80) - - SEMICOLON reduce using rule 80 - ASSIGN shift, and enter state 262 - COLON reduce using rule 80 - - -State 255 - - fundeclaration -> funtype IDENTIFIER . ASSIGN expression SEMICOLON (rule 46) - - ASSIGN shift, and enter state 261 - - -State 256 - - classbodydeclarations -> classbodydeclarations classbodydeclaration . (rule 29) - - ABSTRACT reduce using rule 29 - BOOLEAN reduce using rule 29 - CHAR reduce using rule 29 - INT reduce using rule 29 - PRIVATE reduce using rule 29 - PROTECTED reduce using rule 29 - PUBLIC reduce using rule 29 - STATIC reduce using rule 29 - IDENTIFIER reduce using rule 29 - RBRACKET reduce using rule 29 - SHARP reduce using rule 29 - - -State 257 - - classbody -> LBRACKET classbodydeclarations RBRACKET . (rule 20) - - ABSTRACT reduce using rule 20 - CLASS reduce using rule 20 - PRIVATE reduce using rule 20 - PROTECTED reduce using rule 20 - PUBLIC reduce using rule 20 - STATIC reduce using rule 20 - %eof reduce using rule 20 - - -State 258 - - fielddeclaration -> modifiers type . variabledeclarators SEMICOLON (rule 45) - - IDENTIFIER shift, and enter state 159 - - variabledeclaratorsgoto state 260 - variabledeclaratorgoto state 252 - variabledeclaratoridgoto state 253 - -State 259 - - classdeclaration -> modifiers CLASS IDENTIFIER classpara super classbody . (rule 18) - - ABSTRACT reduce using rule 18 - CLASS reduce using rule 18 - PRIVATE reduce using rule 18 - PROTECTED reduce using rule 18 - PUBLIC reduce using rule 18 - STATIC reduce using rule 18 - %eof reduce using rule 18 - - -State 260 - - fielddeclaration -> modifiers type variabledeclarators . SEMICOLON (rule 45) - variabledeclarators -> variabledeclarators . COLON variabledeclarator (rule 64) - - SEMICOLON shift, and enter state 286 - COLON shift, and enter state 264 - - -State 261 - - fundeclaration -> funtype IDENTIFIER ASSIGN . expression SEMICOLON (rule 46) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 285 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 262 - - fundeclaration -> type IDENTIFIER ASSIGN . expression SEMICOLON (rule 47) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 284 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 263 - - fielddeclaration -> type variabledeclarators SEMICOLON . (rule 44) - - ABSTRACT reduce using rule 44 - BOOLEAN reduce using rule 44 - CHAR reduce using rule 44 - INT reduce using rule 44 - PRIVATE reduce using rule 44 - PROTECTED reduce using rule 44 - PUBLIC reduce using rule 44 - STATIC reduce using rule 44 - IDENTIFIER reduce using rule 44 - RBRACKET reduce using rule 44 - SHARP reduce using rule 44 - - -State 264 - - variabledeclarators -> variabledeclarators COLON . variabledeclarator (rule 64) - - IDENTIFIER shift, and enter state 159 - - variabledeclaratorgoto state 283 - variabledeclaratoridgoto state 253 - -State 265 - - fundeclaration -> IDENTIFIER ASSIGN expression . SEMICOLON (rule 48) - - SEMICOLON shift, and enter state 282 - - -State 266 - - whilestatement -> WHILE LBRACE . expression RBRACE statement (rule 98) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 281 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 267 - - returnstatement -> RETURN expression . SEMICOLON (rule 104) - - SEMICOLON shift, and enter state 280 - - -State 268 - - returnstatement -> RETURN SEMICOLON . (rule 103) - - BOOLEAN reduce using rule 103 - CHAR reduce using rule 103 - ELSE reduce using rule 103 - IF reduce using rule 103 - INT reduce using rule 103 - NEW reduce using rule 103 - RETURN reduce using rule 103 - SUPER reduce using rule 103 - THIS reduce using rule 103 - WHILE reduce using rule 103 - INTLITERAL reduce using rule 103 - BOOLLITERAL reduce using rule 103 - JNULL reduce using rule 103 - CHARLITERAL reduce using rule 103 - STRINGLITERAL reduce using rule 103 - IDENTIFIER reduce using rule 103 - INCREMENT reduce using rule 103 - DECREMENT reduce using rule 103 - LBRACE reduce using rule 103 - LBRACKET reduce using rule 103 - RBRACKET reduce using rule 103 - SEMICOLON reduce using rule 103 - SHARP reduce using rule 103 - - -State 269 - - ifthenstatement -> IF LBRACE . expression RBRACE statement (rule 96) - ifthenelsestatement -> IF LBRACE . expression RBRACE statementnoshortif ELSE statement (rule 97) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 279 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 270 - - evalstatement -> postfixexpression LBRACE . RBRACE (rule 142) - evalstatement -> postfixexpression LBRACE . expressiontupel RBRACE (rule 143) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - RBRACE shift, and enter state 278 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 276 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - expressiontupelgoto state 277 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 271 - - expressionstatement -> statementexpression SEMICOLON . (rule 102) - - BOOLEAN reduce using rule 102 - CHAR reduce using rule 102 - ELSE reduce using rule 102 - IF reduce using rule 102 - INT reduce using rule 102 - NEW reduce using rule 102 - RETURN reduce using rule 102 - SUPER reduce using rule 102 - THIS reduce using rule 102 - WHILE reduce using rule 102 - INTLITERAL reduce using rule 102 - BOOLLITERAL reduce using rule 102 - JNULL reduce using rule 102 - CHARLITERAL reduce using rule 102 - STRINGLITERAL reduce using rule 102 - IDENTIFIER reduce using rule 102 - INCREMENT reduce using rule 102 - DECREMENT reduce using rule 102 - LBRACE reduce using rule 102 - LBRACKET reduce using rule 102 - RBRACKET reduce using rule 102 - SEMICOLON reduce using rule 102 - SHARP reduce using rule 102 - - -State 272 - - localvariabledeclarationstatement -> localvariabledeclaration SEMICOLON . (rule 81) - - BOOLEAN reduce using rule 81 - CHAR reduce using rule 81 - IF reduce using rule 81 - INT reduce using rule 81 - NEW reduce using rule 81 - RETURN reduce using rule 81 - SUPER reduce using rule 81 - THIS reduce using rule 81 - WHILE reduce using rule 81 - INTLITERAL reduce using rule 81 - BOOLLITERAL reduce using rule 81 - JNULL reduce using rule 81 - CHARLITERAL reduce using rule 81 - STRINGLITERAL reduce using rule 81 - IDENTIFIER reduce using rule 81 - INCREMENT reduce using rule 81 - DECREMENT reduce using rule 81 - LBRACE reduce using rule 81 - LBRACKET reduce using rule 81 - RBRACKET reduce using rule 81 - SEMICOLON reduce using rule 81 - SHARP reduce using rule 81 - - -State 273 - - blockstatements -> blockstatements blockstatement . (rule 66) - - BOOLEAN reduce using rule 66 - CHAR reduce using rule 66 - IF reduce using rule 66 - INT reduce using rule 66 - NEW reduce using rule 66 - RETURN reduce using rule 66 - SUPER reduce using rule 66 - THIS reduce using rule 66 - WHILE reduce using rule 66 - INTLITERAL reduce using rule 66 - BOOLLITERAL reduce using rule 66 - JNULL reduce using rule 66 - CHARLITERAL reduce using rule 66 - STRINGLITERAL reduce using rule 66 - IDENTIFIER reduce using rule 66 - INCREMENT reduce using rule 66 - DECREMENT reduce using rule 66 - LBRACE reduce using rule 66 - LBRACKET reduce using rule 66 - RBRACKET reduce using rule 66 - SEMICOLON reduce using rule 66 - SHARP reduce using rule 66 - - -State 274 - - block -> LBRACKET blockstatements RBRACKET . (rule 60) - - BOOLEAN reduce using rule 60 - CHAR reduce using rule 60 - ELSE reduce using rule 60 - IF reduce using rule 60 - INT reduce using rule 60 - NEW reduce using rule 60 - RETURN reduce using rule 60 - SUPER reduce using rule 60 - THIS reduce using rule 60 - WHILE reduce using rule 60 - INTLITERAL reduce using rule 60 - BOOLLITERAL reduce using rule 60 - JNULL reduce using rule 60 - CHARLITERAL reduce using rule 60 - STRINGLITERAL reduce using rule 60 - IDENTIFIER reduce using rule 60 - INCREMENT reduce using rule 60 - DECREMENT reduce using rule 60 - LBRACE reduce using rule 60 - LBRACKET reduce using rule 60 - RBRACKET reduce using rule 60 - SEMICOLON reduce using rule 60 - SHARP reduce using rule 60 - - -State 275 - - variabledeclarators -> variabledeclarators . COLON variabledeclarator (rule 64) - localvariabledeclaration -> funtypeortype variabledeclarators . (rule 91) - - SEMICOLON reduce using rule 91 - COLON shift, and enter state 264 - - -State 276 - - expressiontupel -> expression . (rule 145) - - RBRACE reduce using rule 145 - COLON reduce using rule 145 - - -State 277 - - evalstatement -> postfixexpression LBRACE expressiontupel . RBRACE (rule 143) - expressiontupel -> expressiontupel . COLON expression (rule 144) - - RBRACE shift, and enter state 291 - COLON shift, and enter state 292 - - -State 278 - - evalstatement -> postfixexpression LBRACE RBRACE . (rule 142) - - SEMICOLON reduce using rule 142 - - -State 279 - - ifthenstatement -> IF LBRACE expression . RBRACE statement (rule 96) - ifthenelsestatement -> IF LBRACE expression . RBRACE statementnoshortif ELSE statement (rule 97) - - RBRACE shift, and enter state 290 - - -State 280 - - returnstatement -> RETURN expression SEMICOLON . (rule 104) - - BOOLEAN reduce using rule 104 - CHAR reduce using rule 104 - ELSE reduce using rule 104 - IF reduce using rule 104 - INT reduce using rule 104 - NEW reduce using rule 104 - RETURN reduce using rule 104 - SUPER reduce using rule 104 - THIS reduce using rule 104 - WHILE reduce using rule 104 - INTLITERAL reduce using rule 104 - BOOLLITERAL reduce using rule 104 - JNULL reduce using rule 104 - CHARLITERAL reduce using rule 104 - STRINGLITERAL reduce using rule 104 - IDENTIFIER reduce using rule 104 - INCREMENT reduce using rule 104 - DECREMENT reduce using rule 104 - LBRACE reduce using rule 104 - LBRACKET reduce using rule 104 - RBRACKET reduce using rule 104 - SEMICOLON reduce using rule 104 - SHARP reduce using rule 104 - - -State 281 - - whilestatement -> WHILE LBRACE expression . RBRACE statement (rule 98) - - RBRACE shift, and enter state 289 - - -State 282 - - fundeclaration -> IDENTIFIER ASSIGN expression SEMICOLON . (rule 48) - - ABSTRACT reduce using rule 48 - BOOLEAN reduce using rule 48 - CHAR reduce using rule 48 - INT reduce using rule 48 - PRIVATE reduce using rule 48 - PROTECTED reduce using rule 48 - PUBLIC reduce using rule 48 - STATIC reduce using rule 48 - IDENTIFIER reduce using rule 48 - RBRACKET reduce using rule 48 - SHARP reduce using rule 48 - - -State 283 - - variabledeclarators -> variabledeclarators COLON variabledeclarator . (rule 64) - - SEMICOLON reduce using rule 64 - COLON reduce using rule 64 - - -State 284 - - fundeclaration -> type IDENTIFIER ASSIGN expression . SEMICOLON (rule 47) - - SEMICOLON shift, and enter state 288 - - -State 285 - - fundeclaration -> funtype IDENTIFIER ASSIGN expression . SEMICOLON (rule 46) - - SEMICOLON shift, and enter state 287 - - -State 286 - - fielddeclaration -> modifiers type variabledeclarators SEMICOLON . (rule 45) - - ABSTRACT reduce using rule 45 - BOOLEAN reduce using rule 45 - CHAR reduce using rule 45 - INT reduce using rule 45 - PRIVATE reduce using rule 45 - PROTECTED reduce using rule 45 - PUBLIC reduce using rule 45 - STATIC reduce using rule 45 - IDENTIFIER reduce using rule 45 - RBRACKET reduce using rule 45 - SHARP reduce using rule 45 - - -State 287 - - fundeclaration -> funtype IDENTIFIER ASSIGN expression SEMICOLON . (rule 46) - - ABSTRACT reduce using rule 46 - BOOLEAN reduce using rule 46 - CHAR reduce using rule 46 - INT reduce using rule 46 - PRIVATE reduce using rule 46 - PROTECTED reduce using rule 46 - PUBLIC reduce using rule 46 - STATIC reduce using rule 46 - IDENTIFIER reduce using rule 46 - RBRACKET reduce using rule 46 - SHARP reduce using rule 46 - - -State 288 - - fundeclaration -> type IDENTIFIER ASSIGN expression SEMICOLON . (rule 47) - - ABSTRACT reduce using rule 47 - BOOLEAN reduce using rule 47 - CHAR reduce using rule 47 - INT reduce using rule 47 - PRIVATE reduce using rule 47 - PROTECTED reduce using rule 47 - PUBLIC reduce using rule 47 - STATIC reduce using rule 47 - IDENTIFIER reduce using rule 47 - RBRACKET reduce using rule 47 - SHARP reduce using rule 47 - - -State 289 - - whilestatement -> WHILE LBRACE expression RBRACE . statement (rule 98) - - IF shift, and enter state 238 - NEW shift, and enter state 33 - RETURN shift, and enter state 239 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - WHILE shift, and enter state 240 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - SEMICOLON shift, and enter state 242 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - block goto state 216 - statement goto state 301 - statementwithouttrailingsubstatementgoto state 222 - ifthenstatementgoto state 223 - ifthenelsestatementgoto state 224 - whilestatement goto state 225 - emptystatement goto state 226 - expressionstatementgoto state 227 - returnstatementgoto state 228 - assignment goto state 229 - statementexpressiongoto state 230 - lefthandside goto state 73 - preincrementexpressiongoto state 231 - predecrementexpressiongoto state 232 - postincrementexpressiongoto state 233 - postdecrementexpressiongoto state 234 - classinstancecreationexpressiongoto state 235 - fieldaccess goto state 27 - evalstatement goto state 236 - postfixexpressiongoto state 237 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 290 - - ifthenstatement -> IF LBRACE expression RBRACE . statement (rule 96) - ifthenelsestatement -> IF LBRACE expression RBRACE . statementnoshortif ELSE statement (rule 97) - - IF shift, and enter state 299 - NEW shift, and enter state 33 - RETURN shift, and enter state 239 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - WHILE shift, and enter state 300 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - SEMICOLON shift, and enter state 242 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - block goto state 216 - statement goto state 294 - statementwithouttrailingsubstatementgoto state 295 - ifthenstatementgoto state 223 - ifthenelsestatementgoto state 224 - whilestatement goto state 225 - emptystatement goto state 226 - expressionstatementgoto state 227 - returnstatementgoto state 228 - statementnoshortifgoto state 296 - assignment goto state 229 - statementexpressiongoto state 230 - ifthenelsestatementnoshortifgoto state 297 - whilestatementnoshortifgoto state 298 - lefthandside goto state 73 - preincrementexpressiongoto state 231 - predecrementexpressiongoto state 232 - postincrementexpressiongoto state 233 - postdecrementexpressiongoto state 234 - classinstancecreationexpressiongoto state 235 - fieldaccess goto state 27 - evalstatement goto state 236 - postfixexpressiongoto state 237 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 291 - - evalstatement -> postfixexpression LBRACE expressiontupel RBRACE . (rule 143) - - SEMICOLON reduce using rule 143 - - -State 292 - - expressiontupel -> expressiontupel COLON . expression (rule 144) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 293 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 293 - - expressiontupel -> expressiontupel COLON expression . (rule 144) - - RBRACE reduce using rule 144 - COLON reduce using rule 144 - - -State 294 - - ifthenstatement -> IF LBRACE expression RBRACE statement . (rule 96) - - BOOLEAN reduce using rule 96 - CHAR reduce using rule 96 - IF reduce using rule 96 - INT reduce using rule 96 - NEW reduce using rule 96 - RETURN reduce using rule 96 - SUPER reduce using rule 96 - THIS reduce using rule 96 - WHILE reduce using rule 96 - INTLITERAL reduce using rule 96 - BOOLLITERAL reduce using rule 96 - JNULL reduce using rule 96 - CHARLITERAL reduce using rule 96 - STRINGLITERAL reduce using rule 96 - IDENTIFIER reduce using rule 96 - INCREMENT reduce using rule 96 - DECREMENT reduce using rule 96 - LBRACE reduce using rule 96 - LBRACKET reduce using rule 96 - RBRACKET reduce using rule 96 - SEMICOLON reduce using rule 96 - SHARP reduce using rule 96 - - -State 295 - - statement -> statementwithouttrailingsubstatement . (rule 82) - statementnoshortif -> statementwithouttrailingsubstatement . (rule 105) - - BOOLEAN reduce using rule 82 - CHAR reduce using rule 82 - ELSE reduce using rule 105 - IF reduce using rule 82 - INT reduce using rule 82 - NEW reduce using rule 82 - RETURN reduce using rule 82 - SUPER reduce using rule 82 - THIS reduce using rule 82 - WHILE reduce using rule 82 - INTLITERAL reduce using rule 82 - BOOLLITERAL reduce using rule 82 - JNULL reduce using rule 82 - CHARLITERAL reduce using rule 82 - STRINGLITERAL reduce using rule 82 - IDENTIFIER reduce using rule 82 - INCREMENT reduce using rule 82 - DECREMENT reduce using rule 82 - LBRACE reduce using rule 82 - LBRACKET reduce using rule 82 - RBRACKET reduce using rule 82 - SEMICOLON reduce using rule 82 - SHARP reduce using rule 82 - - -State 296 - - ifthenelsestatement -> IF LBRACE expression RBRACE statementnoshortif . ELSE statement (rule 97) - - ELSE shift, and enter state 304 - - -State 297 - - statementnoshortif -> ifthenelsestatementnoshortif . (rule 106) - - ELSE reduce using rule 106 - - -State 298 - - statementnoshortif -> whilestatementnoshortif . (rule 107) - - ELSE reduce using rule 107 - - -State 299 - - ifthenstatement -> IF . LBRACE expression RBRACE statement (rule 96) - ifthenelsestatement -> IF . LBRACE expression RBRACE statementnoshortif ELSE statement (rule 97) - ifthenelsestatementnoshortif -> IF . LBRACE expression RBRACE statementnoshortif ELSE statementnoshortif (rule 117) - - LBRACE shift, and enter state 303 - - -State 300 - - whilestatement -> WHILE . LBRACE expression RBRACE statement (rule 98) - whilestatementnoshortif -> WHILE . LBRACE expression RBRACE statementnoshortif (rule 118) - - LBRACE shift, and enter state 302 - - -State 301 - - whilestatement -> WHILE LBRACE expression RBRACE statement . (rule 98) - - BOOLEAN reduce using rule 98 - CHAR reduce using rule 98 - IF reduce using rule 98 - INT reduce using rule 98 - NEW reduce using rule 98 - RETURN reduce using rule 98 - SUPER reduce using rule 98 - THIS reduce using rule 98 - WHILE reduce using rule 98 - INTLITERAL reduce using rule 98 - BOOLLITERAL reduce using rule 98 - JNULL reduce using rule 98 - CHARLITERAL reduce using rule 98 - STRINGLITERAL reduce using rule 98 - IDENTIFIER reduce using rule 98 - INCREMENT reduce using rule 98 - DECREMENT reduce using rule 98 - LBRACE reduce using rule 98 - LBRACKET reduce using rule 98 - RBRACKET reduce using rule 98 - SEMICOLON reduce using rule 98 - SHARP reduce using rule 98 - - -State 302 - - whilestatement -> WHILE LBRACE . expression RBRACE statement (rule 98) - whilestatementnoshortif -> WHILE LBRACE . expression RBRACE statementnoshortif (rule 118) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 307 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 303 - - ifthenstatement -> IF LBRACE . expression RBRACE statement (rule 96) - ifthenelsestatement -> IF LBRACE . expression RBRACE statementnoshortif ELSE statement (rule 97) - ifthenelsestatementnoshortif -> IF LBRACE . expression RBRACE statementnoshortif ELSE statementnoshortif (rule 117) - - NEW shift, and enter state 33 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - PLUS shift, and enter state 62 - MINUS shift, and enter state 63 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - expression goto state 306 - assignmentexpressiongoto state 70 - conditionalexpressiongoto state 71 - assignment goto state 72 - conditionalorexpressiongoto state 65 - lefthandside goto state 73 - preincrementexpressiongoto state 45 - predecrementexpressiongoto state 46 - postincrementexpressiongoto state 24 - postdecrementexpressiongoto state 25 - classinstancecreationexpressiongoto state 26 - conditionalandexpressiongoto state 47 - fieldaccess goto state 27 - unaryexpressiongoto state 48 - evalexpression goto state 49 - postfixexpressiongoto state 50 - primaryandname goto state 29 - primary goto state 30 - inclusiveorexpressiongoto state 51 - primarynonewarraygoto state 31 - unaryexpressionnotplusminusgoto state 52 - exclusiveorexpressiongoto state 53 - literal goto state 32 - andexpression goto state 54 - equalityexpressiongoto state 55 - relationalexpressiongoto state 56 - shiftexpressiongoto state 57 - additiveexpressiongoto state 58 - multiplicativeexpressiongoto state 59 - -State 304 - - ifthenelsestatement -> IF LBRACE expression RBRACE statementnoshortif ELSE . statement (rule 97) - - IF shift, and enter state 238 - NEW shift, and enter state 33 - RETURN shift, and enter state 239 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - WHILE shift, and enter state 240 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - SEMICOLON shift, and enter state 242 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - block goto state 216 - statement goto state 305 - statementwithouttrailingsubstatementgoto state 222 - ifthenstatementgoto state 223 - ifthenelsestatementgoto state 224 - whilestatement goto state 225 - emptystatement goto state 226 - expressionstatementgoto state 227 - returnstatementgoto state 228 - assignment goto state 229 - statementexpressiongoto state 230 - lefthandside goto state 73 - preincrementexpressiongoto state 231 - predecrementexpressiongoto state 232 - postincrementexpressiongoto state 233 - postdecrementexpressiongoto state 234 - classinstancecreationexpressiongoto state 235 - fieldaccess goto state 27 - evalstatement goto state 236 - postfixexpressiongoto state 237 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 305 - - ifthenelsestatement -> IF LBRACE expression RBRACE statementnoshortif ELSE statement . (rule 97) - - BOOLEAN reduce using rule 97 - CHAR reduce using rule 97 - IF reduce using rule 97 - INT reduce using rule 97 - NEW reduce using rule 97 - RETURN reduce using rule 97 - SUPER reduce using rule 97 - THIS reduce using rule 97 - WHILE reduce using rule 97 - INTLITERAL reduce using rule 97 - BOOLLITERAL reduce using rule 97 - JNULL reduce using rule 97 - CHARLITERAL reduce using rule 97 - STRINGLITERAL reduce using rule 97 - IDENTIFIER reduce using rule 97 - INCREMENT reduce using rule 97 - DECREMENT reduce using rule 97 - LBRACE reduce using rule 97 - LBRACKET reduce using rule 97 - RBRACKET reduce using rule 97 - SEMICOLON reduce using rule 97 - SHARP reduce using rule 97 - - -State 306 - - ifthenstatement -> IF LBRACE expression . RBRACE statement (rule 96) - ifthenelsestatement -> IF LBRACE expression . RBRACE statementnoshortif ELSE statement (rule 97) - ifthenelsestatementnoshortif -> IF LBRACE expression . RBRACE statementnoshortif ELSE statementnoshortif (rule 117) - - RBRACE shift, and enter state 309 - - -State 307 - - whilestatement -> WHILE LBRACE expression . RBRACE statement (rule 98) - whilestatementnoshortif -> WHILE LBRACE expression . RBRACE statementnoshortif (rule 118) - - RBRACE shift, and enter state 308 - - -State 308 - - whilestatement -> WHILE LBRACE expression RBRACE . statement (rule 98) - whilestatementnoshortif -> WHILE LBRACE expression RBRACE . statementnoshortif (rule 118) - - IF shift, and enter state 299 - NEW shift, and enter state 33 - RETURN shift, and enter state 239 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - WHILE shift, and enter state 300 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - SEMICOLON shift, and enter state 242 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - block goto state 216 - statement goto state 301 - statementwithouttrailingsubstatementgoto state 295 - ifthenstatementgoto state 223 - ifthenelsestatementgoto state 224 - whilestatement goto state 225 - emptystatement goto state 226 - expressionstatementgoto state 227 - returnstatementgoto state 228 - statementnoshortifgoto state 311 - assignment goto state 229 - statementexpressiongoto state 230 - ifthenelsestatementnoshortifgoto state 297 - whilestatementnoshortifgoto state 298 - lefthandside goto state 73 - preincrementexpressiongoto state 231 - predecrementexpressiongoto state 232 - postincrementexpressiongoto state 233 - postdecrementexpressiongoto state 234 - classinstancecreationexpressiongoto state 235 - fieldaccess goto state 27 - evalstatement goto state 236 - postfixexpressiongoto state 237 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 309 - - ifthenstatement -> IF LBRACE expression RBRACE . statement (rule 96) - ifthenelsestatement -> IF LBRACE expression RBRACE . statementnoshortif ELSE statement (rule 97) - ifthenelsestatementnoshortif -> IF LBRACE expression RBRACE . statementnoshortif ELSE statementnoshortif (rule 117) - - IF shift, and enter state 299 - NEW shift, and enter state 33 - RETURN shift, and enter state 239 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - WHILE shift, and enter state 300 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - SEMICOLON shift, and enter state 242 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - block goto state 216 - statement goto state 294 - statementwithouttrailingsubstatementgoto state 295 - ifthenstatementgoto state 223 - ifthenelsestatementgoto state 224 - whilestatement goto state 225 - emptystatement goto state 226 - expressionstatementgoto state 227 - returnstatementgoto state 228 - statementnoshortifgoto state 310 - assignment goto state 229 - statementexpressiongoto state 230 - ifthenelsestatementnoshortifgoto state 297 - whilestatementnoshortifgoto state 298 - lefthandside goto state 73 - preincrementexpressiongoto state 231 - predecrementexpressiongoto state 232 - postincrementexpressiongoto state 233 - postdecrementexpressiongoto state 234 - classinstancecreationexpressiongoto state 235 - fieldaccess goto state 27 - evalstatement goto state 236 - postfixexpressiongoto state 237 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 310 - - ifthenelsestatement -> IF LBRACE expression RBRACE statementnoshortif . ELSE statement (rule 97) - ifthenelsestatementnoshortif -> IF LBRACE expression RBRACE statementnoshortif . ELSE statementnoshortif (rule 117) - - ELSE shift, and enter state 312 - - -State 311 - - whilestatementnoshortif -> WHILE LBRACE expression RBRACE statementnoshortif . (rule 118) - - ELSE reduce using rule 118 - - -State 312 - - ifthenelsestatement -> IF LBRACE expression RBRACE statementnoshortif ELSE . statement (rule 97) - ifthenelsestatementnoshortif -> IF LBRACE expression RBRACE statementnoshortif ELSE . statementnoshortif (rule 117) - - IF shift, and enter state 299 - NEW shift, and enter state 33 - RETURN shift, and enter state 239 - SUPER shift, and enter state 34 - THIS shift, and enter state 35 - WHILE shift, and enter state 300 - INTLITERAL shift, and enter state 36 - BOOLLITERAL shift, and enter state 37 - JNULL shift, and enter state 38 - CHARLITERAL shift, and enter state 39 - STRINGLITERAL shift, and enter state 40 - IDENTIFIER shift, and enter state 41 - INCREMENT shift, and enter state 60 - DECREMENT shift, and enter state 61 - LBRACE shift, and enter state 42 - LBRACKET shift, and enter state 209 - SEMICOLON shift, and enter state 242 - SHARP shift, and enter state 43 - - name goto state 68 - qualifiedname goto state 20 - simplename goto state 21 - funtype goto state 22 - lambdaexpressiongoto state 23 - block goto state 216 - statement goto state 305 - statementwithouttrailingsubstatementgoto state 295 - ifthenstatementgoto state 223 - ifthenelsestatementgoto state 224 - whilestatement goto state 225 - emptystatement goto state 226 - expressionstatementgoto state 227 - returnstatementgoto state 228 - statementnoshortifgoto state 313 - assignment goto state 229 - statementexpressiongoto state 230 - ifthenelsestatementnoshortifgoto state 297 - whilestatementnoshortifgoto state 298 - lefthandside goto state 73 - preincrementexpressiongoto state 231 - predecrementexpressiongoto state 232 - postincrementexpressiongoto state 233 - postdecrementexpressiongoto state 234 - classinstancecreationexpressiongoto state 235 - fieldaccess goto state 27 - evalstatement goto state 236 - postfixexpressiongoto state 237 - primaryandname goto state 29 - primary goto state 30 - primarynonewarraygoto state 31 - literal goto state 32 - -State 313 - - ifthenelsestatementnoshortif -> IF LBRACE expression RBRACE statementnoshortif ELSE statementnoshortif . (rule 117) - - ELSE reduce using rule 117 - - ------------------------------------------------------------------------------ -Grammar Totals ------------------------------------------------------------------------------ -Number of rules: 188 -Number of terminals: 85 -Number of non-terminals: 96 -Number of states: 314 - diff --git a/notizen/stan/lambdaBytecode/Fun0.java b/notizen/stan/lambdaBytecode/Fun0.java deleted file mode 100644 index a7e33f14..00000000 --- a/notizen/stan/lambdaBytecode/Fun0.java +++ /dev/null @@ -1,3 +0,0 @@ -interface Fun0{ -A apply(); -} diff --git a/notizen/stan/lambdaBytecode/Fun1.java b/notizen/stan/lambdaBytecode/Fun1.java deleted file mode 100644 index 8a25b115..00000000 --- a/notizen/stan/lambdaBytecode/Fun1.java +++ /dev/null @@ -1,7 +0,0 @@ -interface Fun1{ -A apply(B p); -} - -class TestFun1{ - A apply(A a){return a;} -} diff --git a/notizen/stan/lambdaBytecode/GenericTest.java b/notizen/stan/lambdaBytecode/GenericTest.java deleted file mode 100644 index 81701939..00000000 --- a/notizen/stan/lambdaBytecode/GenericTest.java +++ /dev/null @@ -1,5 +0,0 @@ -class GenericTest{ -GenericTest field; -void methode(A a, B b){ - } -} diff --git a/notizen/stan/lambdaBytecode/Identity.java b/notizen/stan/lambdaBytecode/Identity.java deleted file mode 100644 index 29727c19..00000000 --- a/notizen/stan/lambdaBytecode/Identity.java +++ /dev/null @@ -1,5 +0,0 @@ -class Identity{ - -Fun1 op = (x)->x; - -} diff --git a/notizen/stan/lambdaBytecode/InnerClass.java b/notizen/stan/lambdaBytecode/InnerClass.java deleted file mode 100644 index 7c76b914..00000000 --- a/notizen/stan/lambdaBytecode/InnerClass.java +++ /dev/null @@ -1,10 +0,0 @@ -class InnerClass{ - -private class TestKlasse{ - void methode(){} -} - -void methode(){ -new TestKlasse().methode(); -} -} diff --git a/notizen/stan/lambdaBytecode/Lambda1.decompile b/notizen/stan/lambdaBytecode/Lambda1.decompile deleted file mode 100644 index 94ad5183..00000000 --- a/notizen/stan/lambdaBytecode/Lambda1.decompile +++ /dev/null @@ -1,106 +0,0 @@ -Classfile /home/janulrich/Development/eclipseworkspace/JavaCompilerCore/notizen/stan/lambdaBytecode/Lambda3.class - Last modified 20.08.2015; size 903 bytes - MD5 checksum acb53c553588f3c919f2b0e6359bbd94 -class Lambda3 - InnerClasses: - public static final #46= #45 of #49; //Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles - BootstrapMethods: - 0: #18 invokestatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - Method arguments: - #19 ()V - #20 invokestatic Lambda3.lambda$methode$0:()V - #19 ()V - minor version: 0 - major version: 52 - flags: ACC_SUPER -Constant pool: - #1 = Methodref #8.#16 // java/lang/Object."":()V - #2 = InvokeDynamic #0:#21 // #0:run:()Ljava/lang/Runnable; - #3 = Methodref #7.#22 // Lambda3.methode:()Ljava/lang/Runnable; - #4 = InterfaceMethodref #23.#24 // java/lang/Runnable.run:()V - #5 = Fieldref #25.#26 // java/lang/System.out:Ljava/io/PrintStream; - #6 = Methodref #27.#28 // java/io/PrintStream.println:()V - #7 = Class #29 // Lambda3 - #8 = Class #30 // java/lang/Object - #9 = Utf8 - #10 = Utf8 ()V - #11 = Utf8 Code - #12 = Utf8 methode - #13 = Utf8 ()Ljava/lang/Runnable; - #14 = Utf8 methode2 - #15 = Utf8 lambda$methode$0 - #16 = NameAndType #9:#10 // "":()V - #17 = Utf8 BootstrapMethods - #18 = MethodHandle #6:#31 // invokestatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #19 = MethodType #10 // ()V - #20 = MethodHandle #6:#32 // invokestatic Lambda3.lambda$methode$0:()V - #21 = NameAndType #33:#13 // run:()Ljava/lang/Runnable; - #22 = NameAndType #12:#13 // methode:()Ljava/lang/Runnable; - #23 = Class #34 // java/lang/Runnable - #24 = NameAndType #33:#10 // run:()V - #25 = Class #35 // java/lang/System - #26 = NameAndType #36:#37 // out:Ljava/io/PrintStream; - #27 = Class #38 // java/io/PrintStream - #28 = NameAndType #39:#10 // println:()V - #29 = Utf8 Lambda3 - #30 = Utf8 java/lang/Object - #31 = Methodref #40.#41 // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #32 = Methodref #7.#42 // Lambda3.lambda$methode$0:()V - #33 = Utf8 run - #34 = Utf8 java/lang/Runnable - #35 = Utf8 java/lang/System - #36 = Utf8 out - #37 = Utf8 Ljava/io/PrintStream; - #38 = Utf8 java/io/PrintStream - #39 = Utf8 println - #40 = Class #43 // java/lang/invoke/LambdaMetafactory - #41 = NameAndType #44:#48 // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #42 = NameAndType #15:#10 // lambda$methode$0:()V - #43 = Utf8 java/lang/invoke/LambdaMetafactory - #44 = Utf8 metafactory - #45 = Class #50 // java/lang/invoke/MethodHandles$Lookup - #46 = Utf8 Lookup - #47 = Utf8 InnerClasses - #48 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #49 = Class #51 // java/lang/invoke/MethodHandles - #50 = Utf8 java/lang/invoke/MethodHandles$Lookup - #51 = Utf8 java/lang/invoke/MethodHandles -{ - Lambda3(); - Signature: ()V - flags: - Code: - stack=1, locals=1, args_size=1 - 0: aload_0 - 1: invokespecial #1 // Method java/lang/Object."":()V - 4: return - - java.lang.Runnable methode(); - Signature: ()Ljava/lang/Runnable; - flags: - Code: - stack=1, locals=1, args_size=1 - 0: invokedynamic #2, 0 // InvokeDynamic #0:run:()Ljava/lang/Runnable; - 5: areturn - - void methode2(); - Signature: ()V - flags: - Code: - stack=1, locals=1, args_size=1 - 0: aload_0 - 1: invokevirtual #3 // Method methode:()Ljava/lang/Runnable; - 4: invokeinterface #4, 1 // InterfaceMethod java/lang/Runnable.run:()V - 9: return - - private static void lambda$methode$0(); - Signature: ()V - flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC - Code: - stack=1, locals=0, args_size=0 - 0: getstatic #5 // Field java/lang/System.out:Ljava/io/PrintStream; - 3: invokevirtual #6 // Method java/io/PrintStream.println:()V - 6: return -} - - diff --git a/notizen/stan/lambdaBytecode/Lambda1.java b/notizen/stan/lambdaBytecode/Lambda1.java deleted file mode 100644 index 858e00b4..00000000 --- a/notizen/stan/lambdaBytecode/Lambda1.java +++ /dev/null @@ -1,12 +0,0 @@ - -class Lambda1{ - -Runnable methode(){ - return ()-> System.out.println(); -} - -void methode2(){ - methode().run(); -} - -} diff --git a/notizen/stan/lambdaBytecode/Lambda2.java b/notizen/stan/lambdaBytecode/Lambda2.java deleted file mode 100644 index b2d6535b..00000000 --- a/notizen/stan/lambdaBytecode/Lambda2.java +++ /dev/null @@ -1,4 +0,0 @@ - -class Lambda2 { - Fun1> op = (f) -> f.apply(new Integer(2)); -} diff --git a/notizen/stan/lambdaBytecode/Lambda3.decompile b/notizen/stan/lambdaBytecode/Lambda3.decompile deleted file mode 100644 index 403a0596..00000000 --- a/notizen/stan/lambdaBytecode/Lambda3.decompile +++ /dev/null @@ -1,110 +0,0 @@ -Classfile /home/janulrich/Development/eclipseworkspace/JavaCompilerCore/notizen/stan/lambdaBytecode/Lambda3.class - Last modified 20.08.2015; size 963 bytes - MD5 checksum 11b76982e895a4f22c01832b3da258ef -class Lambda3 - InnerClasses: - public static final #48= #47 of #51; //Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles - BootstrapMethods: - 0: #18 invokestatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - Method arguments: - #19 ()V - #20 invokespecial Lambda3.lambda$methode$0:()V - #19 ()V - minor version: 0 - major version: 52 - flags: ACC_SUPER -Constant pool: - #1 = Methodref #8.#16 // java/lang/Object."":()V - #2 = InvokeDynamic #0:#21 // #0:run:(LLambda3;)Ljava/lang/Runnable; - #3 = Methodref #7.#22 // Lambda3.methode:()Ljava/lang/Runnable; - #4 = InterfaceMethodref #23.#24 // java/lang/Runnable.run:()V - #5 = Fieldref #25.#26 // java/lang/System.out:Ljava/io/PrintStream; - #6 = Methodref #27.#28 // java/io/PrintStream.println:(Ljava/lang/Object;)V - #7 = Class #29 // Lambda3 - #8 = Class #30 // java/lang/Object - #9 = Utf8 - #10 = Utf8 ()V - #11 = Utf8 Code - #12 = Utf8 methode - #13 = Utf8 ()Ljava/lang/Runnable; - #14 = Utf8 methode2 - #15 = Utf8 lambda$methode$0 - #16 = NameAndType #9:#10 // "":()V - #17 = Utf8 BootstrapMethods - #18 = MethodHandle #6:#31 // invokestatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #19 = MethodType #10 // ()V - #20 = MethodHandle #7:#32 // invokespecial Lambda3.lambda$methode$0:()V - #21 = NameAndType #33:#34 // run:(LLambda3;)Ljava/lang/Runnable; - #22 = NameAndType #12:#13 // methode:()Ljava/lang/Runnable; - #23 = Class #35 // java/lang/Runnable - #24 = NameAndType #33:#10 // run:()V - #25 = Class #36 // java/lang/System - #26 = NameAndType #37:#38 // out:Ljava/io/PrintStream; - #27 = Class #39 // java/io/PrintStream - #28 = NameAndType #40:#41 // println:(Ljava/lang/Object;)V - #29 = Utf8 Lambda3 - #30 = Utf8 java/lang/Object - #31 = Methodref #42.#43 // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #32 = Methodref #7.#44 // Lambda3.lambda$methode$0:()V - #33 = Utf8 run - #34 = Utf8 (LLambda3;)Ljava/lang/Runnable; - #35 = Utf8 java/lang/Runnable - #36 = Utf8 java/lang/System - #37 = Utf8 out - #38 = Utf8 Ljava/io/PrintStream; - #39 = Utf8 java/io/PrintStream - #40 = Utf8 println - #41 = Utf8 (Ljava/lang/Object;)V - #42 = Class #45 // java/lang/invoke/LambdaMetafactory - #43 = NameAndType #46:#50 // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #44 = NameAndType #15:#10 // lambda$methode$0:()V - #45 = Utf8 java/lang/invoke/LambdaMetafactory - #46 = Utf8 metafactory - #47 = Class #52 // java/lang/invoke/MethodHandles$Lookup - #48 = Utf8 Lookup - #49 = Utf8 InnerClasses - #50 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #51 = Class #53 // java/lang/invoke/MethodHandles - #52 = Utf8 java/lang/invoke/MethodHandles$Lookup - #53 = Utf8 java/lang/invoke/MethodHandles -{ - Lambda3(); - Signature: ()V - flags: - Code: - stack=1, locals=1, args_size=1 - 0: aload_0 - 1: invokespecial #1 // Method java/lang/Object."":()V - 4: return - - java.lang.Runnable methode(); - Signature: ()Ljava/lang/Runnable; - flags: - Code: - stack=1, locals=1, args_size=1 - 0: aload_0 - 1: invokedynamic #2, 0 // InvokeDynamic #0:run:(LLambda3;)Ljava/lang/Runnable; - 6: areturn - - void methode2(); - Signature: ()V - flags: - Code: - stack=1, locals=1, args_size=1 - 0: aload_0 - 1: invokevirtual #3 // Method methode:()Ljava/lang/Runnable; - 4: invokeinterface #4, 1 // InterfaceMethod java/lang/Runnable.run:()V - 9: return - - private void lambda$methode$0(); - Signature: ()V - flags: ACC_PRIVATE, ACC_SYNTHETIC - Code: - stack=2, locals=1, args_size=1 - 0: getstatic #5 // Field java/lang/System.out:Ljava/io/PrintStream; - 3: aload_0 - 4: invokevirtual #6 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V - 7: return -} - - diff --git a/notizen/stan/lambdaBytecode/Lambda3.java b/notizen/stan/lambdaBytecode/Lambda3.java deleted file mode 100644 index 7dddaeb7..00000000 --- a/notizen/stan/lambdaBytecode/Lambda3.java +++ /dev/null @@ -1,12 +0,0 @@ - -class Lambda3{ - -Runnable methode(){ - return ()-> System.out.println(this); -} - -void methode2(){ - methode().run(); -} - -} diff --git a/notizen/stan/lambdaBytecode/Lambda4.decompile b/notizen/stan/lambdaBytecode/Lambda4.decompile deleted file mode 100644 index 94ef6ea5..00000000 --- a/notizen/stan/lambdaBytecode/Lambda4.decompile +++ /dev/null @@ -1,104 +0,0 @@ -Classfile /home/janulrich/Development/eclipseworkspace/JavaCompilerCore/notizen/stan/lambdaBytecode/Lambda4.class - Last modified 03.09.2015; size 979 bytes - MD5 checksum f24040561dd183d0d75c91dbdd93f59c - Compiled from "Lambda4.java" -class Lambda4 - SourceFile: "Lambda4.java" - InnerClasses: - public static final #45= #44 of #48; //Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles - BootstrapMethods: - 0: #19 invokestatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - Method arguments: - #20 (Ljava/lang/Integer;)Ljava/lang/Integer; - #21 invokespecial Lambda4.lambda$methode$0:(Ljava/lang/Integer;)Ljava/lang/Integer; - #20 (Ljava/lang/Integer;)Ljava/lang/Integer; - minor version: 0 - major version: 52 - flags: ACC_SUPER -Constant pool: - #1 = Methodref #6.#17 // java/lang/Object."":()V - #2 = InvokeDynamic #0:#22 // #0:test:(LLambda4;)LTest; - #3 = Fieldref #23.#24 // java/lang/System.out:Ljava/io/PrintStream; - #4 = Methodref #25.#26 // java/io/PrintStream.println:(Ljava/lang/Object;)V - #5 = Class #27 // Lambda4 - #6 = Class #28 // java/lang/Object - #7 = Utf8 - #8 = Utf8 ()V - #9 = Utf8 Code - #10 = Utf8 LineNumberTable - #11 = Utf8 methode - #12 = Utf8 ()LTest; - #13 = Utf8 lambda$methode$0 - #14 = Utf8 (Ljava/lang/Integer;)Ljava/lang/Integer; - #15 = Utf8 SourceFile - #16 = Utf8 Lambda4.java - #17 = NameAndType #7:#8 // "":()V - #18 = Utf8 BootstrapMethods - #19 = MethodHandle #6:#29 // invokestatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #20 = MethodType #14 // (Ljava/lang/Integer;)Ljava/lang/Integer; - #21 = MethodHandle #7:#30 // invokespecial Lambda4.lambda$methode$0:(Ljava/lang/Integer;)Ljava/lang/Integer; - #22 = NameAndType #31:#32 // test:(LLambda4;)LTest; - #23 = Class #33 // java/lang/System - #24 = NameAndType #34:#35 // out:Ljava/io/PrintStream; - #25 = Class #36 // java/io/PrintStream - #26 = NameAndType #37:#38 // println:(Ljava/lang/Object;)V - #27 = Utf8 Lambda4 - #28 = Utf8 java/lang/Object - #29 = Methodref #39.#40 // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #30 = Methodref #5.#41 // Lambda4.lambda$methode$0:(Ljava/lang/Integer;)Ljava/lang/Integer; - #31 = Utf8 test - #32 = Utf8 (LLambda4;)LTest; - #33 = Utf8 java/lang/System - #34 = Utf8 out - #35 = Utf8 Ljava/io/PrintStream; - #36 = Utf8 java/io/PrintStream - #37 = Utf8 println - #38 = Utf8 (Ljava/lang/Object;)V - #39 = Class #42 // java/lang/invoke/LambdaMetafactory - #40 = NameAndType #43:#47 // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #41 = NameAndType #13:#14 // lambda$methode$0:(Ljava/lang/Integer;)Ljava/lang/Integer; - #42 = Utf8 java/lang/invoke/LambdaMetafactory - #43 = Utf8 metafactory - #44 = Class #49 // java/lang/invoke/MethodHandles$Lookup - #45 = Utf8 Lookup - #46 = Utf8 InnerClasses - #47 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; - #48 = Class #50 // java/lang/invoke/MethodHandles - #49 = Utf8 java/lang/invoke/MethodHandles$Lookup - #50 = Utf8 java/lang/invoke/MethodHandles -{ - Lambda4(); - Signature: ()V - flags: - Code: - stack=1, locals=1, args_size=1 - 0: aload_0 - 1: invokespecial #1 // Method java/lang/Object."":()V - 4: return - LineNumberTable: - line 4: 0 - - Test methode(); - Signature: ()LTest; - flags: - Code: - stack=1, locals=1, args_size=1 - 0: aload_0 - 1: invokedynamic #2, 0 // InvokeDynamic #0:test:(LLambda4;)LTest; - 6: areturn - LineNumberTable: - line 6: 0 - - private java.lang.Integer lambda$methode$0(java.lang.Integer); - Signature: (Ljava/lang/Integer;)Ljava/lang/Integer; - flags: ACC_PRIVATE, ACC_SYNTHETIC - Code: - stack=2, locals=2, args_size=2 - 0: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream; - 3: aload_0 - 4: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V - 7: aload_1 - 8: areturn - LineNumberTable: - line 6: 0 -} diff --git a/notizen/stan/lambdaBytecode/Lambda4.java b/notizen/stan/lambdaBytecode/Lambda4.java deleted file mode 100644 index a69ba86f..00000000 --- a/notizen/stan/lambdaBytecode/Lambda4.java +++ /dev/null @@ -1,8 +0,0 @@ -interface Test{ - Integer test(Integer i); -} -class Lambda4{ - Test methode(){ - return (i)->{System.out.println(this); return i;}; -} -} diff --git a/notizen/stan/lambdaBytecode/Lambda5.java b/notizen/stan/lambdaBytecode/Lambda5.java deleted file mode 100644 index 481bfaac..00000000 --- a/notizen/stan/lambdaBytecode/Lambda5.java +++ /dev/null @@ -1,8 +0,0 @@ -interface TestParam{ - A test(A i); -} -class Lambda5{ - TestParam methode(){ - return (i)->{System.out.println(this); return i;}; -} -} diff --git a/notizen/stan/lambdaBytecode/Lambda5Test.java b/notizen/stan/lambdaBytecode/Lambda5Test.java deleted file mode 100644 index 198cc0f9..00000000 --- a/notizen/stan/lambdaBytecode/Lambda5Test.java +++ /dev/null @@ -1,5 +0,0 @@ -class Lambda5Test{ - public static void main(String[] args){ - Integer i = new Lambda5().methode().test(2); -} -} diff --git a/notizen/stan/lambdaBytecode/Notizen.md b/notizen/stan/lambdaBytecode/Notizen.md deleted file mode 100644 index c234266b..00000000 --- a/notizen/stan/lambdaBytecode/Notizen.md +++ /dev/null @@ -1,43 +0,0 @@ -# Quellen -* http://cr.openjdk.java.net/~briangoetz/lambda/lambda-translation.html -* http://blog.takipi.com/erstellen-von-lambda-ausdrucken-scala-vs-java-8/ - -# Decompiler -* Es wird javap verwendet. Die Datei ~/bin/javap leitet den javap Befehl um. Muss angepasst werden, wenn man andere Version verwenden will. - -#Quellen -* Brian Götz zu Lambdas: http://wiki.jvmlangsummit.com/images/1/1e/2011_Goetz_Lambda.pdf - -# Doku -* 2 Möglichkeiten Lambda Ausdrücke zu kompilieren: Anonymous inner class, Invokedynamic - -## Invokedynamic -* Hat Argumente auf dem Stack liegen -* Indexbytes zeigen auf eine InvokeDynamic_Info structure, welche beinhaltet: - * Methodenname der bootstrap-Methode (Symbolic Reference) - * Mehrere Symbolic References auf statische Argumente der Bootstrap Methode - * Einen Methodenname und Deskriptor. -* Ausführung: - * Nach dem auflösen dieser Struktur stehen die Informationen des InvokeDynamic_Info zur Verfügung - * Anschließend wird ein invokevirtual auf die Bootstrap Methode ausgeführt - * Die Index Referenz für InvokeVirtual hat bestimmte Werte: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic - * Die Rückgabe der Bootstrap-Methode (CallSite) wird mittels invokevirtual ausgeführt. - -## Bootstrap Methods -* Ein Attribut im Classfile -* Gibt die Bootstrap Methoden an -* Die Angabe erfolgt durch Zeiger auf Method_Handle_info Strukturen im Konstantenpool -* Rückgabe der Bootstrap-Methode ist ein CallSite Objekt: https://docs.oracle.com/javase/7/docs/api/java/lang/invoke/CallSite.html - -## LambdaMetaFactory -* Stellt eine mögliche Bootstrap Methode dar - -# TODO: -* Matrix Beispiel muss funktionieren (verschachtelter Lambda Ausdruck) -* Automatisch Bytecode generieren, wenn alle Typen eingesetzt sind - -## StackMapTable -* Attribute für Codeattribut -* Wird für Sprünge im Bytecode benötigt -* Quelle: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.4 - diff --git a/notizen/stan/lambdaBytecode/Runnable.java b/notizen/stan/lambdaBytecode/Runnable.java deleted file mode 100644 index bcd3a42a..00000000 --- a/notizen/stan/lambdaBytecode/Runnable.java +++ /dev/null @@ -1,5 +0,0 @@ -class Runnable{ - -Fun0 method() { return ()-> this; } - -} \ No newline at end of file diff --git a/notizen/stan/lambdaBytecode/Test.java b/notizen/stan/lambdaBytecode/Test.java deleted file mode 100644 index 2eb1e5af..00000000 --- a/notizen/stan/lambdaBytecode/Test.java +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Diese Klasse testet die generierte EmptyClass.class-Datei - */ -class Test{ -public static void main(String[] args){ - System.out.println(new Runnable().method().apply()); -} -} diff --git a/notizen/stan/stackmaptable/IfElseStatement.java b/notizen/stan/stackmaptable/IfElseStatement.java deleted file mode 100644 index f9748125..00000000 --- a/notizen/stan/stackmaptable/IfElseStatement.java +++ /dev/null @@ -1,9 +0,0 @@ -class IfElseStatement{ - Integer method(Boolean flag){ - if(flag){ - return 0; - }else{ - return 1; - } - } -} diff --git a/notizen/stan/stackmaptable/Notizen.md b/notizen/stan/stackmaptable/Notizen.md deleted file mode 100644 index a86ff0c2..00000000 --- a/notizen/stan/stackmaptable/Notizen.md +++ /dev/null @@ -1,21 +0,0 @@ -# StackMapTable -* Attribute für Codeattribut -* Wird für Sprünge im Bytecode benötigt -* Quelle: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.4 - -## Generierung -* StackMapTable könnte generiert werden, indem im bytecode geschaut wird, wo Sprünge vorliegen. -* https://stackoverflow.com/questions/24927993/what-kind-of-java-code-requires-stackmap-frames#24930521 - * It is illegal to have code after an unconditional branch without a stack map frame being provided for it. - -## BCEL Patch -https://issues.apache.org/jira/browse/BCEL-268 -* Submitting patch: https://commons.apache.org/patches.html -### Änderungen im BCEL-Projekt -* Neue Datei StackMapTableGen -* Testen TODO: - * Mittels BCELifier Code generieren lassen, welcher Methoden erstellt, die Branches enthalten - * Dies dann dem StackMapTableGen übergeben und auf das erstellen von StackMapEntries abprüfen - -# Literatur -* Zu JVM allgemein: http://blog.jamesdbloom.com/JVMInternals.html diff --git a/notizen/stan/stackmaptable/StackMapTest.java b/notizen/stan/stackmaptable/StackMapTest.java deleted file mode 100644 index b2e02b35..00000000 --- a/notizen/stan/stackmaptable/StackMapTest.java +++ /dev/null @@ -1,6 +0,0 @@ -class StackMapTest{ - -void methode(){ -while(true){} -} -} diff --git a/notizen/stan/stackmaptable/StackMapTest2.java b/notizen/stan/stackmaptable/StackMapTest2.java deleted file mode 100644 index b0851b00..00000000 --- a/notizen/stan/stackmaptable/StackMapTest2.java +++ /dev/null @@ -1,8 +0,0 @@ -class StackMapTest2{ - -void methode(){ -Integer i = 1; -while(System.out == null){ -i+=1;} -} -} diff --git a/notizen/stan/stackmaptable/StackMapTest3.java b/notizen/stan/stackmaptable/StackMapTest3.java deleted file mode 100644 index 420ac3c6..00000000 --- a/notizen/stan/stackmaptable/StackMapTest3.java +++ /dev/null @@ -1,14 +0,0 @@ -class StackMapTest3{ - -void methode(){ -Integer i = 1; -while(System.out == null){ -i+=1; -} -System.out.println(i); -StackMapTest3 o = new StackMapTest3(); -while(i<0){ -i++; -} -} -} diff --git a/notizen/stan/stackmaptable/StackMapTest4.java b/notizen/stan/stackmaptable/StackMapTest4.java deleted file mode 100644 index 6053ecfb..00000000 --- a/notizen/stan/stackmaptable/StackMapTest4.java +++ /dev/null @@ -1,17 +0,0 @@ -class StackMapTest4{ - -int test = 1; - -void methode(){ -Integer i = 1; -while(System.out == null){ -i+=test; -} -Runnable r = ()->System.out.println(""); -System.out.println(i); -StackMapTest3 o = new StackMapTest3(); -while(i<0){ -i++; -} -} -} diff --git a/notizen/stan/stackmaptable/StackMapTest5.java b/notizen/stan/stackmaptable/StackMapTest5.java deleted file mode 100644 index d5a3b978..00000000 --- a/notizen/stan/stackmaptable/StackMapTest5.java +++ /dev/null @@ -1,12 +0,0 @@ -class StackMapTest5{ - -void methode(){ -int i = 0; -while(System.out == null){ -i+=1; -while(true){ -String s = "2"; -} -} -} -} diff --git a/notizen/stf/Notes b/notizen/stf/Notes deleted file mode 100644 index 35b14871..00000000 --- a/notizen/stf/Notes +++ /dev/null @@ -1,50 +0,0 @@ -- Was sind / wofür brauch man TTO und Classes -- Unify löst auch zirkuläre Abhängigkeiten a <. b <. c <. a - - Tests dazu? - - Prüfung im Builder? - -- Unterschied Wildcard und FreshWildcard, ExtendsWildcard und FreshExtendsWildcard etc... - - FreshWildcard = TPH für Wildcards? - -- Warum ist result von unify = Menge> und nicht Menge - -- Menge Equals überarbeiten (Momentan Reihenfolgensensitiv) - -- Wie kommen die Mengen des Unify-Algorithmus zustande? Siehe test: - /* - * Test b <. a, a <. b - */ - -- - - -- Transitiven Abschluss von FC bilden um schneller Subtypen bestimmen zu können - - Problem: 2 FCs für Pairs und MPairs durch das Mapping -- Equals der Typen schreiben um instanceof Prüfungen zu vermeiden - -- Refactoring der Klassen Menge und Pair erlaubt? -++++++++++++++++++++++++++++++++++++++++++++++ - - -Instanceof wird verwendet da: - -> Entscheidung für diese Lösung, da 2-Fach-Visitor oder DoubleDispatch Pattern - enorm viele überladene Methoden zur folge hätten, nicht intuitiv wären und die rules in die Typen verschoben hätten. - -Gilt reduce für alle Typen oder nur für simple und tphs? (Vermutlich nur s und tph sonst bräuchte man keine upLow regel) - -+++++++++++++++++++++++++++++++++++++++++++++++ - -HashCode implementierungen testen (type paramerte mit einbeziehen, hashcodes cachen -> da immutable) - - -+++++++++++++++++++++++++++++++++++++++++++++++ -- Typen sind anhand ihres identifiers durchgängig identifizierbar - -- ReduceEq nur auf SimpleTypes oder auf alles anwenden? (Momentan alles) -- ReduceEq Permutation? - -EED UP - - Anwendungsreihenfolge der Regeln (wahrscheinlichste zuerst, evtl ist nach regel 1 regel 2 nie möglich etc...) - - Erase vor Reduce - - Rechenarm vor rechenintensiv - diff --git a/src/de/dhbwstuttgart/core/AClassOrInterface.java b/src/de/dhbwstuttgart/core/AClassOrInterface.java index bea737c6..db2df4fd 100755 --- a/src/de/dhbwstuttgart/core/AClassOrInterface.java +++ b/src/de/dhbwstuttgart/core/AClassOrInterface.java @@ -11,13 +11,6 @@ import de.dhbwstuttgart.logger.Logger; - - - - - - -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.Interface; import de.dhbwstuttgart.syntaxtree.misc.UsedId; diff --git a/src/de/dhbwstuttgart/core/ConsoleInterface.java b/src/de/dhbwstuttgart/core/ConsoleInterface.java index 9c6735a6..94d40e3b 100755 --- a/src/de/dhbwstuttgart/core/ConsoleInterface.java +++ b/src/de/dhbwstuttgart/core/ConsoleInterface.java @@ -1,7 +1,5 @@ package de.dhbwstuttgart.core; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; import java.util.*; @@ -10,6 +8,7 @@ import de.dhbwstuttgart.logger.LoggerConfiguration; import de.dhbwstuttgart.syntaxtree.SourceFile; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; +import de.dhbwstuttgart.typeinference.exceptions.DebugException; import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException; public class ConsoleInterface { private static final String directory = System.getProperty("user.dir"); @@ -44,7 +43,7 @@ public class ConsoleInterface { resultSet = compiler.typeReconstruction(sourceFiles); }catch(TypeinferenceException texc){ texc.printStackTrace(); - fail("Fehler bei Typinferenzalgorithmus. Message: "+texc.getMessage()); + throw new DebugException("Fehler bei Typinferenzalgorithmus. Message: "+texc.getMessage()); } /////////////////////// // Ausgabe: @@ -62,7 +61,7 @@ public class ConsoleInterface { } }catch(Exception e){ e.printStackTrace(); - assertNotNull("Fehler bei Typinferenzalgorithmus. Message: "+e.getMessage(), resultSet); + if(resultSet == null)throw new DebugException("Fehler bei Typinferenzalgorithmus. Message: "+e.getMessage()); } } diff --git a/src/de/dhbwstuttgart/core/MyCompiler.java b/src/de/dhbwstuttgart/core/MyCompiler.java index 9a194a03..49b01d7c 100755 --- a/src/de/dhbwstuttgart/core/MyCompiler.java +++ b/src/de/dhbwstuttgart/core/MyCompiler.java @@ -13,8 +13,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.logger.Logger; import de.dhbwstuttgart.logger.LoggerConfiguration; import de.dhbwstuttgart.logger.Section; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.parser.JavaParser; import de.dhbwstuttgart.parser.Scanner; import de.dhbwstuttgart.parser.JavaParser.yyException; @@ -126,7 +124,7 @@ public class MyCompiler implements MyCompilerAPI{ * ist. @throws CTypeReconstructionException Wenn ein Fehler bei der * Typrekonstruktion auftritt. */ - public Menge typeReconstruction(Menge m_AbstractSyntaxTree) throws NullPointerException, CTypeReconstructionException{ + public Menge typeReconstruction(Menge m_AbstractSyntaxTree) throws NullPointerException{ inferencelog.info("##########################################", Section.TYPEINFERENCE); inferencelog.info("# TypeReconstruction-Algorithmus - START #", Section.TYPEINFERENCE); inferencelog.info("##########################################\n", Section.TYPEINFERENCE); diff --git a/src/de/dhbwstuttgart/core/MyCompilerAPI.java b/src/de/dhbwstuttgart/core/MyCompilerAPI.java index fabf2499..6a192eb8 100755 --- a/src/de/dhbwstuttgart/core/MyCompilerAPI.java +++ b/src/de/dhbwstuttgart/core/MyCompilerAPI.java @@ -8,8 +8,6 @@ import java.io.FileNotFoundException; import java.io.IOException; import de.dhbwstuttgart.typeinference.Menge; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.parser.JavaParser; import de.dhbwstuttgart.syntaxtree.SourceFile; import de.dhbwstuttgart.typeinference.ByteCodeResult; @@ -86,7 +84,7 @@ public interface MyCompilerAPI */ // ino.end // ino.method.typeReconstruction.21340.declaration - public Menge typeReconstruction(Menge m_AbstractSyntaxTree) throws NullPointerException, CTypeReconstructionException; + public Menge typeReconstruction(Menge m_AbstractSyntaxTree) throws NullPointerException; // ino.end // ino.method.setOutputDir.21349.decldescription type=javadoc diff --git a/src/de/dhbwstuttgart/myexception/CTypeReconstructionException.java b/src/de/dhbwstuttgart/myexception/CTypeReconstructionException.java deleted file mode 100755 index 33542663..00000000 --- a/src/de/dhbwstuttgart/myexception/CTypeReconstructionException.java +++ /dev/null @@ -1,128 +0,0 @@ -// ino.module.CTypeReconstructionException.8572.package -package de.dhbwstuttgart.myexception; -// ino.end - -// ino.module.CTypeReconstructionException.8572.import -import de.dhbwstuttgart.typeinference.Menge; - -import de.dhbwstuttgart.core.IItemWithOffset; - -// ino.class.CTypeReconstructionException.23746.description type=javadoc -/** - * @author J�rg B�uerle - * @version $Date: 2006/06/13 10:37:31 $ - */ -// ino.end -// ino.class.CTypeReconstructionException.23746.declaration -public class CTypeReconstructionException extends RuntimeException -// ino.end -// ino.class.CTypeReconstructionException.23746.body -{ - - - // ino.attribute.serialVersionUID.23750.declaration - private static final long serialVersionUID = -7744106691767607974L; - // ino.end - // ino.attribute.parentExceptions.23753.declaration - public Menge parentExceptions; - // ino.end - - // ino.attribute.problemSource.23756.decldescription type=javadoc - /** - * Das Statement bei dem das Problem aufgetaucht ist - */ - // ino.end - // ino.attribute.problemSource.23756.declaration - private IItemWithOffset problemSource; - // ino.end - // ino.attribute.message.23759.declaration - private String message; - // ino.end - - // ino.method.CTypeReconstructionException.23762.definition - public CTypeReconstructionException(String message, IItemWithOffset problemSource) - // ino.end - // ino.method.CTypeReconstructionException.23762.body - { - super(message); - this.message=message; - this.problemSource=problemSource; - } - // ino.end - - // ino.method.CTypeReconstructionException.23765.definition - public CTypeReconstructionException(String message, Menge parentExceptions, IItemWithOffset problemSource) - // ino.end - // ino.method.CTypeReconstructionException.23765.body - { - super(message+" "+parentExceptions); - this.message=message; - this.parentExceptions=parentExceptions; - this.problemSource=problemSource; - } - // ino.end - - // ino.method.getHighestProblemSources.23768.definition - public Menge getHighestProblemSources() - // ino.end - // ino.method.getHighestProblemSources.23768.body - { - Menge stmts=new Menge(); - if(parentExceptions!=null){ - for(int i=0;i problems = parentExceptions.elementAt(i).getHighestProblemSources(); - for(int j=0;j=0) - stmts.addElement(elem); - } - if(stmts.size()>0) - return stmts; - } - } - if(problemSource!=null && problemSource.getOffset()>=0){ - stmts.addElement(problemSource); - } - - return stmts; - } - // ino.end - - // ino.method.getMessage.23771.defdescription type=block - /*private Menge getProblemLines(){ - Menge problems=getHighestProblemSources(); - Menge lines=new Menge(); - for(int i=0;i exlist=new Menge(); - // ino.end - - // ino.method.addException.23810.definition - public void addException(SCExcept ex) - // ino.end - // ino.method.addException.23810.body - { - exlist.addElement(ex); - } - // ino.end - - // ino.method.get_exlist.23813.definition - public Menge get_exlist() - // ino.end - // ino.method.get_exlist.23813.body - { - return exlist; - } - // ino.end -} -// ino.end diff --git a/src/de/dhbwstuttgart/myexception/SCClassException.java b/src/de/dhbwstuttgart/myexception/SCClassException.java deleted file mode 100755 index af6ea2c7..00000000 --- a/src/de/dhbwstuttgart/myexception/SCClassException.java +++ /dev/null @@ -1,67 +0,0 @@ -// ino.module.SCClassException.8576.package -package de.dhbwstuttgart.myexception; -// ino.end -// ino.module.SCClassException.8576.import -import java.util.Enumeration; -import de.dhbwstuttgart.typeinference.Menge; -import de.dhbwstuttgart.logger.Logger; -// ino.end - - - -// ino.class.SCClassException.23816.declaration -public class SCClassException extends Exception -// ino.end -// ino.class.SCClassException.23816.body -{ - - // ino.attribute.serialVersionUID.23820.declaration - private static final long serialVersionUID = 5339857618390360728L; - // ino.end - // ino.attribute.exlist.23823.declaration - private Menge exlist=new Menge(); - // ino.end - // ino.attribute.parserlog.23826.declaration - protected static Logger parserlog = Logger.getLogger("parser"); - // ino.end - - // ino.method.addException.23829.definition - public void addException(Menge v) - // ino.end - // ino.method.addException.23829.body - { - exlist=v; - } - // ino.end - - - - // ino.method.addClassname.23832.definition - public void addClassname(String cn) - // ino.end - // ino.method.addClassname.23832.body - { - SCExcept hilf; - for(Enumeration el=exlist.elements();el.hasMoreElements();) - { - hilf=el.nextElement(); - hilf.set_classname(cn); - } - } - // ino.end - - // ino.method.fehlerausgabe.23835.definition - public void fehlerausgabe() - // ino.end - // ino.method.fehlerausgabe.23835.body - { - SCExcept hilfe; - for(Enumeration el=exlist.elements();el.hasMoreElements();) - { - hilfe=el.nextElement(); - hilfe.fehlerausgabe(); - } - } - // ino.end -} -// ino.end diff --git a/src/de/dhbwstuttgart/myexception/SCExcept.java b/src/de/dhbwstuttgart/myexception/SCExcept.java deleted file mode 100755 index c6bc2c62..00000000 --- a/src/de/dhbwstuttgart/myexception/SCExcept.java +++ /dev/null @@ -1,113 +0,0 @@ -// ino.module.SCExcept.8577.package -package de.dhbwstuttgart.myexception; -// ino.end - -// ino.module.SCExcept.8577.import -import de.dhbwstuttgart.logger.Logger; -// ino.end - -// ino.class.SCExcept.23838.declaration -public class SCExcept -// ino.end -// ino.class.SCExcept.23838.body -{ - // ino.attribute.classname.23841.declaration - private String classname; - // ino.end - // ino.attribute.error.23844.declaration - private String error; - // ino.end - // ino.attribute.function.23847.declaration - private String function; - // ino.end - // ino.attribute.statement.23850.declaration - private String statement; - // ino.end - // ino.attribute.parserlog.23853.declaration - protected static Logger parserlog = Logger.getLogger("parser"); - // ino.end - - // ino.method.set_classname.23856.definition - public void set_classname(String cn) - // ino.end - // ino.method.set_classname.23856.body - { - classname=cn; - } - // ino.end - - // ino.method.set_error.23859.definition - public void set_error(String e) - // ino.end - // ino.method.set_error.23859.body - { - error=e; - } - // ino.end - - // ino.method.set_function.23862.definition - public void set_function(String fct) - // ino.end - // ino.method.set_function.23862.body - { - function=fct; - } - // ino.end - - // ino.method.set_statement.23865.definition - public void set_statement(String s) - // ino.end - // ino.method.set_statement.23865.body - { - statement=s; - } - // ino.end - - // ino.method.fehlerausgabe.23868.definition - public void fehlerausgabe() - // ino.end - // ino.method.fehlerausgabe.23868.body - { - /* - parserlog.error("Semantik-Check hat einen Fehler gefunden!"); - parserlog.error("Fehler "+error); - parserlog.error("wurde in"); - if(classname!=null) - parserlog.error("class "+classname); - if(function!=null) - parserlog.error("in der Funktion "+function); - if(statement!=null) - parserlog.error("im Statement "+statement); - parserlog.error("gefunden."); - */ - } - // ino.end - - // ino.method.get_classname.23871.definition - public String get_classname() - // ino.end - // ino.method.get_classname.23871.body - { - return classname; - } - // ino.end - - // ino.method.get_statement.23874.definition - public String get_statement() - // ino.end - // ino.method.get_statement.23874.body - { - return statement; - } - // ino.end - - // ino.method.get_function.23877.definition - public String get_function() - // ino.end - // ino.method.get_function.23877.body - { - return function; - } - // ino.end -} -// ino.end diff --git a/src/de/dhbwstuttgart/myexception/SCException.java b/src/de/dhbwstuttgart/myexception/SCException.java deleted file mode 100755 index 6d528eeb..00000000 --- a/src/de/dhbwstuttgart/myexception/SCException.java +++ /dev/null @@ -1,50 +0,0 @@ -// ino.module.SCException.8578.package -package de.dhbwstuttgart.myexception; -// ino.end -// ino.module.SCException.8578.import -import java.util.Enumeration; -import de.dhbwstuttgart.typeinference.Menge; -import de.dhbwstuttgart.logger.Logger; -// ino.end - - - -// ino.class.SCException.23880.declaration -public class SCException extends Exception -// ino.end -// ino.class.SCException.23880.body -{ - // ino.attribute.serialVersionUID.23884.declaration - private static final long serialVersionUID = 1L; - // ino.end - // ino.attribute.scerrors.23887.declaration - private Menge scerrors = new Menge(); - // ino.end - // ino.attribute.parserlog.23890.declaration - protected static Logger parserlog = Logger.getLogger("parser"); - // ino.end - - // ino.method.add_classexceptions.23893.definition - public void add_classexceptions(SCClassException ex) - // ino.end - // ino.method.add_classexceptions.23893.body - { - scerrors.addElement(ex); - } - // ino.end - - // ino.method.fehlerausgabe.23896.definition - public void fehlerausgabe() - // ino.end - // ino.method.fehlerausgabe.23896.body - { - SCClassException hilf; - for(Enumeration el=scerrors.elements();el.hasMoreElements();) - { - hilf=el.nextElement(); - hilf.fehlerausgabe(); - } - } - // ino.end -} -// ino.end diff --git a/src/de/dhbwstuttgart/myexception/SCMethodException.java b/src/de/dhbwstuttgart/myexception/SCMethodException.java deleted file mode 100755 index a65cfcdf..00000000 --- a/src/de/dhbwstuttgart/myexception/SCMethodException.java +++ /dev/null @@ -1,41 +0,0 @@ -// ino.module.SCMethodException.8579.package -package de.dhbwstuttgart.myexception; -// ino.end -// ino.module.SCMethodException.8579.import -import de.dhbwstuttgart.typeinference.Menge; -// ino.end - - - -// ino.class.SCMethodException.23899.declaration -public class SCMethodException extends Exception -// ino.end -// ino.class.SCMethodException.23899.body -{ - // ino.attribute.serialVersionUID.23903.declaration - private static final long serialVersionUID = -3060025579851679412L; - // ino.end - - // ino.attribute.exlist.23906.declaration - private Menge exlist; - // ino.end - - // ino.method.get_exlist.23909.definition - public Menge get_exlist() - // ino.end - // ino.method.get_exlist.23909.body - { - return exlist; - } - // ino.end - - // ino.method.set_exlist.23912.definition - public void set_exlist(Menge list) - // ino.end - // ino.method.set_exlist.23912.body - { - exlist=list; - } - // ino.end -} -// ino.end diff --git a/src/de/dhbwstuttgart/myexception/SCStatementException.java b/src/de/dhbwstuttgart/myexception/SCStatementException.java deleted file mode 100755 index 7552752e..00000000 --- a/src/de/dhbwstuttgart/myexception/SCStatementException.java +++ /dev/null @@ -1,41 +0,0 @@ -// ino.module.SCStatementException.8580.package -package de.dhbwstuttgart.myexception; -// ino.end -// ino.module.SCStatementException.8580.import -import de.dhbwstuttgart.typeinference.Menge; -// ino.end - - - -// ino.class.SCStatementException.23915.declaration -public class SCStatementException extends Exception -// ino.end -// ino.class.SCStatementException.23915.body -{ - // ino.attribute.serialVersionUID.23919.declaration - private static final long serialVersionUID = -5299461034178474235L; - // ino.end - - // ino.attribute.exlist.23922.declaration - private Menge exlist= new Menge(); - // ino.end - - // ino.method.get_exlist.23925.definition - public Menge get_exlist() - // ino.end - // ino.method.get_exlist.23925.body - { - return exlist; - } - // ino.end - - // ino.method.addException.23928.definition - public void addException(SCExcept ex) - // ino.end - // ino.method.addException.23928.body - { - exlist.addElement(ex); - } - // ino.end -} -// ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/ClassBody.java b/src/de/dhbwstuttgart/syntaxtree/ClassBody.java index 0dcb7609..5521d69f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/ClassBody.java +++ b/src/de/dhbwstuttgart/syntaxtree/ClassBody.java @@ -10,10 +10,6 @@ import de.dhbwstuttgart.logger.Logger; // ino.end -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCClassBodyException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCMethodException; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.Type; import de.dhbwstuttgart.typeinference.JavaCodeResult; diff --git a/src/de/dhbwstuttgart/syntaxtree/Constant.java b/src/de/dhbwstuttgart/syntaxtree/Constant.java index 1c9bc2f2..8873e277 100755 --- a/src/de/dhbwstuttgart/syntaxtree/Constant.java +++ b/src/de/dhbwstuttgart/syntaxtree/Constant.java @@ -5,7 +5,6 @@ package de.dhbwstuttgart.syntaxtree; // ino.module.Constant.8556.import import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.core.MyCompiler; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.modifier.Modifiers; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/Constructor.java b/src/de/dhbwstuttgart/syntaxtree/Constructor.java index 73cfb0f8..3507a577 100644 --- a/src/de/dhbwstuttgart/syntaxtree/Constructor.java +++ b/src/de/dhbwstuttgart/syntaxtree/Constructor.java @@ -14,7 +14,6 @@ import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.DHBWConstantPoolGen; import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; import de.dhbwstuttgart.bytecode.MethodGenerator; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.misc.DeclId; import de.dhbwstuttgart.syntaxtree.modifier.Modifiers; diff --git a/src/de/dhbwstuttgart/syntaxtree/Field.java b/src/de/dhbwstuttgart/syntaxtree/Field.java index 1b77df93..e348b7a9 100644 --- a/src/de/dhbwstuttgart/syntaxtree/Field.java +++ b/src/de/dhbwstuttgart/syntaxtree/Field.java @@ -4,7 +4,6 @@ import org.apache.commons.bcel6.generic.ClassGen; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.misc.DeclId; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.type.RefType; diff --git a/src/de/dhbwstuttgart/syntaxtree/FieldDeclaration.java b/src/de/dhbwstuttgart/syntaxtree/FieldDeclaration.java index dce25711..1a8e4256 100644 --- a/src/de/dhbwstuttgart/syntaxtree/FieldDeclaration.java +++ b/src/de/dhbwstuttgart/syntaxtree/FieldDeclaration.java @@ -1,15 +1,14 @@ package de.dhbwstuttgart.syntaxtree; -import org.apache.bcel.Constants; import org.apache.commons.bcel6.generic.FieldGen; import org.apache.commons.bcel6.generic.FieldInstruction; import org.apache.commons.bcel6.generic.InstructionList; import org.apache.commons.bcel6.generic.ObjectType; +import org.apache.commons.bcel6.Const; import org.apache.commons.bcel6.generic.ClassGen; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.misc.DeclId; import de.dhbwstuttgart.syntaxtree.statement.Expr; import de.dhbwstuttgart.syntaxtree.statement.This; @@ -187,7 +186,7 @@ public class FieldDeclaration extends Field{ FieldInstruction putFieldInstruction = cg.getInstructionFactory().createFieldAccess(this.getParentClass().getName().toString(), - this.getDescription(), this.getType().getBytecodeType(cg, rs), Constants.PUTFIELD); + this.getDescription(), this.getType().getBytecodeType(cg, rs), Const.PUTFIELD); il.append(putFieldInstruction ); return il; } diff --git a/src/de/dhbwstuttgart/syntaxtree/Interface.java b/src/de/dhbwstuttgart/syntaxtree/Interface.java index d7a4754b..660571d5 100755 --- a/src/de/dhbwstuttgart/syntaxtree/Interface.java +++ b/src/de/dhbwstuttgart/syntaxtree/Interface.java @@ -5,7 +5,6 @@ package de.dhbwstuttgart.syntaxtree; // ino.module.Interface.8582.import import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.core.AClassOrInterface; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.misc.UsedId; import de.dhbwstuttgart.syntaxtree.modifier.Modifiers; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/InterfaceBody.java b/src/de/dhbwstuttgart/syntaxtree/InterfaceBody.java index 986eabd1..12bb765f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/InterfaceBody.java +++ b/src/de/dhbwstuttgart/syntaxtree/InterfaceBody.java @@ -4,8 +4,6 @@ package de.dhbwstuttgart.syntaxtree; // ino.module.InterfaceBody.8583.import import de.dhbwstuttgart.typeinference.Menge; - -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.modifier.Modifiers; // ino.class.InterfaceBody.23984.description type=javadoc diff --git a/src/de/dhbwstuttgart/syntaxtree/Method.java b/src/de/dhbwstuttgart/syntaxtree/Method.java index 717aa768..92761055 100755 --- a/src/de/dhbwstuttgart/syntaxtree/Method.java +++ b/src/de/dhbwstuttgart/syntaxtree/Method.java @@ -28,9 +28,6 @@ import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; import de.dhbwstuttgart.bytecode.MethodGenerator; import de.dhbwstuttgart.core.IItemWithOffset; import de.dhbwstuttgart.core.MyCompiler; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCMethodException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.misc.DeclId; import de.dhbwstuttgart.syntaxtree.modifier.Modifiers; diff --git a/src/de/dhbwstuttgart/syntaxtree/SourceFile.java b/src/de/dhbwstuttgart/syntaxtree/SourceFile.java index 4576354c..4512bb43 100755 --- a/src/de/dhbwstuttgart/syntaxtree/SourceFile.java +++ b/src/de/dhbwstuttgart/syntaxtree/SourceFile.java @@ -23,10 +23,6 @@ import de.dhbwstuttgart.logger.Logger; import de.dhbwstuttgart.logger.Section; import de.dhbwstuttgart.core.AClassOrInterface; import de.dhbwstuttgart.core.MyCompiler; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCClassException; -import de.dhbwstuttgart.myexception.SCException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory; import de.dhbwstuttgart.syntaxtree.misc.DeclId; @@ -333,7 +329,6 @@ public class SourceFile // ino.end // ino.method.typeReconstruction.21406.definition public Menge typeReconstruction(TypeAssumptions globalAssumptions) - throws CTypeReconstructionException // ino.end // ino.method.typeReconstruction.21406.body { @@ -490,7 +485,7 @@ public class SourceFile try { x = java.lang.Class.forName(importDecl.getQualifiedName().toString()); } catch (ClassNotFoundException e) { - throw new CTypeReconstructionException("Fehlerhafte Import-Declaration: "+e.getMessage(),importDecl); + throw new TypeinferenceException("Fehlerhafte Import-Declaration: "+e.getMessage(),this); } java.lang.reflect.Field[] fields=x.getDeclaredFields(); diff --git a/src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java b/src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java index 2d043aa2..533a6173 100644 --- a/src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java +++ b/src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java @@ -4,8 +4,8 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.logging.Logger; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; -import de.dhbwstuttgart.myexception.NotImplementedException; import de.dhbwstuttgart.syntaxtree.NullSyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.ExtendsWildcardType; import de.dhbwstuttgart.syntaxtree.type.FunN; diff --git a/src/de/dhbwstuttgart/syntaxtree/misc/DeclId.java b/src/de/dhbwstuttgart/syntaxtree/misc/DeclId.java index 3012df33..00ecffc0 100755 --- a/src/de/dhbwstuttgart/syntaxtree/misc/DeclId.java +++ b/src/de/dhbwstuttgart/syntaxtree/misc/DeclId.java @@ -8,7 +8,6 @@ import de.dhbwstuttgart.logger.Logger; // ino.end import de.dhbwstuttgart.core.MyCompiler; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Constant; import de.dhbwstuttgart.syntaxtree.modifier.Final; import de.dhbwstuttgart.syntaxtree.modifier.Modifiers; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/AddOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/AddOp.java index c2811dec..a61a6b21 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/AddOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/AddOp.java @@ -17,8 +17,6 @@ import org.apache.commons.bcel6.generic.ObjectType; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; import de.dhbwstuttgart.syntaxtree.type.ExtendsWildcardType; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/DivideOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/DivideOp.java index e776617c..a58d2d32 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/DivideOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/DivideOp.java @@ -15,7 +15,6 @@ import org.apache.commons.bcel6.generic.IDIV; import org.apache.commons.bcel6.generic.LADD; import org.apache.commons.bcel6.generic.LDIV; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/EqualOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/EqualOp.java index b71d9a2f..17b23397 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/EqualOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/EqualOp.java @@ -16,8 +16,6 @@ import org.apache.commons.bcel6.generic.ObjectType; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.statement.Binary; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/GreaterEquOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/GreaterEquOp.java index 588c2271..8afa00aa 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/GreaterEquOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/GreaterEquOp.java @@ -6,8 +6,6 @@ import de.dhbwstuttgart.typeinference.Menge; import org.apache.commons.bcel6.generic.BranchInstruction; import org.apache.commons.bcel6.generic.IF_ICMPLT; - -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/GreaterOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/GreaterOp.java index f6b037db..f6f5c3ba 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/GreaterOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/GreaterOp.java @@ -6,8 +6,6 @@ import de.dhbwstuttgart.typeinference.Menge; import org.apache.commons.bcel6.generic.BranchInstruction; import org.apache.commons.bcel6.generic.IF_ICMPLE; - -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/LessEquOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/LessEquOp.java index 7a60fa49..659cb1fd 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/LessEquOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/LessEquOp.java @@ -6,8 +6,6 @@ import de.dhbwstuttgart.typeinference.Menge; import org.apache.commons.bcel6.generic.BranchInstruction; import org.apache.commons.bcel6.generic.IF_ICMPGT; - -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/LessOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/LessOp.java index 5b6722b3..94c547bd 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/LessOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/LessOp.java @@ -5,8 +5,6 @@ package de.dhbwstuttgart.syntaxtree.operator; import de.dhbwstuttgart.typeinference.Menge; import org.apache.commons.bcel6.generic.BranchInstruction; import org.apache.commons.bcel6.generic.IF_ICMPGE; - -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/LogOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/LogOp.java index 54ceff3b..76551143 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/LogOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/LogOp.java @@ -6,9 +6,6 @@ import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import de.dhbwstuttgart.typeinference.Menge; - -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; import de.dhbwstuttgart.syntaxtree.statement.NotExpr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/MinusOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/MinusOp.java index 72313dd6..0ebeb0ca 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/MinusOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/MinusOp.java @@ -7,8 +7,6 @@ import de.dhbwstuttgart.typeinference.Menge; import org.apache.commons.bcel6.generic.ArithmeticInstruction; import org.apache.commons.bcel6.generic.IADD; import org.apache.commons.bcel6.generic.ISUB; - -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/ModuloOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/ModuloOp.java index d387958e..3cc8702a 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/ModuloOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/ModuloOp.java @@ -1,13 +1,8 @@ -// ino.module.ModuloOp.8604.package package de.dhbwstuttgart.syntaxtree.operator; -// ino.end -// ino.module.ModuloOp.8604.import import de.dhbwstuttgart.typeinference.Menge; import org.apache.commons.bcel6.generic.ArithmeticInstruction; import org.apache.commons.bcel6.generic.IREM; - -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/MulOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/MulOp.java index d84690d8..9f7ecba0 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/MulOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/MulOp.java @@ -16,7 +16,6 @@ import org.apache.commons.bcel6.generic.ObjectType; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; import de.dhbwstuttgart.syntaxtree.type.ExtendsWildcardType; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/NotEqualOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/NotEqualOp.java index f1b5f85f..d55b167b 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/NotEqualOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/NotEqualOp.java @@ -4,8 +4,6 @@ package de.dhbwstuttgart.syntaxtree.operator; // ino.module.NotEqualOp.8606.import import java.util.Iterator; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; import de.dhbwstuttgart.syntaxtree.statement.Null; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/Operator.java b/src/de/dhbwstuttgart/syntaxtree/operator/Operator.java index 23ba6d0d..370d7735 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/Operator.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/Operator.java @@ -16,8 +16,6 @@ import org.apache.commons.bcel6.generic.LADD; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.core.IItemWithOffset; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/PlusOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/PlusOp.java index 53fbae1c..2cb8953f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/PlusOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/PlusOp.java @@ -23,7 +23,6 @@ import org.apache.commons.bcel6.generic.ObjectType; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; import de.dhbwstuttgart.syntaxtree.type.Type; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/RelOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/RelOp.java index 5278bc91..4b10c00f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/RelOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/RelOp.java @@ -17,8 +17,6 @@ import org.apache.commons.bcel6.generic.ObjectType; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.Type; diff --git a/src/de/dhbwstuttgart/syntaxtree/operator/TimesOp.java b/src/de/dhbwstuttgart/syntaxtree/operator/TimesOp.java index e54693cb..dd40f846 100755 --- a/src/de/dhbwstuttgart/syntaxtree/operator/TimesOp.java +++ b/src/de/dhbwstuttgart/syntaxtree/operator/TimesOp.java @@ -12,7 +12,6 @@ import org.apache.commons.bcel6.generic.FMUL; import org.apache.commons.bcel6.generic.IMUL; import org.apache.commons.bcel6.generic.LMUL; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.statement.Binary; import de.dhbwstuttgart.syntaxtree.statement.Expr; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java b/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java index d30d0437..32d4a5ca 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java @@ -6,7 +6,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.FormalParameter; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.typeinference.JavaCodeResult; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java b/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java index 810361ca..1f58947e 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java @@ -19,10 +19,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java b/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java index 464513b0..00313d32 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java @@ -17,10 +17,6 @@ import org.apache.commons.bcel6.generic.NOP; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Block.java b/src/de/dhbwstuttgart/syntaxtree/statement/Block.java index 5ac5dc0a..c2891291 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Block.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Block.java @@ -18,10 +18,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; import de.dhbwstuttgart.logger.Section; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.Field; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/BoolLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/BoolLiteral.java index c04a8c68..f77b98fc 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/BoolLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/BoolLiteral.java @@ -12,8 +12,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java index db1f3fb7..bd0c07af 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java @@ -11,11 +11,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -25,6 +20,7 @@ import de.dhbwstuttgart.typeinference.JavaCodeResult; import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/CharLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/CharLiteral.java index c5398b08..69d0ff38 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/CharLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/CharLiteral.java @@ -12,8 +12,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.java index dc8b83d3..142de3ce 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.java @@ -15,8 +15,6 @@ import org.apache.commons.bcel6.generic.LDC2_W; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/EmptyStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/EmptyStmt.java index 2786749e..a8c104c7 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/EmptyStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/EmptyStmt.java @@ -10,8 +10,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Expr.java b/src/de/dhbwstuttgart/syntaxtree/statement/Expr.java index 8bfb7a51..d769ef5d 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Expr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Expr.java @@ -9,8 +9,6 @@ import org.apache.commons.bcel6.generic.ClassGen; import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.misc.UsedId; import de.dhbwstuttgart.syntaxtree.type.Type; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/FloatLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/FloatLiteral.java index 872cf9b3..6674c19c 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/FloatLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/FloatLiteral.java @@ -13,8 +13,6 @@ import org.apache.commons.bcel6.generic.LDC2_W; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java index a9ce0295..45dc0a68 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java @@ -12,13 +12,10 @@ import org.apache.commons.bcel6.generic.InstructionHandle; import org.apache.commons.bcel6.generic.InstructionList; import org.apache.commons.bcel6.generic.NOP; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.operator.LogOp; @@ -55,7 +52,7 @@ public class ForStmt extends Statement } void sc_check(Menge classname, Hashtable ch, Hashtable bh, boolean ext, Hashtable parach, Hashtable parabh) - throws SCStatementException + { } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java index 351cfbef..0a3c76c4 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java @@ -26,10 +26,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; import de.dhbwstuttgart.logger.Section; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.operator.LogOp; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java b/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java index 1c2ad306..88522c02 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java @@ -12,9 +12,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.misc.UsedId; @@ -31,6 +28,7 @@ import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.UndConstraint; import de.dhbwstuttgart.typeinference.assumptions.FieldAssumption; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; import de.dhbwstuttgart.typeinference.unify.TypeUnify; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java b/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java index a64aed0d..2747af6b 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java @@ -11,10 +11,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -25,7 +21,7 @@ import de.dhbwstuttgart.typeinference.JavaCodeResult; import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; - +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/IntLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/IntLiteral.java index 725225c1..9116c456 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/IntLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/IntLiteral.java @@ -16,8 +16,6 @@ import org.apache.commons.bcel6.generic.PUSH; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java index 04900cb0..3905eb06 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java @@ -2,7 +2,7 @@ package de.dhbwstuttgart.syntaxtree.statement; import java.util.Hashtable; -import org.apache.bcel.Constants; +import org.apache.commons.bcel6.Const; import org.apache.commons.bcel6.classfile.BootstrapMethod; import org.apache.commons.bcel6.classfile.ConstantPool; import org.apache.commons.bcel6.generic.BIPUSH; @@ -17,9 +17,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.MethodGenerator; import de.dhbwstuttgart.bytecode.TypePlaceholderType; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.ClassHelper; @@ -225,7 +222,7 @@ public class LambdaExpression extends Expr{ //lambdaMethod.stripAttributes(true); //lambdaMethod.getInstructionList().append(this.method_body.genByteCode(cg)); - lambdaMethod.setAccessFlags(Constants.ACC_PRIVATE+Constants.ACC_SYNTHETIC); + lambdaMethod.setAccessFlags(Const.ACC_PRIVATE+Const.ACC_SYNTHETIC); String interfaceMethodName = "apply"; //Das ist ein Hack, funktioniert momentan, da nur FunN Interfaces für LambdaAusdrücke funktionieren il.append(InstructionFactory.createLoad( org.apache.commons.bcel6.generic.Type.OBJECT, 0)); diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Literal.java b/src/de/dhbwstuttgart/syntaxtree/statement/Literal.java index 21aa9f17..c2089e49 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Literal.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Literal.java @@ -2,7 +2,6 @@ package de.dhbwstuttgart.syntaxtree.statement; // ino.end -import de.dhbwstuttgart.myexception.JVMCodeException; // ino.class.Literal.25490.declaration public abstract class Literal extends Expr diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LocalOrFieldVarOrClassname.java b/src/de/dhbwstuttgart/syntaxtree/statement/LocalOrFieldVarOrClassname.java index 51984e6d..735e7224 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LocalOrFieldVarOrClassname.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LocalOrFieldVarOrClassname.java @@ -14,10 +14,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; import de.dhbwstuttgart.logger.Section; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.misc.UsedId; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java index 7ce4c55b..01645df3 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java @@ -12,9 +12,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.logger.Logger; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.core.MyCompiler; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.ClassHelper; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LongLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/LongLiteral.java index fa402791..828d0c82 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LongLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LongLiteral.java @@ -12,8 +12,6 @@ import org.apache.commons.bcel6.generic.LDC2_W; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java index 7921b129..c4f384c0 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java @@ -14,7 +14,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.bytecode.DHBWInstructionFactory; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Method; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.misc.UsedId; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NegativeExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/NegativeExpr.java index f9c46865..f429938c 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/NegativeExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/NegativeExpr.java @@ -11,11 +11,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -30,6 +25,7 @@ import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; import de.dhbwstuttgart.typeinference.unify.TypeUnify; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NewArray.java b/src/de/dhbwstuttgart/syntaxtree/statement/NewArray.java index 953535bf..2beb7c2d 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/NewArray.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/NewArray.java @@ -11,8 +11,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -22,6 +20,7 @@ import de.dhbwstuttgart.typeinference.JavaCodeResult; import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; @@ -101,23 +100,6 @@ public class NewArray extends Expr // ino.end */ - // ino.method.get_codegen_Array_Type.25815.definition - public int get_codegen_Array_Type() - throws JVMCodeException - // ino.end - // ino.method.get_codegen_Array_Type.25815.body - { - if(this.getType().equals("boolean")) return 4; - else if(this.getType().equals("char")) return 5; - else if(this.getType().equals("float")) return 6; - else if(this.getType().equals("double")) return 7; - else if(this.getType().equals("byte")) return 8; - else if(this.getType().equals("short")) return 9; - else if(this.getType().equals("int")) return 10; - else if(this.getType().equals("long")) return 11; - else throw new JVMCodeException("JVMCodeException: NewArray: int get_codegen_Array_Type()"); - } - // ino.end // ino.method.wandleRefTypeAttributes2GenericAttributes.25827.definition public void wandleRefTypeAttributes2GenericAttributes(Menge paralist, Menge genericMethodParameters) diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java b/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java index 8fb7e24f..a27a5d23 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java @@ -19,11 +19,6 @@ import org.apache.commons.bcel6.generic.ObjectType; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.ParameterList; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NotExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/NotExpr.java index 4d822b6f..aa80be0a 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/NotExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/NotExpr.java @@ -11,10 +11,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -29,6 +25,7 @@ import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; import de.dhbwstuttgart.typeinference.unify.TypeUnify; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Null.java b/src/de/dhbwstuttgart/syntaxtree/statement/Null.java index 537aaad7..62998d85 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Null.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Null.java @@ -12,8 +12,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PositivExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PositivExpr.java index 10cd52f9..41f92fb6 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/PositivExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/PositivExpr.java @@ -10,9 +10,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -22,6 +19,7 @@ import de.dhbwstuttgart.typeinference.JavaCodeResult; import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.java index 69751b09..01f8e936 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.java @@ -11,11 +11,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -29,7 +24,7 @@ import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; import de.dhbwstuttgart.typeinference.unify.TypeUnify; - +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java index 85a06e38..c9ccca6e 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java @@ -14,10 +14,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PreDecExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PreDecExpr.java index cfabbed9..11431a2d 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/PreDecExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/PreDecExpr.java @@ -11,11 +11,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -29,6 +24,7 @@ import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; import de.dhbwstuttgart.typeinference.unify.TypeUnify; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PreIncExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PreIncExpr.java index 36c4b514..23fb1122 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/PreIncExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/PreIncExpr.java @@ -11,11 +11,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.NotImplementedException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; @@ -29,6 +24,7 @@ import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; import de.dhbwstuttgart.typeinference.unify.TypeUnify; +import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java b/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java index ecd39c37..5c1d2bbd 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java @@ -6,13 +6,6 @@ import java.util.Hashtable; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -// ino.end - - - - - -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Return.java b/src/de/dhbwstuttgart/syntaxtree/statement/Return.java index dce35395..42b3e68f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Return.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Return.java @@ -12,10 +12,6 @@ import org.apache.commons.bcel6.generic.ClassGen; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java b/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java index d6e2e9f8..29646017 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java @@ -13,9 +13,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.core.IItemWithOffset; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java index cc4d1c01..1c13d198 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java @@ -13,9 +13,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.Constructor; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/This.java b/src/de/dhbwstuttgart/syntaxtree/statement/This.java index 0474e7ae..38e91848 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/This.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/This.java @@ -14,9 +14,6 @@ import org.apache.commons.bcel6.generic.ObjectType; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.Constructor; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java index e248583d..2e2bc05f 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java @@ -6,9 +6,6 @@ import java.util.Hashtable; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.Constructor; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java index 30bd4375..99a3ab87 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java @@ -4,7 +4,6 @@ package de.dhbwstuttgart.syntaxtree.statement; // ino.module.UnaryExpr.8655.import import de.dhbwstuttgart.typeinference.Menge; -import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; import de.dhbwstuttgart.typeinference.ConstraintsSet; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryMinus.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryMinus.java index 43de6608..20a6f8ce 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryMinus.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryMinus.java @@ -2,7 +2,6 @@ package de.dhbwstuttgart.syntaxtree.statement; // ino.end -import de.dhbwstuttgart.myexception.JVMCodeException; // ino.class.UnaryMinus.26308.declaration public class UnaryMinus diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryNot.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryNot.java index 3cb1ef91..5d6190ae 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryNot.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryNot.java @@ -2,7 +2,6 @@ package de.dhbwstuttgart.syntaxtree.statement; // ino.end -import de.dhbwstuttgart.myexception.JVMCodeException; // ino.class.UnaryNot.26314.declaration public class UnaryNot diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java index 4da17ecd..5512de4b 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java @@ -16,10 +16,6 @@ import org.apache.commons.bcel6.generic.InstructionList; import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.logger.Logger; -import de.dhbwstuttgart.myexception.CTypeReconstructionException; -import de.dhbwstuttgart.myexception.JVMCodeException; -import de.dhbwstuttgart.myexception.SCExcept; -import de.dhbwstuttgart.myexception.SCStatementException; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.operator.LogOp; diff --git a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java index 2df27dba..50e98c4b 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java @@ -12,7 +12,6 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.logger.Logger; import de.dhbwstuttgart.bytecode.ClassGenerator; import de.dhbwstuttgart.core.IItemWithOffset; -import de.dhbwstuttgart.myexception.SCException; import de.dhbwstuttgart.parser.JavaClassName; import de.dhbwstuttgart.syntaxtree.Class; import de.dhbwstuttgart.syntaxtree.Constructor; diff --git a/src/de/dhbwstuttgart/typeinference/EinzelElement.java b/src/de/dhbwstuttgart/typeinference/EinzelElement.java index d33396b9..32cfba03 100644 --- a/src/de/dhbwstuttgart/typeinference/EinzelElement.java +++ b/src/de/dhbwstuttgart/typeinference/EinzelElement.java @@ -2,7 +2,7 @@ package de.dhbwstuttgart.typeinference; import java.util.Set; -import com.rits.cloning.Cloner; +import de.dhbwstuttgart.typeinference.exceptions.*; public class EinzelElement implements KomplexeMenge{ private A item; @@ -19,12 +19,12 @@ public class EinzelElement implements KomplexeMenge{ @Override public Set> cartesianProduct() { - Cloner cloner = new Cloner(); Set> ret = new Menge<>(); Menge i = new Menge(); - i.add(cloner.deepClone(item)); + i.add(item); ret.add(i); - return ret; + //return ret; + throw new NotImplementedException(); } @Override diff --git a/src/de/dhbwstuttgart/typeinference/unify/RuleSet.java b/src/de/dhbwstuttgart/typeinference/unify/RuleSet.java index d14a26f5..85f7a6d0 100644 --- a/src/de/dhbwstuttgart/typeinference/unify/RuleSet.java +++ b/src/de/dhbwstuttgart/typeinference/unify/RuleSet.java @@ -10,6 +10,7 @@ import java.util.Set; import java.util.Stack; import java.util.stream.Collectors; +import de.dhbwstuttgart.typeinference.exceptions.DebugException; import de.dhbwstuttgart.typeinference.unify.interfaces.IFiniteClosure; import de.dhbwstuttgart.typeinference.unify.interfaces.IRuleSet; import de.dhbwstuttgart.typeinference.unify.model.ExtendsType; @@ -23,7 +24,6 @@ import de.dhbwstuttgart.typeinference.unify.model.Unifier; import de.dhbwstuttgart.typeinference.unify.model.UnifyPair; import de.dhbwstuttgart.typeinference.unify.model.UnifyType; import de.dhbwstuttgart.typeinference.unify.model.WildcardType; -import junit.framework.Assert; /** * Implementation of the type inference rules. @@ -305,7 +305,7 @@ public class RuleSet implements IRuleSet{ if(!rhsSType.getName().equals(lhsSType.getName())) return Optional.empty(); - Assert.assertEquals(lhsSType.getTypeParams().size(), rhsSType.getTypeParams().size()); + if(!(lhsSType.getTypeParams().size()==rhsSType.getTypeParams().size()))throw new DebugException("Fehler in Unifizierung"); //if(rhsSType.getTypeParams().size() != lhsSType.getTypeParams().size()) // return Optional.empty(); @@ -519,7 +519,7 @@ public class RuleSet implements IRuleSet{ * @return An array containing the values of pi for every type argument of C or an empty array if the search failed. */ private int[] pi(TypeParams cArgs, TypeParams dArgs) { - Assert.assertEquals(cArgs.size(), dArgs.size()); + if(!(cArgs.size()==dArgs.size()))throw new DebugException("Fehler in Unifizierung"); int[] permutation = new int[dArgs.size()];