chemeq-2.12.orig/0000755000175000017500000000000012244451347014043 5ustar georgeskgeorgeskchemeq-2.12.orig/chemeq.10000644000175000017500000002011212160265615015361 0ustar georgeskgeorgesk'\" t .\" Title: CHEMEQ .\" Author: Georges Khaznadar .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 06/19/2013 .\" Manual: User Manuals .\" Source: chemeq 2.10 .\" Language: English .\" .TH "CHEMEQ" "1" "06/19/2013" "chemeq 2.10" "User Manuals" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" chemeq \- Chemical Equation Parser and Renderer .SH "SYNOPSIS" .HP \w'\fBchemeq\fR\ 'u \fBchemeq\fR [\fB\-M\fR] [\fB\-m\fR] [\fB\-l\fR] [\fB\-c\fR] [\fB\-w\fR] [\fB\-C\fR] [\fB\-e\fR] [\fB\-s\fR] [\fB\-n\fR] [\fB\-W\fR] .HP \w'\fBchemeq\fR\ 'u \fBchemeq\fR [\fB\-h\fR] [\fB\-v\fR] .SH "DESCRIPTION" .PP \fBchemeq\fR is a chemical equation analyzer\&. It is a fast lexical and syntaxic analyser which helps to find out chemical informations embedded in source chemical equations\&. Data can be output in various sophisticated formats, depending on options\&. \*(Aqchemeq\*(Aq defaults to \*(Aqchemeq \-mlcwCn\*(Aq\&. .SH "OPTIONS" .PP \fB\-M\fR .RS 4 Outputs al list of space separated molecular weights\&. .RE .PP \fB\-m\fR .RS 4 Outputs a \fBm\fRinimal output\&. It allows chemeq to be idempotent, i\&.e\&. the command \*(Aqchemeq | chemeq\*(Aq is equivalent to \*(Aqchemeq\*(Aq\&. .RE .PP \fB\-l\fR .RS 4 Outputs a \fBL\fRaTeX string representing the chemical equation\&. .RE .PP \fB\-c\fR .RS 4 Outputs a message giving informations about the Conservation of elements and charges in the equation\&. \*(AqOK\*(Aq means that both elements and electric charges are balanced\&. .RE .PP \fB\-w\fR .RS 4 Outputs the LaTeX string representing the Gulder\-\fBW\fRaage equation related to the input chemical equation, or the Nernst equation, if the input equation is a redox semi\-equation\&. .RE .PP \fB\-C\fR .RS 4 Outputs a detailed \fBC\fRount of the molecules and atoms contained in each member of the chemical equation\&. For example for the equation "H2_g + 1/2 O2_g \-\-> H2O" it outputs: "H2_g|H:1*2, 1/2 O2_g|O:1/2*2; H2O|H:1*2 O:1*1" .RE .PP \fB\-e\fR .RS 4 Outputs a detailed count of the \fBE\fRlectrical charges\&. .RE .PP \fB\-s\fR .RS 4 Outputs a list of the chemical \fBS\fRpecies\&. .RE .PP \fB\-n\fR .RS 4 Outputs a \fBN\fRormalized string accounting for the input equation\&. Two chemical equations having the same normalized string are chemically equivalent, even if the molecules are scrambled around and the coefficient are not equal but proportionnal\&. .RE .PP \fB\-W\fR .RS 4 Changes the behavior of the renderer for some versions of \fBW\fRims : works around a bug whith the macro \erightarrow\&. .RE .PP \fB\-h\fR .RS 4 Displays \fBH\fRelp\&. .RE .PP \fB\-v\fR .RS 4 Displays the \fBV\fRersion number .RE .SH "ENVIRONMENT" .PP \fBchemeq_input\fR, \fBw_chemeq_input\fR .RS 4 if set, this variables\*(Aqs value overrides the standard input\&. If this variable is not set, the variable w_chemeq_input is taken in account (useful for the WIMS server)\&. See above (useful for the WIMS server)\&. .RE .PP \fBchemeq_option\fR .RS 4 if set, this variable\*(Aqs value overrides the options\&.If this variable is not set, the variable w_chemeq_option is taken in account (useful for the WIMS server)\&. .RE .PP \fBw_chemeq_option\fR .RS 4 See above (useful for the WIMS server)\&. .RE .SH "EXAMPLES" .PP \fBecho "1/2 Cu^2+ + OH\- \-> 1/2Cu(OH)2s" | chemeq\fR .RS 4 will display informations about the reaction of hydroxyde and Cu II ions\&. .RE .PP \fBecho "MnO4^\- + 8H3O^+ + 5e\- \-\-> Mn^2+ + 12 H2O" | chemeq\fR .RS 4 will display informations about the reaction of reduction of permanganate ions in an acid environment\&. .RE .PP \fBecho "MnO4^\- + 8H3O^+ + 5e\- \-\-> Mn^2+ + 12 H2O" | chemeq \-w\fR .RS 4 will display the LaTeX format for the Nernst law related to the reduction of permanganate ions in an acid environment\&. .RE .PP \fBecho "MnO4^\- + 8H3O^+ + 5e\- \-\-> Mn^2+ + 8 H2O" | chemeq \-c\fR .RS 4 will highlight the lack of conservation of elements H and O (water molecules are not well balanced)\&. .RE .SH "NOTES" .PP \fBsyntax of ions\fR .RS 4 allthough in some cases, shorter expressions are sucessfully parsed, it is safer to consider that an "up arrow" (^) must be put before the charge symbols of an ion\&. Examples : H3O^+, Fe(CN)6^4\-, OH^\- .RE .PP \fBComposing chemical equations\fR .RS 4 Two operators are defined, # as an additive oprator and ~ (tilde) as a substractive operator: they allow to compose several chemical equations .sp \fB echo "MnO4^\- + 8H3O^+ + 5e\- \-\-> Mn^2+ + 8 H2O ~ 5Fe^3+ + 5e\- \-> 5Fe^2+" | chemeq\fR .sp will display the pure redox equation from the first equation, minus the second one\&. Electrons are simplified\&. So it will be equivalent to: .sp \fB echo "MnO4^\- + 8H3O^+ + 5Fe^2+\-\-> Mn^2+ + 8 H2O + 5Fe^3+" | chemeq \fR which is their combination\&. .RE .PP \fBMutiplying a chemical equation by one coefficient\fR .RS 4 The operator * permits to multiply a whole equation by one coefficient which may be a fraction\&. Here is an example: .sp \fB echo "5 * Fe^3+ + e\- \-> Fe^2+" | chemeq \fR .sp will be equivalent to .sp \fB echo "5Fe^3+ + 5e\- \-> 5Fe^2+" | chemeq\fR .RE .PP \fBCombining chemical equations, with coefficients\fR .RS 4 The two previous techniques can be used at the same time, which enables you to make more comlicated combinations, like this one: .sp \fB echo "Fe^3+ + e^\- \-> Fe^2+ (0\&.77 V) # Fe^2+ + 6CN^\- \-> Fe(CN)6^4\- (Kfa=1e24) ~ Fe^3+ + 6CN^\- \-> Fe(CN)6^3\- (Kfb=1e31)" | chemeq \fR .sp which will work as expected, and yeld a good value for the stan\(hy dard potential of the redox couple of hexacyanoferrate II and III ions\&. .RE .SH "KNOWN BUGS" .PP When not specified, chemical entities coming from the standard input are believed to be in aqueous solutions\&. Water is considered by default as the main solvent\&. Only one liquid (aqueous) phase is currently taken in account\&. All solid chemical entities are considered as parts of separated phases\&. Suffixes _s, _g and _aq can be used to enforce the type of some chemical entities\&. There may be problemes when you write a standard potential with no decimal dot\&. For example, the entry \fBMn^2+ + 2e^\- \-> Mn_s (\-1 V)\fR would trigger an error\&. Then write \fBMn^2+ + 2e^\- \-> Mn_s (\-1\&.0 V)\fR or the more accurate value \fBMn^2+ + 2e^\- \-> Mn_s (\-1\&.18 V)\fR and there will be no error\&. .SH "AUTHOR" .PP \fBGeorges Khaznadar\fR <\&georgesk@debian\&.org\&> .RS 4 Wrote this manpage\&. .RE .SH "COPYRIGHT" .br Copyright \(co 2000-2013 Georges Khaznadar .br .PP Redistribution and use of this manpage in source and binary forms, with or without modification, are permitted under the terms of the GNU General Public Licenses, version 2 .PP 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\&. .sp chemeq-2.12.orig/Makefile0000644000175000017500000000163412160260675015506 0ustar georgeskgeorgeskINSTALL=install DESTDIR = BIN = $(DESTDIR)/usr/bin MAN1 = $(DESTDIR)/usr/share/man/man1 DOC = $(DESTDIR)/usr/share/doc/chemeq TESTS = $(DOC)/tests TESTSUITE = tests/chemreport tests/chemreport.pl \ tests/chemtest tests/chemtest.pl TESTSTUFF = tests/test.stuff all : (cd src; ${MAKE}) demo : all (cd tests; chemreport) test : all (cd tests; PATH=../src:$$PATH sh chemtest) install : all ${INSTALL} -d $(BIN) $(MAN1) $(TESTS) ${INSTALL} src/chemeq $(BIN) gzip -c -9 chemeq.1 > chemeq.1.gz ${INSTALL} -m644 chemeq.1.gz $(MAN1) ${INSTALL} -m755 $(TESTSUITE) $(TESTS) ${INSTALL} -m644 $(TESTSTUFF) $(TESTS) uninstall : rm $(BIN)/chemeq rm $(MAN1)/chemeq.1.gz rm -rf $(DOC) clean : rm -f *~ *.gz semantic.cache (cd src; ${MAKE} clean) chemeq.1: chemeq.man.xml xsltproc --nonet --param man.charmap.use.subset "0" \ --param make.year.ranges "1" \ --param make.single.year.ranges "1" \ $<chemeq-2.12.orig/chemeq.man.xml0000644000175000017500000003245712160265563016614 0ustar georgeskgeorgesk ]> &dhtitle; &dhproduct; &dhrelease; Georges Khaznadar Wrote this manpage.
georgesk@debian.org
2000-2013 Georges Khaznadar Redistribution and use of this manpage in source and binary forms, with or without modification, are permitted under the terms of the GNU General Public Licenses, version 2 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.
&dhucpackage; &dhsection; &dhpackage; Chemical Equation Parser and Renderer &dhpackage; &dhpackage; DESCRIPTION &dhpackage; is a chemical equation analyzer. It is a fast lexical and syntaxic analyser which helps to find out chemical informations embedded in source chemical equations. Data can be output in various sophisticated formats, depending on options. 'chemeq' defaults to 'chemeq -mlcwCn'. OPTIONS Outputs al list of space separated molecular weights. Outputs a inimal output. It allows chemeq to be idempotent, i.e. the command 'chemeq | chemeq' is equivalent to 'chemeq'. Outputs a aTeX string representing the chemical equation. Outputs a message giving informations about the Conservation of elements and charges in the equation. 'OK' means that both elements and electric charges are balanced. Outputs the LaTeX string representing the Gulder-aage equation related to the input chemical equation, or the Nernst equation, if the input equation is a redox semi-equation. Outputs a detailed ount of the molecules and atoms contained in each member of the chemical equation. For example for the equation "H2_g + 1/2 O2_g --> H2O" it outputs: "H2_g|H:1*2, 1/2 O2_g|O:1/2*2; H2O|H:1*2 O:1*1" Outputs a detailed count of the lectrical charges. Outputs a list of the chemical pecies. Outputs a ormalized string accounting for the input equation. Two chemical equations having the same normalized string are chemically equivalent, even if the molecules are scrambled around and the coefficient are not equal but proportionnal. Changes the behavior of the renderer for some versions of ims : works around a bug whith the macro \rightarrow. Displays elp. Displays the ersion number ENVIRONMENT chemeq_input if set, this variables's value overrides the standard input. If this variable is not set, the variable w_chemeq_input is taken in account (useful for the WIMS server). w_chemeq_input See above (useful for the WIMS server). chemeq_option if set, this variable's value overrides the options.If this variable is not set, the variable w_chemeq_option is taken in account (useful for the WIMS server). w_chemeq_option See above (useful for the WIMS server). EXAMPLES will display informations about the reaction of hydroxyde and Cu II ions. will display informations about the reaction of reduction of permanganate ions in an acid environment. will display the LaTeX format for the Nernst law related to the reduction of permanganate ions in an acid environment. will highlight the lack of conservation of elements H and O (water molecules are not well balanced). NOTES allthough in some cases, shorter expressions are sucessfully parsed, it is safer to consider that an "up arrow" (^) must be put before the charge symbols of an ion. Examples : H3O^+, Fe(CN)6^4-, OH^- Two operators are defined, # as an additive oprator and ~ (tilde) as a substractive operator: they allow to compose several chemical equations will display the pure redox equation from the first equation, minus the second one. Electrons are simplified. So it will be equivalent to: which is their combination. The operator * permits to multiply a whole equation by one coefficient which may be a fraction. Here is an example: will be equivalent to The two previous techniques can be used at the same time, which enables you to make more comlicated combinations, like this one: which will work as expected, and yeld a good value for the stan‐ dard potential of the redox couple of hexacyanoferrate II and III ions. KNOWN BUGS When not specified, chemical entities coming from the standard input are believed to be in aqueous solutions. Water is considered by default as the main solvent. Only one liquid (aqueous) phase is currently taken in account. All solid chemical entities are considered as parts of separated phases. Suffixes _s, _g and _aq can be used to enforce the type of some chemical entities. There may be problemes when you write a standard potential with no decimal dot. For example, the entry would trigger an error. Then write or the more accurate value and there will be no error.
chemeq-2.12.orig/COPYING0000644000175000017500000010437411222350021015065 0ustar georgeskgeorgesk GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . chemeq-2.12.orig/LISEZMOI0000644000175000017500000001007512244451254015221 0ustar georgeskgeorgesk ------------------------------------------- chemeq V2.12-1 ------------------------------------------- (c)2000-2013 G. Khaznadar ------------------------------------------- chemeq est un filtre simple et autonome écrit en langage C, flex et bison. Il accepte des entrées telles que : 2H2 + O2 ---> 2 H2O et produit sur sa sortie standard du code LaTeX et des messages relatifs à l'équilibre d'une équation de réaction chimique. exemple:~/src$ echo "2H2 + O2 ---> 2 H2O" | chemeq -lc 2\,H_{2}\,+\,O_{2}\,\rightarrow\,2\,H_{2}O OK exemple:~/src$ ce qui signifie : 2 molécules de dihydrogène réagissent avec une molécule de dioxygène pour donner deux molécules d'eau. La première ligne, "2\,H_{2}\,+\,O_{2}\,\rightarrow\,2\,H_{2}O" est une réécriture de l'équation en langage LaTeX. La deuxième ligne "OK" signifie que l'équation de réaction est équilibrée. Quand la chaîne d'entrée n'est pas reconnue, le filtre échoue et renvoie un code 1. exemple:~/src$ echo "2H^2 + O2 ---> 2 H2O" | chemeq -lc ERROR parse error at 4 exemple:~/src$ NOTE : syntaxe des ions. Bien que dans certains cas, une expression plus courte soit acceptée, il est préférable de mettre une flèche haute (^) devant les symboles de charge d'un ion. Exemples : H3O^+, Fe(CN)6^4-, OH^- NOTE : crochets L'écriture de crochets est autorisée autour de la notation d'un corps simple, comme pour [Fe(CN)6]4-, et seulement dans ce cas. NOTE : constantes d'équilibre chimique. Pour les équilibres chiliques, la constante pour l'équation de Gulder-Waage ou le potentiel pour l'équation de Nernst peut être écrite à la fin de l'équation, entre parenthèses. Voir quelques exemples dans src/test.1, et typographiez-les grâce à LaTeX par la commande src/chemreport Ce filtre peut être utilisé au sein de systèmes d'examens éducatifs, pour analyser la réponse d'un étudiant à un problème de physique ou de chimie. Ce petit bout de code est sous GPL, voyez le fichier COPYING. Les suggestions sont bienvenues. -- Georges. ----------------------------------------------------------- Les options de chemeq ----------------------------------------------------------- On peut choisir le format de sortie de chemeq en spécifiant quelques options. Les options valides sont les suivantes : -h produit un message d'aide en anglais (*H*elp) -m Produit une sortie *M*inimale. Ainsi chemeq est idempotent, c'est à dire que les commandes 'chemeq | chemeq' et 'chemeq' sont équivalentes. -l Prouduit une chaîne *L*atex représentant l'équation chimique. -c Produit un message donnant des indications sur la *C*onservation des éléments et des charges. 'OK' signifie que les éléments et les charges sont conservés. -w Produit la chaîne LaTeX qui représente l'équation de Gulder-*W*aage relative à l'équation chimique, ou l'équation de Nernst, si l'équation de départ est une demi-réaction rédox. -n Produit une chaîne *N*ormalisée représentant l'équation de départ. Deux équations chimiques ayant la même chaîne normalisée sont chimiquement équivalentes, même si l'ordre des molécules est différent, et si les coefficients ne sont pas égaux mais proportionnels. Par défaut, 'chemeq' est équivalent à 'chemeq -mlcwn'. ----------------------------------------------------------- INSTALLATION ----------------------------------------------------------- Pour compiler chemeq, lancez 'make' dans le répertoire principal chemeq. Pour l'installer avec sa page de manuel, lancez 'make install' dans ce même répertoire. ----------------------------------------------------------- TEST et DEMONSTRATION ----------------------------------------------------------- Si on modifie le code source, il est possible de tester sa conformité aux versions précédentes en lançant 'make test' dans le répertoire principal. Si 'make test' répond 'OK' à chaque item, et que latex et xdvi sont installés, on peut lancer 'make demo' pour voir quelques exemples de traitement typographique. chemeq-2.12.orig/src/0000755000175000017500000000000012244451025014623 5ustar georgeskgeorgeskchemeq-2.12.orig/src/chemlex.cc0000644000175000017500000013035712244451023016566 0ustar georgeskgeorgesk#line 2 "chemlex.cc" #line 4 "chemlex.cc" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* The c++ scanner is a mess. The FlexLexer.h header file relies on the * following macro. This is required in order to pass the c++-multiple-scanners * test in the regression suite. We get reports that it breaks inheritance. * We will address this in a future release of flex, or omit the C++ scanner * altogether. */ #define yyFlexLexer yyFlexLexer /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ #include #include #include #include #include /* end standard C++ headers. */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif extern int yyleng; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { std::istream* yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] void *yyalloc (yy_size_t ); void *yyrealloc (void *,yy_size_t ); void yyfree (void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; #define yytext_ptr yytext #define YY_INTERACTIVE #include int yyFlexLexer::yywrap() { return 1; } /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 31 #define YY_END_OF_BUFFER 32 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[54] = { 0, 0, 0, 32, 30, 21, 29, 27, 3, 4, 19, 18, 17, 8, 26, 1, 1, 6, 7, 22, 30, 30, 2, 24, 23, 28, 21, 5, 16, 29, 12, 11, 13, 9, 20, 0, 14, 15, 0, 0, 8, 0, 1, 1, 0, 24, 23, 25, 9, 0, 10, 0, 9, 0 } ; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 4, 1, 1, 1, 1, 5, 6, 7, 8, 1, 9, 10, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 13, 14, 1, 1, 15, 15, 15, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 17, 15, 15, 15, 15, 15, 18, 1, 19, 20, 21, 1, 22, 23, 23, 23, 24, 23, 25, 23, 23, 23, 23, 23, 23, 23, 23, 23, 26, 23, 27, 23, 28, 23, 23, 23, 23, 23, 1, 1, 1, 29, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst flex_int32_t yy_meta[30] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1 } ; static yyconst flex_int16_t yy_base[56] = { 0, 0, 0, 82, 83, 28, 0, 83, 83, 83, 83, 23, 25, 38, 83, 0, 53, 83, 83, 83, 16, 53, 83, 83, 83, 83, 50, 83, 83, 0, 67, 62, 42, 47, 83, 42, 83, 83, 61, 30, 0, 52, 83, 0, 47, 83, 83, 83, 53, 64, 58, 56, 55, 83, 77, 42 } ; static yyconst flex_int16_t yy_def[56] = { 0, 53, 1, 53, 53, 53, 54, 53, 53, 53, 53, 53, 53, 53, 53, 55, 55, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 54, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 13, 53, 53, 55, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 53, 53 } ; static yyconst flex_int16_t yy_nxt[113] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4, 4, 13, 14, 4, 15, 15, 16, 17, 18, 19, 20, 21, 4, 22, 23, 4, 24, 4, 25, 26, 30, 49, 27, 32, 31, 28, 33, 44, 34, 35, 45, 50, 46, 35, 42, 36, 37, 38, 39, 40, 32, 26, 39, 41, 27, 34, 38, 28, 33, 51, 51, 41, 41, 52, 48, 49, 52, 52, 41, 50, 41, 47, 48, 31, 30, 50, 41, 29, 47, 29, 43, 53, 3, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 } ; static yyconst flex_int16_t yy_chk[113] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 11, 39, 5, 12, 11, 5, 12, 20, 12, 13, 20, 39, 20, 35, 55, 13, 13, 13, 13, 13, 32, 26, 35, 13, 26, 32, 33, 26, 33, 41, 41, 13, 33, 41, 48, 49, 52, 51, 48, 50, 33, 44, 38, 31, 30, 49, 48, 54, 21, 54, 16, 3, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53 } ; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "chemeq.l" /* -*- coding: utf-8 -*- */ #include #include "chemeq.h" char * ind; int position = 0; /* les nombres */ /* la flèche */ #line 464 "chemlex.cc" #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO #define ECHO LexerOutput( yytext, yyleng ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ \ if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) LexerError( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 #define YY_DECL int yyFlexLexer::yylex() #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 25 "chemeq.l" /* les règles */ /* pour les atomes */ #line 574 "chemlex.cc" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = & std::cin; if ( ! yyout ) yyout = & std::cout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 54 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 83 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: YY_RULE_SETUP #line 29 "chemeq.l" { /* éléments Uux : transuraniens après le N 109 les autres sont les éléments ordinaires */ int i = 0; position += strlen(yytext); while (lesatomes[i].Zed != 0 && strcmp(yytext, lesatomes[i].symb)) i++; if (lesatomes[i].Zed == 0){ yylval.i=-2; /* -2 est le n° pour les éléments non définis */ strncpy(yylval.symb, yytext,3); } else { yylval.i=i; strcpy(yylval.symb, lesatomes[i].symb); } yylval.s = yytext; return Atome; } YY_BREAK case 2: YY_RULE_SETUP #line 46 "chemeq.l" {position++; yylval.i=-1; strcpy(yylval.symb, "e");return Atome;} YY_BREAK case 3: YY_RULE_SETUP #line 49 "chemeq.l" { position++; return Lpar;} YY_BREAK case 4: YY_RULE_SETUP #line 50 "chemeq.l" { position++; return Rpar;} YY_BREAK case 5: YY_RULE_SETUP #line 52 "chemeq.l" { position += strlen(yytext); return SpcLpar;} YY_BREAK case 6: YY_RULE_SETUP #line 53 "chemeq.l" { position ++; return Lsq;} YY_BREAK case 7: YY_RULE_SETUP #line 54 "chemeq.l" { position ++; return Rsq;} YY_BREAK case 8: YY_RULE_SETUP #line 55 "chemeq.l" { position += strlen(yytext); yylval.i = atoi(yytext); return Int; } YY_BREAK case 9: YY_RULE_SETUP #line 56 "chemeq.l" { position += strlen(yytext); yylval.r = atof(yytext); return Real;} YY_BREAK case 10: YY_RULE_SETUP #line 57 "chemeq.l" { position += strlen(yytext); ind = index(yytext,'/'); *ind=0; yylval.i = atoi(yytext); yylval.d = atoi(ind+1); return Frac; } YY_BREAK case 11: YY_RULE_SETUP #line 61 "chemeq.l" { position += strlen(yytext); yylval.i = atoi(yytext+1); return Charge; } YY_BREAK case 12: YY_RULE_SETUP #line 64 "chemeq.l" { position += strlen(yytext); yylval.i = strlen(yytext); return Charge; } YY_BREAK case 13: YY_RULE_SETUP #line 67 "chemeq.l" { position += strlen(yytext); yylval.i = -strlen(yytext); return Charge; } YY_BREAK case 14: YY_RULE_SETUP #line 70 "chemeq.l" { position += strlen(yytext); yytext[strlen(yytext)]=0; yylval.i = atoi(yytext); return Charge; } YY_BREAK case 15: YY_RULE_SETUP #line 73 "chemeq.l" { position += strlen(yytext); yytext[strlen(yytext)]=0; yylval.i = -atoi(yytext); return Charge; } YY_BREAK case 16: YY_RULE_SETUP #line 76 "chemeq.l" {position += strlen(yytext); return SpcPlus;} YY_BREAK case 17: YY_RULE_SETUP #line 77 "chemeq.l" {position += strlen(yytext); return Moins;} YY_BREAK case 18: YY_RULE_SETUP #line 78 "chemeq.l" {position ++; return Plus;} YY_BREAK case 19: YY_RULE_SETUP #line 79 "chemeq.l" {position ++; return Mul;} YY_BREAK case 20: YY_RULE_SETUP #line 80 "chemeq.l" {position += strlen(yytext); return Fleche;} YY_BREAK case 21: YY_RULE_SETUP #line 81 "chemeq.l" {position += strlen(yytext); return Spc;} YY_BREAK case 22: YY_RULE_SETUP #line 82 "chemeq.l" {position ++; return Haut;} YY_BREAK case 23: YY_RULE_SETUP #line 83 "chemeq.l" {position += strlen(yytext); return Sol;} YY_BREAK case 24: YY_RULE_SETUP #line 84 "chemeq.l" {position += strlen(yytext); return Gas;} YY_BREAK case 25: YY_RULE_SETUP #line 85 "chemeq.l" {position += strlen(yytext); return Aqueous;} YY_BREAK case 26: YY_RULE_SETUP #line 86 "chemeq.l" {position ++; return Egal;} YY_BREAK case 27: YY_RULE_SETUP #line 87 "chemeq.l" {position ++; return Compose;} YY_BREAK case 28: YY_RULE_SETUP #line 88 "chemeq.l" {position+=2; return AntiCompose;} YY_BREAK case 29: /* rule 29 can match eol */ YY_RULE_SETUP #line 89 "chemeq.l" {/* rien c'est la fin des entrées */} YY_BREAK case 30: /* rule 30 can match eol */ YY_RULE_SETUP #line 90 "chemeq.l" {position += strlen(yytext); /* rien */} YY_BREAK case 31: YY_RULE_SETUP #line 91 "chemeq.l" ECHO; YY_BREAK #line 842 "chemlex.cc" case YY_STATE_EOF(INITIAL): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ /* The contents of this function are C++ specific, so the () macro is not used. */ yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) { yyin = arg_yyin; yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 0; yy_start = 0; yy_flex_debug = 0; yylineno = 1; // this will only get updated if %option yylineno yy_did_buffer_switch_on_eof = 0; yy_looking_for_trail_begin = 0; yy_more_flag = 0; yy_more_len = 0; yy_more_offset = yy_prev_more_offset = 0; yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; yy_buffer_stack = 0; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; yy_state_buf = 0; } /* The contents of this function are C++ specific, so the () macro is not used. */ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; yyfree(yy_start_stack ); yy_delete_buffer( YY_CURRENT_BUFFER ); yyfree(yy_buffer_stack ); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) { if ( new_in ) { yy_delete_buffer( YY_CURRENT_BUFFER ); yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); } if ( new_out ) yyout = new_out; } #ifdef YY_INTERACTIVE int yyFlexLexer::LexerInput( char* buf, int /* max_size */ ) #else int yyFlexLexer::LexerInput( char* buf, int max_size ) #endif { if ( yyin->eof() || yyin->fail() ) return 0; #ifdef YY_INTERACTIVE yyin->get( buf[0] ); if ( yyin->eof() ) return 0; if ( yyin->bad() ) return -1; return 1; #else (void) yyin->read( buf, max_size ); if ( yyin->bad() ) return -1; else return yyin->gcount(); #endif } void yyFlexLexer::LexerOutput( const char* buf, int size ) { (void) yyout->write( buf, size ); } /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ int yyFlexLexer::yy_get_next_buffer() { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ yy_state_type yyFlexLexer::yy_get_previous_state() { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 54 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 54 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 53); return yy_is_jam ? 0 : yy_current_state; } void yyFlexLexer::yyunput( int c, register char* yy_bp) { register char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } int yyFlexLexer::yyinput() { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return EOF; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); return c; } /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyFlexLexer::yyrestart( std::istream* input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } void yyFlexLexer::yy_load_buffer_state() { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree((void *) b->yy_ch_buf ); yyfree((void *) b ); } extern "C" int isatty (int ); /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yyFlexLexer::yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ void yyFlexLexer::yyensure_buffer_stack(void) { int num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } void yyFlexLexer::yy_push_state( int new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; new_size = (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) (yy_start_stack) = (int *) yyalloc(new_size ); else (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; BEGIN(new_state); } void yyFlexLexer::yy_pop_state() { if ( --(yy_start_stack_ptr) < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); } int yyFlexLexer::yy_top_state() { return (yy_start_stack)[(yy_start_stack_ptr) - 1]; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif void yyFlexLexer::LexerError( yyconst char msg[] ) { std::cerr << msg << std::endl; exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return (void *) malloc( size ); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 91 "chemeq.l" chemeq-2.12.orig/src/chemparser.output0000644000175000017500000005445212244451023020246 0ustar georgeskgeorgeskGrammaire 0 $accept: but $end 1 but: chcompose 2 | molec 3 chcompose: chc 4 | chcompose spc01 Compose spc01 chc 5 | chcompose spc01 AntiCompose spc01 chc 6 chc: chemeq cste 7 | Frac spc01 Mul spc01 chc 8 | Int spc01 Mul spc01 chc 9 cste: /* vide */ 10 | SpcLpar cste1 Rpar 11 cste1: spc01 nombre volt 12 | spc01 id spc01 Egal spc01 nombre volt 13 nombre: Real 14 | Int 15 | Plus spc01 Real 16 | Moins spc01 Real 17 | Plus spc01 Int 18 | Moins spc01 Int 19 volt: /* vide */ 20 | spc01 Atome 21 id: Atome 22 chemeq: membre Spc Fleche spc01 membre 23 membre: membre SpcPlus spc01 molecs 24 | molecs 25 molecs: Int spc01 molec 26 | Frac spc01 molec 27 | molec 28 spc01: /* vide */ 29 | Spc 30 molec: composition0 typage 31 | composition0 charge typage 32 composition0: composition 33 | Lsq spc01 composition spc01 Rsq 34 typage: /* vide */ 35 | Aqueous 36 | Sol 37 | Gas 38 charge: Plus 39 | Haut Plus 40 | Haut Charge 41 | Moins 42 | Haut Moins 43 groupe: Lpar composition Rpar 44 atome_general: groupe 45 | Atome 46 composition: atome_general molecularite composition 47 | atome_general molecularite 48 molecularite: /* vide */ 49 | Int Terminaux, suivis des règles où ils apparaissent $end (0) 0 error (256) Atome (258) 20 21 45 SpcPlus (259) 23 Plus (260) 15 17 38 39 Moins (261) 16 18 41 42 Mul (262) 7 8 Fleche (263) 22 Int (264) 8 14 17 18 25 49 Charge (265) 40 Frac (266) 7 26 Real (267) 13 15 16 SpcLpar (268) 10 Lpar (269) 43 Rpar (270) 10 43 Lsq (271) 33 Rsq (272) 33 Haut (273) 39 40 42 Spc (274) 22 29 Sol (275) 36 Gas (276) 37 Aqueous (277) 35 Egal (278) 12 Compose (279) 4 AntiCompose (280) 5 Non-terminaux, suivis des règles où ils apparaissent $accept (26) à gauche: 0 but (27) à gauche: 1 2, à droite: 0 chcompose (28) à gauche: 3 4 5, à droite: 1 4 5 chc (29) à gauche: 6 7 8, à droite: 3 4 5 7 8 cste (30) à gauche: 9 10, à droite: 6 cste1 (31) à gauche: 11 12, à droite: 10 nombre (32) à gauche: 13 14 15 16 17 18, à droite: 11 12 volt (33) à gauche: 19 20, à droite: 11 12 id (34) à gauche: 21, à droite: 12 chemeq (35) à gauche: 22, à droite: 6 membre (36) à gauche: 23 24, à droite: 22 23 molecs (37) à gauche: 25 26 27, à droite: 23 24 spc01 (38) à gauche: 28 29, à droite: 4 5 7 8 11 12 15 16 17 18 20 22 23 25 26 33 molec (39) à gauche: 30 31, à droite: 2 25 26 27 composition0 (40) à gauche: 32 33, à droite: 30 31 typage (41) à gauche: 34 35 36 37, à droite: 30 31 charge (42) à gauche: 38 39 40 41 42, à droite: 31 groupe (43) à gauche: 43, à droite: 44 atome_general (44) à gauche: 44 45, à droite: 46 47 composition (45) à gauche: 46 47, à droite: 32 33 43 46 molecularite (46) à gauche: 48 49, à droite: 46 47 État 0 0 $accept: . but $end Atome décalage et aller à l'état 1 Int décalage et aller à l'état 2 Frac décalage et aller à l'état 3 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 but aller à l'état 6 chcompose aller à l'état 7 chc aller à l'état 8 chemeq aller à l'état 9 membre aller à l'état 10 molecs aller à l'état 11 molec aller à l'état 12 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 1 45 atome_general: Atome . $défaut réduction par utilisation de la règle 45 (atome_general) État 2 8 chc: Int . spc01 Mul spc01 chc 25 molecs: Int . spc01 molec Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 18 État 3 7 chc: Frac . spc01 Mul spc01 chc 26 molecs: Frac . spc01 molec Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 19 État 4 43 groupe: Lpar . composition Rpar Atome décalage et aller à l'état 1 Lpar décalage et aller à l'état 4 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 20 État 5 33 composition0: Lsq . spc01 composition spc01 Rsq Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 21 État 6 0 $accept: but . $end $end décalage et aller à l'état 22 État 7 1 but: chcompose . 4 chcompose: chcompose . spc01 Compose spc01 chc 5 | chcompose . spc01 AntiCompose spc01 chc Spc décalage et aller à l'état 17 $end réduction par utilisation de la règle 1 (but) $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 23 État 8 3 chcompose: chc . $défaut réduction par utilisation de la règle 3 (chcompose) État 9 6 chc: chemeq . cste SpcLpar décalage et aller à l'état 24 $défaut réduction par utilisation de la règle 9 (cste) cste aller à l'état 25 État 10 22 chemeq: membre . Spc Fleche spc01 membre 23 membre: membre . SpcPlus spc01 molecs SpcPlus décalage et aller à l'état 26 Spc décalage et aller à l'état 27 État 11 24 membre: molecs . $défaut réduction par utilisation de la règle 24 (membre) État 12 2 but: molec . 27 molecs: molec . $end réduction par utilisation de la règle 2 (but) $défaut réduction par utilisation de la règle 27 (molecs) État 13 30 molec: composition0 . typage 31 | composition0 . charge typage Plus décalage et aller à l'état 28 Moins décalage et aller à l'état 29 Haut décalage et aller à l'état 30 Sol décalage et aller à l'état 31 Gas décalage et aller à l'état 32 Aqueous décalage et aller à l'état 33 $défaut réduction par utilisation de la règle 34 (typage) typage aller à l'état 34 charge aller à l'état 35 État 14 44 atome_general: groupe . $défaut réduction par utilisation de la règle 44 (atome_general) État 15 46 composition: atome_general . molecularite composition 47 | atome_general . molecularite Int décalage et aller à l'état 36 $défaut réduction par utilisation de la règle 48 (molecularite) molecularite aller à l'état 37 État 16 32 composition0: composition . $défaut réduction par utilisation de la règle 32 (composition0) État 17 29 spc01: Spc . $défaut réduction par utilisation de la règle 29 (spc01) État 18 8 chc: Int spc01 . Mul spc01 chc 25 molecs: Int spc01 . molec Atome décalage et aller à l'état 1 Mul décalage et aller à l'état 38 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 molec aller à l'état 39 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 19 7 chc: Frac spc01 . Mul spc01 chc 26 molecs: Frac spc01 . molec Atome décalage et aller à l'état 1 Mul décalage et aller à l'état 40 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 molec aller à l'état 41 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 20 43 groupe: Lpar composition . Rpar Rpar décalage et aller à l'état 42 État 21 33 composition0: Lsq spc01 . composition spc01 Rsq Atome décalage et aller à l'état 1 Lpar décalage et aller à l'état 4 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 43 État 22 0 $accept: but $end . $défaut accepter État 23 4 chcompose: chcompose spc01 . Compose spc01 chc 5 | chcompose spc01 . AntiCompose spc01 chc Compose décalage et aller à l'état 44 AntiCompose décalage et aller à l'état 45 État 24 10 cste: SpcLpar . cste1 Rpar Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) cste1 aller à l'état 46 spc01 aller à l'état 47 État 25 6 chc: chemeq cste . $défaut réduction par utilisation de la règle 6 (chc) État 26 23 membre: membre SpcPlus . spc01 molecs Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 48 État 27 22 chemeq: membre Spc . Fleche spc01 membre Fleche décalage et aller à l'état 49 État 28 38 charge: Plus . $défaut réduction par utilisation de la règle 38 (charge) État 29 41 charge: Moins . $défaut réduction par utilisation de la règle 41 (charge) État 30 39 charge: Haut . Plus 40 | Haut . Charge 42 | Haut . Moins Plus décalage et aller à l'état 50 Moins décalage et aller à l'état 51 Charge décalage et aller à l'état 52 État 31 36 typage: Sol . $défaut réduction par utilisation de la règle 36 (typage) État 32 37 typage: Gas . $défaut réduction par utilisation de la règle 37 (typage) État 33 35 typage: Aqueous . $défaut réduction par utilisation de la règle 35 (typage) État 34 30 molec: composition0 typage . $défaut réduction par utilisation de la règle 30 (molec) État 35 31 molec: composition0 charge . typage Sol décalage et aller à l'état 31 Gas décalage et aller à l'état 32 Aqueous décalage et aller à l'état 33 $défaut réduction par utilisation de la règle 34 (typage) typage aller à l'état 53 État 36 49 molecularite: Int . $défaut réduction par utilisation de la règle 49 (molecularite) État 37 46 composition: atome_general molecularite . composition 47 | atome_general molecularite . Atome décalage et aller à l'état 1 Lpar décalage et aller à l'état 4 $défaut réduction par utilisation de la règle 47 (composition) groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 54 État 38 8 chc: Int spc01 Mul . spc01 chc Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 55 État 39 25 molecs: Int spc01 molec . $défaut réduction par utilisation de la règle 25 (molecs) État 40 7 chc: Frac spc01 Mul . spc01 chc Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 56 État 41 26 molecs: Frac spc01 molec . $défaut réduction par utilisation de la règle 26 (molecs) État 42 43 groupe: Lpar composition Rpar . $défaut réduction par utilisation de la règle 43 (groupe) État 43 33 composition0: Lsq spc01 composition . spc01 Rsq Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 57 État 44 4 chcompose: chcompose spc01 Compose . spc01 chc Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 58 État 45 5 chcompose: chcompose spc01 AntiCompose . spc01 chc Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 59 État 46 10 cste: SpcLpar cste1 . Rpar Rpar décalage et aller à l'état 60 État 47 11 cste1: spc01 . nombre volt 12 | spc01 . id spc01 Egal spc01 nombre volt Atome décalage et aller à l'état 61 Plus décalage et aller à l'état 62 Moins décalage et aller à l'état 63 Int décalage et aller à l'état 64 Real décalage et aller à l'état 65 nombre aller à l'état 66 id aller à l'état 67 État 48 23 membre: membre SpcPlus spc01 . molecs Atome décalage et aller à l'état 1 Int décalage et aller à l'état 68 Frac décalage et aller à l'état 69 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 molecs aller à l'état 70 molec aller à l'état 71 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 49 22 chemeq: membre Spc Fleche . spc01 membre Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 72 État 50 39 charge: Haut Plus . $défaut réduction par utilisation de la règle 39 (charge) État 51 42 charge: Haut Moins . $défaut réduction par utilisation de la règle 42 (charge) État 52 40 charge: Haut Charge . $défaut réduction par utilisation de la règle 40 (charge) État 53 31 molec: composition0 charge typage . $défaut réduction par utilisation de la règle 31 (molec) État 54 46 composition: atome_general molecularite composition . $défaut réduction par utilisation de la règle 46 (composition) État 55 8 chc: Int spc01 Mul spc01 . chc Atome décalage et aller à l'état 1 Int décalage et aller à l'état 2 Frac décalage et aller à l'état 3 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 chc aller à l'état 73 chemeq aller à l'état 9 membre aller à l'état 10 molecs aller à l'état 11 molec aller à l'état 71 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 56 7 chc: Frac spc01 Mul spc01 . chc Atome décalage et aller à l'état 1 Int décalage et aller à l'état 2 Frac décalage et aller à l'état 3 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 chc aller à l'état 74 chemeq aller à l'état 9 membre aller à l'état 10 molecs aller à l'état 11 molec aller à l'état 71 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 57 33 composition0: Lsq spc01 composition spc01 . Rsq Rsq décalage et aller à l'état 75 État 58 4 chcompose: chcompose spc01 Compose spc01 . chc Atome décalage et aller à l'état 1 Int décalage et aller à l'état 2 Frac décalage et aller à l'état 3 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 chc aller à l'état 76 chemeq aller à l'état 9 membre aller à l'état 10 molecs aller à l'état 11 molec aller à l'état 71 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 59 5 chcompose: chcompose spc01 AntiCompose spc01 . chc Atome décalage et aller à l'état 1 Int décalage et aller à l'état 2 Frac décalage et aller à l'état 3 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 chc aller à l'état 77 chemeq aller à l'état 9 membre aller à l'état 10 molecs aller à l'état 11 molec aller à l'état 71 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 60 10 cste: SpcLpar cste1 Rpar . $défaut réduction par utilisation de la règle 10 (cste) État 61 21 id: Atome . $défaut réduction par utilisation de la règle 21 (id) État 62 15 nombre: Plus . spc01 Real 17 | Plus . spc01 Int Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 78 État 63 16 nombre: Moins . spc01 Real 18 | Moins . spc01 Int Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 79 État 64 14 nombre: Int . $défaut réduction par utilisation de la règle 14 (nombre) État 65 13 nombre: Real . $défaut réduction par utilisation de la règle 13 (nombre) État 66 11 cste1: spc01 nombre . volt Spc décalage et aller à l'état 17 Atome réduction par utilisation de la règle 28 (spc01) $défaut réduction par utilisation de la règle 19 (volt) volt aller à l'état 80 spc01 aller à l'état 81 État 67 12 cste1: spc01 id . spc01 Egal spc01 nombre volt Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 82 État 68 25 molecs: Int . spc01 molec Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 83 État 69 26 molecs: Frac . spc01 molec Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 84 État 70 23 membre: membre SpcPlus spc01 molecs . $défaut réduction par utilisation de la règle 23 (membre) État 71 27 molecs: molec . $défaut réduction par utilisation de la règle 27 (molecs) État 72 22 chemeq: membre Spc Fleche spc01 . membre Atome décalage et aller à l'état 1 Int décalage et aller à l'état 68 Frac décalage et aller à l'état 69 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 membre aller à l'état 85 molecs aller à l'état 11 molec aller à l'état 71 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 73 8 chc: Int spc01 Mul spc01 chc . $défaut réduction par utilisation de la règle 8 (chc) État 74 7 chc: Frac spc01 Mul spc01 chc . $défaut réduction par utilisation de la règle 7 (chc) État 75 33 composition0: Lsq spc01 composition spc01 Rsq . $défaut réduction par utilisation de la règle 33 (composition0) État 76 4 chcompose: chcompose spc01 Compose spc01 chc . $défaut réduction par utilisation de la règle 4 (chcompose) État 77 5 chcompose: chcompose spc01 AntiCompose spc01 chc . $défaut réduction par utilisation de la règle 5 (chcompose) État 78 15 nombre: Plus spc01 . Real 17 | Plus spc01 . Int Int décalage et aller à l'état 86 Real décalage et aller à l'état 87 État 79 16 nombre: Moins spc01 . Real 18 | Moins spc01 . Int Int décalage et aller à l'état 88 Real décalage et aller à l'état 89 État 80 11 cste1: spc01 nombre volt . $défaut réduction par utilisation de la règle 11 (cste1) État 81 20 volt: spc01 . Atome Atome décalage et aller à l'état 90 État 82 12 cste1: spc01 id spc01 . Egal spc01 nombre volt Egal décalage et aller à l'état 91 État 83 25 molecs: Int spc01 . molec Atome décalage et aller à l'état 1 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 molec aller à l'état 39 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 84 26 molecs: Frac spc01 . molec Atome décalage et aller à l'état 1 Lpar décalage et aller à l'état 4 Lsq décalage et aller à l'état 5 molec aller à l'état 41 composition0 aller à l'état 13 groupe aller à l'état 14 atome_general aller à l'état 15 composition aller à l'état 16 État 85 22 chemeq: membre Spc Fleche spc01 membre . 23 membre: membre . SpcPlus spc01 molecs SpcPlus décalage et aller à l'état 26 $défaut réduction par utilisation de la règle 22 (chemeq) État 86 17 nombre: Plus spc01 Int . $défaut réduction par utilisation de la règle 17 (nombre) État 87 15 nombre: Plus spc01 Real . $défaut réduction par utilisation de la règle 15 (nombre) État 88 18 nombre: Moins spc01 Int . $défaut réduction par utilisation de la règle 18 (nombre) État 89 16 nombre: Moins spc01 Real . $défaut réduction par utilisation de la règle 16 (nombre) État 90 20 volt: spc01 Atome . $défaut réduction par utilisation de la règle 20 (volt) État 91 12 cste1: spc01 id spc01 Egal . spc01 nombre volt Spc décalage et aller à l'état 17 $défaut réduction par utilisation de la règle 28 (spc01) spc01 aller à l'état 92 État 92 12 cste1: spc01 id spc01 Egal spc01 . nombre volt Plus décalage et aller à l'état 62 Moins décalage et aller à l'état 63 Int décalage et aller à l'état 64 Real décalage et aller à l'état 65 nombre aller à l'état 93 État 93 12 cste1: spc01 id spc01 Egal spc01 nombre . volt Spc décalage et aller à l'état 17 Atome réduction par utilisation de la règle 28 (spc01) $défaut réduction par utilisation de la règle 19 (volt) volt aller à l'état 94 spc01 aller à l'état 81 État 94 12 cste1: spc01 id spc01 Egal spc01 nombre volt . $défaut réduction par utilisation de la règle 12 (cste1) chemeq-2.12.orig/src/chemeq.l0000644000175000017500000000547311222350021016240 0ustar georgeskgeorgesk/* -*- coding: utf-8 -*- */ %option noyywrap %option c++ #include #include "chemeq.h" char * ind; int position = 0; /* les nombres */ digits [0-9] spc [ \t]+ int {digits}+ frac {int}{spc}?[/]{spc}?{int} mantisse {digits}+ real -?{int}([.]{mantisse})?([Ee][+-]?{int})? eol \n.* /* la flèche */ fleche [-]+> %% /* les règles */ /* pour les atomes */ Uu[a-z]|[A-Z][a-z]? { /* éléments Uux : transuraniens après le N 109 les autres sont les éléments ordinaires */ int i = 0; position += strlen(yytext); while (lesatomes[i].Zed != 0 && strcmp(yytext, lesatomes[i].symb)) i++; if (lesatomes[i].Zed == 0){ yylval.i=-2; /* -2 est le n° pour les éléments non définis */ strncpy(yylval.symb, yytext,3); } else { yylval.i=i; strcpy(yylval.symb, lesatomes[i].symb); } yylval.s = yytext; return Atome; } e {position++; yylval.i=-1; strcpy(yylval.symb, "e");return Atome;} \( { position++; return Lpar;} \) { position++; return Rpar;} {spc}+\( { position += strlen(yytext); return SpcLpar;} \[ { position ++; return Lsq;} \] { position ++; return Rsq;} {int} { position += strlen(yytext); yylval.i = atoi(yytext); return Int; } {real} { position += strlen(yytext); yylval.r = atof(yytext); return Real;} {frac} { position += strlen(yytext); ind = index(yytext,'/'); *ind=0; yylval.i = atoi(yytext); yylval.d = atoi(ind+1); return Frac; } \+{int} { position += strlen(yytext); yylval.i = atoi(yytext+1); return Charge; } \+[\+]+ { position += strlen(yytext); yylval.i = strlen(yytext); return Charge; } \-[\-]+ { position += strlen(yytext); yylval.i = -strlen(yytext); return Charge; } {int}\+ { position += strlen(yytext); yytext[strlen(yytext)]=0; yylval.i = atoi(yytext); return Charge; } {int}\- { position += strlen(yytext); yytext[strlen(yytext)]=0; yylval.i = -atoi(yytext); return Charge; } {spc}+\+ {position += strlen(yytext); return SpcPlus;} \- {position += strlen(yytext); return Moins;} \+ {position ++; return Plus;} \* {position ++; return Mul;} {fleche} {position += strlen(yytext); return Fleche;} {spc} {position += strlen(yytext); return Spc;} \^ {position ++; return Haut;} _s|s {position += strlen(yytext); return Sol;} _g|g {position += strlen(yytext); return Gas;} _ag|aq {position += strlen(yytext); return Aqueous;} = {position ++; return Egal;} # {position ++; return Compose;} ~ {position+=2; return AntiCompose;} {eol} {/* rien c'est la fin des entrées */} .|\n {position += strlen(yytext); /* rien */} chemeq-2.12.orig/src/Makefile0000644000175000017500000000152312206674670016277 0ustar georgeskgeorgesk# -*- coding: utf-8 -*- CXX = g++ CXXFLAGS= -g -O1 chemeq : chemeq.o chemparser.o mendeleiev.o ${CXX} $(CXXFLAGS) -o chemeq chemeq.o chemparser.o mendeleiev.o -lfl chemeq.h: chemeq.h.in echo "// Do not edit this file which has been automatically genreated." > $@ echo "// Instead, edit chemeq.h.in" >> $@ v=$$(basename $$(dirname $$(pwd))| sed 's/chemeq-//'); \ sed 's/VERSION.*/VERSION "'$$v'"/' $< >> $@ mendeleiev.o : mendeleiev.c chemeq.h ${CXX} $(CXXFLAGS) -c $< chemeq.o : chemeq.cc chemeq.h ${CXX} $(CXXFLAGS) -c chemeq.cc chemparser.o : chemparser.cc chemeq.h ${CXX} $(CXXFLAGS) -c chemparser.cc chemparser.cc : chemlex.cc chemeq.y chemeq.h bison --verbose -o chemparser.cc chemeq.y chemlex.cc : chemeq.l flex -ochemlex.cc chemeq.l clean : rm -f *~ *.o semantic.cache chemlex.cc chemparser.cc *.output chemeq chemeq.h chemeq-2.12.orig/src/.cvsignore0000644000175000017500000000015711222350021016613 0ustar georgeskgeorgeskchemlex.cc chemparser.cc.output chemparser.cc chemeq tmp.1 chemtest.tex chemtest.log chemtest.aux chemtest.dvi chemeq-2.12.orig/src/chemeq.h0000644000175000017500000002112712244451021016235 0ustar georgeskgeorgesk// Do not edit this file which has been automatically genreated. // Instead, edit chemeq.h.in // -*- coding: utf-8 -*- #ifndef CHEMEQ_H #define CHEMEQ_H #include #include #include #include #include #include #define VERSION "2.12" /* Constante d'Avogadro, recommandée par CODATA, 2006 */ #define Avogadro 6.022141e+23 /* Charge élémentaire, voir wikipedia, 2007 */ #define Electron 1.602176e-19 /* Constante de Boltzmann, voir Wikipedia, 2007 */ #define Kb 1.3806e-23 /* D'où la constante de Faraday */ #define Faraday (Avogadro * Electron) /* D'où la constante des Gaz parfaits 8.314 J.K^-1.mol^-1 */ #define R (Kb * Avogadro) /* Température de référence pour les réactions chimiques, 25°C */ #define T0 (273.15+25) /* MINVAL est une valeur impossible tant pour un potentiel standard */ /* que pour une constante d'équilibre */ #define MINVAL -999 typedef struct { int Zed; char symb[4]; } atome; extern atome lesatomes[]; typedef std::pair AtomeCompte; class Compteur : public std::map{ public: std::ostream & operator << (std::ostream & o)const; }; std::ostream & operator << (std::ostream & o, const Compteur & c); class Chemeq; class fraction{ public: int i; int d; fraction(int numerateur, int denominateur=1):i(numerateur),d(denominateur){}; void inverse(){int n=i; i=d; d=n;}; void simplifie(); }; const fraction & minFraction(const fraction&, const fraction &); std::ostream & operator << (std::ostream & o, fraction f); fraction operator * (fraction f, int m); fraction operator * (int m, fraction f); fraction operator * (fraction f, fraction m); fraction operator + (fraction f, fraction g); fraction operator - (fraction f, fraction g); bool operator > (fraction f, int i); bool operator > (fraction f1, fraction f2); bool operator != (fraction f, int i); class AtomeListe{ AtomeListe * suiv, *group; char symb[4]; int Zed, nb, no, sqbr; public: AtomeListe(const char* nom, int num, AtomeListe * s=0, AtomeListe * g=0){ strncpy(symb,nom,3); Zed=num; nb=1; sqbr=0; /* sqbr == 1 quand il y a un square bracket */ suiv = s; group=g; }; AtomeListe(const AtomeListe & a): suiv(a.suiv), group(a.group), Zed(a.Zed), nb(a.nb), sqbr(a.sqbr){ strncpy(symb,a.symb,3); }; const char * symbole() const{return symb;}; int Z()const{return Zed;}; int sq()const{return sqbr;}; void sq(int val){sqbr=val;}; void numerote(int n=0); void setmolecularite(int n){nb=n;}; int getmolecularite()const{return nb;}; AtomeListe * groupe(){return group;}; void groupe(AtomeListe * al){group= al;}; const AtomeListe * suivant()const{return suiv;}; const AtomeListe * groupe()const{return group;}; void setsuivant(AtomeListe * s){suiv=s;}; void compte (Compteur &c, fraction mult=fraction(1,1))const; double weight(fraction mult=fraction(1,1))const; static AtomeListe * triage(AtomeListe * al); void printcount(std::ostream & o, const fraction&, int multiple) const; void printnorm(std::ostream & o) const; bool isEqual(const AtomeListe & a2) const; void debug(int decal = 0)const{ for (int i=0; i< decal; i++) std::cout << " "; std::cout << "AtomeListe : ( & = " << this << " symb=\"" << symb << "\" Zed = " << Zed << " nb = " << nb << " no = " << no << " suiv = " << suiv << " group = " << group << ")\n"; if(group) group->debug(2+decal); if(suiv) suiv->debug(decal); }; }; typedef enum { aqueous, gas, sol } moltype; extern const char* moltypeStr[]; /* les chaînes aq, g,s */ class Membre; class Molec{ AtomeListe * al; int ch; fraction nb; int no; moltype t; public: Molec(AtomeListe * a, int c = 0, int n=1, int d=1): al(a), ch(c), nb(n,d), t(aqueous){}; Molec(const Molec & m): al(m.al), ch(m.ch), nb(m.nb.i,m.nb.d), t(m.t) {} AtomeListe & liste()const{return *al;}; int charge()const{return ch;}; bool eqMol(const Molec * m) const { return (al->isEqual(*(m->al))) && (ch== m->ch); } void nombre(int n, int d=1){nb=fraction(n,d);}; fraction nombre()const{return nb;}; void add(fraction f); void sub(fraction f); moltype typage()const{return t;}; void typage(moltype at){t=at;}; void numero(int n){no=n;}; int numero()const{return no;}; void triage(){al = AtomeListe::triage(al);}; void compte(Compteur & c)const{if (al) al->compte(c,nb);}; double weight(void)const{if (al) return al->weight(nb); else return 0.0;}; const std::string signature()const; void printNombre(std::ostream & o)const; bool printcount(std::ostream & o, bool first) const; bool printelec(std::ostream & o, bool first) const; bool printspecies(std::ostream & o, bool first) const; void printnorm(std::ostream & o)const; void printweigh(std::ostream & o)const; void coeff( fraction f); bool printNernst(std::ostream & o, const char * prefix =""); bool printNernstWIMS(std::ostream & o, bool wantedlatex); bool iswater()const; bool iselectron()const; fraction nbelectron()const; void debug(int decal = 0)const{ for (int i=0; i < decal; i++) std::cout << " "; std::cout << "Molec : ( " << this << " charge = " << ch << " nombre = " << nb << " no = " << no; al->debug(decal+2); std::cout << ")\n"; }; // two Molecs are equal if the AtomLists and the charges are equal. friend Membre operator & (Membre & m1, Membre & m2); friend Membre operator - (Membre & m1, Membre & m2); }; std::ostream & operator << (std::ostream & o, const AtomeListe & l); std::ostream & operator << (std::ostream & o, const Molec & m); class Membre : public std::vector{ public: int findMol(const Molec *); void addMol(const Molec *); void addMembre(const Membre *); void eraseNull(); void compte(Compteur & c)const; void numerote(); void triage(); void printnorm(std::ostream & o) const; void printcount(std::ostream & o) const; void printelec(std::ostream & o) const; void printspecies(std::ostream & o) const; void printweight(std::ostream & o) const; void coeff( fraction f); void printNernst(std::ostream & o); void printNernstWIMS(std::ostream & o, bool wantedlatex); int printableNernst(); bool redox()const; fraction nbelectron()const; void debug(int decal = 0)const{ for (int i=0; i < decal; i++) std::cout << " "; std::cout << "Membre : ( " << this; for (int j=0; j < size(); j++){ std::cout << j << " :\n"; operator[](j)->debug(decal+2); } std::cout << "\n"; } }; // intersection between two Membres Membre operator & (Membre & m1, Membre & m2); // members of first set which are not in the second Membre operator - (Membre & m1, Membre & m2); std::ostream & operator << (std::ostream & o, const Membre & m); class Chemeq{ Membre * gauche, * droit; std::string cste; long double val; public: Chemeq(Membre * g, Membre * d) : gauche (g), droit(d), val(MINVAL){}; const Membre * membredroit()const{return droit;}; const Membre * membregauche()const{return gauche;}; void addChemeq(const Chemeq *); void subChemeq(const Chemeq *); void simplifie(bool tri); void numerote(){gauche->numerote(); droit->numerote();}; void triage(){gauche->triage(); droit->triage();}; /* ajuste le coefficient pour qu'il y ait 1 mol du premier réactif */ void coeff1(); /* mutiplie par la fraction num/den */ void multiply(int num, int den); fraction nbelectron()const{return gauche->nbelectron()-droit->nbelectron();}; /* renvoie val ou nbelectron()*Faraday*val */ long double enthalpy() const; void normalise(){numerote(); triage(); coeff1();}; void printnorm(std::ostream & o); void printcount(std::ostream & o) const; void printelec(std::ostream & o) const; void printspecies(std::ostream & o) const; void printweight(std::ostream & o) const; void printNernst(std::ostream & o, std::ostream & w, bool wantedlatex=false); std::string equilibre(); bool redox()const; const std::string constante()const{ return cste;}; void constante (const std::string s) { cste = s;}; bool valdefined()const; double valeur()const{return val;}; std::string valeur_latex()const; void valeur(double r){val=r;}; }; std::ostream & operator << (std::ostream & o, const Chemeq & c); //struct taken from Kyle Burton's gperiodic /* structure to hold element data, as initialized from the static * mendeleiev.c */ enum info_types { NAME, SYMBOL, NUMBER, WEIGHT, MELTING, BOILING, PAULING, MAX_INFO_NR /* Has to be the last element */ }; struct table_entry { const char *info[MAX_INFO_NR]; }; extern struct table_entry table[]; double mendelweight(int i); int findmendel(const char * symb); double mendelweight(const char * symb); #endif chemeq-2.12.orig/src/chemparser.cc0000644000175000017500000017042012244451023017265 0ustar georgeskgeorgesk/* A Bison parser, made by GNU Bison 2.7.12-4996. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "2.7.12-4996" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Copy the first part of user declarations. */ /* Line 371 of yacc.c */ #line 2 "chemeq.y" /* inclusions, définition */ #include #include #include #include #include #include "chemeq.h" //#include #include int yylex(); int yyerror(char * msg); typedef struct{ int i, d; /* integer numerator, denominator */ double r; AtomeListe * al; Molec * m; Chemeq * cq; Membre * mb; char symb[4]; moltype t; std::string s; } yystype; #define YYSTYPE yystype /* variables globales */ yystype result; extern char * yytext; extern int position; int isequation; /* Line 371 of yacc.c */ #line 105 "chemparser.cc" # ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus # define YY_NULL nullptr # else # define YY_NULL 0 # endif # endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif #if YYDEBUG extern int yydebug; #endif /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { Atome = 258, SpcPlus = 259, Plus = 260, Moins = 261, Mul = 262, Fleche = 263, Int = 264, Charge = 265, Frac = 266, Real = 267, SpcLpar = 268, Lpar = 269, Rpar = 270, Lsq = 271, Rsq = 272, Haut = 273, Spc = 274, Sol = 275, Gas = 276, Aqueous = 277, Egal = 278, Compose = 279, AntiCompose = 280 }; #endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef int YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ #if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ #line 193 "chemparser.cc" #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #elif (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; #else typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if (! defined __GNUC__ || __GNUC__ < 2 \ || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) # define __attribute__(Spec) /* empty */ # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) #else # define YYUSE(E) /* empty */ #endif /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint # define YYID(N) (N) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int YYID (int yyi) #else static int YYID (yyi) int yyi; #endif { return yyi; } #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (YYID (0)) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 22 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 104 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 26 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 21 /* YYNRULES -- Number of rules. */ #define YYNRULES 50 /* YYNRULES -- Number of states. */ #define YYNSTATES 95 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 280 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const yytype_uint8 yyprhs[] = { 0, 0, 3, 5, 7, 9, 15, 21, 24, 30, 36, 37, 41, 45, 53, 55, 57, 61, 65, 69, 73, 74, 77, 79, 85, 90, 92, 96, 100, 102, 103, 105, 108, 112, 114, 120, 121, 123, 125, 127, 129, 132, 135, 137, 140, 144, 146, 148, 152, 155, 156 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { 27, 0, -1, 28, -1, 39, -1, 29, -1, 28, 38, 24, 38, 29, -1, 28, 38, 25, 38, 29, -1, 35, 30, -1, 11, 38, 7, 38, 29, -1, 9, 38, 7, 38, 29, -1, -1, 13, 31, 15, -1, 38, 32, 33, -1, 38, 34, 38, 23, 38, 32, 33, -1, 12, -1, 9, -1, 5, 38, 12, -1, 6, 38, 12, -1, 5, 38, 9, -1, 6, 38, 9, -1, -1, 38, 3, -1, 3, -1, 36, 19, 8, 38, 36, -1, 36, 4, 38, 37, -1, 37, -1, 9, 38, 39, -1, 11, 38, 39, -1, 39, -1, -1, 19, -1, 40, 41, -1, 40, 42, 41, -1, 45, -1, 16, 38, 45, 38, 17, -1, -1, 22, -1, 20, -1, 21, -1, 5, -1, 18, 5, -1, 18, 10, -1, 6, -1, 18, 6, -1, 14, 45, 15, -1, 43, -1, 3, -1, 44, 46, 45, -1, 44, 46, -1, -1, 9, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { 0, 66, 66, 70, 76, 77, 81, 87, 92, 95, 100, 101, 104, 105, 108, 109, 110, 111, 112, 113, 116, 117, 120, 123, 128, 131, 137, 141, 145, 150, 151, 154, 157, 163, 164, 167, 168, 169, 170, 173, 174, 175, 176, 177, 180, 185, 188, 198, 203, 209, 212 }; #endif #if YYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "Atome", "SpcPlus", "Plus", "Moins", "Mul", "Fleche", "Int", "Charge", "Frac", "Real", "SpcLpar", "Lpar", "Rpar", "Lsq", "Rsq", "Haut", "Spc", "Sol", "Gas", "Aqueous", "Egal", "Compose", "AntiCompose", "$accept", "but", "chcompose", "chc", "cste", "cste1", "nombre", "volt", "id", "chemeq", "membre", "molecs", "spc01", "molec", "composition0", "typage", "charge", "groupe", "atome_general", "composition", "molecularite", YY_NULL }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { 0, 26, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 31, 31, 32, 32, 32, 32, 32, 32, 33, 33, 34, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 43, 44, 44, 45, 45, 46, 46 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 1, 1, 5, 5, 2, 5, 5, 0, 3, 3, 7, 1, 1, 3, 3, 3, 3, 0, 2, 1, 5, 4, 1, 3, 3, 1, 0, 1, 2, 3, 1, 5, 0, 1, 1, 1, 1, 2, 2, 1, 2, 3, 1, 1, 3, 2, 0, 1 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. Performed when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { 0, 46, 29, 29, 0, 29, 0, 29, 4, 10, 0, 25, 28, 35, 45, 49, 33, 30, 0, 0, 0, 0, 1, 0, 29, 7, 29, 0, 39, 42, 0, 37, 38, 36, 31, 35, 50, 48, 29, 26, 29, 27, 44, 29, 29, 29, 0, 0, 0, 29, 40, 43, 41, 32, 47, 0, 0, 0, 0, 0, 11, 22, 29, 29, 15, 14, 20, 29, 29, 29, 24, 28, 0, 9, 8, 34, 5, 6, 0, 0, 12, 0, 0, 0, 0, 23, 18, 16, 19, 17, 21, 29, 0, 20, 13 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { -1, 6, 7, 8, 25, 46, 66, 80, 67, 9, 10, 11, 81, 71, 13, 34, 35, 14, 15, 16, 37 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -29 static const yytype_int8 yypact[] = { 37, -29, -7, -7, 5, -7, 16, 4, -29, 20, 13, -29, 18, 9, -29, 41, -29, -29, 42, 74, 48, 5, -29, 10, -7, -29, -7, 44, -29, -29, 49, -29, -29, -29, -29, 81, -29, 5, -7, -29, -7, -29, -29, -7, -7, -7, 61, 88, 59, -7, -29, -29, -29, -29, -29, 37, 37, 40, 37, 37, -29, -29, -7, -7, -29, -29, 6, -7, -7, -7, -29, -29, 59, -29, -29, -29, -29, -29, 60, 62, -29, 75, 64, 23, 23, 80, -29, -29, -29, -29, -29, -7, 1, 6, -29 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -29, -29, -29, 24, -29, -29, -28, -1, -29, -29, 26, 47, -2, 2, -29, 69, -29, -29, -29, 7, -29 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -30 static const yytype_int8 yytable[] = { 18, 19, 12, 21, -2, 23, 62, 63, 1, -29, 64, 20, 17, 65, 28, 29, 22, 26, -3, 4, 39, 41, 47, 17, 48, 17, 1, 30, 43, 31, 32, 33, 27, 24, 44, 45, 55, 4, 56, 5, 1, 57, 58, 59, 54, 1, 2, 72, 3, 38, 36, 4, 49, 5, 50, 51, 4, 75, 5, 52, 78, 79, 1, 42, 93, 82, 83, 84, 68, 86, 69, 88, 87, 4, 89, 5, 60, 1, 90, 73, 74, 40, 76, 77, 26, 39, 41, 91, 4, 92, 5, 61, 94, 62, 63, 70, 0, 64, 85, 0, 65, 31, 32, 33, 53 }; #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-29))) #define yytable_value_is_error(Yytable_value) \ YYID (0) static const yytype_int8 yycheck[] = { 2, 3, 0, 5, 0, 7, 5, 6, 3, 3, 9, 4, 19, 12, 5, 6, 0, 4, 0, 14, 18, 19, 24, 19, 26, 19, 3, 18, 21, 20, 21, 22, 19, 13, 24, 25, 38, 14, 40, 16, 3, 43, 44, 45, 37, 3, 9, 49, 11, 7, 9, 14, 8, 16, 5, 6, 14, 17, 16, 10, 62, 63, 3, 15, 92, 67, 68, 69, 9, 9, 11, 9, 12, 14, 12, 16, 15, 3, 3, 55, 56, 7, 58, 59, 4, 83, 84, 23, 14, 91, 16, 3, 93, 5, 6, 48, -1, 9, 72, -1, 12, 20, 21, 22, 35 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 3, 9, 11, 14, 16, 27, 28, 29, 35, 36, 37, 39, 40, 43, 44, 45, 19, 38, 38, 45, 38, 0, 38, 13, 30, 4, 19, 5, 6, 18, 20, 21, 22, 41, 42, 9, 46, 7, 39, 7, 39, 15, 45, 24, 25, 31, 38, 38, 8, 5, 6, 10, 41, 45, 38, 38, 38, 38, 38, 15, 3, 5, 6, 9, 12, 32, 34, 9, 11, 37, 39, 38, 29, 29, 17, 29, 29, 38, 38, 33, 38, 38, 38, 38, 36, 9, 12, 9, 12, 3, 23, 38, 32, 33 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. However, YYFAIL appears to be in use. Nevertheless, it is formally deprecated in Bison 2.4.2's NEWS entry, where a plan to phase it out is discussed. */ #define YYFAIL goto yyerrlab #if defined YYFAIL /* This is here to suppress warnings from the GCC cpp's -Wunused-macros. Normally we don't worry about that warning, but some users do, and we want to make it easy for users to remove YYFAIL uses, which will produce warnings from Bison 2.5. */ #endif #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) /* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 /* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (YYLEX_PARAM) #else # define YYLEX yylex () #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (YYID (0)) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (YYID (0)) /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) #else static void yy_symbol_value_print (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; #endif { FILE *yyo = yyoutput; YYUSE (yyo); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # else YYUSE (yyoutput); # endif YYUSE (yytype); } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) #else static void yy_symbol_print (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; #endif { if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void yy_stack_print (yybottom, yytop) yytype_int16 *yybottom; yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_reduce_print (YYSTYPE *yyvsp, int yyrule) #else static void yy_reduce_print (yyvsp, yyrule) YYSTYPE *yyvsp; int yyrule; #endif { int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyvsp, Rule); \ } while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) #else static YYSIZE_T yystrlen (yystr) const char *yystr; #endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) #else static char * yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; #endif { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message about the unexpected token YYTOKEN for the state stack whose top is YYSSP. Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is not large enough to hold the message. In that case, also set *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULL; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per "expected"). */ int yycount = 0; /* There are many possibilities here to consider: - Assume YYFAIL is not used. It's too flawed to consider. See for details. YYERROR is fine as it does not invoke this function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - The only way there can be no lookahead present (in yychar) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to report. In that case, just report a simple "syntax error". - Don't assume there isn't a lookahead just because this state is a consistent state with a default action. There might have been a previous inconsistent state, consistent state with a non-default action, or user semantic action that manipulated yychar. - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the scanner and before detecting a syntax error. Thus, state merging (from LALR or IELR) and default reductions corrupt the expected token list. However, the list is correct for canonical LR with one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ if (yytoken != YYEMPTY) { int yyn = yypact[*yyssp]; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; break; } yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } } } } switch (yycount) { # define YYCASE_(N, S) \ case N: \ yyformat = S; \ break YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); # undef YYCASE_ } { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } if (*yymsg_alloc < yysize) { *yymsg_alloc = 2 * yysize; if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; return 1; } /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ { char *yyp = *yymsg; int yyi = 0; while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyformat += 2; } else { yyp++; yyformat++; } } return 0; } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) #else static void yydestruct (yymsg, yytype, yyvaluep) const char *yymsg; int yytype; YYSTYPE *yyvaluep; #endif { YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YYUSE (yytype); } /* The lookahead symbol. */ int yychar; #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif /* The semantic value of the lookahead symbol. */ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void *YYPARSE_PARAM) #else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; #endif #else /* ! YYPARSE_PARAM */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void) #else int yyparse () #endif #endif { int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: `yyss': related to states. `yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; YYSIZE_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yyssp = yyss = yyssa; yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ yychar = YYEMPTY; yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: /* Line 1787 of yacc.c */ #line 66 "chemeq.y" { result=(yyvsp[(1) - (1)]); isequation=1; } break; case 3: /* Line 1787 of yacc.c */ #line 70 "chemeq.y" { result=(yyvsp[(1) - (1)]); isequation=0; } break; case 4: /* Line 1787 of yacc.c */ #line 76 "chemeq.y" {(yyval)=(yyvsp[(1) - (1)]);} break; case 5: /* Line 1787 of yacc.c */ #line 77 "chemeq.y" { (yyvsp[(1) - (5)]).cq->addChemeq((yyvsp[(5) - (5)]).cq); (yyval)=(yyvsp[(1) - (5)]); } break; case 6: /* Line 1787 of yacc.c */ #line 81 "chemeq.y" { (yyvsp[(1) - (5)]).cq->subChemeq((yyvsp[(5) - (5)]).cq); (yyval)=(yyvsp[(1) - (5)]); } break; case 7: /* Line 1787 of yacc.c */ #line 87 "chemeq.y" { (yyval)=(yyvsp[(1) - (2)]); (yyval).cq->constante((yyvsp[(2) - (2)]).s); (yyval).cq->valeur((yyvsp[(2) - (2)]).r); } break; case 8: /* Line 1787 of yacc.c */ #line 92 "chemeq.y" { (yyval).cq = (yyvsp[(5) - (5)]).cq; (yyval).cq->multiply((yyvsp[(1) - (5)]).i,(yyvsp[(1) - (5)]).d); } break; case 9: /* Line 1787 of yacc.c */ #line 95 "chemeq.y" { (yyval).cq = (yyvsp[(5) - (5)]).cq; (yyval).cq->multiply((yyvsp[(1) - (5)]).i,1); } break; case 10: /* Line 1787 of yacc.c */ #line 100 "chemeq.y" {(yyval).s = ""; (yyval).r = MINVAL; /* valeur négative : non défini */} break; case 11: /* Line 1787 of yacc.c */ #line 101 "chemeq.y" {(yyval) = (yyvsp[(2) - (3)]);} break; case 12: /* Line 1787 of yacc.c */ #line 104 "chemeq.y" {(yyval).s = ""; (yyval).r = (yyvsp[(2) - (3)]).r;} break; case 13: /* Line 1787 of yacc.c */ #line 105 "chemeq.y" {(yyval).s = (yyvsp[(2) - (7)]).s; (yyval).r = (yyvsp[(6) - (7)]).r;} break; case 14: /* Line 1787 of yacc.c */ #line 108 "chemeq.y" {(yyval).r=(yyvsp[(1) - (1)]).r;} break; case 15: /* Line 1787 of yacc.c */ #line 109 "chemeq.y" {(yyval).r=1.0*(yyvsp[(1) - (1)]).i;} break; case 16: /* Line 1787 of yacc.c */ #line 110 "chemeq.y" {(yyval).r=(yyvsp[(3) - (3)]).r;} break; case 17: /* Line 1787 of yacc.c */ #line 111 "chemeq.y" {(yyval).r=-(yyvsp[(3) - (3)]).r;} break; case 18: /* Line 1787 of yacc.c */ #line 112 "chemeq.y" {(yyval).r=1.0*(yyvsp[(3) - (3)]).i;} break; case 19: /* Line 1787 of yacc.c */ #line 113 "chemeq.y" {(yyval).r=-1.0*(yyvsp[(3) - (3)]).i;} break; case 21: /* Line 1787 of yacc.c */ #line 117 "chemeq.y" {if ((yyvsp[(2) - (2)]).s.compare("V")!=0) yyerror (strdup("only 'V' allowed as unit")); } break; case 22: /* Line 1787 of yacc.c */ #line 120 "chemeq.y" {/* $$.s contient le nom */} break; case 23: /* Line 1787 of yacc.c */ #line 123 "chemeq.y" { (yyval).cq = new Chemeq((yyvsp[(1) - (5)]).mb,(yyvsp[(5) - (5)]).mb); } break; case 24: /* Line 1787 of yacc.c */ #line 128 "chemeq.y" { (yyval).mb->addMol((yyvsp[(4) - (4)]).m); } break; case 25: /* Line 1787 of yacc.c */ #line 131 "chemeq.y" { (yyval).mb = new Membre; (yyval).mb->push_back((yyvsp[(1) - (1)]).m); } break; case 26: /* Line 1787 of yacc.c */ #line 137 "chemeq.y" { (yyval) = (yyvsp[(3) - (3)]); (yyval).m->nombre((yyvsp[(1) - (3)]).i); } break; case 27: /* Line 1787 of yacc.c */ #line 141 "chemeq.y" { (yyval) = (yyvsp[(3) - (3)]); (yyval).m->nombre((yyvsp[(1) - (3)]).i,(yyvsp[(1) - (3)]).d); } break; case 28: /* Line 1787 of yacc.c */ #line 145 "chemeq.y" { (yyval) = (yyvsp[(1) - (1)]); } break; case 31: /* Line 1787 of yacc.c */ #line 154 "chemeq.y" { (yyval).m = new Molec((yyvsp[(1) - (2)]).al,0); (yyval).m->typage((yyvsp[(2) - (2)]).t); } break; case 32: /* Line 1787 of yacc.c */ #line 157 "chemeq.y" { (yyval).m = new Molec((yyvsp[(1) - (3)]).al,(yyvsp[(2) - (3)]).i);(yyval).m->typage((yyvsp[(3) - (3)]).t); } break; case 33: /* Line 1787 of yacc.c */ #line 163 "chemeq.y" {(yyval).al=(yyvsp[(1) - (1)]).al;} break; case 34: /* Line 1787 of yacc.c */ #line 164 "chemeq.y" {(yyval).al=(yyvsp[(3) - (5)]).al; (yyval).al->sq(1);} break; case 35: /* Line 1787 of yacc.c */ #line 167 "chemeq.y" {(yyval).t = aqueous;} break; case 36: /* Line 1787 of yacc.c */ #line 168 "chemeq.y" {(yyval).t = aqueous;} break; case 37: /* Line 1787 of yacc.c */ #line 169 "chemeq.y" {(yyval).t = sol;} break; case 38: /* Line 1787 of yacc.c */ #line 170 "chemeq.y" {(yyval).t = gas;} break; case 39: /* Line 1787 of yacc.c */ #line 173 "chemeq.y" {(yyval).i=1;} break; case 40: /* Line 1787 of yacc.c */ #line 174 "chemeq.y" {(yyval).i=1;} break; case 41: /* Line 1787 of yacc.c */ #line 175 "chemeq.y" {(yyval).i=(yyvsp[(2) - (2)]).i;} break; case 42: /* Line 1787 of yacc.c */ #line 176 "chemeq.y" {(yyval).i=-1;} break; case 43: /* Line 1787 of yacc.c */ #line 177 "chemeq.y" {(yyval).i=-1;} break; case 44: /* Line 1787 of yacc.c */ #line 180 "chemeq.y" { (yyval)=(yyvsp[(2) - (3)]); } break; case 45: /* Line 1787 of yacc.c */ #line 185 "chemeq.y" { (yyval).al = new AtomeListe("",0,0,(yyvsp[(1) - (1)]).al); } break; case 46: /* Line 1787 of yacc.c */ #line 188 "chemeq.y" { char buffer[25]; if ((yyvsp[(1) - (1)]).i==-2) { /* ce n'est pas un atome recensé */ sprintf(buffer,"nonexistent atom : %s", (yyvsp[(1) - (1)]).symb); yyerror(buffer); } (yyval).al = new AtomeListe((yyvsp[(1) - (1)]).symb,(yyvsp[(1) - (1)]).i); } break; case 47: /* Line 1787 of yacc.c */ #line 198 "chemeq.y" { (yyval) = (yyvsp[(1) - (3)]); (yyval).al->setmolecularite((yyvsp[(2) - (3)]).i); (yyval).al->setsuivant((yyvsp[(3) - (3)]).al); } break; case 48: /* Line 1787 of yacc.c */ #line 203 "chemeq.y" { (yyval).al = (yyvsp[(1) - (2)]).al; (yyval).al->setmolecularite((yyvsp[(2) - (2)]).i); } break; case 49: /* Line 1787 of yacc.c */ #line 209 "chemeq.y" { (yyval).i=1; } break; case 50: /* Line 1787 of yacc.c */ #line 212 "chemeq.y" { (yyval)=(yyvsp[(1) - (1)]); } break; /* Line 1787 of yacc.c */ #line 1801 "chemparser.cc" default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) { char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; yysyntax_error_status = YYSYNTAX_ERROR; if (yysyntax_error_status == 0) yymsgp = yymsg; else if (yysyntax_error_status == 1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; yysyntax_error_status = 2; } else { yysyntax_error_status = YYSYNTAX_ERROR; yymsgp = yymsg; } } yyerror (yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } # undef YYSYNTAX_ERROR #endif } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif /* Make sure YYID is used. */ return YYID (yyresult); } /* Line 2050 of yacc.c */ #line 217 "chemeq.y" #include "chemlex.cc" yyFlexLexer lexer; yyFlexLexer * thelexer = &lexer; int yylex(){ return thelexer->yylex(); } /* le programme lui-même */ inline int yyerror(char * msg){ fprintf(stderr, "ERROR %s at %d\n ", msg, position); exit(1); } void printVersion(){ std::cout << "Chemeq version " << VERSION << "\n(c) Georges Khaznadar ."; std::cout << "\nThis program is free, licensed under G.P.L.\n"; } void printHelp(){ std::cout << "Usage : chemeq [-m] [-l] [-c] [-w] [-C] [-n] [-e] [-s] [-v] [-h]" << std::endl; std::cout << " default is equivalent to 'chemeq -mlcwCn'" << std::endl; std::cout << " chemeq reads its standard input which must be a standard" << std::endl; std::cout << " chemical equation. It outputs many strings useful for chemical" << std::endl; std::cout << " calculations." << std::endl; std::cout << " As an example you can try the following command :" << std::endl; std::cout << " echo \"Fes -> Fe^2+ + 2 e- (0.44 V)\" | chemeq" << std::endl; } #define maxoption 16 void optionadd(char* b, char* allowed, int c); void optionadd(char* b, char* allowed, int c){ if (strchr(allowed,c) && !strchr(b,c) && strlen(b) < maxoption+1){ int l = strlen(b); b[l]=c; b[l+1]=0; } return; } int main(int argc, char * argv[]){ char * optstr = strdup("mMlcCwnesvh"); char * envoption=getenv("chemeq_option"); if (envoption==NULL) envoption=getenv("w_chemeq_option"); char * envinput =getenv("chemeq_input"); if (envinput==NULL) envinput=getenv("w_chemeq_input"); char asked[maxoption+1]=""; int i,ch; bool nooption=1; std::ostringstream w; while (-1 != (ch=getopt(argc,argv,optstr))){ optionadd(asked,optstr,ch); } if (envoption!=NULL) for(i=0; iprintnorm(std::cout); std::cout << std::endl; break; case 'M': nooption=0; result.cq->printweight(std::cout); std::cout << std::endl; break; case 'l': nooption=0; std::cout << *result.cq << std::endl; break; case 'c': nooption=0; std::cout << result.cq->equilibre() << std::endl; break; case 'w': nooption=0; result.cq->printNernst(std::cout,w,wantedlatex); std::cout << std::endl; std::cout << w.str() << std::endl; break; case 'n': nooption=0; result.cq->normalise(); result.cq->printnorm(std::cout); std::cout << std::endl; break; case 'C': nooption=0; result.cq->printcount(std::cout); std::cout << std::endl; break; case 'e': nooption=0; result.cq->printelec(std::cout); std::cout << std::endl; break; case 's': nooption=0; result.cq->printspecies(std::cout); std::cout << std::endl; break; } } if (nooption){ result.cq->printnorm(std::cout); std::cout << std::endl; std::cout << *result.cq << std::endl; std::cout << result.cq->equilibre() << std::endl; result.cq->printNernst(std::cout,w); std::cout << std::endl; result.cq->printcount(std::cout); std::cout << std::endl; result.cq->normalise(); result.cq->printnorm(std::cout); std::cout << std::endl; } } else { /* ce n'est pas une équation */ for(i=0; iweight(); std::cout << std::endl; break; } } if (nooption){ std::cout << *result.m; } } return 0; } chemeq-2.12.orig/src/chemeq.y0000644000175000017500000001625312206675133016274 0ustar georgeskgeorgesk// -*- coding: utf-8 -*- %{ /* inclusions, définition */ #include #include #include #include #include #include "chemeq.h" //#include #include int yylex(); int yyerror(char * msg); typedef struct{ int i, d; /* integer numerator, denominator */ double r; AtomeListe * al; Molec * m; Chemeq * cq; Membre * mb; char symb[4]; moltype t; std::string s; } yystype; #define YYSTYPE yystype /* variables globales */ yystype result; extern char * yytext; extern int position; int isequation; %} %token Atome %token SpcPlus %token Plus %token Moins %token Mul %token Fleche %token Int %token Charge %token Frac %token Real %token SpcLpar %token Lpar %token Rpar %token Lsq %token Rsq %token Haut %token Spc %token Sol %token Gas %token Aqueous %token Egal %token Compose %token AntiCompose %% /* les règles */ but : chcompose { result=$1; isequation=1; } | molec { result=$1; isequation=0; } ; chcompose : chc {$$=$1;} | chcompose spc01 Compose spc01 chc { $1.cq->addChemeq($5.cq); $$=$1; } | chcompose spc01 AntiCompose spc01 chc { $1.cq->subChemeq($5.cq); $$=$1; } ; chc : chemeq cste{ $$=$1; $$.cq->constante($2.s); $$.cq->valeur($2.r); } | Frac spc01 Mul spc01 chc { $$.cq = $5.cq; $$.cq->multiply($1.i,$1.d); } | Int spc01 Mul spc01 chc { $$.cq = $5.cq; $$.cq->multiply($1.i,1); } ; cste : /* rien */ {$$.s = ""; $$.r = MINVAL; /* valeur négative : non défini */} | SpcLpar cste1 Rpar {$$ = $2;} ; cste1 : spc01 nombre volt{$$.s = ""; $$.r = $2.r;} | spc01 id spc01 Egal spc01 nombre volt{$$.s = $2.s; $$.r = $6.r;} ; nombre : Real {$$.r=$1.r;} | Int {$$.r=1.0*$1.i;} | Plus spc01 Real{$$.r=$3.r;} | Moins spc01 Real{$$.r=-$3.r;} | Plus spc01 Int{$$.r=1.0*$3.i;} | Moins spc01 Int{$$.r=-1.0*$3.i;} ; volt : /* rien */ | spc01 Atome {if ($2.s.compare("V")!=0) yyerror (strdup("only 'V' allowed as unit")); } ; id : Atome {/* $$.s contient le nom */} ; chemeq : membre Spc Fleche spc01 membre{ $$.cq = new Chemeq($1.mb,$5.mb); } ; membre : membre SpcPlus spc01 molecs { $$.mb->addMol($4.m); } | molecs { $$.mb = new Membre; $$.mb->push_back($1.m); } ; molecs : Int spc01 molec { $$ = $3; $$.m->nombre($1.i); } | Frac spc01 molec { $$ = $3; $$.m->nombre($1.i,$1.d); } | molec{ $$ = $1; } ; spc01 : /*rien*/ | Spc ; molec : composition0 typage{ $$.m = new Molec($1.al,0); $$.m->typage($2.t); } | composition0 charge typage{ $$.m = new Molec($1.al,$2.i);$$.m->typage($3.t); } ; composition0 : composition {$$.al=$1.al;} | Lsq spc01 composition spc01 Rsq {$$.al=$3.al; $$.al->sq(1);} ; typage : /* rien */ {$$.t = aqueous;} | Aqueous {$$.t = aqueous;} | Sol {$$.t = sol;} | Gas {$$.t = gas;} ; charge : Plus {$$.i=1;} | Haut Plus {$$.i=1;} | Haut Charge {$$.i=$2.i;} | Moins{$$.i=-1;} | Haut Moins{$$.i=-1;} ; groupe : Lpar composition Rpar { $$=$2; } ; atome_general : groupe { $$.al = new AtomeListe("",0,0,$1.al); } | Atome{ char buffer[25]; if ($1.i==-2) { /* ce n'est pas un atome recensé */ sprintf(buffer,"nonexistent atom : %s", $1.symb); yyerror(buffer); } $$.al = new AtomeListe($1.symb,$1.i); } ; composition : atome_general molecularite composition { $$ = $1; $$.al->setmolecularite($2.i); $$.al->setsuivant($3.al); } | atome_general molecularite{ $$.al = $1.al; $$.al->setmolecularite($2.i); } ; molecularite : /*rien*/{ $$.i=1; } | Int { $$=$1; } ; %% #include "chemlex.cc" yyFlexLexer lexer; yyFlexLexer * thelexer = &lexer; int yylex(){ return thelexer->yylex(); } /* le programme lui-même */ inline int yyerror(char * msg){ fprintf(stderr, "ERROR %s at %d\n ", msg, position); exit(1); } void printVersion(){ std::cout << "Chemeq version " << VERSION << "\n(c) Georges Khaznadar ."; std::cout << "\nThis program is free, licensed under G.P.L.\n"; } void printHelp(){ std::cout << "Usage : chemeq [-m] [-l] [-c] [-w] [-C] [-n] [-e] [-s] [-v] [-h]" << std::endl; std::cout << " default is equivalent to 'chemeq -mlcwCn'" << std::endl; std::cout << " chemeq reads its standard input which must be a standard" << std::endl; std::cout << " chemical equation. It outputs many strings useful for chemical" << std::endl; std::cout << " calculations." << std::endl; std::cout << " As an example you can try the following command :" << std::endl; std::cout << " echo \"Fes -> Fe^2+ + 2 e- (0.44 V)\" | chemeq" << std::endl; } #define maxoption 16 void optionadd(char* b, char* allowed, int c); void optionadd(char* b, char* allowed, int c){ if (strchr(allowed,c) && !strchr(b,c) && strlen(b) < maxoption+1){ int l = strlen(b); b[l]=c; b[l+1]=0; } return; } int main(int argc, char * argv[]){ char * optstr = strdup("mMlcCwnesvh"); char * envoption=getenv("chemeq_option"); if (envoption==NULL) envoption=getenv("w_chemeq_option"); char * envinput =getenv("chemeq_input"); if (envinput==NULL) envinput=getenv("w_chemeq_input"); char asked[maxoption+1]=""; int i,ch; bool nooption=1; std::ostringstream w; while (-1 != (ch=getopt(argc,argv,optstr))){ optionadd(asked,optstr,ch); } if (envoption!=NULL) for(i=0; iprintnorm(std::cout); std::cout << std::endl; break; case 'M': nooption=0; result.cq->printweight(std::cout); std::cout << std::endl; break; case 'l': nooption=0; std::cout << *result.cq << std::endl; break; case 'c': nooption=0; std::cout << result.cq->equilibre() << std::endl; break; case 'w': nooption=0; result.cq->printNernst(std::cout,w,wantedlatex); std::cout << std::endl; std::cout << w.str() << std::endl; break; case 'n': nooption=0; result.cq->normalise(); result.cq->printnorm(std::cout); std::cout << std::endl; break; case 'C': nooption=0; result.cq->printcount(std::cout); std::cout << std::endl; break; case 'e': nooption=0; result.cq->printelec(std::cout); std::cout << std::endl; break; case 's': nooption=0; result.cq->printspecies(std::cout); std::cout << std::endl; break; } } if (nooption){ result.cq->printnorm(std::cout); std::cout << std::endl; std::cout << *result.cq << std::endl; std::cout << result.cq->equilibre() << std::endl; result.cq->printNernst(std::cout,w); std::cout << std::endl; result.cq->printcount(std::cout); std::cout << std::endl; result.cq->normalise(); result.cq->printnorm(std::cout); std::cout << std::endl; } } else { /* ce n'est pas une équation */ for(i=0; iweight(); std::cout << std::endl; break; } } if (nooption){ std::cout << *result.m; } } return 0; } chemeq-2.12.orig/src/chemeq0000755000175000017500000173277712244451025016043 0ustar georgeskgeorgeskELF>0'@@k@8@&#@@@@@@@@@ aa#+ 00a0a@@DDPtd@@44Qtd/lib64/ld-linux-x86-64.so.2GNU GNUI2// NXmo35Re|0  ARSUVWZ\^`abcefsh߳%m CɁ $pyIk(EL9 v0Y@mQs:I?N? Cc&[ %    N  #%   T 4  p3 f O ~ XT = eE 6 "   M 0  i   8?So7 v=     g #a`$@" @@l &a!`'aX?" @@!@)a&@g#@) )a1!@'a )a o!$a!`%aPU !@%a " }@p" D}@h'a!(aX!@$ax7!%aPlibstdc++.so.6__gmon_start___Jv_RegisterClasses_ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__pthread_key_create_ZNSs4_Rep10_M_destroyERKSaIcE__cxa_pure_virtual_ZNKSt5ctypeIcE13_M_widen_initEv_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev_ZSt17__throw_bad_allocv_ZNSsC1IPcEET_S1_RKSaIcE_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev_ZNSs4_Rep10_M_disposeERKSaIcE_ZNSo5flushEv_ZSt16__throw_bad_castv_ZdaPv_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev_ZNSsC2IPcEET_S1_RKSaIcE_ZNSi3getERc_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS__ZSt19__throw_logic_errorPKc_ZNSo5writeEPKcl__cxa_rethrow_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE_ZNSt8ios_base4InitD1Ev_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E_ZNSt6localeD1Ev_ZNSsC1EPKcRKSaIcE_ZNKSs7compareEPKc_ZNSdD2Ev_ZNSt8ios_baseC2Ev_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate_ZNSs6insertEmPKcm_ZSt3cin_ZSt20__throw_out_of_rangePKc_ZNKSs4findEcm_ZNSs6assignEPKcm_ZTVN10__cxxabiv117__class_type_infoE_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base__cxa_begin_catch_ZNSs4_Rep20_S_empty_rep_storageE_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv__gxx_personality_v0_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE_ZNSs6appendEPKcm_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE_ZSt4cout_ZTVSt15basic_streambufIcSt11char_traitsIcEE_ZNSolsEi_Znwm_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc_ZNSs9_M_mutateEmmm_ZNSs4_Rep9_S_createEmmRKSaIcE_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6__ZNSo9_M_insertIdEERSoT__ZNSt8ios_baseD2Ev_ZNSs6assignERKSs_ZNSo3putEc_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE__cxa_end_catch_ZNSo9_M_insertIeEERSoT__ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE_ZSt4cerr_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode_ZTVN10__cxxabiv120__si_class_type_infoE_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base_ZNSsC1ERKSs_ZNSt8ios_base4InitC1Ev_ZNSt6localeC1Ev_ZdlPv_ZTVSt9basic_iosIcSt11char_traitsIcEElibm.so.6exploglibgcc_s.so.1_Unwind_Resumelibc.so.6strcpysprintfstrncpyreallocstrdupstrtodstrtol__cxa_atexit__errno_locationmemcmpgetoptmemcpymallocgetenvstderrindexstrchrfprintfmemmovestrcmp__libc_start_mainfreeGCC_3.0GLIBC_2.14GLIBC_2.2.5GLIBCXX_3.4.9CXXABI_1.3GLIBCXX_3.4.11GLIBCXX_3.4   P&y k  0 s ui ~ {  ui ~ ) ӯk a t) 0a #aR@$ae$a^@%a``%a_%af &aU@'a\`'aV'ac(ad@)aX)a])a[PaXa`ahapaxaaa a a a a aaaaaaaaaaZaaaa a(a0a8a @a!Ha"Pa#Xa$`a%haSpa&xa'a(a)a*a+a,a-a.a/a0a1a2a3a4a5a7a8a9a:a;a< a=(a>0a?8a@@aAHaBPaCXaD`aEhaFpaGxaYaHaIaJaKaLaMaNaOaPaQHH- HtH5 % @% h% h% h% h% h% h% h% hp% h`% h P% h @% h 0% h % h % h% h% h% h% h% h%z h%r h%j h%b hp%Z h`%R hP%J h@%B h0%: h %2 h%* h%" h% h % h!% h"% h#% h$% h%% h&% h'p% h(`% h)P% h*@% h+0% h, % h-% h.% h/% h0% h1% h2% h3%z h4%r h5%j h6%b h7p%Z h8`%R h9P%J h:@%B h;0%: h< %2 h=%* h>%" h?% h@% hA% hB% hC% hD% hE% hF% hGp% hH`% hIP% hJ@% hK0% hL % hM% hN% hO1I^HHPTI@H`@H|@fD#aUH-#aHHw]øHt]#a#aUH-#aHHHH?HHu]úHt]Hƿ#a=!uUH~]!@H=0 tHtU(aH]{sAUATUSHIH_LgcK(L$ Hs HVLHź@H D$ ZHHHL9t|@LL9uLH[]A\A]HHHHaHUSHHtssHHt H;HtuH[]ÐUSHHt4H?Ht HEH]HtE{t?HsH}+HHt"HEHHEHHHHH[]ATUSHH t@H{tSHHuHEHHxw  HHHHQHstNHWD@HcH{HtHbDc @HDAt7DGDtՉ7DGIAI7uDGDtÐG G H wwH +ÐATUSHHHWH)HHt3IHqtH$HxHt$?[HsHT$/]@H|$ 6HŸHH[]USH(HHT$v@HHH|$H\$HSH4$H;VuH@H{H)at2HCHt  CPS Ht$H$HxH)atQHPHt  PJHЅ)Ht$dHH$HxHt$=HUH([]USHHHG 9GtHw H|@HHH;{tc@H*C {fTf.{ztH{~@HZ@HFHujHNu^HcCHa@HHuHEHHxw E#H߸HHHQHHH[]ÐUSHHHu@HHHD$|Ht$HHU HH}H[]ÐATUSHHHGH)HHtLcHMHUH)HI9r[]A\ÐUSHHHH?@HH}HrH[]ÐUSHHHu@HHHH[]ÐATUSHHHGH)HHtDHB@H!B@H@HHs H,EtDL#@HLHB@HC 9Cu=@HHH;C 9CXζ@HODcAu s HQ[  @H#HHú@HDHB@HB@H@HHs HD@HC 9Cxm@HdC 9CH@H?C 9C#@HC 9C H[]A\A]SHHtHS H[AUATUSHHHHGH)HHtWAAHHH|$(.(H\$ HCLl HHHD$xP%aH|$xHAl$ <$H|$ GHD$)aHD$PHHT$@H9H$HHt$HH$*H$H|$H$HxH)a%HPHt  PJHЅH$H$Ht$HH$"*H$H|$PH$HxH)aHPHt  PJHЅzH$BkHt$pH|$ZHH$HxH$!HH$HxH$HHD$HxH$eH|$HHHD$H@HH)ڹHEH9v @=HH|$+ Ŷ@HH|$Ht$H$B@H$H$H|$!HH$HxH$'H$HxH)at5HPHt  PJHЅ H$Ht$H?HD$HxH)at5HPHt  PJHЅ H$hHD$ x%aHD$x%aHD$($aHD$pHxH)aHPHt  PJHЅ]H$NHH$HxH$HHD$HxH$HH|$ HHD$(P)aH|$`H HD$ H@H HT HD$xP%aH|$xHH[]A\A]ÐAWAVAUATUSHHIIHӉ.I}1tP @LI}L@LLI}B@L I}LDI}DH@HZDHI}Am =]ݶ@L#HT$}@H|$I}HWLd$AI;T$uL-AI|$H)at7ID$Ht  AD$PAT$ Ht$;Eu"IuHVLݶ@H{LH|$ Ht$ HVL]HD$ HxH)at2HPHt  PJHЅ Ht$,HDHHD$0HxHt$?H&HH[]A\A]A^A_AVAUATUSHPHHLnH6rIĺ@HLLRm \$D$f.XP'@HLHT$}@H|$LmLH|$ Ld$ IT$Ht$AH;VuLDAI|$H)at7ID$Ht  AD$PAT$ Ht$I HD$HxH)at2HPHt  PJHЅ Ht$JEutLH|$0CHt$0HVHRݶ@H@HD$0HxH)at2HPHt  PJHЅ Ht$KLHH|$@YHt$@HVHHD$@HxH)at2HPHt  PJHЅ Ht$LHt@H| @HjZHHD$HxHt$MHHHD$0HxHt$NtHHHD$@HxHt$OVHnHHP[]A\A]A^AWAVAUATUSHXIIH|$hHD$hP%aHDŽ$@Ƅ$HƄ$IHDŽ$PHDŽ$XHDŽ$`HDŽ$hH H$L- HCL,HD$H$H@H<L% Ld$ID$H HLHD$H@H|jH-k H,$HEH H H$X$aHD$h$aHD$$aHD$P)aHD$ HD$(HD$0HD$8HD$@HD$HH|$P}HD$$aD$XHD$`)aHt$H|$hTH$HSL,HD$HHH|$%aH>HHD$hP%aH|$hH~H$!HDŽ$P%aHDŽ$Ƅ$Ƅ$HDŽ$HDŽ$HDŽ$HDŽ$H$pHCLpHDŽ$xH$pH$pHxL$ID$H HH$H@HH$pHEH HpHDŽ$pX$aHDŽ$$aHDŽ$$aHDŽ$P)aHDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$H$聿HDŽ$$aDŽ$HDŽ$)aH$pHpHxh蹿jH$pHSLpHDŽ$xH'HH$%aH$p HHDŽ$P%aH$袿Ht$LH$LHDŽ$)aH$H#H$H9H$HH$H$ bH$ H$荿H$ HxH)a8HPHt  PJHЅ H${H$H$H$H$H$H$HxH)aHPHt  PJHЅH$ tH$H$蛾]HH$ HxH$ 譻!HH$HxH$ 菻HH$HxH$ q HDŽ$)aHD$@HHT$0H9H$?HHt$8H$@H$@H$H$@HxH)aNHPHt  PJHЅ"H$.лH$/Ht$8H$01H$0H$\H$0HxH)aHPHt  PJHЅH$-JHt$`H$vHH$@HxH$,!HH$0HxH$+HH$HxH$*ɹH$HxH$ 谹LH$HSH$AH;VuH胼AH{H)at5HCHt  CPS H$KH$HxH)at5HPHt  PJHЅ H$HDŽ$pX$aHDŽ$$aHDŽ$$aHDŽ$$aH$HxH)at5HPHt  PJHЅ H$N臹HDŽ$P)aH$莼L%o L$pL= ID$LpH-d H$L5] HELH2 H$pHCH' HpHDŽ$xHDŽ$P%aH$pHxh.H$X$aHD$h$aHD$$aHD$$aHD$`HxH)at\HPHt  PJHЅ4H$Ot%HH$pHHH]HD$P)aH|$PZL$$ID$L<Hl$HELtH$HCH ( H HD$HD$hP%aH|$h@DHX[]A\A]A^A_AWAVAUATUSH(IHt$IHHGHGL.L9nII;^sJH+MeHuI<$3t(EA9D$uRHtHIG HT$LHI;^rIHD$L;hrHI?HtH/Im HUHUPUM H PUPHD$H;IUJ Rw DOEDA9AOOΉH PIwI;w>HLH([]A\A]A^A_AVAUATUSHHHGH)HAHtHIL4I4$I> t AFA;D$DDHcHUHEH)HH9rD[]A\A]A^USHHHwyU HHSPSK H PSPHD$HuH;utHtHHE+HT$HsH S H HHUH HtHL$0HH' IHD$0HxH)at2HPHt  PJHЅ Ht$/褭AM(ZA*WHD$*YH *^XffZA](HD$ HxH)atxHHD$0HxHt$.0zHPHt  PJHЅ6Ht$, *u&HtwH|$mIHHt$I?Ht>HT$Ht$-HHD$ HxHt$-衫H蹯Ll$Ll$nHH[]A\A]A^A_ÐATUSHHHWH)HHt?IHH:Ht HR L!HcHEHMH)HH9r[]A\AUATUSHHIH$̪HDŽ$P%aHDŽ$Ƅ$Ƅ$HDŽ$HDŽ$HDŽ$HDŽ$H-5 Hl$`L-1 HELl`HD$`H|$`Hx耬HD$`x%aHDŽ$%aHD$hP)aHD$pHD$xHDŽ$HDŽ$HDŽ$HDŽ$H$裫HD$h$aDŽ$HDŽ$)aHD$`HpHxXAHH|$hVHl$`HELl`HHDŽ$P%aH$H训D$HD$HD$(HD$HD$HD$ D$8HD$@HD$XHD$8HD$HHD$PHI<$I|$Ht$0HD$XH9D$(u;Ld$HHl$HD$H9IH} HWIt$ H;Vu +@H|$`膪HH|$`趮Hź2@HdHt$0H蔮H)aH$HH$H9H$HH$H$H$HH$HxH)a%HPHt  PJHЅH$H$H$H$ZH$H芪H$HxH)aHPHt  PJHЅyH$|jH$H*XHH$HxH$IHH)HHD$AMIHH)HHD$I,H[]A\A]A^A_ATUSHIHHteHsLHkHC HxH)at2HHHt  Hqpȅ Ht$訣H耢HtHH[]A\f.AVAUATUSIHH9tCHuSHuDnAELHH臦I)atAEMuBD5)aI,$Q@@H)IHʾLIHhItH)IHʾLZIHhy[]A\A]A^ÐAWAVAUATUSHHIIAHu]HGH9tNH9LHr H^L9LHFkAƅu#I)AIIAEMAA0;HHH t;L跡AD$C(%HqHH葤H٠HMALHHE(HH[]A\A]A^A_AWAVAUATUSHIIHoHu HHohL.MeHu H^L9LHFLs…uLH)HH|y H] H]HtHItHHI;ot^H蘠IHH} LI6LnM9LIF…uM)II|DyHLHH[]A\A]A^A_ÐAWAVAUATUSHIHH$HGH9uiH(tQHG Hx HoH2H^H9HHFh…uH)HH|yIW H4$LsH$L Il$Lv MnI9HIFHD$HLL…uHL)HH|IWHH9/H5IHx LwI9HIFL蘡…uI)I-I|DyHI}HDIDHH4$LHT$LL8…uI)II|Dy|IW H9tvHLIHp LvI9HIFLߠ…uL)H)H|yLH{HDIEHH4$LHغH[]A\A]A^A_f.DAUATUSHHIHHtBHHP HGpHt HO`H4HHLh@LHPHHAHtHk8H[]A\A]H &aΝHvSHH0HH@L u1u,HC0HHRT u[HHcH8lHÐSHHt4HGpHtHW`HH;0uH{$t H{AH9[ÐSHH@HHt H{(HCpHt HS`H4H{H{pH@[ÐSHH轛[ÐH@Hw0HW8HGHGPGTGGGXLJLJLJLJLJG GHG(HGpHG`HGhHLJAVAUATUSHHW`HGpHHhLoHcGDHDH9GHv H@PXHS`HCpHЃx8uHCHH+CH.LcHL+cAE~ATTHA9HS`HCpHЃz<uCDB EDBHCpHt HS`H,H}LsHI)}$t:HEHHHHEHHEHEHpƝHEHuHEH@HPXMcLuLsHHS`HCpHDB`H = NHs`HCpHIcHpHQHCDyHP@HPXHS`HCpHЋSDP A{Du0EuHHs0HP(AHS`HCpH@<ASDB"Hs`HKpH,HcH;Mv5HcH}ƜHEHS`HCpHHxuH(@HPXDcDDcDHS`HCpHMcH@B HS`HCpHHcCDHRDHS`HCpHH@HCD[]A\A]A^ËGTLOLWHM9A t  @Hcf @t&GxLH@5~ @Hc @DDHc6@9uD@IM9uÐHWHHcf @t wxHHc @ЃHc@9t+Hc6@Hc @ЃHc@9u՘@5DÐAUATUSHHAIHoHG@EHW`HGpHHrHFH9suHBHLGDHHH9sHHHs`HSpHH9BrH)HcHIHBCDB HS`HCpHH@HH9sHX@HPXDmLcEC@HHkHH[]A\A]ATUSHHGHW@HoH}HW`HGpHHcGDHBH9sEfLgHEHGH%ttuG7HHs0HP(HHP@uJ{Xu HHs0HP(Hl2L)HcHCHCHHSHHSHHJHKHRS@[]A\ÐHW`HGpHH@ GDHH@HGHHGHHHW0G@ÐHtDF HFHF@HFHFF,F<HGpHtHW`H;4uÐAVAUATUSHHIRID(HHL3C8HEpHt HU`HH9tC0C4C(E,$[]A\A]A^AUATUSHHIAտ@HHuHEx@HPXIcHCHxHCHuHEx@HPXC$LHHHH[]A\A]ÐSHHGpHtWHW`H4HtJHP HS`HCpHHC`HtHHC`HCpHtHS`H<tH1CX[USHHHpHu?@8HCpHuH@HPXHCpHHChHC`HChHPH9S`HcH4*o!HH$0HxH$? oHH|$0mqHsH|$0[qHH[]A\A]A^A_H+aoa+a#@boHow )aa@+a@CoHv )aa*a@$o*aa*az@nHÐH@HH@nHÐHG8HxH)at:HPHt  PJHЅHHt$nHSHH?^wH{UwH;迗H{趗H|[HH u m@H=t qmH+ama+a#@ nHHl$Ld$H-J L%J H\$Ll$Lt$L|$H8L)AIHI1QlHt@LLDAHH9uH\$Hl$Ld$Ll$ Lt$(L|$0H8HH : [)\mathrm{\mathrm{e}\frac{}\,vector::_M_insert_aux+}\mathrm{H}_{2}\mathrm{O}\mathrm{O}\mathrm{H}_{2}\mathrm{e}^{-}^+-, ; + P_{P_\,+\, -> ( = Vbasic_string::erase\times 10^{\,=\,K; KE\,=\,E=E_{0}E_{0};E0;\,+\,\frac{R\,T}{\,F}\log\,\longrightarrow\,\,(ERROR / OKaqbasic_string::_S_construct null not validy?T@T]8?ڠ @fffffr@fatal flex scanner internal error--end of buffer missedfatal error - scanner input buffer overflowout of dynamic memory in yy_get_next_buffer()flex scanner push-back overflowout of dynamic memory in yy_create_buffer()out of dynamic memory in yyensure_buffer_stack()fatal flex scanner internal error--no action foundout of memory expanding start-condition stackstart-condition stack underflow (c) Georges Khaznadar . This program is free, licensed under G.P.L. Usage : chemeq [-m] [-l] [-c] [-w] [-C] [-n] [-e] [-s] [-v] [-h] default is equivalent to 'chemeq -mlcwCn' chemeq reads its standard input which must be a standard chemical equation. It outputs many strings useful for chemical As an example you can try the following command : echo "Fes -> Fe^2+ + 2 e- (0.44 V)" | chemeqinput in flex scanner failedERROR %s at %d Chemeq version 2.12 calculations.memory exhaustedonly 'V' allowed as unitnonexistent atom : %ssyntax errormMlcCwnesvhw_chemeq_optionw_chemeq_inputs@@[@@@@Β@ߒ@@8@}@@G@@Ք@.@@@@@@2@_@p@@ʖ@@@@s@*@N@g@ @Z@Z@@@@@r@@ؤ@@@<@@@ߥ@@@@&@5@Z@L@Z@t@@@@@@Z@Z@O@@Ȩ@֨@@@@@@,@9@D@Q@^@@@{@@@@@@@@@@@@@@˯@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ذ@@@@@;@@@@^@ '   '#7 #  !!)) !)014302!,&1066555555555555555555555555555555  1 !,"#-2.#*$%&'( ')"&!33))40144)2)/02)/+55555555555555555555555555555555556555555557755555555555565555555555 55755555555555RSSSSS&S5SSS5SSSS2SSC>*/S*SS=4S/SSS5@:87SM*        &(+,-% 1   >?\CDE  78:;ST[]0 H # >?@A')/0+ !,-789:;6H&$123K4NO*]RSTDVEXWY<ZIJ(LM')[\=^>?F@UA !5/E%  )*J0 ,1Q=X;%%(%%;<>K@P.BPC QG "#%. #-1!'*%&$#20,(+) /  "   !!"#$$%%%&&''(())))*****+,,--.. p'aP@9FlexLexer11yyFlexLexer(a[@@@@@j@r@`$@`$@`$@`$@`$@`$@p@z@҆@@؍@:@@Џ@F@@@ԅ@$@@HydrogenH1.0079414.0120.282.20HeliumHe4.0026020.954.2160.0LithiumLi6.941553.691118.150.98BerylliumBe9.01218155132431.57BoronB10.811257339312.04CarbonC12.011382051002.55NitrogenN14.0067463.2977.4OxygenO15.999454.890.193.44FluorineF18.99840353.5385.013.98NeonNe20.179727.1SodiumNa22.989768370.961156.10.93MagnesiumMg24.30592213631.31AluminumAl26.981539933.527401.61SiliconSi28.0855168326281.90PhosphorusP30.973762317.35532.19SulfurS32.066386717.8242.58ChlorineCl35.4527172.2238.63.16ArgonAr39.94883.887.3Potassium39.0983336.810470.82CalciumCa40.078111217571.00ScandiumSc44.95591181431041.36TitaniumTi47.88193335601.54Vanadium50.9415216036501.63ChromiumCr51.9961213029451.66ManganeseMn54.93805151722351.55IronFe55.847180830231.83CobaltCo58.9332176831431.88NickelNi58.6934172630051.91CopperCu63.5461356.62840ZincZn65.39692.7311801.65GalliumGa69.723302.9326761.81GermaniumGe72.611210.631032.01ArsenicAs74.9215910908762.18SeleniumSe78.96490958.1BromineBr79.904265.9331.92.96KryptonKr116.6120.85RubidiumRb85.4678312.2StrontiumSr87.6210421657YttriumY88.90585179536111.22ZirconiumZr91.224212546501.33NiobiumNb92.9063827415015MolybdenumMo95.94289048852.16TechnetiumTc97.907224455150RutheniumRu101.0725834173RhodiumRh102.9055223940002.28PalladiumPd106.4218253413SilverAg107.86821235.124851.93CadmiumCd112.411594.110381.69IndiumIn114.818429.3223531.78TinSn118.71505.125431.96AntimonySb121.760903.919082.05TelluriumTe52127.6722.712632.1IodineI126.90447386.7457.52.66XenonXe131.29161.3166.1CesiumCs132.90543301.6951.60.79BariumBa56137.327100219100.89LanthanumLa138.9055119437301.10CeriumCe140.115107236991.12PraseodymiumPr140.90765120437851.13NeodymiumNd144.24129433411.14PromethiumPm144.912714413000SamariumSm150.36135020641.17EuropiumEu151.96510951870GadoliniumGd157.25158635391.20TerbiumTb158.9253416293296DysprosiumDy162.5016852835HolmiumHo164.93032174729681.23ErbiumEr167.26180231361.24ThuliumTm168.93421181822201.25YtterbiumYb173.0410971466LutetiumLu174.967193636681.27HafniumHf178.4925035470TantalumTa180.9479326956981.5TungstenW183.84368059302.36RheniumRe186.20734535900OsmiumOs190.2333275300IridiumIr77192.2226834403PlatinumPt195.0820454100GoldAu196.966541337.5830802.54MercuryHg200.59234.28629.732.00ThalliumTl204.3833576.617301.62LeadPb207.2600.6520131.8BismuthBi208.98037544.518832.02PoloniumPo208.982412352.0AstatineAt209.9871575610RadonRn222.0176202211.4FranciumFr87223.01979500.7RadiumRa226.025497314130.9ActiniumAc227.0278132034701.1ThoriumTh232.038120285060ProtactiniumPa231.0358821134300UraniumU92238.02891405.540181.38NeptuniumNp237.0489134175PlutoniumPu244.064291435051.28AmericiumAm243.061412672880CuriumCm247.07031620n/aBerkeliumBkCaliforniumCf251.07961170EinsteiniumEs252.0831130FermiumFm257.09511800MendeleviumMd101258.11100NobeliumNo102259.1009LawrenciumLr262.11RutherfordiumRf[261]DubniumDb105[262]SeaborgiumSg106[266]BohriumBh107[264]HassiumHs108[269]MeitneriumMt109[268]UnunniliumUun110UnununiumUuu111[272]UnunbiumUub[277]UnuntriumUutUnunquadiumUuq114[289]UnunpentiumUupUnunhexiumUuh116UnunseptiumUus117UnunoctiumUuo118;4XFhKPXLL L8@M`MNOvPP@PX2Q3RJRS"StS8SPShS&T9TnTTTT T8TPiU~U*VV W WH p\ ^ _ ` Fa@ ap a bb b b 2cH cx c Nd g g` k k bl m(mXnn oopPsx}0`hؑfP&nFPΘpn̛U0|T( x 4.6 x`~x \r0P pī` 8PpTHhV̽R@hnǿտ@DXxm@H <(iXp(zRx G*zRx $AFJ w?;*3$"D̜hAD aAdpAD iA4hGBBA A(D@|(A ABBGDR$GCAAD zAA$GxAAD oAA,$(HBAA AB,THKBAA CAB,JBAA }AB$VJcAAD ZAAJ$JEAAD0|AA<JBBB A(A0D@0A(A BBB\kKtjK L,LRBAA JAB4L&DaBL&DaPL0DkhL5Dp4LAQTyL5DplLAQLLLxL5Lg,L|BAA tABLDP$4LAAD0AA<\bMBBB A(A0D@0A(A BBB$M9AAD pAAL$BBB B(A0A8DP}8A0A(B BBBzPLRx&@ <$pM|@BBB A(A0(A BBB,t BAA D0t AAB<hBBB A(A0(A BBB<Mr@BBA A(G^(A ABB,QT@AAD`KAA,DT@AAD@AA,T#AAD AA$UeAAD0\AA,U[BAA SAB$ *V9AAD pAA,48A0A(B BBBD ir@BBB A(A0D0A(A BBBLTts @BBB B(A0A8GW 8A0A(B BBBL~Ct@BBB B(A0A8D`*8A0A(B BBB< xBBB A(A0h(A BBB$D (AAD0AA,l RBAA JABL8@BBB B(A0A8D`8A0A(B BBBD5@BBB A(A0DP 0A(A BBB<4GBBA A(D`6(A ABB<tGBBA A(D`6(A ABB4BBA A(D@(A ABB4BBA A(D@v(A ABBL @BBB B(A0A8D@8A0A(B BBBDtNBBB B(A0A8D@8A0A(B BBBL3BBB B(A0A8DP8A0A(B BBBL V@BBB B(A0A8D8A0A(B BBB,\^BAA VAB<| Ԇ@BBA A(Gu(A ABB'DbR4nBBA A(D0](A ABBLDPd D|$PANTDPL} N:?A}ZWAU AQ,t0AnLf<dBBB A(A0(A BBBPڗ4BBBA A(D0(A ABB, ؘBAA AB<v5TK<lșpBBB A(A0`(A BBB4BBA A(D0n(A ABB@fAd,AAD  AAL4hM BBB B(A0A8D@4 8A0A(B BBB,fvBAA nAB$AAD |AA$ AAD AA$vAAD AA,֥0AnL dۥDI|ѥDIǥDIDQ -DYDTA$UAAD LAAL,ŨGG@BBB B(A0A8Gh+8A0A(B BBBL|`d@BBB B(A0A8GD8A0A(B BBB̼D 'Db$  Jf@X4.;E%,F|#E%  : R t   G  &fv        bU1 F#7HRd5!;<F       IL         '@}@ܳ@1@'@{   !@ @a  ao`@ @@ 8ax@@h oP@oo~@0a6"@F"@V"@f"@v"@"@"@"@"@"@"@"@"@#@#@&#@6#@F#@V#@f#@v#@#@#@#@#@#@#@#@#@$@$@&$@6$@F$@V$@f$@v$@$@$@$@$@$@$@$@$@%@%@&%@6%@F%@V%@f%@v%@%@%@%@%@%@%@%@%@&@&@&&@6&@F&@V&@f&@v&@&@&@&@&@&@&@&@&@'@'@&'@9@n@@eHHeLiBeBCNO F Ne Na Mg AlSiPSClArKCaScTiVCrMnFeCoNiCuZnGa Ge!As"Se#Br$Kr%Rb&Sr'Y(Zr)Nb*Mo+Tc,Ru-Rh.Pd/Ag0Cd1In2Sn3Sb4Te5I6Xe7Cs8Ba9La:Ce;Pr<Nd=Pm>Sm?Eu@GdATbBDyCHoDErETmFYbGLuHHfITaJWKReLOsMIrNPtOAuPHgQTlRPbSBiTPoUAtVRnWFrXRaYAcZTh[Pa\U]Np^Pu_Am`CmaBkbCfcEsdFmeMdfNogLrhRfiDbjSgkBhlHsmMtnUunoUuupUubqUutrUuqsUuptUuhuUusvUuofin*a@@@@@@@@@B@@@@@@@o@@@@@@@@@@@ @@@@@@#@(@-@4@@6@=@B@G@L@U@@W@`@f@@k@r@@t@|@@@@@@@@@@@@@@x@@@@@@@@@@@@@@@@ @@@,@@&@,@1@6@>@O@A@I@N@S@X@c@@e@o@u@y@~@@@@@@@@@@@@@@@@@@@@@@ڶ@@@@@@@@@ @@@@!@*@k@-@6@;@@@E@N@@Q@W@\@a@f@@I@o@w@|@@@@V@@@@@@@z@@@@@@@G@@@@@@@@@@@@ @@@@@$@)@.@5@h@8@?@F@S@K@P@'@S@Y@`@e@j@r@ @u@|@@@@@@@@@@@@@@@@@@@@@@@G@@@Z@@@@ @@@@@@#@@*@3@0@6@>@@@D@N@c@Q@W@\@@a@i@V@k@t@y@~@@@.@@@@@@@J@@@@@@@Y@@@@@@@@@@@ @@@@@@ @@@%@-@@0@9@>@C@H@R@<@U@\@a@@f@m@@p@y@@@@@x@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@"@(@.@3@7@>@@@@J@P@V@[@a@c@d@k@q@@w@~@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ @%@*@/@9@@<@C@H@M@R@]@3@`@i@n@@s@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@~@@@@ @*@/@4@9@@@@C@J@O@T@Y@a@@d@n@s@x@}@@ @@@@@@@@@@@@@@@@@@m@@@]@@@@@@@]@@@@@@&@@)@1@6@ @;@B@@E@L@Q@@@V@^@a@d@k@p@@u@~@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&@@)@3@9@>@C@L@ @O@@X@]@a@j@'@m@v@z@@@~@@@@@@@@@@@;@@@@@ @@@@@@@@@@@@@@U@@@@m@@(@+@+@5@:@@?@G@I@L@U@\@a@f@p@@s@{@@@@@@@@@@@@@@@@@m@@@@@@@m@@@@@@@m@@@@@ @@m@@@@@%@@m@*@2@]@5@>@@m@C@O@R@V@\@@m@a@j@m@q@\@@m@z@@@@@@@@@<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @$@@@@@(@2@6@:@@@@@@I@@M@@@@S@]@6@@@@@a@m@q@u@@@@{@@@@@@@@@@@@@@@@@@@@@@@@@@@@GCC: (Debian 4.8.2-1) 4.8.2GCC: (Debian 4.7.3-7) 4.7.3 (@$UD}@h}@p~@@@@@@@3@@)/j@r@@LԴ@0@-~@,1@'YM@ mmưB*XY\intin?'std.VKVRVUV[V\W]2W^PW_oW`W@mXXxXXXXXY3YOYkYYYYYY$Z?ZUZvZZZZZ[8[S[n[[[[[[\\\]$]C]n]]]]]^3^R^h^Lj^Ȩ^^^^_4_S_q_А_ r  r  r QS cd f I YY_nc'gA40qT $ n4g \= T's-seq *3s5-s-slt 73sR-s-s3| o\u:s:s UK:s}  :s:s-ss4 Ab@s@s:sFA *@s@s:s= c@s@s$ vK9Fs1g ֋X-sd pC3swFsFseof $L> (2FsưB5Ls6yt7t[ ^K~\U_0_[` }ct}dtkq"tks2=tt\yIt\{p dVdtVt dt\0y!r!fNx[z }{}|oaco{u{8w""u" ts+F#=2#os7i#=B$u$֊u%۠l3s/u%;<&3s/u&   u& _% u&)*8C u%'ޥVZ` u%;Vw utt0!e ut&C ut'C ut(,V u)6oK#V ut(~c$iVCIu(~c(HwValuV(>a, uu(72( u(/6u'3X:Xu(*A8 uc' I 1 uc(rGQ-%I Y u(Y)E3sq | uc*CAb- Vc*p4kwu Vc*=t+ Vn*- V*r V""* < VVV*W\ Vcc0|#\{ 'ETjt u' u+s"u,3 u-3 ut3  uu3+ @ uu3P j uut3z uct3 uct3 unt,3 u\.A""u  uu.A"*ru- 8 uc.A"5QuQ \ un.C]u { u.ChY" u/endpN u/end{M" u.@D: u.@LE.  u.y,g:/ 5 u.y,.N T u.uYm s u.@ u.=R u0]p un0]or u.uSu0nğ*5u07#KJPu.+]3siou.PL:C u.PLKau/at`. u/atsEu.;q0u!uu.;qKu:Euc.;quu^iun.dDV7uuu.dU&7uuu.d) kuuc.d$uuc.dCu!1un0esFQun1="uituu.=L^8uuu.=Uuuc.=h̛uuc.=xK^uun0;\;-Bun.;!u[kuu.;Vuuu.;gSuuc.;G`uuc.;'Ou#un.;9<Lun.paRwueuu.pab:u.pa u.gEouuu.gOu (uu.guA[uc.gcbutuc.gVuun.g.uuu.gDuuc.g*&u6Kuc.g?ud~un.gd-uuVV.gnIuucc.gyfuu.gk/u0Ju""({\Dub|un(6 uucV~,VntkyVnt.FAy!#uV0o[h8Cuu.}Cc\bu.c3bc{u.F|@u.}Nuc.}6uu.}EQB uc.}~9Iun.|cbruu.| 4~uc.|[uc.|7@un.˓ uu./v4Iuc.(bruc.INun.Rxuu.>eZuc.? uc.K4Dun.X]muu.XSoduc.X>9uc.X_un.>^uu.>j/Duc.>}B]muc.>-un.%Zu.3|4\uu.3|]\uu.3|*\*Iuu.3|\-\bmuc.3|e\uc.3|(\ucwbNPV 2 VVVtmt$V72 VVVt{Vh2_VVVt+2t1VuVVt2n2Il2r33rEZ3>Z4;  3[ W? [ + IR  @ B F ! o p ̈ ?R g a \ bB4 g g  5 ~a F s4%  E E  d Y4   , 7 ׈5t 69 G7w t7!' 3s,9 (.Eu89 ;Eu\9 J9LK i[" :Z? {a;dec {:+ {;hex {: {:f { ;oct {@:x {<! {!?"Pu!2))5{!=0g!!!m\s,0^!!m\s2n2Il5"=!"("\,9"?".kX"^"$n.}"".RG@""2n2Il!"l"? "p2sss[~#WN#@p#[s #2t1s2ssssA#[s2t1'o2s'o'os4 HYg# K ! [$"U`N#4]u"a#"fb#"xc#.^ukqf###kqmp###ctP#$#Bc{q##g#`$" eu""_fuC lR$X$uC pg$w$uuuD_T1uD_T2uVn`0%" e""_f]bC l$$'vC p$$'vu>E $%'v\E %%'v9vD_T1D_T2]$_\% gkqX%^%Qvksn%y%QvWv\y%%Qv\FUph%3i%2&#w%2&Qvv5%?|\8&hkq%&vks& &vv\y,&v\$r`&2~tZ2tZ233s'H$&8&%Af$g3s&&]vuuD_TpZ`&10&g#"~$ 2$&%G[0M3Hi0'%SX`&h`g#'(J2'8'vJH'X'vvv0[Nm's'vEI''v\2t`&I|3s90_'JkP%KS&94Su9.Tu9HWZ9_X$'9}\v9]cv9z^iv9Na5%9o8399 59u{;69o{<6. kdHv((v. khY[v((v.FlȆ+(((v.@Kqr(((v0"u?()v(.#(zey(!),)vv0vDlVA)L)v(.RB(e)p)v(.g/cv))v.gv'))v.9h#v))v.9B3'))v.;v* *v.;&'$***v.@R(C*I*v.@L(b*h*v.NP(**v.N<(**vLW**(*(LT Au*(L@X(*'L@(+'LF (-+'LF (H+'LW (c+'LT$Vu~+'Lkq(2('+'Lkq,X6'+'Lc0]'+'Lc4'+'(e"g$, ,vv'(ƒB_$*,5,vv(2{G$M,],vE(v(Y-J$u,,vE(v(+&8(,,v''9v(? n8(,,v'9v(8&wb8(,,v9v(CA; :(-%-v(('ma_R9-D-v(( Wpt8(\-q-v((u( W E(--v((u(X2)8(--v((u(XE(--v((u,, ..v,, .0.vvv+(,,F.Q.vv,,b.m.v\.A".v..vv.[Pz`&..v.CX8(..v.CsE(..v/end p8(/ /v/endZME(&/,/v.@QR(E/K/v.@I]_(d/j/v.y,}~R(//v.y,b_(//v. 3s//v.ug'//v.=6'/0v0o0%0vv.XXY6>0I0v9v.q^8(b0m0v9v.HV8(00vE(9v.   .8(00vE(9v'O#00vE('O01vE(E(0pa9x1"1v8(0pa=)_71B1vE(.pa'[1f1vu0paOa2{11v8(8(0paSm11vE(E(0paQA11vuu07ZD11v.}E8( 22vu.} JE(-282vu.8mx'Q2\2vu.WnAP8(u22vv.Wr}IE(22vv.Xv8(22vv.Xz{<E(22vv.HQ633vu.HKk6)343vu.2%ԑ3sM3S3v2)Z2$2W?H2ۙ`&2r5%1 54#"T3 }3v 'vQ"3cvCo33&Mo33&3%!5344,%u_33494,%r2P4V4&%r¯3m4x4&\%I@1244&%I'344&\%ٖ3s44,83%8[3s45,8D_Tp$z64#T15 }9v -vo3Q" 5ivCt5z5M55Z5C55D5%[; D555(!);.555(uVe956 6(r 0$6*6(rf0O5B6M6\(I]e6k6(I"]O566\(*3s66 O5(8.q3s66 D_Tp$3k 3&NNNl0`< &" 7HcZ d]_e$VXf`&Ng5%3lo8(E(0'u{R(o{_(Omap77vPmap77vvvT7Omap77vv.A"v88vv.F6pT748:8v.C@Me7S8Y8v.CI ,q7r8x8v/endR e788v/end[{ q788v.@d788v.@m=g788v.y,v'7 99v.y, 7,929v.+3sK9Q9v.uK}7j9p9v.=[}799v.PLmv99vw$7/at v99vw/atߏ w99vw07.;R6:':vw<7.;ye7E:U:ve7w0pawj:u:ve7.pa9}7::vw0pa5Y::ve7e70o S::vv078::v.[6=H7;;v.%N `71;7;v.}5Ҍe7P;[;vw.}Dq7t;;vw.8P@}7;;vw.W_>\e7;;vw.Wn[^q7;;vw.Xxte7<<vw.Xvq7(<3<vw.H6L<W<vw.H6p<{<vwQv<<v\2)ZD_Tp]2ۙ`&2r5%7y`%O 4\=8j0_ as by }c}dkq-=3=ksC=N=\y^=i=\R9wh3i<2V<8 H?;7 O1><"* R1>"e S1>"2 T1>C;7 V==C;7 Z==& e1>> :7%>\ MkA> Kl"S =N n<% qZvz>>% u~>>%F y"X>>>Cɋ |>>Cɋ >>X>Cɋ >?Cɋ ?'?Cȋ 6?A?\%$ 1>X?c?&4 gv??1>S ?? A? c? L> Ҁ> ҝ>D_TpV2r<= ҅F=_ V 1> k } k} ko m 'oo{ Fu{ F0 N < 4 @@T 4 @@k@T 4 '@@_@?, 4 6@@,4 AA\1A" h7)A4A0= ZoIAYA_@.C Fq/@rAxA.C #S;@AA/end ,(^/@AA/end 5;@AA.@ >S@AA.@ GG@ BB.y, Pr S@,B2B.y, Y\G@KBQB.u _@jBpB.= z_@BB0] pBB_@?.u *_@BB. (3sBBSn ACC_@.PL il@*C5C_@.PL v#@NCYC_@0ء \nCyC_@/at *#o@CC_@/at <Lr#@CC_@.U9 G`@CC.U9 OS!#@CC.js WX%@DD.js _x#@5D;D.c nB?TDZD.c v @sDyD0es ΁DD0N DD1; k/@DD/@0; `DE/@_@1pa /@E)E/@1pa /@AEQE/@/@0o T 0fEqE07 eQ EE0ރ bEE_@S= )EE0; QEE/@_@0c >:F$F/@.d? 8([_@=FMF_@c0 FbFmF?_@D_TpV2r<3h3W?&v&w&{N&k&&&&և&&&"&=&]&}&&&&ֈ&&&*&J&&q&e&&ԉ&&& 53"G[ s }2ʃsKG[ V }t2ʃV H[ y }2ʃy$e?H2($23 PR$H H(Af$\jHuH3v(Af$}HH9v25$?HHNs@ԟHHs2ʃsI 3sZ/IN 5@HI 52ʃ 5I 3s ? yIUa3snI2 t 527 5 5 5 5Ik3s %/IVt3sD_TpVyysIN'o@ԉII'o2ʃ'oI 3s'J[ c }t2ʃc[LkJNBo@;3JWJ'o2ʃ'oI 3s /dlJVpsD_TpVyys5"iKW JJJ>\1 eGJJHS{ $JK>G, KK>2n2IlS7')BKMK>GXJ'~3>]K>J@$ KUq?uK2Ilun@8(/-vKD_Tp0%9vU| uL2n2Il2ruu@},#LD_TpB,,U 3sYL2n2Il2ruu5jhL-sbrL}LTYsYLLL\Zstr~zLLLNZ2n2Il2r@$ w[L[[[s="zM2sss[T"GM2sD_TpVss@D,jMD_TpB,,UHM2ʃssU>sMI3s2ps2ossssUs HM2ʃssU*GPs NI3s2ps2ossss@~X(/'v>ND_Tp$3v@13sjND_T1D_T2]9v9vU[9HN2ʃ 5 5UT13sN2 t 527 5 5 5 5Ua3sN2 t 527 5 5 5 5@SɳG O2zVr@(ZG3O2BVVV@U3sVOD_Tpntt@(rGyO2t1VVV!5KP/strGޒOOO/9ZTwOOV\sTWv4~OOOV\s2n2Il2r~O5P/strvBHPBPHPn9ZTefP{PR\sTWe PPPR\s2n2Il2r PU1 3sP2n2Il2ruuU3I. 3s.Q2n2Il2ruuU,+3smQ2)ZD_Tp]2ۙ`&2r5%vvU{sQI3sD_IIsD_OIssssUesQI3sD_IIsD_OIssssUjsRD_IIsD_OIssss@j#ksHR2t1s2ssssUo-#sR2t1s2sD_TpVsssU2ksR2ps2ossssUԟ#sR2t1s2s2H!<sssUj3JS2ʃ'o'oU{sUSI3sD_IIyD_OIsyysU ItS2ʃ'o'oUssSI3sD_II'oD_OIs'o'osUysSD_II'oD_OIs'o'os@k#ksT2t1'o2s'o'osU#sST2t1'o2sD_TpV'o'osUq?uwT2IlucYLe% PUU qT2nuuU b ZT2n2Il2ruc5ZFIU,>UU\sW;T&U6U\s2n2Il}%~OU3sU2)Z2$2W?H2ۙ`&2r5%vv\+=+<]U8J)LuU2n2IlucU@W*bofuVu^o+4,W+?/Vc\+K DVc*UAiV3suur8vquVuBoJuuv,UvVVV\7V_@,\VccUGL,VV\nUU,XVWVc@L,72WVc7,ᱣcPWc\k",0k"coWcc,cWc\2k,K2kcWccNEv-@WH.W"bV.W"U.W" .X"H7.X$`J?aWa/S'RXb/V9Xcc/XWc,>/\RX"8/T\"I/]XdnbXeI'/^X'/jbXUUh/XX\UÐ/XXXWUO/XXX\XX-NUiC/XXXXUC/ \ Y YXYXU/K\3YX\UW/R\OYX YfU/{\kYX YfUĐ/XYXg{/XUK/7Yc7YmXU/m7YXc7YUX/i\YYYmXUV/7ZXZ7YcUjC/X?ZXXU#/XUZXU]/\\vZX7 YfUd/\Z Y YfU/XZXXUW/d\ZX YZWU/\ZX YZU]/q\[X7 YZUd/\8[ Y YZU\/l\S[ YZUz/\n[ YZU8/r7[VXY@3/X[X Y@T/\[ Y Y@r/\[ Y Y@d /X[X Y@7/7\ Y YU./W75\X7 Y5\;\@\htm80\"R0\"OT0\"Jx0\"(|0\ "d0\"g0\"va0\"a0\"0\ "0 ^("0c0U(/7\ Y@/X]X Y7@x>/\$] Y Y7@Q/XC]X Y7Uca/7h]Vh]7Y YU/7] Y YU4/0] Y]XU/]] Y](U/X]X Y]U/ ^ ^ Y]\PUWy/B3^ Y]\@I/7R^X Y7U=/\h^XU0/E\^ Y Y7U/IX^X Y7U!/NX^X Y7U"/RX^XX7UW/Y\^ YfU/\_ YfE/E Y4_ YX(/( YS_ Y YC/C Yq_ YX D/ D Y_ Y Yv/<v Y_ YX7irr r r,-G~:ua0= ?V @c }At}BtzO<`B`tzQR`]`ttzVm`x`t\1HY5_``t`1H]f```t `1$cY_``t_VS7m` at__1=qH_"a(atSk=1?t#@1@W2\GicK:V9[G9 }G9 G,bblT&b1blr.!#aJbPb}.u]aibob}.r!rbbl.r abbl\.Ibbl.Iabbl\.PL:acc}a.;q7cBcl.i 3a[cfc}.uqccl.!/acc}.@Orcc}2ʃV2AEZGkfK:c9[I9 }J9 J,3d9dTJdUdĊ.!^dndtdʊ.udddʊ.rЊdd.rcdd\.IЊdd.Icee\.PLTd2e=eʊ֊c.;q=Њ[efe֊.i ֝ceeʊ֊.uЊee֊.!jceeʊ֊.@+Ċeeʊ2ʃc2AEZKW17Ff#Bz1:@u#id1;@u#>1?t#@1@W2Bpj17f#Bz1:i#id1;i#>1?t#@1@W2n"Q17f#Bz1:u#id1;u#>1?t#@1@W2 sD}17 g#Bz1:u#id1;u#>1?t#@1@W2 ^[:h0= ?'v @-v }A3v}B9vzOdgjg?vzQzgg?vEvzVgg?v\1HYFQ$gggKviooo.r2upp.r"'op*p\.I6<CpIp.I1O'obpmp\.PL?\oppOo.;q9pp.i A'opp.u}pq.! 'oq&q.@'4?qEq2ʃy2AE?&&e&䀉&喉&浉&ԉ&div&ƙqrrK3/qN303sma'ocj 0tq\jAtr\j|%Nt!r\@s33s?r2tnVUVfmlr2ʃs2AE?,,V 3D3s2ʃs2AE?,,U/)r Y]U*/rr Y]\KUA/rr Y]\6'8'Fi!47'sk48llpl9j`56yt"=k5:V"=5;V",V5AV"45GV".a5HV "9k5IV("=5JV0"(V5KV8"5LV@"435MVH"5NnP"5OnQ"T5QnR"5SnS"f5UnT"bT5WnU"vg5^nV"d5_nW"P5bnX"5dnY"b5fnZ"^T5hn["rg5on\"d5pn]@$5}Vt\cmh5tLsԃ6(\ntXt"7 \lnli_luaualU3sfZwlwllZdB/uocVBr84B8augut@ 8\uXKu@8XuXVu@8Vuuc@ 8KuuclO  s ^g#$$luua&{vpZed'\"q(RX{)u$0%l$l0% glhh5%l%&&&l&l&hl3j3j%l&&l&l'l'l'&6l'l ,l0.l6l&7l7l<l7<l07l9l9l':D0/ww71s1jXwwBwMw}wwwQD[wawqLfkw\l<wwB8wri:\rd;\B<www\\S;=[GwwwX<>/www.(Oz"$Pz"YPz"qQRXpZedR\pnbR\pnoR\"RyR\ .Uoxxzc\zz.Zxxzz1nD^Icxx{ZZ_?\xx{Zsq`\E\xx{ssqawWyyz\Svb-y8yz\S6c&LyWyz\1d>\oyuy{1e,TzyyzSf\yyzz1}Ng{yy{1hB{yy{SzNizz zzzSBj!z1z{ {w1]kq0IzTz{wt+ulznzzS)m5Vzz{ww{\S5Rnazz{ww1o3szz{zXCpH2z{\xl{x{lwl{wu{*<{ -Rvgasvsol*{{ Vpalzpch\pnbw pno\pt<{{{Vz\\\{{V\1m=g{{m1bC\| |m1.3s"|-|mmSfA|Q|V\\1f,wi|o|msaddL ||VwssubB||Vw1;X)<{||mS;X*||V<{S* | }V\1*W"\!}'}mS+u(;}A}VSBU}`}m {1]?0x}~}m1+6<}}mS\,}}mww1)D53s}}mww3s1G~R~mwwS~rRf~q~mwwS~~Vw1Fg3s~~Vwwc1.\63s~~Vww3s1$W3s~~m173sm1rI1w4:mXC@Jm\G{lbG{lxbVVlVl8jlkk<l=l<=l<>l=lA>=?l>?l@l@lFl?F ?103\-8mSv~nLWmSv5kvS7SBEa {Sv3ÀɀS+u3݀S5RdwwS)Nt!wwSÆi5@wwS{sĪuT_wwSŔs~wwS!wSFwwS.\)Ёww3s1ŒɎ\1Hi3s1rI)Aw4:SC̵>NY\Q gmQ8{\q 40"nߜ"_ߜ"pval) 4 1_u!'$1h?E$SݚdYd$S(x$S<赈3sSv;S+u7ЃփS"=S_-5\\1rIlw,2$1`u)JP$SdjS5R&~wwS) n$wwS'DŽ$wwS{s}ۄ$wwS=M$wwSF.wwww3s1f FL1H\3sdj$1#%@%<$S#%1{\3sŅ$190݅$1uHk$w$0*xom *d -    VT bX Hz 0z C8 &dceIa9b>"4w9c\prem9d\?9ea9j)O"4w9k ^prem9l ^*O9mȆa9v3"4w9wrprem9xr39yJ94:y\NVVU"A9\ddjz@1j:0cUb9\cUk9 ^cUz9XևVV77({div9\\U93VcU9" ^ ^U?9[\=c7U`9f7]Xc7UTh9^\}Xc7|Cl9X77(g9v\|9xW@ 90ֈc:u@U9 ^c:u\@8K9Bc:u\U$u9\*cUN9i7JV Y7U-9b\eVXU9rrU_y9$rc@19rc:u\@ݛ9rԉc:u\@Ql9]c:u@l19)c:u 5l5fGlO5l63kGl3l4lD]mlUsqlml`nalxVqlalc'olyql'olpl$Hcl5uqlcl=e}~__pX+#[ul"-#[T <G#[bVa#[!~;\~vO;Xt}qo0M0\t}qoAMA\~ÛCt}roNMN\!"$9#[9jWJJSh#[hjW>!V!#[jW msO X ƌ#[jW s1 2#[KAQQ~FStAf#[KAA__sAc u#[ uC#[}ה ܔ Ǎ's-s}u__s :s} @s% :s__n }| H__dbV__sbc__nbiKJ]h#[hH}nK__a __b J#[h7 GwŎ#[8<\d<\wx#[{x&#[uy5@#[@zyTj#[@alfzxy#[y#[Wy#[yǏҏ#[}K2IlB__cnu5C,#[,__n _@`}@K#[Kml } e|#[__f0QB#[,}RŐ :s% :s__n CԐ#[__n _@|#[n\{$/#[K}KOD_Tp0%__r(/O9v,`cn#[nt]`#[njW=#[jWt\mϑ#[__iIOn #[ Zz56#[6__xZ5.JU#[Uv /it#[UY8#[v5#[}K2n2Il2rH ;P uu  "#[__f]81<#[ 6KV#[66e}#[__x.} .#[U)__n > O"7#[7jW}"Z2sss}L2s"zs4 "zsc>#[ }Mژ2sD_TpV"s4 "sژMF#[KA F?'?*#[ jW@9N#[jW$`_t#[tjW'v}Hs^k#[>ə#[ə}hl__a2pB#[,}GM0D_TpB__a0__b5,,kIe#[__ncDjVjt#[3=#[՗__as=Úښ#[7__a Zښ?#[ __n j#[=.9#[՗=HS#[7>bm#[ w@|#[h#[ %#[3X'ʛ՛#[՛v"'#[՛-#[77(#[(vg<Q#[QjW?vie#[ __pmhh}I 5}*__x(uHל#[ל__x$ܜ9v}*__x (r&+#[+__x$0__y$5]vuu}*R__x'}+j__x'h*y#[7**#[7\2ŝ#[7__knŝv}H+__x '.#[74 "#["__x',8X$;^#[^__apc__bphuuux4|#[}c+__x$'5#[/ȞӞ#[U)#[7)#[794!#[%`2B#[tB9v4}s4 >sÛ>s~Ct}M2ʃs s}MLI3s2ps2osPs4 PsÛPsTg[f#[Q(u#[U%2&#[Qvv} NҠD_Tp$__r(/Ҡ3v(#[Uth#[Q__p$gy%&;#[jW(Jb#[7__pu(,)q#[7__p(s'#[՛jWQ.ԡ#[7jW{<`#[(jW5 #[}>NID_T1D_T2]__xI__yN9v9v}jNt2ʃ 5 5}NǢ2 t 527 5Օ1 51 5 1 5~5t}N 2 t 527 5Օ 5 5  5}I"'oi1<#[<v|iPl#[ __nchV({#[7Ph#[Q__p$gM9v5̣#[6;#[(__x_wx8#.#[(3=H#[":Wb#[$q#[t__ap__bpu>,:Ҥ#[(ue7__xҤwA}#[Kc {}N2zVr} OO2BVZV4 ZV}3OmD_Tpnmrtt}!r2tnE3V}VOå2t1VrV4 rV} __pVV@V%#[__nϻ}]2 VK"VeV__a]mt} 2 VK"VeV__at^"yO?"ʦ#[ʦj"ަ#[ʦ"#[ʦ *#[;P"*uPODO#[O/{cn#[KP)P#[nQ|#[K|ǧ#[K}P2n2Il2rf "  uu  7#[__f)'}FQ#[}P2n2Il2rf. " / uuwMw/#[}.Q 2)ZD_Tp]2ۙ`&2r5%__x __yvvaw/&;#[jW JU#[U$'it#[UŅ#[Uj#[U}mQI3sD_IIsD_OIs{s4 {sÛ{s~t}QSI3sD_IIsD_OIss4 sÛs}QD_IIsD_OIss4 sÛs}"ت2t1s2s#[s4 #[sÛ#\s}R2t1s2s#ks4 #ksÛ#ls}HRm2t1s2sD_TpV#s4 #sÛ#sm}lD_TpV__a2ת__p2kH2ׯ}R2ps2osks4 ksÛksxm#[ YA!,#[lq}?ri2ʃs2AE?fi" n,,}Rͬ2t1s2s2H!<#s4 #sÛ#su#ͬA#[{#[m\Y&1#[1mEU#[\}lr2ʃs2AE?fD" E,,m#[1jW&q˭֭#[֭}>J'o}R2ʃ'o'o}SpI3sD_IIyD_OIs{y4 {yÛ{s~t}US2ʃ'o 'o}tS߮I3sD_II'oD_OIs'o4 'oÛs}S#D_II'oD_OIs'o4 'oÛs} #d2t1'o2s#['o4 #['oÛ#\s}S2t1'o2s#k'o4 #k'oÛ#ls}l__a2ྯ?ү#[ __n __a A #[,xA#.#[,}T2t1'o2sD_TpV#'o4 #'oÛ#sl#[1qE˰#[ڰ#[#[w)#[~n=\}L@:O#[ʖjW^u#[__aut)0ZD}@hA:͕S}@C@ ܕLS}@"LS}@-LO[}@;h^h}@ 5r}@ R}}@ Tыŋ}}@ ދ'}@To}@@$J}@Us8)7}@peE:)}@Z@.:͕}@C@ܕ}@"}@-O}@;ho^}@ }@ RQv}@ Tыŋ}@ ދ}@To}@@$~@Us8~@Us}STs2IlBs__scu*w (@O#[ORoT-(@riq7t-(@!8;-(@JJ8"1(@d1Z1(@\iB(@ג-B(@ <B(@"B(@-R(@UU}EU(@veXg(@UUvT @Q3g(@0 x(@%!Uv<x(@ KT(@UUsE(@e|X(@UU}T |@Q1}wwwsDww(@oTc(@xUTTUlwy(@C4#[@cn\(@ƸT0)@ƸTvTz)@x0alz)@eal1z &K)@5 EY)@۹^ T $)@4D)@ UvTsY)@4n)@4UvzՀ)@R-#[/ oT{ E)@ɺe X )@UUvT @Q1E)@Aذe) X )@ j  m)@ [ w )@.K̍)@֍, )@UUvTsE)@ ed X  *@UUvT @Q1E"*@fe X 4*@UUvT  @Q1EU*@e X. g*@UUvT @Q1)@Q!ۼUv*@0Tv?*@Q!UvT|O*@0Tvs.wwl*@KoTQ l v*@9n\al{E|*@e X*@UUsT @Q1*@HE*@qeX*@UUsT  @Q8E*@?XeX*@ :m*@ w]*@.K̍*@:֍*@UUsT|E*@鳿eX*@UUsT B@Q1E+@eX+@UUsT @Q:E+@ieBXn*+@UUsT @Q1*+@E;+@eXM+@UUsT  @Q1M+@EW+@me<Xhi+@UUsT @Q2Et+@eX+@UT B@Q1+@ǏE+@CeX?+@UUsT @Q1;+@-]Ust+@Q!~UsT|+@-Usz}+@#[KboTE+@0e6Xb+@UT @Q2E+@eX+@UUvT  @Q6E ,@eX),@UUvT @Q2E&,@=e_X8,@UT '@Q3+@Q!WUv,@Q!xUvT|&,@Q!UvTs>,@c}#[1G,@Si\|G,@ 1h,@> }o,@f$,@ƸT0#[U}\,@Us|Xlww,@Eo|Tf|wKҏ,@~a,@UUsT_Q1,@Q!{Us,@Q!Tvnz,@%#[oT@n%\JE-@DeXW0-@ m0-@ w;-@.K̍=-@֍`-@UUvTsҏm-@)0|-@UUvTMQ1ҏ-@v-@UTNQ1ҏ-@Z-@UUvTOQ1-@-@Q!T~-@-@TvQ|R}{Nv{-@nf1nUf2nT{w.@#[U.@:\Hn\}d\eI q~+.@M#[f+w.@sUU# ~!.@Rp#[1f!w^.@Fi"\|.@0"/@T|!+w+1+$L,]~@T++L,]~@Ο,]~@K++L,]~@,x~@Tv~@" VmFƕ XmF- Y?s Z?_-~@ W--- .|~@ :c-~@ =#S.2~@ X[N{.~@ Y:4.*.:~@ _?/Sc/I/~@U3$r~@ a//!0~@ 2ؒ/ؓ/Γ!0s~@ jD0g00~@#gD0ZMg0@0ت~@# g00~@~@#u˪g00S~@#]|g0o0~@E8g0+0~@۩g0Ω0~@0A~@n0ag0T0~@|0@U}Q|3$s@* q1:1]11@*#g1Z:1M]1@1ت@*# :1]11@*@*#u˪:1]11S@*#]:1|]1o1@*E:18]1+1@*:1۩]1Ω1@*1A@*n:1a]1T1@*|1B@U|TvQ~3$ڗI@ 12;2bN@ ^2{2q2S@@#[__x 6yD#[__x v2@#[122@m2@`03?2@]3?|2@ 83ï2@- 83ܯ:4ү?ߚ2@- :4?2@- 4:4*?:2@" _4S4I5 3@V3@3@ <#=5.#3@ <z?m`Sd#3@ ##3@ ##3@ #uWK?߮#3@ #]#3@ ѮĮ#3@ SF595#3@ aA#3@ n5a5T5#3@ |5C3@U|Qs3$C3@)6ߘC3@ fu6)6K3@K1i\6|K3@S?Ő]3@ސ6Ԑ!7j3@!a7rt3@ 77t3@2ؠؓ7Γ73@Uv3@7*3@973@ 7ڗ3@ 87b3@ {S8qv83@U|3@8*3@983@ 8ڗ3@ 88b3@ {8q 93@U|3@Us%-@; #[749__x`(90__yf(:@fD9b@Kg{9q:@Cv 2:N@C_2:͕@C`ܕ2:@"2:@-2:O@;hW:^:@ \::@ R9;^;@ Tы;ŋ;@ ދ;@T_;@T<J$<V@v{G<o<e$< @Us@U|}7a2_VK"|Ve|V__a|a~__r uth~2t1V#[K"VeV__atf@@R2t1V~k<O==x>bN@`U?2@uA`N@`UHU?;2@.A` N@`B6U?*2@A`H[ATAåb@LBڥBͥBb@:0C-B Bb@ epyCCk@gCCDy@UvTsQ~y@O(DKDf@%unD@נD@D1E@vI=D11E@VU @@@U~T0QR@U~T0QR@=gE0&E PUPg#[jW oTRs #[jW s|TL#[~x4L~ܕ{P9#[jW 9s~}3@r`0#[KE3@NoT|X3@OgF3@_G3@U}84@1=Gi4@MKT0z4@cHSHPz4@Ic_SH4@U}j4@ cyH4@ =0uI&I4@.ڌƌJD 5@iSJ 5@U}4@MKU}T|4@U|E:5@e+KXWKL5@UUwT ζ@Q2Vi5@CozKeKq5@%!UwEw5@eKXK5@UUwT A@Q2E5@eLX;L5@UUwT @Q2E5@>e^LXL5@ LMm5@ Lw&M5@.K̍5@֍JM5@UUwt5@mM5@M5@j5@yM5@=0>N&M5@NϦ6@ަN,6@5OdO<6@QUsT@͕<6@WܕO<6@"O<6@-OOH6@KhO^PY6@ 1PVPc6@ R5PPn6@ TыPŋQn6@ ދHQ6@T6@kQQ6@QUsT͕6@PLܕR6@Z"R6@-RO6@Dh,R^{R6@ 3RR6@ RS5S6@ TыXSŋ}S6@ ދS 7@T 7@S'T7@QUsT}͕7@ܕJT87@OT͕=7@ܕoTV7@OT[7@OܕTo7@OT,6@mU@R6@UR q7@T)7@ l:U͕7@L@4ܕ@U7@C"@U7@-@UO7@Ch|U^U7@ V&V7@ RsVV7@ TыVŋV7@ ދW7@TO7@@$|7@U}7@ڌƌ;WD8@StW'8@U}45@-Uw7@Uw(5@Us7@Uv}T^2nf ^"  ^u~88@T#[KW08@)PXCY-8@  5<Y8@"Y8@-Y-8@ <NY8@"NY8@-NY8@ YYY8@0͕8@*ܕY8@OT]08@&PZC7Z-8@  <7Z8@"7Z8@-7Z-8@ ;<\Z8@"\Z8@-\Z8@ ZZZ9@0Uv͕9@?ܕZO 9@;h[^\[9@ [[!9@ R?\>\.9@ Tыv\ŋ\.9@ ދ\E9@TY͕E9@Fܕ\E9@"\E9@-\ON9@=h]^h][9@ ]]e9@ R]"^p9@ TыE^ŋj^p9@ ދ^9@TZ͕9@Djܕ^9@y"^9@-^O9@;h^^8_9@ R[__9@ R_`9@ TыZ`ŋ`9@ ދ`9@T[͕9@Cܕ`9@"`9@-`O9@;h`^Ja9@ maa9@ Rk b/b:@ Tыjbŋb:@ ދb:@T\͕,:@ ܕb?:@OT^͕C:@JܕcU:@OT_b8@vUwT D@Q8@>UTs8@>UPTs]:@Uvq:@U@T ]@QO~:@ #[K3c0:@&PcCc-:@  <c:@"c:@-c-:@ =<-d:@"-d:@--d:@ xddd:@0Us͕:@?ܕdO:@;he^}e:@ ee:@ RAOftf;@ Tыfŋf;@ ދ g;@T]͕;@H ܕ,g;@",g;@-,gO!;@@hwg^g.;@ g!h8;@ RnhhC;@ TыhŋhC;@ ދi\;@T^͕a;@F ܕ6is;@OT_:@q UwT v@QO:@> UPTs{;@Us3~ ;@# C #[KYio TiE;@!> eiXj;@UT |@Q1E;@$ e@jXlj;@UUvT @Q1V;@% ojej;@%!UvE<@&> ejXk<@UUvT @Q1E<@& e$kXPk*<@UUvT @Q1EN<@( eskXk`<@UUvT @Q1E`<@@( ekXkp<@  l,lmp<@ lwOl{<@.K̍}<@ ֍sl<@UUvTs;@ Uv;@0 Tv2<@c, Us><@Us}<@ef #[KloTl 3s.mE<@ e{mXm<@UUsT @Q2ҏ<@ Em)n<@UUsT_Q1<@ fUvTs=@TsQv R1=@[?#[bnoTn=@O 3snPi\Do|=@&{oJ=@C T|j=@9b#[UooTpE~=@e @X_p=@UUsT @Q2~=@Ts=@Ts}=@6#[KpoTp 3s0qE=@e}qXq=@UUsT @Q2ҏ=@q+r=@UUsT^Q1ҏ=@cdrr>@UT_Q1=@ UvTs=@Us>@Q!T|!*>@[j#[roTs1>@O 3sksi\s|1>@Qsf>@T|>@9>#[U8toTtE>@ e @Xt>@UUsT @Q2>@'Ts>@Ts ~>@9a #[K uoTUu 3suE>@euXv>@UUsT @Q2>@ UvTs@ >@[,#[Pvo Tv?@O  3svi\2w|?@@iw6?@>T|DŽV?@9#[UwoTxEj?@ae @XMx|?@UUsT @Q2j?@ {Ts?@ Ts?@#[xoTx?@mi\y|?@pUy|?@ ?yE?@eyXy?@UU}T @Q3?@ T}~1@@^#[zo1T_z81c{Ei@@@6e{X{y@@ {|my@@ {w?|@@.K̍@@֍c|@@UUvT}E@@6He|X|@@UUvT @Q1E@@8e|X}@@UUvT ζ@Q2V@@9o$}eG}A@%!UvE A@:Hej}X}A@UUvT A@Q2EA@:e}X}/A@UUvT @Q2E@A@<e~X4~RA@UUvT @Q2ERA@C<eW~Xz~bA@ ~~mbA@ ~w~mA@.K̍oA@֍A@UUvT|EA@<De+XWA@UUvT B@Q1EA@=ezXA@UUvT @Q1EA@?eXA@UUvT ζ@Q2EA@AXeXDA@UUvT B@Q1EB@?E@egXÀB@ CmB@ wfB@.K̍B@"֍AB@UUvT}EAB@EeXSB@UUvT @Q3E^B@EeX;pB@UT B@Q1E~B@GMe^XB@UUvT ζ@Q2EB@IeXقB@UUvT B@Q1K@@cUs^@@Us@@-UvT|A@UsTv^B@-@UvT|B@UsTv=B@ #[1o=THB@T>3s8?cރ- i@\|B@@ g,C@T~QvERC@FeX߄dC@UU~T @Q1~OtC@ +#[oOT >O3sEC@Y4!e%XC@UUvT @Q1EC@[!e҆X6D@UUvT @Q1ED@_!eX/D@UUvT ζ@Q2E1D@aH"e·XCD@UUvT @Q1V`D@c"oe@hD@%!UvEsD@e"ecXD@UUvT A@Q2ED@eH#eXވD@UUvT @Q2ED@g#eX-D@UUvT @Q1ED@g$ePX|D@UUvT @Q1ED@m\$eXˉD@UUvT ζ@Q2EE@r$eXE@UUvT  @Q6E E@r%e=Xi2E@UUsT @Q2E=E@ri%eXˊOE@UT B@Q1EOE@t%eXaE@UUvT B@Q1EkE@v!&e=Xi}E@UUvT @Q1EE@|}&eXԋE@UUvT @Q3EE@|&e XRE@UT B@Q1EE@~.'euXE@UUvT @Q2EF@'eX!F@UUvT ζ@Q2E;F@'eBXnMF@UUvT  @Q6EZF@B(eXlF@UUsT @Q2EwF@(eXF@UT B@Q1EF@(eBXnF@UUvT B@Q1EF@O)eXF@UUvT @Q1EF@j1*eX(F@U)UvT @Q1 G@U)UvT @Q11G@U*UvT @Q1VG@UUvT @Q1C@cK*UsC@e*UsC@-*UvT|D@0*TvD@Q!*UvE@Q!*UvTs=E@Q!*UsT|E@+UvE@-7+UvT|E@0Q+Tv6F@Q!k+UvWF@Q!+UvTswF@Q!+UsT|F@UvrG@ + ,#[K^{G@Us6G@/,,#[G@e7wP,i9\|G@9,G@+G@U | }!G@7ێώŎO,sLww*H@0oTsm0ϑEZH@-eXGlH@UUvT ζ@Q2VH@-ojeH@%!UvEH@C.eXܒH@UUvT A@Q2EH@.eX+H@UUvT @Q2EH@.eNXzH@UUvT @Q2EH@@/eXH@ /mH@ /w*I@.K̍ I@/֍N-I@UUvTsE-I@?0eqX?I@UUvT B@Q1IH@`0UsTvTH@-z0UvH@Us\sZwwII@x1oZTmZ1 SI@Z1i[\U|SI@[$1E}I@\y1eؕXI@UT @Q5}I@,U|I@,U|%I@12#[1'I@ye&\i'\|I@@'92/ŐI@(k2ސԐߗ J@cJ@/RJ@[23#[[J@Fi0\t|[J@p03J@LJ@$33^3#[U1J@2J@2m3x3#[U2J@3N4#[U}J@{nwə^3J@)$4m3J@ ,J@ ,J@%TvK@3>4UsFK@RjbK@Nq4v:#[joTEzK@4e @XK@UUsT @Q4EK@M5e;XgK@UUsT @Q2ǧK@(60K@( PC-K@ 6<K@"K@--K@ 6<ԛK@"ԛK@-ԛK@ ?K@0T|͕K@E7ܕbOL@@h^ԜL@$7 1L@ R7%L@ Tыŋ%L@ ދK@L@TOEL@8nג-EL@ 8<nEL@"nEL@-nUL@UUsEUL@9eXgL@UT @Q3gL@H9* =uL@t!UsEL@9e`XL@UUsT @Q2EL@:eX۟L@UUsT  @Q1zK@:TsK@4:TsK@_:U@T }@QN}L@3Uv::#[;P^~uI __r\ɀL@:A#[1L@Ai\sj\|L@\;K7L@ ;FL@4Ő&M@ ;ސԐŐ6M@;ސ/ԐQaM@N+>Ϣvv:aM@N0 :Ϣ:aM@N::>::a-aM@ <<aM@"aM@--jM@f=<jM@"jM@-}M@ =ͣM@0UvQ$|}|#}#,(hM@#rM@#6͕M@?D?ܕYOM@;h^ΤM@ +?+M@ R>M@ Tыŋ M@ ދEM@T͕M@@ܕhM@?"hM@-hOM@h^ݦN@0@%N@ R9@rN@ TыŋߧN@ ދ2N@T7N@@mV:Ő7N@ ސԐ]͕N@,AܕN@OT|\N@TA|N@|ALM@>AUaM@>UN@UsIN@A4P#[1goITҪ >I3sN@PTJ3sV K3sͫ`OiL\>|N@LBwMT|XO@`MDg+O@b CO@U}pO@8OCO@MKT0O@cDϯPO@IcC_P@U|jP@ cyP@ =0i&9P@@DڌƌHDSP@zDSnfP@U}*P@MKDU}T|9P@U|EP@O EeXP@UUwT @Q2tP@PJP@P@jP@ EyYP@ =0&YP@EsϦP@FަP@hFPP@QUT͕P@WGܕP@F"P@-O Q@Kh۶^*Q@ GMr%Q@ RhG0Q@ Tыŋ,0Q@ ދdPQ@ToQ@HQ@QUT͕Q@TIܕQQ@H"QQ@-QOQ@Hhw^ƹQ@ gIQ@ RI[Q@ TыŋȺQ@ ދQ@TQ@I#rQ@QUT}͕Q@JܕR@OT͕ R@LJܕ&R@OT+R@Jܕ DR@OTP@JURoQ@URIR@PzK3גo-IR@ bK<3IR@"3IR@-3^R@UUw͕^R@JPLܕ^R@K"^R@-OjR@>hͼ^wR@ L?dR@ R{LֽR@ TыŋR@ ދVR@T R@V-Oy)R@cN:͕R@G@NܕžR@M"žR@-žOR@>h^:R@ xN]R@ R-NϿS@ Tыŋ<S@ ދtS@TS@@$0S@U|0S@NڌƌDLS@S]S@U}͕S@PlOܕS@OTP@ OT|Q|S@U|ES@We,XXS@UUwT @Q1nP@PUsS@UsLCPhP#[KAR__nRwPP#[KA__sc}TP2n2Il2rfb ^" c c~;Pe Z~ܕQQ#[__sccS@=Qb#[U|S@cdbsodT|sf|>lgXS@ZdSg$S@_QS@U}LT@4=RT@MKT0T@cSYPT@IcR_T@U|jT@ cyT@ =0^&U@.SڌƌD,U@iSS?U@U}U@MKSU}T|U@U|GU@eS*f YU@t!U|tYU@fYYU@RYU@jYU@ TyYU@ =0;&bU@TϦpU@TަU@CUxU@QU|T@͕U@WVܕU@U"U@-OU@Kh^QU@ VtU@ RCV U@ Tы.ŋSU@ ދU@TV@V0V@QU|T͕0V@P[Xܕx0V@iW"x0V@-xOh^1W@ ]TyW@ R{]W@ Tыŋ3W@ ދkX@T͕X@GfD_ܕX@R^"X@-OX@>h^/'X@ +_Rw1X@ R^3st{Y@/KxgadrEY@ceXEY@UU~T  @Q6EY@cehXY@UU~T @Q2EY@?deXY@UU~T B@Q1EZ@"deXNZ@UUsT @Q2E;Z@%deX MZ@UU~T ݶ@Q5ǧaZ@(&fW0aZ@( PWC-aZ@ e<aZ@"aZ@--iZ@ 5f<iZ@"iZ@-{Z@ !DgZ@0T|͕Z@E&gܕOZ@@h^+Z@$gxZ@ R:g"Z@ TыZŋZ@ ދZ@TZ@&Vhג-Z@ ?h<Z@"Z@-Z@UU~EZ@&he"XNZ@UT ݶ@Q5[@'ciqג-[@ Li<q[@"q[@-q[@UU~͕[@D'jܕ[@i"[@-O[@;h5^)[@ j3[@ Rdj/T>[@ Tыwŋ>[@ ދW[@TEm[@)$keX?[@UUsT @Q2[@)kג-[@ k<[@"[@-[@UUs͕[@Q)=mܕ[@Kl"[@-O[@Hh^&[@ $mIn[@ Rl[@ Tыŋ([@ ދ`[@TE[@+meX[@UUsT @Q2[@+m*  \@t!UsE\@/9neX&#\@UU~T Ѷ@Q6E#\@0neIXu5\@UUsT ض@Q3E:\@4neXL\@UU~T ܶ@Q6EQ\@6MoeXc\@UUsT ܶ@Q6Ee\@8oe6Xbw\@UUsT @Q2\@ ;o* \@t!U~\@<9p* \@t!UsE\@<pe'XS\@UT @Q1E\@?pevX\@UU~T @Q5E\@AFqeX\@UUsT @Q6E\@CqeX@\@UUsT @Q3E\@FqecX]@UU~T @QAE3]@GSreXE]@UT  @Q4EE]@HreX-W]@UU~T @Q4E]@IsePX|]@UT @Q1E]@Q`seX]@UU~T  @Q6E]@SseX]@UU~T @Q2E]@Ute=Xi ^@UU~T B@Q1E ^@XtteX^@UU~T @Q1E*^@ZteX<^@UU~T  @Q1EM^@^,ue*XV_^@UUsT @Q2͕q^@'kuܕy^@OT͕^@)uܕ^@OTY@3uU}Y@1Y@^uT~Y@^vT~Y@^ vT~Z@AAvTsQ|%Z@AbvTsQ|aZ@vUT }@Q[@QvUT}m[@QvUT}]@ ,]@ ,(]@ wT|3]@#wU~`]@ ,l]@ ,w]@YwT|]@swUs]@2]@1wU}]@^wU|T~]@^wU}T~*^@^wU|T~M^@A&xU}TsQvl^@AU|TsQv^@exUs^@Ussp4ww^@KopTcpK;^@qxJE^@qLye @X!^@UU|T @QCt^@ rtyjE_@syeX$_@UUsT '@Q38_@tzZI_@UT}ǧI_@)t{}0I_@) P}C-I_@  z<I_@"I_@--S_@ P{<S_@"S_@-d_@ 1Twl_@0U|͕r_@Et|ܕOw_@@h^8_@$|_@ RU| /_@ Tыgŋ_@ ދ_@TI͕_@Dt~ܕ_@+}"_@-O_@;h#^_@ ~_@ R}?_@ Tыbŋ_@ ދ_@TJ`@ t^~ `@UT} `@tגT- `@ ~< `@" `@-`@UUsE`@tkeX0`@UT ݶ@Q5͕0`@Dtπܕ0`@"0`@-O9`@;h^bF`@ P`@ Rl[`@ Tы?ŋd[`@ ދt`@TK`@uג-`@ p<`@"`@-`@UUs͕`@DuܕE`@"E`@-EO`@;hj^`@ ӂ`@ RLq`@ Tыŋ`@ ދ`@TLE`@vGeX@`@UUsT @Q2E`@wecXa@UUsT  @Q1͕ a@tܕa@OTM͕)a@tܕ?Tc@MKT0c@:?/d@MKT0y e@(?nd@6Pnd@ac-_d@U|jd@ cy'd@ =0&DUe@Shne@U|e@MKU|T{>e@U{Pe@U{5e@De@H2e@je@ ʌye@ =0Q&e@eϦe@ަe@h ne@QU~T͕e@W̎ܕe@ڍ"e@-Oe@Kh^Hf@ kf@ Rh%f@ Tы%ŋJ%f@ ދEf@T~gf@ |f@QU~T͕|f@Tܕo|f@"o|f@-oOf@Hh^f@ g,f@ Ryf@ Tыŋf@ ދf@T~f@АAf@QU~T|͕f@ܕg@OT~͕g@Lܕ !g@OT~&g@ܕ+ ?g@OT~e@URgf@UR~5Dg@tDQ Dg@H Dg@jDg@ }y!Dg@ =0!&!Pg@2"Ϧ^g@˒ަ"g@"%#g@QU~T͕g@Wܕ#g@"#g@-#Og@Kh#^#g@ f"$G$g@ R$$g@ Tы$ŋ%g@ ދ9%g@Th@ϔ\%%$h@QU~T͕$h@W3ܕ&&$h@A"&&$h@-&&O0h@KhL&^&Ah@ &&Kh@ Rϕ0'U'Vh@ Tыx'ŋ'Vh@ ދ'vh@T{h@'G(h@QU~Ty͕h@ܕ(h@OT͕h@ܕ(h@OTh@7ܕ(h@OTg@VURh@UR͕h@Dzܕ)i@OT~0i@.P.)C)-i@  R<)i@")i@-)-i@ ˜<)i@")i@-)%i@ $*G*j*-i@0Us͕3i@B)ܕ*O7i@>h*^Z+Di@ ++Ni@ Rř,<,[i@ Tыt,ŋ,[i@ ދ,ui@T~͕ui@JǍܕ,ui@",ui@-,Oi@>hF-^-i@ t- .i@ R)V.{.i@ Tы.ŋ.i@ ދ.i@T~i@#3!/)i@o5u:/͕i@J@>ܕ/i@L"/i@-/Oi@>hS0^0j@ %01j@ Rڜc11j@ Tы1ŋ1j@ ދ29j@T9j@@$+2Rj@U|ERj@s5hT}2uj@";Нڌƌ2yj@.;J3Dj@5S3j@U|j@Ӡ!V4)j@ 5:4͕k@L@ܟܕ4k@"4k@-4Ok@Ch5^5k@ ß55%k@ Rx6960k@ Tы\6ŋ60k@ ދ6Lk@Tsk@@$yk@UyEk@75hT6k@;pڌƌyyk@;7Dk@5SN7k@Uye@0UTye@0U~T{^k@.U{kk@UwRc@[Ussk@Usz |#[Kmm!bk@Cm1b7m2b7k@ec!8minewm8k@c&8mk@|8Sk@ b89k@ }H8Pif/@)9l@f!c9l@ ّ9ϑzjg/@9"l@g! :"l@ ّ :ϑw2l@hC:y:?l@xKmiVOl@p:;rOl@ zJ;p;;Ol@2ؒJ;ؓp;Γ;kl@UQl@i;;l@ێ"<ώY<Ŏ<sl@ j4<7=l@U 6kl@gO=E=6ul@fO=E">l@J>*l@9J>l@ J>ڗl@ m>>>bl@ >{ ?q.?l@l@Usl(m@xϦ#[1Q?mm?3m@ae\? i\!@|3m@@ HX@w]m@@@im@x8m@^#[1@mm6Am@zi\Am@QAAm@ێAώIBŎlBm@5BBrm@ C&CICm@2ؒCؓ&CΓICn@UvQXm@4UvTsm@NU &n@W.n@R#[1lCmC5n@Fi\D|5n@p ;Dan@U|!w01n@8m1wDm2wDn@ ήex E7ywWEn@x &Emn@|ESn@ bE9n@ }HE iz/@En@zv!3Fn@ ّkFϑ m{Vn@{FFn@ێFώ1GŎTG j|/@yGn@|c!Gn@ ّGϑwn@}G4H o@x6o@|լOjHEHo@%#o@+HIr-o@ (INIqI-o@ 2ؒ(IؓNIΓqINo@UQn@U 6No@zOIEIfo@I*fo@9Ifo@ Iڗio@ J/JRJbno@ uJ{JqJso@{o@Uso@5#[Jtri3sKo@`5|o@ vK0 Mg LdVL)p@yL*)p@9yL)p@ yLڗ-p@ LLLb2p@ M{:Mq]M7p@Hp@tM*Hp@9MHp@ MڗLp@ MMMbQp@ N{ANqdNVp@o@UHp@U~Qwp@DZUH!p@U}Qw?p@U|^p@U|p@6U~p@U}˰{p@ڰNp@p@p@ղNp@:p@:p@N*p@9Np@ Nڗp@ OEOhObp@ O{OqPp@p@&P*p@9&Pp@ &Pڗp@ IPuPPbp@ P{Pq Qp@o@ŴUwmp@vp@p@UsEp@G #[-Qc$yQ` Զe1)Qe2)#Rn1wn2we)qRnwR^3q@"m3;Sq@ ,q@ ,q@%T|^3q@ Mm3qSq@ ,q@ ,r@%T}Cq@ha0w))@)03333@0q@x3q@x3Uvr@U|q@^q@^q@UsT1d6r@G0!#[Sc$S e1)eTe2)Tn1wn2we)Tnw`U^3 s@"m3Us@ ,s@ ,)s@%T|^3,s@ am3V5s@ ,As@ ,Ls@%T}r@ha0w))@)03333@0r@x3s@x3ѸUvcs@%U|r@^r@^r@UsT1փ~s@D #[8Vs@x&wVs@Vs@MTvs@MѹTvs@UsT0s@3Ust@,#[Vnum\0Wden\|W!t@i&wW8t@MTvDt@MTvQt@ӺUsT0Yt@3Us)!#[7__xz!~'N|(v,@FQ#[7XX__x'X__p',Y__vQY@:c3sZ__z('@H$3ZmZZ'@H$Δ3ZmZv:'@H :3Z:mZ'@H:Z:Z::[-'@<mZ'@"mZ'@-mZ-.@e<B[.@"B[.@-B[@@ս|[[E@0Q$ss##,(hL@#[r[L@#\{@Q +\d\{@Q\l{@ |{d\A{@ rfZPd\@U0@"~_\2]!@<]2]@Us T|;@߿T^JO^V@v{^o^eO^ǁ@Us@~@́@߁@DVU~TsQ}Rv@Us9v+@vt#[7^__k#t _ @__x&(U___y'(_ѡ(3s"`__j/8(` @&`@?,Eaaa@?$ΔEaav:@? :Ea:a@?:a:a::b-@M<a@"a@-a-#@<Ea#@"Ea#@-Ea5@ 4Bbeb=@0U}Q$s|s#|#,(hC@brC@b:_@-DbRj@-\bm@5 |c@iVUv@<7=c`cc@<$Δ=c`cv:@< :=c:`c@<:c:c::d-@C<`c@"`c@-`c-@<'d@"'d@-'d@#Jdmd@0Q$}}##,(h‚@drd‚@dv5,@3K#[7duE(ke__kKe@ KA8(`f&@?Uff;g&@?$Δffv:&@? :f:f&@?:qg:g::g-&@ &<f&@"f&@-f-2@<g2@"g2@-gC@h4hH@0Q$svs#v#,(hN@WhrzhN@h@Shi3i@S$Δhiv:@S :h:i@S:ii:i::i-@ <i@"i@-i-@<i@"i@-i@]Gjj@0U|T~Qh@jrj@j@0#+8(km@ |kk@iVUs@8kkk@8$Δkkv:@8 :k:k@8:l:7l::Zl-@K<k@"k@-k@ }ll@0T|Q$~v~#v#,(h@lrl@ mc@VUTwh@2,mPmmh@2$Δ,mPmv:h@2 :,m:Pmh@2:m:m::nh@X)nLnx@0U~T|Qh~@nrn~@n@|+8(n@  :o@VUs@7 booo@7$Δboov:@7 :bo:o@7:o:p::)p-@F<bo@"bo@-boɄ@ Lpopф@0U|Q$~v~#v#,(hׄ@prpׄ@p@VUTw@VUTwv9_#[(__k~__ie7wD-#[7__xq(__yq(__kr^m0#[7uE(__v~>$9v zt@6#[pcmq&wqt@rlal{ keyPt@ Uir_hr wrt@0 Nrhrt@` `rhrt@oVst@ ofssOttt@Cutu]ut@C$Δtuv:t@C :t:ut@C:u:u::u-t@ <vt@"vt@-v-t@=<ut@"ut@-u u@ =vbvu@0T~Q$|v|#v#,(hu@rvu@v:3u@v'DvRy@ <0@0y@ גPC@-y@ <@y@"@y@-@-y@ W<zy@"zy@-zy@ ׌y@0<|@ K|@UUv<|@ KE|@UU|Ey@zemXy@UU|T +@Q6Ey@eX= z@UUvT 2@Q3tz@sz@z@jz@yz@=04& z@Ϧ1z@ަbz@/Zrz@QUsT@͕rz@Wܕrz@"rz@-O~z@Kh^z@ z'Lz@ R/z@ Tыŋz@ ދ>z@Tz@aƒz@QUsT͕z@PFܕz@T"z@-O{@Dh"^q{@ -{@ R+({@ TыNŋs({@ ދD{@TF{@ΔV{@QUsT}͕[{@ܕ@t{@OT͕y{@ܕe{@OT{@Iܕ{@OTbz@gU@Rz@UR{@ &ԡ{@/{@`{@U|{@ &ԡ{@ /{@ `{@Uw {@ ){@ o:&͕{@Z@7ܕb{@F"b{@-bO{@Nh^|@ #H|@ R|@ Tыݘŋ|@ ދ:<|@TO|@@$||@U}|@ڌƌ|D|@S] }@U}D|@[&ԡD|@/D|@`S|@U|S|@ &]ԡS|@ /]S|@ `]`|@UwE|@<eX|@UU|T 6@Q2y@VTwy@qT|y@YU|Twz@YUvT|j|@U|"y@Usr|@Uvs \,\<}@'!}@+}@U )a?}@T )aQdveIwK  adceIKe admoxdXU )aảxa{1f!@]f"f~f(f%f%4}<_}X@.,\ccYYXXVB)<[Xʐ$XX0XVIBXLX\RVVBlog=m0h0exp=d0~0XXtlg#A\tXX4 M&std7gKQSYY_W<ncjD'g}WA40@^)^^^^_0_V_q______`7`b`}`````a1aVavaaaaab b:bTbc*cIchccccc d)dIdidňdƞdǾddde5eLejeΉeϧeee f %fqT  $ ^ 4g \ = Tn Ef Kf > eq *Qf Kf Kf lt 7Qf Kf Kf3| o\ Xf Xf  UK Xf}  Xf Xf  Kfs4 Ab^f2 ^f Xf FA *^fV ^f Xf = c^fz ^f  >$ vK> df I1g ֋I Kfd pCQf df dfeof $LI> (2I df ư[ [ \K~\K0_ }cqf}dwfkqV\fkslwf f\yf\ 5f6g7g{pd ad5h a fd5h\0y"# r!Nx }{.}|:ooMOo{u{8 u  %hsn=2#os7^=B_h֊Mh ۠lQfjh ;<&Qf06jh! IOGh! _bhGh!)*{Gh  'ޥaGh ;aGh f f0!eGh   f!C Gh f"C +Gh f#,aCIGh$6oK#a]Gh f #~c$ia;h#~c(HwaAh a#>a,Gh;h#72( Y;h#/6Y ;h"3X:X#Ah#*A8 ;K;h  ^" I_t;h   ^#rGQ-% ;h  #Y)EQf;h ^%CAb- a ^ %p4kwu a ^ %=t+ a  ^%-? a Y Y%r_ a e e%  a a a%W a ^ ^0|#\  "ETjt Ah   "  Ah&s"Mh'3" ( Ah(38 C Ah f3S ^ Ah Sh3n Ah Sh  3 Ah Sh   f3 Ah ^  f3 Ah ^ f3  Ah  ^ f'3( 3 Ah\)A""YhL W Ah Sh)A"*rYhp { Ah ^)A"5QYh Ah ^)C]Y Ah)ChYe ;h*endpNY Ah*end{Me  ;h)@D}4 : Ah)@LEqS Y ;h)y,g}r x Ah)y,q ;h)uY  ;h)@  ;h)=R  ;h+]p  Ah  ^+]or. 9 Ah )uS R X ;h+nğm x Ah +7#K Ah)+]Qf ;h)PL:CM ;h )PLKaA Ah *at`.M;h *atsEA5@Ah );q0YhYdAh Sh);qKYh}Ah ^);quYhAh ^)dDV7YhAh Sh)dU&7YhAh Sh  )d) kYh'Ah ^ )d$Yh@KAh ^)dCYhdtAh  ^+esAh ^,="YhAh Sh)=L^8YhAh Sh  )=UYhAh ^ )=h̛Yh'2Ah ^)=xK^YhK[Ah  ^+;\;pAh Y  ^);!YhAh  Sh);VYhAh  Sh  );gSYhAh  ^ );G`Yh(8Ah  ^);'OYhQfAh   ^);9YAh Y ^)paRwYhAh  )pab:YAh Y)pa YAh Y Y)gEoYh3Ah   Sh)gOYhLkAh   Sh  )gYhAh   ^ )gcbYhAh   ^)gVYhAh    ^)g.Yh-Ah Y Y Sh)gDYhF`Ah Y Y ^ )g*&YhyAh Y Y ^)g?YhAh Y Y  ^)gd-YhAh Y Y a a)gnIYh 'Ah Y Y ^ ^)gyfYh@ZAh Y Y Y Y)gk/YhsAh Y Y e e#{\DYhAh    ^#6 YhAh   ^ V~,a  ^ fkya8  ^ f)FAy! Qf;h a  +o[h{Ah Yh)}C^;h)c3b^;h)F|@5;h)}N ;h ^  )}6 *:;h Sh )}EQB Sc;h ^ )}~ |;h ^ )|c ;h Sh )| 4~ ;h ^  )|[  ;h ^ )|7@ %5;h ^ )˓ N^;h Sh )/v w;h ^  )( ;h ^ )IN ;h ^ )Rx ;h Sh )>eZ  5;h ^  )? N^;h ^ )K w;h ^ )X ;h Sh )XSod ;h ^  )X>9 ;h ^ )X_  0;h ^ )>^ IY;h Sh )>j r;h ^  )>}B ;h ^ )>- ;h ^ )%;h  )3|4\&;h Sh)3|]\?T;h   Sh)3|*\m;h   Sh  )3|\-\;h ^)3|e\;h   ^)3|(\;h   ^  bNPaH- a a a f 4t$au- a a a f-^-Il2-r..rE KiRiUj[j\9j]Xj^vj_j`j 3 >/; 3y0W?0[0+0IR00@ 0B0F0!0o0p0̈0?R 00g0a00\0bB/g0g0050~a0F0 0s/%0E0E00d0Y/00,070׈1t<29e3w%h3!'Qf'9FLj49Yj\5J5LKiy"6Z? 7dec6+7hex 66f 7oct@6x8!8r"8s&8ψ)8BR,8/ 8g3@6d669J8\<6"EN e6Q6dV6HY7appl r7ateo7inw7outz57cur( 7end(!Rj!Sj!T)^!\ k!e#k!h=k!iRk1F 9r`]m}\,sl> } lGm,s܆. } \-^-Il2,"߭gk ' } ^ K,"҂gk? E }:put""gk] h } h $>^;N"?Mgk - \} \1{!90#g  \-^-Il2*get#<$ ! H#G $#>^1!9$!8!C!\'$T!Z!)k$zs!y!$$^)$}z!!)R$G@z!!-^-Il21ާ'")ͭa="!" ^5$^p&[t-t1t-t t t t/ H'Y"0K0! '[U#U'`" 4']wk'a"f'b"x'c" .'^}kkq'f" # "kq'mp"&# "c'tP"?# "?c'{q" " "(`# (ewk"_(fwk@ (l##k@ (p##k k kA_T1wkA_T2wkBVn #_\M$Rkq##kks$$k k\y#$.$k\CUph 3iR$-% #?|\$UTkqu${$*lks$$*l 0l\y$*l\)r$-~t-t-3Qf'H)%$ Af)gQf$%k Sh ShA_Tp $B1 % R$D[0'M1Ei0'%R$SX'$h`'"'%(J'%%6lJ'%%6l 6~l l)}*DT2W6b6l l)8*P@`2{66l l)W*_>\H266~l l)W*n[^T266l l)X*xtH266~l l)X*vT2 77l l)H*1/7:7~l l)H*1S7^7l l-)A_Tp'\-ۙ$-r# 1 y`+m 4\R8U0_ at bt }ct}dtkq77uks 88u u\y(838u\C9wh 3i7-t 78H:;7O87*R8eS82T8@;7V88$u@;7Z88$u *uLe18$u 0u MW 8 KsXSc8 Nn7 qZv6u,929;<<Nu)@G:<<lu)y,Pr ;<<Nu)y,Y\:<=lu)u;="=lu)=z;;=A=lu+]pV=f=Nu ; :)u*;==lu)(Qf==luMnA==Nu ;)PLil:==Nu ;)PLv:> >lu ;+ء\ >+>lu ;*at*#o:C>N>Nu ;*at<Lr:f>q>lu ;)U9G`:>>Nu)U9OS!:>>lu)jsWX%:>>Nu)js_x:>>lu)cnB:? ?Nu)cv :%?+?lu+es΁@?K?Nu Zu+N`?f?Nu,;k:~??Nu : Zu+;`??Nu : ; Zu,pa:??Nu :,pa:?@Nu : :+oT 0@#@Nu fu+7eQ 8@>@Nu+ރbS@c@Nu ; ZuM=)w@@Nu  Zu+;Q@@Nu : ; Zu+c>:@@Nu : t)d?8([;@@lu ; ^+FAANu : ;A_Tpt-r7.h.W :,vh,wh,{(},E},a},},},},},}, ~,&~,F~,f~,~,~,~,~,~,~,,5,h,[,P,k,,,,-_A\-`i-b-c -d!-e7-fM-gb-hx-i-j-nԀ-o-q-r9-s_-uu-v-w-x-}-~ԁ---->-I-^ 0+ "C [ t }t-ʃtbC Nt@ԟ*CNC t-ʃtF Qf%/COt3tA_Tpt t t tKC j [ a }qf-ʃaD [ ^ }wf-ʃ^/dlADOptA_Tpt t t t1"\EPAD`DkDN\,eeDD):eofQfDD),+QfDD):badQfDD)M{$DEN e'EEN)ͭ_=E2E=E) ^$K^-^-Il2Q$wyvE y yQ!syE y y ADQ!E  Q$E  Qm.E-! !R]JgkF-^-Il2 gk1jh~F(sb-F8F{ r-^-Il2-r:str~zqFkFqFNSs=%zF-t t tQD؇FA_Tp[ R*CF-ʃt tR>tGFQf-pt-ot t t tRs *C:G-ʃt tR*GPtvGFQf-pt-ot t t tQSɡCG-za Q(.ZCG-Ba a a jQUQfGA_Tp^ f fQ(.rCH-t1a a a !R{tCHFQfA_IItA_OIt t t tRetHFQfA_IItA_OIt t t tRjtHA_IItA_OIt t t tQj&ktH-t1t-t t t tRo-&t"I-t1t-tA_Tpt t t t uR2ktTI-pt-ot t t tRԟ&tI-t1t-t-H!7 t t t uST%I-tA_Tpt t t uR| gkI-^-Il2-r gk Sh1HJ*strvBJJJ5-^-Il2-r IRq?gkqJ-Il2 gk ^RK4gkJ-^-Il2 gk  e+I +J1J-^-Il2-rTcin7VU8JBPR @W/b0LgkVK-^-Il2 gk ^ KW:8۲ FXE[ef%f,-G~:(M0= ?a @^ }Aqf}BwfzOKK}fzQLL}f fzV L+L}f\,HY5KCLNLf K,H]fKfLqLf K,$cYKLL}f K jfM7mLL}f K K,=qHKLLfMk=LL}f K wfM MM}f KA_Tp^ K 17oMBz1:^id1;^>1?0h@1@^-\DiOH:a5[C5 }C5 C'MMNMM )!#MMN)u]MN"N)r!r;NAN)r oMZNeN \)I~NN)IoMNN \)PL:MNN M);qNN )i 3oMOO )uq2O=O )!/oMVOaO )@OzOO-ʃa-AEDkQH:^5[C5 }C5 C'OOrNOPr x)!^O!P'P~)uO@PFP~)r_PePr)rO~PPr \)IPPr)IOPPr \)PLTOPP~ O);q=QQr )i ֝O2Q=Q~ )uVQaQr )!jOzQQ~ )@+xQQ~-ʃ^-AEKW17QBz1:jid1;j>1?0h@1@^-[pj17;RBz1:^id1;^>1?0h@1@^-^"Q17}RBz1:mkid1;mk>1?0h@1@^-[D}17RBz1:rkid1;rk>1?0h@1@^- \[:PT0= ?k @k }Ak}BkzOSSkzQ-S8Sk kzVHSSSk\,HYFQRkSvSk R,H]nRSSk R,$c0RSSk R jfM7mSSk R R,=qA,RSTkMkh5T'Tk R kMԅ;TFTk RA_Tp# R;|:U0= ?l @l }A l}BlzOTTlzQTTl lzVTTl\,HYFmTU U$l T,H]tyT$U/U$l T,$c`mTGUWUl aT jfM7mhkU{Ul mT aT,=q#DaTUU$lMkYwUUl mT lM}UUl mTA_Tp% UT4:|W0= ?t @t }At}BtzOCVIVuzQYVdVu uzVtVVu\,HYUVVV u V,H]10VVV u 'V,$c4 VVVu U jfM7m0WWu V U,=q~'U)W/W uMk6jCWSWu V tM/gWrWu VA_Tpt UX2yX 2Ƿ7 27 }27 }27 02̫7$2D'WW u W 72 X u W W 2X u W=2W4X u2h uMX u o2X&gX u u9w2X 32<8A_TptSHF2׬XA_Tpt u W t-r7D~4ZH:t5[B5 } C5 B' YYON Y+YO U)!fXDYJY`)uޕXcYiY`)rYfYYO)r0$XYYO \)IfYYO)IOXYYO \)PLXZZ` l X);q:Sf1Z6a8ӭ6a@O6aH6aP6aX6 i`ç6 ih6 \pݴ6\t6gx6[6[6i6i6& h6/^60^61^62^63^o65\67i 5@L\Z*XH7^bV7[U7[ 7^H77^] ư8[G?8a[^9S'y^_9V`^`c9X[`,>9\y^89T\I9]A^a^^b]Z?' '9^5^ '9j^ \c^ ^RUh9)^^ \RÐ9)^^ ^c]RO9__ _ \ ^c_Z-NRiC9)^0_ _ ^RC9 \K_ K_ ^cQ_ _R9K\q_ ^ \RW9R\_ ^ K_dR9{\_ ^ K_dRĐ9)^_ ^e{9)^RK9^_ ^ ^ _c^R9m^` _ ^ ^ _RX9i\,` ,`c2` ^RV9^\` _ \` ^ _c^RjC9)^}` _ ^R#9)^` _R]9\\` _ ^ K_dRd9\` K_ K_dR9)^` )^ ^RW9d\ a ^ K_ ac]R9\1a ^ K_ aR]9q\Va _ ^ K_ aRd9\va K_ K_ aR\9l\a K_ aRz9\a K_ aR89r^a a _ _c^Q39_a _ K_QT9\b K_ K_Qr9\ b K_ K_Qd 9_:b _ K_Q79^Tb K_ K_R.9W^yb _ ^ K_ ybcb bftm8;cR;\OT;\Jx;\(|;\ d;\g;\va;\a;\;\ ; \(;^0R(9^*c K_Q9_Ic _ K_ ^Qx>9\hc K_ K_ ^QQ9_c _ K_ ^Rca9^c a c ^ _cK_R9^c K_ K_R49 \c K_ cc_R9'\ d K_ cR9_)d _ K_ cR9 \Id K_ c \RWy9[id K_ c \QI9^d _ K_ ^R=9\d )^R09E\d K_ K_ ^R9I_d _ K_ ^R!9N_d _ K_ ^R"9R_e _ _ ^RW9Y\5e K_dR9\Le K_dE9EK_je K_ _(9(K_e K_ K_C9CK_e K_ _ D9 DK_e K_ K_v9<vK_e K_ _ ^R9\f K_ cR*9\%f K_ c \RA9[Ef K_ c \g>gnZpcnc>gcpfhg^g^cKg(Mc(Mcgj`<6g=k<:a=<;a,V \ Qfccccggga[jhkc^ b>h4w c\lrem d\ ? eph^ j)Oh4w k \lrem l \ *O mh^ v3h4w w\lrem x\ 3 yhG  icim\&i jf jf^?-KiKA?g7?^ .?&ino66i(6i6iLA6\c]icL\a^ib]cVia^ib] 15nKivUvjfi jf \ ^Q\j ^ ^RGLaj \RUXa9j a ^QL^Xj a ^ ^ᱣ^vj ^ \k"0k"^j ^ ^^j ^ \2kK2k^j ^ ^ ^ca [c r@4[ @jck gQ @\#k )^ jQ@)^=k )^ jQ@jRk ^Q @jgk ^gm [ \c"cU#cZ#gk wk^ &{klZed '\q (y^ { )kc#c#g#g#cRgPTcPTc#gM$c%c%c#%g%g#%cUTgUcUcR$g(%c:%g%g%g:&g%c-%c1g&gH*gk,g1g-%c1g2g7g1c7g2g4g4g 5D0 /l1;s 1jXlll lg7cl lB 8kmoi :\od ;\B <*m:mkm \ \M; =[GNmTmkmp< >/dmkmcl.( Oep$ PepY Pepq Qy^lZed R\lnb R\lno R\Ry R\ . Ummep ^ \ ep ep. Z nnep kp,nD ^I^,n2nvp:Z _?\HnNnvp:sq `\E\enknvpqsq awW~nnep \Mv bnnep \M6 c&nnep \, d>\nnvp, e,TepnoepM f\o"oep ep,}N gvp:o@ovp, hBvpXo^ovpMzN izro}oep epMB joovp |p l,] kq \oovp lr+u lepo epM) m5Vopvp l p \M5R nap&pvp l, oQf>pIpvp kppC pH2Ypvp \cqmgqp qmcqpglgp ls {*p0-Rtgastsol * {p tlal eplch \lnb l lno \lt p  q#qt ep \ \ \ 3q>qt t,m= tVq\qt,bC \tqzqt,. Qfqqt tMf qqt \ \,f ,lqqtqadd L qqt lqsub Brrt l,;X )p5r;rtM;X *OrZrt pM*  nryrt \,* W"\rrtM+u (rrtMB rrt |p,] ? \rrt,+ 67s stM\ , s+st l,) D5QfCsSst l Qf, sst lM~r Rsst lM stt l,F gQft(tt l ^,.\ 6Qf@tPtt l Qf,$W Qfhtntt,7 Qfttt,rI 1ltttpC @tt \cpgt pgqmctctct tgtgtcUg|Wc|Wc7gR8g7cc8g8gc8g8cW8c:g9c:g[;g;gAAg:cAA  w:,0 3\uuw tMv~ nuuw tMv 5uuw wM 7uvwMB Eavvw |pMv 33v9vwM+u 3MvSvwM5R dgvrvw lM) Ntvvw lM Æivvw lM{s Īuvvw lM Ŕvvw lM !w ww lMF !w,ww lM.\ )@wPww l Qf,Œ Ɏ\hwnww,H iQfwww,rI )AlwwwMC ̵>www \u wwcrucw ru40 \{n w_ w lval \ 4 7xGx\{ w w,_ uw_xexb{,h w}xxb{Mݚ dxx\{ b{M( xx\{ b{M< 赈xx\{ QfMv ;xx\{M+u 7yy\{M "=(y.y\{M_ -5ByRy\{ \ \,rI lljypyb{,` u\yyb{M yy\{M5R &yy\{ lM) nyyb{ lM 'yzb{ lM{s }z$zb{ lM =M8zCzb{ lMF Wzlz\{ l l Qf,f zz\{,H \Qfzzb{,#% @%7zzb{M#% zz\{ ,{ \Qfz{b{, 9 \{!{b{,uH k9{?{b{v $P{\{ \cwch{ wwo {0*d0- 000VT0bX0Hz00z^@ݩd|li\ld\lr \laleplmtlcq\{ lmbw(qy^0ltp4ls8xީ-|3|Tx.@|K|T\yA"X|T ީ{/}000!0 tMul0tInt00n0q00!0>tLsqtRsq0YtSpctSoltGas0000 l[R"A \>} >}cD}z{1j  \a}| ^}b \}~ ^Rk  \} ^Rz ^} jf jf ^ ^ idiv h} \ \R 3a} ^R h ~ \ \R? [\&~ ^ ^R` f^F~ _ ^ ^RTh ^\f~ _ ^ ^Cl ~ ^ ^ ^ ie v\ x~ [Q \~ ^ jQU \~ ^ j \Q8K [~ ^ j \R$u \ ^RN i^5 a K_ ^R- b\P a _R hk \ \R_y $\ ^Q1 \ ^ j \Qݛ [ ^ j \QQl '\ ^ jQl1 \ ^ je5: cA\Q5\! R5<\7 R.5>\M Q5\b R5\x Ry5\  ciR5na a \ Rئ5Ԁ ^ ^Rަ5^ ^ ^ ^ Rz5 ^ ^ R5\9  \ \Rر5#\T  TcZ iR_5 \u R5\ iA,\R5~a a5N ^QO5\ԁ ^Q5\ ^ ^5 e5L  aR]5P\>  a \ ^i5Q5a^ aRī5\y \  ˪c@'2gaʧan'\ \$\(\,\0e\4\8\< ð^cBG=[ ;\cXg[ tc.[gXgZcOgjc3[gOgPcoMg ac8[goMgNYpL\d\ ƴe(٧20٨k8^@\DEaHմ\P;\To\X©^`^hqpDxݬawxw ae\C\\1\z\^\,\YT_} 'Yp} 2 kPX}\'iӫʅ} y7y} 2 \%} yXCN} 2+ cn} y+}82\}Ieφ߆} 2 k3D\}#\ )9} a \" Wg} ^ \U> } ^+)} \ a)ң \·ԇ}+FͰ}+&} y 2+))4} y+[=IT} \+8s8io})d{ӵ\})D}):Dƈш} D).`\}vQ0}+ =e%1_al`\a\b\+lw +9?\,A^ĉʉ,sB]\'E! 7G@1A 2 \H^i I 28Kʳ\,8NK\Њ 2 kIV&  2 k,Yإ\%+,C[ڣ\CIpv\zY \c\c7ccDcg m\dccg c܋__p^n#[ ;h #[$9#[9j^ !~B\_vOB_ ^cj%h=[|o0d|M0\c%hW[Ɍ|oA|MA\ÛC%hq[|oN|MN\ #[#[c!#!4I#[Ij^ cADJDcx#[xj^ Ncmcjfv#[j^ } c  ֍#[j^ O#[ Gh-8#[TZ|ה Z|ܔ _ Ef Kf}__s Xf2~ ^f~% Xf__n __dba__sb^__nb \E__awy__bwyvE)__asy__bsycEkD>I#[I )Er__a__bE__a__bD#[IDʏ#[IDُ#[ID #[x|7egcm $ 3I#[|ӥlmXy#[y|8 <\|d <\ kmx#[ \{x#[3 Ɛݐ#[ݐ~;P" Ah Shw=#[9W *#[ݐ__s*^}aV__sa__c\{a__sa__c\K#[ }fL‘#[j^wё#[j^ f{)Cm^ __pCm^/W>#[>__pV|MC u tZWb#[b `Yv#[__i O UgEcEEŒ-!__f.E-^-Il2~HJ gkK#[  f\'>#[__as> fR]#[o#[j^ 5h #[ݐj^C!Ǔ#[IF֓#[E#[x 5#[~__pmV U3"-t t t~F -t|%zt|4 %ztSW/F#[>__pV3VU`#[>7oz#[z u8#[ $ul9#[ __ncU jfF-ʃt~tFlFQf-pt-ot~>t~4 >t~Û>tC0hG-ʃt~ t:GٗFQf-pt-ot~Pt~4 Pt~ÛPtvG-za G(-Ba|.Za|4 .Za jGGA_Tp^ G L f f[q-t^|E3aG-t1a|.ra|4 .ra_ ͘__pa~a~@ahܘ#[__n 4- a~K"a~ea__a4 4 fHu- a~K"a~ea__au fcy!cHZ!#[ !#[!Ιٙ#[H5FQfA_IItA_OIt~{t~4 {t~Û{t0hCHFQfA_IItA_OIt~t~4 t~ÛtHÚA_IItA_OIt~t~4 t~Ût["-t1t-t|&[t|4 &[t|Û&\tHC-t1t-t|&kt|4 &kt|Û<H-t1t-tA_Tpt~&t~4 &t~Û&t uXЛA_Tpt__a2Л__p2׍W|H2՛ u t"I-pt-ot~kt~4 kt~Ûkt+Y+6#[b <EP#[וg.[[-ʃt-AE:~f~"  P P9#[TI-t1t-t-H!7~&t~4 &t~Û&t~u& uIE-tA_Tpt|%t|4 %t E u:Y|#[__p8__nI<#[וz#[s 7?{ɝߝ#[r  \'x #[g wd ww )#[) wq=\#[tn \d \pk#[ta epc \n \d \;rÞ#[tat pknҞ#[val a\ epm4#[nom U^num U\s Uepg UepnCX#[n c\^og|#[s iep3|#[vj^I-^-Il2-r~H ~;P gk ShcHJJ #[ r*#[* t>U#[__f \_j@y$U߆@@#[U }F@nԠU#[l2Gk@Us@?UsT|Q @@}Us5r@y¡$v@?$>@UUg@ n#[wmsg^$…@==3ʅ@…@ XTTԅ@U2ԅ@P£#[ bufaX\Q߅@ ./߅@>N@eY@/@|>N@e4YX@ TT9$@8#[buf"^ݞu"\4@TTQ Q $ &G^#[__a^ f|@LO@ @ ܋@-8@QGşɌ@ ХߌԌ p@ RZ{@ TǠ@ ϴ@ Toptr^:@?%#["by[f@ xo@"o@ˡw@"Us¦צ#[j^z@W¦@ ;:@"@ q^Ȇ@"Ȇ@$@5@Usq҆@¦ۆ@Us@UsyԴ@09#[~ش@ T@v@v@ ͨ@9v@9v@yUs_#[~է2~ըk@:SUT Q}^~ptr^~u'ш@#[٣@ų0a%E1az2\Ϥi2\3\>?@*X\\R@bcy,e\${@3Ҫj\GS@sqd@Jˈ@UsT @@ Us0@UsT P@@5'S@ qd@Jω@UsT (@Ň@֫UsT @`@Us(@ l#[U(@LDP aY<@~8§ʊ@#[ULDʊ@~\. a^8J@ ƭ#[c\ߨa.]@ a{@u\ݩųa4EaW@UsT X@@#[z@c\ƪ@"\g@~FUs@\Us@rUs@Us@ƭUsԇ@5ή#[U@K##[)bybe@UUh@pC#[by$23y@V֩\~@e@ήUvTs}^߯~u'ʅ؍@;#[$2u\:@^by@ ү@@pU@@Ͱү@pU } $ &# @UvT x@4@UvT x@I@#UvTsQ|nX@f[#[x@Us@Us@Ѳ#[Eǎ@u2\Ў@=ү؎@p!@K\S/@Qq8d_4@JTv3$K@UsT @@UsT @#[ݐ__sh^Џ@M #[a@ɦzfpL4Dί 5aߨ5a16\@ٴi \Ӵ,@% *[KnѲ,@%+Knd,@k<oKQ@U +a@U}T s $ &3$ @U +aT}Q3'@U +aTs3$a}@ 7r}ɵ(@~T0Q:E}^@ 8WU}k@~T0*@ 9H;4@T/a}@ :r}WΓ@~T0Q:a}ߓ@ :"r}{@~T0Q:a}(@ =dr}7@~T0Q:a} @ Gr}@~T0Q:a}c@ Jr}w@~T0Q:g@P\=ٗ@GnoDs@PU|@lU|Ts(@~U|U@U|@U|@ηU|@U|@y i8?@'U|a@EU|Q @l@_U|b@uU|@U|T @%@vF#[X2JD@Usb@UsQ @@#/UsQv@Us@f#[iy@Us@UsN@ֹ&#[.yz0@Us@Us4@F #[ƹ[\@E_'^ښ@eү@pS@hqdں@J@UsT @T6@0@o#[R@UsT H@of@ #[Us@޻үI|@pUUS^@2dq@JUUTT@t@"UU8r\@\@- msga-'@T m@QU1@U1MJ9-Il2~B9__s^ gkDs@Y @뷽+ ~@˛@!KT ~@Q? ˛@+ @ߛ@!KT @Q4 ߛ@f+ h@@!KT h@Q- @+ @@!KT @Q-qJ-^-Il2~H4 gkE#[I__c^! 8#[8__ca^  @ @+ ȹ@!@!KT ȹ@Q@$!@S=3!@Sqؾ(@75 y3@ a=@VK=@"*  ּQ@"Us_@UsT:Œl@5t@' l@E  t@]+ @@!KT @Q1$@S=3@Sqؾ@75e @ V@VK@"*  y@"KUsƜ@UsT:ŒӜ@5ۜ@' Ӝ@E  ۜ@+ H@@!KT H@Q@$@SQ=3@Sqؾ@75  @  @VK @"*  @"Us-@UsT:Œ:@5A?B@' :@E  B@+ @V@!KT @QF$V@S=3V@Sqؾ]@75 bh@ Sr@VKr@"*  @"Us@UsT:Œ@5@' @E  @N+ @@!KT @QE$@S=3@Sqؾĝ@75V ϝ@ ?ٝ@VKٝ@"*  b@"<Us@UsT:Œ@5@' @E  @+ غ@$@!KT غ@Q9$$@SB=3$@Sqؾ+@75 6@ @@VK@@"*  T@"Usb@UsT:Œo@52(w@' o@E  w@+ @@!KT @Q4$@S=3@Sqؾ@75 K@ @@VK@"*  @"Usɞ@UsT:Œ֞@5ޞ@' ֞@E @Uba5a$c\pV@rf@UTTsV@ rTfw@UvTs"@ l\oC;A_Tpt~3t~4 3t~Û3t]5J@J#[h__n8;__s8^=A9#[__nDA_Tpt~pt~4 pt~Ûpt]rJ@~@#[וu?:2__x?V=~@?  It=~@ Dě9\ =~@ 2آ2&9\ڛ]~@KB]~@w̗B]~@TOC7B]~@]x]~@KB]~@,x~@/Tv~@"VAƕXA Y:sZ:U;~@WaTJpm~@ :|~@ =IV~@Xsq~@YĖ~@5ݖYӖ|~@QU3$~@ aě ~@ 2آ2&~@j6:]֜C~@&:u]i~@&5*]~@Ú~@&u]~@&]]5~@th]\ٙ~@ ]~@&~@]~@@/U}Q|3$@*q 0S֜wC@*& 0uSiw@*&50*Sw@*Ú@*&u0Sw@*&]0Sw5@*t0hS\wٙ@*0 Sw@*&@*0Sw@*B@/U|TvQ~3$JI@ oc Y1N@ДTĔS@ tgd|g d|K|%5#[v 5 +?Ia#[ו__xa ZuK\5@G ۪ٟ@Ȯz[ @0$@@W@nٟ@ @y @ʟ@d@ ˫\\  }0p0(6TWTb[ȴyyn\j\5\K|d|\Zd@ kg:d@ Id@ 'Zv@ >k:v@ I3v@ '8@/t%@@АƐi@UsT +a-@XJ/%E{@ АƐ@UT1~ $ &6$s"#8@jC/%@ АHƐ@U x+aTs8@jGN/%p@ А?Ɛz@U x+aTs8@]L/% ע@А1Ɛ~@UTs8@|OI/%c@АƐkm@UTs~@|S/%@А ƐX@UTs~@YXD/%M@ А!ƐW@UTsxh@YPq@ АƐv~@T~@JY~@+ ܋~@-8@>QG(Ɍ@ ߌKԌpp@ R{@ T*@ bȤ@ Tͤ@ ZNӝɝ@dѲ@+)@UT }@Q0<@^eV/I%n@АƐ@UTsx@h3_Ѳ@+3_@UT }@Q0ť@ i2АƐϥ@UTs}ߝ@|Ps:@ I@' Ȧ@TȦ@ ̕Ȧ@Ȧ@}:@p S%IJ@ ěm @ 2آ2m&@Qs@X/%c@ А"Ɛom@UTs8.u@QG=@X?/*%Mҧ@ АtƐܧ@UTs8.@ zQG5=X@]/{%@@АƐJ@UTs8\]@}ccukIg@ mbX@:]\@4ukI@ m b X1@eVyÞߨ@ ܞҞ^@^/%@А/Ɛ|@UTsxʩ@*b)@@x_AF8@9)cc J@UTs0Q3@j,UT ӻ@Qs0%@HU/@QU({@Y/0%Vʪ@ А}ƐԪ@UTs4ܪ@MCTX@?qwg4@pMC@X/%&P@ АMƐZ@UTs8@Y+ @8Tx@Y/%8ǫ@ А[Ɛѫ@Us8T|>@T1>@T8>@> 8܋>@-88G@KQGɌT@ ߌ"ԌGp^@ R{i@ Ti@ 9@ T|@U\@U8@gQG\Ɍ@OߌԌp@ R{Ǭ@ T9^Ǭ@ @ T@ ܋@-|@,@,%@8T|;@u/;@jT@8Tԟ@U @@t@x@xh@UTs8@.y@.yQ1Z@-Us8T @l@NU @t@~@QvU0@uȦ@QUHY@QU @QU Ʃ@QU(5@U @e@Uva[0b]c}ad|Fb]a^Vb]G\|@`G\.j@30a:Xa5az Gyi \Nch \  QfCw Jy >!QfVn@rhfX}@UyThV@rK fp @UyTv!issJ|@5: @8T@mv 8@8Tή@UT~Q@U|TQ8 @QU#@UsT|Q07@ U|J@U|V<@!qr f K@UyTlm@0S @o@`4 @SFUT|$@&=3Ư@$ܯ@*U=3@$@ -=3 @@0=ԟ" ȟ@ ." @ " ܋@-" 3@!K$3@0y=3^ ;@;@0 T@8T$}@ 3=3@@4ԟ ȟ@  @ ܋@- @!K$@4=3 @@4 ΰ@8T$@ 8O=3@$@ ;=3@$/@ >=39@$L@ A=3V@$Ʊ@ F/=3б@$@Gk=3, @@HԟO ȟ@ O @ O ܋@-O @!K$@HS=3 @@H 4@8T$O@ I=3Y@$j@ J=3t@$@L:=3@/̲@ SvH >ֲ@t $ֲ@ T=3@O@0 h@8Tm@4,@8T@HkC@8T@U @@}U @@}U @ȭ@}U @ڭ@}U @@-UyT@@OUyTs!@wUvT}QsQ@UyTs@=@><@f@yܯ@$z@@lzU}@Cz/QyRv0.@@y@y/@yL@zƱ@y@@lzUO@CzQyR0j@y@@y@@Uyų@Uy@Usa^Wb]s{~]\~,]\Vܳ@W@]nbZ@  Dk @+a:@ Ii@ 'iZ@ k *a:@ I +a@ ' +a@U +a@T +aQ@MU @T @+aQ<@U @T *aQP@U *aT0Q0d@U z@T *aQ'5i5iq5iak kK +e d| @+aw \ *aW#\ $+ad| *aa[]  @ na[b]2" @ - @ a[b]^:  @@ a[ b]bI7  @ a[Lb]^ӮSc @ <b @ a[b]hm  @  @ * \  +a\ *aa[b]5sY3  @ a\Hb]"c_  @ 8a\tb]) @ da[b]7  @ . @ a[b]pڮ @  @ ind a *aiܳ *af} ad^K +a9M̉xDM{Q!@R"GR~RR(R%R% 4}C_} ^$A  \g!g ! 5 ^ Ca>J ^R ^e ^ ^i D2eR ^ ^Q.\ ^ ^QPa a ^ ^Q$}a a ^a ^ \R5d\  ^da/ ^ \YY^Q ^ jf [)C[^j R5l\ a ^dQa ^ʐ$ ^caKQ E\ \  ^cs 4l l gh{s Ll l tA\ h ^ ^Q\M1@'+9ư8*XYRint_d?'std!K!RKUe[\]^_` @    3 ` {       < a       6 \ |      1 K e   Yo:\|ã8Xxˏ̦       A0 qT1$d4gR = T S Yveq*_ Y Ylt7_ Y Y3|oR f f 1UK1" f} fF f 1 Ys4 Ablj l f 1FA*l l f 1=cl l 1 v$vKv r1g֋ Yd pC_  r reof$L>(2 rư85x67[;  3W?[+IR@ BF!op̈?R ga\bB g$g5~aF s% QEEdY x,7׈t9 w !' _9 9 R" \Z? dec + hex  f  oct @x ! r "s &ψ )BR , / g 3@d 6 9J\ < J$"E N Qd VH YLK iapp lQ6ate oQin wQout zQ Qcur end  R S T  \( eB h\ iqF d Iljy` !+=+"U8Jv UvDD D R -J#$ Re Y Y%GL {{ Rd%U X{ { Y$L - { Y - ᱣY Y Rk" 0k"Y Y Y Y Y R2k K2kY5 Y Y&Ev @5 H 'bV 'U '  'H7 $()?a *S' +V ,cX ,,>\ '8TR'I] -d .?'^ 'j %Uh  R%Ð - - : %OS S S R - Y -N%iC { Y - %C R -  Y %KR - R%WRR - /%{R - /%Đ - 0{ %K-6 Y - 6  %m-a S Y - 6 %XiRw w }  %V- S - 6 Y%jC Y - %# Y %]\R S - /%dR /% 6 - %WdRV - V E %R| - V %]qR S - V %dR V %\lR V %zR V %8r- { Y 6 $3S 1 S $TRK $rRe $d S  S $7- %.W- S -   1tm8Y'RR'OTR'JxR'(|R 'dR'gR'vaR'aR'R '('Y0%(-o $S  S -$x>R -$QS  S -%ca- {  - 6  %- %4-- 4mS %UU 4(%S | S 4% 4 RP%Wy8 4 R$I- S -%=R %0ER -%IS 8 S -%!NS X S -%"RS x S Y -%WYR /%R /EE  Y ((  CC  Y  D D  v<v D Y -2  ,1-Q 73Bz:M3id;M3>?3@@M R KW73Bz:3id;3>?3@@M 8 pj7:3Bz:_3id;_3>?3@@M d "Q7|3Bz:3id;3>?3@@M 94D}73Bz:3id;3>?3@@M % 4m%* 4 RK%A$$ 4 R6'8'F2!7S58c6v6pv6 j`6'=k:{'=;{',VA{'4G{'.aH{ '9kI{('=J{0'(VK{8'L{@'43M{H'NdP'OdQ'TQdR'SdS'fUdT'bTWdU'vg^dV'd_dW'PbdX'ddY'bfdZ'^Thd['rgod\'dpd]$$}{ R Y7hxԃ(R8 " R_8r48#$ RB $݋ \ $q Y$  Y99o*d- VTbXHz0z:C8 ;&-Y.?i1@'?5@@AB?@tCU +aDS@;CT +aEQ-.?vFx   aGd H +aỈxJ{K!@K"IF~LQ(I%M%NAR  % U$ > : ; I&I$ >  I9: ; : ;  : ;  : ;  : ;  : ; (  : ; I8 9: ; .?: ; n<I.?: ; nI<.?: ; nI<.?: ;nI<.?: ;nI<.?: ;nI< : ; I8 2 : ; I2 .?: ; 2 <dI4.?: ; 2 <d : ;I8 .?: ;<d .?4<d! : ;I?2 <" : ; I8 # : ; I?<$.?: ; nI<%.?: ; nI<d&.?: ; n<d'.?: ;n<d(.?: ;nI<d).?: ;nI<d*.?: ;n<+.?: ;nI<,.?: ;2 <d-.?: ; 2 <cd..?: ;nI2 <d/.?: ;nI2 <d0.?: ;n2 <d1.?: ; nI2 <d2/I3<4 : ; 5<6 : ;2 7 : ;I?<8.?: ;2 <d9: ;I2 : : ;I?2 < ; : ;I?2 < < : ;I?2 <=.?: ; L 2 <d>.?: ; nI2 <d?.?: ; <@.?: ; I<A.?: ; I<B.?: ; nI<C.?: ; <dD/IE.?4<dF : ; 2 G : ;H : ;2 I0I J: ;IK : ;I8 2 L.?: ;nI2 <M.?: ; <cdN<O.?: ; 2 <dP.?: ; 2 <cdQ.?42 <dR : ; 2 S.?: ; n2 <dT.?: ;2 <cdU.?: ;I<V.?: ;I<W.?: ;L 2 <dX.?: ; n2 <dY.?L 42 <dZ.?: ; nI2 <d[.?: ; <\4: ; nI?<]4: ; I<^.?: ; n<_&` a : ; nb : ; c : ; IdIe!I/ fg.?: ;I<h : ; i9: ; j.: ; I<k:: ; l Im.?: ; I<no!p : ; I8 q.?42 <dr : ; I8 2 s.?: ; n2 <dt.?: ; nI2 <u : ; nv( w.?: ;n2 <dx : ;yIz{.?: ;I<|.?: ;<}.G ~ 4: ; I.G dI4.: ; I 4: ; I5I: ; I: ;I4: ;I: ;I: ; I.?: ; I 4: ;I.G: ; d.G .G: ; d.?: ;  .1n@dB11X Y 1X Y1X Y1X Y  411B.G: ; @dBI4: ; I4: ; I1.?: ; nI@B1.G: ; @B1.G: ;@dB: ;I4: ;I1RUX Y1.?: ;nI@B: ; I: ;II44: ;I 4: ;I.?: ;I .1n@B: ;I.G@dB 4: ;I U41 1RUX Y 1RUX Y1RUX Y 4: ; I1 41 U4: ;I.4 .4@B14: ; I?4: ;I?<4I?4<4G4Gn 4Gn4Gn 4Gn4Gn.?nI4<.?n4<.?I4<.?: ; I<.?4<.?I4<% U9: ;  : ;  : ; I8 9: ; : ; : ; : ; I .?: ; n< I &I .?: ; nI<.?: ; nI<.?: ;nI<.?: ;nI<.?: ;nI< : ; I8 2 : ; I2 .?: ; 2 <dI4.?: ; 2 <d : ; : ;I8 .?: ;<d.?4<d : ;I?2 < : ; I8  : ; I?<.?: ; nI< .?: ; nI<d!.?: ; n<d".?: ;n<d#.?: ;nI<d$.?: ;nI<d%.?: ;n<&.?: ;nI<'.?: ;2 <d(.?: ; 2 <cd).?: ;nI2 <d*.?: ;nI2 <d+.?: ;n2 <d,.?: ; nI2 <d-/I.</ : ; 0( 1<2 : ;2 3 : ;I?<4.?: ;2 <d5: ;I2 6 : ;I?2 < 7 : ;I?2 < 8 : ;I?2 <9.?: ; L 2 <d:.?: ; nI2 <d;.?: ; nI2 <d<.?: ;n<d=.?: ; <>.?: ; I<?.?: ; nI<@.?: ; <dA/IB<C : ; 2 D : ;E : ;2 F0I G: ;IH : ;I8 2 I.?: ;nI2 <J.?: ; 2 <dK.?: ; 2 <cdL.?: ; n<dM.?: ; n2 <dN.?: ;2 <cdO.?: ;I<P.?: ;L 2 <dQ.?: ; I<R.?: ;I<S.?: ; <T4: ; nI?<U4: ; nI?<V4: ; I<W.?: ; n<X9: ; Y.: ; I<Z$ > [$ > \:: ; ] ^ : ; n_ : ; ` : ; IaIb!I/ c Ide.?: ;I<f : ; g Ih&i.?: ; I<jk!l : ; I8 mIn: ; o : ; I8 2 p.?: ; n2 <dq.?: ; n2 <dr.?: ; nI2 <s : ; nt( u.?42 <dv.?: ;n2 <dw : ;x.?4<dy.?I4<dz{.?: ; I |: ; I}.?: ;I ~: ;I.?: ;I<.?: ;< : ;  : ; I8 2 .?42 <d.?: ;nL M2 <d.?: ;nIL M2 <d I8 42 .?: ; nL M2 <d.?: ; nIL M2 <d I.G  4: ; I.G dI4.: ; I 4: ; I5I: ;I: ; I.G: ; d.G: ; d.G 4: ;I .1n@dB1.G@dBI4I4: ;IBB11X Y 1: ;I1X Y111I1X Y 1 1RUX Y 1X Y1RUX Y 41.?: ; 4: ;I4: ;I 4: ;I4: ;I  U4: ;I : ; : ;4: ; I.1n@B.?: ; nI@B.?: ; nI@B: ; I.?: ; n@B: ; I1RUX Y.?: ;nI@B1RUX Y 4: ; I.?: ;I@B4: ;I U.4 .4@B14: ; I?<4: ; I?4: ;I?!I/4: ; I?4I?4<4G4Gn 4Gn4Gn 4Gn4Gn.?nI4<.?n4<.?I4<% : ; I$ > &I$ >  I9: ; : ;  : ; 9: ;  : ;  .?: ; n< I.?: ; nI<.?: ; nI<.?: ;nI<.?: ;nI<.?: ;nI< : ; ( < : ;2  : ;I?<.?: ;2 <dI4.?: ;2 <d: ; I2  : ;I?2 <  : ;I?2 <  : ;I?2 <: ;I2 /I!4: ; nI?<"4: ; I<#&$.?: ; I<%.?: ;I<&<' : ; I8 ( ): ;I* : ; n+ : ; , : ; I-I.!I/ /0.?: ;I<1 : ; 29: ; 3 : ; I?<4 : ; 5:: ; 6 I7.?: ; I<89 : ;: : ;; : ;I8 <.4 =: ; I>.4@B?1X Y @1A1 BCBD1EF4: ; I?G4I?4<H4GI4Gn J4GnK4Gn L4GnM4GnN.?I4<& /usr/include/c++/4.8/usr/include/c++/4.8/bits/usr/include/c++/4.8/ext/usr/lib/gcc/x86_64-linux-gnu/4.8/include/usr/include/x86_64-linux-gnu/c++/4.8/bits/usr/include/usr/include/c++/4.8/debug/usr/include/x86_64-linux-gnu/bitssstreambasic_string.hatomicity.hstreambufchemeq.ccstl_tree.hostreamchemeq.hios_base.hbasic_ios.hchar_traits.hstl_vector.hvector.tccnew_allocator.hstl_algobase.hstl_iterator.hbasic_string.tccstl_iterator_base_funcs.histreamstl_pair.hstl_map.hiostreamcstringcwcharcpp_type_traits.hstl_iterator_base_types.hstddef.hc++config.hclocaleallocator.hstringfwd.hcwctypeostream.tccstl_construct.hstl_uninitialized.hstl_function.hiosfwdcstdlibbasic_ios.tccmove.hostream_insert.hpostypes.hfunctexcept.hstring.hstdio.hwchar.htime.hnumeric_traits.halloc_traits.htype_traits.hdebug.hlocale.htypes.hatomic_word.hwctype.hstdlib.hstdlib-float.hgthr-default.hnewmathcalls.h D}@?tJ}J~J`=f.NM~ }@?tJ}J~J`=f.NM~  (@ J{fJn} *~X| ]؟Xg[=gtJfmf} f } zf tt}} J} f} Zf|<JY } zf tt}X|&JX| Jf} | JXf} u<J   5f ~}J<}JJ f~\! Y| zu } zf t}} } } L0P;z. t   YXKytKytKy<t!yJ|K.!yJ|K."Y""K#J0LuWu%!ZLYuyX1Kt%> }.f|J z$ t\ֻ~ }} <|XZ f~JY z~< }J y z| }AX ?AX~ ._'1*}I;}  if} ]$f}&tY } zf tt}t|X}X~}J~J`=f. ~}J~J`=f.Nx R|X}J~J`=f.N  B. q.&X|JJ nXo ~.X|JX npX}J~J`=fN,X}J~J`=f.NXX}J~J`=fN,J}J~J`=fN~.J~vX|JJ npf}J~J`=fN,J}J~J`=f.N~ f~ f~&tY } zf tt~^J} ~ L t~-Z f~[f~ |J} ~ J~  t-Z f[f~ |J~  t-Z f[f~ ~ /  t\~/.{J<{fJzX~J |qJ>ʓ/<} fLZv.X}J~J`=f.N:X}J}J~J`=f.NK<Xx t~!}J f~[X }.e'4*J}X<e} .jXX~|J|JX nfXp<~ |t|}~}J~J`=f. ~}J~J`=f.NxJU~|J}J~J`=f.J{ 7fX}}X xJ ~@j~ LJuY ~ | K| { ~@ ~ AY [Y/ J ~<AX X=K {< {  x @Z{~JJ}J~J`=f.N~]Z  @@\ Cz  JX~f[*f0J}*f0  @ fLzX<|JJ |qJ?ex^}JXZ @ y<JU=wf<|JJ |qJhyJJytJUXMewfJ|J< |tqJ>.Lwt|XJ |.qJhK;vJ |qJ>ʓ.O:kڃ5 /usr/include/usr/include/c++/4.8/usr/include/c++/4.8/bits/usr/include/c++/4.8/ext/usr/include/x86_64-linux-gnu/bits/usr/include/x86_64-linux-gnu/c++/4.8/bits/usr/include/c++/4.8/debug/usr/lib/gcc/x86_64-linux-gnu/4.8/includeFlexLexer.hchemlex.ccostreambasic_ios.hios_base.hchemeq.ybasic_string.hatomicity.hchemeq.hchemeq.lchar_traits.hstdlib.hstdlib-float.hstring.hlocale_facets.hvector.tccnew_allocator.hstl_algobase.hstl_vector.hstl_iterator.hchemparser.ccsstreamiostreamcpp_type_traits.hstl_iterator_base_types.hcwcharc++config.hallocator.hclocalebasic_string.tcccstringstringfwd.hcwctypeostream.tccistreamstreambufstl_construct.hstl_uninitialized.hstl_tree.hstl_pair.hstl_function.hstl_map.hiosfwdcstdlibcstdiostl_iterator_base_funcs.hpostypes.hostream_insert.hnumeric_traits.halloc_traits.htype_traits.hdebug.hstdio.hlibio.hstddef.hwchar.hfunctexcept.htime.hlocale.htypes.hatomic_word.h_G_config.hwctype.hstdio.hgthr-default.hnewerrno.hgetopt.h j@> @@f/ZXYYKKs {KxtJJWX\ZxtJJW[= 1KfL[vf}|ׄN=" [$3[hvKx{XPr=_)0 ofh[_r ft{K/كu>=>=Y$rDM=v꽭11MvjZY#>LKqwjKJgc$ 5 ~ 5 ~<"-------X=X f J ZM]Y\" ֠=]CʄYY\YY^KX[_Y[=#mX[=$utgfXLu"uwKɮ!18 KY[RY[KYtXK XJ}PZ <t|YXgg}L<t|YXgg}L<t|YXgg}L<t|YXgg}L<t|YXgg}L<t|YXgg}L<t|YXgg}}3a t`X Xt&xxX lt^ty<J @J}J~J`=f.~JJ~ Դ@wJ  @u  ~@j~LJuY~|K|{~@~AY[Y/J~<AXX=K{<{xY2 /usr/include/c++/4.8/usr/lib/gcc/x86_64-linux-gnu/4.8/include/usr/include/c++/4.8/bits/usr/include/x86_64-linux-gnu/c++/4.8/bits/usr/include/usr/include/c++/4.8/ext/usr/include/c++/4.8/debug/usr/include/x86_64-linux-gnu/bitsmendeleiev.ciostreamcstringcwcharstddef.hchar_traits.hc++config.hclocaleios_base.hcwctypeiosfwdstring.hstdio.hwchar.htime.hnew_allocator.hnumeric_traits.hdebug.hlocale.htypes.hatomic_word.hwctype.hchemeq.h 1@Jvector >wcspbrk_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE8allocateEmPKvlconv_S_showpoint_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEmIERKlGNU C++ 4.8.2 -mtune=generic -march=x86-64 -g -O1_Val_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11equal_rangeERS3__ZNK6Chemeq6valeurEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13_Rb_tree_implIS6_Lb0EE13_M_initializeEv_ZNSs12_M_leak_hardEv__it_ZNSt6vectorIP5MolecSaIS1_EE6insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__Key_Const_Base_ptrnot_eofprintNernsttm_sec_S_ios_iostate_end_ZNK6Chemeq10nbelectronEvfwideiostate_ZNK6Membre11printweightERSobasic_ostringstream, std::allocator >int_p_sep_by_space_ZSt20__throw_out_of_rangePKcbasic_string_ZNK5Molec6weightEv_ZNKSs8capacityEv__endpptr_ZNSs6resizeEmc_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_S_leftEPKSt18_Rb_tree_node_base__miter_base<__gnu_cxx::__normal_iterator > >_ZN6Chemeq6triageEv_ZNSs5clearEvchemeq.cc_S_maximum_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE7addressERKS3__Value_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmmEi__copy_move_a_ZN10AtomeListe6triageEPS__Tp1allocator, float> > >__copy_move_b__gnu_cxx_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmmEv__copy_move_backward_a_ZN9__gnu_cxx13new_allocatorIcE10deallocateEPcm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_rightEPSt18_Rb_tree_node_basepair, std::allocator >, float> >, std::_Rb_tree_iterator, std::allocator >, float> > >_ZNKSs4findEcmcste_ZNSs4_Rep7_M_grabERKSaIcES2__M_refcopyiterator_traitsunary_function, std::allocator >, float>, const std::basic_string, std::allocator > >_ZNKSt17_Rb_tree_iteratorISt4pairIKSsfEEeqERKS3__ZN6Chemeq11printNernstERSoS0_b_S_ate_Rb_tree_const_iterator__exchange_and_add_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE2atERS3__ZN5Molec3addE8fractionwcscpyreverse_iterator, std::allocator >, float> > >__first2mapped_type_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_rightEPKSt18_Rb_tree_node_base_ZNSt6vectorIP5MolecSaIS1_EE4rendEvoperator+, std::allocator >overflow_arg_area~pair_ZNSs13_S_copy_charsEPcS_S__ZNSt11char_traitsIcE4findEPKcmRS1_SYMBOL_ZN9__gnu_cxx13new_allocatorIP5MolecE8allocateEmPKv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE17_S_select_on_copyERKS3_iswctype_ZN9__gnu_cxx17__normal_iteratorIPcSsEppEi_M_refcount_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEmiERKl__last_Ios_Fmtflags__osize_ZNSt6vectorIP5MolecSaIS1_EE5clearEv__n1__n2__vtt_parmstrtodconst_pointer__numeric_traits_integer_ZN9__gnu_cxx13new_allocatorIcE7destroyEPc_ZNKSt6vectorIP5MolecSaIS1_EE4dataEv_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE3endEv__equal_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE10value_compEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS2_ESC_RS1__M_check_lengthtowctransWEIGHT_M_create_storageoperator!=, std::allocator >_ZNSt18_Rb_tree_node_base10_S_maximumEPKS___uninit_copy<__gnu_cxx::__normal_iterator >, Molec**>tm_isdstmap, std::allocator >, float, std::less, std::allocator > >, std::allocator, std::allocator >, float> > >wcstold_Rep_typewcstoll_M_end_of_storage_ZNSs6rbeginEv_M_impl_S_decatoi_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4sizeEvmbrtowc_M_pstrcoll_M_t_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEixERKlwcsspn_ZNK10AtomeListe6compteER8Compteur8fraction__os/home/georgesk/developpement/chemeq/chemeq-2.12/src_Ios_Openmode_ZNK5Molec5eqMolEPKS__ZNKSt6vectorIP5MolecSaIS1_EE4sizeEvstrrchr_ZN6Chemeq9subChemeqEPKS__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_rightmostEv__debug~_Rb_tree_impl__alloc_traits >__niter_base_ZNSsC2IPcEET_S1_RKSaIcE_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_valueEPKSt18_Rb_tree_node_base__string_typesetlocale_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs_ZNKSs7_M_dataEvvwscanf_ZNKSt6vectorIP5MolecSaIS1_EE3endEv_Znwmgetmolecularite_M_erase_at_end~basic_streambuf_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE7destroyERS3_PS2__ZNSt10_Iter_baseISt23_Rb_tree_const_iteratorISt4pairIKSsfEELb0EE7_S_baseES4_replace_S_showbasebasic_istream >_ZNSt6vectorIP5MolecSaIS1_EE6rbeginEv_ZNKSs6_M_repEv~basic_ios_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4swapERS8__Rep_base_S_octwcsxfrm_ZNSsaSEc_ZNKSt17_Rb_tree_iteratorISt4pairIKSsfEEneERKS3__ZNKSs4findERKSsmrdstate_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate_ZNKSs7_M_iendEv__after_M_node_count_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2___resmax_Rb_tree, std::allocator >, std::pair, std::allocator >, float>, std::_Select1st, std::allocator >, float> >, std::less, std::allocator > >, std::allocator, std::allocator >, float> > >_ZNSs14_M_replace_auxEmmmcvalue_type__in_chrg_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7addressERKS5__ZNSs5beginEvreverse_iterator<__gnu_cxx::__normal_iterator, std::allocator > > >_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_S_keyEPKSt18_Rb_tree_node_base__lenlldiv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_upper_boundEPKSt13_Rb_tree_nodeIS2_ESC_RS1__ZN9__gnu_cxx17__normal_iteratorIPKcSsEpLERKluninitialized_copy<__gnu_cxx::__normal_iterator >, Molec**>_S_select_on_copy__s1_ZNK5Molec5listeEv_S_internal_S_empty_rep_HasBase_Tp_alloc_type__s2_ZNSt11char_traitsIcE4copyEPcPKcm_ZlsRSoRK5Molec_ZNKSt10_Select1stISt4pairIKSsfEEclERS2__ZNK5Molec6compteER8Compteur_ZSt17__throw_bad_allocv_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEcbinary_function, std::allocator >, std::basic_string, std::allocator >, bool>_S_eofbit_ZNSt6vectorIP5MolecSaIS1_EE7reserveEm__uninitialized_copy_a<__gnu_cxx::__normal_iterator >, Molec**, Molec*>_ZNSt12_Vector_baseIP5MolecSaIS1_EE12_Vector_impl12_M_swap_dataERS4_~basic_stringstreamisEqual_Iter_base__initialize_p__copy_mint_frac_digitsnormalise_M_destroy_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6rbeginEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_rightmostEvrfind_ZN5Molec5coeffE8fraction_ZNKSs15_M_check_lengthEmmPKcwcstof_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEEaSERKS6_wcstokwcstol_ZNKSs6substrEmm_M_swap_data__x_copyoperator new_ZN5Molec15printNernstWIMSERSob_S_construct_aux_2_ZNK6Membre5redoxEv_ZNKSt10_Select1stISt4pairIKSsfEEclERKS2__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11upper_boundERS1___first_ZN5Molec6numeroEiaddcomma__rhs_ZNKSs9_M_ibeginEv_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEE13_M_const_castEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE3endEv_ZN6Chemeq9equilibreEv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE10deallocateERS3_PS2_m_S_scientific_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsE_Allocator_ZNKSt6vectorIP5MolecSaIS1_EE5frontEv_ZNKSs4copyEPcmm_Destroy_auxoperator&_S_blackoperator*_ZNSs6insertEmRKSsoperator-_ZN6Membre5coeffE8fraction__gnu_debugwmemmovewmemset_ZN9__gnu_cxx24__numeric_traits_integerIcE5__maxEoperator=__beg_Self_ZNK5Molec6numeroEvstrpbrk_ZNSs12_S_empty_repEv_Atomic_word_ZNSs6assignERKSsbasic_ios >_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEppEiputwchar_ZNK9__gnu_cxx17__normal_iteratorIPcSsEdeEv_ZNSs4_Rep8_M_cloneERKSaIcEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_leftmostEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS2_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEppEi_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcEsuiv_Unwind_Resume_ZNSs6appendEPKcoperator|_M_allocateto_char_type_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostateconstante_ZNKSs8_M_limitEmm_ZNK6Chemeq9constanteEv_ZNSt6vectorIP5MolecSaIS1_EE4backEv__exchange_and_add_dispatch__copy_move_backwardsubstr_ZN9__gnu_cxx24__numeric_traits_integerIlE5__maxEinfo_ZN10AtomeListe15setmoleculariteEi_ZNKSs4_Rep12_M_is_sharedEv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE10_S_on_swapERS3_S5__ZNK5Molec12printspeciesERSob_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc_ZN6Chemeq9printnormERSo_M_refdata11__mbstate_t_S_synced_with_stdiounsigned char_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE8allocateERS3_m_ZNK9__gnu_cxx13new_allocatorIP5MolecE8max_sizeEv_ZNK6Chemeq9printelecERSo_ZNSt17_Rb_tree_iteratorISt4pairIKSsfEEmmEirandom_access_iterator_tag__distance_M_create_node_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_minimumEPSt18_Rb_tree_node_basewcslen_ZNKSs13find_first_ofEPKcmfloat_Arg_ZN5Molec6triageEv_ZNKSs7compareEmmPKcm_ZN9__gnu_cxx24__numeric_traits_integerIsE5__maxE_Zmli8fraction_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1__ZNK5Molec6typageEv_M_set_length_and_sharable_ZN6Membre15printNernstWIMSERSobprintcount_ZNSs4_Rep26_M_set_length_and_sharableEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_valueEPKSt13_Rb_tree_nodeIS2_E_ZNSt11char_traitsIcE2eqERKcS2__ZNKSt6vectorIP5MolecSaIS1_EE8capacityEv_M_check_ZN5Molec6typageE7moltypenumerosignature_ZNSs9_M_assignEPcmc__beforeoperator==, float, std::less >, std::allocator, float> > >_M_insert__ZSt4cout_S_fixed_ZNK9__gnu_cxx17__normal_iteratorIPKcSsE4baseEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5beginEv_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE8max_sizeEvrend_ZNSs18_S_construct_aux_2EmcRKSaIcE_ZNSs4_Rep10_M_refcopyEv_S_cur~_Rb_tree_ZNK5Molec6nombreEv_ZNK5Molec11printNombreERSo__priority_ZNSs7_M_copyEPcPKcm_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2__ZNKSs7compareEPKc__uninitialized_copy_a_ZNKSs16find_last_not_ofEcm_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_wctombwcsftime_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE16_M_insert_equal_ESt23_Rb_tree_const_iteratorIS2_ERKS2__ZNSolsEd_ZNSolsEe_ZNSolsEf_ZlsRSoRK10AtomeListeeqMol_ZNSolsEi_ZNKSs2atEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EEaSERKS8__ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEE4baseEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5__ZN8fraction9simplifieEv_M_iend_ZNK9__gnu_cxx17__normal_iteratorIPcSsEmiERKlsize_type_ZNSt6vectorIP5MolecSaIS1_EE4swapERS3__ZNK9__gnu_cxx13new_allocatorIP5MolecE7addressERKS2__ZNSt23_Rb_tree_const_iteratorISt4pairIKSsfEEppEi_ZN9__gnu_cxx13new_allocatorIP5MolecE10deallocateEPS2_m_ZNSspLERKSs~basic_istreamfindMol_S_create_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsfEEppEv_ZmiR6MembreS0__ZNSt17_Rb_tree_iteratorISt4pairIKSsfEEmmEvstrtold_InputIteratoroperator==, float>_ZNK5Molec10nbelectronEvstrtoll_Rb_tree_iterator, std::allocator >, float> >_ZNK10AtomeListe5debugEi_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt17_Rb_tree_iteratorIS2_ESA__ZNSt11char_traitsIcE7not_eofERKi_M_get_insert_hint_unique_posoperator< >negative_sign_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_leftmostEv_ZN6Membre6triageEv_Zne8fractioni~basic_stringwcscat_Result_ZN6Membre8numeroteEvother7lldiv_t_ZN6Membre7findMolEPK5Molecwcstod~vector_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEE4baseEv_M_move__ret__normal_iterator > >int_curr_symbolnew_allocator_ZlsRSoRK6Chemeq_ZNKSs7compareERKSs_ZN6Membre9addMembreEPKS__ZN6Chemeq8multiplyEii_ZNK5Molec10printcountERSobcommuns_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE9constructEPS3_RKS3__ZNK9__gnu_cxx13new_allocatorIcE7addressERc_Pair_ZNKSt17_Rb_tree_iteratorISt4pairIKSsfEEdeEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8max_sizeEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_minimumEPKSt18_Rb_tree_node_base_ZNK5Molec9signatureEv_M_clonesetmolecularite_M_replace_safe_ZN6Membre9eraseNullEvdiff__state_ZNSs6appendERKSsmm~_Vector_implreg_save_area_ZNSs6appendERKSs_ZNSt6vectorIP5MolecSaIS1_EEaSERKS3__M_ibegin_II2iselectronclear_ZNSt11char_traitsIcE2ltERKcS2_wcscspn_S_end_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev__addressof, float> >__ioinit_ZNSs6assignERKSsmm_Rb_tree_decrement_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5clearEvoperator!=_Zmi8fractionS___count~Membre_M_insert_equal_lower_ZNKSs8_M_checkEmPKc_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEpLERKlfront__niter_base, float> > >~Init_ZNKSs17find_first_not_ofEPKcm_M_leftmost_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseERS3__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_copyEPKSt13_Rb_tree_nodeIS2_EPSA_maxprem_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE_M_current_ZNSt6vectorIP5MolecSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEEdeEv_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmcinverse_M_grab_M_is_shared_M_fill_insert_ZN6Chemeq8numeroteEv_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS3_SaIS3_EEEELb1EE7_S_baseES9__ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEmmEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11upper_boundERS1__ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_M_endEv_ZN6Chemeq6coeff1Ev_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE8key_compEvliste_Destroy_S_empty_rep_storagewctobmon_thousands_sep_M_assign_ZN9__gnu_cxx13new_allocatorIcE9constructEPcRKc_S_max_size_M_fill_assign_ZNK5Molec9printnormERSowantedlatex__wchb_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_Ewcsncmpfind_last_not_of_ZNK10AtomeListe15getmoleculariteEv_ZNK6Membre5debugEi_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEptEv_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEixERKl_S_boolalpha_M_check_lenoperator<< >_M_insert_lowerwint_t_ZNKSs12find_last_ofEPKcmmblen_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS2_E_ZNKSs5rfindEcm_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv_ZNKSs13get_allocatorEv__digits__k2_S_base_ZNKSs6lengthEv_S_leftrbegin_ZNK5Molec5debugEi_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5countERS3_wcstoull__cxa_atexit_ZNK6Membre10nbelectronEv_M_copy__pos_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseEPS1_S9__ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEplERKl_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_S_keyEPKSt13_Rb_tree_nodeIS2_E_ZNKSs4findEPKcm_S_ios_fmtflags_end_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv_ZNKSs16find_last_not_ofEPKcm__out_ZN5Molec3subE8fractioncompte_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS2_Echargefputwc_ZNSt11char_traitsIcE11eq_int_typeERKiS2__ZNSs4_Rep10_M_disposeERKSaIcE_ZNSs6appendEmc_ZNKSs5c_strEv_ZNKSsixEmfputws_ZNSs4_Rep10_M_destroyERKSaIcEwcsstr_ZlsRSoRK8Compteur_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE8max_sizeEvsymbole_M_destroy_node_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5clearEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm__ptr_ZNSs2atEm_S_badbit_ZNKSs11_M_disjunctEPKc_Container_ZNKSs6rbeginEv_ZNK10AtomeListe2sqEvreverse_iterator<__gnu_cxx::__normal_iterator, std::allocator > > >wcschr_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4findERS1_constructbasic_iostream >_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7addressERS5__S_outget_allocator_S_right__testoffbasic_ostream >__copy_move_backward_a2_ZN8fraction7inverseEv_M_limit_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_address_Rb_tree_colorequal_rangeless, std::allocator > >valeur_latex_M_insert_unique___arg_ZNK9__gnu_cxx13new_allocatorIcE8max_sizeEvkey_typeredox_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_get_Node_allocatorEvoperator>, std::allocator >nbelectron_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11lower_boundERS1__ZNK10AtomeListe7symboleEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE28_M_get_insert_hint_equal_posESt23_Rb_tree_const_iteratorIS2_ERS1__ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4findERS1__ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4sizeEvstrtoul_M_get_nodeopenmode_ZNSt11char_traitsIcE6lengthEPKc_ZNSt11char_traitsIcE12to_char_typeERKi_ZNKSs12find_last_ofEcm_ZNSspLEPKciterator_traits_S_red__enable_ifmbrlenbasic_stringstream, std::allocator >strerroroperator[]_Iter_base<__gnu_cxx::__normal_iterator > >, true>_ZNSt11char_traitsIcE3eofEvstrxfrm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_beginEv_ZNK6Chemeq11printweightERSo_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE3endEv_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5beginEv_ZNKSs3endEv_ZNSo9_M_insertIdEERSoT___valwcstombs_M_end_ZNKSs4findEPKcmm__tmpwchar_t_Z12mendelweightPKc_ZNKSs13find_first_ofEcm_S_construct_auxsetsuivant_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEdeEvallocator_type_ZNSs3endEv__typepop_back_M_insert_Zpl8fractionS__ZNSs6insertEmmc6ldiv_t_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEmmEi__gthread_active_ptr_M_erase_aux_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmmEi_ZNSs7replaceEmmRKSsmm_ZNK9__gnu_cxx17__normal_iteratorIPcSsE4baseEv_ZNSo9_M_insertIeEERSoT___str_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11lower_boundERS1__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_M_endEv_ZNSs16_S_construct_auxIPcEES0_T_S1_RKSaIcESt12__false_type__numeric_traits_integer_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE7addressERS3_wcsncpy_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11equal_rangeERS1__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6rbeginEvaqueousprintnorm_S_skipws_S_hex_Select1st, std::allocator >, float> >_ZNKSs8max_sizeEvpbase_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEpLERKl_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4swapERS6___iterator_category_ZNKSt6vectorIP5MolecSaIS1_EE5beginEv_ZNSs6insertEmPKcm_ZNSt11char_traitsIcE6assignERcRKc_ZN10AtomeListe6groupeEv_M_mutatetm_minMELTINGint_n_sep_by_spacechar_traits_M_node_Destroywcscmp_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEixERKl__equal_aux, float> >, std::_Rb_tree_const_iterator, float> > >_M_color_Rb_tree_insert_and_rebalance_ZNSs6assignEPKcmstrtokstrtolfp_offsetoperator==_ZNK9__gnu_cxx13new_allocatorIP5MolecE7addressERS2_mbsrtowcsmon_grouping_ZNK10AtomeListe10printcountERSoRK8fractionigp_offset_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS2_E_ZNSs7replaceEmmmc_ZNSs6insertEmRKSsmm_S_value_M_lower_boundvfwprintfiswater__throw_logic_errorstreamsize__numeric_traits_integer_ZN10AtomeListe2sqEi_KeyOfValuereverse_iterator<__gnu_cxx::__normal_iterator > > >mbsinitfind_first_not_of_ZNSs7_M_leakEvsizetype_M_leaktypage__builtin_memcmp_M_key_compareBOILING_ZNK8CompteurlsERSo__addressof, float> >_M_upper_bound_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5beginEv_M_get_insert_hint_equal_pos_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseESt17_Rb_tree_iteratorIS4_ES8___builtin_memmovegroup_ZNKSs5beginEvshort unsigned int_ZN9__gnu_cxx13new_allocatorIcE8allocateEmPKv_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEppEv_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED2Ev_ZNKSs12find_last_ofEPKcmm_Iter_base, std::allocator >, float> >, false>_ZNKSs5rfindEPKcmthis_ZNKSt6vectorIP5MolecSaIS1_EE12_M_check_lenEmPKc_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_get_Node_allocatorEvkey_comp_M_const_castdifference_typeptrdiff_t_M_initialize_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE8max_sizeEvprintNernstWIMS_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11lower_boundERS3__M_replace_aux_ZNKSt6vectorIP5MolecSaIS1_EE4rendEvprintNombre__throw_out_of_rangevwprintf_S_floatfield_ZNKSt6vectorIP5MolecSaIS1_EE14_M_range_checkEm_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsfEEmmEi_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6rbeginEv_Num_ZNKSs5emptyEv_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsfEEmmEvmendelweightresizevswprintf_ZNK9__gnu_cxx17__normal_iteratorIPcSsEptEv_ZNSt6vectorIP5MolecSaIS1_EE3endEv_ZNSs6assignEmc_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11lower_boundERS3__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_insert_equalERKS2__ZNK9__gnu_cxx17__normal_iteratorIPKcSsEdeEvsecond_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt23_Rb_tree_const_iteratorIS2_E_FwdIteratormembredroitmultiply_ZNKSt17_Rb_tree_iteratorISt4pairIKSsfEEptEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE23_M_get_insert_equal_posERS1__ZNSs6insertEmPKc_Zgt8fractioni_M_header~basic_ostreammbstowcs_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE8allocateEmPKventhalpy_ZNSt6vectorIP5MolecSaIS1_EE5frontEv_ZNSsixEm_ZNK10AtomeListe9printnormERSocurrency_symbol_M_rep_ZNK6Membre6compteER8Compteurwcsrtombs_M_erasetm_wday_S_intm_ydayequal, float> >, std::_Rb_tree_const_iterator, float> > >_ZNKSs4dataEv_ZNSt11char_traitsIcE4moveEPcPKcm_ZNSs7replaceEmmPKc_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_insert_equal_lowerERKS2__ZNSt6vectorIP5MolecSaIS1_EE18_M_fill_initializeEmRKS1__M_insert_aux__is_char_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_rootEv_M_data_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmiERKl__wch_ZNSt11char_traitsIcE6assignEPcmc__insert_left_ZN6Chemeq9addChemeqEPKS___dso_handleNAME__copy_move__max_ZNKSs17find_first_not_ofEPKcmmappend_ZNK6Membre9printnormERSovswscanfdenominateurtm_mon_S_failbit~_Alloc_hiderint_n_sign_posneq_int_type_M_get_insert_unique_pos_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEvmoltypeStr_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEEptEv_M_finish_ZNSs4_Rep9_S_createEmmRKSaIcE~basic_ostringstream_ZNKSs7compareEmmPKc__copy_move_a2_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_operator()~Compteuroperator- >_M_leftnombre__lhs_ZNK9__gnu_cxx13new_allocatorIcE7addressERKc_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEdeEv_ZNSs4rendEv_ZN5Molec11printNernstERSoPKcto_int_type_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6rbeginEvint_p_sign_posn_S_uppercasetm_year_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE24_M_get_insert_unique_posERS1__M_root_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE10deallocateEPS5_mmbtowc_ZNSs4swapERSsbasic_stringbuf, std::allocator >reverse_iterator<__gnu_cxx::__normal_iterator > > >_Rb_tree_impl, std::allocator > >, false>_ZNK6Membre9printelecERSo__normal_iterator, std::allocator > >_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEmiERKlatof_ZN9__gnu_cxx13new_allocatorIP5MolecE9constructEPS2_RKS2___numeric_traits_integeruninitialized_copy__niter_base<__gnu_cxx::__normal_iterator > >atol_M_get_Node_allocator_ZNSs6appendEPKcmstrstrmon_decimal_point_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11equal_rangeERS1__BoolType_ZNK6Chemeq12valeur_latexEv_S_construct__normal_iterator, std::allocator > >eposqsort_Traitsstrtof_ZlsRSo8fraction_ZNSt6vectorIP5MolecSaIS1_EEixEm__ostream_typepair, std::allocator >, float> >, std::_Rb_tree_const_iterator, std::allocator >, float> > >long double_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt23_Rb_tree_const_iteratorIS2_ESA_reserve_ZNK6Chemeq10printcountERSo_ZNK5Molec9printelecERSobpair, std::allocator >, float>_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_insert_lowerEPSt18_Rb_tree_node_baseRKS2__ZNSt6vectorIP5MolecSaIS1_EE2atEm_ZNSs7replaceEmmRKSs_ZNSt6vectorIP5MolecSaIS1_EE6assignEmRKS1_info_types_BI2_Rb_tree_increment__throw_bad_alloc__mem_Rb_tree_iterator__mode_S_on_swap_ZNSt11char_traitsIcE7compareEPKcS2_m_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE3endEvrebind, std::allocator >, float> > >bool_BI1_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE13get_allocatorEv_ZNK10AtomeListe6weightE8fractionoperator+=_ZNSt6vectorIP5MolecSaIS1_EE5beginEv_S_minimum_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_basesymb_ZN9__gnu_cxx17__normal_iteratorIPcSsEmIERKl_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEEneERKS3__Allocoperator++_ZN9__gnu_cxx17__normal_iteratorIPcSsEppEv_ZNKSt6vectorIP5MolecSaIS1_EE2atEm_ZNSs6resizeEmprintweighwcscoll_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4__M_datapluswctype_t_Zml8fractionS__ZNSsaSEPKc__copy_move_a2 >, Molec**>push_back_S_terminalprintspecies__is_null_pointerfindmendel_Rep__static_initialization_and_destruction_0__new_finish~basic_stringbuf_S_ios_openmode_end_II1_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11upper_boundERS3__ZNK6Membre10printcountERSo_ZNSs9_M_mutateEmmm_Arg1_Arg2_Type_Key_compareios_base_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1__ZNSspLEcsystemtriage_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEppEv_ZNSs7_M_moveEPcPKcmoperator->__size_M_capacity_ZNK6Membre12printspeciesERSo__alloc_ZNK6Chemeq11membredroitEv_ZNK6Chemeq8enthalpyEv~map_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11upper_boundERS3__IO_FILEminFraction_ZNSt12_Vector_baseIP5MolecSaIS1_EE19_M_get_Tp_allocatorEvnumerotewmemchr_ZNKSt6vectorIP5MolecSaIS1_EEixEm_ZNKSs13find_first_ofEPKcmm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_rootEvquotrebind_ZNSs7_M_dataEPc_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE9constructEPS5_RKS5__S_refcount_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseESt17_Rb_tree_iteratorIS4_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmIERKltm_hour_ZNKSs12find_last_ofERKSsm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5countERS1__M_right_ZNKSt6vectorIP5MolecSaIS1_EE4backEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt17_Rb_tree_iteratorIS2_Esqbrwcstoulatoll_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_create_nodeERKS2__ZNSs12_S_constructEmcRKSaIcE_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6insertESt17_Rb_tree_iteratorIS4_ERKS4_MAX_INFO_NR__dat__minPAULING_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8key_compEv_Iterbsearch~new_allocator_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv_Rb_tree_const_iterator, std::allocator >, float> >const_reverse_iteratorvaldefinedbasic_string, std::allocator >getwchar5atome_ZN9__gnu_cxx24__numeric_traits_integerIiE5__maxE_Is_pod_comparatortm_mday_S_comparenew_allocator, std::allocator >, float> > >operator<< , std::allocator >c_strconst_reference_ZdlPvminoperator delete__numeric_traits_integer__normal_iterator > >_ZNK6Chemeq12printspeciesERSo_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7destroyEPS5___gthread_active_p_ZNKSs5rfindEPKcmmnew_allocator__uninitialized_copyaddMol_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4rendEv_ZNKSt12_Vector_baseIP5MolecSaIS1_EE19_M_get_Tp_allocatorEv_ZNKSs17find_first_not_ofEcm_ZNKSt12_Vector_baseIP5MolecSaIS1_EE13get_allocatorEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_S_leftEPSt18_Rb_tree_node_base_ZNK6Chemeq12membregaucheEv_ZNK5Molec7iswaterEv_M_length_ForwardIterator_Zgt8fractionS__ZNKSs16find_last_not_ofEPKcmm_Vector_base >equilibre_ZNSt18_Rb_tree_node_base10_S_minimumEPKS__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS2_ESA__ZSt19__throw_logic_errorPKc_ZN9__gnu_cxx13new_allocatorIP5MolecE7destroyEPS2_int_n_cs_precedes__cxa_rethrow__k1coeff1_ZN6Membre15printableNernstEv_IsMove__exchange_and_add_single_ZNSt6vectorIP5MolecSaIS1_EE9push_backERKS1__ZNKSs17find_first_not_ofERKSsm__FILEiterator_traits_M_rightmosttypedef __va_list_tag __va_list_tagvalue_compare_Const_Link_type_ZN9__gnu_cxx17__normal_iteratorIPKcSsEppEi_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l_ZNKSs4rendEveraseNull_ZN9__gnu_cxx17__normal_iteratorIPKcSsEppEvoperator--_S_keynew_allocator, std::allocator >, float> >_Iterator__int32_t_M_fill_initializebasic_streambuf >_M_set_sharablewmemcmpwcrtomb_M_begin__value_ZNSt6vectorIP5MolecSaIS1_EE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EEmRKS1__ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4findERS3__ZNSt18_Rb_tree_node_base10_S_minimumEPS__InIteratorpair, std::allocator >, float> >, bool>_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEEeqERKS3__ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE7destroyEPS3___new_start_ZNSt6vectorIP5MolecSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_membregauche__position__simple_ZNSs9push_backEc_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEptEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13get_allocatorEv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE8max_sizeERKS3_input_iterator_tag_ZNKSs4_Rep12_M_is_leakedEvseekdirpositive_sign__last1_ZNK5Molec6chargeEv_Iter_base<__gnu_cxx::__normal_iterator > >, false>subChemeq__rb_verify5div_t_S_goodbit_ZNSt18_Rb_tree_node_base10_S_maximumEPS__ZNKSt6vectorIP5MolecSaIS1_EE8max_sizeEviterator_category_ZN6Chemeq9simplifieEb_S_showpos_S_ios_seekdir_end_ZN6Membre11printNernstERSoempty_ZNSs15_M_replace_safeEmmPKcm_ZNKSs7compareEmmRKSsmm_RandomAccessIterator_M_insert_uniqueoperator+_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5beginEv_M_dispose_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minE_ZNSs4_Rep13_M_set_leakedEvlong long unsigned int_Rb_tree_node, std::allocator >, float> >_S_basefieldfirst_type_Z11minFractionRK8fractionS1__ZNSs4_Rep12_S_empty_repEvwmemcpy__compar_fn_t_S_constructoperator>_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minE_ZNSs13_S_copy_charsEPcPKcS1_operator-=valeur_S_unitbuf_ZN9__gnu_cxx17__normal_iteratorIPcSsEpLERKl_S_trunc~_Vector_base_ZNSt11char_traitsIcE11to_int_typeERKc~basic_iostream_M_set_leakedNUMBERfmtflags_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5emptyEv_ZNSs4_Rep15_M_set_sharableEv_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv__cxa_end_catchprintableNernst_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4findERS3_srand__destroy_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5emptyEv_ZN6Membre6addMolEPK5Molec_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS3_SaIS3_EEEELb0EE7_S_baseES9_tm_gmtoffmultipleoperator==, std::pair, float>, std::_Select1st, float> >, std::less >, std::allocator, float> > >_ZlsRSoRK6Membre_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minE_ZNK10AtomeListe6groupeEv_ZNK6Chemeq5redoxEv__uninit_copy_ZN10AtomeListe8numeroteEi_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE2atERS3___off_ZNK10AtomeListe7suivantEv_M_deallocate_ZNSt6vectorIP5MolecSaIS1_EE4dataEv_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base_ZN6Chemeq9constanteESs_ZNSsaSERKSsgetenvfgetwc__builtin_unwind_resumepair_ZNSt6vectorIP5MolecSaIS1_EE8pop_backEvtable_entryfgetws_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS2_ERKS2__ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11__rb_verifyEv_ZNSt6vectorIP5MolecSaIS1_EE14_M_fill_assignEmRKS1__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_maximumEPSt18_Rb_tree_node_base_M_get_insert_equal_pos_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv_ZNSt12_Vector_baseIP5MolecSaIS1_EE17_M_create_storageEm_ZNK5Molec10printweighERSo_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEEixERS3__ZNSt10_Iter_baseIPP5MolecLb0EE7_S_baseES2__ZNKSs13find_first_ofERKSsm_ZanR6MembreS0___normal_iterator_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4rendEv_GLOBAL__sub_I_lesatomes_Z10findmendelPKc_ZNKSt4lessISsEclERKSsS2_wctrans_t_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmIERKl_ZNK10AtomeListe7isEqualERKS___c1__c2reverse_iterator, std::allocator >, float> > >_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_get_nodeEv__elems_before__first1_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEptEv_ZNSs10_S_compareEmmnumerateurwcsrchrlong long int_ZNKSs4sizeEv_ZNSt12_Vector_baseIP5MolecSaIS1_EE13_M_deallocateEPS1_m__cxa_begin_catch_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE10deallocateEPS3_m_M_insert_equalprintweight_M_insert_equal__S_beg_ZN6Chemeq6valeurEdprefix_ZNK10AtomeListe1ZEvprinted_ZN10AtomeListe6groupeEPS__ZNSs5eraseEmmiterator_traits_ZNSs4_Rep10_M_refdataEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc_ZNSt6vectorIP5MolecSaIS1_EE15_M_erase_at_endEPS1__M_start_ZNK9__gnu_cxx17__normal_iteratorIPcSsEplERKl_S_adjustfield_ZNSt6vectorIP5MolecSaIS1_EE6resizeEmS1__ZNKSs5rfindERKSsmungetwc_M_insert_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEplERKloperator< , std::allocator >_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_beginEvfind_last_of_ZN6Chemeq9normaliseEv_ZN9__gnu_cxx3divExx_Comparevfwscanf_ZN9__gnu_cxx17__normal_iteratorIPcSsEmmEiegptr_M_get_Tp_allocatorcopy_backward_M_clone_node_ZNSt6vectorIP5MolecSaIS1_EE6insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EEmRKS1_value_comp_ZNKSs16find_last_not_ofERKSsmaddChemeq_Ios_Seekdir_ZN9__gnu_cxx17__normal_iteratorIPcSsEmmEv_CharTmult_Zml8fractioni_ZNK9__gnu_cxx17__normal_iteratorIPcSsEixERKllocaleconvoperator<<_M_value_field_ValueTgroupe_ZNKSt6vectorIP5MolecSaIS1_EE6rbeginEv__result_ZNSs6assignEPKcstrtoull_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_M_insert_EPSt18_Rb_tree_node_baseSA_RKS2__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseERS1__ZNSs7replaceEmmPKcm_ZN5Molec6nombreEiipremiers_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmmEv_ZNKSs7compareEmmRKSs__miter_baseoperator==_M_parent_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6insertERKS4__ZNK9__gnu_cxx17__normal_iteratorIPKcSsEplERKl_M_disjunct__copy_move_a__is_signed_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base_ZN10AtomeListe10setsuivantEPS_coeff_Z12mendelweighti_ZNSt12_Vector_baseIP5MolecSaIS1_EE11_M_allocateEm_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS__ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4rendEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE16_M_insert_uniqueERKS2__S_copy_chars_ZNSs7reserveEm__uninitialized_move_if_noexcept_a >_M_put_nodestrcmp_S_binsimplifieshort intint_p_cs_precedes_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4rendEv_ZNSt17_Rb_tree_iteratorISt4pairIKSsfEEppEi_M_is_leaked__dnew_M_leak_hard_ZNSt17_Rb_tree_iteratorISt4pairIKSsfEEppEv_ZNKSt6vectorIP5MolecSaIS1_EE5emptyEviterator_type_ZNK6Chemeq10valdefinedEvaddMembrenpos_ZNSt6vectorIP5MolecSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EE__comp_M_range_checktm_zone__ostream_insert >_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11equal_rangeERS3_~allocator_S_appbidirectional_iterator_tag_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_maximumEPKSt18_Rb_tree_node_baseprintelecwcsncat_ZNK5Molec10iselectronEvfind_first_ofyy_prev_more_offset_ZN9FlexLexer16yy_create_bufferEPSiiclearerryyacceptlabyy_more_len_filenoyyexhaustedlabnew_state__builtin_strchr_ZN11yyFlexLexerC2EPSiPSoyyinput_ZNK9FlexLexer5debugEvoptionadd_IO_write_endMoins_ZN11yyFlexLexer6yywrapEv_ZN11yyFlexLexer7yyunputEiPcyy_load_buffer_stateyyreduceyy_start_stack_depthyysetstate_flagsyy_baseyylval__off_tbasic_istringstream, std::allocator >_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEvyycheck_lock_vptr.FlexLexeryytoken_ZN11yyFlexLexer13yy_push_stateEi_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEcEgalyyerrlab1_ZN11yyFlexLexer14yy_init_bufferEP15yy_buffer_statePSi__pf_ZNK9FlexLexer6linenoEv~FlexLexeryy_state_typeyypush_buffer_state_ZN11yyFlexLexer10LexerInputEPci_ZdaPvsourceyy_start_stack_ptr_ZN9FlexLexerD2Ev_ZN11yyFlexLexerD0Evyy_state_bufyyerrlabrename_IO_read_end_ZN11yyFlexLexer5yylexEvyy_find_actionfopenfreadstrdupyy_is_jamfgetsistringstreamyynewstatenumber_to_moveLexerInputferrorallowed_ZNKSt5ctypeIcE5widenEcLexerError_ZN11yyFlexLexer18yy_get_next_bufferEvret_val_ZN7yystypeD2Evgrow_sizenew_sizeyy_delete_buffer_chainyy_buf_posarg_yyinctypemallocyy_looking_for_trail_beginyy_cp_ZSt4cerryyerror_ZNSi3getERcyy_more_flag_ZN11yyFlexLexer10LexerErrorEPKcftellsetbufnew_inYYLengfreopenYY_CHAR_ZN9FlexLexer16yy_delete_bufferEP15yy_buffer_stateyy_last_accepting_statearg_yyoutyy_bprewindyy_bs_linenoYYTextstdoutyybackupchemparser.ccyyerrstatusyystosyy_actyy_pop_stateyy_c_buf_pstrncpynum_to_readyy_top_stateRealset_debugyyreallocprintHelpnew_buffer_Z9printHelpvyytranslateyylinenoyy_buffer_stack_topoerrno7yystypeperror_ZN11yyFlexLexer21yyensure_buffer_stackEv_ZN11yyFlexLexer21yy_get_previous_stateEv_M_widen_init_IO_save_baseflush >yychar_unused2_ZNKSt5ctypeIcE13_M_widen_initEv_IO_write_ptr_shortbufYY_BUFFER_STATEyyreturn__pad2yy_amount_of_matched_text__vtbl_ptr_type_Z7yyerrorPcyy_ec_next~yystypeyy_create_buffer__istream_typeisequationyydefgotoyyleng_Z12printVersionvyy_buffer_stackfclose_IO_write_base__throw_bad_casttmpfileungetcyystate_ZN11yyFlexLexer19yy_switch_to_bufferEP15yy_buffer_state_ZN11yyFlexLexer7yyinputEvyy_switch_to_bufferyy_startprintVersionyyensure_buffer_stackyy_ch_bufstderryy_state_ptrCharge__nptryy_flush_bufferyy_n_charsdo_action_ZN11yyFlexLexer16yy_try_NUL_transEiyy_last_accepting_cpos_Z6yyfreePvfgetcyydefault_ZN9FlexLexer9yyrestartEPSiyy_c_buf_p_offsetRparyy_lpswitch_streamsenvoptionyystacksizeyy_buf_size_ZN9FlexLexer9set_debugEiFleche__off64_tLexerOutputyy_push_state_IO_read_basewiden_IO_buf_end_ZNSo5writeEPKcl__builtin_indexfailyy_cyyssayytableyysspSpcPlusyy_init_bufferenvinput_ZNSolsEPFRSoS_Eremove_GLOBAL__sub_I_resultyytype_int16fgetpos_ZN11yyFlexLexer11LexerOutputEPKci_IO_markeryypgotoyy_is_our_bufferyyerrorlabyypactyy_nxtyy_chkyyr1yyr2writeyy_buffer_stack_max__errno_location_cur_column_ZN11yyFlexLexer15yy_flush_bufferEP15yy_buffer_state_Z9yyreallocPvmFracyy_acceptyyss_ZN11yyFlexLexer9yyrestartEPSiyypop_buffer_statetmpnam_ZN11yyFlexLexer19yypush_buffer_stateEP15yy_buffer_stateAntiComposeyy_next_stateyyunputsprintfnooptionstdin9_G_fpos_tyylex_IO_buf_base_ZN9FlexLexer5yylexEPSiPSothelexeryy_did_buffer_switch_on_eofyy_hold_charyy_fill_bufferAtomeyy_get_previous_stateyy_size_t_ZN11yyFlexLexer20yy_load_buffer_stateEvyyvsfeof_ZNK9FlexLexer6YYTextEvfseekSpcLpar_ZN9FlexLexer14switch_streamsEPSiPSoendl >_IO_lock_tasked__pad1__pad3__pad4__pad5_sbuf_ZN11yyFlexLexer16yy_delete_bufferEP15yy_buffer_statefsetpos_Z9optionaddPcS_i_markers_IO_save_endyyabortlabyyallocyy_input_fileyy_metayytext_ZN11yyFlexLexer12yy_pop_stateEvHautyy_more_offset__check_facet >fprintf_ZN11yyFlexLexerD2EvAqueous_ZN11yyFlexLexer16yy_create_bufferEPSii_ZSt16__throw_bad_castv_Z7yyparsevyy_is_interactiveyyrestartyyresultstrcpy_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv~yyFlexLexeryy_bs_column_Z5yylexvyyval_ZNSo5flushEvyynerrsyy_get_next_buffernew_outyyfreeyy_full_lpdest_ZN9FlexLexer5yylexEv_IO_backup_baseyy_full_state_IO_read_ptrgetoptyyvsayy_match_ZN9FlexLexer19yy_switch_to_bufferEP15yy_buffer_stateyyvsp_ZNK9FlexLexer6YYLengEvnum_to_allocyy_at_bol_old_offset_ZN11yyFlexLexer18yypop_buffer_stateEv_Facetyy_start_stackyy_init_flags2yylengetcharyy_buffer_statusyydefactoperator delete []yy_full_matchyy_def_ZN9FlexLexerD0Evmainyy_current_statesetvbuf_ZN11yyFlexLexer14switch_streamsEPSiPSooptstr_Z7yyallocmfflush_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv_ZN11yyFlexLexer12yy_top_stateEvyytokentypeargc_vtable_offsetyy_flex_debug_ZNSo3putEcargvyywrapyy_try_NUL_transyyparse_ZSt3cinmendeleiev.c_GLOBAL__sub_I_tableD}@[}@U[}@}@S}@}@US}@[}@u[}@}@s}@}@U#H[}@}@o}@}@T}@}@o[}@}@Uh}@}@ h}@}@Q}@}@px}@}@ur}@}}@ r}@}}@Q}}@}@ }}@}@Q}@}@px}@}@Q}@}@S}@}@U}@}@U}@~@S~@~@U}@}@U}@~@S~@~@U}@}@u}@~@s~@~@U#H}@}@o}@}@T}@~@o}@}@U}@}@ }@}@Q}@}@px}@}@u}@}@ }@}@Q}@}@ }@}@Q}@}@px}@}@Q}@~@S~@~@U (@7(@U7(@(@|x(@(@U (@7(@T7(@(@](@(@P1(@(@S(@(@P(@(@S-(@7(@U7(@(@|x(@(@UB(@(@s B(@(@]U(@(@ @U(@f(@Pf(@(@Vg(@(@Lx(@(@ȵ(@(@ |@(@(@](@(@U(@(@P(@(@U(@(@T(@(@U(@(@T(@(@U(@)@S)@)@U(@(@T(@)@V)@)@T)@)@U)@K)@VK)@O)@UO)@_)@V_)@v)@Sv)@)@V)@)@P_)@t)@VK)@O)@UO)@_)@VY)@_)@PY)@_)@V)@)@U)@h*@Sh*@l*@U)@)@T)@i*@Vi*@l*@T)@)@ @)@)@T)@)@V)@)@s)@)@T)@)@s)@)@T)@)@s)@)@V)@)@1)@)@U)@)@u )@)@T)@)@s)@?*@ @)@?*@V"*@?*@  @"*@?*@VU*@g*@ @U*@g*@Vl*@*@U*@+@S+@+@Pl*@*@T*@+@V+@+@T|*@*@ @|*@*@U*@*@S*@+@V+@+@T*@*@  @*@*@S*@*@\*@*@S*@*@1*@*@U*@*@u *@*@\*@*@ B@*@*@S+@+@ @+@+@S+@M+@ @+@M+@S*+@M+@V;+@M+@  @;+@M+@SM+@+@V+@+@TW+@+@ @W+@+@St+@+@ B@t+@+@P+@+@V+@+@T+@+@ @+@+@S+@+@U+@+@U+@+@U+@=,@U+@+@T+@+@V+@+@T+@ ,@V ,@=,@T+@+@ @+@+@P+@8,@  @+@+@T+@ ,@V ,@8,@T ,@8,@ @ ,@,@P,@8,@V&,@8,@ '@&,@7,@P>,@d,@Ud,@,@V,@,@UG,@d,@0d,@,@SG,@d,@Ud,@,@V,@,@Uh,@,@S,@,@sh,@o,@Qk,@s,@p3$v",@,@U,@,@S,@,@P,@,@T,@,@V,@,@_,@,@t,@,@_,@,@S,@,-@U,-@-@S-@-@U,@-@T-@-@V-@-@T-@-@V-@-@T,@:-@Q:-@=-@\=-@Q-@QQ-@-@\-@-@Q-@-@\-@-@Q,@:-@R:-@=-@]=-@L-@RL-@-@]-@-@R-@-@]-@-@R-@#-@u#-@3-@T3-@=-@s=-@_-@T_-@-@s-@-@T-@-@V0-@=-@10-@:-@U0-@:-@u =-@_-@T_-@`-@sm-@w-@Mw-@~-@t~-@-@Mh-@-@V-@-@N-@-@t-@-@N-@-@P-@-@O-@-@t-@-@O-@-@Vb.@n.@0.@.@U.@.@ut.@.@U.@.@T.@/@U/@9/@V9/@0@U>0@H0@SH0@I0@U60@B0@TI0@S0@TS0@Y0@TY0@g0@UY0@j0@Tp0@z0@Tz0@0@T0@0@U0@0@U0@0@U0@,1@\,1@11@U0@0@00@,1@S11@91@U91@F1@U:1@@1@PF1@a1@Ua1@1@S1@1@UF1@e1@T1@1@T1@1@V1@1@TR1@1@ 1@1@a1@1@ 1@1@X1@(2@U(2@2@S2@2@U1@(2@T(2@2@]2@2@T2@(2@0(2@2@\2@(2@U(2@2@S2@2@U,2@G2@PH2@O2@aH2@2@]P2@2@Sd2@v2@ |@d2@v2@]2@2@U2@2@V2@2@U2@2@T2@2@S2@2@T2@2@S2@2@T~@M~@UM~@Y~@SY~@~@U~@@S@@U~@3~@T3~@Y~@TY~@s~@Vs~@x~@Vx~@~@V~@~@T~@~@T~@F@Ve@@T@@V@@T~@F~@QF~@~@\~@~@Q~@~@\~@e@Qe@@\@@QY~@~@S=~@Q~@px=~@Q~@P=~@M~@UM~@Y~@SY~@~@UY~@p~@Up~@w~@pxY~@]~@ux]~@`~@Q`~@p~@uxp~@w~@ppY~@w~@Tw~@~@VY~@~@1d~@m~@Qm~@p~@ ut83&p~@w~@ pt@3&~@~@P~@~@w@@P@@P~@@0@F@\~@@ +@~@@1~@@S~@~@Re@@1@@R~@@~@@~@e@_w@@1@@ ~@e@Sw@@S@@S~@~@0~@~@_~@~@S~@~@\~@e@Q~@@P@e@ 3$}"~@e@S~@e@S~@F@V~@@T~@e@1~@e@]@@\@e@S@e@\@A@s@F@V@e@1*@e@^I@R@ ss8I@R@sI@e@SN@R@ ss8N@R@sN@S@S2@2@U2@3@V3@3@^3@3@U2@2@U2@3@V3@3@^3@3@U2@2@U2@3@V3@3@^3@3@U2@3@V3@3@^3@3@U2@ 3@U 3@3@U3@3@ vv3&3@3@U2@3@02@ 3@U 3@3@U3@3@ vv3&2@3@?3@3@V3@3@^3@3@U#3@B3@v#3@B3@T#3@3@\.3@]3@S]3@3@]C3@3@V3@3@^3@3@UC3@]3@vK3@]3@0]3@3@S3@3@S3@3@ s $ &3@3@Q]3@3@?3@3@?j3@3@V3@3@Vt3@3@Tt3@3@V3@3@?3@3@?3@3@\3@3@\3@3@\3@3@?3@3@?3@3@\3@3@\3@3@?@@U@2@\2@3@U@@T@ @S @*@V@(@S@(@S@*@\@(@s @@_@@T@*@_@@U@@ @@R@ @px @@u@@ @@R@ @ @@R@ @px@ @R@(@S@*@\@*@1@@b@Ub@@\@@U@@\@@U@@\@@U@Ѐ@\Ѐ@@U@@\@@U@@b@Tb@@S@@T@@b@Qb@@Q@@Q@@Q@@Q@@Q@@Q@Ѐ@QЀ@Ӏ@QӀ@@Q@@b@Rb@@R@@R@@R@@R@@R@@R@Ѐ@RЀ@@R@@RN@b@Rb@@R@@R@@R@@R@@R@@R@Ѐ@RЀ@@R@@RN@b@Qb@@Q@@Q@@Q@@Q@@Q@@Q@Ѐ@QЀ@Ӏ@QӀ@@QN@b@Tb@@S@@Tb@@^@@Q@Ѐ@^ր@ـ@Qـ@@^b@e@Pe@k@]k@x@Px@@]Ā@Ѐ@P@@Pb@@QȀ@Ѐ@Q@@Qb@@SȀ@Ѐ@S@@Sb@@VȀ@Ѐ@V@@Vb@@^Ȁ@Ѐ@^@@^b@k@Sb@k@Vk@y@^k@y@Sk@y@Vy@@^y@@]@@]@@v~"b@@Q@@Q@Ѐ@QЀ@Ӏ@QӀ@@Qb@@S@@S@@R@@R@@\@@\@@U3@3@T3@7@V7@:7@T:7@=7@V=7@X7@TX7@[7@V[7@q7@Tq7@7@V7@7@T7@38@V38@88@T3@18@W18@88@|3@3@}3@3@U3@4@}4@4@U4@5@}5@5@U5@"8@}"8@&8@U&8@88@}84@18@W18@88@|z4@ 5@@(5@88@@z4@4@|4@4@T4@4@|4@4@U4@ 5@|(5@88@|4@4@}4@4@t4@4@}4@4@u4@ 5@}(5@88@}4@4@}5@+6@s6@6@s 7@7@s4@4@}4@4@t4@4@}4@4@u4@ 5@}(5@5@}5@7@S7@7@}7@28@S28@88@P4@ 5@W 5@5@}5@5@U5@(5@}:5@5@ ζ@:5@5@Wi5@p5@ai5@q5@Ww5@5@ A@w5@5@W5@5@ @5@5@W5@5@T5@5@v $ &3$a"5@5@T5@5@W5@5@15@5@U5@5@u 5@5@T5@7@W7@18@W18@88@|5@7@|7@88@|5@7@S7@28@S28@88@P5@+6@s6@6@s 7@7@s5@7@|7@88@|6@ 7@|7@X7@|,6@46@@46@;6@T;6@6@@7@:7@@,6@6@S7@:7@S<6@6@@H6@6@6@6@T6@6@H6@6@UY6@6@ Y6@q6@Qq6@y6@pxy6@6@uc6@n6@ c6@n6@Qn6@y6@ n6@q6@Qq6@y6@pxq6@y6@Q6@6@6@6@T6@ 7@:7@X7@6@ 7@S:7@X7@S6@ 7@6@7@7@ 7@T 7@ 7@6@ 7@U6@ 7@ 6@6@Q6@6@px6@ 7@u6@6@ 6@6@Q6@6@ 6@6@Q6@6@px6@6@Q 7@7@}7@7@T7@7@} 7@7@S7@:7@@=7@X7@[7@q7@Sq7@7@W7@18@W18@88@|7@7@|7@88@|7@7@}7@88@}7@7@O7@7@T7@7@O7@88@O7@7@U7@7@ 7@7@Q7@7@px7@7@u7@7@ 7@7@Q7@7@ 7@7@Q7@7@px7@7@Q7@18@W18@88@|8@"8@}"8@&8@U&8@88@}88@]8@U]8@q8@Sq8@v8@Uv8@8@S8@8@U8@8@S8@9@U9@9@S9@:@U:@(:@S(:@]:@U]:@:@S:@:@U8@:@W]:@:@W8@:@]:@:@8@:@W]:@:@W8@8@Q8@8@T8@8@U8@8@@8@9@@8@9@P8@9@@8@9@Q8@9@T8@9@V9@9@P 9@@9@Y@9@D9@TD9@9@Y 9@D9@UD9@9@vh9@E9@ 9@,9@P,9@.9@vx.9@19@P19@E9@vx!9@.9@ !9@,9@P,9@.9@vx.9@79@ .9@19@P19@79@vx19@79@PE9@9@@N9@9@Z9@9@T9@9@ZN9@9@U[9@9@ [9@s9@Qs9@{9@px{9@9@ue9@p9@ e9@p9@Qp9@{9@ p9@s9@Qs9@{9@pxs9@{9@Q9@:@9@9@[9@9@T9@:@[9@9@U9@9@ 9@9@P9@9@89@9@P9@9@qx9@9@u9@9@ 9@9@P9@9@89@9@ 9@9@P9@9@qx9@9@P9@:@W9@:@\:@:@T:@:@\9@:@U9@:@ 9@9@P9@:@w8:@:@P:@ :@qx :@:@u9@:@ 9@9@P9@:@w8:@ :@ :@:@P:@ :@qx:@ :@P,:@?:@C:@U:@W:@:@U:@:@S:@^;@U^;@a;@Sa;@;@U:@^;@W{;@;@W;@;@@:@^;@P{;@;@P:@^;@W{;@;@W;@;@@:@:@Q:@:@T:@:@S:@^;@P{;@;@P:@;@];@;@T;@^;@]{;@;@]:@;@U;@^;@sh{;@;@sh:@;@ :@;@P;@;@sx;@;@P;@;@sx:@;@ :@;@P;@;@sx;@ ;@ ;@;@P;@ ;@sx;@ ;@P;@^;@W{;@;@W;@;@@!;@W;@^W;@[;@T[;@^;@^{;@;@^!;@[;@U.;@^;@ .;@F;@QF;@N;@pxN;@[;@u8;@C;@ 8;@C;@QC;@N;@ C;@F;@QF;@N;@pxF;@N;@Qa;@{;@W;@;@U;@N<@SN<@<@U;@;@T;@<@V<@<@T;@;@ |@;@;@P;@*<@ @;@*<@V;@;@a;@;@V<@<@ @<@<@V<@*<@ @<@*<@VN<@<@ @N<@<@V`<@<@S`<@<@Vp<@}<@1p<@z<@Up<@z<@u }<@<@S<@<@U<@ =@V =@ =@U<@<@T<@ =@S =@ =@T<@<@Q<@<@Q<@ =@0<@<@ @<@<@T<@<@S<@<@_<@<@t<@ =@_<@ =@S =@ =@T=@;=@U;=@f=@Vf=@i=@U=@;=@T;=@d=@\d=@i=@T=@;=@1;=@I=@PJ=@d=@P=@;=@0;=@d=@S=@;=@U;=@f=@Vf=@i=@Uj=@y=@Uy=@=@V=@=@Uj=@}=@T}=@=@S=@=@T~=@=@S=@=@T=@=@U=@'>@V'>@*>@U=@=@T=@&>@S&>@*>@T=@=@Q=@=@Q=@*>@0=@=@ @=@=@T=@=@S=@=@^=@=@t=@*>@^=@&>@S&>@*>@T=@ >@_ >@>@t>@*>@_=@>@P*>@W>@UW>@>@V>@>@U*>@W>@TW>@>@\>@>@T1>@W>@1W>@e>@Pf>@>@P1>@W>@0W>@>@S1>@W>@UW>@>@V>@>@U>@>@U>@>@V>@>@U>@>@T>@>@S>@>@T>@>@S>@>@T>@>@U>@>@V>@>@U>@>@T>@>@S>@>@T>@>@Q>@>@Q>@>@0>@>@ @>@>@T>@>@S>@'?@U'?@R?@VR?@U?@U>@'?@T'?@P?@\P?@U?@T?@'?@1'?@5?@P6?@P?@P?@'?@0'?@P?@S?@'?@U'?@R?@VR?@U?@UV?@e?@Ue?@?@V?@?@UV?@i?@Ti?@?@S?@?@Tj?@?@S?@?@T?@?@U?@@@S@@@@U?@?@T?@ @@] @@@@T?@?@0?@ @@\?@?@U?@@@S@@@@U?@ @@S?@?@ @?@?@]@@J@@UJ@@B@SB@B@U@@J@@TJ@@A@VA@B@TB@B@VB@9B@T9B@B@VB@B@TB@B@VB@B@T@@J@@QJ@@@@]A@B@QB@B@]B@/B@QB@B@QB@B@]i@@A@]i@@A@Vy@@@@1y@@@@Uy@@@@u @@@@]@@A@ @@@A@V@@/A@ ζ@@@/A@V@@A@a@@A@V A@A@ A@ A@A@VA@/A@ @A@/A@V@A@A@ @@A@A@VRA@A@\RA@A@VbA@oA@1bA@lA@UbA@lA@u oA@A@\A@A@ B@A@A@VA@A@ @A@A@VA@A@ ζ@A@A@VA@A@ B@A@A@VB@B@QB@B@]B@6B@Q6B@B@]B@B@TB@B@VB@9B@T9B@B@VB@B@1B@B@UB@B@u B@6B@Q6B@AB@]AB@B@ @AB@B@V^B@B@ B@^B@oB@P~B@B@ ζ@~B@B@VB@B@ B@B@B@VB@C@UC@lC@\lC@sC@UB@C@TC@pC@^pC@sC@TB@C@0C@C@]2C@RC@]B@C@ }@C@RC@VB@C@0C@C@S5C@RC@SB@C@UC@lC@\lC@sC@URC@dC@ @RC@dC@^tC@C@UC@E@SE@kE@UkE@;F@S;F@F@UF@gG@SgG@rG@UtC@C@TC@mG@VmG@rG@TtC@C@QC@rG@QC@C@ @D@1D@ @G@DG@ @C@C@VD@1D@VG@DG@VC@D@ @1D@CD@ @DG@gG@ @C@D@V1D@CD@VDG@gG@VD@1D@ ζ@D@1D@V1D@CD@ @1D@CD@V`D@gD@a`D@hD@VsD@D@ A@sD@D@VD@D@ @D@D@VD@D@ @D@D@VD@D@ @D@D@VD@kE@ ζ@D@kE@VE@OE@  @E@OE@V E@OE@ @ E@1E@P1E@OE@S=E@OE@ B@=E@NE@POE@kE@ B@OE@kE@VkE@E@ @kE@E@VE@E@ @F@F@ @E@E@VF@F@VE@E@ B@F@F@ B@E@E@PE@F@ @F@F@ @E@F@VF@F@VF@F@ ζ@F@F@V;F@F@  @;F@F@VZF@F@ @ZF@kF@PkF@F@SwF@F@ B@wF@F@PF@F@ B@F@F@VF@F@ @F@F@VD@E@ @F@gG@ @D@E@VF@gG@VrG@zG@UzG@G@SG@G@UG@G@UG@ H@V H@H@UH@%H@V%H@*H@UG@G@01G@G@\]G@G@\G@G@PG@G@PG@G@\G@G@0G@ H@S H@H@0G@G@UG@ H@V H@H@UH@%H@V%H@*H@U*H@DH@UDH@HH@THH@HI@VHI@II@P*H@AH@TAH@H@SH@II@TZH@H@ ζ@ZH@H@VH@H@aH@H@VH@H@ A@H@H@VH@H@ @H@H@VH@?I@ @H@?I@VH@?I@SH@?I@VH@ I@1H@I@UH@I@u I@-I@S-I@?I@ B@-I@?I@VII@qI@UqI@I@\I@I@PII@ZI@TZI@I@VI@I@TSI@qI@0qI@I@SSI@ZI@TZI@I@VI@I@T}I@I@ @}I@I@PI@I@UI@@J@V@J@FJ@UFJ@KJ@VKJ@RJ@UI@I@0I@@J@]@J@FJ@0I@I@0I@@J@S@J@FJ@0I@I@UI@@J@V@J@FJ@UFJ@KJ@VKJ@RJ@U'J@*J@ s $ &*J@@J@QI@@J@VRJ@xJ@UxJ@J@VJ@J@UJ@J@VJ@J@U[J@xJ@0xJ@J@SJ@J@0[J@xJ@UxJ@J@VJ@J@UJ@J@VJ@J@UJ@J@UJ@J@SJ@J@UJ@J@UJ@]K@S]K@aK@UJ@K@PK@K@\K@`K@\J@J@UJ@]K@S]K@aK@UbK@uK@UuK@L@VL@L@UbK@yK@TyK@L@SL@L@TzK@L@SL@L@TK@L@ @K@L@SK@L@@K@L@vK@L@@K@K@QK@K@\K@K@UK@L@@L@;L@O;L@?L@T?L@L@OL@?L@U?L@L@|hL@@L@ L@#L@P#L@%L@|x%L@*L@P*L@@L@|xL@%L@ L@#L@P#L@%L@|x%L@2L@ %L@*L@P*L@2L@|x*L@2L@PEL@gL@vEL@gL@SUL@gL@ @UL@fL@PgL@mL@v mL@tL@!gL@L@SL@L@ @L@L@SL@L@  @L@L@SL@L@UL@N@SN@N@UN@N@SN@N@UL@L@0L@M@VM@M@M@6M@T}N@N@N@N@M@6M@6M@uN@N@N@L@L@UL@N@SN@N@UN@N@SN@N@UL@M@\LM@uN@SN@N@SN@N@U6M@KM@PWN@\N@  $ &\N@uN@P6M@uN@SN@N@SN@N@UaM@uN@aM@uN@jM@M@]sM@uN@\M@uN@^jM@uN@sM@M@TsM@uN@VM@M@\M@M@]M@M@]M@uN@M@M@M@M@TM@uN@M@M@UM@uN@vhM@M@ M@M@PM@M@vxM@M@PM@M@vxM@M@ M@M@PM@M@vxM@M@ M@M@PM@M@vxM@M@PM@uN@M@-N@-N@1N@T1N@uN@M@1N@UN@2N@ N@N@QN@$N@px$N@1N@uN@N@ N@N@QN@$N@ N@N@QN@$N@pxN@$N@QDN@RN@R7N@RN@SN@N@M@uN@SN@N@SN@N@UM@uN@SN@N@SN@N@UN@N@SN@N@UN@O@UO@/P@S/P@PP@UPP@SP@SSP@nP@UnP@Q@SQ@ R@U R@ R@S R@(R@U(R@+R@S+R@IR@UIR@S@SS@S@US@S@SS@S@US@S@SS@S@UN@O@TO@S@wS@S@|N@O@QO@S@|N@O@0O@R@|R@R@1R@S@|S@S@|N@O@0O@R@_R@R@1R@S@_S@S@_N@O@0O@S@\S@S@\N@O@UO@/P@S/P@PP@UPP@SP@SSP@nP@UnP@Q@SQ@ R@U R@ R@S R@(R@U(R@+R@S+R@IR@UIR@S@SS@S@US@S@SS@S@US@S@SS@S@UO@S@@S@S@@O@O@|O@O@RO@P@|P@P@TP@S@|S@S@|S@S@US@S@|O@S@]S@S@]pO@O@|O@O@RO@P@|P@P@TP@S@|S@S@|S@S@US@S@|O@PP@@nP@S@@S@S@@O@"P@|"P@)P@T)P@4P@|4P@8P@U8P@PP@|nP@S@|S@S@|P@"P@}"P@)P@t)P@4P@}4P@8P@u8P@PP@}nP@S@}S@S@}P@)P@}P@P@UQ@nQ@Q@Q@Q@Q@uP@"P@}"P@)P@t)P@4P@}4P@8P@u8P@PP@}nP@P@}P@P@P@P@UP@Q@Q@Q@UQ@Q@Q@Q@UQ@R@R@R@}S@S@S@S@}9P@PP@|SP@nP@]P@P@ @P@P@wP@R@|S@S@|P@R@|S@S@|P@P@P@P@UP@Q@Q@Q@UQ@Q@Q@Q@UQ@R@S@S@P@P@UQ@nQ@Q@Q@Q@Q@uP@R@|S@S@|P@Q@|Q@(R@|P@P@P@P@TP@UQ@Q@ R@P@P@P@P@UP@UQ@Q@ R@P@UQ@ Q@KQ@KQ@OQ@TOQ@UQ@ Q@OQ@UQ@UQ@ Q@3Q@Q3Q@;Q@px;Q@OQ@u%Q@0Q@ %Q@0Q@Q0Q@;Q@ 0Q@3Q@Q3Q@;Q@px3Q@;Q@QoQ@wQ@wQ@Q@TQ@Q@ R@(R@oQ@Q@Q@Q@UQ@Q@ R@(R@Q@Q@Q@Q@Q@Q@TQ@Q@Q@Q@UQ@Q@ Q@Q@QQ@Q@pxQ@Q@uQ@Q@ Q@Q@QQ@Q@ Q@Q@QQ@Q@pxQ@Q@QQ@Q@}Q@Q@TQ@Q@}Q@Q@Q@Q@UQ@Q@Q@ R@ R@(R@+R@IR@IR@R@S@S@IR@R@wS@S@w^R@R@jR@R@R@R@TR@R@jR@R@UwR@R@ wR@R@QR@R@pxR@R@uR@R@ R@R@QR@R@ R@R@QR@R@pxR@R@QR@S@|R@S@|R@S@}R@S@S@S@TS@S@R@S@UR@S@ R@S@QS@ S@px S@S@uR@S@ R@S@QS@ S@ S@S@QS@ S@pxS@ S@QS@S@|0S@S@|LS@S@]S@S@S@S@ @S@S@wS@S@TS@^Y@\^Y@aY@TW@W@PW@W@SW@X@SY@[Y@SS@rT@|rT@vT@UvT@T@|T@U@PU@TU@|TU@XU@UXU@Y@|Y@Y@UY@aY@|S@S@}S@S@US@:U@}:U@>U@U>U@KY@}KY@OY@UOY@aY@}LT@rT@|rT@vT@UvT@T@|T@U@PU@TU@|TU@XU@UXU@Y@|Y@Y@UY@aY@|T@)U@@GU@aY@@T@U@|U@U@UU@)U@|GU@aY@|T@U@}U@U@uU@)U@}GU@aY@}T@U@}bU@U@|V@V@|V@V@|V@V@uT@U@}U@U@uU@)U@}GU@YU@}YU@U@|U@U@UU@+V@|+V@/V@U/V@V@|V@V@UV@V@|V@V@UV@@W@|@W@DW@UDW@WW@|WW@[W@U[W@aW@|aW@mW@TmW@W@|W@W@UW@ X@| X@X@TX@X@|X@X@}Y@aY@|U@)U@|,U@:U@}:U@>U@U>U@GU@}GU@OU@| OU@XU@!GU@TU@|TU@XU@UXU@Y@|Y@Y@UY@aY@|YU@X@|Y@aY@|YU@X@|Y@aY@|YU@U@|U@U@UU@+V@|+V@/V@U/V@V@|V@V@UV@V@|V@V@UV@@W@|@W@DW@UDW@WW@|WW@[W@U[W@aW@|aW@mW@TmW@W@|W@W@UW@ X@| X@X@TX@X@|Y@aY@|bU@U@|V@V@|V@V@|V@V@ubU@X@|Y@aY@|pU@V@|V@V@|U@U@@U@U@TU@V@@V@V@@U@U@|U@U@UU@V@|V@V@|U@V@@U@U@U@U@TU@V@U@U@UU@V@ U@U@QU@U@pxU@U@uU@U@ U@U@QU@U@ U@U@QU@U@pxU@U@QV@&V@&V@/V@T/V@V@V@V@V@+V@|+V@/V@U/V@V@|V@V@|0V@V@[@ 3[@>[@Q>[@I[@ >[@A[@QA[@I[@pxA[@I[@Qm[@[@ @^@^@ @m[@[@S^@^@S^@^@Q[@[@[@[@[@[@[@[@T[@[@[@[@U[@[@ [@[@Q[@[@px[@[@u[@[@ [@[@Q[@[@ [@[@Q[@[@px[@[@Q[@\@ @[@\@S[@\@]^\@:\@ Ѷ@\@:\@^#\@:\@ ض@#\@:\@S:\@n^@ ܶ@:\@n^@^Q\@e\@ ܶ@Q\@e\@Se\@w\@ @e\@w\@S\@\@!\@\@^\@\@} \@\@!\@\@S\@\@ @\@\@P\@\@ @\@\@^\@\@ @\@\@S\@\@ @\@\@S\@n^@ @\@n^@^3]@n^@  @3]@D]@PE]@n^@ @E]@n^@^]@n^@ @]@]@P]@ ^@  @]@ ^@^]@ ^@ @]@ ^@^]@ ^@ B@]@ ^@^ ^@<^@ @ ^@<^@^*^@<^@  @*^@<^@^M^@n^@ @M^@n^@Sq^@^@^@^@^@^@U^@ a@S a@&a@U&a@)a@S)a@Da@UDa@Ga@SGa@ba@Uba@ja@Sja@ra@P^@^@T^@ka@Vka@ra@T^@^@T^@ka@Vka@ra@T^@^@P^@N_@\a@&a@\^@ka@Vka@ra@T_@ba@ '@_@ a@S a@&a@U&a@)a@S)a@Da@UDa@Ga@SGa@ba@U8_@ba@VI_@a@&a@ba@I_@a@&a@ba@S_@a@&a@ba@d_@k_@Qd_@k_@Td_@r_@\r_@a@&a@ba@w_@_@I_@_@T_@a@I&a@ba@Iw_@_@U_@a@|h&a@ba@|h_@_@ _@_@P_@_@|x_@_@P_@_@|x_@_@ _@_@P_@_@|x_@_@ _@_@P_@_@|x_@_@P_@a@&a@ba@_@_@J_@_@T_@a@J&a@ba@J_@_@U_@_@ _@_@Q_@_@px_@_@u_@_@ _@_@Q_@_@ _@_@Q_@_@px_@_@Q`@t`@V&a@Da@V `@t`@&a@Da@ `@t`@S&a@)a@S)a@Da@U`@t`@ ݶ@`@/`@P0`@t`@9`@o`@Ko`@s`@Ts`@t`@K9`@s`@UF`@t`@ F`@^`@Q^`@f`@pxf`@s`@uP`@[`@ P`@[`@Q[`@f`@ [`@^`@Q^`@f`@px^`@f`@Q`@a@@Da@ba@@`@a@SDa@Ga@SGa@ba@U`@a@@`@`@L`@`@T`@a@L`@`@U`@`@ `@`@Q`@`@px`@`@u`@`@ `@`@Q`@`@ `@`@Q`@`@px`@`@Q`@`@ @`@`@S`@a@  @`@a@S a@&a@)a@Da@Ga@ba@@ra@a@Ua@hj@_hj@Nk@UNk@`k@_`k@k@Ura@a@Ta@j@^j@Nk@TNk@`k@^`k@k@Ta@k@Wk@k@xa@a@ya@a@Ua@b@yb@b@Ub@Ec@yEc@Ic@UIc@Rc@yRc@Zc@|Zc@^c@U^c@ie@|ie@me@Ume@k@|*c@1c@TCe@Oe@Ta@k@Wk@k@x!b@4c@yRc@xe@yxe@e@Te@k@yb@c@Wb@b@Hc@4c@HRc@k@Hb@b@yb@b@Tb@b@yc@ c@y c@$c@U$c@4c@yRc@nd@ynd@ e@{ e@.e@y.e@9e@{9e@=e@U=e@Re@{Re@Ue@yse@ck@{sk@k@{b@b@yb@b@tb@b@yc@ c@y c@$c@u$c@4c@yRc@nd@ynd@ e@| e@.e@y.e@9e@|9e@=e@u=e@Re@|Re@Ue@yse@ck@|sk@k@|b@b@yd@e@|e@e@~Jf@ff@~f@f@~f@f@uPg@g@~g@h@~{h@h@~h@h@ub@b@yb@b@tb@b@yc@ c@y c@$c@u$c@4c@yRc@nd@ynd@ e@| e@.e@y.e@9e@|9e@=e@u=e@Re@|Re@Ue@yse@e@|e@e@~e@e@Ue@wf@~wf@{f@U{f@f@~f@f@Uf@Dg@~Dg@g@~g@g@Ug@h@~h@#h@U#h@h@~h@h@Uh@Nk@~Nk@Qk@|`k@ck@~sk@k@~7c@Ec@yEc@Ic@UIc@Rc@yRc@c@{c@c@Uc@d@{d@e@Pe@Ke@{Ke@Oe@UOe@j@{j@j@Pj@Yk@{Yk@]k@U]k@k@{Rc@Zc@|Zc@^c@U^c@ie@|ie@me@Ume@k@|Ce@Oe@Tc@c@{c@c@Uc@d@{d@e@Pe@Ke@{Ke@Oe@UOe@j@{j@j@Pj@Yk@{Yk@]k@U]k@k@{c@Re@{se@e@{e@e@Te@ck@{sk@k@{ e@.e@{nd@ e@H.e@Re@Hse@ck@Hsk@k@Hnd@ e@{.e@9e@{9e@=e@U=e@Re@{se@ck@{sk@k@{d@ e@|.e@9e@|9e@=e@u=e@Re@|se@ck@|sk@k@|d@e@|e@e@~Jf@ff@~f@f@~f@f@uPg@g@~g@h@~{h@h@~h@h@ud@ e@|.e@9e@|9e@=e@u=e@Re@|se@e@|e@e@~e@e@Ue@wf@~wf@{f@U{f@f@~f@f@Uf@Dg@~Dg@g@~g@g@Ug@h@~h@#h@U#h@h@~h@h@Uh@Nk@~Nk@Qk@|`k@ck@~sk@k@~Ue@ie@|ie@me@Ume@se@|e@j@{j@j@Pj@Nk@{`k@ck@{sk@k@{e@Nk@{`k@ck@{sk@k@{e@e@~e@e@Ue@wf@~wf@{f@U{f@f@~f@f@Uf@Nk@~`k@ck@~sk@k@~e@e@~Jf@ff@~f@f@~f@f@uPg@g@~g@h@~{h@h@~h@h@ue@e@~e@e@Ue@wf@~wf@{f@U{f@f@~f@f@Uf@Dg@~Dg@g@~g@g@Ug@h@~h@#h@U#h@h@~h@h@Uh@Nk@~`k@ck@~sk@k@~e@Pg@{Pg@Nk@y`k@ck@ysk@k@ye@f@{f@#g@{e@e@e@e@Te@Jf@f@g@e@e@~e@e@Ue@Jf@~f@g@~e@Jf@e@@f@~@f@Df@TDf@Jf@~e@Df@Uf@Jf@ f@(f@Q(f@0f@px0f@Df@uf@%f@ f@%f@Q%f@0f@ %f@(f@Q(f@0f@px(f@0f@Qgf@of@of@{f@T{f@f@g@#g@gf@wf@~wf@{f@U{f@f@~g@#g@~|f@f@f@f@~f@f@Tf@f@~f@f@Uf@f@ f@f@Qf@f@pxf@f@uf@f@ f@f@Qf@f@ f@f@Qf@f@pxf@f@Qf@f@|f@f@Tf@f@|f@f@~f@f@Uf@f@~f@g@g@#g@&g@Dg@~Dg@Nk@W`k@ck@Wsk@k@Wk@k@xDg@Nk@y`k@ck@ysk@k@yDg@g@~g@g@Ug@h@~h@#h@U#h@h@~h@h@Uh@Nk@~`k@ck@~sk@k@~Pg@g@~g@h@~{h@h@~h@h@uPg@Nk@y`k@ck@ysk@k@y^g@{h@yh@h@yg@g@g@g@Tg@g@h@h@g@g@~g@g@Ug@g@~h@h@~g@g@g@g@g@g@Tg@g@g@g@Ug@g@ g@g@Qg@g@pxg@g@ug@g@ g@g@Qg@g@ g@g@Qg@g@pxg@g@Qh@h@h@#h@T#h@{h@h@h@h@h@~h@#h@U#h@{h@~h@h@~$h@{h@0h@qh@qh@uh@Tuh@{h@0h@uh@UAh@{h@ Ah@Yh@QYh@ah@pxah@uh@uKh@Vh@ Kh@Vh@QVh@ah@ Vh@Yh@QYh@ah@pxYh@ah@Q{h@h@yh@h@Th@h@y{h@h@~h@h@Uh@h@~h@h@h@h@h@i@~h@i@~i@Nk@~`k@ck@~sk@k@~i@Nk@~`k@ck@~sk@k@~i@Nk@~`k@ck@~sk@k@~%i@,i@Q%i@,i@T%i@3i@S3i@Nk@~`k@ck@~sk@k@~7i@pi@~pi@ti@Tti@Nk@~`k@ck@~sk@k@~7i@ti@Uti@j@shDi@ui@ Di@Yi@PYi@[i@sx[i@^i@P^i@ui@sxNi@[i@ Ni@Yi@PYi@[i@sx[i@di@ [i@^i@P^i@di@sx^i@di@Pui@Nk@~`k@ck@~sk@k@~i@i@~i@i@Ti@Nk@~`k@ck@~sk@k@~i@i@Ui@i@ i@i@Qi@i@pxi@i@ui@i@ i@i@Qi@i@ i@i@Qi@i@pxi@i@Qi@j@{j@j@Pj@Nk@{`k@ck@{sk@k@{i@Nk@{`k@ck@{sk@k@{i@k@|k@Nk@y`k@ck@|sk@k@yi@4j@4j@8j@T8j@Nk@`k@ck@sk@k@i@8j@Uj@9j@ j@ j@Q j@(j@px(j@8j@uj@j@ j@j@Qj@(j@ j@ j@Q j@(j@px j@(j@Q9j@Nk@{`k@ck@{sk@k@yRj@j@{j@j@Pj@Nk@{`k@ck@{sk@k@{uj@Nk@{`k@ck@{sk@k@{j@j@{j@j@Pj@Nk@{`k@ck@{sk@k@{j@Nk@|`k@ck@|sk@k@|k@k@yk@k@Uk@k@yj@Nk@Wsk@k@Wk@k@xj@Nk@ysk@k@yk@Nk@ysk@k@yk@Gk@Gk@Kk@TKk@Nk@sk@k@k@Kk@Uk@Nk@ k@3k@Q3k@;k@px;k@Kk@u%k@0k@ %k@0k@Q0k@;k@ 0k@3k@Q3k@;k@px3k@;k@Qk@k@Wk@k@xk@k@Wk@k@xk@k@yk@k@Uk@k@yk@"l@T"l@(m@k@"l@Q"l@%m@^%m@(m@Qk@"l@u"l@'m@'m@(m@pl@"l@11Ol@cl@RQcl@jl@Rpl@m@RQk@"l@U"l@'m@_'m@(m@Pl@yl@]yl@#m@]l@"l@T"l@(m@l@"l@T"l@m@^%l@ol@Sol@l@Sl@m@S"l@m@^2l@Ol@Vl@l@V2l@ul@\l@m@\Ol@cl@cl@jl@Qjl@kl@m@m@Ol@kl@_m@m@_Ol@^l@Ol@^l@TOl@^l@_Ol@kl@Vl@m@VOl@jl@Pl@m@Pl@l@Ql@m@pl@l@Rl@m@p Ol@jl@p l@m@p Ol@jl@Yl@l@Tl@m@TYm@m@Yl@l@Rl@l@RQl@l@ R}#l@m@}# }#kl@ul@0kl@ul@ ul@l@0ul@l@l@l@_l@l@ 8l@l@Ul@l@_l@l@ 8l@l@Ul@l@_(m@Ym@UYm@m@Vm@m@U(m@Ym@TYm@m@\m@m@T3m@Ym@ Ym@m@]3m@Ym@0Ym@m@S3m@Ym@UYm@m@Vm@m@U]m@m@\]m@m@^m@m@Um@,n@V,n@-n@Um@m@Tm@+n@S+n@-n@Tm@m@P n@%n@Pm@ n@Sm@n@Pm@m@Qm@m@pm@n@pm@n@Rm@n@p m@n@Xn@n@Qn@ n@Xm@ n@Vm@m@Xm@m@Tm@m@V.n@Un@UUn@{n@\{n@n@U.n@Un@TUn@}n@V}n@n@T5n@Un@0Un@{n@S5n@Un@TUn@}n@V}n@n@Tn@n@Tn@o@n@n@Qn@o@^o@o@Qn@n@un@o@o@o@pn@n@11o@o@Po@o@PRn@n@Un@o@_o@o@Pn@Ro@]Ro@o@]n@n@Tn@o@n@n@Tn@co@^{o@o@^n@n@Sn@n@Pn@n@Qn@n@pn@n@Rn@n@p n@o@So@co@S{o@o@Sn@co@^{o@o@^n@#o@V{o@o@Vn@#o@\{o@o@\o@#o@0o@#o@#o@Fo@Fo@Mo@QMo@co@#o@co@_-o@Ao@-o@Ao@T-o@Ao@_No@co@0No@co@fo@{o@_io@ro@ 8io@ro@Uio@{o@_no@ro@ 8no@ro@Uno@so@_o@o@Uo@p@Sp@p@Up@p@Sp@p@Up@p@Sp@p@Up@p@Sp@p@Uo@o@To@p@To@p@Wp@p@p@ep@^p@p@^!p@ep@])p@?p@\-p@6p@ ||8-p@6p@U-p@?p@\2p@6p@ ||82p@6p@U2p@7p@\Hp@^p@\Lp@Up@ ||8Lp@Up@ULp@^p@\Qp@Up@ ||8Qp@Up@UQp@Vp@\{p@p@Sp@p@Sp@p@Wp@p@Wp@p@p@p@ ww8p@p@Up@p@Wp@p@Wp@p@p@p@ ww8p@p@Up@p@Wp@p@Wp@p@ ww8p@p@Up@p@Wp@p@ ww8p@p@Up@p@Wp@#q@U#q@/r@S/r@5r@Up@#q@T#q@q@Vq@q@Tq@0r@V0r@5r@Tq@q@!q@r@w#q@vq@q@q@!q@*r@#q@Hq@wHq@Pq@Pq@vq@wr@r@!r@*r@wPq@Yq@PYq@vq@Qr@*r@P#q@vq@Sq@*r@S#q@vq@Vq@*r@V6r@kr@Ukr@ws@Sws@}s@U6r@kr@Tkr@r@Vr@r@Tr@xs@Vxs@}s@Tr@s@!s@Xs@wkr@r@ s@s@!s@rs@kr@r@wr@r@r@r@wXs@bs@!bs@rs@wkr@r@Pr@r@Pr@r@Qes@rs@Pkr@r@S s@rs@Skr@r@V,s@rs@V~s@s@Us@t@St@t@Us@s@]\s@s@Ps@s@ut@$t@U$t@t@St@t@Ut@3t@T3t@t@]t@t@Tt@7t@Q7t@t@\t@t@Q!t@-t@TQ3t@7t@]7t@t@]\t@t@ ]Qt@t@ TQ@*@U*@u@Vu@{@U{@@V@@U@2@T2@u@Tu@{@T{@@T@<@Q<@u@]u@{@Q{@@]@@Q@D@RD@u@\u@{@R{@@\@@R{@@^'@<@q <@u@} '@D@RD@u@\'@*@U*@u@V.@O@_6@u@So@s@^.@<@q <@u@} 6@D@T6@D@UL@o@SL@O@_O@o@_{@@\@@R{@@V@@U@@P@@S@@S@@P@@\@@R@@p @@U@@s @@s @@p @́@\@@U@@s @́@s @@S@́@S@@V@́@V@@1@́@1@#@U#@@_@@U@#@T#@@^@@T@@V@@S@s@Vs@@S@@P@@S@#@u#@{@V}@@V@[@1[@_@0_@j@1j@s@0s@@P}@@V@@V@@P@@V @#@U#@@_@@U#@{@v }@@v #@@^#@@_#@<@}h+@c@Sj@n@S[@_@Q+@<@T+@<@~C@[@SI@[@Q_@j@Vj@s@V@@@@^@@v @@_@@U@ł@_@@]ڂ@ނ@Q@@^@@T@@U‚@ڂ@]‚@ł@_ł@ڂ@_@.@U.@@_@@U@0@_0@1@U@5@Tw@{@T@@T@O@SW@@S @'@S@?@Q?@@w@@Q@&@w&@1@@9@S@O@SW@@S @"@S&@?@Q?@w@w&@.@u # .@G@ # &@.@U.@w@_2@Q@V9@w@Se@i@Q2@?@Q?@w@w9@G@T9@G@UN@e@SN@Q@VQ@e@V@O@s W@@s @"@s @"@w@@U@"@_@ڄ@V@"@V@@]h@@]ۃ@@Q@O@s W@@s @"@s @@^h@@^@"@^@"@\@ۃ@]@ۃ@VŃ@ۃ@Q@@S@@P@h@]@h@@h@w@@p @h@} @h@_@!@^@h@V6@:@Q@h@\@@U@6@V@!@^!@6@^h@"@wh@@s @"@s h@"@_h@@]h@ڄ@V@"@V@@Qh@"@\h@@^@"@^~@@V~@@]@@]@@S@Є@PЄ@@]@@@Є@p Є@@} @@w@@_@ڄ@V@@^@@Q@Є@T@@\ׄ@@^ׄ@ڄ@Vڄ@@Vt@t@Ut@v@_v@v@Uv@4w@_4w@5w@Ut@t@Tt@t@St@v@v@v@Sv@5w@t@t@Qt@u@u@u@Tu@v@v@&w@t@t@St@v@v@&w@Eu@u@]v@jv@]v@v@]w@w@]t@t@St@v@v@&w@t@u@u@u@Tu@v@v@&w@t@t@Rt@3u@]3u@:u@S:u@u@]w@w@]w@&w@t@3u@S@@e@|@>@@@@s@@@Se@r@SG@@@@T@@e@|@G@@UT@@ T@l@Ql@t@pxt@@u^@i@ ^@i@Qi@t@ i@l@Ql@t@pxl@t@Q@@s@@sHe@r@sH@@s@@@Se@r@S@ެ@ެ@@T@@e@|@@@U@@ @ʬ@Qʬ@Ҭ@pxҬ@@u@Ǭ@ @Ǭ@QǬ@Ҭ@ Ǭ@ʬ@Qʬ@Ҭ@pxʬ@Ҭ@Q@e@@5@5@X@s@X@e@S5@X@sX@e@sH5@X@s@X@e@S|@@U@0@V0@ܳ@U|@@T@=@]=@ܳ@T@@P@@S@@S:@=@S@@P@@\@ǭ@Pǭ@?@\˭@٭@P٭@ݭ@^ݭ@@P@ٳ@^?@n@V@@S@@s@@S@@s@@SL@O@Sj@m@S@@S@@P!@?@P@@1@@T@@0@@T@@Q@@0@@Q@L@1L@@0N@@p0.@@v0.L@@v0.n@x@yx@|@U|@@y@@U@F@yF@J@UJ@@y@@U@@y@@U@ܳ@y@@v@@y@@U@F@yF@J@UJ@@y@@U@@y@@U@@y@7@:@L@@:@<@@lL@@l<@F@yF@J@UJ@@y@@U@@y@@U@@yL@@y@@P@̲@P@ذ@yj@@y@@P@^@L@j@3@:@P;@^@@ذ@j@@@@P@ذ@@@P@@@@@@P@@̲@ղ@aO@j@m@@@@@@ x+a@i@ +a @@ x+a(@;@ +a(@;@ +aG,@U,@,@,@.@.@#/@2/@2@2@}2@2@"2@(2@,2@H2@~@~@@@~@~@e@n@@@@ @%@*@N@@@@b@y@Ȁ@Ѐ@@@Ѐ@ր@q7@7@7@'8@7@7@7@7@=@6=@;=@d=@=@#=@P=@_=@1>@R>@W>@>@1>@?>@l>@{>@?@"?@'?@P?@?@?@@I@_T @e@iq @i}@@_@3@3@ @ ܳ@+a 1@'+ax@(a8a a/aB0aK aV!@ph #a~!@$ax I@ @0 ʊ@Ul @K J@$ @ (@C" @- k@C 0'@!$aCh bK@N!@%a $+a!`%aP# 60@;[" D}@h G@ N@   X@f @N aX!%aP tC@ = ra@s [" r@m@s!@P 0@5 (@@+a@ *>@[2 @@P &ag :@? RJ@[ @Y w@ >@9 + h  2@   1@ " @9  (@M " @L]  ?@w  J@   m@  ;@#  ' !@'a j " D}@h  n@8  Y0@ #@  @   rG@ ' l  (m@x  5@G  $@  -@ @  a  @2  a8 J  @vi  @  p0@ a  h@p, z@WA F1@c t@z @U +a .@ @ >@[!`'aX![@/ @ P" @" j@ 0@|Rn#a'a" @@ >@9a t@= J@Th o@5 `@ l*@K*a F@n p@G" @3 I0@ >,@c b/@&`$@ .n@Ra" @@ V?@9 @ /@5! =@[=Q @@EB %'()+-AUATUSHHIHHtBHHP HGpHt HO`H4HHLh@LHPHHAHtHk8H[]A\A]HHSHH0HH@L u1u,HC0HHRT u[HHcH8HÐSHHt4HGpHtHW`HH;0uH{$t H{H[ÐSHHHHtH{(HCpHt HS`H4HH{pH[ÐSHH[ÐHHw0HW8HGHGPGTGGGXLJLJLJLJLJG GHG(HGpHG`HGhHLJAVAUATUSHHW`HGpHHhLoHcGDHDH9GHv HPXHS`HCpHЃx8uHCHH+CH.LcHL+cAE~ATTHA9HS`HCpHЃz<uCDB EDBHCpHt HS`H,H}LsHI)}$t:HEHHHHEHHEHEHpHEHuHEHHPXMcLuLsHHS`HCpHDB`H = NHs`HCpHIcHpHQHCDyHHPXHS`HCpHЋSDP A{Du0EuHHs0HP(AHS`HCpH@<ASDB"Hs`HKpH,HcH;Mv5HcH}HEHS`HCpHHxuHHPXDcDDcDHS`HCpHMcH@B HS`HCpHHcCDHRDHS`HCpHH@HCD[]A\A]A^ËGTLOLWHM9A t Hcf t&GxLH5~ Hc DDHc69uDIM9uÐHWHHcft wxHHcЃHc9t+Hc6HcЃHc9u՘5DÐAUATUSHHAIHoHG@EHW`HGpHHrHFH9suHBHLGDHHH9sHHHs`HSpHH9BrH)HcHIHBCDB HS`HCpHH@HH9sHHPXDmLcEC@HHkHH[]A\A]ATUSHHGHW@HoH}HW`HGpHHcGDHBH9sEfLgHEHGHttuG7HHs0HP(HHP@uJ{Xu HHs0HP(H2L)HcHCHCHHSHHSHHJHKHRS@[]A\ÐHW`HGpHH@ GDHH@HGHHGHHHW0G@ÐHtDF HFHF@HFHFF,F<HGpHtHW`H;4uÐAVAUATUSHHIID(HHL3C8HEpHt HU`HH9tC0C4C(E,$[]A\A]A^AUATUSHHIAտ@HHuHEHPXIcHCHxHCHuHEHPXC$LHHHH[]A\A]ÐSHHGpHtWHW`H4HtJHP HS`HCpHHC`HtHHC`HCpHtHS`H<tHCX[USHHHpHu?@HCpHuHHPXHCpHHChHC`HChHPH9S`HcH4HCpHuHHPXHShHCpHHǺ@t Hx?@t fH@t HɸHt Ht fHtHkhH[]AWAVAUATUSHIPGPTuGTI|$0u ID$0I|$8u ID$8ID$pHt IT$`H<u-LIT$`ID$pHI$It$0@LPHLIIl$HAD$@EA\$TIEHcft*A\$xI$Hc5~ HcHc 9u҉HHcfSuHcuI$IcD$xMl$HHL)AT$UAT$@EIl$H!$AD$@EI$A\$xMl$LHHHH-t3HcË,tHcH4Lu؅uLHcH4It$HHHHHfe ~mI|$HHHH @/MD$LǸHHHH LIT$H׸HHHHH IT$H׸HHHH/HHI|$ HHx  IT$H׸HHHHHz  It$HHHHH HHHHHЉ It$HHHHH HHHHH؉ 9IT$HH׸HHH HHHD I|$  IT$HH׸HHH HHHD I|$ ؉ I|$HHHHXI|$HHHH+ I|$HHHHI|$HHHHI|$HHHHqI|$HHHHDI|$HHHHI|$LHHH%I$AT$It$LPP IM+|$AAD$@EIT$`ID$pHHz<u(R AT$DHIT$0HIT$`ID$pH@<IT$`ID$pHIcD$DHBI9D$HwGIcID$ID$HLÉLMl$tI|$HHoIl$HuIl$HLt5fZAD$XI$LP@t#ID$ID$HAD$T!A|$XI$It$0LP(IcID$ID$HLIl$HMl$IT$`ID$pHIcD$DHBID$HLIl$HMl$#I$LPXjH[]A\A]A^A_ÐATUSHHHGpHt HW`H<u8HHS`HCpL$HHs0@HPI$HCpHtHS`H4HHH[]A\USHHHHCpHt_HS`HH9tWHt0HCHS@HS`HCpHHSHHPHS`HCpHЋSDP HS`HCpH,HCXHuH[]ÐUSHHHtHHCpHtWHS`H<tLHCHS@HS`HCpHHSHHPHS`HCpHЋSDP HCpHtHS`H<tHHS`HS`H,HCXH[]USHHG 9G|EG HH4H(HuHHC( HC(H{(uHHPXHS(CHKHcȋCTD-CTH[]SHGGy HPXHcSHC(DCT[HcWHG(DHHHHHHHH=HP0HH--HS@HH@HHu{8tCCHH HP0H1HH@HHu{8tCCHH HP0H@HH@HHu{8tCCHH HP0HFHH@HHu{8tCCHH HP0HHH@HHu{8tCCHH HP0H9HH@HHu{8tCCHH HP0H4HH@HHu{8tCCHH HP0H[USHHHӉHt4HHu%HHHHHw HcɈ\ D H[]AWAVAUATUSH4L$IL$8H$84HHL)HD H@H9uHD$hfD$pH$Ll$pALMMnfAnH$I9r uHT$pHI9K O HcDA=u =w HAAhIc9McALs@C@CDCHHHCPHHCXHHC`HHChCpCtH{xHc HcDAƾ)HcHHދD$0FD$4FD$8HFHD$@HFHD$HHF HD$PHF(HD$XF0D$`F4D$dH8H|$h2 $CCHCHHCHHC HHC(HC0C4Hs8J CCHCHHCHHC HHC(HC0C4Hs8D$0CD$4CD$8HCHD$@HCHD$HHC HD$PHC(HD$XC0D$`C4D$dHs8H|$htHs H D$0D$4D$8HHD$@HHD$HH HD$PH(HD$X0D$`4D$dH8H|$hHs H D$0D$4D$8HHD$@HHD$HH HD$PH(HD$X0D$`4D$dH8H|$h\CD$0CĉD$4CD$8HCHD$@HCHD$HHCHD$PHCHD$XCD$`CD$dHsH|$hHs8H$4HD$PHxH$4H$4HxHt5HPHt  PJHЅ H$ 4HD$PCx H{ H|$PcH{ H|$PEH|$h L$8CD$0CĉD$4CD$8HCHD$@HCHD$HHCHD$PHCHD$XCD$`CD$dHsH|$hH|$hCD$8HH|$hCD$8{CD$8k*D$8\CD$8LCfWD$84*D$8%*fWD$8H{8H0HS(H(HHPH@x HD$PHsH|$XHH@H@HD$XHpH;ptHtHSHH@VHSHED$0CD$4CD$8HCHD$@HCHD$HHC HD$PHC(HD$XC0D$`C4D$dHs8H|$hSHD$HP @D$0CD$4CD$8HCHD$@HCHD$HHC HD$PHC(HD$XC0D$`C4D$dHs8H|$hSKHD$HH PhD$0CD$4CD$8HCHD$@HCHD$HHC HD$PHC(HD$XC0D$`C4D$dHs8H|$h  HSH@@ @@HD$HS4P SHKHP@ @@HD$HS4PHCHD$@HCHD$@@ oD$dbD$dUD$dHD$d;D$0.D$0!D$0D$0 D$0CD$0CĉD$4CD$8HCHD$@HCHD$HHCHD$PHCHD$XCD$`CD$dHsH|$h(HSf@@@@@ HHPHD$@\;u"HS0H|$H|$(INjD$ Hs0ID$ AGAGAG IIGL|$@CD$0CD$4CD$8HCHD$@HCHD$HHCHD$PHCHD$XCD$`CD$dHsH|$hSHD$@PHSHrHCHD$@PbD$0XD$0CD$4CD$8HCHD$@HCHD$HHC HD$PHC(HD$XC0D$`C4D$dHs8H|$hELHH)HMM)MH[@D$0G@D$4GDD$8GHHD$@HGPHD$HHGXHD$PHG`HD$XHGhD$`GpD$dGtHxHt$hHcAMHchwHcff9uHcHII9uHD$hHxHt5HPHt  PJHЅ H$ 4H$84Il$8AHL)HHxHt0HPMt  PJHЅ H$ 4H@H9uwHH$4HxH$ 4HHD$hHxH$4HH$84Ml$8HL)HHH$4H@L9uHH4[]A\A]A^A_AWAVAUATUSHHIHÿIHu IĿIHu IHD$HD$D$ H|$0HH|$HLuMtCIAAHH|$HcLLDHHH9rѾhH|$Ht /vH|$Ht MH$LH$H$H$H$HxH$8HúH$HHH$lH|$HŃ=u!IAnLd$8DD$P4$H=H=yH5HbH5H$H$HVHH$HxH$9'HHT$0H=LH$ H$ HVHH$ HxH$:H=H=qH=[H=EH=(! HH|$HHHH9@H=H5HH5H$0H$0HVHH$0HxH$;HT$0H=H=H=H=|Mu;HH8Ht Hp Ll$D$HH|$LHHH9rH5HH$HxH$<oHH$]HH$HxH$=?HH$ HxH$>!HH$0HxH$?HH|$0HH|$0HH[]A\A]A^A_HHHHHHHHHG8HxHt:HPHt  PJHЅHHt$HSHH?H{H;H{H[fatal flex scanner internal error--end of buffer missedfatal error - scanner input buffer overflowout of dynamic memory in yy_get_next_buffer()flex scanner push-back overflowout of dynamic memory in yy_create_buffer()out of dynamic memory in yyensure_buffer_stack()fatal flex scanner internal error--no action foundout of memory expanding start-condition stackstart-condition stack underflow (c) Georges Khaznadar . This program is free, licensed under G.P.L. Usage : chemeq [-m] [-l] [-c] [-w] [-C] [-n] [-e] [-s] [-v] [-h] default is equivalent to 'chemeq -mlcwCn' chemeq reads its standard input which must be a standard chemical equation. It outputs many strings useful for chemical As an example you can try the following command : echo "Fes -> Fe^2+ + 2 e- (0.44 V)" | chemeqinput in flex scanner failedERROR %s at %d Chemeq version 2.12 calculations.vector::_M_insert_auxmemory exhaustedVonly 'V' allowed as unitnonexistent atom : %ssyntax errormMlcCwnesvhchemeq_optionw_chemeq_optionchemeq_inputw_chemeq_input '   '#7 #  !!)) !)014302!,&1066555555555555555555555555555555  1 !,"#-2.#*$%&'( ')"&!33))40144)2)/02)/+55555555555555555555555555555555556555555557755555555555565555555555 55755555555555RSSSSS&S5SSS5SSSS2SSC>*/S*SS=4S/SSS5@:87SM*        &(+,-% 1   >?\CDE  78:;ST[]0 H # >?@A')/0+ !,-789:;6H&$123K4NO*]RSTDVEXWY<ZIJ(LM')[\=^>?F@UA !5/E%  )*J0 ,1Q=X;%%(%%;<>K@P.BPC QG "#%. #-1!'*%&$#20,(+) /  "   !!"#$$%%%&&''(())))*****+,,--.. HH H=AWAVAUATUSHHHIHGH;GtDHtHPHH{HGHCI$HWH)HHtHH)HH]"HH)HHH H9IL9LFIHH)HHD$AMtJ<IHD$IDHtI$HH3MI)IMtJLOdHCL)IIMtJHLK,H;HtL+HkKDHC>IHH)HHD$AMIHH)HHD$I,H[]A\A]A^A_   IL         9FlexLexer11yyFlexLexer8y4std7gKSY_W<cjDg}W40@^)^^^^_0_V_q______`7`b`}`````a1aVavaaaaab b:bTbc*cIchccccc d)dIdidňdƞdǾddde5eLejeΉeϧeee f %f  ^ \ n Ef Kf > eq Qf Kf Kf lt Qf Kf Kf \ Xf Xf   Xf Xf Xf  Kf ^f2 ^f Xf  ^fV ^f Xf  ^fz ^f  > > df I I Kf Qf df dfeof $I (I df [  \\K_cqfdwfqV\fslwf fyf\ 5f6g7gp a5h a f5h\y"# !x{.|:oMO  %hn2#7^B_hMh Qfjh Qf06jh!IOGh!bhGh!{Gh  aGh aGh f f!Gh   f! Gh f" +Gh f#aCIGh$oa]Gh f #$a;h#(aAh a#,Gh;h#2Y;h#6Y ;h":#Ah#A ;K;h  ^"I_t;h   ^#Q ;h  #YQf;h ^%b a ^ %k a ^ %t a  ^%? a Y Y%_ a e e% a a a% a ^ ^\  " Ah   "  Ah&Mh'" ( Ah(8 C Ah fS ^ Ah Shn Ah Sh   Ah Sh   f Ah ^  f Ah ^ f  Ah  ^ f'( 3 Ah\)"YhL W Ah Sh)*Yhp { Ah ^)5Yh Ah ^)]Y Ah)he ;h*endpY Ah*end{e  ;h)}4 : Ah)qS Y ;h)}r x Ah)q ;h)  ;h)  ;h)  ;h+  Ah  ^+. 9 Ah ) R X ;h+m x Ah +# Ah)+Qf ;h):M ;h )KA Ah *at`M;h *atsA5@Ah )YhYdAh Sh)Yh}Ah ^)YhAh ^)DYhAh Sh)UYhAh Sh  ))Yh'Ah ^ )Yh@KAh ^)YhdtAh  ^+Ah ^,YhAh Sh)LYhAh Sh  )YhAh ^ )hYh'2Ah ^)xYhK[Ah  ^+pAh Y  ^)YhAh  Sh)YhAh  Sh  )gYhAh  ^ )Yh(8Ah  ^)'YhQfAh   ^)9YAh Y ^)RYhAh  )bYAh Y)YAh Y Y)Yh3Ah   Sh)YhLkAh   Sh  )YhAh   ^ )YhAh   ^)YhAh    ^)Yh-Ah Y Y Sh)YhF`Ah Y Y ^ )*YhyAh Y Y ^)?YhAh Y Y  ^)dYhAh Y Y a a)nYh 'Ah Y Y ^ ^)yYh@ZAh Y Y Y Y)YhsAh Y Y e e#YhAh    ^#YhAh   ^ a  ^ fa8  ^ f) Qf;h a  +{Ah Yh)^;h)^;h)5;h) ;h ^  )6 *:;h Sh )E Sc;h ^ ) |;h ^ )c ;h Sh )  ;h ^  )  ;h ^ ) %5;h ^ ) N^;h Sh )/ w;h ^  ) ;h ^ ) ;h ^ ) ;h Sh )>  5;h ^  ) N^;h ^ ) w;h ^ ) ;h Sh )S ;h ^  )> ;h ^ )_  0;h ^ )^ IY;h Sh )j r;h ^  )} ;h ^ ) ;h ^ );h  )\&;h Sh)\?T;h   Sh)\m;h   Sh  )\;h ^)\;h   ^)\;h   ^  aH-a a a f 4au-a a a f-^-2-.. KiRiUj[j\9j]Xj^vj_j`j >/3y000000 0000000 000000/g000000 0/00000/00001<2e3%h3Qf'FLj4Yj\5J5iy6 7dec67hex 66 7oct@688"8&8)8,8/ 83@6669J8<6N e6Q6V6Y7appl r7ateo7inw7outz57cur( 7end(!Rj!Sj!T)^!\ k!e#k!h=k!iRk1 9]m}\,l } Gm, } \-^-2,"gk ' } ^ K,"gk? E }:put"gk] h } h >^;"?gk - \} \1!9#g  \-^-2*get#< ! #G #>^1!9$!8!C!\'$T!Z!)$zs!y!$^)$z!!)$z!!-^-21'")a"!" ^5^< "%lO"=%p-t t t&W">&[t-t-t t t t/'Y"00 '[U#'`" ']wk'a"'b"'c" '^}k'f" # "'m"&# "'t"?# "?'{" " "(`#(ewk(fwk@(l##k@(p##k k kA_T1wkA_T2wkB #\M$Rq##ks$$k ky#$.$k\Ch iR$-% #\$UTqu${$*ls$$*l 0ly$*l\)r$---Qf)%$ )Qf$%k Sh ShA_Tp $B % R$D0'M1E0'%R$'$'"'%('%%6l'%%6l 6~l l)*DT2W6b6l l)*P`2{66l l)*_H266~l l)*nT266l l)*xH266~l l)*T2 77l l)*1/7:7~l l)*1S7^7l l-A_Tp'\-$-# 1 +m \R8U_atbtctdtq77us 88u uy(838u\Ch i7-t 7H:O87R8S8T8@V88$u@Z88$u *uLe8$u 0u MW 8 KsXc8 n7 q6u,929;<<Nu)G:<<lu)P;<<Nu)Y:<=lu);="=lu);;=A=lu+V=f=Nu ; :);==lu)Qf==luMA==Nu ;):==Nu ;):> >lu ;+ >+>lu ;*at*:C>N>Nu ;*at<:f>q>lu ;)G:>>Nu)O:>>lu)W:>>Nu)_:>>lu)n:? ?Nu)v:%?+?lu+@?K?Nu Zu+`?f?Nu,k:~??Nu : Zu+??Nu : ; Zu,:??Nu :,:?@Nu : :+T@#@Nu fu+e8@>@Nu+S@c@Nu ; ZuMw@@Nu  Zu+@@Nu : ; Zu+>@@Nu : t)8;@@lu ; ^+FAANu : ;A_Tpt-7.. :,vh,wh,{(},E},a},},},},},}, ~,&~,F~,f~,~,~,~,~,~,~,,5,h,[,P,k,,,,-_A\-`i-b-c -d!-e7-fM-gb-hx-i-j-nԀ-o-q-r9-s_-uu-v-w-x-}-~ԁ---->-I-^ + C  t t-tbC t*CNC t-tFQf/CO3tA_Tpt t t tC j  a qf-aD  ^ wf-^lADOptA_Tpt t t t1\EPAD`DkDN\,eDD):eofQfDD),QfDD):badQfDD)MDEN e'EEN)=E2E=E) ^K^-^-2QwyvE y yQsyE y y ADQE  QE  Q.E-! !RJgkF-^-2 gk1~F(b-F8F{ r-^-2-:str~qFkFqFNS%zF-t t tQ؇FA_Tp[ R*CF-t tR>tGFQf-t-t t t tR *C:G-t tRPtvGFQf-t-t t t tQɡCG-a Q.ZCG-a a a jQQfGA_Tp^ f fQ.rCH-a a a !R{tCHFQfA_IItA_OIt t t tRtHFQfA_IItA_OIt t t tRtHA_IItA_OIt t t tQ&ktH-t-t t t tR&t"I-t-tA_Tpt t t t uRktTI-t-t t t tR&tI-t-t-7 t t t uS%I-tA_Tpt t t uR gkI-^-2- gk Sh1HJ*strJJJ5-^-2- IRgkqJ-2 gk ^R4gkJ-^-2 gk  +I +J1J-^-2-Tcin<BU=7U>7VJB /b0LgkVK-^-2 gk ^ KW:8 FXE[ef%f,-:(M=?a@^AqfBwfOKK}fQLL}f fV L+L}f\,YKCLNLf K,]KfLqLf K,cKLL}f K jfMmLL}f K K,qKLLfMLL}f K wfMMM}f KA_Tp^ K17oM1:^1;^1?0h1@^-\DOHa5C5C5C'MMNMM )MMN)MN"N);NAN)oMZNeN \)~NN)oMNN \)MNN M)NN ) oMOO )2O=O )oMVOaO )zOO-a-DQH^5C5C5C'OOrNOPr x)O!P'P~)O@PFP~)_PePr)O~PPr \)PPr)OPPr \)OPP~ O)QQr ) O2Q=Q~ )VQaQr )OzQQ~ )xQQ~-^-17Q1:j1;j1?0h1@^-[17;R1:^1;^1?0h1@^-^17}R1:mk1;mk1?0h1@^-[17R1:rk1;rk1?0h1@^- \:PT=?k@kAkBkOSSkQ-S8Sk kVHSSSk\,YRkSvSk R,]RSSk R,cRSSk R jfMmSSk R R,qRSTkMT'Tk R kM;TFTk RA_Tp# R:U=?l@lA lBlOTTlQTTl lVTTl\,YmTU U$l T,]yT$U/U$l T,cmTGUWUl aT jfMmkU{Ul mT aT,qaTUU$lMUUl mT lMUUl mTA_Tp% UT:|W=?t@tAtBtOCVIVuQYVdVu uVtVVu\,YVVV u V,]VVV u 'V,cVVVu U jfMmWWu V U,qU)W/W uMCWSWu V tMgWrWu VA_Tpt U2yX 2Ƿ7 27 27 27 2̫72WW u W 2X u W W 2X u W2W4X u2uMX u 2gX u u2X 2<8A_TptS2׬XA_Tpt u W t-7DZHt5B5 C5B' YYON Y+YO U)XDYJY`)XcYiY`)fYYO)XYYO \)fYYO)XYYO \)XZZ` l X)f1ZgnZcnc>gcpfhg^g^cKg(Mc(Mcg`<6g<:a<;a \ Qfccccggga[jhkc^ bh c\lrem d\ eph^ jh k \lrem l \ mh^ vh w\lrem x\ yhG  icim\&i jf jf^?Ki?g?^ ?&in66i6i6i6\c]icL\a^ib]cVia^ib] 5nKiUjfi jf \ ^Q\j ^ ^Raj \RXa9j a ^Q^Xj a ^ ^^vj ^ \0^j ^ ^^j ^ \K^j ^ ^ ^ca [c @4[ @jck gQ@\#k )^ jQ@)^=k )^ jQ@jRk ^Q@jgk ^gm [ \c"cU#cZ#gk wk^ &klZed '\ (y^ )kc#c#g#g#cRgPTcPTc#gM$c%c%c#%g%g#%cUTgUcUcR$g(%c:%g%g%g:&g%c-%c1g&gH*gk,g1g-%c1g2g7g1c7g2g4g4g 50 /l1; 1lll lg7cl l 8kmoi :\od ;\ <*m:mkm \ \M =NmTmkmp >dmkmcl( Oep Pep Pep Qy^lZed R\lnb R\lno R\ R\  Ummep ^ \ ep ep Z nnep kp, ^^,n2nvp:Z _\HnNnvp:sq `\enknvpqsq a~nnep \M bnnep \M cnnep \, d\nnvp, eepnoepM fo"oep ep, gvp:o@ovp, hvpXo^ovpM iro}oep epM joovp |p l, k \oovp lr lepo epM mopvp l p \M np&pvp l, oQf>pIpvp kpp pYpvp \cqmgqp qmcqpglgp ls {p0tgastsol {p tlal eplch \lnb l lno \lt p  q#qt ep \ \ \ 3q>qt t, tVq\qt, \tqzqt, Qfqqt tM qqt \ \, lqqtqadd qqt lqsub rrt l, p5r;rtM OrZrt pM nryrt \, \rrtM rrtM rrt |p, \rrt, 7s stM  s+st l, QfCsSst l Qf, Qfks{st l Qf, Qfsst l QfM sst lM sst lM stt l, Qft(tt l ^, Qf@tPtt l Qf, Qfhtntt, Qfttt, ltttp tt \cpgt pgqmctctct tgtgtcUg|Wc|Wc7gR8g7cc8g8gc8g8cW8c:g9c:g[;g;gAAg:cAA w:, \uuw tM uuw tM uuw wM uvwM vvw |pM 3v9vwM MvSvwM gvrvw lM vvw lM vvw lM vvw lM vvw lM w ww lM !w,ww lM @wPww l Qf, \hwnww, Qfwww, lwwwM www \uwwcrucw ru0 \{ w w lval \  7xGx\{ w w, w_xexb{, w}xxb{M xx\{ b{M xx\{ b{M xx\{ QfM xx\{M yy\{M (y.y\{M ByRy\{ \ \, ljypyb{, \yyb{M yy\{M yy\{ lM yyb{ lM yzb{ lM z$zb{ lM 8zCzb{ lM Wzlz\{ l l Qf, zz\{, Qfzzb{, 7zzb{M zz\{ , Qfz{b{, \{!{b{, 9{?{b{v P{\{ \cwch{ ww {00000000^@d|li\ld\lr \laleplmtlcq\{ lmbw(y^0ltp4ls8x-|3|Tx@|K|T\yX|T {/}0000tMul0tInt000000tLsqtRsq0tSpctSoltGas0000 [R \>} >}cD}z{  \a}| ^} \}~ ^R  \} ^R ^} jf jf ^ ^ idiv h} \ \R 3a} ^R h ~ \ \R [\&~ ^ ^R f^F~ _ ^ ^R ^\f~ _ ^ ^ ~ ^ ^ ^ ie v\ x~ [Q \~ ^ jQ \~ ^ j \Q [~ ^ j \R \ ^R i^5 a K_ ^R b\P a _R hk \ \R $\ ^Q \ ^ j \Q [ ^ j \Q '\ ^ jQ \ ^ j5: cA\Q5\! R5<\7 R5>\M Q5\b R5\x R5\  ciR5na a \ R5Ԁ ^ ^R5^ ^ ^ ^ R5 ^ ^ R5\9  \ \R5#\T  TcZ iR5 \u R5\ iA,\R5~a a5N ^Q5\ԁ ^Q5\ ^ ^5 5L  aR5P\>  a \ ^i5Q5a^ aR5\y \  c@'2aa'\ \$\(\,\0\4\8\< ^cBG=[ ;\cXg[ tc.[gXgZcOgjc3[gOgPcoMg ac8[goMgNp\\ e(20k8^@\DaH\P\T\X^`^hqpDxawwae\\\\\\\T_} 'p} 2 kP}\iʅ} yy} 2 \%} yXCN} 2+cn} y+}2\}φ߆} 2 kD\}\ )9} a \" Wg} ^ \ } ^+} \ a)\·ԇ}+}+} y 2+)4} y+[IT} \+sio}){\})D})Dƈш} D).\}v0} =e_a`\a\b\lw 9?\,A^ĉʉ,B\E G1A 2 \H^i I 2K\,N\Њ 2 kV  2 k,Y\%+,[\CIp\Y \c\c7ccDcg m\dccg c܋__p^n ;h $99^ B\_B_ ^cj%h=[|0d|0\c%hW[Ɍ|A|A\C%hq[|N|N\ c!#!4II^ cADJDcxx^ Ncmcjfv^ } c  ֍^ O Gh-8TZ| Z| _ Ef Kf}__s Xf2~ ^f~ Xf__n __dba__sb^__nb \E__awy__bwyvE)__asy__bsycEkD>II )Er__a__bE__a__bDIDʏIDُID x|egcm $ 3I|lmXyy| <\| <\ kmx \{x3 Ɛݐݐ~" Ah Shw=9W *ݐ__s*^}aV__sa__c\{a__sa__c\K }fL‘^wё^ f{Cm^ __pCm^/W>>__pV|C u tZWbb `Yv__i O UgEcEEŒ-!__f.E-^-2~J gkK  f\'>__as> fR]o^ 5h ݐ^C!ǓIF֓Ex 5~a__a5 f ITݐcd| |kvv TcFF|br {V֔>__pmV U3"-t t t~F -t|%zt|%ztSW/F>__pV3VU`>7ozz u8 $ul9 __ncU jfF-t~tFlFQf-t-t~>t~>t~>tC0hG-t~ t:GٗFQf-t-t~Pt~Pt~PtvG-a G(-a|.Za|.Za jGGA_Tp^ G L f f[q-^|3aG-a|.ra|.ra_ ͘__pa~a~ahܘ__n 4-a~a~a__a4 4 fHu-a~a~a__au fcy!cHZ! !!ΙٙH5FQfA_IItA_OIt~{t~{t~{t0hCHFQfA_IItA_OIt~t~t~tHÚA_IItA_OIt~t~t~t["-t-t|&[t|&[t|&\tHC-t-t|&kt|&kt|<H-t-tA_Tpt~&t~&t~&t uXЛA_Tpt__a2Л__p2׍W|2՛ u t"I-t-t~kt~kt~kt+Y+6b <EPוg.[[-t-:~~ P P9TI-t-t-7~&t~&t~&t~& uIE-tA_Tpt|%t|%t E u:Y|__p8__nI<וzs 7?{ɝߝr  \'x g wd ww )) wq=\tn \d \pkta epc \n \d \;rÞtat pknҞval a\ epm4nom U^num U\s Uepg UepnCXn c\^og|s iep3|v^I-^-2-~ ~ gk ShcHJJ  r** t>U__f \y$U߆U }nԠU2kUs?UsT|Q @}Usy¡$?$UUg nmsg^$==3 XTTU2P£bufa\Q ./>NeY/|>NeY TT98buf"^"\TTQ Q $ &G^__a^ f|L ܋-8QGɌ ХߌԌp R{ T  Toptr^?%by x""Us¦צ^W¦ ;" q"$5Us¦UsUsy09~ vv ͨ9v9vyUs_~2~k:SUT Q}^~ptr^~'ш0a1a2\i2\3\*\\bcye\3Ҫj\SsqdJUsT  UsUsT 5'S qdJUsT ֫UsT Us lUDPaY~8UD~\a8 ƭc\aau\aaUsT c\"\~FUs\UsrUsUsƭUsԇ5ήUK#byUUpCby2V\eήUvTs}^߯~'ʅ;2\^by ү@pU@ͰүpU } $ &#UvT UvT #UvTsQ|nf[UsUsѲ2\=үpK\SQqdJTv3$UsT UsT ݐ__sh^M zf4D5a5a6\ٴi \% *[Ѳ%+dk<oU U}T s $ &3$U T}Q3U Ts3$a} 7r}~T0Q:E} 8WU}~T0* 9H;T/a} :r}~T0Q:a} :"r}~T0Q:a} =dr}~T0Q:a} Gr}~T0Q:a} Jr}~T0Q:P\GnoDPU|lU|Ts~U|U|U|ηU|U|y i8'U|EU|Q @_U|uU|U|T %vFX2UsUsQ @#/UsQvUsfiyUsUsNֹ&yUsUs4F [\E_'eүpShqdJUsT T0@oUsT o U޻үpUUS2dqJUUTTt"UU\\- msgaT QUU1MJ9-2~9__s^ gkY 뷽+ !KT Q? + !KT Q4 f+ !KT Q- + !KT Q-qJ-^-2~4 gkEI__c^! 88__ca^  + !KT Q@$S=3Sqؾ75  aVK"*  "UsUsT:Œ5' E  ]+ !KT Q1$S=3Sqؾ75e  VK"*  "KUsUsT:Œ5' E  + !KT Q@$SQ=3Sqؾ75   VK"*  "UsUsT:Œ5A' E  + !KT QF$S=3Sqؾ75  SVK"*  "UsUsT:Œ5' E  N+ !KT QE$S=3Sqؾ75V  VK"*  "<UsUsT:Œ5' E  + !KT Q9$SB=3Sqؾ75  VK"*  "UsUsT:Œ52' E  + !KT Q4$S=3Sqؾ75  @VK"*  "UsUsT:Œ5' E Ubaac\VrfUTTsV rfUvTs l\oC;A_Tpt~3t~3t~3t5J@Jh__n8;__s8^=A9__nDA_Tpt~pt~pt~ptrJ@ו?:__x?? It Dě 2آ2&ڛKw̗TOC7]K,/Tv"VAXAY:Z:;WaTJpm :| =VXsYĖݖӖQU3$ aě 2آ2&j6֜C&ui&5*Ú&u&]5th\ٙ &/U}Q|3$*q֜C*&ui*&5**Ú*&u*&]5*th\ٙ* *&**/U|TvQ~3$J ocYДĔ tgd|g d|K|%5v 5 +?Iaו__xa Zu\G z0W  \\ 006TT[ȴyyn\\\d|\Z k: I 'Z >k: I '/%АƐUsT XJ/% АƐUT1~ $ &6$s"#8jC/% АƐU Ts8jGN/% АƐU Ts8]L/%АƐUTs8|OI/%АƐUTs~|S/%АƐUTs~YXD/% АƐUTsxY АƐTJY+ ܋-8>QGɌ ߌԌp R{ T  T ZNӝɝdѲ+UT Q0^eV/%АƐUTsxhѲ+UT Q0 i2АƐUTs}ߝ|: I' T ̕}: SI ě 2آ2&QsX/% АƐUTs8.QG=X?/% АƐUTs8. zQG=]/%АƐUTs8\}ukI mbX\4ukI mbXeÞ ܞҞ^/%АƐUTsx*b)x_F9)UTs0Q3j,UT Qs0HUQU(Y/% АƐUTs4MCX?qg4pMCX/% АƐUTs8Y+8TY/% АƐUs8T|T1T> ܋-8KQGɌ ߌԌp R{ T  T|UU8gQGɌOߌԌp R{ T  T ܋-|,,8T|u8TU txxUTs8.y.yQ1-Us8T NU QvU0uQUHQU QU QU(U Uva[0b]c}ad|Fb]a^Vb]\`G\j30aaa Gyi \ch \ Qfw Jy!QfVrhfUyThVrfUyTv!issJ|58Tm8TUT~QU|TQ8QUUsT|Q0 U|U|V!qrfUyTlSo4SFUT|$&=3$*U=3$ -=30=ԟȟ . ܋-!K$0y=308T$ 3=34ԟȟ  ܋-!K$4=348T$ 8O=3$ ;=3$ >=3$ A=3$ F/=3$Gk=3Hԟȟ  ܋-!K$HS=3H8T$ I=3$ J=3$L:=3/ SvH>t $ T=308T4,8THk8TU }U }U }U }U -UyT@OUyTswUvT}QsUyTs=>fy$zlzUCz/QyRv0.yyyzylzUCzQyR0yyUyUyUsa^Wb]{~]\~]\W]nbZ  Dk : I 'Z k : I  ' U T QMU T QU T QU T0Q0U T Q5i5i5iak k + d|  \ #\ d| a[]  na[b]2"  -  a[b]^:   a[ b]I7  a[Lb]^Sc  <b  a[b]hm     \ \ a[b]5Y3  a\Hb]c_  8a\tb]  da[b]7    a[b]p    ind a ܳ } ^K 9MxDMQ@RGR~RRRR C_ ^  \g!g ! 5 ^ CaJ ^R ^e ^ ^iD2eR ^ ^Q\ ^ ^Qa a ^ ^Q}a a ^a ^ \R5d\  ^da/ ^ \^Q ^ jf [C[^j R5l\ a ^dQa ^ ^caKQE\ \  ^c l l gh{ l l t\ h ^ ^% U9: ;  : ;  : ; I8 9: ; : ; : ; : ; I .?: ; n< I &I .?: ; nI<.?: ; nI<.?: ;nI<.?: ;nI<.?: ;nI< : ; I8 2 : ; I2 .?: ; 2 <dI4.?: ; 2 <d : ; : ;I8 .?: ;<d.?4<d : ;I?2 < : ; I8  : ; I?<.?: ; nI< .?: ; nI<d!.?: ; n<d".?: ;n<d#.?: ;nI<d$.?: ;nI<d%.?: ;n<&.?: ;nI<'.?: ;2 <d(.?: ; 2 <cd).?: ;nI2 <d*.?: ;nI2 <d+.?: ;n2 <d,.?: ; nI2 <d-/I.</ : ; 0( 1<2 : ;2 3 : ;I?<4.?: ;2 <d5: ;I2 6 : ;I?2 < 7 : ;I?2 < 8 : ;I?2 <9.?: ; L 2 <d:.?: ; nI2 <d;.?: ; nI2 <d<.?: ;n<d=.?: ; <>.?: ; I<?.?: ; nI<@.?: ; <dA/IB<C : ; 2 D : ;E : ;2 F0I G: ;IH : ;I8 2 I.?: ;nI2 <J.?: ; 2 <dK.?: ; 2 <cdL.?: ; n<dM.?: ; n2 <dN.?: ;2 <cdO.?: ;I<P.?: ;L 2 <dQ.?: ; I<R.?: ;I<S.?: ; <T4: ; nI?<U4: ; nI?<V4: ; I<W.?: ; n<X9: ; Y.: ; I<Z$ > [$ > \:: ; ] ^ : ; n_ : ; ` : ; IaIb!I/ c Ide.?: ;I<f : ; g Ih&i.?: ; I<jk!l : ; I8 mIn: ; o : ; I8 2 p.?: ; n2 <dq.?: ; n2 <dr.?: ; nI2 <s : ; nt( u.?42 <dv.?: ;n2 <dw : ;x.?4<dy.?I4<dz{.?: ; I |: ; I}.?: ;I ~: ;I.?: ;I<.?: ;< : ;  : ; I8 2 .?42 <d.?: ;nL M2 <d.?: ;nIL M2 <d I8 42 .?: ; nL M2 <d.?: ; nIL M2 <d I.G  4: ; I.G dI4.: ; I 4: ; I5I: ;I: ; I.G: ; d.G: ; d.G 4: ;I .1n@dB1.G@dBI4I4: ;IBB11X Y 1: ;I1X Y111I1X Y 1 1RUX Y 1X Y1RUX Y 41.?: ; 4: ;I4: ;I 4: ;I4: ;I  U4: ;I : ; : ;4: ; I.1n@B.?: ; nI@B.?: ; nI@B: ; I.?: ; n@B: ; I1RUX Y.?: ;nI@B1RUX Y 4: ; I.?: ;I@B4: ;I U.4 .4@B14: ; I?<4: ; I?4: ;I?!I/4: ; I?4I?4<4G4Gn 4Gn4Gn 4Gn4Gn.?nI4<.?n4<.?I4<USUT\T\TQVQUUUUUUTTPUSUTT uuH" uuH"# ppH" s0s0H"2 ppH"# s0s0H"# UUTTQQUUu8U#8U Qpxu Q QpxQUUTSTtSUSUs(sSUUSUUSUUSUSUUSUVvp"#vp"]}p"#}p"\0Pp12]P | q"Pp $  $-(V^p1$v1$p1$v1$v#TUq1&p" $ &s1&p" $ &s1&r" $ &TvQTTPp $N$)QuUSUT]TQ\U#VvVU#Hu#Pu#RPUSUPv|v|UUTTUVUTSTQ^Q]UVUT\TQ]QpU } $ &# Q $ &#USUUSU1pPV88v3$UU\USPS|SPSPSPPVSVSSVVSVSVSV]]Ps1$"0$0&PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP0SS ST U XQ/Q| #UqU||__Pp2$"v2$"QUSUTVTUSUTVTUSUTVTUSUTVTTTTTUUSUUUUUTTUUUQUppSSPppSSPppSSPppSSPppSSPppSSPppSSPUVTUTQSQQSQTUTSVRUSUSUTTVVVTTVTVTTVTQ\Q\Q\QSpxPUSUUpxuxQuxppTV1Q ut83& pt@3&PPP0\ 1SR1R_1 SSS0_S\QP 3$}"SSVT1]\S\sV1^ ss8sS ss8sS0VVQVQVV]QPQ]]]\\^SS^SSSV^V^Vv"PpVV00Q0~P~v $ &"0~0pHpPp@UUUUUUUUUUUUUUUTrq"8pPp@pUUUUUUUUUUUUUUUTrq"8pp  ^^  T s~8sUsTtH1~ $ &6$s"~ $ &6$s"1~ $ &6$s"q~ $ &6$s"1~ $ &6$s"p~ $ &6$s"1~ $ &6$s"p ~ $ &6$s"1~ $ &6$s"p ~ $ &6$s"1~ $ &6$s"p ~ $ &6$s"1~ $ &6$s"~ $ &6$s"1~ $ &6$s"~ $ &6$s"1~ $ &6$s"~ $ &6$s"1~ $ &6$s"p~ $ &6$s"1~ $ &6$s"~ $ &6$s"1~ $ &6$s"~ $ &6$s"1~ $ &6$s"%1v $ &" $ &6$s"1~ $ &6$s"t8T1~ $ &6$s"#8~ $ &6$s"#81~ $ &6$s"#8q~ $ &6$s"#81~ $ &6$s"#8p~ $ &6$s"#81~ $ &6$s"#8p ~ $ &6$s"#81~ $ &6$s"#8p ~ $ &6$s"#81~ $ &6$s"#8p ~ $ &6$s"#81~ $ &6$s"#8~ $ &6$s"#81~ $ &6$s"#8~ $ &6$s"#81~ $ &6$s"#8~ $ &6$s"#81~ $ &6$s"#8p~ $ &6$s"#81~ $ &6$s"#8~ $ &6$s"#81~ $ &6$s"#8~ $ &6$s"#81~ $ &6$s"#8'1v $ &" $ &6$s"#81~ $ &6$s"#8UUUUUUUUUUUUUUUTS s8Ts8 U S s8Ts8 U Ss8Ts8Us~s~Ts~Us~s~Ts~Us@s@sxTsxsxUT#UTU Qpxu Q QpxQsP Us@sxTsxU Us}Ts}UQRPppPsPsTPSs8Ts8U1QPSs8Ts8UQRPSs8Ts8U10QP1p QP1QRP1p QP1Ps@sxTsxUQ0 P0Ps0Ts0_ssTsUQpPQPQPSs8Ts8USTuUs8s@SSTU Qpxu Q QpxQssHsHs@SSTU Qpxu Q QpxQs@SssHs@SUVUT]TPSSSP\P\P^P^VSsSsSSSSPP1T0TQ0Q10p0.v0.v0.yUyUyUyUyUyvyUyUyUyUyllyUyUyUyyPPyyPPPPPa     )/L0-5 /usr/include/usr/include/c++/4.8/usr/include/c++/4.8/bits/usr/include/c++/4.8/ext/usr/include/x86_64-linux-gnu/bits/usr/include/x86_64-linux-gnu/c++/4.8/bits/usr/include/c++/4.8/debug/usr/lib/gcc/x86_64-linux-gnu/4.8/includeFlexLexer.hchemlex.ccostreambasic_ios.hios_base.hchemeq.ybasic_string.hatomicity.hchemeq.hchemeq.lchar_traits.hstdlib.hstdlib-float.hstring.hlocale_facets.hvector.tccnew_allocator.hstl_algobase.hstl_vector.hstl_iterator.hchemparser.ccsstreamiostreamcpp_type_traits.hstl_iterator_base_types.hcwcharc++config.hallocator.hclocalebasic_string.tcccstringstringfwd.hcwctypeostream.tccistreamstreambufstl_construct.hstl_uninitialized.hstl_tree.hstl_pair.hstl_function.hstl_map.hiosfwdcstdlibcstdiostl_iterator_base_funcs.hpostypes.hostream_insert.hnumeric_traits.halloc_traits.htype_traits.hdebug.hstdio.hlibio.hstddef.hwchar.hfunctexcept.htime.hlocale.htypes.hatomic_word.h_G_config.hwctype.hstdio.hgthr-default.hnewerrno.hgetopt.h > f/ZXYYKKs {KxtJJWX\ZxtJJW[= 1KfL[vf}|ׄN=" [$3[hvKx{XPr=_)0 ofh[_r ft{K/كu>=>=Y$rDM=v꽭11MvjZY#>LKqwjKJgc$ 5 ~ 5 ~<"-------X=X f J ZM]Y\" ֠=]CʄYY\YY^KX[_Y[=#mX[=$utgfXLu"uwKɮ!18 KY[RY[KYtXK XJ}PZ <t|YXgg}L<t|YXgg}L<t|YXgg}L<t|YXgg}L<t|YXgg}L<t|YXgg}L<t|YXgg}}3a t`X Xt&xxX lt^ty<J J}J~J`=f.~JJ~ wJ  u  j~LJuY~|K|{~@~AY[Y/J~<AXX=K{<{xyy_prev_more_offset_ZN9FlexLexer16yy_create_bufferEPSiivector >wcspbrk_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE8allocateEmPKvlconv_S_showpointclearerryyacceptlabGNU C++ 4.8.2 -mtune=generic -march=x86-64 -g -O1_Val_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11equal_rangeERS3__Node_allocatoryy_more_len_ZNK6Chemeq6valeurEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13_Rb_tree_implIS6_Lb0EE13_M_initializeEv_ZNSs12_M_leak_hardEv__it_ZNSt6vectorIP5MolecSaIS1_EE6insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__fileno_Keyunitbufyyexhaustedlab7moltypenew_state_Const_Base_ptrnot_eofprintNernst__builtin_strchrreverse_iteratortm_secsetstatelong unsigned int_ZN11yyFlexLexerC2EPSiPSo_S_ios_iostate_end__static_initialization_and_destruction_0allocate_ZNK6Chemeq10nbelectronEvyyinputfwideiostate_ZNK6Membre11printweightERSobasic_ostringstream, std::allocator >new_allocatorint_p_sep_by_spacefrac_digitschar_type__k2basefield_ZNK5Molec6weightEvgetwc_ZNKSs8capacityEv__endpptrfpos_t_ZNSs6resizeEmc_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_S_leftEPKSt18_Rb_tree_node_baselineno_ZN6Chemeq6triageEv_ZNK9FlexLexer5debugEv_ZNSs5clearEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE24_M_get_insert_unique_posERS1__S_maximumprintelec_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE7addressERKS3__Value_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmmEi__copy_move_a_ZN10AtomeListe6triageEPS__Tp1__copy_move_b__gnu_cxxoptionadd_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmmEv__copy_move_backward_ashort unsigned int_ZN9__gnu_cxx13new_allocatorIcE10deallocateEPcm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_rightEPSt18_Rb_tree_node_basepair, std::allocator >, float> >, std::_Rb_tree_iterator, std::allocator >, float> > >_ZNKSs4findEcm_IO_write_end_ZNSs4_Rep7_M_grabERKSaIcES2__M_refcopyMoinsiterator_traits_ZN11yyFlexLexer6yywrapEv_ZN11yyFlexLexer7yyunputEiPc_ZN6Chemeq11printNernstERSoS0_bcapacity_S_ate_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1___exchange_and_add_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE2atERS3_yy_load_buffer_state_ZN5Molec3addE8fractionyyreducereverse_iterator, std::allocator >, float> > >mapped_type_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_rightEPKSt18_Rb_tree_node_base_ZNSt6vectorIP5MolecSaIS1_EE4rendEvoverflow_arg_areayy_start_stack_depthyyFlexLexer_ZNSs13_S_copy_charsEPcS_S_yysetstate_ZNSt11char_traitsIcE4findEPKcmRS1__flagsSYMBOL_ZN9__gnu_cxx13new_allocatorIP5MolecE8allocateEmPKv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE17_S_select_on_copyERKS3_iswctypelength_M_refcountdiv_tyy_base__last_Ios_Fmtflagsyylval_ZNSt6vectorIP5MolecSaIS1_EE5clearEv__off_tbasic_istringstream, std::allocator >__vtt_parmstrtodconst_pointer__numeric_traits_integer_ZN9__gnu_cxx13new_allocatorIcE7destroyEPc_ZNKSt6vectorIP5MolecSaIS1_EE4dataEv_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE3endEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE10value_compEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS2_ESC_RS1__M_check_lengthdeallocatetowctransWEIGHTbasic_ios_M_create_storage_ZNSt18_Rb_tree_node_base10_S_maximumEPKS_tm_isdstmap, std::allocator >, float, std::less, std::allocator > >, std::allocator, std::allocator >, float> > >grouping_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEvyycheck_lockallocator_Rep_typewcstoll_vptr.FlexLexerrealloc_M_end_of_storagemax_sizeyytoken_ZNSs6rbeginEv_ZN11yyFlexLexer13yy_push_stateEi_M_impl_S_decatoi_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4sizeEvmbrtowc_M_pstrcoll_M_t_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEixERKlwcsspn_ZNK10AtomeListe6compteER8Compteur8fraction__os/home/georgesk/developpement/chemeq/chemeq-2.12/src_Ios_Openmode_ZNK5Molec5eqMolEPKS_Egalvectoryyerrlab1_ZNKSt6vectorIP5MolecSaIS1_EE4sizeEvstrrchr__pos_ZN6Chemeq9subChemeqEPKS__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_rightmostEv_ZN11yyFlexLexer14yy_init_bufferEP15yy_buffer_statePSi__debugwctrans__alloc_traits >__niter_base__pf_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_valueEPKSt18_Rb_tree_node_base_ZNK9FlexLexer6linenoEv~FlexLexer__string_typeflushsetlocalewscanf_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs_ZNKSs7_M_dataEvvwscanf_ZNKSt6vectorIP5MolecSaIS1_EE3endEv_Znwmyy_state_typegetmolecularite_M_erase_at_end~basic_streambufyypush_buffer_state_ZN11yyFlexLexer10LexerInputEPci_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE7destroyERS3_PS2_replace_S_showbasebasic_istream >_ZNSt6vectorIP5MolecSaIS1_EE6rbeginEv_ZdaPv_ZNKSs6_M_repEv~basic_ios_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4swapERS8__Rep_base_S_octwcsxfrm_ZNSsaSEcsourceyy_start_stack_ptr_ZNKSs4findERKSsmrdstate_ZdlPv_ZNKSs7_M_iendEv_M_node_count_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2__ZN9FlexLexerD2Evmax_Rb_tree, std::allocator >, std::pair, std::allocator >, float>, std::_Select1st, std::allocator >, float> >, std::less, std::allocator > >, std::allocator, std::allocator >, float> > >_ZNSs14_M_replace_auxEmmmcvalue_type__in_chrg_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7addressERKS5__ZNSs5beginEvreverse_iterator<__gnu_cxx::__normal_iterator, std::allocator > > >_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_S_keyEPKSt18_Rb_tree_node_baselong int_ZN11yyFlexLexerD0Ev__lenlldiv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_upper_boundEPKSt13_Rb_tree_nodeIS2_ESC_RS1_free_ZN9__gnu_cxx17__normal_iteratorIPKcSsEpLERKl_S_select_on_copyyy_state_buf_ZNK5Molec5listeEvindex_S_internal_S_empty_rep__builtin_unwind_resume_HasBase_Tp_alloc_type__s2yyerrlabrename_IO_read_end_ZNSt11char_traitsIcE4copyEPcPKcm_ZlsRSoRK5Moleccopy_ZNK5Molec6compteER8Compteur_ZN11yyFlexLexer5yylexEv_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEcbinary_function, std::allocator >, std::basic_string, std::allocator >, bool>badbit_S_eofbit_ZNSt6vectorIP5MolecSaIS1_EE7reserveEm_ZNSt12_Vector_baseIP5MolecSaIS1_EE12_Vector_impl12_M_swap_dataERS4_yy_find_action_Alloc_hiderfopenisEqual_Iter_base__initialize_pfread__copy_mint_frac_digitsstrdupyy_is_jamdistancenormalise_M_destroy_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6rbeginEv_Rb_tree_implthousands_sep_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_rightmostEvrfind_ZN5Molec5coeffE8fraction_ZNKSs15_M_check_lengthEmmPKcfgetsadjustfieldwcstof_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEEaSERKS6_wcstokwcstol_ZNKSs6substrEmm_M_swap_data__x_copyistringstreamoperator new_ZN5Molec15printNernstWIMSERSob_S_construct_aux_2_ZNK6Membre5redoxEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11upper_boundERS1___first_ZN5Molec6numeroEi__rhs_ZNKSs9_M_ibeginEvyynewstatenumber_to_move_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE3endEv_ZN6Chemeq9equilibreEv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE10deallocateERS3_PS2_mLexerInput_S_scientificferror_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsE_Allocator_ZNKSt6vectorIP5MolecSaIS1_EE5frontEvscientificallowed_ZNKSs4copyEPcmm_Destroy_aux_ZNKSt5ctypeIcE5widenEcoperator&_S_blackoperator*_ZNSs6insertEmRKSsoperator-_ZN6Membre5coeffE8fraction__gnu_debugallocator, std::allocator >, float> >LexerError_ZN11yyFlexLexer18yy_get_next_bufferEvwmemmovewmemset_ZN9__gnu_cxx24__numeric_traits_integerIcE5__maxEoperator=__begret_val_ZNK5Molec6numeroEvbtowc_ZN7yystypeD2Evgrow_sizestrpbrk_ZNSs12_S_empty_repEvboolalpha_Atomic_word_ZNSs6assignERKSsbasic_ios >putwchar_ZNK9__gnu_cxx17__normal_iteratorIPcSsEdeEvFlexLexer_ZNSs4_Rep8_M_cloneERKSaIcEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_leftmostEvatexit_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS2_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEppEi_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcEsuivnew_size_ZNSs6appendEPKcoperator|_M_allocateto_char_type_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostatewcsrchrconstante_ZNKSs8_M_limitEmm_ZNK6Chemeq9constanteEv_ZNSt6vectorIP5MolecSaIS1_EE4backEvyy_delete_buffer_chain__exchange_and_add_dispatch__copy_move_backwardsubstr_ZN9__gnu_cxx24__numeric_traits_integerIlE5__maxE_ZN10AtomeListe15setmoleculariteEi_ZNKSs4_Rep12_M_is_sharedEvyyout_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE10_S_on_swapERS3_S5_yy_buf_posarg_yyin_ZNK5Molec12printspeciesERSob_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcctype_ZN6Chemeq9printnormERSo_M_refdata11__mbstate_tmalloc_S_synced_with_stdiounsigned charyy_looking_for_trail_begin_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE8allocateERS3_muppercase_ZNK9__gnu_cxx13new_allocatorIP5MolecE8max_sizeEv_ZNK6Chemeq9printelecERSoyy_cprandrandom_access_iterator_tag__distance_M_create_node_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_minimumEPSt18_Rb_tree_node_base_ZSt4cerrwcslen_ZNKSs13find_first_ofEPKcmyyerrorfloat_ZN5Molec6triageEv_ZNKSs7compareEmmPKcm_ZN9__gnu_cxx24__numeric_traits_integerIsE5__maxE_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1__ZNK5Molec6typageEv_M_set_length_and_sharable_ZN6Membre15printNernstWIMSERSob_ZNSi3getERcprintcountyy_more_flag_ZNSs4_Rep26_M_set_length_and_sharableEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_valueEPKSt13_Rb_tree_nodeIS2_E_ZNSt11char_traitsIcE2eqERKcS2__ZNKSt6vectorIP5MolecSaIS1_EE8capacityEv_M_checkassign_ZN5Molec6typageE7moltypenumerosignature_ZNSs9_M_assignEPcmcint_typeistream_M_insert__ZN11yyFlexLexer10LexerErrorEPKc_ZSt4cout_S_fixedftell_ZNK9__gnu_cxx17__normal_iteratorIPKcSsE4baseEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5beginEv_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE8max_sizeEvrend_ZNSs18_S_construct_aux_2EmcRKSaIcE_ZNSs4_Rep10_M_refcopyEv_S_cursetbuf~_Rb_treePlus_ZNK5Molec6nombreEvnew_in_ZNK5Molec11printNombreERSoYYLeng__prioritysuivantdifference_type_ZNSs7_M_copyEPcPKcm_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_freopenYY_CHAR_ZNKSs7compareEPKc__uninitialized_copy_a_ZNKSs16find_last_not_ofEcm_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_fwscanfwctomb_ZN9FlexLexer16yy_delete_bufferEP15yy_buffer_statewcsftimeswapyy_last_accepting_state_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE16_M_insert_equal_ESt23_Rb_tree_const_iteratorIS2_ERKS2_arg_yyoutyy_bp_ZNSolsEdmbrleneqMol_ZNKSs2atEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EEaSERKS8_basic_stringbuf_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEE4baseEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5__ZN8fraction9simplifieEv_M_iendyyin_ZNK9__gnu_cxx17__normal_iteratorIPcSsEmiERKlsize_typerewind_ZNSt6vectorIP5MolecSaIS1_EE4swapERS3__ZNK9__gnu_cxx13new_allocatorIP5MolecE7addressERKS2__ZN9__gnu_cxx13new_allocatorIP5MolecE10deallocateEPS2_m_ZNSspLERKSsyy_bs_lineno~basic_istreamfindMol_S_createskipws_Unwind_ResumeYYTextiteratorstrtold_InputIterator_ZNK5Molec10nbelectronEvstrtollstdout_Rb_tree_iterator, std::allocator >, float> >yybackupchemparser.cc_ZNK10AtomeListe5debugEi_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt17_Rb_tree_iteratorIS2_ESA__ZNSt11char_traitsIcE7not_eofERKiyyerrstatus_M_get_insert_hint_unique_posyystosyy_actsystemnegative_sign_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_leftmostEv_ZN6Membre6triageEv_Rb_tree_node_baseyy_pop_state_offset~basic_stringwcscatdebugyy_c_buf_p_Result_ZN6Membre8numeroteEvother7lldiv_t_ZN6Membre7findMolEPK5Molecstrncpynum_to_readwcstod~vector_M_move__normal_iterator > >wctypeexitint_curr_symbolnew_allocatoryy_top_state_ZlsRSoRK6Chemeq_ZNKSs7compareERKSs_ZN6Membre9addMembreEPKS__ZN6Chemeq8multiplyEii_ZNK5Molec10printcountERSobRealset_debug_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE9constructEPS3_RKS3__ZNK9__gnu_cxx13new_allocatorIcE7addressERcyyrealloc_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8max_sizeEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_minimumEPKSt18_Rb_tree_node_base_ZNK5Molec9signatureEvsize_M_clonesetmolecularite_M_replace_safe_ZN6Membre9eraseNullEv__state_ZNSs6appendERKSsmmprintHelpFILEreg_save_area_ZNSs6appendERKSs_ZNSt6vectorIP5MolecSaIS1_EEaSERKS3_right_M_ibeginnew_bufferiselectronclear_ZNSt11char_traitsIcE2ltERKcS2_wcscspn_S_end_Z9printHelpv__ioinit_ZNSs6assignERKSsmmsize_tcste_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5clearEvyytranslate__countquot_M_insert_equal_loweryylineno_ZNKSs8_M_checkEmPKcdestroyfrontposition~Init_ZNKSs17find_first_not_ofEPKcmyy_buffer_stack_top_M_leftmostoerrno_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseERS3__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_copyEPKSt13_Rb_tree_nodeIS2_EPSA_7yystypeperror_ZN11yyFlexLexer21yyensure_buffer_stackEv_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE_M_current_ZNSt6vectorIP5MolecSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__ZN11yyFlexLexer21yy_get_previous_stateEv_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmcinverse_M_grab_M_is_shared_M_fill_insert_ZN6Chemeq8numeroteEv_M_widen_init_IO_save_basemoltype_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11upper_boundERS1__ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_M_endEv_ZN6Chemeq6coeff1Ev_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE8key_compEvlisteflush >_Destroyyychar_S_empty_rep_storagewctob_unused2fwprintf_M_assign_ZN9__gnu_cxx13new_allocatorIcE9constructEPcRKc_S_max_size_ZNKSt5ctypeIcE13_M_widen_initEv_M_fill_assign_ZNK5Molec9printnormERSowantedlatex__wchblower_boundwcsncmp_IO_write_ptrfind_last_not_offirst_ZNK10AtomeListe15getmoleculariteEv_ZNK6Membre5debugEifraction_shortbufLpar_S_boolalphalldiv_t_M_check_lenoperator<< >_M_insert_lowerwint_t_ZNKSs12find_last_ofEPKcmmblen_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS2_E_ZNKSs5rfindEcmYY_BUFFER_STATE_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEvkey_compareyyreturn_ZNKSs13get_allocatorEv__digitsfile_S_base_ZNKSs6lengthEv_S_left__pad2rbeginyy_amount_of_matched_text_ZNK5Molec5debugEipair_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5countERS3_wcstoull__cxa_atexit_ZNK6Membre10nbelectronEv_M_copy__vtbl_ptr_type_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseEPS1_S9__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_S_keyEPKSt13_Rb_tree_nodeIS2_E_ZNKSs4findEPKcm_S_ios_fmtflags_end_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv_ZNKSs16find_last_not_ofEPKcm__out_ZN5Molec3subE8fractioncompte_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS2_Echargefputwc_ZNSt11char_traitsIcE11eq_int_typeERKiS2__ZNSs4_Rep10_M_disposeERKSaIcE_ZNSs6appendEmc_ZNKSs5c_strEv_ZNKSsixEmfputwsallocator, std::allocator >, float> > >_ZNSs4_Rep10_M_destroyERKSaIcEwcsstr_Vector_base_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE8max_sizeEvsymbole_M_destroy_node_Z7yyerrorPc_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5clearEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcmyy_ec__ptr_ZNSs2atEm_S_badbit_ZNKSs11_M_disjunctEPKc_Container_ZNKSs6rbeginEv_ZNK10AtomeListe2sqEvreverse_iterator<__gnu_cxx::__normal_iterator, std::allocator > > >wcschr_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4findERS1_construct_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7addressERS5_find_S_out_nextget_allocator_S_rightconstructbasic_ostream >__copy_move_backward_a2_ZN8fraction7inverseEv_M_limit~yystypeyy_create_bufferdecimal_point__istream_typeaddress_Rb_tree_colorequal_rangeisequationless, std::allocator > >valeur_latex_M_insert_unique___arg_ZNK9__gnu_cxx13new_allocatorIcE8max_sizeEvkey_typestrerrorredoxyydefgoto_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_get_Node_allocatorEvnbelectron_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11lower_boundERS1__ZNK10AtomeListe7symboleEvyyleng_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE28_M_get_insert_hint_equal_posESt23_Rb_tree_const_iteratorIS2_ERS1_result_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4findERS1__Z12printVersionv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4sizeEvyy_buffer_stackfclosestrtoul_M_get_nodeopenmode_ZNSt11char_traitsIcE6lengthEPKc_ZNSt11char_traitsIcE12to_char_typeERKi_IO_write_base__throw_bad_cast_ZNKSs12find_last_ofEcm_ZNSspLEPKciterator_traits_S_redldiv_toperator[]_ZNSt11char_traitsIcE3eofEvstrxfrm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_beginEvtmpfile_ZNK6Chemeq11printweightERSo_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE3endEvallocator_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5beginEv_ZNKSs3endEv_ZNSo9_M_insertIdEERSoT_ungetc__valwcstombs_M_end_ZNKSs4findEPKcmmwchar_t_ZNKSs13find_first_ofEcmyystate_S_construct_auxsetsuivantMolec_ZN11yyFlexLexer19yy_switch_to_bufferEP15yy_buffer_state_ZN11yyFlexLexer7yyinputEvallocator_type_ZNSs3endEvyy_switch_to_bufferpop_back_M_insert_ZNSs6insertEmmc6ldiv_tyy_startprintVersion__gthread_active_ptr_M_erase_aux_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmmEi_ZNSs7replaceEmmRKSsmm_ZNK9__gnu_cxx17__normal_iteratorIPcSsE4baseEv__str_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11lower_boundERS1__ZNSs16_S_construct_auxIPcEES0_T_S1_RKSaIcESt12__false_typeswscanf__numeric_traits_integeryyensure_buffer_stack_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE7addressERS3_wcsncpy_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11equal_rangeERS1__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6rbeginEvaqueousprintnorm_S_skipws_S_hexyy_ch_buf_Select1st, std::allocator >, float> >stderr_ZNKSs8max_sizeEvpbaseyy_state_ptr_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEpLERKl_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4swapERS6___iterator_categoryn_sep_by_space_ZNKSt6vectorIP5MolecSaIS1_EE5beginEv_ZNSs6insertEmPKcmCharge_ZNSt11char_traitsIcE6assignERcRKc_ZN10AtomeListe6groupeEv_M_mutatewprintftm_min__nptrMELTINGyy_flush_buffer_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE8allocateEmPKvint_n_sep_by_spacechar_traitsyy_n_chars__false_typesrandp_cs_precedes_Destroywcscmp_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEixERKldo_action_M_color_ZNSs6assignEPKcmstrtok_ZN11yyFlexLexer16yy_try_NUL_transEistrtolyy_last_accepting_cposfp_offsetoperator==_Z6yyfreePv_ZNK9__gnu_cxx13new_allocatorIP5MolecE7addressERS2_mbsrtowcsmon_grouping_ZNK10AtomeListe10printcountERSoRK8fractionigp_offset_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS2_Efgetcmove_ZNSs7replaceEmmmcpointer_ZNSs6insertEmRKSsmm_S_value_M_lower_boundvfwprintfiswaterstreamsize__numeric_traits_integer_ZN10AtomeListe2sqEi_KeyOfValuereverse_iterator<__gnu_cxx::__normal_iterator > > >mbsinitfind_first_not_of_ZNSs7_M_leakEv_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE9constructEPS5_RKS5__M_leaktypageyydefault_M_key_compareBOILING_ZNK8CompteurlsERSo_ZN9FlexLexer9yyrestartEPSi_M_upper_bound_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5beginEv_M_get_insert_hint_equal_pos_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseESt17_Rb_tree_iteratorIS4_ES8_yy_c_buf_p_offsetRpar__builtin_memmovegroup_ZNKSs5beginEvios_base_ZN9__gnu_cxx13new_allocatorIcE8allocateEmPKv_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEppEvsigned char_ZNKSs12find_last_ofEPKcmmyy_lpmultiply_ZNKSs5rfindEPKcmthisostream_ZNKSt6vectorIP5MolecSaIS1_EE12_M_check_lenEmPKc_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_get_Node_allocatorEvkey_compnumeroteswitch_streamsgoodbitenvoptionyystacksizeptrdiff_t_M_initializeyy_buf_size_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE8max_sizeEvswprintfprintNernstWIMS_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11lower_boundERS3__M_replace_auxcount_ZN9FlexLexer9set_debugEi_ZNKSt6vectorIP5MolecSaIS1_EE4rendEvbackFlecheprintNombrevwprintfmbstate_t_S_floatfield_ZNKSt6vectorIP5MolecSaIS1_EE14_M_range_checkEm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6rbeginEv_Num_ZNKSs5emptyEv__off64_twcscpyresizevswprintf_ZNK9__gnu_cxx17__normal_iteratorIPcSsEptEv_ZNSt6vectorIP5MolecSaIS1_EE3endEvLexerOutputputwcyy_push_state_IO_read_base_ZNSs6assignEmcwiden_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11lower_boundERS3__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_insert_equalERKS2__ZNK9__gnu_cxx17__normal_iteratorIPKcSsEdeEvsecondstring_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt23_Rb_tree_const_iteratorIS2_Emembredroit_IO_buf_end_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE23_M_get_insert_equal_posERS1__ZNSs6insertEmPKc_M_header~basic_ostreammbstowcsCompteur_ZNSo5writeEPKclenthalpy__builtin_indexfail_ZNSt6vectorIP5MolecSaIS1_EE5frontEv_ZNSsixEm_ZNK10AtomeListe9printnormERSon_sign_posncurrency_symbol_M_repCompose_ZNK6Membre6compteER8Compteurwcsrtombs_G_fpos_t_M_erasetm_wday_S_in~new_allocator_ZNK6Chemeq10valdefinedEv_ZNKSs4dataEv_ZNSt11char_traitsIcE4moveEPcPKcmyy_c_ZNSs7replaceEmmPKcyyssa_modeyytable_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_insert_equal_lowerERKS2__ZNSt6vectorIP5MolecSaIS1_EE18_M_fill_initializeEmRKS1__M_insert_auxyyssp_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_rootEv_M_data_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmiERKl__wchSpcPlus_ZNSt11char_traitsIcE6assignEPcmc_ZN6Chemeq9addChemeqEPKS___dso_handleyy_init_bufferNAME__copy_move__max_ZNKSs17find_first_not_ofEPKcmmenvinputappend_ZNK6Membre9printnormERSo_ZNSolsEPFRSoS_Evswscanfremovedenominateurtm_mon_S_failbit~_Alloc_hidercopyint_n_sign_posneq_int_type_M_get_insert_unique_pos_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv_M_finish_ZNSs4_Rep9_S_createEmmRKSaIcE_GLOBAL__sub_I_result_ZNKSs7compareEmmPKcyytype_int16__copy_move_a2_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_operator()fgetposoperator- >_M_left_ZN11yyFlexLexer11LexerOutputEPKcinombre__lhs_ZNK9__gnu_cxx13new_allocatorIcE7addressERKc_ZNSs4rendEv_Link_type_ZN5Molec11printNernstERSoPKcto_int_type_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6rbeginEv_IO_markerint_p_sign_posn_S_uppercaseyypgotoweighttm_year_M_root_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE10deallocateEPS5_myy_is_our_bufferyyerrorlabmbtowc_ZNSs4swapERSsbasic_stringbuf, std::allocator >reverse_iterator<__gnu_cxx::__normal_iterator > > >_Rb_tree_impl, std::allocator > >, false>_ZNK6Membre9printelecERSo__normal_iterator, std::allocator > >_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEmiERKlgets_Ios_Iostateyypactyy_nxtatof_ZN9__gnu_cxx13new_allocatorIP5MolecE9constructEPS2_RKS2___numeric_traits_integeruninitialized_copyyy_chkyyr1yyr2atolwrite_M_get_Node_allocator_ZNSs6appendEPKcmstrstr__mbstate_tmon_decimal_pointmon_thousands_sep_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11equal_rangeERS1_yy_buffer_stack_max_ZNK6Chemeq12valeur_latexEvtm_yday_S_construct__normal_iterator, std::allocator > >__errno_locationqsort_Traitsstrtof_ZNSt6vectorIP5MolecSaIS1_EEixEm__ostream_typepair, std::allocator >, float> >, std::_Rb_tree_const_iterator, std::allocator >, float> > >droit_ZNKSt6vectorIP5MolecSaIS1_EE6rbeginEv_cur_column_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt23_Rb_tree_const_iteratorIS2_ESA_reserve_ZN11yyFlexLexer15yy_flush_bufferEP15yy_buffer_state_Z9yyreallocPvm_ZNK6Chemeq10printcountERSo_ZNK5Molec9printelecERSobpair, std::allocator >, float>_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_insert_lowerEPSt18_Rb_tree_node_baseRKS2__ZNSt6vectorIP5MolecSaIS1_EE2atEm_ZNSs7replaceEmmRKSsFrac_ZNSt6vectorIP5MolecSaIS1_EE6assignEmRKS1_info_types_BI2p_sep_by_space__mem__s1_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEdeEvoperator++__modeyy_accept_S_on_swap_ZNSt11char_traitsIcE7compareEPKcS2_m_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE3endEvrebind, std::allocator >, float> > >bool_BI1_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE13get_allocatorEv_ZNK10AtomeListe6weightE8fractionoperator+=yyss_ZN11yyFlexLexer9yyrestartEPSicerr_ZNSt6vectorIP5MolecSaIS1_EE5beginEvyypop_buffer_state_S_minimumtmpnamsymb_ZN9__gnu_cxx17__normal_iteratorIPcSsEmIERKl_ZN9__gnu_cxx17__normal_iteratorIPcSsEppEi_Alloc_ZN11yyFlexLexer19yypush_buffer_stateEP15yy_buffer_stateAntiComposeyy_next_state_ZN9__gnu_cxx17__normal_iteratorIPcSsEppEv_ZNKSt6vectorIP5MolecSaIS1_EE2atEm_ZNSs6resizeEmprintweighyyunputsprintfwcscoll_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4__M_datapluswctype_t_ZNSsaSEPKccharpush_backwcstold_S_terminalnooptionprintspecies__is_null_pointercoutstdin9_G_fpos_tinsertyylex_Rep__new_finish_S_ios_openmode_end_IO_buf_base_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11upper_boundERS3__ZNK6Membre10printcountERSo_ZNSs9_M_mutateEmmm_Arg1_Arg2_Type_Key_compare_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1__ZNSspLEctriage_ZNSs7_M_moveEPcPKcmoperator->_M_capacity_ZN9FlexLexer5yylexEPSiPSo_ZNK6Membre12printspeciesERSothelexeryy_did_buffer_switch_on_eof_ZNK6Chemeq11membredroitEv_ZNK6Chemeq8enthalpyEvlesatomes_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11upper_boundERS3__IO_FILE_ZNSt12_Vector_baseIP5MolecSaIS1_EE19_M_get_Tp_allocatorEvwmemchr_ZNKSt6vectorIP5MolecSaIS1_EEixEmyy_hold_char_ZNKSs13find_first_ofEPKcmm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_rootEvyy_fill_bufferrebindAtome_ZNSs7_M_dataEPc_S_refcount_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseESt17_Rb_tree_iteratorIS4_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmIERKltm_hour_ZNKSs12find_last_ofERKSsmyy_get_previous_stateyy_size_t_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5countERS1__M_right_ZNKSt6vectorIP5MolecSaIS1_EE4backEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt17_Rb_tree_iteratorIS2_Esqbr_ZN11yyFlexLexer20yy_load_buffer_stateEvwcstoulyyvsatoll_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_create_nodeERKS2_feof_ZNK9FlexLexer6YYTextEvfseek_ZNSs12_S_constructEmcRKSaIcESpcLpar_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6insertESt17_Rb_tree_iteratorIS4_ERKS4_MAX_INFO_NR_ZN9FlexLexer14switch_streamsEPSiPSo__minPAULING_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8key_compEvyy_buffer_stateendl >_Iteryystypebsearch_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv_Rb_tree_const_iterator, std::allocator >, float> >const_reverse_iteratorbasic_streambufvaldefined_IO_lock_tbasic_string, std::allocator >getwchar5atome_ZN9__gnu_cxx24__numeric_traits_integerIiE5__maxE_Is_pod_comparatoraskedbufferatomefixedtm_mday_S_comparenew_allocator, std::allocator >, float> > >operator<< , std::allocator >c_strconst_reference__pad1__pad3__pad4__pad5operator delete__numeric_traits_integer_sbuf__normal_iterator > >_ZNK6Chemeq12printspeciesERSo_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7destroyEPS5___gthread_active_p_ZNKSs5rfindEPKcmmnew_allocator__uninitialized_copy_ZN11yyFlexLexer16yy_delete_bufferEP15yy_buffer_stateaddMolfsetpos_Z9optionaddPcS_i_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4rendEv_ZNKSt12_Vector_baseIP5MolecSaIS1_EE19_M_get_Tp_allocatorEv_ZNKSs17find_first_not_ofEcm_markers_ZNKSt12_Vector_baseIP5MolecSaIS1_EE13get_allocatorEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_S_leftEPSt18_Rb_tree_node_base_ZNK6Chemeq12membregaucheEv_ZNK5Molec7iswaterEv_IO_save_end_M_length_ForwardIterator_ZNKSs16find_last_not_ofEPKcmm_Vector_base >yyabortlabequilibre_ZNSt18_Rb_tree_node_base10_S_minimumEPKS_ldiv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS2_ESA_failbit_ZN9__gnu_cxx13new_allocatorIP5MolecE7destroyEPS2_int_n_cs_precedeserasedouble__k1coeff1_ZN6Membre15printableNernstEvyyalloc_IsMove__exchange_and_add_single_ZNSt6vectorIP5MolecSaIS1_EE9push_backERKS1__ZNKSs17find_first_not_ofERKSsm__FILEiterator_traits_M_rightmosttypedef __va_list_tag __va_list_tagyy_input_filevalue_compare_Const_Link_type_ZN9__gnu_cxx17__normal_iteratorIPKcSsEppEi_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_lyy_meta_ZNKSs4rendEveraseNull_ZN9__gnu_cxx17__normal_iteratorIPKcSsEppEvyytextoperator--_S_keynew_allocator, std::allocator >, float> >_ZN11yyFlexLexer12yy_pop_stateEv_Iterator__int32_t_M_fill_initializebasic_streambuf >_M_set_sharableHautyy_more_offsetdatawmemcmpostringstreamwcrtomb_M_begin__check_facet >__value_ZNSt6vectorIP5MolecSaIS1_EE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EEmRKS1_fprintf_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4findERS3__ZN11yyFlexLexerD2Ev_ZNSt18_Rb_tree_node_base10_S_minimumEPS__InIteratorpair, std::allocator >, float> >, bool>Aqueous_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE7destroyEPS3___new_start_ZNSt6vectorIP5MolecSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_sizetypemembregauche__position__simple_ZN11yyFlexLexer16yy_create_bufferEPSii_ZNSs9push_backEc_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEptEv_ZSt16__throw_bad_castv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13get_allocatorEv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE8max_sizeERKS3__Z7yyparsevinput_iterator_taggauche_ZNKSs4_Rep12_M_is_leakedEvseekdirbaseleftpositive_sign_ZNK5Molec6chargeEvyy_is_interactivesubChemeq__rb_verifyyyrestartyyresult5div_t_S_goodbit_ZNSt18_Rb_tree_node_base10_S_maximumEPS__ZNKSt6vectorIP5MolecSaIS1_EE8max_sizeEvstrcpyiterator_category_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv_ZN6Chemeq9simplifieEb_S_showpos_S_ios_seekdir_end_ZN6Membre11printNernstERSo~yyFlexLexerempty_ZNSs15_M_replace_safeEmmPKcm_ZNKSs7compareEmmRKSsmm_RandomAccessIterator_M_insert_uniqueyy_bs_columnoperator+forward_iterator_tag_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5beginEv_M_dispose_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minEupper_bound_Z5yylexv_ZNSs4_Rep13_M_set_leakedEvMembrelong long unsigned intallocatormemmoveoffset_Rb_tree_node, std::allocator >, float> >_S_basefield_ZNSs4_Rep12_S_empty_repEvwmemcpy__compar_fn_t_S_construct_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minE_ZNSs13_S_copy_charsEPcPKcS1_yyvaloperator-=showbase_ZNSo5flushEvvaleur_S_unitbuf_ZN9__gnu_cxx17__normal_iteratorIPcSsEpLERKl_S_trunc~_Vector_baseyynerrs_ZNSt11char_traitsIcE11to_int_typeERKcInit_M_set_leakedNUMBERfmtflags_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5emptyEvyy_get_next_buffer_ZNSs4_Rep15_M_set_sharableEv_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEvnew_outyyfreeprintableNernst_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4findERS3_yy_full_lp__destroy_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5emptyEv_ZN6Membre6addMolEPK5Molecdesttm_gmtoff_pos_ZN9FlexLexer5yylexEv_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minE_ZNK10AtomeListe6groupeEv_ZNK6Chemeq5redoxEv_IO_backup_baseyy_full_state__uninit_copy_ZN10AtomeListe8numeroteEi_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE2atERS3__IO_read_ptr_ZNK10AtomeListe7suivantEv_M_deallocate_ZNSt6vectorIP5MolecSaIS1_EE4dataEvcoeffinternal_ZN6Chemeq9constanteESs_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_M_endEv_ZNSsaSERKSsgetoptgetenvfgetwcyyvsapair_ZNSt6vectorIP5MolecSaIS1_EE8pop_backEvyy_match_ZN9FlexLexer19yy_switch_to_bufferEP15yy_buffer_statefgetws_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS2_ERKS2_yyvsp_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11__rb_verifyEv_ZNSt6vectorIP5MolecSaIS1_EE14_M_fill_assignEmRKS1__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_maximumEPSt18_Rb_tree_node_base_M_get_insert_equal_poslong doublebasic_string_ZNK9FlexLexer6YYLengEvnum_to_alloc_ZNSt12_Vector_baseIP5MolecSaIS1_EE17_M_create_storageEmgetc_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEEixERS3__ZNSt10_Iter_baseIPP5MolecLb0EE7_S_baseES2_yy_at_bol_ZNKSs13find_first_ofERKSsm__normal_iterator_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4rendEv_old_offsetshowpointstrchr_ZNKSt4lessISsEclERKSsS2_showposwctrans_t_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmIERKl_ZN11yyFlexLexer18yypop_buffer_stateEv_ZNK10AtomeListe7isEqualERKS___c1__c2reverse_iterator, std::allocator >, float> > >_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_get_nodeEv__elems_before_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEptEvp_sign_posn_ZNSs10_S_compareEmmnumerateur_Facetyy_start_stackcomparelong long int_ZNKSs4sizeEvyy_init_ZNSt12_Vector_baseIP5MolecSaIS1_EE13_M_deallocateEPS1_m_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE10deallocateEPS3_m_flags2_M_insert_equalyylen_Vector_implprintweight_M_insert_equal__S_beg_ZN6Chemeq6valeurEd_ZNK10AtomeListe1ZEv_Base_ptreofbit_ZN10AtomeListe6groupeEPS_getchar_ZNSs5eraseEmm_ZNSs4_Rep10_M_refdataEvyy_buffer_statusChemeq_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mcconst_iterator_ZNSt6vectorIP5MolecSaIS1_EE15_M_erase_at_endEPS1__M_startyydefactoperator delete []lexer_ZNK9__gnu_cxx17__normal_iteratorIPcSsEplERKl_S_adjustfield_ZNSt6vectorIP5MolecSaIS1_EE6resizeEmS1__ZNKSs5rfindERKSsmungetwc_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEplERKl_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_beginEvfind_last_of_ZN6Chemeq9normaliseEv_ZN9__gnu_cxx3divExx_Comparevfwscanfn_cs_precedes_ZN9__gnu_cxx17__normal_iteratorIPcSsEmmEiegptr_M_get_Tp_allocatorcopy_backward_M_clone_node_ZNSt6vectorIP5MolecSaIS1_EE6insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EEmRKS1_value_comp_ZNKSs16find_last_not_ofERKSsmaddChemeq_Ios_Seekdir_ZN9__gnu_cxx17__normal_iteratorIPcSsEmmEv_CharT_ZNK9__gnu_cxx17__normal_iteratorIPcSsEixERKllocaleconvoperator<<reference_ValueTgroupeyy_full_match__result_ZNSs6assignEPKcstrtoullyy_def_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_M_insert_EPSt18_Rb_tree_node_baseSA_RKS2__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseERS1__ZN9FlexLexerD0Ev_ZNSs7replaceEmmPKcm_ZN5Molec6nombreEiimain_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmmEvyy_current_state_ZNKSs7compareEmmRKSs__miter_basefloatfieldsetvbuf_M_parent_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6insertERKS4__ZNK9__gnu_cxx17__normal_iteratorIPKcSsEplERKl_M_disjunct__dat__is_signed_ZN10AtomeListe10setsuivantEPS_unsigned int_ZN11yyFlexLexer14switch_streamsEPSiPSo_ZNSt12_Vector_baseIP5MolecSaIS1_EE11_M_allocateEm_ZNK5Molec10printweighERSo_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4rendEvoptstr_Z7yyallocm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE16_M_insert_uniqueERKS2__S_copy_chars_ZNSs7reserveEmfflush__uninitialized_move_if_noexcept_a >_M_put_nodestrcmpinput_file_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv_ZN11yyFlexLexer12yy_top_stateEvyytokentype_S_binsimplifieshort intbeginint_p_cs_precedesargc_Rb_tree_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4rendEv_vtable_offset__alloc_M_is_leakedyy_flex_debug_M_leak_hard_ZNKSt6vectorIP5MolecSaIS1_EE5emptyEviterator_typeaddMembrenpos_ZNSt6vectorIP5MolecSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EE_ZNSo3putEc_M_range_checkargvtm_zone__ostream_insert >_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11equal_rangeERS3_yywrap~allocatormemchr_S_appyy_try_NUL_transbidirectional_iterator_tag_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_maximumEPKSt18_Rb_tree_node_baseAtomeListeyyparse_ZSt3cinwcsncat_ZNK5Molec10iselectronEvfind_first_ofGCC: (Debian 4.8.2-1) 4.8.2zRx 04DnBBA A(D0](A ABB|DP DPANDPL} N?A}WAU,AQH0And8xBBB A(A0(A BBB4BBA A(D0(A ABB(BAA AB@5TK8hpBBB A(A0`(A BBB4BBA A(D0n(A ABBfAd(AAD  AAH$M BBB B(A0A8D@4 8A0A(B BBB(pvBAA nAB$AAD |AA$AAD AA$AAD AA0An0 DDI\DItDIDQ-DYDTA$UAAD LAAHBBB B(A0A8DP}8A0A(B BBBzPLRx L$GBBB B(A0A8Gh+8A0A(B BBBLt`BBB B(A0A8GD8A0A(B BBB D.symtab.strtab.shstrtab.rela.text.rela.data.bss.rela.text._ZN9FlexLexerD2Ev.rela.text._ZN9FlexLexerD0Ev.rela.text._ZN7yystypeD2Ev.rela.text._ZN6Chemeq9normaliseEv.rodata.str1.8.rodata.str1.1.rela.rodata.rela.text._Z7yyerrorPc.rela.text._ZNSt6vectorIP5MolecSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_.gcc_except_table.rela.init_array.rela.rodata._ZTI9FlexLexer.rodata._ZTS9FlexLexer.rodata._ZTS11yyFlexLexer.rela.rodata._ZTI11yyFlexLexer.rela.rodata._ZTV9FlexLexer.rela.rodata._ZTV11yyFlexLexer.rodata.cst8.rodata.cst16.rodata.cst4.rela.debug_info.debug_abbrev.rela.debug_loc.rela.debug_aranges.rela.debug_ranges.rela.debug_line.debug_str.comment.note.GNU-stack.rela.eh_frame.group@C7HCKPC8XCa`ChCpCxCCCCGC] )/`/C +/&HC1/ ;/6`CX/Sx0Cu/LpHCJ00xC202 4 5 h CE-XxCFExC UFjlHGgHC#}PGx`0C%`G kGGHC)GP C+Hp 8C-pH,H:HLH8GXC2XO k]'tfp`C5{vH*C7N0+C9~91C;00ȊȊ8p2PC@(hDF    l'`p2`x>pJ`U` ` _k|` i i_`33P  " .#%'()+-/0124579;=?@/01>    &"8!+PG"Y s n" t RW Px "L "L ?PU :Wj!-p| :W "0  6 L]e     5 KJ (p   f ~  M +4>GQX@_gn v T ) nK 0l &  3 A O ]"- sYD Rj U"   &  G2 G O  V h @@o $z         . =  <(`B I     2 K h y      < ^ w        !% E !' T !(f !)x   chemparser.cc_ZL5yy_ec_ZL9yy_accept_ZL6yy_def_ZL7yy_meta_ZL7yy_base_ZL6yy_chk_ZL6yy_nxt_ZL6yypact_ZL11yytranslate_ZL7yycheck_ZL7yytable_ZL8yydefact_ZL4yyr2_ZL4yyr1_ZL7yypgoto_ZL9yydefgoto_GLOBAL__sub_I_result_ZStL8__ioinit.LC25.LC26.LC29_ZN9FlexLexerD5Ev_ZN7yystypeD5Ev_ZN9FlexLexerD2Ev_ZTV9FlexLexer_ZN9FlexLexerD1Ev_ZN11yyFlexLexer6yywrapEv_ZN11yyFlexLexer14switch_streamsEPSiPSo_ZN9FlexLexerD0Ev_ZdlPv_ZN11yyFlexLexer10LexerErrorEPKc_ZSt4cerr_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_exit_ZN11yyFlexLexer10LexerInputEPci_ZNSi3getERc_ZN11yyFlexLexer11LexerOutputEPKci_ZNSo5writeEPKcl_ZN7yystypeD2Ev_ZNSs4_Rep20_S_empty_rep_storageE_ZNSs4_Rep10_M_destroyERKSaIcE_ZN7yystypeD1Ev_ZN11yyFlexLexer16yy_delete_bufferEP15yy_buffer_statefree_ZN11yyFlexLexerD2Ev_ZTV11yyFlexLexer_ZdaPv_ZN11yyFlexLexerD1Ev_ZN11yyFlexLexerD0Ev_ZN6Chemeq9normaliseEv_ZN6Membre8numeroteEv_ZN6Membre6triageEv_ZN6Chemeq6coeff1Ev_ZN11yyFlexLexerC2EPSiPSo_ZN11yyFlexLexerC1EPSiPSo_ZN11yyFlexLexer18yy_get_next_bufferEvrealloc_ZN11yyFlexLexer21yy_get_previous_stateEv_ZN11yyFlexLexer16yy_try_NUL_transEi_ZN11yyFlexLexer7yyunputEiPc_ZN11yyFlexLexer7yyinputEv_ZN11yyFlexLexer20yy_load_buffer_stateEv_ZN11yyFlexLexer15yy_flush_bufferEP15yy_buffer_state_ZN11yyFlexLexer14yy_init_bufferEP15yy_buffer_statePSi__errno_location_ZN11yyFlexLexer16yy_create_bufferEPSiimalloc_ZN11yyFlexLexer18yypop_buffer_stateEv_ZN11yyFlexLexer21yyensure_buffer_stackEv_ZN11yyFlexLexer5yylexEv_ZSt3cin_ZSt4coutpositionlesatomesstrcmpyylvalstrncpystrcpy_ZNSs6assignEPKcmstrtolstrtodindexind_ZN11yyFlexLexer9yyrestartEPSi_ZN11yyFlexLexer19yy_switch_to_bufferEP15yy_buffer_state_ZN11yyFlexLexer19yypush_buffer_stateEP15yy_buffer_state_ZN11yyFlexLexer13yy_push_stateEi_ZN11yyFlexLexer12yy_pop_stateEv_ZN11yyFlexLexer12yy_top_stateEv_Z7yyallocm_Z9yyreallocPvm_Z6yyfreePv_Z5yylexvthelexer_Z7yyerrorPcstderrfprintf_Z12printVersionv_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l_Z9printHelpv_ZSt16__throw_bad_castv_ZNKSt5ctypeIcE13_M_widen_initEv_ZNSo3putEc_ZNSo5flushEv_Z9optionaddPcS_istrchr_ZNSt6vectorIP5MolecSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_memmove_Znwm_Z7yyparsev__gxx_personality_v0yynerrsyychar_ZNSs6assignERKSsresultisequation_ZN6Chemeq9addChemeqEPKS__ZN6Chemeq9subChemeqEPKS__ZNSsC1ERKSs_ZN6Chemeq8multiplyEii_ZNKSs7compareEPKcstrdup_ZN6Membre6addMolEPK5Molecsprintf_ZNSs4_Rep10_M_disposeERKSaIcE_Unwind_Resumemaingetenv_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmodegetopt_ZNSsC1EPKcRKSaIcE_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev_ZN6Chemeq9printnormERSo_ZNK6Chemeq11printweightERSo_ZlsRSoRK6Chemeq_ZN6Chemeq9equilibreEv_ZN6Chemeq11printNernstERSoS0_b_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv_ZNK6Chemeq10printcountERSo_ZNK6Chemeq9printelecERSo_ZNK6Chemeq12printspeciesERSo_ZNK10AtomeListe6weightE8fraction_ZNSo9_M_insertIdEERSoT__ZlsRSoRK5Molec_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev_ZNSt8ios_base4InitC1Ev__dso_handle_ZNSt8ios_base4InitD1Ev__cxa_atexitlexer_ZTI9FlexLexer_ZTVN10__cxxabiv117__class_type_infoE_ZTS9FlexLexer_ZTS11yyFlexLexer_ZTI11yyFlexLexer_ZTVN10__cxxabiv120__si_class_type_infoE__cxa_pure_virtual__pthread_key_createy N~OPQSU+[3[A ]R^[[{Z[ G_L ]~ fh 8 fh h   4 `D `O d `v `    ` `  ` ` #ghl!m:pKnr r  oq m r h v w t( mU `  } ` `  ` `    / m xs y y y z { {0 | { y {0 } {8 ~ x$ {/ {*A xR x x x x x  {x'/{_xls{{x{(x?{nx{x{x3;{hxxxxxx!xOx|xxxxxxijgmii tCoKmatmt\mrh X  8rFhT[d} . w > w  w  w  ww w # w(0: P? wDKwV w`t w  ww w w   ww$ w.BX w]eo Ct wyw w w  ww w& w+3= XB wGNwY wcw w) W; WAK o    ` .  ?M{V{a{m{ x{{{${,{0 {8  `AS [dq| $,0 8  $,(01 86<)>$:M WX X ~4Q ` j ~  5 5! !#! (!0!:!T! WZ!6u!!!)""##R#s$$$ $$$%|%&&& & P & ` &  &  && & ' W' A'XT' m' W'X''(!(S( X(`( e(r( w(( (( (((( )9)C)W)a))))))f)))**g* l* ws*x*}* w*P* w*** w*P** w**P*** w**P+-+ w4+9+>+ wC+PS+d+ wi+q+P+++a+ w+++ w+P+ w+++ w+P+ w+++ w+P+ w,, , w,Pv, w},,, w,P,, w,,P,,, w,,P,, w- -- w-P- w!-&-+- w0-P7-<-aA- wH-M-R- wW-Pj-{-- w-- w-P-- w--.$.B.`.o.w... .. . . ..0. W. . . Y..{0. W. . {. Y./ /f/ / / _ / G G L W CXbbc"c*d3 K  ? P (a 0 8 @ H P=X`hMpxIv0]3 '&& W(0I8@2HPX`hpZ x~       & !&4!k!~!!D""&&#L## #(#0#8#@#H#P#X#`$h$p$x|$$;%%%%+E,E,E,E,E,E,E,E,E,*E,E,E,E, E,(E,0E,8E,@E,HE,PE,XE,`E,hE,pE,xE,E,E,E,E,E,*E,+E,E,E,E,E,E,*k*+E,E,E, E,(+0E,8E,@E,H+ x )QX"3L.HK (08@H_` (q0Z8@uHJPIXR`ThM , 1 13 1 /% 05 10T= 1E 1׉X 1$k 1)~ 1e3 1T? 1J 1,U 1,[ 1?Sy 1W, 19 1; 1n 1t  1gK 1G 1  1-V 1u`3 1Sc: 1W 1,^ 1b{ 19& 1K 1Ze 1 1hc 1TC 1$L 1 1L4 1s9 1Z 1 M# 11/ 1^; 17|G 1n] 1nx 1 1z 1 1 1 1Ec  11 1 ) 1q6 1HNB 1^N 17|Z 12f 1r 1lz~ 1 1m 1 1s 1{  1r 15> 1#r 1= 1 1d 1 1ɇ 1B<  1'7 1= 1P 1V 1i 1f+o 1+ 1( 1 1:< 1 12 1c 1: 1~C  1 1ND, 13 1 .J 1=8Q 1$o 1av 1 1a 1u 1_ 1 18 1  11 1  1W 1fW$ 1,+ 19L 1S 1ku 1G| 1& 1 1E 1eA 1. 15 1s 1= 1, 1' 1.@ 1G 1q` 1g 1 1 1ۋ 1a{ 1 1{S 1 s 1  1 1 1$ 1) 1D 1_ 1 1 1 1 1 1L54 1#; 1XX 1#_ 1r| 1# 1 1 1 1 1 Y 1WN 1MM 1@# 1; 1@B 1EZ 1-a 1$ey 1- 1 188 1Q 1t 1@ 1 1Q 1\ 1e 1\! 1xq: 10 A 1AY 1Ql` 1&y 19 1  1] 1\ 1L 1C 1L 1_ 10$ 1EA 1oH 12e 1ol 1K 1o 1s 1b 18 1b 18 1b 1i( 1b/ 1&L 1bS 1Cu 1r| 1 1, 12$ 1, 1_9 1, 1T 1, 13 1,: 1>]\ 1src 1; 1sr 1" 1sr 1MV 1sr 1%S 1sr 1_9 1sr@ 1Ng 1srn 1 1 1 1 1<; 1 1 1  1m4 1; 1'Ol 1s 1 1 1` 1 12V 1 1g. 15 1>Ea 1h 1L( 1 1ʗ 1 1g/ 1 1I( 1/ 1Fd[ 1b 1a1 1[ 11 1V8 1c 1E  1- 1i 1ix9 1Sc@ 14"g 1/n 1Vf 11| 1C 1 1g` 1*G 1x@ 1G 1M 1G 1; 1GB 15Bd 1Gk 1p 1K 1֘ 1K 1i} 1K 1Y  1K 1@6 1= 1_ 1f 1Cu 1 1Z* 1 1M 1 1v 1 1Y6 1= 1?_ 1f 1K 1TW 1 1TW 1b 1TW 1: 1TW 1~1 1>8 1Z 1>a 1 1> 1B 1> 1K/ 1]' 1 1;  16' 1;. 1U 1;\ 1 1; 1/ 1; 1c 1; 1* 1M 1O+ 1=I 1P 1%] 1=v 1 1fj 1p 1 1E 1"^ 1  1&? 1 17-  1KQ 1 1@ 1w" 18G) 1!0 17 1> 1E 1AQL 1(T 1e\ 1c 1Wj 1[q 1FBz 1R 1  19  1 18` 1G 1` 1r 11h 1[ 1E 1~ 1:c 1 1ۚ 1& 1$. 1A9 1! 1/Y 1 1u* 1(6 1M 1:f 1ss 1^K 1 1$ 1S{ 1 1 18 1!" 1  1. 11= 12L 1Y[ 1C)j 1x 1 11 1w 1` 1 1Z 1n 1KGw 1,_ 1S 1c 1j 1S 10 1 1fj 1h 1M_( 1P. 1L 1^i 1u 1N{ 1ZM 1h 1 12 1 1fj 1+! 1G! 1! 1$! 1D! 1z[! 1Yb! 1!z! 1! 1 ! 1.! 1Q! 1.@! 1! 1fj! 1(! 1N]! 1X"" 1" 1t<" 1A>(" 1E"4" 1;" 1P" 1}\" 1g" 1 3p" 1" 1H" 1 L" 1z"" 1$5" 1T" 1V" 1D" 1d" 1w" 1" 1ap" 1# 1ap# 1'# 1-# 1f@# 1F# 1[# 1g# 1>s# 1^# 1@# 1@# 1l# 1"# 1n# 1n$ 1/$ 1o8$ 15C$ 1DS$ 1Cf$ 1n|$ 1n$ 1$ 1$ 1 s$ 1&s$ 1r5$ 1.H$ 1d$ 1% 1.% 1H;% 1gO% 1W\% 1"_i% 1v% 1% 1% 1Z% 1q% 12s% 1-{% 11% 1@% 1& 1V& 1!& 1H.& 1L@& 17|M& 11eZ& 1g& 1HNt& 12& 1& 1& 1lz& 1h& 1H& 1h& 10Z& 1*G& 1' 1RK ' 1Q$' 1+' 1?D' 1)K' 1wh' 1Do' 1U' 1F' 1B' 1e' 1ra' 1e' 1_u' 1O:' 1$ ( 1O:( 14(( 1ȁ/( 1G( 1ȁN( 1f( 12m( 18( 12( 1HL( 1M( 1 ( 1M( 1<( 1bV( 1+( 1) 1A) 1@) 1~3) 1@:) 1uN) 18GU) 1i) 18Gp) 1 ) 1bV) 1) 1) 1C) 1ap) 1)) 1ap) 17) 1) 14 * 1* 1?&* 1tc-* 1N* 1U* 1^q* 1z4x* 1@ * 1X* 1J* 1-* 1* 1m?* 1.m+ 19+ 1`9+ 1eA@+ 1:a+ 1'`h+ 1Q+ 1kV+ 1?s+ 1kV+ 1 + 1)X+ 1*, 1)X, 14, 1:K, 1:q, 1:, 12., 1#, 10, 1Z, 1 y, 1, 18X - 1- 11- 1nP- 1Lh- 1@o- 1P- 1@- 1<\- 1-- 1~- 1-- 1C- 1]- 1Ս. 188 . 18". 1). 1f7A. 1/H. 1a. 1h. 1. 1. 1]. 1H. 1'. 1. 1 0. 1N/ 1$%/ 1N!/ 16>/ 1E/ 1Dw^/ 1e/ 1)^~/ 1/ 1 / 1/ 13/ 1/ 1k/ 1/ 1}A0 190 1D,0 1G30 1jFP0 1GW0 1Jt0 1[{0 1v0 1>0 1sO0 1>0 1XI0 1w0 1l 1 1w 1 1<(1 1H/1 1PL1 1HS1 1Jip1 15w1 11 1T1 11 1V1 11 1p1 1@31 1y1 1E 1 11 1I1 1x1 1j1 11 1x1 12 1H2 1 2 1L,2 1c@82 1HND2 1I2 12U2 1a2 11m2 1y2 1lz2 1#2 12 1*G3 1o3 1%3 1M=3 1D3 1v-c3 1 3 1!3 1@3 13 1@3 1fe3 1-3 1v3 1-3 1Ǔ4 1]4 1Ɍ54 188<4 1KT4 1[4 1Zs4 1Lz4 114 1 4 1U4 1sr4 1N5 1sr5 1x95 1@5 1uY5 1`5 1b:}5 15 1X5 1/5 1R5 195 195 1Z5 1S=5 16 1 6 1G"6 1?6 1GF6 1Ȅc6 1[j6 1@6 1>6 1B[6 1>6 1T]6 1w6 1r6 1w6 1t7 1H7 1;7 1HB7 1_7 1Tq7 1z7 1p7 1Y7 1NJ7 117 1EV7 19 7 1^7 17|7 1n7 1n8 148 1u=8 15H8 1DX8 1d8 1v8 1E8 1c8 18 18 18 18 18 1EV8 18 1 9 1HN9 19 1t39 199 1N~P9 1*GV9 1~m9 1tD9 1tD9 1tD9 1tD9 1i9 1-&9 1(: 1: 1g9: 1?: 1: 1p: 19: 1L: 1EV: 19 : 1^: 17|: 12: 1: 1lz; 1; 11; 1HN*; 1{@; 1{a; 1{; 1{; 15; 1#; 18; 1,; 1m < 1< 1)p+< 12< 1RQ< 1\p< 1< 1@< 1< 1@< 1k< 1-< 1C < 1-< 1[= 188 = 1#= 1*= 1B= 1\I= 1g= 10 n= 1w,= 1]= 1Ϡ= 1Ql= 1= 1L= 1uj= 1L= 1u > 1j> 1 \2> 1mU> 1Uqr> 1:y> 1|_> 1:> 1!> 1[> 1&> 1[> 1w> 1> 1 ? 1? 1 ,? 1r3? 1[L? 1wNS? 1g? 1srm? 1? 1sr? 1T? 1? 1? 1? 1@ 1/ @ 1 2$@ 19+@ 1 ?@ 1F@ 1&ad@ 1b>j@ 1@ 1O<@ 1d@ 1^a@ 1y;@ 1;?@ 1YA 1A 1.A 1p8A 1f=A 1VB 1,B 1B 1.B 1EV C 1^C 1C 1+C 16C 1@E 1JE 1SE 1fj]E 1#&wE 1p"E 1p"E 1#&E 1;E 1%E 1=E 1F 1fjF 1efF 1 19F 1BF 1fjKF 1pZF 1yrF 1BF 1=F 1F 11F 1F 1F 1F 19F 1oG 1nG 1,G 1;G 1xGKG 19UG 1o^G 1nwG 1RG 1yG 1)G 1G 1UG 1G 1 3H 1H 19DH 1dTH 19H 1PH 1hH 1 3H 1H 1/H 1 3H 1#I 1&3I 1oK 1fjWK 1K]K 1hK 1_K 1|}K 11K 1EVK 19 K 1^K 17|K 1K 1L 1>`,L 1H2L 107OL 1HUL 1drL 1BxL 18YL 1L 1L 1L 1HL 1AGL 1>M 19M 1e .M 1G :M 1yEM 1bPM 1ǝ[M 1@fM 1pM 1g}M 1n;M 1.M 1^M 1EVM 1M 1M 1"M 1v$N 1s N 1\#N 1wn*N 1*qBN 1wnIN 1pfN 1mN 1N 1N 1N 1LN 1N 1oN 13N 1͉N 1pO 1!O 1xp>O 1"EO 11bO 1iO 1>OO 1O 1EO 1iO 1n;O 1.O 1^O 1EVO 1O 1 P 1"P 1](P 1s/P 1͆GP 1wnNP 1fP 1wnmP 1&P 1P 1sP 1P 1P 1LP 1rTP 1oP 1MQ 1͉!Q 1>Q 1EQ 1CbQ 1"iQ 1gQ 1Q 1F-Q 1Q 1EQ 1VQ 1yQ 1bQ 1ǝQ 1@Q 1Q 1hR 1yR 1bR 1ǝ'R 1@2R 1`TS 1HZS 1HPwS 1H}S 1S 1BS 1iS 1S 1S 1S 1-T 1AG T 16(T 19.T 1ՅVT 1l{bT 11nT 1EVzT 19 T 1^T 17|T 1T 1T 1>`T 1HT 1F U 1HU 1a0U 1B6U 1SXU 1^U 1e|U 1U 1DU 1AGU 1vWU 19U 1 }U 1L6U 11V 1EVV 19 V 1^(V 17|4V 1JV 1eV 1>`V 1HV 17UV 1HV 132V 1BV 1 V 1V 1h2W 1W 1M)0W 1AG6W 1QhTW 19ZW 1W 1uW 1EVW 19 W 1^W 17|W 11W 1BW 1 )W 1W 1Z!X 19X 1YX 1"X 1i5X 1{;X 1' NX 1nTX 1'hX 1utX 15X 1FX 1pX 15X 1n;X 1.X 1^X 1EVX 1Y 1,Y 1"3Y 12nKY 1sRY 1jY 1wnqY 1fYY 1wnY 1%Y 1Y 1Y 1Y 1NY 1LY 1Z 1o Z 1ZR=Z 1͉DZ 1aZ 1hZ 1[ 1 X[ 1Ar[ 1&[ 1Er[ 1,s[ 1d[ 1[ 1E[ 1([ 1[ 1[ 1[ 1[ 1Y\ 1\ 1\ 1C\ 1#\ 1*\ 1}*/\ 1"B\ 18M\ 1tY\ 1 e\ 1q\ 1}\ 10]\ 1K\ 1>\ 1\ 1r\ 1^\ 1<\ 1Ȏ\ 1|\ 1~\ 1& ] 1L] 1ޖ$] 11] 1k>] 1K] 1?X] 1he] 1D5r] 1G|] 1@] 1N|] 1U|] 1\|] 1`] 1=] 1] 1i] 1Ձ] 1U] 1U^ 1g ^ 18^ 1s9*^ 1}?9^ 1(J^ 1bU^ 1>a^ 19m^ 1\^ 1 r^ 1i^ 1[^ 1#^ 1s^ 1 _ 1M_ 1MC1_ 1CW_ 1mr_ 1=_ 1/_ 1;_ 1z_ 10_ 1` 1LW8` 1kUc` 1]~` 1m$` 1)[` 1P` 1` 1zVa 1ʙ2a 1\Wa 1cwa 1[a 1a 1*a 1Z5a 1kTb 1q!b 1\;b 199Ub 1/b 1b 1Sb 1vb 1Y{b 13cb 1eb 10`b 1ib 1 b 1Cc 1~c 1S*+c 1ŢJc 1>ic 1Pc 1`c 1c 15c 1 d 1*d 1Jd 1wjd 1~d 1=d 1d 1d 1n#d 1w#e 1S6e 1`Me 1cFSe 1cFke 1are 1ae 1&e 1&e 1mDe 1mDe 1 ue 1 ue 1rf 1&f 15ATf 1of 1f 1Gf 1f 1+f 1<6f 1_f 1&if 18if 1uUg 1g 14 g 1_,g 18g 1CTDg 1nPg 1ә\g 1Rhg 1tg 1_g 1#g 1g 1g 1Tg 1eg 1Xcg 1Vg 1Hg 1g 1 h 1\&h 1%$th 1T}h 19h 1 h 1Nh 19h 1Lh 15h 19h 13?i 1*i 1hr3i 1?i 1}8Li 1`Wi 1z^i 1eji 1$Gvi 1|i 1Mi 1^i 1i 1i 1 j 1Hj 1T:j 1@LYj 1_j 1wj 1#~j 1#j 1j 1j 1ij 1ij 1qj 19 k 1k $k 1>k 1mSk 106k 1zk 1spk 1M{l 1D_l 1Sl 1Wl 1?m 1?;m 12<Am 1GUm 1 [m 11rm 1~m 1&m 1Ym 1spm 1wm 1m 1n 1Dn 1I7n 1ATn 1Eqn 1Vn 1Zn 1n 1F8n 1'n 1n 1>n 1pn 1bSo 1p o 1g#o 1.)o 1Ao 1pGo 1_o 1Meo 1ӝ~o 1Bo 1o 1eo 1oo 1so 1)o 1+o 1Up 17Qp 1_'p 1-p 1Jp 1a5Pp 13p 1pp 1/Qp 1<p 1Mp 1M$q 1M?q 1=Eq 1]q 1FCcq 1{q 10q 1`q 1dq 1q 1dq 1A.q 1$ r 1Br 1W$r 1R+s 1qs 1[s 1s 1Qt 1t 1w 1w 1×w 1‡x 1kx 1z9(x 1×Hx 1^Nx 1Ntfx 1rlx 1Kx 1њx 1@bx 1+x 1x 1 x 1x 1Zx 1^<x 1sy 1y 1 y 1?=/y 1Y5y 16Sy 1MIYy 1Kqy 1^_wy 1ity 1y 1y 17Qy 1(y 1+y 1ly 1y 1)z 18r z 1|%z 1 +z 1LDz 1Jz 1 mz 1sz 1C!z 1Hz 1z 1&z 1&z 1&z 1z 1zz 1M`{ 1! { 1\"{ 1|H({ 1i@{ 1!G{ 1-n{ 1n{{ 1vb{ 1 { 1{ 1{ 1S{ 1W{ 1y{ 1x{ 1;| 1sp!| 1y4| 1GL| 1#e| 1yp| 1|| 1u| 1b| 1<.| 1| 1[| 18S| 1m| 16| 1x| 1!?| 1Y| 1} 1ͅ} 1v} 1_} 1q} 1d)} 1%F} 1LhV} 1Sb} 1s} 1S} 1h} 1y} 1l} 11 ~ 1?'~ 1;_G~ 1Ofh~ 1`j~ 1)~ 1=T~ 12 ~ 1T~ 1JK 14 1M6 1/Q 1l 1w 113 1 1nj 13 1 1CK" 1Fx8 1!N 16c 1'Vy 1d 1 1Հ 1H 1. 1cx: 1}` 1@-v 1, 1 1,h 1 ; 1cՁ 1  12 1+. 1<? 1LJ 1lp_ 1sMz 1@ 1qy 1 1RQ 1( 1Zǂ 1%Tӂ 13f߂ 1 1 12 1 1u 1( 1v9 1.E 1 1 ̓ 1ۃ 1y 1, 11 1' 16u! 1%T/ 1g5= 1_K 1NY 12tg 1;:u 1i 13K 1/ 1T 1 1QɄ 1wׄ 1؎ 1 1Y 1( 1+ 1P+ 19 1G 1 ` 1 1P 1cN 1M̅ 1GӅ 1 1& 1}' 1A. 1pO 1$V 1po 1Npv 1q 1zr 1 1Z 1 1 1 1! 18; 1]B 1di 1<#p 1 - 1q 1 1e 1-NՇ 1 ܇ 1w 1gb 1. 1S 1Yl5 1"]< 1U 175\ 1tp 1b6w 1՟ 1v 1; 1 1T҈ 1و 1G# 12P 1; 1$ 1' 15 1IC 19Q 1_ 1$y 1$ 17 12 1Kxˉ 1x.щ 1Β 1cN 1 1G 1C 1&I 1/k 1Aq 1 X 1zr 1R 1zr 1s 1Z 1x 1 1, 1a52 1J 16P 1[ 1mA 1Y 1Y& 1Y0 1W@ 1V}S 1N| 1'n 1zM 1'n 1zM 1Ռ 1'n 1zM 1Y 1Y6 1Y@ 1We 1Yo 1W 1Y 1W 1' ؍ 1Y 1W 1'  1Y/ 1YD 1O 1 1-n 1@ 1Y 1Y 1Yۏ 1Y 1Y 1}85 1Y> 1Z 1Yc 1n 1&c 1Y 1YȐ 1Yѐ 1mO 1Y 1Y+ 1W 1 1Y 1Y 1Wӑ 1Yݑ 1W 1  1Y3 1zMY 1Yx 1Y 1%ђ 1ڒ 1fj 1 1Y) 1YT 1Yq 1Y{ 1W 1Y 1W 1Yؓ 1Y 1Y 1Y 1K 1Ym 1Y 1Y 1n 1Y 1 1 1  1 1 1YW 1Yq 1Y 1Y 1YΕ 1Y 1 1Y# 1Y_ 1Y~ 1YՖ 1Y 1 1 19& 1o/ 1n8 1 D 1 P 1_ 1x 1 1 19 1o 1n 1 1 ͗ 1 1y 1 1  1 ] 1,sf 1E} 1 3 1 1 1 1ޘ 1Y 1= 1# 1SE 1=N 1#Z 1S 1Y 1YЙ 1Y 19 1 1  1( 1A 19] 1 i 1 u 1 1 1 1Ϛ 1 3ؚ 1 1 1 1 1 3 1 1 + 1 6 1O 1 3X 1j 1 v 1 1ś 1H 1o 1n 1  1  1- 1YG 1Yb 1k 1Et 1d 1 1Y 1 3Ŝ 1Μ 1!ל 1 1 1 1 1* 1 5 1 [ 1Y 1Y 1Y˝ 1Y 1Y 1Y? 1Ym 1Y 1YԞ 1Y 1YE 1Yi 1Y 1Y 1W 1 1fj 1pɟ 1՟ 1mO 1Y! 1Y@ 1Y[ 1_ 1Y֠ 1Yޠ - 1U. -L 1c -BWA`[ 1p_ -  -Cȡt 1Y -| -* -0?Zt 1Y - -]آ - - ( -4Q -[w - -9 -]ȣ 1Y - - 188 -I 1Yi 1#m -T / -Ҥ -ܤ - /0 -*F -P -Zv -_ -* - -*ɥ -ҥG 1k ' 1Y/ -'> -`H&e -k/~/ -7Ħ 1YΦ 1Wݦ 1: - V( -?._A^ -cdw -Vħ 1ȧ -; 1YC - Mi -Yo } -&Ϩ. 1Y 1%( 10 1 T 1\7r 188L 1Y -W 1>˩ -* ѩ 1ܩ - 1! - -  1# -C ) 154 - :Y - _ 1Xj -) p; 1 & -L e - - ĪjԪ 8   ,ZB 1 &M - Wat - ~ - j hͫ ث  1Y* 19 1)HZ 1`e - r 1Y 1 -  1vȬ -3 ά 1)٬ -c ߬ 1`  1Y - & - , 107 -3=O 1)Z -`Ar 1!} - 1> -9 1 -\ ̭ 1Y - - /` 1( -.'HD^Mtdlî 1YԮ 1Y -. -g %)(E 1YM -\ -b 1@m -8s9 1[: ->O¯ 11ӯ 188 1Y - 1@ - 188+ -?1Rr -ϰ    A ] 1Ye -k8 u ~ 1Y -JƱ ر 1 - -  5 1#@ -J g -=q -dw    Ʋ 1Y  1Y" -( 1T/! 9 1B 1K /Q 1\ -b 1)m -s 10~ - 14 -K - ٳ -P -s  -P -s 7 -P> P{8]  {0 ƴ{0ߴ - != -C+]cy - -9pz -\Ƶ -(D -Jj -#ȶ -ζ7' 1@ -B' 1q2 -x8RpWqзM 1` - )! G, a"w  1Y -Ǹ 1Ҹ -Oظ"G1OLTh 1Yp -v 18 -eع 1Y -3 18 -`,nH 1YP -V 1ya -gy 1 & -c -ĺ - - X&B 1YJ - Pe u& 1Y 13» -N Ȼ< 1lA -  - J8 1+U<OX - ^Xv 1zr| 1] 1u* 1Dȼ -2!μ# - 1fj 1B@ 1NF 1JJsfw . .۽ > >2 CU l  Ǿ 1о 1fjپ 1 1Y" 1Y? 18E 1H9Ie  ' -~!1N -!Tg -!, -!4, 4) P:HL PcHHO -!"Z -["d d- -~"3xMk -"   1Os -"} -" -!#. -D#4CWu   -g##(@ -#F2Y2y -#FTa -#iai C,}> CT}|} - $ -D$ -g$$>\y -$  "@d -$n -$ - %"/ --%%74/H7f XwK XKKR -P%]- -%3gFgf -%l{ -% 1i 1} -% 1,"! -)&/ -u&9U -&_ - 'e -Y' -|' -' 1  1  1. 1\L 1Yr 1 1Y 1 1 1 1\ 1Y -' 1) -7(: -[)@!V 1 a -)k! -* ->* -a*! -* ->* -a*A -* -* -G+A. -*8 -*B -G+LAe -*o -*y -G+A -}+A -* -* -G+A -+\ e 1* 15 -+; 1H 1rS -Z,]ee /v -, -, -, / --e -,o -N- / -v-"? --I --Sk -:.u -^. -. -. -. -/ -. -. -/3 -?/C -b/M -/Wp -?/ -b/ -/ -b/ -/ -b/ -/ ) -b/3 -/=\ -b/f -/p -b/ -/ -/ -/ -b/ -/ -/<Y -0c -50m -X0w -|0 -0 -50 -X0 -|0 -50 -X0 -|0 # -50- -X07 -|0AY -50c -X0m -|0w -50 -X0 -|0 -50 -X0 -|0 -0 -50$ -X0. -|04J -0P&- -0 -1 -612 -Y1 -1 -17' 1YK 1Yh 1o 1w 1o@ 1Df 1<  1& 1W 13 1 1 1 1 t! 1 (x2 1a9C$Y 1Md -1j 1n4x 1` 1p -u2 1la --3 1z 1w -3 1 -3 1Z -o4 1K 1 -P5 1/ 1: -5D$a -l6k$ -6$ -9 -966 -8:6- -<7 -==DqL /0] -y=g -=qqy /` -= -n>{8 -> -JC; -C - HEPWl -Jv -!K -MK -K8 -K -L0 -DL$ -L*:<8TIp -Lz -M -6M -M -M -M# -!N# -pN)-OBk -Nu -N -O -]O -O -O  -&P -P%J(f -Pp -UQz1 -P -{Q>> -Q> -Q >% -Q1JJ -QT --R^Wz -PR -uRa -R -Rl - S -/Sl -gS#? -SI -STp -Sz -S -S -S  -NT -sTK ' -T1 -T7U \Z x -8U -dUZ -8U -dUn    -U -V 8I!T -UV^ -xVh -VrP! -VP! -V -V! -W! -W!* -W4!L -WZ!b /r -*W| -OW! -rW -W -W! -rW -W -W!!, -W6 -X@#"X -'Xb -tXh-"5" -X -X - YD" -/Y -RY" -yY -Y "E"a -Zk -:Zu -]Z" -Z -Z# -Z -[ ## -h[# -h[- -[7 -[A -[K'#c -[m -[w -\D# -?\ -b\]# -\ -\ -\ -\ -\c# -]$ -]. -6]:#V -[]` -~]k# -] -]$ -] - ^m$ -4^ -^w$$5 -^? -^I -^S -_] -E_d$z 1F{$ -h_ -h_ -_ -_ -` %$ .$J$e;% -5` -[`% -` -`%% -"a -Ya%0 -|a: -aE%a -ak -av% -b -+b& -Rb -b&' -b'18&N -cX -=cb&z -`c -c&& -c& -=d& -=d&8 -=dD'] -dg -eq' -'e -Le' -e -e)' -e -f)' ->fE'7R'T -af^R'v -fR' / -f -agR' / -g -g|' -g -h '" ->h, -ch2'H -hQ'm^' -f^' -f' -h' -h''6 -4i@'X -oi^(w oB(!$ /,!E P4!^>!xy!!#V#$& %(X 1c<({ 15 -i 1y -iR( 1 -?j 1Z -j 1b -j 1@{ -Sk -l 1/r! -Hl6 1>A -mK.)o -]mu=)L) -Pn -un[) / ) -?o)7-Q -{oW-o))))) .')D -oN -oT *w-* /P -p-B* / -pW+|**#*H*[*~ -q** -'q* -'q* -'q*' -'q0*C*f -cql** -q+=+G+W+ -q#W+@ -qJW+c -qmW+ -qm+m+ -qu+u+ - r++B+U+z+++ ,,,",5,X -1r^,q, -Tr, -Tr, -Tr, -Tr ,,@ -rF,Y,v -r|,--*-4-Q--[-@-] -ri-|--. -r(.-. -"sF.2K.O -HsUd.m\( i( {( ( ( (/(Q(y)G)e))|**** =+1+?+M+[+i ,w,,,-*-@-Q--s..2{.Y 1c 19o 1.} 1c.... -ns.3 -s= -nsJ.i{x.{8. -s{8.. .2Y@O.eYs{/$/_ 1br 193 1Q  1t 1J#- 1 :9xC 1#HOY 1 f{ 19 1h 1h` 1N" 1H/ N 1>h[ j 1ewP  1`  1``  14 1= 1w 1n+ J 1yEWv 1` 1  1` 1Eh` 1h`.8 1jDN 1)tZd 1Zbt 1E 1z 1! 1# 1h 1* 1 1d' 1c| 1 176$ 1H6 1W< 1K 1f 1Ojq 1( 1 15 1 1g_ 1 1 1 11 1Y5 1يR 1 X 1k 1q 1o 1 12 1e 1S 1o6 1S 1@ 1>A@@n&n.tLT6_6g8r8z==qqt%%oot %CKV^|t}}t$,7?]epx 9A]ez#.6T\goLLFK-%--5:5BF_g***5*--5- 5'/*:*B9`h.s.{889&./7:LL!?VG^ck  (/3/;0Yalt//0//0L  * g2 = E W _  k            & C K %W %_ >k >s           * ) 51 L ?T Pc Pk T| V Y Y ] ] e e i ] i Z" \: \B ^] ^e a a i Z i  r      3 ; c k v ~     y y      8 8 3 ;,F,NYa!APPUUZ9JA|\Ud&&q.6$A$I'go$z$'(==(==8(@=K=S^fD     ! ?GRZ e m     7 7 } $} ,~ J~ R ] e p x            ! = E d l    F K K M M    !I )K 4<GOZbmuq8 ! ! D D K K   (0;CvNvVait|A K K P       / 79 BK JX U ]: h? pK {P \ a k        =J&M.a9ALT_IgSrvz+0:]g %08CKV^iq|'97<K        %{- 5 P X s { {8    {8  *c9cAo\zd#&6BK JM U3]xY \ \ l v   P)P1TOWbjQuQ}TTddTdd 3;FNgYganmmnnn*2=Eckv~    %( %0 &N 3V ;a ;i A A I I O A I I O O!W !W!]2!:!E!M!"X!"`!-~!!! !!!Z!!Z!,"3!"d)"n6"p>"w["Zc"~"d""""""""#(!#)#(D#L#g#2o#<|#>#E#(##2##a#h $$$'$D$L$g$o$$$$$ $ $$$] %%]-%/5%6P%gX%qe%sm%z%]%%g%%%%%&&)&1&<&D&O&W&u&}&&&&&&&&&&& '' '('3';'Y'a'|''''''1'1'='='e'e(((7(?(J(R(=_(=g(Wr(Wz(\(\(e(e(((((((((*(I)f)f)%)-)8)@)[)c)*n)*v)e)e)h)h)))I)I))))=)e*!!*5>*!F*5a*!i*1t*1|*=*=*e*=*T*T*[*=*A*A+D +D+T"+T*+[G+=O+[Z+[b+e}+=+e+H+Q+Q+T+T+[+,,,$,[,,f7,x?,Z,b,n,v,*,e,, Y,e,,e,-| --I-f+-f3-N-oV-a- +zv-~-- +--I-[-f-x---I.[ .f.x.:.B.^.f.......I....I/$/I?/G/Ib/j/*////I//I//00I50=0IX0`0%|00*00I00I0-061-1661->1IY12a16121612171?1n1n121G12&2&2&!2&,2&42&?2&G2&R2&Z2R'u2?}2g2g2n2n22222&2&2'2'2'3'3<(-3?53gD3gL31&W34&_3X'j3'r3'3?35(35(3<(3?3n3n3t3t344K4K4&4.4(&94+&A4&L4'T4'o4nw4t4424244444&4&4&44&4&5& 5&5&"5&-5'55'P56X5nd5l5x555?5555555&5&54& 6`64&$6'06'86'H6%(P6<(l6t61616n6616166666@6@6D6D777#7+7(:7(B7,M7,U7d7l7w7777777777P 7P 7T 7T 7i 8i 8m 8m '8 68 >8 I8 Q8("`8("h8,"s8,"{8"8"8"8"8#8#8 #8 #8r$8r$8v$8v$8%9%9%9%#9&29&:9&E9&M9&\9&d9&o9&w9<(9-9n9X!9f!991919696:n:P!:k!8:6@:@O:@W:Db:Dj:y::::(:(:,:,::::::: ;;!;);4;<;P K;P S;T ^;T f;i u;i };m ;m ; ; ; ; ;(";(";,";,";";";"<"<#<#%< #0< #8<r$G<r$O<v$Z<v$b<%q<%y<%<%<&<&<&<&<&<&<&<&<<(<6=n=X!!=f!==6E=nT=P!\=k!y=n=t={=K=={=n=t=K==n=t >{8>>&>{8/>7>B>J>U>{8n>nv>q>q>t>>>>>>>>;>;?D?D?5?=?H?d?l??????"??"?D"?D"@.#!@.#)@A#I@A#Q@j#n@j#v@}#@}#@#@#@#@#@#A#A#2A#:A#WA#_A#A#A#A#A#A#A$A$A$B$%B%BB%JB;%jB;%rB%B%B%B%B&B&B(&B`C'C'JCRC&aC'iC'C7C;C;CDCDCCCCDD/D7DWD_D?"~D?"DD"DD"D.#D.#DA#DA#Ej# Ej#(E}#JE}#RE#qE#yE#E#E#E#E#E#E#F#F#AF#IF#hF#pF#F#F$F$F$F$F% G%G;%6G;%>G%]G%eG%G%G&G&G(&G`G'G' H7(H@7H@?HDJHDRHaHiHtH|H(H(H,H,HHHHHHHHH III$IP 3IP ;IT FIT NIi ]Ii eIm pIm xI I I I I("I("I,"I,"I"I"I"I"I#J# J #J # Jr$/Jr$7Jv$BJv$JJ%YJ%aJ%lJ%tJ&J&J&J&J&J&J&J&J&J'J'JWK!KW)K4KMKUKbKjKuK}KKKK8KKKKK8KKIL LI+LDL,LL0YL0aL9lL9tLIL,L5L8L5L9L9LIL8LILMIM6M>MKMSM^MfMMMMMMMMM2MN2!N)N#7N#?N,JN,RN2pNxN(N(N,N,N2NBNNBNOO$O,O7O?O]OeOtO|OOOOOO'O'OOO'P'&P .P ;P CPNPVPcP'kP'P PPPPPP'P'P(P9Q9Q=Q=!Q/Q'7Q'UQ(]Q={Q(Q1Q1Q=Q>QQJQQQRR-RJ5RPRWXRuRW}RoRoRwRwRRaRlRaRl SlSw/Sl7SoBSoJSwgSooSwSSSSSSS STTT'T/TNTVTZ sT{TZ TG TK TK TT TT TZ TG TP TP UT UT UZ 8UZ @U~ KU dUZ lUi {Ui Um Um U~ U~ U U U U U V~ V V #V .V 6V UVI!]Vk!xVI!Vk!VI!Vk!VP!Vk!VX!Vf!W!W!*W!2W!OW!WW!rW!zW!W!W!W!W!W!WD"X!XD"'X"/X#"]#[]#c]#~]#]#]#]#]#]#]$]|$ ^$^|$4^i$<^m$I^m$Q^v$\^v$d^|$^i$^r$^r$^v$^v$^|$^$^$^$^$_$!_$,_ E_$M_$h_$p_;%_$_ %_ %_;%_$_$_$_ %_ %_;%`$`;%5`;%=`%[`;%c`%`%`%`%`%`%`%`%`%`%`%`%a%"a%*a%5a%=a%Ya%aa%|a%a%a%a%a%a%a%a%b%b&+b%3b&Rb &Zb&gb&ob&zb&b&b &b&b&b&b&b&b'b'c8&c&=c8&Ec&`c&hc&wc&c&c&c&c&c&c&c&c&c&c&d'd%(d<(=d&EdX'TdX'\d'id'qd'|d%(d2(d'd@'d@'dD'dD'd'd%(d<(e' eD''e'/eE'Le'Te,'_e,'ge4'te4'|eD'e'e)'e'e)'e)'e4'f)'f,'f,'!f4'>f,'Ff4'afX'if'wf'f'f%(f2(fX'f'f'f'f%(f2(fj'g'g'g'%g'-g';g%(Cg<(agj'ig'gw'g'gw'g'g'g'g'g'g|'g'h|'#h'>h'Fh'ch'kh'vh'~h'h'h'h'h%(h'h'h'i(i(i%(4i'mf.]m.)em8)sm8){m<)m<)mV)mV)mZ)mZ)m*m*m *m *mN,mN,m\,n\, n-n-n-*n-2n.PnL)Xnf.unL)}nV)nV)nZ)nZ)n*n*n *n *nN,nN,n\,n\,n-o-o-o-!of.?o)Go)Uo-]o .{o-o-o)o-o .of.o)o*o*o *p * pN,pN,"p\,-p\,5p-Cp-Kp-Vp-^p-lp .tpf.pn-p~-p-p-pG+p+p*.pH.q* q*'q*/q+=q .Eq*.cq*kq*q*q+qW+q+q*.qH.qm+qt+ ru+r+1r,9r,Tr,\r`-jrH.rrf.r,r,r,r`-r-r-r.s*."s-.*sH.HsK.Psf.ns.vs.s8s.s)/s{8s.s.s8s.s.s{8s.t.t{8 + 0@P`p9=G089@=HG`h|px K M exIRfo0q8t@KH`qhtpx!!!!R'^'j''R'^'w'' v)()0-8.P-*X8*`n-h-B*L*G+W+)/L0-Kh 4Ht:0Lh|L DXl( ~ ( tTn4&H3`AxO]so  <( $.chemeq-2.12.orig/src/chemeq.cc0000644000175000017500000004652712244443730016416 0ustar georgeskgeorgesk// -*- coding: utf-8 -*- #include "chemeq.h" #include #include atome lesatomes[] ={ {-1, "e"}, {1, "H"}, {2, "He"}, {3, "Li"}, {4, "Be"}, {5, "B"}, {6, "C"}, {7, "N"}, {8, "O"}, {9, "F"}, {10, "Ne"}, {11, "Na"}, {12, "Mg"}, {13, "Al"}, {14, "Si"}, {15, "P"}, {16, "S"}, {17, "Cl"}, {18, "Ar"}, {19, "K"}, {20, "Ca"}, {21, "Sc"}, {22, "Ti"}, {23, "V"}, {24, "Cr"}, {25, "Mn"}, {26, "Fe"}, {27, "Co"}, {28, "Ni"}, {29, "Cu"}, {30, "Zn"}, {31, "Ga"}, {32, "Ge"}, {33, "As"}, {34, "Se"}, {35, "Br"}, {36, "Kr"}, {37, "Rb"}, {38, "Sr"}, {39, "Y"}, {40, "Zr"}, {41, "Nb"}, {42, "Mo"}, {43, "Tc"}, {44, "Ru"}, {45, "Rh"}, {46, "Pd"}, {47, "Ag"}, {48, "Cd"}, {49, "In"}, {50, "Sn"}, {51, "Sb"}, {52, "Te"}, {53, "I"}, {54, "Xe"}, {55, "Cs"}, {56, "Ba"}, {57, "La"}, {58, "Ce"}, {59, "Pr"}, {60, "Nd"}, {61, "Pm"}, {62, "Sm"}, {63, "Eu"}, {64, "Gd"}, {65, "Tb"}, {66, "Dy"}, {67, "Ho"}, {68, "Er"}, {69, "Tm"}, {70, "Yb"}, {71, "Lu"}, {72, "Hf"}, {73, "Ta"}, {74, "W"}, {75, "Re"}, {76, "Os"}, {77, "Ir"}, {78, "Pt"}, {79, "Au"}, {80, "Hg"}, {81, "Tl"}, {82, "Pb"}, {83, "Bi"}, {84, "Po"}, {85, "At"}, {86, "Rn"}, {87, "Fr"}, {88, "Ra"}, {89, "Ac"}, {90, "Th"}, {91, "Pa"}, {92, "U"}, {93, "Np"}, {94, "Pu"}, {95, "Am"}, {96, "Cm"}, {97, "Bk"}, {98, "Cf"}, {99, "Es"}, {100, "Fm"}, {101, "Md"}, {102, "No"}, {103, "Lr"}, {104, "Rf"}, {105, "Db"}, {106, "Sg"}, {107, "Bh"}, {108, "Hs"}, {109, "Mt"}, {110, "Uun"}, {111, "Uuu"}, {112, "Uub"}, {113, "Uut"}, {114, "Uuq"}, {115, "Uup"}, {116, "Uuh"}, {117, "Uus"}, {118, "Uuo"}, {0,"fin"} }; std::ostream & Compteur::operator << (std::ostream & o)const{ const_iterator i=begin(); while (i != end()){ o << i->first << " : " << i->second; if (++i != end()) o << " "; } return o; } std::ostream & operator << (std::ostream & o, const Compteur & c){ return c.operator << (o); } double AtomeListe::weight(fraction mult)const{ const AtomeListe * al; double w=0.0; if(Zed!=0 && Zed!=-1 ){ /* cas où ce n'est pas un groupe ou un électron */ w=mendelweight(symb)*nb*mult.i/mult.d; } else if (Zed==0){ /* cas d'un groupe */ if (group) w+=group->weight(mult*nb); } if (suiv) w+=suiv->weight(mult); return w; } void AtomeListe::compte(Compteur &c, fraction mult)const{ const AtomeListe * al; if(Zed!=0 && Zed!=-1 ){ /* cas où ce n'est pas un groupe ou un électron */ std::string key(symb); c[key] +=1.0*nb*mult.i/mult.d; } else if (Zed==0){ /* cas d'un groupe */ if (group) group->compte(c,mult*nb); } if (suiv) suiv->compte(c,mult); } void AtomeListe::numerote(int n){ if(Zed!=0){ /* cas où ce n'est pas un groupe */ no = n; } else if (Zed==0){ /* cas d'un groupe */ no = n; if (group) group->numerote(); } if (suiv) suiv->numerote(n+1); } AtomeListe * AtomeListe::triage(AtomeListe * al){ AtomeListe * al1; if(al->Z()!=0){ /* cas où ce n'est pas un groupe */ if (al->suiv){ al->suiv = triage(al->suiv); } while (al->suiv && al->suiv->Zed!=0 && strcmp(al->symbole(), al->suiv->symbole()) > 1){ al1=al; al=al->suiv; al1->suiv=al->suiv; al->suiv=triage(al1); } } else{ /* cas d'un groupe */ if (al->groupe()) al->groupe(triage(al->groupe())); } return al; } bool AtomeListe::isEqual(const AtomeListe & a2) const { std::stringstream s1, s2; printnorm(s1); a2.printnorm(s2); return s1.str() == s2.str(); } void AtomeListe::printcount(std::ostream & o, const fraction& n, int multiple=1) const{ if(Zed!=0){ /* cas où ce n'est pas un groupe */ o << symb; o << ':' << n << '*' << multiple*nb; } else{ /* cas d'un groupe */ if (group) group->printcount(o,n,nb); } if (suiv) {o << ' '; suiv->printcount(o,n,multiple);} } void AtomeListe::printnorm(std::ostream & o) const{ if (sqbr) o << "["; if(Zed!=0){ /* cas où ce n'est pas un groupe */ o << symb; if (nb!=1) o << nb; } else{ /* cas d'un groupe */ o << "("; if (group) group->printnorm(o); o << ")" << nb; } if (suiv) suiv->printnorm(o); if (sqbr) o << "]"; } std::ostream & operator << (std::ostream & o, const AtomeListe & l){ int n; const AtomeListe * al; if (l.sq()) o << "["; if(l.Z()>0 || l.Z()<-1){ o << "\\mathrm{" << l.symbole() << "}"; } else if (l.Z()==-1){ // cas de l'électron o << "\\mathrm{e}"; } else{ // cas des groupes parenthésés o << "("; if((al=l.groupe())) o << *al; o << ")"; } if((n=l.getmolecularite())>1) o << "_{" << n << "}"; if((al=l.suivant())) o << *al; if (l.sq()) o << "]"; return o; } const char* moltypeStr[] = { "aq", "g", "s" }; const std::string Molec::signature()const{ std::ostringstream o; o << liste(); if (charge()){ o << "^{"; if(fabs(1.0*charge())!=1) o << fabs(1.0*charge()); if(charge()>0) o << "+}"; else o << "-}"; } if (t != aqueous) o << moltypeStr[t]; return std::string (o.str()); } bool Molec::printcount(std::ostream & o, bool first) const{ if (!first) o << ", "; first=false; printnorm(o); o << '|'; al-> printcount(o,nb); return first; } bool Molec::printelec(std::ostream & o, bool first) const{ if (!first) o << ", "; first=false; printnorm(o); o << '|'; o << nb << '*' << ch; return first; } bool Molec::printspecies(std::ostream & o, bool first) const{ if (!first) o << ", "; first=false; printnorm(o); return first; } void Molec::printnorm(std::ostream & o)const{ if (nb!=1) o << nb << " "; al-> printnorm(o); if (ch) { o << "^"; if(fabs(1.0*ch)!=1) o << fabs(1.0*ch); if(ch>0) o << "+"; else o << "-"; } if (!iswater() && !iselectron()) o << "_" << moltypeStr[t]; } void Molec::coeff( fraction f){ nb.i *= f.i; nb.d *= f.d; nb.simplifie(); } bool Molec::printNernst(std::ostream & o, const char * prefix){ switch(t){ case sol : return 0; case aqueous : if (iswater() || iselectron()) return 0; o << prefix << "[" << *al; if (ch){ o << "^{"; if(fabs(1.0*ch)!=1) o << fabs(1.0*ch); if(ch>0) o << "+}"; else o << "-}"; } if (t != aqueous) o << "_{" << moltypeStr[t] << "}"; o <<"]"; if (nb!=1) { o << "^{"; printNombre(o); o << "}"; } return 1; case gas : o << prefix << "P_{" << *al << "}"; if (nb!=1) { o << "^{"; printNombre(o); o << "}"; } return 1; } } bool Molec::printNernstWIMS(std::ostream & o, bool wantedlatex){ if (iswater() || iselectron()) { return false; } switch(t){ case sol : { return false; } case aqueous : if(wantedlatex){ o << "[" << *al; }else{ o << "["; al->printnorm(o); } if (ch){ if(wantedlatex){ o << "^{"; }else{ o << "^"; } if(fabs(1.0*ch)!=1) o << fabs(1.0*ch); if(wantedlatex){ if(ch>0) o << "+}"; else o << "-}"; }else{ if(ch>0) o << "+"; else o << "-"; } } o <<"]"; if (nb!=1) { if(wantedlatex){ o << "^{"; if (nb.d==1){ o << nb.i ; } else { o << "\\frac{" << nb.i << "}{" << nb.d << "}"; } o << "}"; }else{ o << "^" << nb; } } return true; case gas : if(wantedlatex){ o << "P_{" << *al << "}"; }else{ o << "P_"; al->printnorm(o); } if (nb!=1) { if(wantedlatex){ o << "^{"; if (nb.d==1){ o << nb.i ; } else { o << "\\frac{" << nb.i << "}{" << nb.d << "}"; } o << "}"; }else{ o << "^" << nb; } } return true; } return false; } bool Molec::iswater()const{ if (t != aqueous) return 0; if (signature()==std::string("\\mathrm{H}_{2}\\mathrm{O}") || signature()==std::string("\\mathrm{O}\\mathrm{H}_{2}")) return 1; else return 0; } bool Molec::iselectron()const{ return (signature()==std::string("\\mathrm{e}^{-}")); } fraction Molec::nbelectron()const{ if (iselectron()) return nb; else return fraction(0); } void Molec::add(fraction f){ nb = nb+f; } void Molec::sub(fraction f){ nb = nb-f; } void Molec::printNombre(std::ostream & o)const{ if (nb.d==1){ o << nb.i << "\\,"; } else { o << "\\frac{" << nb.i << "}{" << nb.d << "}\\,"; } } std::ostream & operator << (std::ostream & o, const Molec & m){ if (m.nombre() != 1) m.printNombre(o); o << m.liste(); if (m.charge()){ o << "^{"; if(fabs(1.0*m.charge())!=1) o << fabs(1.0*m.charge()); if(m.charge()>0) o << "+}"; else o << "-}"; } if (m.typage() != aqueous && ! m.iselectron()) o << "_{" << moltypeStr[m.typage()] << "}"; return o; } int Membre::findMol(const Molec * m){ // returns the index of a molecule with the same atomlist if any // else returns -1. int result=-1; for(int i=0; ieqMol(m)) result=i; } return result; } void Membre::addMol(const Molec * m){ int i = findMol(m); if (i < 0){ push_back(new Molec(*m)); } else { (*this)[i]->add(m->nombre()); } } void Membre::addMembre(const Membre * m){ for(int i=0; isize(); i++){ addMol((*m)[i]); } } void Membre::eraseNull(){ Membre m(*this); clear(); for(int i=0; i < m.size();i++){ if (m[i]->nombre().i>0) push_back(m[i]); } } void Membre::compte(Compteur & c)const{ for(int i =0; i < size(); i++){ operator [] (i)->compte(c); } } void Membre::numerote(){ for (int i=0; i < size(); i++){ operator [](i)->numero(i); operator [](i)->liste().numerote(); } } void Membre::triage(){ int i,j; for (i=0; i < size(); i++){ operator [](i)->triage(); } for (i=0; i < size(); i++){ for (j=i+1; j < size(); j++){ if (operator [](i)->signature() > operator [](j)->signature()){ Molec * m = operator [](i); operator [](i) = operator [](j); operator [](j) = m; } } } } void Membre::printcount(std::ostream & o) const{ bool first=true; for(int i=0; i < size(); i++){ first=operator[](i)->printcount(o,first); } } void Membre::printelec(std::ostream & o) const{ bool first=true; for(int i=0; i < size(); i++){ first=operator[](i)->printelec(o,first); } } void Membre::printspecies(std::ostream & o) const{ bool first=true; for(int i=0; i < size(); i++){ first=operator[](i)->printspecies(o,first); } } void Membre::printnorm(std::ostream & o) const{ for(int i=0; i < size(); i++){ operator[](i)->printnorm(o); if (i < size()-1) o << " + "; } } void Membre::printweight(std::ostream & o) const{ for(int i=0; i < size(); i++){ o << operator[](i)->weight(); if (i < size()-1) o << " "; } } void Membre::coeff( fraction f){ for (int i=0; icoeff(f); } int Membre::printableNernst(){ int result=0; for (int i=0; itypage() != sol && !operator[](i)->iswater() && !operator[](i)->iselectron()) result =1; } return result; } bool Membre::redox()const{ for (int i=0; iiselectron()) /* c'est un électron */ return 1; } return 0; } fraction Membre::nbelectron()const{ fraction result(0); for(int i = 0; inbelectron(); return result; } void Membre::printNernst(std::ostream & o){ bool printed = 0; const char * prefix=""; for (int i=0; i0) prefix="\\,"; if (operator[](i)->printNernst(o, prefix)){ printed = 1; } } if (!printed) o << "1"; } void Membre::printNernstWIMS(std::ostream & o, bool wantedlatex){ bool printed = false; bool addcomma = false; for (int i=0; iprintNernstWIMS(w,wantedlatex)){ if (addcomma) o << ", "; o << w.str(); printed = true; addcomma = true; } else { addcomma = false; } } if (!printed) o << "1"; } std::ostream & operator << (std::ostream & o, const Membre & m){ for(int i=0; i < m.size()-1; i++){ o << *m[i] << "\\,+\\,"; } o << *m[m.size()-1]; return o; } Membre operator & (Membre & m1, Membre & m2){ Membre result; //result.printnorm(std::cout); fraction min(1); for(Membre::iterator i = m1.begin(); i < m1.end(); i++){ for(Membre::iterator j = m2.begin(); j < m2.end(); j++){ if ((*i)->eqMol(*j)){ Molec *m = new Molec(**i); if ((*i)->nb > (*j)->nb){ min=(*j)->nb; }else{ min=(*i)->nb; } m->nb=min; result.push_back(m); } } } return result; } Membre operator - (Membre & m1, Membre & m2){ Membre result; fraction diff(1); for(Membre::iterator i = m1.begin(); i < m1.end(); i++){ Molec *m = new Molec(**i); for(Membre::iterator j = m2.begin(); j < m2.end(); j++){ if ((*i)->eqMol(*j)){ diff=(*i)->nb - (*j)->nb; m->nb=diff; } } result.push_back(m); } return result; } bool Chemeq::valdefined()const{ return val > MINVAL; } void Chemeq::addChemeq(const Chemeq * c){ if (valdefined() && c->valdefined()){ long double e1=enthalpy(), e2=c->enthalpy(); fraction n1=nbelectron(), n2=c->nbelectron(); long double e = e1+e2; fraction n=n1+n2; if (n.i==0) val=exp(-e/R/T0); else val=-e*n.d/n.i/Faraday; } else { val=MINVAL; } gauche->addMembre(c->gauche); droit->addMembre(c->droit); simplifie(true); } void Chemeq::subChemeq(const Chemeq * c){ if (valdefined() && c->valdefined()){ long double e1=enthalpy(), e2=c->enthalpy(); fraction n1=nbelectron(), n2=c->nbelectron(); long double e = e1-e2; fraction n=n1-n2; if (n.i==0) { val=exp(-e/R/T0); } else{ val=-e*n.d/n.i/Faraday; } } else { val=MINVAL; } gauche->addMembre(c->droit); droit->addMembre(c->gauche); simplifie(true); } long double Chemeq::enthalpy() const{ fraction n=nbelectron(); if (redox()){ return -val*n.i/n.d*Faraday; } else { return -R*T0*log(val); } } void Chemeq::simplifie(bool tri=false){ Membre communs(*gauche & *droit); if (communs.size()>0){ Membre * g, *d; g= new Membre(*gauche - communs); d= new Membre(*droit - communs); delete gauche; delete droit; gauche=g; droit =d; } gauche->eraseNull(); droit->eraseNull(); if (tri){ numerote(); triage(); } } void Chemeq::printnorm(std::ostream & o){ gauche->printnorm(o); o << " -> "; droit->printnorm(o); if (val>MINVAL){ o << " ("; if (cste!=std::string("")) o << cste << " = "; o << val; if (redox()) o << " V"; o << ")"; } } void Chemeq::printcount(std::ostream & o) const { gauche->printcount(o); o << "; "; droit->printcount(o); } void Chemeq::printelec(std::ostream & o) const { gauche->printelec(o); o << "; "; droit->printelec(o); } void Chemeq::printspecies(std::ostream & o) const { gauche->printspecies(o); o << "; "; droit->printspecies(o); } void Chemeq::printweight(std::ostream & o) const{ gauche->printweight(o); o << " "; droit->printweight(o); } std::string Chemeq::equilibre(){ std::ostringstream s; Compteur cpg, cpd; gauche->compte(cpg); droit->compte(cpd); if(cpg==cpd) s << "OK"; else s << "ERROR " << cpg << " / " << cpd; return std::string(s.str()); } void Chemeq::coeff1(){ fraction mult = gauche->operator[](0)->nombre(); mult.inverse(); gauche->coeff(mult); droit->coeff(mult); simplifie(); if (!redox() && valdefined()){ val = val*mult.i/mult.d; } } void Chemeq::multiply(int num, int den){ fraction mult(num,den); gauche->coeff(mult); droit->coeff(mult); simplifie(); if (!redox() && valdefined()){ val = val*mult.i/mult.d; } } bool Chemeq::redox()const{ return gauche->redox() || droit->redox(); } void Chemeq::printNernst(std::ostream & o, std::ostream & w, bool wantedlatex){ Membre * ga, * dr; if (!redox()){ if (gauche->printableNernst()){ o << "\\frac{"; droit->printNernst(o); o << "}{"; gauche->printNernst(o); o << "}"; } else { droit->printNernst(o); } droit->printNernstWIMS(w,wantedlatex); w << "; "; gauche->printNernstWIMS(w,wantedlatex); if (val > MINVAL) { o << "\\,=\\,"; if (cste!=std::string("")) o << cste << "\\,=\\,"; o << valeur_latex(); if(wantedlatex){ w << "; " << valeur_latex(); }else{ w << "; " << val; } } else{ o << "\\,=\\,K"; w << "; K"; } } else{ /* c'est une réaction redox */ o << "E\\,=\\,"; if(wantedlatex){ w << "E\\,=\\,"; }else{ w << "E="; } if (val > MINVAL) { o << val; w << val << ";"; } else{ o << "E_{0}"; if(wantedlatex){ w << "E_{0};"; }else{ w << "E0;"; } } o << "\\,+\\,\\frac{R\\,T}{"; o << gauche->nbelectron()+droit->nbelectron() << "\\,F}"; o << "\\log"; w << gauche->nbelectron()+droit->nbelectron() << ";"; if (gauche->redox()){ /* c'est une réduction */ ga=gauche; dr=droit; } else{ /* c'est une oxydation */ ga=droit; dr=gauche; } if (dr->printableNernst()){ o << "\\frac{"; ga->printNernst(o); o << "}{"; dr->printNernst(o); o << "}"; } else { o << "("; ga->printNernst(o); o << ")"; } // implanter la sortie pour Wims ici. dr->printNernstWIMS(w,wantedlatex); w << "; "; ga->printNernstWIMS(w,wantedlatex); } } std::string Chemeq::valeur_latex()const{ std::ostringstream so; so << val; std::string s(so.str()); std::string::size_type epos=s.find('e',0); if (epos!=std::string::npos){ s.erase(epos,1); s.insert(epos,"\\times 10^{"); s=s+"}"; } return (std::string) s; } std::ostream & operator << (std::ostream & o, const Chemeq & c){ o << *c.membregauche() << "\\,\\longrightarrow\\," << *c.membredroit(); if (c.valeur() > MINVAL) { o << "\\,("; if (c.constante()!=std::string("")) o << c.constante() << "\\,=\\,"; o << c.valeur_latex(); if (c.redox()) o << " V"; o << ")"; } return o; } std::ostream & operator << (std::ostream & o, fraction f){ o << f.i; if (f.d!=1) o << '/' << f.d; return o; } fraction operator * (fraction f, int m){ fraction result = fraction(f.i*m, f.d); result.simplifie(); return result; } fraction operator * (int m, fraction f){ fraction result = fraction(f.i*m, f.d); result.simplifie(); return result; } fraction operator * (fraction f, fraction m) { fraction result = fraction(f.i*m.i, f.d*m.d); result.simplifie(); return result; } fraction operator + (fraction f, fraction g){ fraction result = fraction(f.i*g.d+g.i*f.d, f.d*g.d); result.simplifie(); return result; } fraction operator - (fraction f, fraction g){ fraction result = fraction(f.i*g.d-g.i*f.d, f.d*g.d); result.simplifie(); return result; } const fraction & minFraction(const fraction& f1, const fraction &f2){ if (f1.i*f2.d > f2.i*f1.d) return f1; else return f2; } void fraction::simplifie(){ int maxprem = 23; int premiers[]={2,3,5,7,11,13,17,19,23,29}; int n; for (n=0; premiers[n]<= maxprem; n++){ while (i % premiers[n] == 0 && d % premiers[n] == 0){ i /= premiers[n]; d /= premiers[n]; } } } bool operator > (fraction f, int i){ return f.i > f.d*i; } bool operator > (fraction f1, fraction f2){ return f1.i*f2.d > f1.d*f2.i; } bool operator != (fraction f, int i){ return f.i != f.d*i; } double mendelweight(int i){ if (i>=0) return strtod (table[i].info[WEIGHT],0); else return 0.0; } int findmendel(const char * symb){ int i=0; while (table[i].info[0] && strcmp(table[i].info[SYMBOL], symb) != 0) i++; if (table[i].info[0]) return i; else return -1; } double mendelweight(const char * symb){ int i; i = findmendel(symb); return mendelweight(i); } chemeq-2.12.orig/src/TODO0000644000175000017500000000000011222350021015266 0ustar georgeskgeorgeskchemeq-2.12.orig/src/chemeq.h.in0000644000175000017500000002077112161550077016657 0ustar georgeskgeorgesk// -*- coding: utf-8 -*- #ifndef CHEMEQ_H #define CHEMEQ_H #include #include #include #include #include #include #define VERSION "2.11" /* Constante d'Avogadro, recommandée par CODATA, 2006 */ #define Avogadro 6.022141e+23 /* Charge élémentaire, voir wikipedia, 2007 */ #define Electron 1.602176e-19 /* Constante de Boltzmann, voir Wikipedia, 2007 */ #define Kb 1.3806e-23 /* D'où la constante de Faraday */ #define Faraday (Avogadro * Electron) /* D'où la constante des Gaz parfaits 8.314 J.K^-1.mol^-1 */ #define R (Kb * Avogadro) /* Température de référence pour les réactions chimiques, 25°C */ #define T0 (273.15+25) /* MINVAL est une valeur impossible tant pour un potentiel standard */ /* que pour une constante d'équilibre */ #define MINVAL -999 typedef struct { int Zed; char symb[4]; } atome; extern atome lesatomes[]; typedef std::pair AtomeCompte; class Compteur : public std::map{ public: std::ostream & operator << (std::ostream & o)const; }; std::ostream & operator << (std::ostream & o, const Compteur & c); class Chemeq; class fraction{ public: int i; int d; fraction(int numerateur, int denominateur=1):i(numerateur),d(denominateur){}; void inverse(){int n=i; i=d; d=n;}; void simplifie(); }; const fraction & minFraction(const fraction&, const fraction &); std::ostream & operator << (std::ostream & o, fraction f); fraction operator * (fraction f, int m); fraction operator * (int m, fraction f); fraction operator * (fraction f, fraction m); fraction operator + (fraction f, fraction g); fraction operator - (fraction f, fraction g); bool operator > (fraction f, int i); bool operator > (fraction f1, fraction f2); bool operator != (fraction f, int i); class AtomeListe{ AtomeListe * suiv, *group; char symb[4]; int Zed, nb, no, sqbr; public: AtomeListe(const char* nom, int num, AtomeListe * s=0, AtomeListe * g=0){ strncpy(symb,nom,3); Zed=num; nb=1; sqbr=0; /* sqbr == 1 quand il y a un square bracket */ suiv = s; group=g; }; AtomeListe(const AtomeListe & a): suiv(a.suiv), group(a.group), Zed(a.Zed), nb(a.nb), sqbr(a.sqbr){ strncpy(symb,a.symb,3); }; const char * symbole() const{return symb;}; int Z()const{return Zed;}; int sq()const{return sqbr;}; void sq(int val){sqbr=val;}; void numerote(int n=0); void setmolecularite(int n){nb=n;}; int getmolecularite()const{return nb;}; AtomeListe * groupe(){return group;}; void groupe(AtomeListe * al){group= al;}; const AtomeListe * suivant()const{return suiv;}; const AtomeListe * groupe()const{return group;}; void setsuivant(AtomeListe * s){suiv=s;}; void compte (Compteur &c, fraction mult=fraction(1,1))const; double weight(fraction mult=fraction(1,1))const; static AtomeListe * triage(AtomeListe * al); void printcount(std::ostream & o, const fraction&, int multiple) const; void printnorm(std::ostream & o) const; bool isEqual(const AtomeListe & a2) const; void debug(int decal = 0)const{ for (int i=0; i< decal; i++) std::cout << " "; std::cout << "AtomeListe : ( & = " << this << " symb=\"" << symb << "\" Zed = " << Zed << " nb = " << nb << " no = " << no << " suiv = " << suiv << " group = " << group << ")\n"; if(group) group->debug(2+decal); if(suiv) suiv->debug(decal); }; }; typedef enum { aqueous, gas, sol } moltype; extern const char* moltypeStr[]; /* les chaînes aq, g,s */ class Membre; class Molec{ AtomeListe * al; int ch; fraction nb; int no; moltype t; public: Molec(AtomeListe * a, int c = 0, int n=1, int d=1): al(a), ch(c), nb(n,d), t(aqueous){}; Molec(const Molec & m): al(m.al), ch(m.ch), nb(m.nb.i,m.nb.d), t(m.t) {} AtomeListe & liste()const{return *al;}; int charge()const{return ch;}; bool eqMol(const Molec * m) const { return (al->isEqual(*(m->al))) && (ch== m->ch); } void nombre(int n, int d=1){nb=fraction(n,d);}; fraction nombre()const{return nb;}; void add(fraction f); void sub(fraction f); moltype typage()const{return t;}; void typage(moltype at){t=at;}; void numero(int n){no=n;}; int numero()const{return no;}; void triage(){al = AtomeListe::triage(al);}; void compte(Compteur & c)const{if (al) al->compte(c,nb);}; double weight(void)const{if (al) return al->weight(nb); else return 0.0;}; const std::string signature()const; void printNombre(std::ostream & o)const; bool printcount(std::ostream & o, bool first) const; bool printelec(std::ostream & o, bool first) const; bool printspecies(std::ostream & o, bool first) const; void printnorm(std::ostream & o)const; void printweigh(std::ostream & o)const; void coeff( fraction f); bool printNernst(std::ostream & o, const char * prefix =""); bool printNernstWIMS(std::ostream & o, bool wantedlatex); bool iswater()const; bool iselectron()const; fraction nbelectron()const; void debug(int decal = 0)const{ for (int i=0; i < decal; i++) std::cout << " "; std::cout << "Molec : ( " << this << " charge = " << ch << " nombre = " << nb << " no = " << no; al->debug(decal+2); std::cout << ")\n"; }; // two Molecs are equal if the AtomLists and the charges are equal. friend Membre operator & (Membre & m1, Membre & m2); friend Membre operator - (Membre & m1, Membre & m2); }; std::ostream & operator << (std::ostream & o, const AtomeListe & l); std::ostream & operator << (std::ostream & o, const Molec & m); class Membre : public std::vector{ public: int findMol(const Molec *); void addMol(const Molec *); void addMembre(const Membre *); void eraseNull(); void compte(Compteur & c)const; void numerote(); void triage(); void printnorm(std::ostream & o) const; void printcount(std::ostream & o) const; void printelec(std::ostream & o) const; void printspecies(std::ostream & o) const; void printweight(std::ostream & o) const; void coeff( fraction f); void printNernst(std::ostream & o); void printNernstWIMS(std::ostream & o, bool wantedlatex); int printableNernst(); bool redox()const; fraction nbelectron()const; void debug(int decal = 0)const{ for (int i=0; i < decal; i++) std::cout << " "; std::cout << "Membre : ( " << this; for (int j=0; j < size(); j++){ std::cout << j << " :\n"; operator[](j)->debug(decal+2); } std::cout << "\n"; } }; // intersection between two Membres Membre operator & (Membre & m1, Membre & m2); // members of first set which are not in the second Membre operator - (Membre & m1, Membre & m2); std::ostream & operator << (std::ostream & o, const Membre & m); class Chemeq{ Membre * gauche, * droit; std::string cste; long double val; public: Chemeq(Membre * g, Membre * d) : gauche (g), droit(d), val(MINVAL){}; const Membre * membredroit()const{return droit;}; const Membre * membregauche()const{return gauche;}; void addChemeq(const Chemeq *); void subChemeq(const Chemeq *); void simplifie(bool tri); void numerote(){gauche->numerote(); droit->numerote();}; void triage(){gauche->triage(); droit->triage();}; /* ajuste le coefficient pour qu'il y ait 1 mol du premier réactif */ void coeff1(); /* mutiplie par la fraction num/den */ void multiply(int num, int den); fraction nbelectron()const{return gauche->nbelectron()-droit->nbelectron();}; /* renvoie val ou nbelectron()*Faraday*val */ long double enthalpy() const; void normalise(){numerote(); triage(); coeff1();}; void printnorm(std::ostream & o); void printcount(std::ostream & o) const; void printelec(std::ostream & o) const; void printspecies(std::ostream & o) const; void printweight(std::ostream & o) const; void printNernst(std::ostream & o, std::ostream & w, bool wantedlatex=false); std::string equilibre(); bool redox()const; const std::string constante()const{ return cste;}; void constante (const std::string s) { cste = s;}; bool valdefined()const; double valeur()const{return val;}; std::string valeur_latex()const; void valeur(double r){val=r;}; }; std::ostream & operator << (std::ostream & o, const Chemeq & c); //struct taken from Kyle Burton's gperiodic /* structure to hold element data, as initialized from the static * mendeleiev.c */ enum info_types { NAME, SYMBOL, NUMBER, WEIGHT, MELTING, BOILING, PAULING, MAX_INFO_NR /* Has to be the last element */ }; struct table_entry { const char *info[MAX_INFO_NR]; }; extern struct table_entry table[]; double mendelweight(int i); int findmendel(const char * symb); double mendelweight(const char * symb); #endif chemeq-2.12.orig/src/mendeleiev.o0000644000175000017500000014723012244451025017127 0ustar georgeskgeorgeskELF>8X@@HHHydrogenH11.0079414.0120.282.20HeliumHe24.0026020.954.2160.0LithiumLi36.941553.691118.150.98BerylliumBe49.01218155132431.57BoronB510.811257339312.04CarbonC612.011382051002.55NitrogenN714.0067463.2977.43.04OxygenO815.999454.890.193.44FluorineF918.99840353.5385.013.98NeonNe1020.17974827.1SodiumNa1122.989768370.961156.10.93MagnesiumMg1224.30592213631.31AluminumAl1326.981539933.527401.61SiliconSi1428.0855168326281.90PhosphorusP1530.973762317.35532.19SulfurS1632.066386717.8242.58ChlorineCl1735.4527172.2238.63.16ArgonAr1839.94883.887.3PotassiumK1939.0983336.810470.82CalciumCa2040.078111217571.00ScandiumSc2144.95591181431041.36TitaniumTi2247.88193335601.54VanadiumV2350.9415216036501.63ChromiumCr2451.9961213029451.66ManganeseMn2554.93805151722351.55IronFe2655.847180830231.83CobaltCo2758.9332176831431.88NickelNi2858.6934172630051.91CopperCu2963.5461356.62840ZincZn3065.39692.7311801.65GalliumGa3169.723302.9326761.81GermaniumGe3272.611210.631032.01ArsenicAs3374.9215910908762.18SeleniumSe3478.96490958.1BromineBr3579.904265.9331.92.96KryptonKr36116.6120.85RubidiumRb3785.4678312.2961StrontiumSr3887.6210421657YttriumY3988.90585179536111.22ZirconiumZr4091.224212546501.33NiobiumNb4192.90638274150151.6MolybdenumMo4295.94289048852.16TechnetiumTc4397.9072244551501.9RutheniumRu44101.07258341732.2RhodiumRh45102.9055223940002.28PalladiumPd46106.4218253413SilverAg47107.86821235.124851.93CadmiumCd112.411594.110381.69IndiumIn49114.818429.3223531.78TinSn50118.71505.125431.96AntimonySb51121.760903.919082.05TelluriumTe52127.6722.712632.1IodineI53126.90447386.7457.52.66XenonXe54131.29161.3166.1CesiumCs55132.90543301.6951.60.79BariumBa56137.327100219100.89LanthanumLa57138.9055119437301.10CeriumCe58140.115107236991.12PraseodymiumPr59140.90765120437851.13NeodymiumNd60144.24129433411.14PromethiumPm61144.912714413000SamariumSm62150.36135020641.17EuropiumEu63151.96510951870GadoliniumGd64157.25158635391.20TerbiumTb65158.9253416293296DysprosiumDy66162.5016852835HolmiumHo67164.93032174729681.23ErbiumEr68167.26180231361.24ThuliumTm69168.93421181822201.25YtterbiumYb70173.0410971466LutetiumLu71174.967193636681.27HafniumHf72178.49250354701.3TantalumTa73180.9479326956981.5TungstenW74183.84368059302.36RheniumRe75186.20734535900OsmiumOs76190.2333275300IridiumIr77192.2226834403PlatinumPt78195.0820454100GoldAu79196.966541337.5830802.54MercuryHg80200.59234.28629.732.00ThalliumTl81204.3833576.617301.62LeadPb82207.2600.6520131.8BismuthBi83208.98037544.518832.02PoloniumPo84208.982452712352.0AstatineAt85209.9871575610RadonRn86222.0176202211.4FranciumFr87223.01973009500.7RadiumRa88226.025497314130.9ActiniumAc89227.0278132034701.1ThoriumTh90232.038120285060ProtactiniumPa91231.0358821134300UraniumU92238.02891405.540181.38NeptuniumNp93237.0489134175PlutoniumPu94244.064291435051.28AmericiumAm95243.061412672880CuriumCm96247.07031620n/aBerkeliumBk97CaliforniumCf98251.07961170EinsteiniumEs99252.0831130FermiumFm100257.09511800MendeleviumMd101258.11100NobeliumNo102259.1009LawrenciumLr103262.11RutherfordiumRf104[261]DubniumDb105[262]SeaborgiumSg106[266]BohriumBh107[264]HassiumHs108[269]MeitneriumMt109[268]UnunniliumUun110UnununiumUuu111[272]UnunbiumUub112[277]UnuntriumUut113UnunquadiumUuq114[289]UnunpentiumUup115UnunhexiumUuh116UnunseptiumUus117UnunoctiumUuo118Q'8Rint_dstd!K!RKUe[\]^_` @    3 ` {       < a       6 \ |      1 K e   Yo:\|ã8Xxˏ̦       0 1dR  S Yveq_ Y Ylt_ Y YR f f 11" ffF f 1 Y lj l f 1l l f 1l l 1 vv r Y _  r reof$( r85x67 3   g$  Q x   _  R \ dec  hex    oct @   " & ) , /  3@ 6 9J < J$ N Q V Y iapp lQ6ate oQin wQout zQ Qcur end  R S T  \( eB h\ iq d j !="J UDD D R -J#$ Re Y Y% {{ Rd% X{ { Y$ - { Y - Y Y R 0Y Y Y Y Y R KY5 Y Y& @5  ' ' ' ' ()a *S +V ,X ,\ 'TR'] -d .?^ j %  R% - - : %S S S R - Y % { Y - % R -  Y %KR - R%RR - /%{R - /% - 0 %-6 Y - 6  %m-a S Y - 6 %iRw w }  %- S - 6 Y% Y - % Y %\R S - /%R /% 6 - %dRV - V E %R| - V %qR S - V %R V %lR V %R V %r- { Y 6 $S 1 S $RK $Re $S  S $- %W- S -   1tm8Y'R'R'R'R 'R'R'R'R'R '('Y0%-o $S  S -$R -$S  S -%- {  - 6  %- %-- 4S %UU 4%S | S 4% 4 R%8 4 R$- S -%R %ER -%IS 8 S -%NS X S -%RS x S Y -%YR /%R /  Y     Y   < D Y -2  ,1-Q 73:M3;M3?3@M R 73:3;3?3@M 8 7:3:_3;_3?3@M d 7|3:3;3?3@M 9473:3;3?3@M % 4% 4 R%$$ 4 R27S58c6v6v6 `6':{';{'A{'G{'H{ 'I{('J{0'K{8'L{@'M{H'NdP'OdQ'QdR'SdS'UdT'WdU'^dV'_dW'bdX'ddY'fdZ'hd['od\'pd]$}{ R Y7x(R8  R_848#$RB $݋ \ $q Y$ Y99:8 ;-Y.?<=R=R>'?@ABtCU D;CT EQ-.?vF  G H IxJK@KIF~LQIMNR  % : ; I$ > &I$ >  I9: ; : ;  : ; 9: ;  : ;  .?: ; n< I.?: ; nI<.?: ; nI<.?: ;nI<.?: ;nI<.?: ;nI< : ; ( < : ;2  : ;I?<.?: ;2 <dI4.?: ;2 <d: ; I2  : ;I?2 <  : ;I?2 <  : ;I?2 <: ;I2 /I!4: ; nI?<"4: ; I<#&$.?: ; I<%.?: ;I<&<' : ; I8 ( ): ;I* : ; n+ : ; , : ; I-I.!I/ /0.?: ;I<1 : ; 29: ; 3 : ; I?<4 : ; 5:: ; 6 I7.?: ; I<89 : ;: : ;; : ;I8 <.4 =: ; I>.4@B?1X Y @1A1 BCBD1EF4: ; I?G4I?4<H4GI4Gn J4GnK4Gn L4GnM4GnN.?I4<,'Y2 /usr/include/c++/4.8/usr/lib/gcc/x86_64-linux-gnu/4.8/include/usr/include/c++/4.8/bits/usr/include/x86_64-linux-gnu/c++/4.8/bits/usr/include/usr/include/c++/4.8/ext/usr/include/c++/4.8/debug/usr/include/x86_64-linux-gnu/bitsmendeleiev.ciostreamcstringcwcharstddef.hchar_traits.hc++config.hclocaleios_base.hcwctypeiosfwdstring.hstdio.hwchar.htime.hnew_allocator.hnumeric_traits.hdebug.hlocale.htypes.hatomic_word.hwctype.hchemeq.h Jlong int__debugint_p_cs_precedeswcsxfrmgoodbitstrrchrgp_offsetassigntm_yday_S_failbit_S_ate_S_uppercasevfwscanftowctransunsigned int__gnu_cxx_S_fixed_S_ios_openmode_end_S_floatfieldfailbit__int32_twchar_t_S_refcountstrerrorvwscanftm_mday_ZNSt11char_traitsIcE2ltERKcS2_strpbrkfrac_digitsmon_decimal_point_S_ios_iostate_endeq_int_type_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minEwcscpy_S_ios_seekdir_end_ZNSt11char_traitsIcE7not_eofERKiwcscatdecimal_point__numeric_traits_integer_S_binn_sep_by_spaceGNU C++ 4.8.2 -mtune=generic -march=x86-64 -g -O1copyvwprintfwmemcpy__gnu_debugfwscanfp_sep_by_spacestrstr__dso_handle__count__numeric_traits_integerfloattm_montablepositive_signWEIGHTgetwclong long unsigned int_S_end_S_dec_S_hexint_n_sign_posn_S_scientificunitbuflocaleconv__FILE_S_boolalphaadjustfieldto_int_typewcrtomb_ZSt4coutiostatevswscanfvfwprintffixed__cxa_atexitp_sign_posn__initialize_puppercasesize_tmovefloatfieldstrxfrmshowposputwc__mbstate_t_Ios_Seekdir__priorityNUMBERint_frac_digitsMELTINGwcsstrfwideint_n_cs_precedes_S_right_S_showpointmendeleiev.cfindbasic_ostream >negative_signtm_hour__valuestrcollmemchrgroupingwscanf_S_showbase_S_inchar_S_begswscanfptrdiff_tint_typetm_yearwctype_S_adjustfield__max__wch__numeric_traits_integermbsrtowcsNAMEwcstoulwctrans_t_ZN9__gnu_cxx24__numeric_traits_integerIlE5__maxErightwcstofwcsspn_ZN9__gnu_cxx24__numeric_traits_integerIsE5__maxEwcsrtombslong long intcoutscientific_S_oct_S_badbitmon_groupingwcstoull_ZNSt11char_traitsIcE6assignERcRKcboolboolalphap_cs_precedeschar_typefgetws_S_basefieldbadbitcomparelong double_S_goodbitshowpointinfoungetwclong unsigned int__is_signedfmtflagsSYMBOL_Value_S_eofbitwctype_twcscmptm_zone_ZN9__gnu_cxx24__numeric_traits_integerIiE5__maxEwcschrfputwcopenmodewcscoll_S_synced_with_stdioeofbitfputws_ZNSt11char_traitsIcE4moveEPcPKcm__static_initialization_and_destruction_0ios_baseBOILINGbtowcunsigned charmbrtowcstrchriswctypembsinitwmemchrMAX_INFO_NRshort int_ZNSt11char_traitsIcE3eofEv_CharT~Initint_curr_symbol__digits_S_outmbrlenlengthinfo_typesn_sign_posn11__mbstate_tchar_traits_Ios_Iostate_S_skipws_Ios_Openmodewcsrchrtypedef __va_list_tag __va_list_tagto_char_typegetwchar_S_internal__wchbint_n_sep_by_space__numeric_traits_integer_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minEwcsncmpleftfp_offsetwcsftime_ZNSt11char_traitsIcE6lengthEPKcint_p_sep_by_spaceskipws_ZNSt11char_traitsIcE11eq_int_typeERKiS2__S_left_ZNSt11char_traitsIcE6assignEPcmc_ZNSt11char_traitsIcE12to_char_typeERKiwmemmove_Ios_Fmtflagswprintfsizetypelconv_S_trunc_IO_FILE_Atomic_wordwint_treg_save_area_S_appnot_eofwcstodwcspbrktm_minmbstate_twcstokwcstolwmemset_S_ios_fmtflags_endsetlocale_ZNSt11char_traitsIcE4findEPKcmRS1_internal/home/georgesk/developpement/chemeq/chemeq-2.12/srcPAULINGthousands_sep_GLOBAL__sub_I_table_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsEstrtokfwprintfoverflow_arg_areaInitwcstoldwctobcurrency_symbolwcstoll__minswprintf_ZN9__gnu_cxx24__numeric_traits_integerIcE5__maxE_ZNSt11char_traitsIcE11to_int_typeERKcputwchartable_entrysigned charmon_thousands_sepbasefieldshort unsigned inttm_sec_S_unitbufwcscspn_S_curn_cs_precedestm_isdstseekdirwcsncpyfgetwc_Traits_ZNSt11char_traitsIcE4copyEPcPKcmdoublewcsncattm_gmtoffshowbaseostream__numeric_traits_integerwctransvswprintftm_wday_ZNSt11char_traitsIcE7compareEPKcS2_mint_p_sign_posn_S_showpos_ZNSt11char_traitsIcE2eqERKcS2_wcslen__ioinit_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minEwmemcmpGCC: (Debian 4.8.2-1) 4.8.2zRx 'Db.symtab.strtab.shstrtab.rela.text.rela.data.bss.rela.init_array.rodata.str1.1.rela.debug_info.debug_abbrev.rela.debug_aranges.rela.debug_line.debug_str.comment.note.GNU-stack.rela.eh_frame @'`+ &`apM1;6ЮG2[#*UVP gxA%zE0u80 E]h0*H0W7W8W0hW8^ H`'#   2JWo|mendeleiev.c_GLOBAL__sub_I_table_ZStL8__ioinit_ZNSt8ios_base4InitC1Ev__dso_handle_ZNSt8ios_base4InitD1Ev__cxa_atexittable        (0!8&@-H0P2X;`@hFpJxRUW]dlq{~ (08@HPX`hpx !*,.8>DINQT\ _(F0d8k@nHqP{X`hpx  (08!@%H*P1X3`6h=pAxINWZ]ekqv|F (08@HPX`hpx$)247?DINWZ ](e0j8o@tH~PX`hpx ( 08@H PX%`*h-p0x6=BGORU\chmwz} (08@HPX`hpx  F"%(06: D(G0J8P@UH;PZXb`dhgppxuz     ( 0 8 @ H P  X ` h p !x $ ' . 3 8 < D G J S X ] b l o r y ~ !   ( 0 8 @ H P X \` h p x                     # + 1 6( ;0 E8 H@ KH QP WX \` `h gp ix l v |        F           ( 0 8 @ H P X `  h p x  ! $ ' / 4 9 > K N Q [ ` e j t w z    ( 0 8 @ H P FX ` h p x          F        ! ) , / 9 (> 0F8C @N HQ PT X[ `` hzpe xm p s }                   ( 0 8 @ HFP X ` h p x   % ( + 2 7 < @ I L O X ] b f o q t {  ( 0 8 @ H P X `h p x    8      !      ]   ( 0 8$ @) H. P6 X9 `< hC pJ xQ V _ b e n t y ~              ( 0 8 @ H P X ` h p x   8    ! % F+ 4 7 : C G K O V Y \ (e 0i 8n @r H{ P~ X ` h p x      <       b         ( 0 8 @ H# PX( `2 h5 p8 xA E J O Y \ _ h m < r y |    <      ( 0< 8 @ H P X ` h< p x     <       <     <  $('0+8@ H< P4X?`BhFp x  M[^b   hpsw   }  ( 08@HP X ` hpx          (0 8 @ HP X`h p x #'    +7;?   EQU    (Y0d8h@ H P X `lhxp|x         )  ) . ; B I I g d k w  < E z    E    # * G N k [r  E  n   z  ` U   : " 2 R 2] i ao u { "    S z 9   { *  c  f T   x  4  3  _      %  1 7 Z= JC TI MR $^ #d v j p y , y    y   3  ! /  K Y Hh w   N  G  n ?       ) +7       C   " ( L f  W   Y Y ' ' 3 3  6  ; ZF J R ;^  j g v %   i    X  = 4 \ a |  b ^ }  {  = Qb i   * 7 ] s} 3  `  2 ]L f  n  \ Q    E =) L5 A M dZ p    +  B 0 ; X ] b } i    #   i9 Y p y     I  I  B  B  [  [! q( qE u   c '  C   c '  C   c '& 1 C; G R c] 'h s C} o  c '  C ~    5 q' . C5 ! < A qb y       ; -  d   C  / ! - } 9 E Q ] i ; u h  k )  O    T ) `C |] +r M   < <  S 5  y      1 :Zku"   l l "     / <  ? chemeq-2.12.orig/src/chemeq.o0000644000175000017500000261225012244451023016253 0ustar georgeskgeorgeskELF>@@96AUATUSHIH_LgcK(L$ Hs HVLHźHD$ ZHHHL9tLL9uLH[]A\A]HHHHHUSHHtssHHt H;HtuH[]ÐUSHHt4H?Ht HEH]HtE{t?HsH}+HHt"HEHHEHHHHH[]ATUSHH tH{tSHHuHEHHxw  HHHHQHstNHDHH{HtHDcHDHH;HtH{ tH[]A\ATUSHH~ tEPviLeHMuHHHxw #LHHHQLHHNu H5HHuHtHHDeA~/HDHHHuHtH} tHH[]A\ÐATUSH_uw HHRDg HDHHźHHH[]A\ÐUSHHHHGH)HHt@H‰ZHUH¾H8HcHUHMH)HH9rH[]Ðo USHHHH t!D$/Ht$HHHH[]AVAUATUSHHHIA̓HHuHEHHxw #HHHHHRHEDsD$ :Ht$ HI4$HD$*Ht$HDHHHtKH;t(D$ Ht$HDLHH;H[]A\A]A^ËVG9HHNÐD$D$D$D$D$ D$ D$D$D$D$LL$>DAt7DGDtՉ7DGIAI7uDGDtÐG G H wwH ÐATUSHHHWH)HHt3IHtH$HxHt$?HHT$/H|$ 6HŸHH[]USH(HHT$HHH|$H\$HSH4$H;VuH@H{Ht2HCHt  CPS Ht$H$HxHtQHPHt  PJHЅ)Ht$HH$HxHt$HH([]USHHHG 9GtHw HHHH;{tcH*C fTf.ztH{~HHHujHu^HcCHHHuHEHHxw #H߸HHHQHHH[]ÐUSHHHuHHHD$|Ht$HHU HH}H[]ÐATUSHHHGH)HHtHH|$(H\$ HCLl HHHD$xH|$xHAl$ <$H|$ HD$HD$PHHT$@H9H$HHt$HH$H$H|$H$HxH%HPHt  PJHЅH$H$Ht$HH$H$H|$H$HxHHPHt  PJHЅzH$kHt$pH|$ZHH$HxH$!HH$HxH$HHD$HxH$eH|$HHHD$H@HH)ڹHEH9v HH|$ HH|$Ht$H$H$H$H|$!HH$HxH$'H$HxHt5HPHt  PJHЅ H$Ht$HHD$HxHt5HPHt  PJHЅ H$HD$ HD$xHD$(HD$pHxHHPHt  PJHЅ]H$NHH$HxH$HHD$HxH$HH|$ HHD$(H|$`HHD$ H@HHT HD$xH|$xHH[]A\A]ÐAWAVAUATUSHHIIHӉI}tPLI}LLLI}L I}LDI}DHHDHI}Am LHT$H|$I}HWLd$AI;T$uLAI|$Ht7ID$Ht  AD$PAT$ Ht$;Eu"IuHVLHLH|$ Ht$ HVLHD$ HxHt2HPHt  PJHЅ Ht$<@LH|$0HHt$0HVHHD$0HxHHPHt  PJHЅHt$=Eu(Mm HL,$Dt$HLHpL@tHHAm v.<$LAm <$HH?غL@tHHLI}II}LHHLHLI}II}LHHHHI}t MeMmMeMmLtNLLLLLLL/LLLL@HLHHLHHHD$0HxHt$?HHH[]A\A]A^A_AVAUATUSHPHHLnH6IĺHLLm \$D$f.PHHT$H|$LmLH|$ Ld$ IT$Ht$AH;VuLAI|$Ht7ID$Ht  AD$PAT$ Ht$IHD$HxHt2HPHt  PJHЅ Ht$JEutLH|$0Ht$0HVHHHD$0HxHt2HPHt  PJHЅ Ht$KHH|$@Ht$@HVHHD$@HxHt2HPHt  PJHЅ Ht$LHtHHZHHD$HxHt$MHHHD$0HxHt$NHHHD$@HxHt$OHHHP[]A\A]A^AWAVAUATUSHXIIH|$hHD$hHDŽ$@Ƅ$HƄ$IHDŽ$PHDŽ$XHDŽ$`HDŽ$hHH$L-HCL,HD$H$H@H<L%Ld$ID$H HLHD$H@H|H-H,$HEH H H$HD$hHD$HD$HD$ HD$(HD$0HD$8HD$@HD$HH|$PHD$D$XHD$`Ht$H|$hTH$HSL,HD$HHH|$HHHD$hH|$hHH$HDŽ$HDŽ$Ƅ$Ƅ$HDŽ$HDŽ$HDŽ$HDŽ$H$pHCLpHDŽ$xH$pH$pHxL$ID$H HH$H@HH$pHEH HpHDŽ$pHDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$HDŽ$H$HDŽ$DŽ$HDŽ$H$pHpHxhjH$pHSLpHDŽ$xH'HH$H$pHHDŽ$H$Ht$LH$LHDŽ$H$H#H$H9H$HH$H$ H$ H$H$ HxH8HPHt  PJHЅ H$H$H$H$H$H$H$HxHHPHt  PJHЅH$ tH$H$]HH$ HxH$ !HH$HxH$ HH$HxH$  HDŽ$HD$@HHT$0H9H$?HHt$8H$@H$@H$H$@HxHNHPHt  PJHЅ"H$.H$/Ht$8H$0H$0H$H$0HxHHPHt  PJHЅH$-Ht$`H$vHH$@HxH$,!HH$0HxH$+HH$HxH$*H$HxH$ LH$HSH$AH;VuHAH{Ht5HCHt  CPS H$H$HxHt5HPHt  PJHЅ H$HDŽ$pHDŽ$HDŽ$HDŽ$H$HxHt5HPHt  PJHЅ H$NHDŽ$H$L%L$pL=ID$LpH-H$L5HELHH$pHCHHpHDŽ$xHDŽ$H$pHxhH$HD$hHD$HD$HD$`HxHt\HPHt  PJHЅ4H$O%HH$pHHHHD$H|$PL$$ID$L<Hl$HELtH$HCH H HD$HD$hH|$hDHX[]A\A]A^A_AWAVAUATUSH(IHt$IHHGHGL.L9nII;^sJH+MeHuI<$t(EA9D$uRHtHIG HT$LHI;^rIHD$L;hrHI?HtHIm HUHUPUM H PUPHD$H;IUJ Rw DOEDA9AOOΉH PIwI;w>HLH([]A\A]A^A_AVAUATUSHHHGH)HAHtHIL4I4$I>t AFA;D$DDHcHUHEH)HH9rD[]A\A]A^USHHHyU HHSPSK H PSPHD$HuH;utHtHHE+HT$HsH S H HHUH<H[]ÐATUSHHHVH)HHt3IH4LHcHEHMH)HH9r[]A\AWAVAUATUSH(IHt$IHHGHGL.L;nI] HHSPSK H PSPHD$II;^s,H+MeHuI<$t EA9D$tbHI;^rIwI;wtHtHD$HIG HT$LIHD$L;h\CHI?HtHHHp IEHx HH HT$B JsLH([]A\A]A^A_AVAUATUSH HHWH7HHD$H+$HHt{IHH3HIHsHHL#MtI<$HtLLcMtI<$HtLL3LkH;H{@t"H;H{H;H{H<$Ht:3HLHLHH<$HtHH []A\A]A^ÐAUATUSH8HHo n ,$55\$(D$($${ &,$H D$$D$$ɉT$$D$$5{ HuH;HuH{H{ <$H|$H{IH;LHIH}IH}LH,$l$<$HL…+H8[]A\A]ÐAUATUSH8HHo n ,$55\$(D$($${ &,$H D$$D$$ɉT$$D$$5{ HuH;H{HuH{ <$H|$H{IH;LHIH}IH}LH,$l$<$HL…+H8[]A\A]ÐAUATUSHHH?HHD` DhLH DH HH{HHHu-k vDl$ D$ k Dd$ D$ { H[]A\A]AUATUSHHAAH?LH H HH{HHHu-k vDl$ D$ k Dd$ D$ { H[]A\A]ÐAWAVAUATUSHHIHHt$HT$GPHwHT$+H|$ HKHL$H[H0Lt$ MfIH{ HoI9HIFL…uL)HH|x IH[H[HuL9l$Iu H^I9HIFL…uI)II| DHt$ H|$0D$8HT$0LH\$HHtHL$0HHIHD$0HxHt2HPHt  PJHЅ Ht$/AM(ZA*WHD$*YH *^XffZA](HD$ HxHtxHHD$0HxHt$.zHPHt  PJHЅ6Ht$,*u&HtwH|$IHHt$I?Ht>HT$Ht$-HHD$ HxHt$-HLl$Ll$nHH[]A\A]A^A_ÐATUSHHHWH)HHt?IHH:Ht HR LHcHEHMH)HH9r[]A\AUATUSHHIH$HDŽ$HDŽ$Ƅ$Ƅ$HDŽ$HDŽ$HDŽ$HDŽ$H-Hl$`L-HELl`HD$`H|$`HxHD$`HDŽ$HD$hHD$pHD$xHDŽ$HDŽ$HDŽ$HDŽ$H$HD$hDŽ$HDŽ$HD$`HpHxXAHH|$hHl$`HELl`HHDŽ$H$HD$HD$HD$(HD$HD$HD$ D$8HD$@HD$XHD$8HD$HHD$PHI<$I|$Ht$0HD$XH9D$(u;Ld$HHl$HD$H9IH} HWIt$ H;Vu H|$`HH|$`HźHHt$0HHH$HH$H9H$HH$H$H$HH$HxH%HPHt  PJHЅH$H$H$H$H$HH$HxHHPHt  PJHЅyH$jH$HXHH$HxH$!HH$HxH$HH;HH$Ht$@H|$0Ht$HHD$`HDŽ$HD$hH$HxHHPHt  PJHЅH$HHt$@H|$0Ht$HH|$`HE(A.D$(SMHHLIL9H|$`XHD$hH$HHD$`H@HHT`HDŽ$H$HH[]A\A]HHeHHeLiBeBCNO F Ne Na Mg AlSiPSClArKCaScTiVCrMnFeCoNiCuZnGa Ge!As"Se#Br$Kr%Rb&Sr'Y(Zr)Nb*Mo+Tc,Ru-Rh.Pd/Ag0Cd1In2Sn3Sb4Te5I6Xe7Cs8Ba9La:Ce;Pr<Nd=Pm>Sm?Eu@GdATbBDyCHoDErETmFYbGLuHHfITaJWKReLOsMIrNPtOAuPHgQTlRPbSBiTPoUAtVRnWFrXRaYAcZTh[Pa\U]Np^Pu_Am`CmaBkbCfcEsdFmeMdfNogLrhRfiDbjSgkBhlHsmMtnUunoUuupUubqUutrUuqsUuptUuhuUusvUuofinSHHHHGHHxHt2HPHt  PJHЅ Ht$HH{8H[SHHHHGHHxHt2HPHt  PJHЅ Ht$HH{8HH[ : [()]\mathrm{}\mathrm{e}_{\,\frac{}{}\,vector::_M_insert_aux^{+}-}\mathrm{H}_{2}\mathrm{O}\mathrm{O}\mathrm{H}_{2}\mathrm{e}^{-}^+-_, ; + P_{1P_\,+\, -> ( = Vbasic_string::erase\times 10^{\,=\,\,=\,K; KE\,=\,E=;E_{0}E_{0};E0;\,+\,\frac{R\,T}{\,F}\log\,\longrightarrow\,\,(ERROR / OKaqgsAWAVAUATUSHHHIHGH;GtDHtHPHH{HGHCI$HWH)HHtHH)HH]"HH)HHH H9IL9LFIHH)HHD$AMtJ<IHD$IDHtI$HH3MI)IMtJLOdHCL)IIMtJHLK,H;HtL+HkKDHC>IHH)HHD$AMIHH)HHD$I,H[]A\A]A^A_.;E%,F|#E%  : R t   G  &fv        bU1 F#7HRd5!;<F    ATUSHIHHteHsLHkHC HxHt2HHHt  Hqpȅ Ht$HHtHH[]A\basic_string::_S_construct null not validAVAUATUSIHH9tCHuSHuDnAELHHItAEMuBD5I,$QH)IHʾLIHhItH)IHʾLIHhy[]A\A]A^AWAVAUATUSHHIIAHu]HGH9tNH9LHr H^L9LHFAƅu#I)AIIAEMAA0HHH t;LAD$C(%HHHHHMALHHE(HH[]A\A]A^A_AWAVAUATUSHIIHoHu HHohL.MeHu H^L9LHFL…uLH)HH|y H] H]HtHItHHI;ot^HIHH} LI6LnM9LIF…uM)II|DyHLHH[]A\A]A^A_AWAVAUATUSHIHH$HGH9uiH(tQHG Hx HoH2H^H9HHF…uH)HH|yIW H4$LH$L Il$Lv MnI9HIFHD$HLL…uHL)HH|IWHH9/HIHx LwI9HIFL…uI)I-I|DyHI}HDIDHH4$LHT$LL…uI)II|Dy|IW H9tvHIHp LvI9HIFL…uL)H)H|yLH{HDIEHH4$LHغH[]A\A]A^A_y?T@T]8?ڠ @fffffr@B\intinstd.VKVRVUV[V\W]2W^PW_oW`W@mXXxXXXXXY3YOYkYYYYYY$Z?ZUZvZZZZZ[8[S[n[[[[[[\\\]$]C]n]]]]]^3^R^h^Lj^Ȩ^^^^_4_S_q_А_ r  r  r S d f  Y_cg40  n \ 's-seq 3s5-s-slt 3sR-s-s \u:s:s :s :s:s-s @s@s:s @s@s:s @s@s 9Fs X-s 3swFsFseof $ (FsB5Ls6yt7t ^\U__`ctdtq"ts2=ttyIt\p VtVt t\y!!fxz{|acw"""t+F#2#7i#B$u$u%3s/u%3s/u&  u&% u&8C u%VZ` u%Vw utt! ut& ut' ut(V u)oV ut($VCIu((ValuV(, uu(2u(6u':u(A uc'I 1 uc(QI Y u(Y3sq | uc*b Vc*k Vc*t Vn* V* V""*< VVV*\ Vcc\{ ' u' u+u, u- ut  uu+ @ uuP j uutz uct uct unt, u\."u  uu.*u- 8 uc.5uQ \ un.]u { u.h" u/endp u/end{" u.: u..  u.:/ 5 u..N T u.m s u. u. u0 un0 u.u0*5u0#JPu.+3siou.: u.Ku/at` u/atsu.u!uu.u:Euc.u^iun.Duuu.Uuuu.)uuc.uuc.u!1un0FQun1uituu.Luuu.uuc.huuc.xuun0-Bun.u[kuu.uuu.guuc.uuc.'u#un.9<Lun.Rueuu.bu.u.uuu.u (uu.uA[uc.utuc.uun.uuu.uuc.*u6Kuc.?ud~un.duuVV.nuucc.yuu.u0Ju""(ub|un(uucVntVnt.#uV08Cuu.c\bu.c{u.u.uc.6uu.E uc.9Iun.cbruu. uc.uc.un. uu./4Iuc.bruc.un.uu.>uc. uc.4Dun.]muu.Suc.>uc._un.^uu.j/Duc.}]muc.un.Zu.\uu.\uu.\*Iuu.\bmuc.\uc.\ucwV 2VVVtmV72VVVt{Vh2VVVt2VuVVt2n2233Z>Z4 3[              4 g      4     4    5 6 G7 t7 3s, (.Eu8 ;Eu\9 J9 i[ : {a;dec {: {;hex {: {: { ;oct {@: {< {< "{< &{< ){< ,{< /{ < 3{@: 6{: 9{J< <{: NG: Q: V: Y;app lT;ate o;in w;out z9 ;cur  ;end   RVu SKu TX \lu eu hu iu5!=]O m } \s1P 0GO 1P ]1P ),!!\s2n21!?uF!Q!2001!iui!t!\>!?u!2))5!=g!!!m\s,^!!m\s2n25"=!"("\,9"?".X"^"n."".""2n2"l"?"p2sss#WN#@#[s #2s2ssssA#[s2'o2s'o'os4Yg#  [$"`N#]u"a#"b#"c#^uf###m###t#$#B{##g#`$"eu"fuClR$X$uCpg$w$uuuD_T1uD_T2u`0%"e"f]bCl$$'vCp$$'vu>E$%'v\E%%'v9vD_T1D_T2]$\% gqX%^%Qvsn%y%QvWvy%%Qv\Fh%i%2&w%2&Qvv5%\8&hq%&vs& &vvy,&v\$r`&2Z2Z23s$&8&%$3s&&]vuuD_TpZ`&0&g#"$ 2$&%G0M3H0'%`&g#'(2'8'vH'X'vvv0m's'vE''v\2`&I3s9_'JP%K&9Su9Tu9WZ9X$'9\v9]cv9^iv9a5%98399 59;69<6.dv((v.hv((v.l+(((v.q(((v0u()v(.z(!),)vv0A)L)v(.(e)p)v(.v))v.'))v.v))v.'))v.v* *v.'$***v.(C*I*v.(b*h*v.(**v.(**vL(*(L u*(L(*'L(+'L(-+'L(H+'L (c+'L$u~+'L('+'L,'+'L0'+'L4'+'("$, ,vv'(B$*,5,vv($M,],vE(v($u,,vE(v(8(,,v''9v( 8(,,v'9v(&8(,,v9v(;(-%-v(('_9-D-v((p8(\-q-v((u(E(--v((u(8(--v((u(E(--v((u, ..v, .0.vvv+(,F.Q.vv,b.m.v\.v..vv.`&..v.8(..v.E(..v/end8(/ /v/endE(&/,/v.R(E/K/v._(d/j/v.R(//v._(//v.3s//v.'//v.'/0v00%0vv.X6>0I0v9v.q8(b0m0v9v.8(00vE(9v. 8(00vE(9v'00vE('01vE(E(091"1v8(0=71B1vE(.'[1f1vu0O{11v8(8(0S11vE(E(011vuu0Z11v.8( 22vu. E(-282vu.'Q2\2vu.n8(u22vv.rE(22vv.v8(22vv.zE(22vv.633vu.6)343vu.%3sM3S3v2Z2$2?H2`&25% 5#"33v'v3cvC33&M33&3%344,%33494,%2P4V4&%3m4x4&\%244&%344&\%3s44,83%3s45,8D_Tp$6#159v-v3 5ivCt5z5M55Z5C55D5%D555(.555(956 6( $6*6(O5B6M6\(e6k6("O566\(*3s66 O5(.3s66 D_Tp$33&NNN0`<&" 7cZd]e$f`&g5%38(E('R(_(Omap77vPmap77vvvT7Omap77vv.v88vv.6T748:8v.@e7S8Y8v.Iq7r8x8v/endRe788v/end[q788v.d788v.m788v.v7 99v.7,929v.3sK9Q9v.}7j9p9v.}799v.v99vw$7/atv99vw/at w99vw07.R6:':vw<7.e7E:U:ve7w0j:u:ve7.}7::vw0::ve7e70 ::vv0::v.H7;;v.%`71;7;v.5e7P;[;vw.Dq7t;;vw.P}7;;vw._e7;;vw.nq7;;vw.xe7<<vw.q7(<3<vw.6L<W<vw.6p<{<vwQ<<v\2ZD_Tp]2`&25%7%O \=8j_asbycdq-=3=sC=N=y^=i=\Rhi<2V< H? O1><" R1>" S1>" T1>C V==C Z==& e>> %>\ MkA> Kl" = n<% qz>>% u>>% yX>>>C |>>C >>X>C >?C ?'?C 6?A?\% 1>X?c?& v??1>S ?? A? c? L> Ҁ> ҝ>D_TpV2<= ҅F= V 1> k k k m 'o F F  < @@T @@k@T '@@_@?, 6@@, AA\1 )A4A0 IAYA_@. /@rAxA. #;@AA/end ,/@AA/end 5;@AA. >S@AA. GG@ BB. PS@,B2B. YG@KBQB. _@jBpB. _@BB0 BB_@?. _@BB. 3sBBS ACC_@. @*C5C_@. #@NCYC_@0 nCyC_@/at *@CC_@/at <#@CC_@. G@CC. O#@CC. W@DD. _#@5D;D. n?TDZD. v @sDyD0 DD0 DD1 k/@DD/@0 DE/@_@1 /@E)E/@1 /@AEQE/@/@0 TfEqE0 eEE0 EE_@S EE0 EE/@_@0 >F$F/@. 8_@=FMF_@c0 FbFmF?_@D_TpV2<33?&v&w&{N&k&&&&և&&&"&=&]&}&&&&ֈ&&&*&J&&q&e&&ԉ&&& 53Gs2sGVt2V Hy2y$e?H2$2 $H H($jHuH3v($HH9v2$?HHsHHs2sI3s/I 5HI 52 5I3s yIU3snI2 52 5 5 5 5I3s /IV3sD_TpVyysI'oII'o2'oI3s'Jct2ckJBo3JWJ'o2'oI3s lJVpsD_TpVyys5iKW JJJ>\1 GJJHS JK>G, KK>2n2S')BKMK>GX'~]K>J@ KUuK2un@(/-vKD_Tp0%9vU uL2n22uu@,#LD_TpB,,U 3sYL2n22uu5L-brL}LTYYLLL\Zstr~LLLNZ2n22@ w[L[[["zM2sss["GM2sD_TpVss@,jMD_TpB,,UHM2ssU>sMI3s2s2ssssU HM2ssUPs NI3s2s2ssss@(/'v>ND_Tp$3v@3sjND_T1D_T2]9v9vUHN2 5 5U13sN2 52 5 5 5 5U3sN2 52 5 5 5 5@ɳG O2Vr@ZG3O2VVV@3sVOD_Tpntt@rGyO2VVV!5P/strGOOO/9ZTOOV\sTW4~OOOV\s2n22~O5P/strHPBPHPn9ZTfP{PR\sTW PPPR\s2n22 PU 3sP2n22uuU. 3s.Q2n22uuU3smQ2ZD_Tp]2`&25%vvU{sQI3sD_IIsD_OIssssUsQI3sD_IIsD_OIssssUsRD_IIsD_OIssss@#ksHR2s2ssssU#sR2s2sD_TpVsssUksR2s2ssssU#sR2s2s2<sssU3JS2'o'oU{sUSI3sD_IIyD_OIsyysU ItS2'o'oUsSI3sD_II'oD_OIs'o'osUsSD_II'oD_OIs'o'os@#ksT2'o2s'o'osU#sST2'o2sD_TpV'o'osUuwT2ucYL% PU qT2nuuUb ZT2n22uc5IU,>UU\sW;T&U6U\s2n2%~OU3sU2Z2$2?H2`&25%vv\=<]J)LuU2n2ucU*buVu^+4+?/Vc+KDVc*AiV3suuuVuBuu,UVVV\7V_@,\VccU,VV\nU,XVWVc@,72WVc7,cPWc\,0coWcc,cWc\,KcWccN-@W.W".W".W".X".X`JaWa/SRXb/V9Xc/XWc/\RX"/T\"/]XdnbXeI/^X/jbXU/XX\U/XXXWU/XXX\XXU/XXXXU/ \ Y YXYXU/K\3YX\U/R\OYX YfU/{\kYX YfU/XYXg/XU/7Yc7YmXU/m7YXc7YU/i\YYYmXU/7ZXZ7YcU/X?ZXXU/XUZXU/\\vZX7 YfU/\Z Y YfU/XZXXU/d\ZX YZWU/\ZX YZU/q\[X7 YZU/\8[ Y YZU/l\S[ YZU/\n[ YZU/r7[VXY@/X[X Y@/\[ Y Y@/\[ Y Y@/X[X Y@/7\ Y YU/W75\X7 Y5\;\@\htm80\"0\"0\"0\"0\ "0\"0\"0\"0\"0\ "0 ^("0c0U/7\ Y@/X]X Y7@/\$] Y Y7@/XC]X Y7U/7h]Vh]7Y YU/7] Y YU/0] Y]XU/]] Y]U/X]X Y]U/ ^ ^ Y]\U/B3^ Y]\@/7R^X Y7U/\h^XU/E\^ Y Y7U/IX^X Y7U/NX^X Y7U/RX^XX7U/Y\^ YfU/\_ Yf/ Y4_ YX/ YS_ Y Y/ Yq_ YX/ Y_ Y Y/< Y_ YX7irr r r,-:ua=?V@cAtBtO<`B`tQR`]`ttVm`x`t\1Y_``t`1]```t `1c_``t_VSm` at__1q_"a(atSwww(Oz"Pz"Pz"QRXpZedR\pnbR\pnoR\"R\ Uoxxzc\zzZxxzz1^cxx{ZZ_\xx{Zsq`\xx{ssqayyz\Sb-y8yz\ScLyWyz\1d\oyuy{1ezyyzSfyyzz1g{yy{1h{yy{Siz zzzSj!z1z{ {w1k0IzTz{wtlznzzSmzz{ww{\Snzz{ww1o3szz{zXpz{\xl{x{lwl{wu{<{ vgasvsol{{ Vpalzpch\pnbw pno\pt<{{{Vz\\\{{V\1g{{m1\| |m13s"|-|mmSA|Q|V\\1wi|o|msadd||Vwssub||Vw1<{||mS||V<{S| }V\1\!}'}mS;}A}VSU}`}m {10x}~}m1<}}mS}}mww13s}}mww3s13s} ~mww3s13s#~3~mww3sSG~R~mwwSf~q~mwwS~~Vw13s~~Vwwc13s~~Vww3s13s~~m13sm1w4:mXJm\G{lbG{lxbVVlVl8jlkk<l=l<=l<>l=lA>=?l>?l@l@lFl?F?1\-8mSLWmSkvSS {SÀɀS݀SwwS!wwS5@wwST_wwSs~wwSwSwwSЁww3s1\13s1w4:SNY\QgmQ{\q0"ߜ"ߜ"pval)  1!'$1?E$SYd$Sx$S3sSSЃփSS\\1w,2$1)JP$SdjS~wwS$wwSDŽ$wwSۄ$wwS$wwS.wwww3s1FL13sdj$1<$S13sŅ$10݅$1$w0*xm        8 dceIa9b"9c\prem9d\9ea9j"9k ^prem9l ^9mȆa9v"9wrprem9xr9yJ94:y\NVVU9\ddjz@:0cU9\cU9 ^cU9XևVV77({div9\\U93VcU9" ^ ^U9[\=c7U9f7]Xc7U9^\}Xc7|9X77(g9v\|9xW@90ֈc:u@9 ^c:u\@9Bc:u\U9\*cU9i7JV Y7U9b\eVXU9rrU9$rc@9rc:u\@9rԉc:u\@9]c:u@9)c:u 5l5fGlO5l63kGl3l4lD]mlUsqlml`nalxVqlalc'olyql'olpl$Hcl5uqlcl=e}~__pX+ul"-T <GbVa;\~;Xt}q00\t}qAA\~Ct}rNN\!"$99WJJShhW>!V!WmsO X ƌWs1 2QQ~StAfA__sAc u uC}  Ǎ's-s}u__s :s} @s :s__n }| H__dbV__sbc__nbiKJ]hhH}nK__a __b Jh GwŎ<\<\wx{x&uy5@@zyTj@alfzxyyWyyǏҏ}K2__cnu5C,,__n _@`}@KKml } e|__f0QB,}RŐ :s :s__n CԐ__n _@|n\{$/K}KOD_Tp0%__r(/O9v,`cnnt]`nW=Wt\mϑ__iIOn  Zz566__xZ5.JUUv /itUY8v5}K2n22  uu  "__f]81< 6KV66e}__x.} .U__n > O"77W}"Z2sss}L2s"zs"zsc> }Mژ2sD_TpV"s"sژMF F?'?* W@9NW$`_ttW'v}Hs^k>əə}hl__a2pB,}GM0D_TpB__a0__b5,,kIe__ncDjVjt3=՗__as=Úښ7__a Zښ? __n j=.9՗=HS7>bm w@|h %3X'ʛ՛՛v"'՛-77((vg<QQW?vie __pmhh}I 5}*__x(uHלל__x$ܜ9v}*__x (r&++__x$0__y$5]vuu}*R__x'}+j__x'h*y7**7\2ŝ7__knŝv}H+__x '.74 ""__x',8X$;^^__apc__bphuuux4|}c+__x$'5/ȞӞU)7)794!%`2BtB9vs>s>s~Ct}M2s s}MLI3s2s2sPsPsPsTg[fQ(uU%2&Qvv} NҠD_Tp$__r(/Ҡ3v(UthQ__p$gy%&;W(Jb7__pu(,)q7__p(s'՛WQ.ԡ7W{<`(W5 }>NID_T1D_T2]__xI__yN9v9v}jNt2 5 5}NǢ2 52 51 51 51 5~5t}N 2 52 5 5 5 5}I"'oi1<<v|iPl __nchV({7PhQ__p$g9v5̣6;(__x_wx8#.(3=H":Wb$qt__ap__bpu>,:Ҥ(e7__xҤwA}Kc {}N2Vr} OO2VZVZV}3OmD_Tpnmrtt}!r2n3V}VOå2VrVrV} __pVVV%__nϻ}]2VVV__a]mt} 2VVV__at^"yO?"ʦʦj"ަʦ"ʦ *"*uPODOO/{cnKP)PnQ|K|ǧK}P2n22  uu  7__f)'}FQ}P2n22. / uuwMw/}.Q 2ZD_Tp]2`&25%__x __yvvaw/&;W JUU$'itUŅUjU}mQI3sD_IIsD_OIs{s{s{s~t}QSI3sD_IIsD_OIssss}QD_IIsD_OIssss}"ت2s2s#[s#[s#\s}R2s2s#ks#ks#ls}HRm2s2sD_TpV#s#s#sm}lD_TpV__a2ת__p2k2ׯ}R2s2sksksksxm YA!,lq}?ri2s2?in,,}Rͬ2s2s2<#s#s#s#ͬA{m\Y&11mEU\}lr2s2?DE,,m1W&q˭֭֭}>J'o}R2'o'o}SpI3sD_IIyD_OIs{y{y{s~t}US2'o 'o}tS߮I3sD_II'oD_OIs'o'os}S#D_II'oD_OIs'o'os} #d2'o2s#['o#['o#\s}S2'o2s#k'o#k'o#ls}l__a2ྯ?ү __n __a A ,xA#.,}T2'o2sD_TpV#'o#'o#sl1qE˰ڰw)~n=\}L@:OʖW^u__aut)hA:͕C@ ܕ"-O;h^  R Tыŋ ދTo@$Us8)peE:)Z@.:͕C@ܕ"-O;h^  R Tыŋ ދTo@$Us8Us}STs2s__scu*wOOoTriq7t!;JJ"d1Z\iג- <"-UU}EveXUUvT Q3 %!Uv< KUUsEeXUU}T Q1}wwwwwoTcxUTTUlwyC4@n\ƸT0ƸTvTzx0alzeal1z&5E۹^T4 UvTs44UvzR-oTEɺeXUUvT Q1EAذeX jm [w.K̍֍UUvTsE eXUUvT Q1EfeXUUvT Q1EeXUUvT Q1Q!ۼUv0TvQ!UvT|0TvwwKoTl9n\al{EeXUUsT Q1EqeXUUsT Q8E?XeX m w.K̍:֍UUsT|E鳿eXUUsT Q1EeXUUsT Q:EieXUUsT Q1EeXUUsT Q1EmeXUUsT Q2EeXUT Q1ǏECeXUUsT Q1-]UsQ!~UsT|-Usz}KoTE0eXUT Q2EeXUUvT Q6EeXUUvT Q2E=eXUT Q3Q!WUvQ!xUvT|Q!UvTsc}1Si\| > f$ƸT0U}U|wwEo|Tf|wҏ~aUUsT_Q1Q!{UsQ!Tvnz%oTn%\EDeX m w.K̍֍UUvTsҏ)UUvTMQ1ҏvUTNQ1ҏUUvTOQ1Q!T~TvQ|R}{{nf1nUf2nT{wU\Hn\d\eI q~+Mf+wsUU# ~!Rp1f!wFi"\|"T|w&fwm\whێώŎsUww&`m\fwwhHێώŎsUww0fwmw#whێώŎsUww5fwgwwhێώŎsUwo|%fww5fwgwwhێώŎsUw|/fw%3ssfwUi\3sf1wf2ws3sfwi\/U05{i\T0\|csi\T|0pc i\{`UU/1z4wal{w0UsUvppTv_WoTi\|1@pV3oe%!U}| [EeXUU}T Q19UoTE]e XUUsT Q14wTs4Ts}ID_TpV3y3y3s~5wT$F,__n 8_@__s 8c~ =mFA?*A __n }xJD_TpVpypyps~rwTE ?/@__x ?? IVr Du 2ؒؓΓ KݫЫw>1$TΟKTv" VmF XmF Y? Z? W | :c =#2 X[N Y:4*: _SIU3$r a 2ؒؓΓs j#gZM@ت# #u˪S#]|oE8+۩ΩAnaT|U}Q|3$s* q*#gZM@ت*# **#u˪S*#]|o*E8+*۩Ω*A*naT*|U|TvQ~3$ڗ b {q@__x 6yD__x v1m`]| 8ï- 8ܯүߚ- - 4*:" _SIV <#. <zm`Sd # # #uWK?߮ #] ѮĮ SF9 aA naT |U|Qs3$ߘ fK1i\|SŐސԐ!r 2ؠؓΓUv*9 ڗ b {qU|*9 ڗ b {qU|Us%-; 7__x`(__yf(:fDbKg{qCv NC_͕C`ܕ"-O;h^ \ R Tыŋ ދT_;TJVv{oeUsU|}7a2V|V|V__a|a~__r uth~2VVV__atfR2V~buUH;. B6*HTåڥͥ:-  epgUvTsQ~Of%uנvI=1VU U~T0QRU~T0QR=0& PUPgWTRs Ws|TL~L~ܕ{P9W9s~}r`0KNoT|XOg_U}1=MKT0cPIc_U}j cy =0&.ڌƌDiSU}MKU}T|U|EeXUUwT Q2VCoe%!UwEeXUUwT Q2EeXUUwT Q2E>eX m w.K̍֍UUwtjy=0&Ϧަ5QUsT@͕Wܕ"-OKh^  R5 Tыŋ ދTQUsT͕PLܕZ"-ODh^ 3 R Tыŋ ދTQUsT}͕ܕOT͕ܕOTOܕOTmU@RUR )l:͕L@4ܕC"-OCh^  R Tыŋ ދTO@$|U}ڌƌDSU}-UwUwUsUv}T^2n ^ ^u~TK0)PC-  5<"-- <"- 0͕*ܕOT]0&PC-  <"-- ;<"- 0Uv͕?ܕO;h^  R? Tыŋ ދTY͕Fܕ"-O=h^  R Tыŋ ދTZ͕Djܕy"-O;h^ R R Tыŋ ދT[͕Cܕ"-O;h^  Rk Tыŋ ދT\͕ ܕOT^͕JܕOT_vUwT Q>UTs>UPTsUvU@T QO~ K0&PC-  <"-- =<"- 0Us͕?ܕO;h^  RA Tыŋ ދT]͕H ܕ"-O@h^  R Tыŋ ދT^͕F ܕOT_q UwT QO> UPTsUs3~ # C Ko TE!> eXUT Q1E$ eXUUvT Q1V% oe%!UvE&> eXUUvT Q1E& eXUUvT Q1E( eXUUvT Q1E@( eX  m w.K̍ ֍UUvTs Uv0 Tvc, UsUs}ef KoT3sE eXUUsT Q2ҏ EUUsT_Q1 fUvTsTsQv R1[?oTO3si\|&C T|9bUoTEe XUUsT Q2TsTs}6KoT3sEeXUUsT Q2ҏUUsT^Q1ҏcUT_Q1 UvTsUsQ!T|![joTO3si\|QT|9>UoTE e XUUsT Q2'TsTs ~9a KoT3sEeXUUsT Q2 UvTs@ [,o TO 3si\|>T|DŽ9UoTEae XUUsT Q2 {Ts TsoTmi\|| ?EeXUU}T Q3 T}~1^o1T1cE@6eX m w.K̍֍UUvT}E6HeXUUvT Q1E8eXUUvT Q2V9oe%!UvE:HeXUUvT Q2E:eXUUvT Q2E<eXUUvT Q2EC<eX m w.K̍֍UUvT|E<DeXUUvT Q1E=eXUUvT Q1E?eXUUvT Q2EAXeXUUvT Q1E?E@eX m w.K̍"֍UUvT}EEeXUUvT Q3EEeXUT Q1EGMeXUUvT Q2EIeXUUvT Q1cUsUs-UvT|UsTv-@UvT|UsTv= 1o=T>3s?c- i@\|@ T~QvEFeXUU~T Q1~O +oOTO3sEY4!eXUUvT Q1E[!eXUUvT Q1E_!eXUUvT Q2EaH"eXUUvT Q1Vc"oe%!UvEe"eXUUvT Q2EeH#eXUUvT Q2Eg#eXUUvT Q1Eg$eXUUvT Q1Em\$eXUUvT Q2Er$eXUUvT Q6Er%eXUUsT Q2Eri%eXUT Q1Et%eXUUvT Q1Ev!&eXUUvT Q1E|}&eXUUvT Q3E|&eXUT Q1E~.'eXUUvT Q2E'eXUUvT Q2E'eXUUvT Q6EB(eXUUsT Q2E(eXUT Q1E(eXUUvT Q1EO)eXUUvT Q1Ej1*eXU)UvT Q1U)UvT Q1U*UvT Q1UUvT Q1cK*Use*Us-*UvT|0*TvQ!*UvQ!*UvTsQ!*UsT|+Uv-7+UvT|0Q+TvQ!k+UvQ!+UvTsQ!+UsT|Uv + ,KUs6/,,7w,i9\|9,+U | }!7ێώŎww0oTm0E-eXUUvT Q2V-oe%!UvEC.eXUUvT Q2E.eXUUvT Q2E.eXUUvT Q2E@/eX /m /w.K̍/֍UUvTsE?0eXUUvT Q1`0UsTv-z0UvUs\Zwwx1oZTmZ1Z1i[\|[$1E\y1eXUT Q5,U|,U|%121y&\i'\|'92Ő(k2ސԐc/[23Fi0\|03L$33^3U22m3x3U23N4U{nw^3)$4m3 , ,%Tv3>4UsRjNq4v:oTE4e XUUsT Q4EM5eXUUsT Q2ǧ(60( PC- 6<"-- 6<"- 0T|͕E7ܕO@h^$7 R7 Tыŋ ދTO8ג- 8<"-UUsE9eXUT Q3H9* t!UsE9eXUUsT Q2E:eXUUsT Q1:Ts4:Ts_:U@T QN3Uv::^~__r\ɀ:A1Ai\j\|\;7 ;F4Ő ;ސԐŐ;ސԐQN+>vv:N0 ::N::::- <<"--f=<"- =0UvQ$|}|#}#,(h#r#͕?D?ܕO;h^ +? R> Tыŋ ދT͕@ܕ?"-Oh^@ R9@ Tыŋ ދT@mVŐ ސԐ͕,AܕOT|TA||A>AU>UUsIA4P1oITI3sPJ3sK3sOiL\|LBwMT|X`MDgb CU}8OCMKT0cDPIcC_U|j cy =0&@DڌƌDzDSU}MKDU}T|U|EO EeXUUwT Q2tPJj Ey =0&EϦFަhFQUT͕WGܕF"-OKh^ G RhG Tыŋ ދTHQUT͕TIܕH"-OHh^ gI RI Tыŋ ދTIQUT}͕JܕOT͕LJܕOTJܕOTJURURPzKג- bK<"-UUw͕JPLܕK"-O>h^ L R{L Tыŋ ދT V-O)cN:͕G@NܕM"-O>h^ xN R-N Tыŋ ދT@$U|NڌƌDSU}͕PlOܕOT OT|Q|U|EWeXUUwT Q1PUsUsLCPhPR__nRwPP__sc}TP2n22b ^c c~e Z~ܕQQ__scc=QbUcdbsodT|sf|gXZdSg_QU}4=RMKT0cSPIcR_U|j cy =0&.SڌƌDiSSU}MKSU}T|U|eS* t!U|tfYj Ty =0&TϦTަCUQU|T@͕WVܕU"-OKh^ V RCV Tыŋ ދTVQU|T͕P[XܕiW"-ODh^ BX RW Tыŋ ދTXQU|T}͕XܕOT͕'YܕOT_YܕOT}YU@RUR4P9iZZPMPCPUSZ#-S<2UZXKA/VU { U|TsR0hPj?[PPwPU|TsQ R;Pk)\PPPPf [ QQUT Q1 \ܕOTNUT|kz\QU|T͕Jk]ܕ\"-O>h^ ] R{] Tыŋ ދT͕GfD_ܕR^"-O>h^ +_ R^ Tыŋ ދT ma)%a:͕P@`ܕ_"-OGh^ ` R` Tыŋ ދTO@$|U|Taڌƌ|DSU}͕kaܕOT͕f bܕOT 2bU|TeQ0PbUvT|U|~bUsUsWb|xoTwT3s/KxgadrEceXUU~T Q6EceXUU~T Q2E?deXUU~T Q1E"deXUUsT Q2E%deXUU~T Q5ǧ(&f0( PC- e<"-- 5f<"- 0T|͕E&gܕO@h^$g R:g Tыŋ ދT&Vhג- ?h<"-UU~E&heXUT Q5'ciג- Li<"-UU~͕D'jܕi"-O;h^ j Rdj Tыŋ ދTE)$keXUUsT Q2)kג- k<"-UUs͕Q)=mܕKl"-OHh^ $m Rl Tыŋ ދTE+meXUUsT Q2+m* t!UsE/9neXUU~T Q6E0neXUUsT Q3E4neXUU~T Q6E6MoeXUUsT Q6E8oeXUUsT Q2 ;o* t!U~<9p* t!UsE<peXUT Q1E?peXUU~T Q5EAFqeXUUsT Q6ECqeXUUsT Q3EFqeXUU~T QAEGSreXUT Q4EHreXUU~T Q4EIseXUT Q1EQ`seXUU~T Q6ESseXUU~T Q2EUteXUU~T Q1EXtteXUU~T Q1EZteXUU~T Q1E^,ueXUUsT Q2͕'kuܕOT͕)uܕOT3uU}1^uT~^vT~^ vT~AAvTsQ|AbvTsQ|vUT QQvUT}QvUT} , , wT|#wU~ , ,YwT|swUs21wU}^wU|T~^wU}T~^wU|T~A&xU}TsQvAU|TsQvexUsUspwwKopTcpK;qxJEqLye XUU|T QCt rtyEsyeXUUsT Q3tzUT}ǧ)t{0) PC-  z<"-- P{<"- 0U|͕Et|ܕO@h^$| RU| Tыŋ ދTI͕Dt~ܕ+}"-O;h^ ~ R} Tыŋ ދTJ t^~UT}tג- ~<"-UUsEtkeXUT Q5͕Dtπܕ"-O;h^  Rl Tыŋ ދTKuג- p<"-UUs͕Duܕ"-O;h^ ӂ R Tыŋ ދTLEvGeXUUsT Q2EweXUUsT Q1͕tܕOTM͕tܕOTN͕u]ܕOTO0wUs0U|T}ńUT QQU@Tv3UvUs4UsUsPl*~OOkW__mTVsTTՅՅWڅs! W sO!@W@sUTsՅWsszs ra2rG As1IUxs2IU{\|k_SUy1ʅ߅9?ÇMKT05?MKT0y?cPIc_Uyj cy =0&D/SUyMKRUyTyiUyUw\!keU|Šʅ߅>?TMKT0:?MKT0y(?Pac-_U|j cy =0&DSU|MKU|T{U{U{5DHj ʌy =0&ϦަhQU~T͕W̎ܕڍ"-OKh^  Rh Tыŋ ދT~QU~T͕Tܕ"-OHh^ g R Tыŋ ދT~АQU~T|͕ܕOT~͕LܕOT~ܕOT~URUR~5tDHj }y =0&Ϧ˒ަQU~T͕Wܕ"-OKh^ f R Tыŋ ދTϔQU~T͕W3ܕA"-OKh^  Rϕ Tыŋ ދTQU~Ty͕ܕOT͕ܕOT7ܕOTVURUR͕DzܕOT~0.PC-  R<"-- ˜<"- 0Us͕B)ܕO>h^  Rř Tыŋ ދT~͕JǍܕ"-O>h^ t R) Tыŋ ދT~#3!)o5u:͕J@>ܕL"-O>h^ % Rڜ Tыŋ ދT@$U|Es5hT";Нڌƌy.;D5SU|Ӡ!)5:͕L@ܟܕ"-OCh^ ß Rx Tыŋ ދT@$yUyE75hT;pڌƌyy;D5SUy0UTy0U~T{.U{Uw[UsUsz |KmmbCm1bm2bcminewc&m|S b9 }Hif/@f! ّϑzjg/@g! ّϑwhxKmiVpr z2ؒؓΓUQiێώŎs j4U 6gOE6fOE*9 ڗ b {qUslxϦ1mma\i\|Hwx8^1mmzi\QێώŎ5r 2ؒؓΓUvQX4UvTsNU WR1mFi\|U|w8m1wm2w ήxywx &m|S b9 }Hiz/@zv! ّϑm{V{ێώŎj|/@|c! ّϑw}x6|լOE%+r  2ؒؓΓUQU 6zOE*9 ڗ b {qUs5tri3s| vMgd*9 ڗ b {qt*9 ڗ b {qUHU~QwDZUHU}QwU|U|6U~U}˰ڰղ::*9 ڗ b {q*9 ڗ b {qŴUwUsEG c$Զe1)e2)n1wn2we)nw^3"m3 , ,%T|^3 Mm3 , ,%T}ha0w))@)03333@0x3x3UvU|^^UsT1dG0!c$e1)e2)n1wn2we)nw^3"m3 , ,%T|^3 am3 , ,%T}ha0w))@)03333@0x3x3ѸUv%U|^^UsT1փD xwMTvMѹTvUsT03Us,num\den\iwMTvMTvӺUsT03Us)!7__xz!~|(v,FQ7__x'__p'__vQ:3s__z(H$H$Δv:H ::H::::-<"--e<"-ս0Q$ss##,(h#r#Q Ql |{A rfZPU0"~_!<2Us T|;߿TJVv{oeUs~DVU~TsQ}RvUs9v+vt7__k#t__x&(__y'((3s__j/8(&?,?$Δv:? ::?::::-M<"--<"- 40U}Q$s|s#|#,(hr:-DR-\m5 |iVUv<7<$Δv:< ::<::::-C<"--<"-#0Q$}}##,(hrv5,3K7E(__kK 8(?U?$Δv:? ::?::::- &<"--<"-0Q$svs#v#,(hrSS$Δv:S ::S::::- <"--<"-]0U|T~Qhr08(m |iVUs88$Δv:8 ::8::::-K<"- 0T|Q$~v~#v#,(hrVUTw22$Δv:2 ::2::::X0U~T|Qhr|+8(  VUs7 7$Δv:7 ::7::::-F<"- 0U|Q$~v~#v#,(hrVUTwVUTwv9_(__k~__ie7wD-7__xq(__yq(__kr^m07E(__v~$9v z6cwrlal{keyPUi_wN`oVoCuC$Δv:C ::C::::- <"--=<"- 0T~Q$|v|#v#,(hr:v'DRx\<J<$Δv:< ::<::::-<"- 0U~Q$|s|#s#,(hrb{qUT-mĤ--yLUsT}Q&UsRND_͕D`ܕ"-O;h^  R Tыŋ ދTN_͕`ܕOT͕ܕ"-Oh^  RM Tыŋ ދT͕ܕOTUTQ.UJTTQUs {^ScSRi\| פT| {}TU2Z2$2?H2`&25%__x__yvv} : ; I&I$ >  I9: ; : ;  : ;  : ;  : ;  : ; (  : ; I8 9: ; .?: ; n<I.?: ; nI<.?: ; nI<.?: ;nI<.?: ;nI<.?: ;nI< : ; I8 2 : ; I2 .?: ; 2 <dI4.?: ; 2 <d : ;I8 .?: ;<d .?4<d! : ;I?2 <" : ; I8 # : ; I?<$.?: ; nI<%.?: ; nI<d&.?: ; n<d'.?: ;n<d(.?: ;nI<d).?: ;nI<d*.?: ;n<+.?: ;nI<,.?: ;2 <d-.?: ; 2 <cd..?: ;nI2 <d/.?: ;nI2 <d0.?: ;n2 <d1.?: ; nI2 <d2/I3<4 : ; 5<6 : ;2 7 : ;I?<8.?: ;2 <d9: ;I2 : : ;I?2 < ; : ;I?2 < < : ;I?2 <=.?: ; L 2 <d>.?: ; nI2 <d?.?: ; <@.?: ; I<A.?: ; I<B.?: ; nI<C.?: ; <dD/IE.?4<dF : ; 2 G : ;H : ;2 I0I J: ;IK : ;I8 2 L.?: ;nI2 <M.?: ; <cdN<O.?: ; 2 <dP.?: ; 2 <cdQ.?42 <dR : ; 2 S.?: ; n2 <dT.?: ;2 <cdU.?: ;I<V.?: ;I<W.?: ;L 2 <dX.?: ; n2 <dY.?L 42 <dZ.?: ; nI2 <d[.?: ; <\4: ; nI?<]4: ; I<^.?: ; n<_&` a : ; nb : ; c : ; IdIe!I/ fg.?: ;I<h : ; i9: ; j.: ; I<k:: ; l Im.?: ; I<no!p : ; I8 q.?42 <dr : ; I8 2 s.?: ; n2 <dt.?: ; nI2 <u : ; nv( w.?: ;n2 <dx : ;yIz{.?: ;I<|.?: ;<}.G ~ 4: ; I.G dI4.: ; I 4: ; I5I: ; I: ;I4: ;I: ;I: ; I.?: ; I 4: ;I.G: ; d.G .G: ; d.?: ;  .1n@dB11X Y 1X Y1X Y1X Y  411B.G: ; @dBI4: ; I4: ; I1.?: ; nI@B1.G: ; @B1.G: ;@dB: ;I4: ;I1RUX Y1.?: ;nI@B: ; I: ;II44: ;I 4: ;I.?: ;I .1n@B: ;I.G@dB 4: ;I U41 1RUX Y 1RUX Y1RUX Y 4: ; I1 41 U4: ;I.4 .4@B14: ; I?4: ;I?<4I?4<4G4Gn 4Gn4Gn 4Gn4Gn.?nI4<.?n4<.?I4<.?: ; I<.?4<.?I4<USUusU#HoToU Qpxu Q QpxQSUUSUUSUusU#HoToU Qpxu Q QpxQSUU|xUT]PSPSU|xUs ] PVL ]UPUTUTUSUTVTUVUVSVPVUVPVUSUTVT TVsTsTsV1Uu Ts V V VUSPTVT USVT S\S1Uu \ S S SV SVT S PVT SUUUUTVTVT P TVT PV PUVU0SUVUSsQp3$v"USPTV_t_SUSUTVTVTQ\Q\Q\QR]R]R]RuTsTsTV1Uu TsMtMVNtNPOtOV0UutUTUVUT\T0SUVUUTTPtuUwWwpUUTPutTWwpUTPutUwWwpUPTQqpP qupt"TWwpUSUTUPTQqpP quptUwWwpUSUTTTUTTTUUU\U0SUUPUSUTTVT a XUSUT]T0\USUPa]S ]UVUTSTSTUSUSUTTVVVTTVTVTQ\Q\Q\QSpxPUSUUpxuxQuxppTV1Q ut83& pt@3&PPP0\ 1SR1R_1 SSS0_S\QP 3$}"SSVT1]\S\sV1^ ss8sS ss8sSUV^UUV^UUV^UV^UUU vv3&U0UU vv3&V^UvT\S]V^Uv0SS s $ &QVVTV\\\\\U\UTSVSS\s _T_U Rpxu R RpxRS\1U\U\U\U\U\UTSTQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQTST^Q^Q^P]P]PPQQQSSSVVV^^^SV^SV^]]v~"QQQQQSSRR\\UTVTVTVTVTVTW|}U}U}U}U}W|@@|T|U||}t}u}}}sss}t}u}}S}SPW}U} WaW W WTv $ &3$"TW1Uu TWW|||SSPsss||||@T@@SS@TU Qpxu Q QpxQTSSTU Qpxu Q QpxQ}T}S@SWW|||}}OTOOU Qpxu Q QpxQW|}U}USUSUSUSUSUSUWWWWQTU@@P@QTVPYTYUvh PvxPvx Pvx PvxP@ZTZU Qpxu Q QpxQ[T[U P8Pqxu P8 PqxPW\T\U Pw8Pqxu Pw8 PqxPWUSUSUWW@PPWW@QTSPP]T]]Ushsh PsxPsx Psx PsxPWW@^T^^U Qpxu Q QpxQWUSUTVT P VaV V V VSV1Uu SUVUTSTQQ0 TS_t_STUVUT\T1PP0SUVUUVUTSTSTUVUTSTQQ0 TS^t^ST_t_PUVUT\T1PP0SUVUUVUTSTSTUVUTSTQQ0 TSUVUT\T1PP0SUVUUVUTSTSTUSUT]T0\USUS ]USUTVTVTVTVTQ]Q]QQ]]V1Uu ] V VaV V V V\V1Uu \ V V V VQ]Q]TVTV1Uu Q] V P V VU\UT^T0]] V0SSU\U ^USUSUSUTVTQQ   VVV   VVV V VaV V V V V V V PS P V V  VV  P  VV V V PS P V V  VVUSUUVUVU01\]\PP\0S0UVUVUUTVPTST VaV V V VSV1Uu S VU\PTVT0STVT PUVUVU0]00S0UVUVU s $ &QVUVUVU0S0UVUVUUSUUSUP\\USUUVUTSTST S@v@Q\U@OTOU|h P|xP|x P|x P|xPvS Pv !S S SUSUSU0VTUSUSU\SSUP  $ &PSSU]\^TV\]]TUvh PvxPvx Pvx PvxPTU Qpxu Q QpxQRSSSUSSUSUUSUSUSUSUSUSUSUSUTw|Q|0|1||0_1__0\\USUSUSUSUSUSUSUSU@@|R|T||U|]]|R|T||U|@@@|T|U|||}t}u}}}}u}t}u}}UUU}}|] w||||UUUu||||TUTU Qpxu Q QpxQTUTU Qpxu Q QpxQ}T}UwwTU Qpxu Q QpxQ||}TU Qpxu Q QpxQ||] wT\TPSSS|U|P|U|U|}U}U}U}|U|P|U|U|@@|U||}u}}}|||u}u}}|U|U|U|U|U|U|T|U|T|}||}U}| !|U|U||||||U|U|U|U|U|U|T|U|T|||||u||||@T@@|U||@TU Qpxu Q QpxQT|U||TU Qpxu Q QpxQ}T}|U|@|11PSSS|U|U|T|U||ps#+ps#+  SSS|U|U|T|U||  SSS|U|T|U||  |T|U||  UTT|U|||TU Qpxu Q QpxQ||TU Qpxu Q QpxQ||||}}OTOOU Qpxu Q QpxQ}U}|U]U]U]U]UT^T^TQSQSQSQRR\\]] ^ ^ ^  SSQSQ  ^T^}U#}Q\UTU|h|h P|xP|x P|x P|xP}^ P^T^TU Qpxu Q QpxQ  SSQTU Qpxu Q QpxQ S]^ ^ S ^ S S!^} !S P ^ S S ^ P ^ P ^ ^ ^ ^ ^ SUSUSUSUSPTVTTVTP\\VT SUSUSUVQT\ITIIU|h|h P|xP|x P|x P|xPJTJJU Qpxu Q QpxQVVSSU PKTKU Qpxu Q QpxQ@@SSU@LTLU Qpxu Q QpxQ S S@U_U_UT^T^TWxyUyUyUy|U|U|TTWxyyTyWHHHyTyyUyy{y{U{y{{ytyyuyy|y|u|y||y|~~~u~~~uytyyuyy|y|u|y|~U~U~U~~U~U~U~|~~yUy{U{P{U{P{U{|U|U|T{U{P{U{P{U{{{T{{{HHHH{{U{{{||u||||~~~u~~~u||u||~U~U~U~~U~U~U~|~~|U|{P{{{{{{~U~U~U~~~~~~u~~~u~U~U~U~~U~U~U~~~{yyy{{T~U~~~T~U Qpxu Q QpxQT~U~~~T~U Qpxu Q QpxQ|T|~U~~WWWxyyy~U~U~U~~~~~~uyyyyyT~U~~TU Qpxu Q QpxQT~U~~TU Qpxu Q QpxQyTy~U~~~~~~~~~~~~QTS~~~~T~~~Ush PsxPsx Psx PsxP~~~~T~~~U Qpxu Q QpxQ{P{{{{{{|y|yTU Qpxu Q QpxQ{{y{P{{{{{{{P{{{|||yUyWWxyyyyTU Qpxu Q QpxQWxWxyUyTQ^Qup11RQRpRQU_P]]TT^SSS^VV\\Q__T_VVPPQpRp p p YTTYYRRQ R}#}# }#00_ 8U_ 8U_UVUT\T ]0SUVU\^UVUTSTPPSPQppRp XQXVXTVU\UTVT0STVTTQ^Qup11PPRU_P]]TT^^SPQpRp SSS^^VV\\0Q_T_0_ 8U_ 8U_USUSUSUSUTTW^^]\ ||8U\ ||8U\\ ||8U\ ||8U\SSWW ww8UWW ww8UWW ww8UW ww8UWUSUTVTVT!w!ww!wPQPSSVVUSUTVTVT!w!ww!wPPQPSSVVUSU]\PuUSUT]TQ\QTQ]]\ ]Q TQUVUVUTTTTQ]Q]QR\R\R^q } R\UV_S^q } TUS__\RVUPSSP\Rp Us s p \Us s SSVV11U_UT^TVSVSPSuVV1010PVVPVU_Uv v ^_}hSSQT~SQVV^v _U_]Q^TU]__U_U_UTTTSSSQwQwSSSSQwu #  # U_VSQQwTUSVVs s s wU_VV]]Qs s s ^^^\]VQSP]wp } _^VQ\UV^^ws s _]VVQ\^^V]]SP]p } w_V^QT\^VVU_U_UTSSQTS]]]]STR]S]]SSSs } s V~hQUVVS]S} \SQT^S\\TUQRQRQPQTU Qpxu Q QpxQTUU Qpxu Q QpxQUVUT\T0SUVU\QT\T|U|P|U|U|U|U|}U}U}U}|U|P|U|U|U|U|@@|U||}u}}}sss}u}}S}}SP|}U}W{W|T|T|U|U|W|T|T|U|U||T|T|U|U||T|T|U|U||T|U||WW{||WW00\\P\VVPV| | v v | | QTU |U|U| PV||||SSPsss||||@T@@SS@TU Qpxu Q QpxQTSSTU Qpxu Q QpxQ}T}S@S|U|||U|WW{WW{||||}}OTOOU Qpxu Q QpxQ}U}|U||U|WW |U|$Uhp3& /usr/include/c++/4.8/usr/include/c++/4.8/bits/usr/include/c++/4.8/ext/usr/lib/gcc/x86_64-linux-gnu/4.8/include/usr/include/x86_64-linux-gnu/c++/4.8/bits/usr/include/usr/include/c++/4.8/debug/usr/include/x86_64-linux-gnu/bitssstreambasic_string.hatomicity.hstreambufchemeq.ccstl_tree.hostreamchemeq.hios_base.hbasic_ios.hchar_traits.hstl_vector.hvector.tccnew_allocator.hstl_algobase.hstl_iterator.hbasic_string.tccstl_iterator_base_funcs.histreamstl_pair.hstl_map.hiostreamcstringcwcharcpp_type_traits.hstl_iterator_base_types.hstddef.hc++config.hclocaleallocator.hstringfwd.hcwctypeostream.tccstl_construct.hstl_uninitialized.hstl_function.hiosfwdcstdlibbasic_ios.tccmove.hostream_insert.hpostypes.hfunctexcept.hstring.hstdio.hwchar.htime.hnumeric_traits.halloc_traits.htype_traits.hdebug.hlocale.htypes.hatomic_word.hwctype.hstdlib.hstdlib-float.hgthr-default.hnewmathcalls.h ?tJ}J~J`=f.NM~ ?tJ}J~J`=f.NM~  J{fJn} *~X| ]؟Xg[=gtJfmf} f } zf tt}} J} f} Zf|<JY } zf tt}X|&JX| Jf} | JXf} u<J   5f ~}J<}JJ f~\! Y| zu } zf t}} } } L0P;z. t   YXKytKytKy<t!yJ|K.!yJ|K."Y""K#J0LuWu%!ZLYuyX1Kt%> }.f|J z$ t\ֻ~ }} <|XZ f~JY z~< }J y z| }AX ?AX~ ._'1*}I;}  if} ]$f}&tY } zf tt}t|X}X~}J~J`=f. ~}J~J`=f.Nx R|X}J~J`=f.N  B. q.&X|JJ nXo ~.X|JX npX}J~J`=fN,X}J~J`=f.NXX}J~J`=fN,J}J~J`=fN~.J~vX|JJ npf}J~J`=fN,J}J~J`=f.N~ f~ f~&tY } zf tt~^J} ~ L t~-Z f~[f~ |J} ~ J~  t-Z f[f~ |J~  t-Z f[f~ ~ /  t\~/.{J<{fJzX~J |qJ>ʓ/<} fLZv.X}J~J`=f.N:X}J}J~J`=f.NK<Xx t~!}J f~[X }.e'4*J}X<e} .jXX~|J|JX nfXp<~ |t|}~}J~J`=f. ~}J~J`=f.NxJU~|J}J~J`=f.J{ 7fX}}X xJ j~ LJuY ~ | K| { ~@ ~ AY [Y/ J ~<AX X=K {< {  x Z{~JJ}J~J`=f.N~]Z  \ Cz  JX~f[*f0J}*f0   fLzX<|JJ |qJ?ex^}JXZ  y<JU=wf<|JJ |qJhyJJytJUXMewfJ|J< |tqJ>.Lwt|XJ |.qJhK;vJ |qJ>ʓ.O:kڃvector >wcspbrk_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE8allocateEmPKvlconv_S_showpoint_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEmIERKlGNU C++ 4.8.2 -mtune=generic -march=x86-64 -g -O1_Val_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11equal_rangeERS3__Node_allocator_ZNK6Chemeq6valeurEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13_Rb_tree_implIS6_Lb0EE13_M_initializeEv_ZNSs12_M_leak_hardEv__it_ZNSt6vectorIP5MolecSaIS1_EE6insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__Keyunitbuf7moltype_Const_Base_ptrbasic_ostreamnot_eofprintNernstreverse_iteratortm_secsetstate_S_ios_iostate_endallocate_ZNK6Chemeq10nbelectronEvfwideiostate_ZNK6Membre11printweightERSobasic_ostringstream, std::allocator >new_allocatorint_p_sep_by_space_ZSt20__throw_out_of_rangePKcfrac_digitschar_typebasic_stringbasefield_ZNK5Molec6weightEvgetwc_ZNKSs8capacityEv__endpptrldiv_t_ZNSs6resizeEmc_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_S_leftEPKSt18_Rb_tree_node_base__miter_base<__gnu_cxx::__normal_iterator > >_ZN6Chemeq6triageEv_ZNSs5clearEvchemeq.cc_S_maximum_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE7addressERKS3__Value_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmmEi__copy_move_a_ZN10AtomeListe6triageEPS__Tp1allocator, float> > >__copy_move_b__gnu_cxx_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmmEv__copy_move_backward_a_ZN9__gnu_cxx13new_allocatorIcE10deallocateEPcm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_rightEPSt18_Rb_tree_node_basepair, std::allocator >, float> >, std::_Rb_tree_iterator, std::allocator >, float> > >_ZNKSs4findEcmcste_ZNSs4_Rep7_M_grabERKSaIcES2__M_refcopyiterator_traitsunary_function, std::allocator >, float>, const std::basic_string, std::allocator > >_ZNKSt17_Rb_tree_iteratorISt4pairIKSsfEEeqERKS3__ZN6Chemeq11printNernstERSoS0_bcapacity_S_ate_Rb_tree_const_iterator__exchange_and_add_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE2atERS3__ZN5Molec3addE8fractionwcscpyreverse_iterator, std::allocator >, float> > >__first2mapped_type_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_rightEPKSt18_Rb_tree_node_base_ZNSt6vectorIP5MolecSaIS1_EE4rendEvoperator+, std::allocator >overflow_arg_area~pair_ZNSs13_S_copy_charsEPcS_S__ZNSt11char_traitsIcE4findEPKcmRS1_SYMBOL_ZN9__gnu_cxx13new_allocatorIP5MolecE8allocateEmPKv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE17_S_select_on_copyERKS3_iswctypememcmp_ZN9__gnu_cxx17__normal_iteratorIPcSsEppEilength_M_refcount_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEmiERKl__last_Ios_Fmtflags__osize_ZNSt6vectorIP5MolecSaIS1_EE5clearEv__n1__n2__vtt_parmstrtodconst_pointer__numeric_traits_integer_ZN9__gnu_cxx13new_allocatorIcE7destroyEPc_ZNKSt6vectorIP5MolecSaIS1_EE4dataEv_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE3endEv__equal_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE10value_compEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS2_ESC_RS1__M_check_lengthdeallocatetowctransWEIGHTbasic_ios_M_create_storageoperator!=, std::allocator >_ZNSt18_Rb_tree_node_base10_S_maximumEPKS___uninit_copy<__gnu_cxx::__normal_iterator >, Molec**>tm_isdstmap, std::allocator >, float, std::less, std::allocator > >, std::allocator, std::allocator >, float> > >groupingwcstoldallocator_Rep_typewcstoll_M_end_of_storagemax_size_ZNSs6rbeginEv_M_impl_S_decatoi_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4sizeEvmbrtowc_M_pstrcoll_M_t_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEixERKlwcsspn_ZNK10AtomeListe6compteER8Compteur8fraction__os/home/georgesk/developpement/chemeq/chemeq-2.12/src_Ios_Openmode_ZNK5Molec5eqMolEPKS_vector_ZNKSt6vectorIP5MolecSaIS1_EE4sizeEvstrrchrsuivant_ZN6Chemeq9subChemeqEPKS__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_rightmostEv__debug~_Rb_tree_implwctrans__alloc_traits >__niter_base_ZNSsC2IPcEET_S1_RKSaIcE_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_valueEPKSt18_Rb_tree_node_base__string_typesetlocalewscanf_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSsmemcpy_ZNKSs7_M_dataEvvwscanf_ZNKSt6vectorIP5MolecSaIS1_EE3endEv_Znwmgetmolecularite_M_erase_at_end~basic_streambuf_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE7destroyERS3_PS2__ZNSt10_Iter_baseISt23_Rb_tree_const_iteratorISt4pairIKSsfEELb0EE7_S_baseES4_replace_S_showbasebasic_istream >_ZNSt6vectorIP5MolecSaIS1_EE6rbeginEv_ZNKSs6_M_repEv~basic_ios_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4swapERS8__Rep_base_S_octwcsxfrm_ZNSsaSEc_ZNKSt17_Rb_tree_iteratorISt4pairIKSsfEEneERKS3__ZNKSs4findERKSsmrdstate_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate_ZNKSs7_M_iendEv__after_M_node_count_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2___resmax_Rb_tree, std::allocator >, std::pair, std::allocator >, float>, std::_Select1st, std::allocator >, float> >, std::less, std::allocator > >, std::allocator, std::allocator >, float> > >_ZNSs14_M_replace_auxEmmmcvalue_type__in_chrg_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7addressERKS5__ZNSs5beginEvreverse_iterator<__gnu_cxx::__normal_iterator, std::allocator > > >_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_S_keyEPKSt18_Rb_tree_node_baselong int__lenlldiv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_upper_boundEPKSt13_Rb_tree_nodeIS2_ESC_RS1__ZN9__gnu_cxx17__normal_iteratorIPKcSsEpLERKluninitialized_copy<__gnu_cxx::__normal_iterator >, Molec**>_S_select_on_copy__s1_ZNK5Molec5listeEv_S_internal_S_empty_rep_HasBase_Tp_alloc_type__s2_ZNSt11char_traitsIcE4copyEPcPKcm_ZlsRSoRK5Molec_ZNKSt10_Select1stISt4pairIKSsfEEclERS2__ZNK5Molec6compteER8Compteur_ZSt17__throw_bad_allocv_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEcbinary_function, std::allocator >, std::basic_string, std::allocator >, bool>badbit_S_eofbit_ZNSt6vectorIP5MolecSaIS1_EE7reserveEm__uninitialized_copy_a<__gnu_cxx::__normal_iterator >, Molec**, Molec*>_ZNSt12_Vector_baseIP5MolecSaIS1_EE12_Vector_impl12_M_swap_dataERS4_~basic_stringstream_Alloc_hiderisEqual_Iter_base__initialize_p__copy_mint_frac_digitsdistancenormalise_M_destroy_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6rbeginEv_Rb_tree_implthousands_sep_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_rightmostEvrfind_ZN5Molec5coeffE8fraction_ZNKSs15_M_check_lengthEmmPKcadjustfieldwcstof_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEEaSERKS6_wcstokwcstol_ZNKSs6substrEmm_M_swap_data__x_copyoperator new_ZN5Molec15printNernstWIMSERSob_S_construct_aux_2_ZNK6Membre5redoxEv_ZNKSt10_Select1stISt4pairIKSsfEEclERKS2__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11upper_boundERS1___first_ZN5Molec6numeroEiaddcomma__rhs_ZNKSs9_M_ibeginEv_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEE13_M_const_castEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE3endEv_ZN6Chemeq9equilibreEv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE10deallocateERS3_PS2_m_S_scientific_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsE_Allocator_ZNKSt6vectorIP5MolecSaIS1_EE5frontEvscientific_ZNKSs4copyEPcmm_Destroy_auxoperator&_S_blackoperator*_ZNSs6insertEmRKSsoperator-_ZN6Membre5coeffE8fraction__gnu_debugallocator, std::allocator >, float> >wmemmovewmemset_ZN9__gnu_cxx24__numeric_traits_integerIcE5__maxEoperator=__beg_Self_ZNK5Molec6numeroEvbtowcstrpbrk_ZNSs12_S_empty_repEvboolalpha_Atomic_word_ZNSs6assignERKSsbasic_ios >_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEppEiputwchar_ZNK9__gnu_cxx17__normal_iteratorIPcSsEdeEv_ZNSs4_Rep8_M_cloneERKSaIcEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_leftmostEvatexit_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS2_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEppEi_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcEsuiv_Unwind_Resume_ZNSs6appendEPKcoperator|_M_allocateto_char_type_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostateconstante_ZNKSs8_M_limitEmm_ZNK6Chemeq9constanteEv_ZNSt6vectorIP5MolecSaIS1_EE4backEv__exchange_and_add_dispatch__copy_move_backwardsubstr_ZN9__gnu_cxx24__numeric_traits_integerIlE5__maxEinfo_ZN10AtomeListe15setmoleculariteEi_ZNKSs4_Rep12_M_is_sharedEv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE10_S_on_swapERS3_S5__ZNK5Molec12printspeciesERSob_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc_ZN6Chemeq9printnormERSo_M_refdata11__mbstate_t_S_synced_with_stdiounsigned char_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE8allocateERS3_muppercase_ZNK9__gnu_cxx13new_allocatorIP5MolecE8max_sizeEv_ZNK6Chemeq9printelecERSo_ZNSt17_Rb_tree_iteratorISt4pairIKSsfEEmmEirandom_access_iterator_tag__distance_M_create_node_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_minimumEPSt18_Rb_tree_node_basewcslen_ZNKSs13find_first_ofEPKcmfloat_Arg_ZN5Molec6triageEv_ZNKSs7compareEmmPKcm_ZN9__gnu_cxx24__numeric_traits_integerIsE5__maxE_Zmli8fraction_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1__ZNK5Molec6typageEv_M_set_length_and_sharable_ZN6Membre15printNernstWIMSERSobprintcount_ZNSs4_Rep26_M_set_length_and_sharableEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_S_valueEPKSt13_Rb_tree_nodeIS2_E_ZNSt11char_traitsIcE2eqERKcS2__ZNKSt6vectorIP5MolecSaIS1_EE8capacityEv_M_checkassign_ZN5Molec6typageE7moltypenumerosignature_ZNSs9_M_assignEPcmc__beforeint_typeoperator==, float, std::less >, std::allocator, float> > >_M_insert__ZSt4cout_S_fixed_ZNK9__gnu_cxx17__normal_iteratorIPKcSsE4baseEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5beginEv_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE8max_sizeEvrend_ZNSs18_S_construct_aux_2EmcRKSaIcE_ZNSs4_Rep10_M_refcopyEv_S_cur~_Rb_tree_ZNK5Molec6nombreEv_ZNK5Molec11printNombreERSo__priority_ZNSs7_M_copyEPcPKcm_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2__ZNKSs7compareEPKc__uninitialized_copy_a_ZNKSs16find_last_not_ofEcm_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_fwscanfwctombwcsftimeswapinit_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE16_M_insert_equal_ESt23_Rb_tree_const_iteratorIS2_ERKS2__ZNSolsEd_ZNSolsEe_ZNSolsEf_ZlsRSoRK10AtomeListeeqMol_ZNSolsEi_ZNKSs2atEm_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EEaSERKS8_basic_stringbuf_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEE4baseEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5__ZN8fraction9simplifieEv_M_iend_ZNK9__gnu_cxx17__normal_iteratorIPcSsEmiERKlsize_type_ZNSt6vectorIP5MolecSaIS1_EE4swapERS3__ZNK9__gnu_cxx13new_allocatorIP5MolecE7addressERKS2__ZNSt23_Rb_tree_const_iteratorISt4pairIKSsfEEppEi_ZN9__gnu_cxx13new_allocatorIP5MolecE10deallocateEPS2_m_ZNSspLERKSs~basic_istreamfindMol_S_createskipws_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsfEEppEv_ZmiR6MembreS0__ZNSt17_Rb_tree_iteratorISt4pairIKSsfEEmmEviteratorstrtold_InputIteratoroperator==, float>_ZNK5Molec10nbelectronEvstrtoll_Rb_tree_iterator, std::allocator >, float> >_ZNK10AtomeListe5debugEi_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt17_Rb_tree_iteratorIS2_ESA__ZNSt11char_traitsIcE7not_eofERKi_M_get_insert_hint_unique_posoperator< >negative_sign_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_leftmostEv_ZN6Membre6triageEv_Rb_tree_node_base_Zne8fractioni~basic_stringwcscatdebug_Result_ZN6Membre8numeroteEvother7lldiv_t_ZN6Membre7findMolEPK5Molecwcstod~vector_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEE4baseEv_M_move__ret__normal_iterator > >wctypeint_curr_symbolnew_allocator_ZlsRSoRK6Chemeq_ZNKSs7compareERKSs_ZN6Membre9addMembreEPKS__ZN6Chemeq8multiplyEii_ZNK5Molec10printcountERSobcommuns_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE9constructEPS3_RKS3__ZNK9__gnu_cxx13new_allocatorIcE7addressERc_Pair_ZNKSt17_Rb_tree_iteratorISt4pairIKSsfEEdeEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8max_sizeEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_minimumEPKSt18_Rb_tree_node_base_ZNK5Molec9signatureEvsize_M_clonesetmolecularite_M_replace_safe_ZN6Membre9eraseNullEvdiff__state_ZNSs6appendERKSsmm~_Vector_implreg_save_area_ZNSs6appendERKSs_ZNSt6vectorIP5MolecSaIS1_EEaSERKS3_right_M_ibegin_II2iselectronclear_ZNSt11char_traitsIcE2ltERKcS2_wcscspn_S_end_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev__addressof, float> >__ioinitbasic_ostringstream_ZNSs6assignERKSsmmsize_t_Rb_tree_decrement_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5clearEvoperator!=_Zmi8fractionS___count~Membre_M_insert_equal_lower_ZNKSs8_M_checkEmPKc_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEpLERKldestroyfront__niter_base, float> > >~Init_ZNKSs17find_first_not_ofEPKcm_M_leftmost_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseERS3__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_copyEPKSt13_Rb_tree_nodeIS2_EPSA_maxprem_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE_M_current_ZNSt6vectorIP5MolecSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1__ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEEdeEv_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmccopy<__gnu_cxx::__normal_iterator >, Molec**>inverse_M_grab_M_is_shared_M_fill_insert_ZN6Chemeq8numeroteEv_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS3_SaIS3_EEEELb1EE7_S_baseES9_moltype_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEmmEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11upper_boundERS1__ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_M_endEv_ZN6Chemeq6coeff1Ev_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE8key_compEvliste_Destroy_S_empty_rep_storagewctobmon_thousands_sepfwprintf_M_assign_ZN9__gnu_cxx13new_allocatorIcE9constructEPcRKc_S_max_size_M_fill_assign_ZNK5Molec9printnormERSowantedlatex__wchb_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_Elower_boundwcsncmpfind_last_not_offirst_ZNK10AtomeListe15getmoleculariteEv_ZNK6Membre5debugEi_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEptEvfraction_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEixERKl_S_boolalphalldiv_t_M_check_lenoperator<< >_M_insert_lowerwint_t_ZNKSs12find_last_ofEPKcmmblen_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS2_E_ZNKSs5rfindEcm_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEvkey_compare_ZNKSs13get_allocatorEv__digits__k2_S_base_ZNKSs6lengthEv_S_leftrbegin_ZNK5Molec5debugEipair_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5countERS3_wcstoull__cxa_atexit_ZNK6Membre10nbelectronEv_M_copy__pos_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseEPS1_S9__ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEplERKl_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_S_keyEPKSt13_Rb_tree_nodeIS2_E_ZNKSs4findEPKcm_S_ios_fmtflags_end_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv_ZNKSs16find_last_not_ofEPKcm__out_ZN5Molec3subE8fractioncompte_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeIS2_Echargefputwc_ZNSt11char_traitsIcE11eq_int_typeERKiS2__ZNSs4_Rep10_M_disposeERKSaIcE_ZNSs6appendEmc_ZNKSs5c_strEv_ZNKSsixEmfputwsallocator, std::allocator >, float> > >_ZNSs4_Rep10_M_destroyERKSaIcEwcsstr_ZlsRSoRK8Compteur_Vector_base_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE8max_sizeEvsymbole_M_destroy_node_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5clearEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm__ptr_ZNSs2atEm_S_badbit_ZNKSs11_M_disjunctEPKc_Container_ZNKSs6rbeginEv_ZNK10AtomeListe2sqEvreverse_iterator<__gnu_cxx::__normal_iterator, std::allocator > > >wcschr_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4findERS1_constructbasic_iostream >_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7addressERS5_find_S_outget_allocator_S_right__testoffconstructbasic_ostream >__copy_move_backward_a2_ZN8fraction7inverseEv_M_limitdecimal_point_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_address_Rb_tree_colorequal_rangeless, std::allocator > >valeur_latex_M_insert_unique___arg_ZNK9__gnu_cxx13new_allocatorIcE8max_sizeEvkey_typeredox_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_get_Node_allocatorEvoperator>, std::allocator >nbelectron_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11lower_boundERS1__ZNK10AtomeListe7symboleEv_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE28_M_get_insert_hint_equal_posESt23_Rb_tree_const_iteratorIS2_ERS1_result_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4findERS1__ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4sizeEvstrtoul_M_get_nodeopenmode_ZNSt11char_traitsIcE6lengthEPKc_ZNSt11char_traitsIcE12to_char_typeERKi_ZNKSs12find_last_ofEcm_ZNSspLEPKciterator_traits_S_red__enable_ifmbrlenbasic_stringstream, std::allocator >strerroroperator[]_Iter_base<__gnu_cxx::__normal_iterator > >, true>_ZNSt11char_traitsIcE3eofEvstrxfrm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_beginEv_ZNK6Chemeq11printweightERSo_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE3endEvallocator_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5beginEv_ZNKSs3endEv_ZNSo9_M_insertIdEERSoT___valwcstombs_M_end_ZNKSs4findEPKcmm__tmpwchar_t_Z12mendelweightPKc_ZNKSs13find_first_ofEcm_S_construct_auxsetsuivant_ZNK9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEdeEvallocator_type_ZNSs3endEv__typepop_back_M_insert_Zpl8fractionS__ZNSs6insertEmmc6ldiv_t_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEmmEi__gthread_active_ptr_M_erase_aux_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmmEi_ZNSs7replaceEmmRKSsmm_ZNK9__gnu_cxx17__normal_iteratorIPcSsE4baseEv_ZNSo9_M_insertIeEERSoT___str_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11lower_boundERS1__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6_M_endEv_ZNSs16_S_construct_auxIPcEES0_T_S1_RKSaIcESt12__false_typeswscanf__numeric_traits_integer_ZNK9__gnu_cxx13new_allocatorISt4pairIKSsfEE7addressERS3_wcsncpy_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11equal_rangeERS1__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6rbeginEvaqueousprintnorm_S_skipws_S_hex_Select1st, std::allocator >, float> >_ZNKSs8max_sizeEvpbase_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEpLERKl_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4swapERS6___iterator_categoryn_sep_by_space_ZNKSt6vectorIP5MolecSaIS1_EE5beginEv_ZNSs6insertEmPKcm_ZNSt11char_traitsIcE6assignERcRKc_ZN10AtomeListe6groupeEv_M_mutatewprintftm_minMELTINGint_n_sep_by_spacechar_traits__false_type_M_nodecopyp_cs_precedes_Destroywcscmp_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEixERKl__equal_aux, float> >, std::_Rb_tree_const_iterator, float> > >_M_color_Rb_tree_insert_and_rebalance_ZNSs6assignEPKcmstrtokstrtolfp_offsetoperator==_ZNK9__gnu_cxx13new_allocatorIP5MolecE7addressERS2_mbsrtowcsmon_grouping_ZNK10AtomeListe10printcountERSoRK8fractionigp_offset_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS2_Emove_ZNSs7replaceEmmmcpointer_ZNSs6insertEmRKSsmm_S_value_M_lower_boundvfwprintfiswater__throw_logic_errorstreamsize__numeric_traits_integer_ZN10AtomeListe2sqEi_KeyOfValuereverse_iterator<__gnu_cxx::__normal_iterator > > >mbsinitfind_first_not_of_ZNSs7_M_leakEvsizetype_M_leaktypage__builtin_memcmp_M_key_compareBOILING_ZNK8CompteurlsERSo__addressof, float> >_M_upper_bound_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5beginEv_M_get_insert_hint_equal_pos_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseESt17_Rb_tree_iteratorIS4_ES8___builtin_memmovegroup_ZNKSs5beginEvshort unsigned int_ZN9__gnu_cxx13new_allocatorIcE8allocateEmPKv_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEppEvsigned char_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED2Ev_ZNKSs12find_last_ofEPKcmm_Iter_base, std::allocator >, float> >, false>_ZNKSs5rfindEPKcmthisostream_ZNKSt6vectorIP5MolecSaIS1_EE12_M_check_lenEmPKc_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_get_Node_allocatorEvkey_comp_M_const_castbasic_iostreamdifference_typeptrdiff_t_M_initialize_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE8max_sizeEvswprintfprintNernstWIMS_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11lower_boundERS3__M_replace_auxcount_ZNKSt6vectorIP5MolecSaIS1_EE4rendEvbackprintNombre__throw_out_of_rangevwprintfmbstate_t_S_floatfield_ZNKSt6vectorIP5MolecSaIS1_EE14_M_range_checkEm_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsfEEmmEi_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE6rbeginEv_Num_ZNKSs5emptyEv_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsfEEmmEvmendelweightresizevswprintf_ZNK9__gnu_cxx17__normal_iteratorIPcSsEptEv_ZNSt6vectorIP5MolecSaIS1_EE3endEvputwc_ZNSs6assignEmc_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11lower_boundERS3__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_insert_equalERKS2__ZNK9__gnu_cxx17__normal_iteratorIPKcSsEdeEvsecondstring_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt23_Rb_tree_const_iteratorIS2_E_FwdIteratormembredroitmultiply_ZNKSt17_Rb_tree_iteratorISt4pairIKSsfEEptEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE23_M_get_insert_equal_posERS1__ZNSs6insertEmPKc_Zgt8fractioni_M_header~basic_ostreammbstowcsCompteur_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE8allocateEmPKventhalpy_ZNSt6vectorIP5MolecSaIS1_EE5frontEv_ZNSsixEm_ZNK10AtomeListe9printnormERSon_sign_posncurrency_symbol_M_rep_ZNK6Membre6compteER8Compteurwcsrtombs_M_erasetm_wday_S_intm_ydayequal, float> >, std::_Rb_tree_const_iterator, float> > >_ZNKSs4dataEv_ZNSt11char_traitsIcE4moveEPcPKcm_ZNSs7replaceEmmPKc_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE21_M_insert_equal_lowerERKS2__ZNSt6vectorIP5MolecSaIS1_EE18_M_fill_initializeEmRKS1__M_insert_aux__is_char_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_rootEv_M_data_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmiERKl__wch_ZNSt11char_traitsIcE6assignEPcmc__insert_left_ZN6Chemeq9addChemeqEPKS___dso_handleNAME__copy_move__max_ZNKSs17find_first_not_ofEPKcmmappend_ZNK6Membre9printnormERSovswscanfdenominateurtm_mon_S_failbit~_Alloc_hidercopyint_n_sign_posneq_int_type_M_get_insert_unique_pos_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEvmoltypeStr_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEEptEv_M_finish_ZNSs4_Rep9_S_createEmmRKSaIcE~basic_ostringstream_ZNKSs7compareEmmPKc__copy_move_a2_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_operator()~Compteuroperator- >_M_leftnombre__lhs_ZNK9__gnu_cxx13new_allocatorIcE7addressERKc_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEdeEv_ZNSs4rendEv_Link_type_ZN5Molec11printNernstERSoPKcto_int_type_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6rbeginEvint_p_sign_posn_S_uppercaseweighttm_year_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE24_M_get_insert_unique_posERS1__M_root_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE10deallocateEPS5_mmbtowc_ZNSs4swapERSsbasic_stringbuf, std::allocator >reverse_iterator<__gnu_cxx::__normal_iterator > > >_Rb_tree_impl, std::allocator > >, false>_ZNK6Membre9printelecERSo__normal_iterator, std::allocator > >_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEmiERKl_Ios_Iostateatof_ZN9__gnu_cxx13new_allocatorIP5MolecE9constructEPS2_RKS2___numeric_traits_integeruninitialized_copy__niter_base<__gnu_cxx::__normal_iterator > >atol_M_get_Node_allocator_ZNSs6appendEPKcmstrstr__mbstate_tmon_decimal_pointMolec_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11equal_rangeERS1__BoolType_ZNK6Chemeq12valeur_latexEv_S_construct__normal_iterator, std::allocator > >eposqsort_Traitsstrtof_ZlsRSo8fraction_ZNSt6vectorIP5MolecSaIS1_EEixEm__ostream_typepair, std::allocator >, float> >, std::_Rb_tree_const_iterator, std::allocator >, float> > >droitlong double_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt23_Rb_tree_const_iteratorIS2_ESA_reserve_ZNK6Chemeq10printcountERSo_ZNK5Molec9printelecERSobpair, std::allocator >, float>_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE15_M_insert_lowerEPSt18_Rb_tree_node_baseRKS2__ZNSt6vectorIP5MolecSaIS1_EE2atEm_ZNSs7replaceEmmRKSs_ZNSt6vectorIP5MolecSaIS1_EE6assignEmRKS1_info_types_BI2p_sep_by_space_Rb_tree_increment__throw_bad_alloc__mem_Rb_tree_iteratorlong unsigned int__mode_S_on_swap_ZNSt11char_traitsIcE7compareEPKcS2_m_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE3endEvrebind, std::allocator >, float> > >bool_BI1_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE13get_allocatorEv_ZNK10AtomeListe6weightE8fractionoperator+=_ZNSt6vectorIP5MolecSaIS1_EE5beginEv_S_minimum_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_basesymb_ZN9__gnu_cxx17__normal_iteratorIPcSsEmIERKl_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEEneERKS3__Allocoperator++_ZN9__gnu_cxx17__normal_iteratorIPcSsEppEv_ZNKSt6vectorIP5MolecSaIS1_EE2atEm_ZNSs6resizeEmprintweighwcscoll_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4__M_datapluswctype_t_Zml8fractionS__ZNSsaSEPKcchar__copy_move_a2 >, Molec**>push_back_S_terminalprintspecies__is_null_pointerfindmendelcoutinsert_Rep__static_initialization_and_destruction_0__new_finishtable~basic_stringbuf_S_ios_openmode_end_II1_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11upper_boundERS3__ZNK6Membre10printcountERSo_ZNSs9_M_mutateEmmm_Arg1_Arg2_Type_Key_compareios_base_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1__ZNSspLEcsystemtriage_ZN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS2_SaIS2_EEEppEv_ZNSs7_M_moveEPcPKcmoperator->__size_M_capacity_ZNK6Membre12printspeciesERSo__alloc_ZNK6Chemeq11membredroitEv_ZNK6Chemeq8enthalpyEv~map_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11upper_boundERS3__IO_FILEminFraction_ZNSt12_Vector_baseIP5MolecSaIS1_EE19_M_get_Tp_allocatorEvnumerotewmemchr_ZNKSt6vectorIP5MolecSaIS1_EEixEm_ZNKSs13find_first_ofEPKcmm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_M_rootEvquotrebind_ZNSs7_M_dataEPc_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE9constructEPS5_RKS5__S_refcount_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5eraseESt17_Rb_tree_iteratorIS4_E_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmIERKltm_hour_ZNKSs12find_last_ofERKSsm_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5countERS1__M_right_ZNKSt6vectorIP5MolecSaIS1_EE4backEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseESt17_Rb_tree_iteratorIS2_Esqbrwcstoulatoll_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE14_M_create_nodeERKS2__ZNSs12_S_constructEmcRKSaIcE_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6insertESt17_Rb_tree_iteratorIS4_ERKS4_MAX_INFO_NR__dat__minPAULING_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8key_compEv_Iterbsearch~new_allocator_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv_Rb_tree_const_iterator, std::allocator >, float> >const_reverse_iteratorbasic_streambufvaldefinedbasic_string, std::allocator >getwchar5atome_ZN9__gnu_cxx24__numeric_traits_integerIiE5__maxE_Is_pod_comparatorbasic_istreamatomefixedtm_mday_S_comparenew_allocator, std::allocator >, float> > >operator<< , std::allocator >c_strconst_reference_ZdlPvminoperator delete__numeric_traits_integer__normal_iterator > >_ZNK6Chemeq12printspeciesERSo_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsfEEE7destroyEPS5___gthread_active_p_ZNKSs5rfindEPKcmmnew_allocator__uninitialized_copyaddMol_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4rendEv_ZNKSt12_Vector_baseIP5MolecSaIS1_EE19_M_get_Tp_allocatorEv_ZNKSs17find_first_not_ofEcm_ZNKSt12_Vector_baseIP5MolecSaIS1_EE13get_allocatorEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE7_S_leftEPSt18_Rb_tree_node_base_ZNK6Chemeq12membregaucheEv_ZNK5Molec7iswaterEv_M_length_ForwardIterator_Zgt8fractionS__ZNKSs16find_last_not_ofEPKcmm_Vector_base >equilibre_ZNSt18_Rb_tree_node_base10_S_minimumEPKS_ldiv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS2_ESA_failbit_ZSt19__throw_logic_errorPKc_ZN9__gnu_cxx13new_allocatorIP5MolecE7destroyEPS2_int_n_cs_precedeserasedouble__cxa_rethrow__k1coeff1_ZN6Membre15printableNernstEv_IsMove__exchange_and_add_single_ZNSt6vectorIP5MolecSaIS1_EE9push_backERKS1__ZNKSs17find_first_not_ofERKSsm__FILEiterator_traitslesatomes_M_rightmosttypedef __va_list_tag __va_list_tagvalue_compare_Const_Link_type_ZN9__gnu_cxx17__normal_iteratorIPKcSsEppEi_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l_ZNKSs4rendEveraseNull_ZN9__gnu_cxx17__normal_iteratorIPKcSsEppEvoperator--_S_keynew_allocator, std::allocator >, float> >_Iterator__int32_t_M_fill_initializebasic_streambuf >_M_set_sharabledatawmemcmpostringstreamwcrtomb_M_begin__value_ZNSt6vectorIP5MolecSaIS1_EE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EEmRKS1__ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4findERS3__ZNSt18_Rb_tree_node_base10_S_minimumEPS__InIteratorpair, std::allocator >, float> >, bool>_ZNKSt23_Rb_tree_const_iteratorISt4pairIKSsfEEeqERKS3__ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE7destroyEPS3___new_start_ZNSt6vectorIP5MolecSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EES7_membregauche__position__simplestringstream_ZNSs9push_backEc_ZNK9__gnu_cxx17__normal_iteratorIPKcSsEptEv_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE13get_allocatorEv_ZN9__gnu_cxx14__alloc_traitsISaIP5MolecEE8max_sizeERKS3_input_iterator_taggauche_ZNKSs4_Rep12_M_is_leakedEvseekdirbaseleftpositive_sign__last1_ZNK5Molec6chargeEv_Iter_base<__gnu_cxx::__normal_iterator > >, false>subChemeq__rb_verify5div_t_S_goodbit_ZNSt18_Rb_tree_node_base10_S_maximumEPS__ZNKSt6vectorIP5MolecSaIS1_EE8max_sizeEviterator_categorydiv_t_ZN6Chemeq9simplifieEb_S_showpos_S_ios_seekdir_end_ZN6Membre11printNernstERSoempty_ZNSs15_M_replace_safeEmmPKcm_ZNKSs7compareEmmRKSsmm_RandomAccessIterator_M_insert_uniqueoperator+forward_iterator_tag_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5beginEv_M_dispose_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minEupper_bound_ZNSs4_Rep13_M_set_leakedEvMembrelong long unsigned intallocatormemmove_Rb_tree_node, std::allocator >, float> >_S_basefieldfirst_type_Z11minFractionRK8fractionS1__ZNSs4_Rep12_S_empty_repEvwmemcpy__compar_fn_t_S_constructoperator>_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minE_ZNSs13_S_copy_charsEPcPKcS1_operator-=basic_stringstreamshowbasevaleur_S_unitbuf_ZN9__gnu_cxx17__normal_iteratorIPcSsEpLERKl_S_trunc~_Vector_base_ZNSt11char_traitsIcE11to_int_typeERKcInit~basic_iostream_M_set_leakedNUMBERfmtflags_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE5emptyEv_ZNSs4_Rep15_M_set_sharableEv_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv__cxa_end_catchprintableNernst_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4findERS3_srand__destroy_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5emptyEv_ZN6Membre6addMolEPK5Molec_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKP5MolecSt6vectorIS3_SaIS3_EEEELb0EE7_S_baseES9_tm_gmtoffmultipleoperator==, std::pair, float>, std::_Select1st, float> >, std::less >, std::allocator, float> > >_ZlsRSoRK6Membre_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minE_ZNK10AtomeListe6groupeEv_ZNK6Chemeq5redoxEv__uninit_copy_ZN10AtomeListe8numeroteEi_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE2atERS3___off_ZNK10AtomeListe7suivantEv_M_deallocate_ZNSt6vectorIP5MolecSaIS1_EE4dataEv_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_baseinternal_ZN6Chemeq9constanteESsgoodbit_ZNSsaSERKSsgetenvfgetwc__builtin_unwind_resumepair_ZNSt6vectorIP5MolecSaIS1_EE8pop_backEvtable_entryfgetws_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS2_ERKS2__ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11__rb_verifyEv_ZNSt6vectorIP5MolecSaIS1_EE14_M_fill_assignEmRKS1__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_maximumEPSt18_Rb_tree_node_base_M_get_insert_equal_posrandbasic_string_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv_ZNSt12_Vector_baseIP5MolecSaIS1_EE17_M_create_storageEm_ZNK5Molec10printweighERSo_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEEixERS3__ZNSt10_Iter_baseIPP5MolecLb0EE7_S_baseES2__ZNKSs13find_first_ofERKSsm_ZanR6MembreS0___normal_iterator_ZNKSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4rendEv_GLOBAL__sub_I_lesatomesshowpointstrchr_Z10findmendelPKc_ZNKSt4lessISsEclERKSsS2_showposwctrans_t_ZN9__gnu_cxx17__normal_iteratorIPKcSsEmIERKl_ZNK10AtomeListe7isEqualERKS___c1__c2reverse_iterator, std::allocator >, float> > >_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE11_M_get_nodeEv__elems_before__first1_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEptEvp_sign_posn_ZNSs10_S_compareEmmnumerateurwcsrchrcomparelong long int_ZNKSs4sizeEv_ZNSt12_Vector_baseIP5MolecSaIS1_EE13_M_deallocateEPS1_m__cxa_begin_catch_ZN9__gnu_cxx13new_allocatorISt4pairIKSsfEE10deallocateEPS3_m_M_insert_equal_Vector_implprintweight_M_insert_equal__S_beg_ZN6Chemeq6valeurEdprefix_ZNK10AtomeListe1ZEvprinted_Base_ptreofbit_ZN10AtomeListe6groupeEPS__ZNSs5eraseEmmiterator_traits_ZNSs4_Rep10_M_refdataEvChemeq_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mcconst_iterator_ZNSt6vectorIP5MolecSaIS1_EE15_M_erase_at_endEPS1__M_start_ZNK9__gnu_cxx17__normal_iteratorIPcSsEplERKl_S_adjustfield_ZNSt6vectorIP5MolecSaIS1_EE6resizeEmS1__ZNKSs5rfindERKSsmungetwc_M_insert_ZNK9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEplERKloperator< , std::allocator >_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_beginEvfind_last_of_ZN6Chemeq9normaliseEv_ZN9__gnu_cxx3divExx_Comparevfwscanfn_cs_precedes_ZN9__gnu_cxx17__normal_iteratorIPcSsEmmEiegptr_M_get_Tp_allocatorcopy_backward_M_clone_node_ZNSt6vectorIP5MolecSaIS1_EE6insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EEmRKS1_value_comp_ZNKSs16find_last_not_ofERKSsmaddChemeq_Ios_Seekdir_ZN9__gnu_cxx17__normal_iteratorIPcSsEmmEv_CharTmult_Zml8fractioni_ZNK9__gnu_cxx17__normal_iteratorIPcSsEixERKllocaleconvoperator<<_M_value_fieldreference_ValueTgroupe_ZNKSt6vectorIP5MolecSaIS1_EE6rbeginEv__result_ZNSs6assignEPKcstrtoull_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_M_insert_EPSt18_Rb_tree_node_baseSA_RKS2__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE5eraseERS1__ZNSs7replaceEmmPKcm_ZN5Molec6nombreEiipremiers_ZN9__gnu_cxx17__normal_iteratorIPP5MolecSt6vectorIS2_SaIS2_EEEmmEv_ZNKSs7compareEmmRKSs__miter_basefloatfieldoperator==_M_parent_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE6insertERKS4__ZNK9__gnu_cxx17__normal_iteratorIPKcSsEplERKl_M_disjunct__copy_move_a__is_signed_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base_ZN10AtomeListe10setsuivantEPS_unsigned intcoeff_Z12mendelweighti_ZNSt12_Vector_baseIP5MolecSaIS1_EE11_M_allocateEm_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS__ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE4rendEv_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE16_M_insert_uniqueERKS2__S_copy_chars_ZNSs7reserveEm__uninitialized_move_if_noexcept_a >_M_put_nodestrcmp_S_binsimplifieshort intbeginint_p_cs_precedes_Rb_tree_ZNKSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE4rendEv_ZNSt17_Rb_tree_iteratorISt4pairIKSsfEEppEi_M_is_leaked__dnew_M_leak_hard_ZNSt17_Rb_tree_iteratorISt4pairIKSsfEEppEv_ZNKSt6vectorIP5MolecSaIS1_EE5emptyEviterator_type_ZNK6Chemeq10valdefinedEvaddMembrenpos_ZNSt6vectorIP5MolecSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EE__comp_M_range_checktm_zone__ostream_insert >_ZNSt3mapISsfSt4lessISsESaISt4pairIKSsfEEE11equal_rangeERS3_~allocatormemchr_S_appbidirectional_iterator_tag_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_S_maximumEPKSt18_Rb_tree_node_baseAtomeListeprintelecwcsncat_ZNK5Molec10iselectronEvfind_first_ofGCC: (Debian 4.8.2-1) 4.8.2zRx hAD aA<pAD iA4\BBA A(D@|(A ABBDR$CAAD zAA$xAAD oAA(BAA AB((KBAA CAB(TBAA }AB$cAAD ZAA$EAAD0|AA<BBB A(A0D@0A(A BBB$8L(`RBAA JAB&Da&Da0Dk5DpAQ5Dp AQ<Pdx5Lg(|BAA tABDP$AAD0AA<BBB A(A0D@0A(A BBB$<9AAD pAAHdBBB B(A0A8DP}8A0A(B BBBzPLRx <$BBB A(A0(A BBB,BAA D0t AAB8@BBB A(A0(A BBB<rBBA A(G^(A ABB,TAAD`KAA(@AAD@AA(#AAD AA$DeAAD0\AA(l[BAA SAB$9AAD pAA,BAA D0y AAB([BAA SAB$9AAD pAA$D9AAD pAA(l[BAA SAB$9AAD pAA4BBA A(D0t(A ABB8BBA A(D0(A ABBD4BBB B(A0A8D@8A0A(B BBB8|BBA A(D0(A ABB A^4BBA A(D0(A ABB( AAD AA(8 xBAA pAB8d BBB A(A0(A BBB$ [AAD RAA $Ab, BAA D@ AAB8 NBBA A(DP=(A ABBLBBB B(A0A8Dp8A0A(B BBBLBBB B(A0A8G8A0A(B BBB<DBBA A(Gs(A ABBLWBBB B(A0A8D>8A0A(B BBBDBBB A(A0D0A(A BBBLs BBB B(A0A8GW 8A0A(B BBBLlCBBB B(A0A8D`*8A0A(B BBB8h xBBB A(A0h(A BBB$ AAD0AA( RBAA JABLL8BBB B(A0A8D`8A0A(B BBBD5BBB A(A0DP 0A(A BBB8 GBBA A(D`6(A ABB8 GBBA A(D`6(A ABB4BBA A(D@(A ABB4@BBA A(D@v(A ABBH BBB B(A0A8D@8A0A(B BBBDBBB B(A0A8D@8A0A(B BBBH 3BBB B(A0A8DP8A0A(B BBBL BBB B(A0A8D8A0A(B BBB(^BAA VAB<( BBA A(Gu(A ABB'Db.symtab.strtab.shstrtab.rela.text.rela.data.bss.rela.text._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED2Ev.rela.text._ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev.rodata.str1.1.rela.text._ZNSt6vectorIP5MolecSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_.gcc_except_table.rela.text._ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E.rodata.str1.8.rela.text._ZNSsC2IPcEET_S1_RKSaIcE.rela.text._ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_M_insert_EPSt18_Rb_tree_node_baseSA_RKS2_.rela.text._ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE24_M_get_insert_unique_posERS1_.rela.text._ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_.rela.init_array.rodata.cst4.rodata.cst8.rodata.cst16.rela.debug_info.debug_abbrev.rela.debug_loc.rela.debug_aranges.rela.debug_ranges.rela.debug_line.debug_str.comment.note.GNU-stack.rela.eh_frame.group2@7(2H7:2P7c2X7j2`7)2h72p72x7 $U*]7 +U &H7 1Y;Yh67{Zpv72xZ`[0x7*p]A<`<x72`*` 7aȊ7ab\H7c37de_،7!pe}e80f@f(7&[ h7) 7+  7-z&( 7/0l9 0Wt(x(# 749 83 U     T'$ !#$%&()+-/1343#9$?%E$K$Q$W$ ]$(c$0i2"h@_"h"p "p  C x  `)eo LK  c  E  - F ` R{ & B& h0 5  5  ) 9 P' `59?F |X  l &   ~ 9""*0 G\u"" 'F"_ rv*`q  T ! (  lA  d#Z  ev  [  J9    [  f9  9  [8  69V  pp      T  R  r    )!x  !<  2"[P  "$d  "{   B#N   $  &  +  / C V c u  B1W  6  R9s  . 8 p  CC  Ex  E  FR  `F8  G5  HG JG0 ^KD K[">""3[ vL O^ tO)6 @ chemeq.cc_GLOBAL__sub_I_lesatomes_ZStL8__ioinit.LC14.LC16.LC20.LC21.LC39.LC40.LC60.LC62.LC63_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED5Ev_ZNSsC5IPcEET_S1_RKSaIcE_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED2Ev_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE_ZNSs4_Rep20_S_empty_rep_storageE_ZNSs4_Rep10_M_destroyERKSaIcE_ZTVSt15basic_streambufIcSt11char_traitsIcEE_ZNSt6localeD1Ev_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev_ZdlPv_ZNK8CompteurlsERSo_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l_ZNSo9_M_insertIdEERSoT__ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base_ZlsRSoRK8Compteur_ZN10AtomeListe8numeroteEi_ZN10AtomeListe6triageEPS_strcmp_ZNK10AtomeListe9printnormERSo_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate_ZNSolsEi_ZlsRSoRK10AtomeListe_ZNK5Molec11printNombreERSo_ZN6Membre8numeroteEv_ZNK6Chemeq10valdefinedEv_ZlsRSo8fraction_ZNK10AtomeListe10printcountERSoRK8fractioni_Z11minFractionRK8fractionS1__ZN8fraction9simplifieEv_ZN5Molec5coeffE8fraction_ZN6Membre5coeffE8fraction_Zml8fractioni_Zmli8fraction_Zml8fractionS__Zpl8fractionS__ZN5Molec3addE8fraction_Zmi8fractionS__ZN5Molec3subE8fraction_Zgt8fractioni_Zgt8fractionS__Zne8fractioni_Z12mendelweightitablestrtod_Z10findmendelPKc_Z12mendelweightPKc_ZNK10AtomeListe6weightE8fraction_ZNK6Membre11printweightERSo_ZNK6Chemeq11printweightERSo_ZNSt6vectorIP5MolecSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_memmove_Znwm_ZN6Membre9eraseNullEv__gxx_personality_v0_ZSt17__throw_bad_allocv_Unwind_Resume_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E_ZNSsC2IPcEET_S1_RKSaIcEmemcpy_ZSt19__throw_logic_errorPKc_ZNSs4_Rep9_S_createEmmRKSaIcE_ZNSsC1IPcEET_S1_RKSaIcE_ZNK5Molec9signatureEv_ZNSt8ios_baseC2Ev_ZTVSt9basic_iosIcSt11char_traitsIcEE_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE_ZNSt6localeC1Ev_ZNSt8ios_baseD2EvmoltypeStr_ZNSs6assignERKSs_ZNSs4_Rep10_M_disposeERKSaIcE_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev_ZNK5Molec7iswaterEv_ZNSsC1EPKcRKSaIcEmemcmp_ZNK5Molec10iselectronEv_ZNK5Molec9printnormERSo_ZNK5Molec10printcountERSob_ZNK6Membre10printcountERSo_ZNK6Chemeq10printcountERSo_ZNK5Molec9printelecERSob_ZNK6Membre9printelecERSo_ZNK6Chemeq9printelecERSo_ZNK5Molec12printspeciesERSob_ZNK6Membre12printspeciesERSo_ZNK6Chemeq12printspeciesERSo_ZNK6Membre9printnormERSo_ZN5Molec11printNernstERSoPKc_ZN6Membre11printNernstERSo_ZN5Molec15printNernstWIMSERSob_ZNK5Molec10nbelectronEv_ZNK6Membre10nbelectronEv_ZlsRSoRK5Molec_ZlsRSoRK6Membre_ZN6Membre15printableNernstEv_ZNK6Membre5redoxEv_ZNK6Chemeq5redoxEv_ZNK6Chemeq8enthalpyEvlog_ZN6Chemeq9printnormERSo_ZNSo9_M_insertIeEERSoT__ZN6Membre6triageEv_ZN6Membre15printNernstWIMSERSob_ZNK6Chemeq12valeur_latexEv_ZNKSs4findEcm_ZSt20__throw_out_of_rangePKc_ZNSs9_M_mutateEmmm_ZNSs6insertEmPKcm_ZNSsC1ERKSs_ZNSs6appendEPKcm_ZN6Chemeq11printNernstERSoS0_b_ZlsRSoRK6Chemeq_ZNK10AtomeListe7isEqualERKS__ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE_ZNSdD2Ev_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev_ZanR6MembreS0__ZN6Membre7findMolEPK5Molec_ZN6Membre6addMolEPK5Molec_ZN6Membre9addMembreEPKS__ZmiR6MembreS0__ZN6Chemeq9simplifieEb_ZN6Chemeq9addChemeqEPKS_exp_ZN6Chemeq9subChemeqEPKS__ZN6Chemeq6coeff1Ev_ZN6Chemeq8multiplyEii_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE10_M_insert_EPSt18_Rb_tree_node_baseSA_RKS2___cxa_end_catch__cxa_begin_catch__cxa_rethrow_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS__ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE24_M_get_insert_unique_posERS1__ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base_ZNSt8_Rb_treeISsSt4pairIKSsfESt10_Select1stIS2_ESt4lessISsESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1__ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base_ZNK10AtomeListe6compteER8Compteur8fraction_ZNK6Membre6compteER8Compteur_ZN6Chemeq9equilibreEv_ZNSt8ios_base4InitC1Ev__dso_handle_ZNSt8ios_base4InitD1Ev__cxa_atexitlesatomes__pthread_key_create.=; C=T>\?n v=<AAB C5BJBv ~=E=F =D  =F+D;  C=b g= =E= = = =G!  )== $E=PFZ b=sG  =F '= *=F 1=F  4=\AF=FE<=[=gK~=FL=LNO5N[NNNT NV \]\ \ \C ^ [B _ Q `  `$ `, >J R = a  = a h e dg c ; ; i q r s& s E tM uV u@_ 7 v 4 5 t 9 r w i G N( =5 !A "M >] Qe =q Ty = x E = 5oy+ 5: j6oy 5 6yz2zKzU u^ u@g 4w 5 6{i 78ss  rw6 W>}_p{~pz~ 5 !61 5< e6| 5 6 5 6z1z9iC pM}{ }p~ 5 6 5 86OzWiK =D =!"> = =|* x4 <=WE|= ==L&Zd l=x ==K=FBv = =FP X=d ='|:`E= =G N=!"> Q= T = x& $.=IEq={ =  = N=H =E=' /=:GD L=d Nl=wH =  '8 @=h| =G =D N = =,!8"D>Y Qa=p Tx= = = N=F *=F 1=F# +=5 ==Q Y=eK =G = =D N=F! *)=3F@ 1H=SF] e=o w= =K  =  =  =*  2=WT% H0 G@ NH =U !a "m >} Q = T =  x $ = E !=! !=Y!c! k!=!!|!]""""""V"##"#*#$V#`# h#=t#}## #=# #}#~# 5# $61$=;$ C$=Q$Y$g$ o$=y$  $=$B(%p=%pa%~% 5% %6% 5% &6&z&i&q' rS'sc's 't' u' u@' 7'v' 4' 5(t(9%(s 8( rB(wJ(i`(w( (=( 5(o(y( 5( ,)6K)o`)ys) 5) )6)y)z*z *z:*=M* 5X* *6* u* u@* 4* 5* *6+ 7 +8+s#+s 1+ r9+we+ n+=+z+{+i+q+ r/,s;,s \,te, un, u@w, 7,v, 4, 5,t,9- r-w#-i5->- 5w-o-y- 5- -6-o .y. 5.. Z.6k.y.z.z.z. / /!/+/ 8/J/T/ a/s/y/z/ 5/ /6// 50 406=0 uF0 u@O0 4_0 5n0 060z0z0{0i0 7081s1s "1 r,1w\1m1{1 *1=11 11=11 1=111 1=2 2!2 )2=32 =2}_2~q2 5}2 262=2 2=22=2 5 3 336I3S3 [3=l3=|3 53 363 3=33 3= 4 4= 4 (4=74 ?4=K4 S4=]4p444 4=4 4=4  4=4 4=4 4=445T5K5 )!5=+5 .35=<5H5S5T^5Kh5 p5=y555 *5=55 15=55 5=5 5=66  6=)636 ;6=H6`6zh6i~6z6i66 36=66%6 G7= 7 7}%7H7~Z7 5f7 767 57 7677=8  8=8 5'8 P86]8n8=~8 58 8688 8=8  8=8z9i9z 9i69z>9io9qx9 r9 99t::$2:t9:H:,T: ]: hf: @o: 7:v: 4: 5:t;9; ;; r&;w.;i;;qG; r;t;$ <t<,2< >< hJ< @V< 7<v< 4< 5<t=9= ,=== rJ=w\=Dl=Dx= 5=o=y= 5= !>6C>oX>yk> 5z> >6>y>z>z?z,? 5e?oz?y? 5? ?6?o@y@ 5"@ R@6i@y@z@z@z@z A~A 5%A QA6dA 5oA A6A A hA @A 4A 5A B6!B 7.B85BDB,XBgB$zB BB rBwB B hB @B 4B 5B (C6:CGCOCiXC 7bC8CC rCwDGDcuD;}DiDeEEEEeEcFU=FFeF*GcOG;WGikGVGGeGGeGH;H;2H;:H;IHfRHf_HIhHIpHyHH;H;H;H;HiH I&I'IOI#^IkIxIIIIIIIVIIIVIT+JRJ&XJ'gJJ#JJJJJJJJKVKK(KV?KVKPKPKKKLP LP-L5LBLL}L~FM~MMMM 5M M6BN 5\NzgN N6NQNNNzNiQOOqO rOsOs Pt%P u1P u@:P 7PvP 4P 5PtP9P rPwPi\QkQQ~Q KQ=Q@Q RQ=Q@Q 5>RoNRyaR 5pR R6RoRyR 5R S62SyPSznSzSzSjSjS uS u@S 4S 5S T6/Tj  [ g z   fi 2 - w R `   2 3# V/ q; G 2S _ zk  x x @ _x T@     h> (    p I& +, +D (J a `>g   3 &j ] F  vG = . &9  %,  h3 cJ  hQ J|m et  9 w! 1  ^\ E\ , g;  2 K9  'Z a H} OD . 6 yz @ , T / T |w T$  = TD  ] \d U| )X ly    >$ ޘ ޘ ޘ ޘA ޘk ޘ ޘ ޘ 5 $  $ w9 $@ K] d |  ] R Q C  C H o. k6 o.= UU !9\ t } { C  V Wb  Wb Zw t  r b6 9= Q X  bp  Pw F  P e 0 H &v 2" &v) sOF &vM zj iq 9 i s9 i o i &  i F2 Ux9 R ,X k$u ,| : , Y , R , b x  =C xJ #l xs [ x W x d x R$ x+ M T ϝv } =   a t a S) a0 m\ ac f a Z a ! a lH a% (L aS  a / a M a j a 1K `R >} ?9    t. p ~ ti "$ 0+ mD ,K Fc j f zJ C nJ Q nJ  nJ ]E! nJ(  J Q s z `  H_  2C ݩ ؙ ݩ# {J ݩQ *s ݩz R  T}  ^  B # [OE 3\L An 3\u h 3\ 5< 3\ 1 dA : dA EE dAL En dAu / ' Q  } G7 }  } J }Q R/n }u Zj } * /R T p  А P& p8 А> lK di y 3   q v   I c   JB 0 - V  C < J  T" i p  S' V. l6  l> ϞE iL EaS nE\ Vh n } t Ӧz  f sJ  x n ƍ H  [i  c d . (: ^ y  |  ( / /<H U  Ob  n T$ N    9 " \ b  3. >= Z)L Z h w   C  P JY d~  0 Nq  0  0 _! !  q&! R,! Q>! R! X! 0u! "{! S! ! u! 2! :! !  q" A " )" @" G" _" k" r" g" V" BC" "  q" "" " $" " Z" 3# $!# U,# 35# $O# K[# Oa# #h# 5t# Y# # %# k# }# O# Vv# F# Vv# # # э$  $ * $ ݖ,$ uA8$ cD$ CY$ C$  s$ uA$ c$ v$ C$ C$ } % C6% X#I% _% z%  % @u% .6% % % % F% & !&  9& E& yN& yW& 6a& Ks& jy& & & & & U& m& ~\ ' d' #' M9' MY' 7``' ^t' -' y' '' 2' 9' (' ' O' |L' Y( 2( k( ʇ,( R9( 3F( VS( `( qm( ot( L( o( _( zJ( 8( N( ( ( B )  *) g~-) H4) ZM) ΠT) Fq) lx) g) l) {) T<) =%) T<) j5) )  * * i+* 2* J* Q* Pi* Qp* eT* Q* ?* -[* ,* * D* C* * C*  + J+ .+ J5+  I+ -[P+ d+ k+ P+ Vv+ *+ Vv+ 8+ + X+ + =+ i+  ;> 92> [B> M> (Y> Rd> j> \{> > > zJ> N> G> G> G ? G(? B? &H? Pd? j? ? ? &? v? ? Y@ [ @ 6 @  $@ 20@ 3<@ VH@ qT@ `@ 2l@ Rx@ z@ z@ z@ z@ `6A $A 95A ,E F gF E=%F _B,F g_NF UF e|F vF TmF [qG h}G `G [G  G G OG $G `G [G  G G ޝG `H [ H  H !H e-H *6H 6@H %VSH jZH _vH j}H  H 8H H H CH H H H ^H I C I I %I 0I  =I fMI yVI 9oI gpzI t'I I ;I I CI sI I I HI `J [J  J (J P4J ?J CEJ >XJ aJ lJ hyJ J }$J J J iJ J &K K &K  q/K 95K NK  0TK  AoK &K lBK  qK d:K K K  qK vL I$L 4L =L  qFL vZL mcL +1~L xL L L L  qL vL &L B@M $M X&M $HM >kM l{M M MM M uM ZtM M M JM M uN Zt!N \?N 3kN ;{N N XN yN 9N fN yN 9N WN  O )O Ɏ4O YWO fO 3O OO O O IO P  P  qP v!P 1P EIP VP :|P EjP P  qP vP P P  qP vP L Q Q  qQ v/Q "-?Q 9QQ IZQ vnQ i~Q Q ojQ Q XR Ao'R 30R $IR e/YR 3bR $R R uR ZtR rR 3R $R "R fo S S *S VS sfS uS wS S >S nS 3S $T $T 3-T $TT lBdT  qT T YT T , T T  qT vT IT `U 7U @U  qJU UU eU 9nU wU [U IU vU xU -U :U U U U  qU k[U ntU PV tV V W[!V K0V a6V mEV YLV jV :pV avV ntV ۤV V V V PV YW P3W l9W lQW 6$XW 6$pW vW W oW oW G{W aW W ZW YW k W 9W +X BX (#X [h.X A:X A;FX cX onX ;ayX 0$X X JX QX uFX FY 4Y @PY /lY Y Y OY Y +\Y i9[ 2aT[ to[ [ 6[ X[ tw[  [  :\ /L\ X\ ;Xd\ L}p\ T|\ Ti\ 4l\ f\ f\ \ ֓\ \ *\ ] \A%] UUD] eo] ] Y6]  ] *] C ] J ^ ^ Y~4^ CS^ i@i^ ^ ^ #^ #^ 3X_ _ I_ I5_ (<_ (T_ uZ_ ur_ Gy_ G_ {_ {_ _ s_ 2_ [ ` 6 `  !` 2-` LC` L^` y` K` 7` K` 'k` ` ]` ` } a a PL)a J/a @Ma ;Sa b {a D a Da ha Ϥa Ca 6a Ena :=a `a  a [a b 2b  #9b $Qb zXb hbpb wwb  wb wb R b b pb b ib  Pb c &v&c wCc Jc gc >nc vc '#c 1c c Sc c Hc pc :=c ` d  d [#d :d Vd  #]d gcud z|d  d wd md wd ۇd d !d d =e  P!e XCe &vJe @ge ne ge >e e '#e ne e -e e Hf v[f Df h'f Ϥ2f C=f 6Gf "oSf D^f hif Ϥtf Cf 6f Tf Df hf Ϥf Cf 6f pf Df hf Ϥf Cg 6 g g 2%g [1g 6 =g  Ig 2Ug Lkg Lg g Kg Ug Kg g g 0h h 3h 9h 7.Qh JWh 7uh ;{h 7h gh 2h [h 6 h  h 2h Li Li 7i K=i !JZi K`i n}i i  ei i li i Gi Ji [| j ;j 9j  7Ej 2Qj []j 6 ij  uj 2j Lj Lj j Kj Zj Kj I2k k  ;k Ak 2_k ek d)}k Jk nk ;k hk Dk [k 6 k  k 2l 2l l  )0l 6l "Ol ;Ul il ol l l  l tl 4(l ;|l .6l Il vm 6m :=m `,m  9m [Fm ]m ym  #m Tkm zm m wm ^m wm  &m n n  n eS=n  PDn fn &vmn Wn n 9n >n }n '#n hn n ;1o o H(o 5o :=Co Po `]o  jo [wo o o  #o RRo zo Ao wo 4zp wp $+p 2p ?Jp Qp Rnp  Pup Bp &vp |;p p Dp >p }q '# q  'q .q h6Fq Oq Hq 4q Oq Rq  q r X'"r xx1r y@r jPr Yr Hmr 25yr r Hr r r r Dr ɏs ) s [^s s L#6s uMs jYs #Kes [qs }s 7s es os o@s FZs s \5s s s Xs _tt [ t Wt I%t e1t =t ZIt Ut JXat lmt yizt t t $t ^$Lu wWu mu B u u <u  7u v vv Hw e+w 1w \Nw ebw jw Aw Aw X>w Kw ڦw 1x x x&x ]&x vTx T~`x x x Hx Mx x Hy [y { y z9y /9?y 'Xy ^y {Avy |y Xy y y y y y ,y GRy  z Ez 2z -l8z vUz -z[z oz +uz SZz  Vz ez z ߚz  6z p4!{ F*{ V={ >H{  p{  p{  p{ <@{ { nF{ ' | 0| d.| k4| R| kX| .v|  | E| f\| +| f\| ,| ,| U! } ,} $(} -z.} *B} EH} a} -lg} } ,}  9} a} .} +} 7} } s ~ kx~ s(4~  V:~ @S~ iwY~ _r~ 8x~ ~ u~ k~ `~  ~ O[~ ~ 9 ĩ (M# 3;  6A C  3 =69 ? XX #^ [7w c} O9 E e { 6ʀ -zЀ 5  V $i + Py" ( +nA kxG z` Gf  8 1# u q `Á +  Ԇ L   (M# 5D;  6A AZ n I;   ܌Ƃ ar҂   d z( ˋ. F YL he k  ڦ < { > -zà ׃ ͆݃ ? 'd u7 (M 3 Ye9 zQ W k  Vq ( + r  )Ȅ kx΄  G P u T / 5 !M LS Fk &q ' &    ƅ e̅ I +L qp e k0 Ot= hC  I O U BX[ \a Jg 2n >{ '  6| 6̆ RՆ 6|  46 6| WB) O %l n 7 o   Dž# B> d^ l~ q ٘  / ׈ Y N &z+ QK /f  a~ 3 cՉ q 3 Z_$ Z_> Z_X Z_c Mu CS t QNj tӋ Q I t Q& Z_0 dU Z__ d Z_ d $ Ȍ Z_Ҍ d܌ $ Z_ WD % JC Z_M WDw Z_ Z_    (_ Z_ Z_ k9ǎ Z_ю jݎ Gi Z_ Z_7 Z_V Z_{ Z_ Z_ Z_ɏ Z_ݏ  q E Z_B Z_g Z_ Z_  (֐ Z_ Z_& Z_e Z_ Z_ d Z_ dё Z_ Z_! Z_L Z_k Z_ Z_ Z_ ƒ  qϒ vْ  T Z_3 Z_M Z_g Z_ Z_ x Г Z_ Q Z_t     q vÔ !kД q! Z_ d Z_* dI Z_m Z_ Z_ Z_ dޕ Z_ d Z_( Z_2 >a Z_{ Z_ Z_ Z_ t Z_. Z_M Z_s Z_ Z_ d— Z_̗ d Z_$ Z_. dG $e $o M!{  Z_ $ M!ʘ  Z_ WD Z_! d; Z_E da Z_k d  Z_ Z_ Z_K Z_v Z_ Z_Ś Z_ Z_ Z_0 Z_J Z_d Z_~ Z_ Z_ Z_̛ Z_ Z_ Z_ Z_> Z_H dg Z_  Z_ Z_{ Z_ Z_ Z_ Z_ Z_= Z_~ Z_ Z_ʞ Z_ Z_ Z_ Z_4 Z_I `j t   u Zt M!  Ÿ IП     u Zt& M!3  @ I] Z_w Z_  Z_ Z_ Z_( Z_2 dL Z_s Z_ Z_ d Z_ˡ d Z_ d Z_^ h  y 9    Ң yۢ 9     3 Z_R Z_} Z_ Z_ QΣ Z_أ  Z_% Z_? Z_Y Z_s Z_ Z_ ؋ Z_ ) Ɏ3 M!?  y H 3 M!  ܥ Ȇ C Z_& p0 $= m pw $  Z_ Z_ Z_ Z_ TF Z_e Z_ Z_ Z_ Z_ҧ ۧ  q v !k q!" Z_H Z_\ e  qn vx !k q! Z_ͨ 9ߨ I v( Z_2 dL Z_k Z_ Z_ Z_ Щ M!ݩ  I  - M!:  G Iq M!~  I 3 $ M!  ͪ I 3 $ M!   I& 3/ $B M!O  \ I JL uȫ Ztҫ M!߫  I Z_# Z_= F HP !k] q!~ 3 $ " M!  I z Z_ Z_( Z_G Z_` i Hs !k q! Z_ dͭ Z_    ; M!H  U Ic {    M!Ʈ  Ӯ I M!   I. 37 $A M!M  Y Io 3x $ M!  Iԯ Z_ Z_% Z_9 3B $U M!b  o I Z_° Z_ܰ Z_ Z_ Z_< Z_F d` Z_ g^ ʱ LԱ L L 9 C M$i s 5}.  9Ʋ в ֲ9 'RR) J/bG /:Kk u  ޳   & o0 :$V ` j. Q v9  ô9ٴ RR b0jP  qZ E Z_ R  ҵ ܵ 8  8'Ij"  " "ڶ " 2!5= G MGf|G 0XX۷ T`h | $z=[ a Gi  θ Z_ c <] c  +  9̹  ֹ  ݹ$ 9N8`T Z_\ / j { tp   Ϻ )    &  0L  V  ]p , һ d ܻ  -  7  =V l5  . G üݼ// 5 0=L] Q k  qV\  ƽk߽k Hz8 B Haw  ľ ξ :ؾ  ]5 <^z  տ ߿ 0 B: n@ Yo    - - 74 <> hDI]$sT  ff }  ?3 E_Tw Z_ b  6 b '6S ] c|*  )1 _ -4?Yz Z_ ' '  1H/ }9 DOa h` Z_    q  K/ 9 ?c} Z_  @   J  W$A K Uq {  @M 0 |_/pK U [|  Zk, P{3 ;| Z_ =  } Z_ / 5Vr Z_z  ^  0   #  *+ M1 C kNW*t ~  9  #  +B 0 iF kNP/ 9 C J_b  #i wqh " El kN h   $ R,M  \ L bt kN   ! Z_ :! !' '#. 1;6W !f !l~ kN " X" "  Z_ " 1#"#1 8 d@)n T#u  59 # # &; 5P* #1 Jb8 >@`a  $g} x s v E$ $ Jb R  v $& A %G b! x& Z_ $%  p%2 %F    = Y Z_a ;&p &v & `  '  V'( (  y' '0 90 V 'aD z ' (V ~ Z_ 1( }( . (4 M_ y M!  I b Z_ , Z_V M!c  p I~ b Z_ ) ؋ w) `*! o *!% +/ C+9 f+C![ +e C+o f+{A + + L,A + + L,A + + L,A2 ,<AU +_ +i L,oA ,\e   - p x _-e  - -' -- 7  .Ae^ -io S.  {. . . ?/ c/ /"@] /g /q !0{ / / !0 D0 g0 0 D0 g0' 01P g0Z 0`v g0 0 g0 0 g0 0 , g06 0<R 0\u 0 g0 0 0 1 :1 ]1 17 1A :1K ]1U 1_x :1 ]1 1 :1 ]1 1 :1 ]1 1- :17 ]1A 1Kd :1n ]1x 1~ 1 :1 ]1 1 1&"-; 1E 2O ;2Y2q ^2{ 2 27 Z_ Z_  Z_% 2+ P m 03y ? 3 ? 3 3 :4 ? 1 :4= ?H ` :4l ?w 4 4 5   =5  ?- T j     5 5 5 N 5X 5b 5h ~ 5# # )6# u6 )6+ $ 6.+ M ?Y= v 6 !7J a7T 7 7T 7 7k 7v T 7^v v 7v 7v 8 7{ S8 v8 " ; 8E ] 8g 8 8 8 8  9  ! = Z_E 49V 9\ 0s  9 # 9 : # 2: # 2: #3 2:= #Z 2:d #} 2: + W: : 8 : : B 9; ^; M/ ;9 ;? MU ;^ f| f < $< f G< < $< n  d $, J v 3 Z_ $   3 k< O= = x>   `% U?/ 2@9 A? `I Q `d U?n 2@x A~ `  ` U? 2@ A ` [A A "  LB B B " & 0C0 B: BD "a yCk Cv + C C D 9 9 (D KD B nD+ NI DU k] m Dw 1E k  D 1E k   $ [< gEL Ei Z_s d} $ t Z_ d $ Z_ 6 Z_& d0 $ F b Z_j Ep  F G  # G)I CZ ` Hj SHtZ SH  H uI I ) J4 Q JW k   +K WK, NI  zK( K.Q IW f Kp Kvi Qk L ;L} T  ^L( L2 O LY Mc  L &M  JM  mM  " M( D ` Mj >N M N N  O dO;W Oa~ O O( O P9 1P VP C& P0 P;NS P] QcNy HQn kQ Q R1 R;T R`y ,R {R R R S 5S XS }S, S5Rn Sx 'T~ JT oT6;3 T9OQ oQ  Tb   Uk @Uk @U$k= @UItb |Ul Uv V &V sV V V V W:Yr ;W tW  ; E !kR q!l Z_ Wc X Yc Yc Yc. Y;lX NYbl{ NYl NYz Y Y Y Y0M ZW 7Za~ 7Z 7Z 7Z \Z \Z4 \ZAZ Zd Zn Zt Z [ \[ [ [0 \: >\E] v\g \m \%% \% \% \.4 ]> h]H;d ]n ]xE ] "^P E^ j^P ^i p) ^3pP ^Zps ^y ^ 8_ [_ _ _ ` % Z`/ `5K `Tp ` ` ` ` Ja, ma6 a@\  bf /bq jb b b  b#/ c55LBeWxc=Qpl  Z_( 3c2O cY cc c c c -d -d6 -dC\ xdf dp dv d e }e e  e2 Of< tfG_ fi fo  g ,g ,g ,g6 wg@ gJf gp !hz nh h# h h# i< A+  6i1 SH a s  [ d  Z_  Yi  i   i  j . D a  @jk  ljq     j  j    j  k . D a  $kk  Pkq    .  sk  k @  @  k#  k- PJ  lT  ,l^ Pz  l  Ol [ ]  sl    . L h  Z_p  l  l  uA  .m   {m  m    m )n#Gh Z_ bn n uA n P Do ! {o(*HJd Z_l o{ p^ _pp^|8 Z_@ pO pU uA` 0qj }q q q +r8 drB rHe  Z_ r s  uA ks ) s3; L sSFsf Z_ 8t tz tz)Gc Z_k  uz Uu uA u u v. Z_6 PvE vK] uAh vn } 2w @ iw6 Z_ w xJ#2 Mx8\QcJ}hp Z_ x x} y} p Uy: yEb yl yr Z_ z _z  { I' {1 {;YX {b |lY { ?|df c| | |8Nk |u }{N $} G} j} }8QNk }u }{T  ~ 4~2$2# W~- z~7BT ~^ ~hB ~ ~MO uu  + W4Jg zq w   N ) D/H^{ g À  C  f $!F!c m s3>  ;P^ ^ $p=NS{p z ق+>!>B{g Z_  H    ރ     g  3 2L  V  ߄\ Du  T  Z_      @     %!  !$!:!W! ҆a! 6g!!!! ! !!N!" ·" "#8"N"@k" u" @{"H"S" c" "e"Q"j# # ވ#|8#TN#k# u# -{#### P# |##$#$ -$ ˉ3$L$Nb$$ $ $$*$$ =$ i$%1%7% A% ˊG%/Y%o%/% % %A%%K% =% i%]&'&{D& N& ԋT&m&&&  & R&&&& u& ''4'Q' [' a'z'N'' B' n'-'*': ( ( (L2(1H(We( o( u(i((i( B( n({(()  ) &)?)U)]) n) x) (~)) )) )) *6!* 3*lM*g******i+9+S+m+7+W++R+ Z_+ ^+[,r1, Z_9, ?,Q, kN\, b, Pu, ,, , ,,,, , O,- - O- 0- s?- ϑI-: f- p- Gv-L -N-i - j- -q -w . . ܒ. 3.QI. f. p. +v. .T. . N. z. .$/ / (/ 2/ O/ Y/ c/ / / */ / / N/ !/ !0 q0 0!/0A0) b04 |0 0 0 0)!0 0  03!0 U13!1 1 *1]!G1 ؕQ1 W1o!i1{1]!1!1!1 Z_1 '1!1 kN1 2 2 2!#2 @42 /?2!\2 f2 ߗm2!{2!22"2 Z_2 2;"2 t2;"2 p2 3a"3"53 Z_=3 1C3"Q3"o3 Z_3"3 Z_3 }3"3 ə3"3 3"4"4"&4"@4&#W4B#s4 Z_{4 j4 4Z#44 4l#44#5 ;5 g$5#=5S5#p5 z5 5#5 5 5#5 5#5 5#6 !6#>6 ԛH6#a6 ԛk6#6 ԛ6#6 6 6 ?6#6#6 b7#!7 +7 Ԝ57#Q7  [7 1e7#7 7 7$7 7 7$7 K7 $7%$8 n 8 *8%$G8 nQ8%$j8 nt8%$8 n85$85$8 8 8G$89G$#9 -9 =39U$N9a$k9 `u9 {9s$99s$9 9 ۟9$9 :Z#:x#6:#O:a:]$: Z_: T: z:  : :$: Z_; ;$%; s4; >;$F; W; Kb;$; ;$;%; ;%; /; ;A%< Ϣ< )<A%B< ϢL< R<A%h< r< >< a<A%< <A%< <A%< <J%= #=J%<= F=J%_= l=]%= = ͣ=e%=l%= >  >l%"> 61>%N> YX>%q> {> Τ>%> > +>%> > >%> ?  ?%$? E-?%J?%R? c? hm?%? h?%? h?%? ? ? ݦ?%? 0? @ %@%*@ r4@ ?@%W@ a@ ߧg@%}@ @&@&@ :@&@ ]@~&A A&2A<&OA ZAb&wA ~A,%AA%A&A&A Z_A gB ҪB @B B&/B :B V@B h!KB ͫQB `dB >nB&vB B B B&B B +B&B B&CP'5C ;C'UC'rC ϯ|C C'C C'C'C C'D i D D(;D HFD3(cD niDF(|D (D(Dq(D D D(DE(0E :E(SE YE(uE(E YE(E E YE(E sE(F F(:F DF PJF(nF(F F(F F(F F(F ۶G * G()G M3G r=G)YG cG nG)G G ,G)G dG0)GO)G G Gd)"Hd)>H QHHd)eH QoHd)H QHp)H wH ƹH)H H H) I [I "I):I DI ȺJI)`I iI)I)I #I rI)I)I I)J)0J 6J*NJ *hJ  nJ$*J(JO)J)*J 3J oJ)*K 3K)*8K 3BK)*[K 3dK>*K>*K K>*K K>*K KJ* L ͼL  LW*V  IV-aV .kV SqV-V V-V-V V V.V.W x#W.@W xJW.cW xoW.W W W-.W W 5W7.W W WB.X X %XB.;X 'DX^.aX`.}X JX Xo.Xt.X X.X. Y  Y.)Y.CY 3IY.aY{-Y-Y.Y YY Y Y.Y YZ  Z Z.)Z 3Z.LZ YZ/vZ ;Z Z Z/ZZ%/Z%/Z Z [ =[ % J> %>ҎG>   \>"\>> oH\>e oo\> oh>  y>ݏ  ,>  y ">: D J>` i>> A >֐> >>0  6?N?h + n?=G>Ǒ$? Q $?   $?($?D !N$?m !w !0? 2">?ƒ "ђi? " %#~?!~?= #G~?d #n~? #? # #?ܓ "$ G$?  $ $!?9 $C %I?_ 9%h?? \% %@Ք@ &&@ &&"@; &&G@` L&j &t!@ & &+@ 0'ʕ U'Օ6@ x' '6@ 'V@9[@U '_ G(em@r@ (@ǖ@ (@@ (!@9i?X?z@ )@@ԗ .)ޗ )@ )@( )2@K )X@u )@ )@ )ȘA $* G* j* AA3 *=AV *` Z+j$A + +.A , <,˙;A t, ,;A  ,UA/UAK ,UUAr ,|UA ,aA F-Ě -ΚnA -  .xA V.$ {./AG .Q .WAm .vAA /A֛ /A /A# /-AF /RAk S0u 0A 0 1A˜ c1՜ 1A 1 1A 2'BDB\ +2b2B{2B }2UB˝ 2֝wB J3B 3 B9BA Q V4[Bc  t 4~B 4B 4˞B 4B  5 5B9 5C 5MCi 6s 96~C \6 6C 6ş,CSCfCfC= 6GsCvC 7C N7Cՠ`=p=>C0KCC2;]SC Z_ " CΡ 7ޡ 7C kN !8 m8 C= 8GC_ 8iC 8C 8 P )9ʢC c9C  9 + 95DR  :\Du  :D C: y:Dã /D  : ; /D* J;4 p;> ;H/D` J;j p;t ;|KDD ;Ƥ ;ФD "< Y< <D% </ 7=6DQKDj =t =UD = ">lD J>˥lD J>lD J>oD( m>2 >< >FtD^ >h  ?r .?xyDDEѦ Z_٦ Q? ?E kN  ?   !@*E2 @ C X@N=Eg @q @wIEE Z_ @ç 6AɧE AE  A AE7 AA IBK lBWEt B~ BE C &C ICèEۨ C &C ICEE6EPFgF Z_ lC CF DũFͩ p ީ ;DAF '# O3 `F. D> DDyFZ kNe  Ek f9v WEyF EyF EɪyF EyF E    E*FG 3FQFj kFx  F F FƫFޫ F 1G TG   yGF4 G>FW GiF G 4HFFƬ jHЬ H׬oGG H I G8 (IB NIL qIV Gn (Ix NI qI.GFĭ.Gݭ I IFG IFG' I1FGJ ITIGl Jv /J RJNG uJ J JSGЮ[GG  Z_ J# K)G? 7TGq Kx 0   L VL H yL˯ H yL H yL H( L2 L< LFH^ Mh :Mr ]MxH(H M(Hΰ Mذ(H M,H M M' M11HI NS AN] dNc6HvGGGɱHH>HH8HS[Hp NvcHlHlH NtHȲ}H۲}H N}H N$}H= NGH_ Oi EOs hO}H O O PHƳH &PH &PH( &P2HJ IPT uP^ PhH P P  QHGǴMHմVHHH Z_& -Q5 yQ; ` O Q_ #R qR RI ;SµIеI޵II qSI*I8IO#IIIIֶbIoI|IJ2 Z_: SI SO  c eTs T T `UJз UַJJ K  K* V0K>!KL,KckJJJӸCKJJJ*^KF Z_N 8VTkKf q V{tK VKKӹKKK. Z_6 VG 0WX |W^Lp { WL$L1Lպ9L Z_ Q, H Z_P XXa Xr ,Y Y  h Z +޻ 3Z mZ Z + 3Z mZ( +A 3ZK mZQ +g Zq Z [ + mZ +˼ mZռ + mZ 2 B[" 2; B[E 2^ B[k D |[ [ I۽ P [ [ P \* G +\Q d\W m \w  d\ ž d\˾   \ 2] 6 ]@ ]F e  ^ O^  ^ ^ÿ O^ɿ     < \x Z_ ^  _ U_ _ ~ "` ` `&6 Ea@ aJ aT&l Eav a& Ea a& a a b& a &# a-&F aS-p Eaz- Ea- Ea? Bb ebG:MS b_Mu bi bt b c, =c6 `c@ cJb =cl `cv =c `c c c d `c `c#< `cIf 'dp 'd 'd Jd md)B dL dRh d Z_ d ؋ ke e WD `f( f f# ;g-(E fO fY(r f| f( qg g g( f( f( f,4I gS4l gv4 gE h 4hJ P% Wh/ zh5PK h[x h i 3i h i h i ii  i i%B iLe io i i i i( Gj2 j8c| j j j - k kk4 k> kH kRj kt k~ k k l 7l Zl k! k+D kQt }l~ l  l l   me6jS ,m] Pmg mqj ,m Pmj ,m Pmj m m nj# )n- Ln3z^w n n n  n :o/ bo9 oC oMe boo oy bo o o p )p bo bo&? boLo Lpy op p p p-a Z_ Z_ Z_ ؋ 8vL8 Z_@ pN mqT ^ qdL  L   r hr   rL 0  r hr L `  r* hr4LQ s\Ld  q fs{ s Ot tL t u ]uL t uL t# u)L? uI uY ucL vL vL vL uL uL6 uCLf =vp bvvLL vL vM" v-MF wT0Mq $w{ Iw0M $w Iw0M $w Iw0M ow w w0M7 $wA0MZ $wd0M} $wBM w wJMPM x$ Ax*PM@ dxPtMs x} yMM y ]zM y ]z M z%MNMsM zM zM zM zM! z+ K{5MQ n{[ {eM { |M (| M|M |MMN |MN6 |<`N[6Nc  s |}6N |6N |?N    } o}fN } }"pN> ~H <~S{Nk _~u ~{{N ~NN ~NLN0NLNnNO Z_  QO O   AO,  6 C<UOc 9l u [~ I v y 9    tO Z_% f+OvO O ΁OO o P"5P? I ÃS5Po ÃuPP (P  P P0 6PJPmPQ 3Q lQ lQ  lQ, I;+QX &b+Qz &+Q &+Q &EQ oQ P   HoQ& P 3 = HG{Qd oQ ЊQ  Q     Q   > $Q,  = G @QQi s @}Q @Q @Q @Q  zQ- z7QP z]Qv  ׌ QiT qTtT E|T#Q@ mJ PQjKQ  =QRQ sQ "Q>QZ dQ 4 R R BR   ZRR5RRQ [RRx RR ^R  oR ' LyR  * 5RM W ]Rs >|RR a ƒRR R+ 5RN ZRs "} qR  R  +S N  sS& /$SL&Sh Δr x6S;S @TSYS erSwS- 3SKBRiRS S S SS- 7SO YSq wSS   S   &S bS b'S@ bLSe o yS # HS  S ݘ S :!T=T\TuTT ]T$T $T %$T= C3Ta3T~ ]3T ]3T ]@TT   T,V>`QXoQsQQJTQRT x  ." I&TBUf UxU  ix x  h( h7 E b"P #[ h *t  ' ` B ̦ ]  x   Ŗ }& \2 m\6 K   ڜ  (Dg&g.hLTbjgxghMMQQhQ$R5$=<H<PD]DeQ.9.99D9<< D'</DJRRg]gehoopoop#19oGoOpowMMQQpQ$R$ <<D,D4QQ.Y9v.~99D9<<D<DR!o,o4pRZemzccyy8 @KS`h"c"z5z5F Fz0G8zTX\zg ȵ|hzhz*2=Eckv~   +! +) /4 /< ?G ?O VZ Vb _m _u ` ? T + / / ? 9 ? 9 ?/ `7 }B }J HU H] L{ ` z z I I L p   p z z ) 1 > F Q Y f n y          , 4 ? G d l w         5 G  . 56 GQ LY jd jl w   L f f    \ k \j%j-kHkP[czz:B]e'BJ-Unv- -- -- <7DfO$h7pfTfTef}& ?}Gbju}6>I'bj*1)1<D_gr4DD'DDz1'9DDDLW_}HcczHOKS (0KS^f  "@HS[fny11$,JR]epx,, '?2?:W_jr? ?@0M8WDWL^X^`|Hpzzk"*6>Zb}BN%-8@^fqy *2*MU8`8hB'8'**448'A AB0B8ZCZKhiBqPM^MPP^Mggh"h*EhMh}p}}  % - L T _ g         ! !!!:!B!M!U!`!h!!!!!!!!!!!"%"5"=" X"`"v"~""" """""""#( #(#)1#9#"T#)\#3g#3o#9#9#G#9#J#P#Z#Z#` $`${${'$E$M$X$`$ k$ s$ $$$$ $ $ $ $& % % $%& ,%A 7%A ?% J% R% p%& x%E %n % % % % % %2 %l %l %n %n & & & ;& C& N& V&u a&u i&} & & & &p &p &} & & & &p ' ' ' %'u 0'u 8'} V' ^'' y'( '/ '( 'p '0 'p 'D 'V '(D (V 1(~ 9( D( L( W( _( }(~ ( ( ( ( ( ( ( ( ( ) )1)1)=()=0)e>)eF)Q)Y)w))))=)=)W)W)\)\)e)e)))* ***I***2*=*E*`*h**s**{*e*e*h*h***I*I****=+e+!&+5C+!K+5f+!n+1y+1+=+=+e+=+T+T+[+=+A+A,D,D,T',T/,[L,=T,[_,[g,e,=,e,H,Q,Q,T,T,[- ---)-[1-f<-xD-_-g-s-{-*-e--8-e--e- .|..I$.f0.f8.S.o[.f. {... ..I.[.f.x...I /[/f/x$/?/G/c/k///////I////I!0)0ID0L0Ig0o0*0000I00I0011I:1B1I]1e1%11*11I11I1-162-26;2-C2I^22f26222622272 2 2 2 2 2 3 3 03 83 C3 K3 V3 ^3 i3 q3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 :4 B4 M4 U4 `4 h4 |4 4 4 4 4 4 4 4 4 4 5 5 (5 ?=5 E5 P5 X5 c5 k5 5 5" 5 5" 5 5 5 5= 6= 6 )6# 16 <6 D6 O6 W6 u6# }6= 6+ 6= 6= 6v 6 6 6n 6q 6q 7v !7= )7v 47 ?97 A7 L7 ?a7J i7k t7 |7 7T 7c 7T 7c 7v 7 7 ?7 7 8 ?8v %8 08 88 S8{ [8 v8{ ~8 8 ?8 8 8 ?8 8 8 8 9 9 9 ?49 <9 G9 O9 Z9 b9 9 9 9 9 n9 n9 x9 9 v9 #9 v: #: x2: #:: vW: +_: al: at: e: e: x: +: e: 8: f: 8: P: P; X; X; e9; BA; M^; Bf; M; M; X; M; P; P; X; P; X< f < v$< f,< xG< fO< xk< s< "~< "< V< V< [< [< a< a< f< f< k< k< |< |< = = = = )= 1= O= W= "b= "j= u= }= = = "= "= V= V= [= [= a= a= j> j> k> k> n)> n1> ?> G> R> Z> x> > "> "> V> V> [> [> a> a> j> j> k> k> ? ? ? $? /? 7? U? ]? "h? "p? V~? V? [? [? a? a? j? j? k? k? ? ? ? @ @ @ 2@ :@ "E@ "M@ V[@ Vc@ [n@ [v@ a@ a@ j@ j@ k@ k@ n@ n@ @ @ @ @ A A ""A "*A 5A =A [A "cA VnA qvA tA tA A A A A A "A %A %A +A +A 8B 8 B VB B )B 1B LB "TB VbB jB xB B B "B VB B B B B "B VB C C C 0C "8C VCC KC VC ^C yC "C +C "C +C +C 9C +C 9D + D 9(D 90D VKD 9SD VnD BvD VD ND VD "D VD kD nD nD D E E E 1E "9E VDE kLE gE [oE a}E E E [E aE E E E E E F FFF+F3F>FFF8TF8\F;gF;oFQ}FQFFFFFFFF FFFG G .G 6G AG IG WG _G jG rG G G G GGGGGG GGGHZ #H /H 7HSHZ [H iH qH |H H H H H H H HH H H H I I #I +I 9I AI OI WIuI }I I I IsIIII I I I J J J J .J 6J DJ LJ ZJ bJmJuJJJJJJ J J J J J K K +K 3K} >KNWK _K} zKI KP KI KQ KW Kk KQKW Kk Lk L} "LT;Lk CL} ^L fL qL yL LxL L L L L L M M &M .M JM RM mM uMMMMMM MMMM MNNN#N>N FN RNsZNfNnNN NNNN NNN8O  OOO*O2Os?OGOdO lOswOOOOsO(OiOiOmOmOsP(Pm1P99PsVP9^PQiPQqPY~PYPmPCPNPCPNPNPYQNQQ#QQ+QYHQQPQYkQsQQQQQQQ8QQQQ8RR,R4RBRJRUR]R{RRRRRRRRRRSS5S=SXS`S}SSSSSSSSSST T'T/TJTRToTwT8T;TQTQTTTTTUb UU"U@UkHUVU^U|UtUUUUUUUUtUV V&V.V9VAVNVVVsV{VVVVVVVVVW W;WCWNWVWtW|WWWWWWW=W=WQWQWVWVXXX(X0X;XCXkQXkYXpdXplXzXXXX=X=XcXcXlXcXX=XeYcY(Y=0YeNYlVYaY=iYeYzY~YzY~YzY~YYZZk7Z?Zk\ZdZkZZZZZZZZk[[ $[ ,[$7[$?[k\[d[$o[$w[k[[%[[ [ [[[[[%\!\>\F\ Q\ Y\v\~\\\\\\\\%\k].#]d0]d8]hC]hK]kh].p]h];]k];]S]S][][]h]E^P"^E*^PE^PM^[j^Pr^S}^S^[^S^[^p^^y^____8_y@_[_c____________``&`1`9`Z`b``````````aaa%a-aJaRamauaaaaaaaaaaa bb/b7bBbJbjbrbbbbbbbb bc#c53cl;cFcNcYcac>oc>wcAcAcdcc>c[cacacdcc>d[dd-d5d>@d[HdaSda[ddxdddddddd>d[dde#e0e8eCeKe>Xe[`ed}eeee>e[ebeeeef fff*f2fOfWftf|fffffffff gg,g4g>?g[GgaRgaZgdwgg7g7g;g;g>g[gdgg;gh>!h)h&4h&i[Yidailiti.i.iidi|i|iiiiijj%j@jHj Sjljtj jjjjjjjk k$k,k 7kPkXk sk.{kkk.kk@kk@klPl],lP4lZOlPWlZsl]{lllllllllllmm.m6mAmImWm_m{mmmmmmmmmmmn n)n1nrFr drlrxrrrr rrr r7r7rbrbses 's72s7:s`Es`Mseksss7s7sEsFs`ss7s7s`ss7s7tbtbte8tf@tuKtuSt^tfttftytyttttzttt uuu$u/u7uUu]uhupu{uuuuuuuuuuvv"v-v5vPvXvcvkv2vv2~v5vvvv0v0v5vvvwww02w:wFwNw0iwqw|ww2w2w5w6wEwEwnwnwox6 xIxIxm'xm/xoMxJUxm`xmhxoxpxxxxxxpxxxxyy}&y2y:yUy}]yhypy{yyyyyyyyyzz*&z*.z9zAz_zgz*rz*zzzzzzzzzzzzzzzz{%{*0{*8{wC{K{V{^{i{q{|{{{{{I{{I{{Y|f|Y$|c?|YG|cc|fk|||||||||N} }$},}G}O}j}r}}}Q}}}}}T}}~ ~~$4~ <~W~2_~z~2~~B~O~B~L~B~LOu+u3>Wu_z N +DLgozÀˀրހ'CKfn!!ȁӁ!>";>CO^^fqN^{ق{L"L*SHP[cPnPvSÃ2ރ2%19DL2gozLLS2DƄ߄2DT kk(0K>KFQYgoGzGRTkkMƅM΅RTkkR%-8AIT]e$p$҆چ# $G6>IQ#\$dGN·և##@%G@@HHcSkjvQSjjňTވj -5PXc|KNˉӉK/*"/=E/P1iq|//ˊӊ./K/"K=KEsPiKqs{ԋ{܋ &.9RZu}ŌЌ،N'BJiU*nvi:i1:ōKЍK؍iWiW'hBiJUnivŎs G (0s;CG^RfZqZyqqrrŏЏ؏   $6>NVemxʐҐݐ '/:B M U s {$ $ ( ( (!(!)!ϑ ב! !   )!: # .NG: O ji rp i q w  ÒQܒw    T+ 3 N V!a$z ! ! ȓ!    * 2 N V !q !y! !!)!ȔQ!ӔQ!۔!!! )!:!:!$!/!7!U3!]Q!iQ!q!3!:!:!!!!ؕ]!!]! n!'!/!:!B "M "U&"`&"h+"s+"{2"!!! " "Ȗ&"!!! "  "&"/!7!B!J "U "]&"h&"p+"{+"2"" " "ė "ߗ! "2" X"X""("0";"C"N"V"t;"|X"X"""";"ǘX"ҘX"ژ""""" ""1"9"D"L"W"_"}"""=#=#A#ə"љ""""@#"&"1"9=#D=#LA#jB#rU#}U#$$$B#Y#ɚY#њ$ܚ$$Z# $$$;#C$Ng#o$#$#$ԛ#ܛ$###$#?#G#b#j$#$$$$$Ԝ#ܜ$$$ # $1#9$D$L$Y$a $l $t $#$#$ɝ$ѝ$$$$ $& $.$K $S$n%$vG$%$G$5$G$ɞ5$F$G$ M$M$!T$=G$E$`a$hs$sa$s$s$$Ÿ ۟s$$$$$~&$~&,&:&B&M&U&s${$$$$$$% ]&ʠ{&נ&ߠ&$%%U&&{&.&K$S$^$f~&q~&y&&&&&$ȡ$,%U&{&~& ~&&/%7+%B7&J<&`<&hU&%U&{&~&~&&ϢA%עU&A%U&J%#o%>S%FU&a%iU&J%U&S%d%ͣS%գU&l%%l%o%6o%>%Y%aU&%%%%%U&Τ%֤%%U&%%+%3%>%F%S%[%f%n%%%%%å%˥%%% %% %(%E%M%h%pU&% & &&&U&ݦ%&%&%%-%8%@&M&U&r%z%%%%§&ߧ%%%&%&:$&B2&]&e2&~&&$U&{&~&̨~&Ԩ&$U&b& ~&~& &.&6&A&I&g&o&z&((0(0(3(3(N(̩N(ԩ)ߩ)))))**& *1 *9)*G)*Ow+Zw+b+p+x+++++++Ҫ&ڪ&&+++&&&1&9+V&^&j&r****_+t++ͫ&ի&&****_+t+#+>&F&R&Z_+et+m+&&&((0(Ĭ0(̬3(׬3(߬N(N()))))))1*?*G *R *Z)*h)*pw+{w+++++++­+ͭ+խ+&_+t+++&3z'Az'I'T'\_(j_(rc(}c(_+t+++++Į+&_+t++P' z'.z'6'A'I_(W_(_c(jc(r_+t++++++ϯ'ׯ0(N(_+t++'#(1(9 (D (L(Z(b(m(u0(N(_+t++'ǰ(հ(ݰ ( ((( ((0(-N(5_+Ct+K+i'q (~((5)N))))ű)'(( (  ((#(+(9(A0(ON(W(e(m({(((_)_)c)c))Ͳ)ղ))*** t++"+*+H(P0(n3(vN(q((q(ų((*t++(%*3t+;+Y(a(o(w((_)_)c)c)))ɴ)Դ)ܴ*t++((%5)-N):)B)O)W)s({*t++()ŵ)͵*((( ((5)*)2)P(X(f(n(y(5)))(5)۶(+)+)/)/) 5)*(2/)M(U5)r(z))))/))Ƿ))))),)4)?)G)d)l)O)W)W)c)c))Ƹ)θ*O)_)_) c)c))+)3*Qd)Y)wp))))))ƹp)ι)))))!)))6)>)[)c)))))Ⱥ)к)ۺ))))#)+)9)A)L)T)r)z))))))ɻ))*  *)*3)*;*It+Q+o)*w*t++>**ͼJ*ռ*****J*$*?W*G*dW*lo*wo*w*w**a*l*ֽa*޽l*l*w*l*&o*1o*9w*Vo*^w*y*_+*_+ž*;_+*** **_+:*B*]*e*******Ͽ*׿*****<*D*O*W*t*|**_++_+,+_+w++,_+4t+?X_+`t+|+++>1>1A1...|//00 ;1$+,R,:R,BV,MV,U,c,k,v,~4-4-8-8-0000A1+++ ++---5-@-H+1V+1^/1i/1qA1,,R,R,V,V,,,,,4-4-8- 8-0 0(030;A1Yr,a -m'-uA1r,,,,, -'-A1,, ,,",* -8'-@A1^,f,sB-{z---`.j.j.n.,,,,,  -'- 9-.9-6-D-L-W-_ .m .u..j.j.n.n..... / /$/$/7/7/;/$;/,A/:A/BM/MM/Ur/cr/kv/vv/~////0000A1, - ----5-@-H'-f'-n/-z/-8-'-4-4-8-8-0000A19-0,04A1R9-Z0h0pA19----- . ...j.j.n. n...'.2.: /H /P$/[$/c7/q7/y;/;/A/A/M/M/r/r/v/v/////00A1;B-Cz-P-X-e`.mj.zj.n.B-00A1P-`.q..{--+-3->-F-Sq.[.x{------q..--- -- -+-3-Q-Y-t-|--------- --.-6-S-[-f-n----....`...- .) .1.<.D`.R.Z.x.`..Y.Y.].].`..].-.`.5-.=E.HE.PM.]M.e].7.B.7.B.B.M.B.E.E. M.'E./M.J`.Re.`e.hn.sn.{q.`.j.j.n.n.q.t.. ..3.;.Y.a/m0u0...|///00. / / $/$/7/,7/4;/?;/GA/UA/]M/hM/pr/~r/v/v//00.//$/;/C/NW0_0j/|///00/ / /$/$/7/ 7/;/;/&A/4A/<M/GM/Or/]r/ev/pv/x/00%//00%/|///0"0=%/E7/S7/[;/f;/nA/|A/M/M/r/r/v/v//002F3SN6[6x|22|2222222222"2*252=2Z2b22222222222"2*25N2V2q2y3N662333N6623l6652=23K23S63^63f3tl6|6263 373 3!3!3)3 )363/373T3\3w3)33!3!3)3!3)3M33 l66&?M3G3Rl6Zo6eo6m6_33p33y333333&y3.3I3Q3n3v3333333333 3(303;3C3`3h333333334 &3.4I4Q4\u4}44N64N614E414E46E4>W4IbE4jW4i4s4i44t4{4{44t4 4'4/4:S4[4v4~44444 4444'@4H4c4kN6v4N65N6)5$5%5 N6.-%55N6Pb5XN6c|b5s555*555515"5=5E5Pi5q55656 66  66*-62N6=V-6^N6yQ6l6o666668899  9 9$9*$92'9='9EB9SB9[J9fJ9nR9666K9K9R9666K9K9R9!6)646<.7G8O9j6rK9}K9R96B9G68899 9  9$9!$9)'94'9<B9Z7bB9})789B9)789B9378 9B91D79K7TD7\K7wD7R7R789B9W7777789B98W7@7K7S8`9hB9e77e7z7z7|7|7777 o7|7/o77z7Bz7J|7g|7o7|777777789B9#7+787@7K7S8`9hB977777777777"7?7G7b7j77777777T89$97 T8.96$9T7\T8g9o 9z 9$97T8788T88O8*O82S8=S8ET8b8jS8&8T8&8>8>8F8F8S808;808$;8?;8GF8d;8l>8w>8F8>8F8a88$9B9a88 $9'9'9'B9Er8M8j{8r88888{88888888'8/8L8T8q8y88888888888'@8H8c8k8v 8889 9$9'9B9#R9+n96n9>HBIHBQ.C_.Cg@Cr@CzCR9r9r9kBkB.C.C@C@CC i9C C(CFi9Nn9\n9dr9or9w::::%;%;););2;2;:;:;>;>;I=I=M=)M=1CO ;W;b#=j/=9CCC:;2;X=X=_=_=C#:+:Fj:N:Z:b;n2;vCj:::::::;;;;;2;N<&N<.<<<D=R=Z=h=p={=2=2=5=S=CCSCC::: : : :% :- ;; ;C ;Q ;Y ;g 2;o N<} N< < < = = = = = = 2= 2= 5= S= CC SC C= :E :R <Z <g |=o =| *> F> > > > > 0? h? ? ? [@ h@ h@ l@ :% :3 :; :I :Q :_ :g ;u ;} ; ; ; 2; N< N< < < = = = = = = 2=% 2=- 5=; S=C p=Q p=Y =g =o =z = W> W> [> [> > > > > $? $? y? y? }? }? ?! ?) @4 @< h@J h@R l@] l@e .Cs .C{ 1C @C CC SC C ; %; %; ); ); 2;2;;*;2;=;E<S<[<f<n+=|+=/=/=BBBB9C9C=C=CC2;:;:;%>;0>;8I=FI=NM=YM=aC#=/=;;;;;<<<<+= +=/=/=%B3B;BFBN9C\9Cd=Co=CwC;2=S=h=h=o=o=CCSCC<=6N<><J=R2=^S=fCCrSCzCN<<=====2=S=CCSC C'</<==E=S=[=i=q2=S=CCSCC<<|==*>F>>>>>#0?+h?8?@?M[@Uh@bh@jl@<<=====2=S=p=p== ===%W>3W>;[>F[>N>\>d>o>w$?$?y?y?}?}???@@h@h@l@l@.C.C1C,@C4CCBSCJCh5=pI=~I=M=M=S=p=BBBB.C@CCC SCC2p=:.CH@CPCC^SCfCp=====W>W>[>[>>>>>.C@CCC+SC3CQ|=Y=f*>nF>{>>>>0?h???[@h@h@l@p===%=0=8W>FW>N[>Y[>a>o>w>>$?$?y?y?}?}???@@h@h@l@l@.C)@C1CC?SCGCe|=m0?{0?.C@CCCSCC=>>? ==='=2=:*>H>P>n=v====*>>>=*>= > >$>"$>**>H=P$>k=s*>=>>>>$>=>= >%>->J>R>]>e>>>G>O>O>[>[>>>? G>W> W>([>3[>;>I>Q?o\>w>h>>>>>>h>>y>>,y>4>?>G>T>\>y>>>>>>>>>>>&>A>I>W>_>j>r>>>>>>>>> > ?+ ?3 $?Q $?Y .Cd @Cl CCw SC C C C $? .C @C CC SC C!$? !y?!y? !}?+!}?3!?A!?I!@T!@\!h@j!h@r!l@}!l@!.C!@C!CC!SC!C!0?!h?!?!?![@"h@"h@"l@2"0?:".CH"@CP"CC^"SCf"C">?"[@"o@"@"i?"q?"q?"}?"}?"?"o@#@%#i?-#y?;#y?C#}?N#}?V#?d#o@l#@#~?#?#?#?#?#?#?#?#?$?"$?*$?G$?O$?Z$?b$?o$?w$?$?$?$?$?$?$?%? %?%?%?9%?A%?\%?d%?r%?z%@%@%[@%@%@%?%?%?%@%@%[@&@&@&&@.&[@L&@T&Q@b&Q@j&U@u&U@}&[@&@&U@&!@&[@&!@&9@&9@&A@ 'A@'U@0'+@8'6@U'+@]'6@x'6@'A@'6@'9@'9@'A@'9@'A@'[@(`@(`@(l@!(l@)(o@G([@O(h@](h@e(l@p(l@x(o@(r@(@(@(@(@(@)@)@.)@6).CD)@CL)CCZ)SCb)C)@).C)@C)CC)SC)C)@).C)@C)CC)SC*C$*A,* AG*AO* Aj*Ar*A*A*.C*@C*CC*SC*C*A*PA*PA*TA+TA+.C+@C&+CC4+SC<+CZ+Ab+TAm+TAu+~B+$A+UA+$A+9A+9A+;A+;A+>A+>A+UA,.A,;A<,.AD,9AO,9AW,;At,;A|,DA,;A,>A,>A,DA,>A,DA,UA,.C -@C-CC -SC(-CF-aAN-A\-Ad-Ao-Aw-.C-@C-CC-SC-C-aA-A-nA-A .nA.A.A$.A1.A9.AV.xA^.A{.xA.A.A.A.A.A.A.A.A/A/A&/B4/B1BF1Bc1Ak1A1A1A1A1B1A1B1B1B2B2B+2B32.CA2@CI2CCW2SC_2C}22B2B2B2B2B2.C2@C2CC2SC2C2UB3.C3@C3CC$3SC,3CJ3wBR3B`3Bh3Bs3B{3.C3@C3CC3SC3C3B3.C3@C3CC3SC3C4C4C4C%4C04C84CV4B^4.Ci4SCq4C|4C4C4B4.C4SC4C4B4.C4SC4C5B"5'C05'C85+CC5+CK5.CY5SCa5C5B5+C5B5.C5B5C5C5C5C5+C6C6C96CA6C\6Cd6C6C6C6C6C6C6C6fC6C6C6C7C7C(7C07CN7CV7Cd7Cl7Cw7C7C7C7D7D7E7C7D7D7E7E8E!8C)8D58D=8EI8EQ8Em8Cu8D8/D8CD8CD8JD8D8D8C8D8D8E9E9E)9C19YD>9YDF9Ec9Ck9Dv9D~9E9C9D9D9D9D9OD9OD9lD9D:D :D(:DC:DK:/DV:D^:Dy:D:UD:iD:D:/D:CD:CD:JD:JD:KD:D:D;/D;KD';D/;DJ;/DR;>Dp;/Dx;>D;/D;>D;/D;KD;D;D;/D;JD;D<D"<D*<D5<D=<DY<Da<Dl<Dt<D</D<JD<D<D</D<JD<D<D<D=D=D=D7=D?=DN=DV=Df=Dn=D=D=D=KD=UD=KD=UD=  =UD>iD">UD*>iD5> J>lDR>Dm>oDu>xD>oD>xD>oD>D>tD>xD ?tD?xD.?tD6?yDQ?EY?9Ed?9El?yEw?yE?E?E?9E?9E?tE?tE?E?E?9E?9E@tE!@E)@9E5@9E=@tEX@E`@9Ek@9Es@yE~@yE@E@=E@tE@=E@tE@E@E@EA FA FA F6AE>AEIAEQA F\A FdA FAEAEAEAFAEAEAEAEAEBEBEBE%BE-BEIBEQBElBEtBEBEBEBEBEBEBEBEBECE CE&CE.CEICEQCElCFtC5FC5FC[FC[FC`FCFC5FC5FC]FC]FC`FDF D5FD5F D[F;DFCD5FND5FVD]FaD]FiD`FD`FDFDFDGD`FDFDFDGDGDG E`FEFEF'EG3EG;EGWEF_EFqEoGyEvGEvGEGEyFEFEFEGEGEGEFF2GF2GFG3FF;FFFFFNFGkFFsFF~FFFCGF[GFGFFFFFFFFFFGF GFGF1GF9GFTGF\GFyGFGFGFGCGG[GGGGFGCGG[GGGGFHGH[GHG4HFKHLKHTKH_KHgKHuKH}KHKHKHKGKGKGKHKGKHKHLH LG(LEH3LH;LHVLH^LEHyL HLHL HLHL HLHL HLHMHMH:MHBMH]MHeMHM(HM>HM,HM5HM,HM5HM,HM>HN1HN5HAN1HIN5HdN1HlN6HN[HN}HNlHN}HN}HNHNHNHNHNHOH!OHEOHMOHhOHpOH{OHOHOHOHOHOHOHOHPH PH&PH.PHIPHQPHuPH}PHPHPHPHPHPHPH QHQH-QH5QI@QIHQJSQJ[QJyQHQIQIQIQIQIQIQJQJQJQIQIQIRI#RI+RVI8RI@RILRITR JqRIyR(IR(IR0IR0IRVIRIRIRIR JR0IR9IR9ISVISIS J;SICSVINSIVS JqSIySVISIS JSJSKJSKJSWKSWKS]KSJSKJTKJTJTJ!TJ,TJ4TXK?TXKGT]KeTJmTJyTJT8KTKJTJTJTJTJTRKTKJTpJTpJUxJUxJUJ(U8K0UBK\ F\ d\ l\ w\ \ \ \ \ \ \ \ \ \ \ ] ] ] 2] :] G] O] Z] b] o] w] ] ] ] ] ] ] ] ] ] ] ^ !^ ,^ 4^ O^ W^ b^ j^ ^ ^ ^ ^ ^^-^-^^^ __-_-$_/_7_U_]_$h_$p_&{_&_}_}_______-_-__`"`*`e6`e>`iJ`iR`t^`tf`}r`}z``````````a- a-aa'aEa-MaZabaa-aa-aa-aFa5amatbxbe'biBb5JbFeb5mbFbMbebSbebibtbtb}cc(c =cEc`chcccccccccd d'd/dJdRdmdudddddddde0 e0ee'e2e:e2Ee2Me3kese7~eye}eeeeQeYe ee)eeAfAfff'f/f(;f(Cf3`fhf;uf}fQfYf ff$f(fAfAfyf(g0g0gI;g(Cg0Ng0Vgyqg4ygSg;gygggkg4gAgAgyh;hI4h;}NI}NQ}No}?Nw}JN}bN}N}fN}N}fN}~N}~N}N}N}N~pN~{N<~pND~{N_~{Ng~N~{N~~N~~N~N~~N~N~N~NO =O=O qO+qO3tOQOY=Od=OloOwoOtOO=O=OoOO=O=OqOqOtO AO(oOCAOKMOftOnOyOQQTOPȀPЀPۀPPPPP QQ"Q-Q5QCQKQVQ^ETlETtITITTTTTT΁OցOOOOP PP P(T6T>TITQToOwPPPPPPPPɂQׂQ߂QQQQQQET)ET1IT<ITDTRTZTeTmT5PPQTÃ5P˃PكPPPPQ T(P0P>PFPTP\PjQrTPPRARRR̈́&SՄ5SPPPPP%P3Q;QIQQ!T\!Td$TrRTzTTTTTPƅPPPPP PQ3Q;TFTNTlQt+Q+QjQjQnQnQQQƆQцQنSSSS.T.T2T#2T+TIQQ+Q\+QdjQrjQznQnQQQQQSćṠSׇS߇.T.T2T2TT&+Q.jQ<jQDnQOnQWQeQmQxQSSSS.T.T2Tʈ2T҈TEQjQjQnQnQ!Q/Q7QBQJSXS`SkSs.T.T2T2TToQ‰QЉQ؉QQSSS S!T"RT*THoQP!T[RTcTnTvT{QQRTTЊQ؊QRTTQQRT"T>QFQSRT[ThTpT}TTQQRTtT̋tTԋ{T{TTQQRT#T@QHQURT]tTzQQRTTQQ׌QߌQQQiT%T0 EtTMTX mQuQKQQQQQʍQ؍QQQQQQ$R=QEQPQXQsQ{!TTTQ!TŎT͎TQ!TTTTT4R<ARHRPR\&Sd5SR!TTTRď&Sҏ8SڏtSBRJR JRQR QR(R58S=VSZBRbRm8SuVSRRR^RRːRӐRސRR^R R'oR/RLoRTR_RgRtR|RyRRyRƑRRRRRR!R>RFRaRiRwRRR&SVStSƒRΒ&SْVStSR&S"R*S8S@#SK#SS&SqRy#SR&SR S̓ SԓSS#SRS+R3SNSVSsS{ S SS SSΔ&S֔.S.S5S5S8S&S%8S@;SHVSeYSmtSwSSSSĕS̕SוSߕ!TTTSS)S1S<SDSRSZ!TeTmTxTTS!TTTĖT̖TS!TTT&S.!T<TDTbSj!TxTTSTTTƗTΗ!TۗTTST#S+!THSPS[ScTpTxTSSS˜SݘSTS SST:SBT]TeTsT{TTT$T.T™.Tʙ2Tՙ2TݙRT$T.T.T2T$2T,3T:3TBRT]3TeRTTTVTTšTʚT՚TݚT  0@P ` p '5fu08@H` h p] xk    ( exIRfo0 8 n@ sH x` h [p ax  " 9   k q  Q b(08PX`hD0?27`L[ (0@HPX+p}x-( (0$86PX`h3!A!u!!!! !( "@!H!P "X"p;"xI"k"z"$$$$%&U&]&%&U&]&0%8&@U&H]&`&h&p&xX+w++&&D+O+&=+w+++ |U;U\u܏$q(i'm(拴sg/xRYXDZWb9`yK@o%/i j)>Ҥ&>4d2r. y"h pTLIfHd~4"ooysV&\L~?1rQ(Qp)0[1Nk5F=V؈Ao1:96F: cucVD.dD&zv` mFw4Y?hFhB' 7&} S8g2nWƲ2N+2Ϋl^ͬhǰ#s{[OJ 6Y&"l~)d@M |jjy3<,Sv44<G:&pFJ2Jו.f8kK(RD4n ز).=v:p #/&j<,UI\Y?lݎvj8-R;IcdK Gҥ^\DƁjZ /K瑱>Wxޏ5qD봬wP( q&N>$fÐmWU7[|%>dEU30/E,a;$r\C sh#ֳXS(u916>e CD<:VZ4`y"iyL1f-7H@D3>V}<@Κjo4r)؈ihY Nq2y^ٷb=n ^HV3N!2~ ]&a8TIK n#QY@ BRyG*O"\ v.d𝿤n:%?+b'tu5[߬k 5bzHztuPj5.rg2T`rK9}&lDJ  3%,K$v<*5h\cN`SI,u+.Xq lHgH E'/9GWsbb(b4$r& uM%+o-)W2IC~{M8nE HJ#1K:e9^$I>Ie 6)/t1zD:&/5oQRRs\ksd h{eff` tuT%GrTd h@ Hn0l- t^nJ<<ٷL2[J+U ũI_P}d濤sEv;]$.u޴ÞkűqEFlb.nNl5{LOw|9a\NZm$q vNIUm@zr<Ow,3b+1~,%:L*v>h'q7z=w bkb}5Hف2RfiSmv|ĢB'n-l]|`9f|m+JWԄH%z#MW U>d(yKu<۩г:H-i$U'NB<80,:np q%E &ne=8{伎XqVkǸ"\um/UOUP$Rg"SjL)Z"EW>BhPX"-!FPFdOzv+=мT3I'2Odoyjq'{}uGyQ %+p_jNZWWcuT_J~\h]8(/꾒O=_=N0ݰrƬ9H_߲C\+X=o ! `PיASS b V/~`s3! }87Ŋ>zbe92HsxBη]Hujs9 D[I&?Hݶ@nA|WEjË @O=jj.y%O%hh)h\=d(2`[8ld"ݢQ+ w!բT#]_,[6">q+Ns3mU&Y?)GFt˷d\~ ֽ~-؁x*EZ\LT V:|}FKUN\2̠3>([1u=w@r61,tY>@]=EqʍC(&8ly (3AlT,ros&}JBD%8orXgicI!g '_ Vq Gv eʥXڵ[ck仃ߓ^)>:à\܋5|;2|Q&'xQgf15///G_#96v.ݡf lT\fdsg]qH7p siDWЀɖzLFe,^vMuܷFa<Y͎ѡt 6VO5[2 GmLLlQk]'s;எt\}cmdRlݘ=yλ5uZ4l=F4 !zǴ۽7:?dVt[^U´nzm:h;,n W'{hMo mk`AE;P=1cНeu1zm 'YBelu`H̺mScc4ΨkCy֎B(U5zLrGTb6j132N 9ȩHgs7m 61m&0-9V*% VE-:M mY[dJ chemeq-2.12.orig/README0000644000175000017500000000727312244451217014730 0ustar georgeskgeorgesk ------------------------------------------- chemeq V2.12-1 ------------------------------------------- (c)2000-2013 G. Khaznadar ------------------------------------------- chemeq is a basic standalone filter written in C language, flex and bison. It inputs strings like: 2H2 + O2 ---> 2 H2O and can outputs LaTeX code and messages about the equilibrium of a chemical reaction. example:~/src$ echo "2H2 + O2 ---> 2 H2O" | chemeq -lc 2\,H_{2}\,+\,O_{2}\,\rightarrow\,2\,H_{2}O OK example:~/src$ which means : 2 molecules of dihydrogen react with one molecule of dioxygen, yelding two water molecules. The first line, "2\,H_{2}\,+\,O_{2}\,\rightarrow\,2\,H_{2}O" is a translation of the equation in LaTeX language. The second line "OK" means that the equation is well equilibrated. When the input is not successfully parsed, the filter fails with the exit code 1. example:~/src$ echo "2H^2 + O2 ---> 2 H2O" | chemeq -lc ERROR parse error at 4 example:~/src$ NOTE : syntax of ions. allthough in some cases, shorter expressions are sucessfully parsed, it is safer to consider that an "up arrow" (^) must be put before the charge symbols of an ion. Examples : H3O^+, Fe(CN)6^4-, OH^- NOTE : square brackets Square brackets are allowed outside of a simple chemical notation, as in [Fe(CN)6]4-, and only there. NOTE : Chemical equilibrium constants. For chemical equilibriums, the constant for the Gulder-Waage equation or the potential for the Nernst equation can be written at the end of the equation, surrounded by parentheses. See some examples in src/test.1, and get them rendered by LaTeX with the command src/chemreport This filter can be embedded in educational test systems, in order to analyze a student's answer to a problem of physics or chemistry. This software snippet is GPL, see the file COPYING. Feedback is welcome. -- Georges. ----------------------------------------------------------- Chemeq options ----------------------------------------------------------- You can choose chemeq's output by specifying some options. Valid options are the following : -h outputs a *H*elp message. -m outputs a *M*inimal output. It allows chemeq to be idempotent, i.e. the command 'chemeq | chemeq' is equivalent to 'chemeq'. -l outputs a *L*aTeX string representing the chemical equation. -c outputs a message giving informations about the *C*onservation of elements and charges in the equation. 'OK' means that both elements and electric charges are balanced. -w outputs the LaTeX string representing the Gulder-*W*aage equation related to the input chemical equation, or the Nernst equation, if the input equation is a redox semi-equation. -n outputs a *N*ormalized string accounting for the input equation. Two chemical equations having the same normalized string are chemically equivalent, even if the molecules are scrambled around and the coefficient are not equal but proportionnal. 'chemeq' defaults to 'chemeq -mlcwn'. ----------------------------------------------------------- INSTALLATION ----------------------------------------------------------- To build chemeq, run 'make' in the main chemeq directory, to install it with its man page, run 'make install' in the main directory. ----------------------------------------------------------- TEST MODE and DEMO ----------------------------------------------------------- If you modifiy the source code, it is possible to test its conformance to previous versions by running 'make test' in the main directory. If 'make test' replies 'OK' for all items, and if you have latex and xdvi installed, you can run 'make demo' to see some examples of typesetting. chemeq-2.12.orig/tests/0000755000175000017500000000000012244451344015202 5ustar georgeskgeorgeskchemeq-2.12.orig/tests/chemreport0000644000175000017500000000031412244450441017270 0ustar georgeskgeorgesk#!/bin/sh export PATH=../src:$PATH if [ -f test.stuff ]; then cat test.stuff | /usr/bin/perl chemreport.pl fi if [ -f test.stuff.gz ]; then zcat test.stuff.gz | /usr/bin/perl chemreport.pl fi chemeq-2.12.orig/tests/test.stuff0000644000175000017500000003035512244446334017243 0ustar georgeskgeorgesk####################################################################### # fichier de test pour chemeq. # # les lignes comprennent une entrée pour chemeq puis la liste des lignes # que chemeq doit rendre. # # les lignes commençant par une dièse sont des commentaires. # les commentaires ne sont permis qu'avant une ligne d'entrée. # # le résultat n'affiche que "OK" ou un message d'erreur en rapport # avec la première ligne de chaque test. Voir le fichier test.stuff # pour en savoir plus. #x #x ####################################################################### # # une équation déséquilibrée # ####################################################################### MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 4 H2O MnO4^-_aq + 8 H3O^+_aq + 5 e^- -> Mn^2+_aq + 4 H2O \mathrm{Mn}\mathrm{O}_{4}^{-}\,+\,8\,\mathrm{H}_{3}\mathrm{O}^{+}\,+\,5\,\mathrm{e}^{-}\,\longrightarrow\,\mathrm{Mn}^{2+}\,+\,4\,\mathrm{H}_{2}\mathrm{O} ERROR H : 24 Mn : 1 O : 12 / H : 8 Mn : 1 O : 4 E\,=\,E_{0}\,+\,\frac{R\,T}{5\,F}\log\frac{[\mathrm{Mn}\mathrm{O}_{4}^{-}]\,[\mathrm{H}_{3}\mathrm{O}^{+}]^{8\,}}{[\mathrm{Mn}^{2+}]} MnO4^-_aq|Mn:1*1 O:1*4, 8 H3O^+_aq|H:8*3 O:8*1, 5 e^-|e:5*1; Mn^2+_aq|Mn:1*1, 4 H2O|H:4*2 O:4*1 H3O^+_aq + 1/8 MnO4^-_aq + 5/8 e^- -> 1/2 H2O + 1/8 Mn^2+_aq ####################################################################### # # des équations équilibrées # ####################################################################### 1/2 Cu^2+ + OH- -> 1/2Cu(OH)2 1/2 Cu^2+_aq + OH^-_aq -> 1/2 Cu(OH)2_aq \frac{1}{2}\,\mathrm{Cu}^{2+}\,+\,\mathrm{O}\mathrm{H}^{-}\,\longrightarrow\,\frac{1}{2}\,\mathrm{Cu}(\mathrm{O}\mathrm{H})_{2} OK \frac{[\mathrm{Cu}(\mathrm{O}\mathrm{H})_{2}]^{\frac{1}{2}\,}}{[\mathrm{Cu}^{2+}]^{\frac{1}{2}\,}\,[\mathrm{O}\mathrm{H}^{-}]}\,=\,K 1/2 Cu^2+_aq|Cu:1/2*1, OH^-_aq|O:1*1 H:1*1; 1/2 Cu(OH)2_aq|Cu:1/2*1 O:1/2*2 H:1/2*2 Cu^2+_aq + 2 HO^-_aq -> Cu(HO)2_aq # MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 12 H2O MnO4^-_aq + 8 H3O^+_aq + 5 e^- -> Mn^2+_aq + 12 H2O \mathrm{Mn}\mathrm{O}_{4}^{-}\,+\,8\,\mathrm{H}_{3}\mathrm{O}^{+}\,+\,5\,\mathrm{e}^{-}\,\longrightarrow\,\mathrm{Mn}^{2+}\,+\,12\,\mathrm{H}_{2}\mathrm{O} OK E\,=\,E_{0}\,+\,\frac{R\,T}{5\,F}\log\frac{[\mathrm{Mn}\mathrm{O}_{4}^{-}]\,[\mathrm{H}_{3}\mathrm{O}^{+}]^{8\,}}{[\mathrm{Mn}^{2+}]} MnO4^-_aq|Mn:1*1 O:1*4, 8 H3O^+_aq|H:8*3 O:8*1, 5 e^-|e:5*1; Mn^2+_aq|Mn:1*1, 12 H2O|H:12*2 O:12*1 H3O^+_aq + 1/8 MnO4^-_aq + 5/8 e^- -> 3/2 H2O + 1/8 Mn^2+_aq ####################################################################### # # un équilibre chimique en phase gazeuse # ####################################################################### SO3_g -----> SO2_g + 1/2 O2_g (Kp=16.3) SO3_g -> SO2_g + 1/2 O2_g (Kp = 16.3) \mathrm{S}\mathrm{O}_{3}_{g}\,\longrightarrow\,\mathrm{S}\mathrm{O}_{2}_{g}\,+\,\frac{1}{2}\,\mathrm{O}_{2}_{g}\,(Kp\,=\,16.3) OK \frac{P_{\mathrm{S}\mathrm{O}_{2}}\,P_{\mathrm{O}_{2}}^{\frac{1}{2}\,}}{P_{\mathrm{S}\mathrm{O}_{3}}}\,=\,Kp\,=\,16.3 SO3_g|S:1*1 O:1*3; SO2_g|S:1*1 O:1*2, 1/2 O2_g|O:1/2*2 O3S_g -> O2S_g + 1/2 O2_g (Kp = 16.3) ####################################################################### # # un équilibre chimique en phases gazeuse et solide # ####################################################################### 2HgO_s -> 2Hg_g + O2_g (Kp=1.67e-22) 2 HgO_s -> 2 Hg_g + O2_g (Kp = 1.67e-22) 2\,\mathrm{Hg}\mathrm{O}_{s}\,\longrightarrow\,2\,\mathrm{Hg}_{g}\,+\,\mathrm{O}_{2}_{g}\,(Kp\,=\,1.67\times 10^{-22}) OK P_{\mathrm{Hg}}^{2\,}\,P_{\mathrm{O}_{2}}\,=\,Kp\,=\,1.67\times 10^{-22} 2 HgO_s|Hg:2*1 O:2*1; 2 Hg_g|Hg:2*1, O2_g|O:1*2 HgO_s -> Hg_g + 1/2 O2_g (Kp = 8.35e-23) ####################################################################### # # une réaction rédox avec de l'eau, un soluté et un gaz # ####################################################################### 2H3O^+ + 2e- ---> H2g + 2H2O (Eo=0.0 V) 2 H3O^+_aq + 2 e^- -> H2_g + 2 H2O (Eo = 0 V) 2\,\mathrm{H}_{3}\mathrm{O}^{+}\,+\,2\,\mathrm{e}^{-}\,\longrightarrow\,\mathrm{H}_{2}_{g}\,+\,2\,\mathrm{H}_{2}\mathrm{O}\,(Eo\,=\,0 V) OK E\,=\,0\,+\,\frac{R\,T}{2\,F}\log\frac{[\mathrm{H}_{3}\mathrm{O}^{+}]^{2\,}}{P_{\mathrm{H}_{2}}} 2 H3O^+_aq|H:2*3 O:2*1, 2 e^-|e:2*1; H2_g|H:1*2, 2 H2O|H:2*2 O:2*1 H3O^+_aq + e^- -> H2O + 1/2 H2_g (Eo = 0 V) ####################################################################### # # un équilibre entre solutés en phase aqueuse # ####################################################################### I- + I2 -> I3^- (K=714) I^-_aq + I2_aq -> I3^-_aq (K = 714) \mathrm{I}^{-}\,+\,\mathrm{I}_{2}\,\longrightarrow\,\mathrm{I}_{3}^{-}\,(K\,=\,714) OK \frac{[\mathrm{I}_{3}^{-}]}{[\mathrm{I}^{-}]\,[\mathrm{I}_{2}]}\,=\,K\,=\,714 I^-_aq|I:1*1, I2_aq|I:1*2; I3^-_aq|I:1*3 I^-_aq + I2_aq -> I3^-_aq (K = 714) ########################################################## # Une réaction rédox, avec des ions marqués ++ ########################################################## Fe^++ + 2e- --> Fes Fe^2+_aq + 2 e^- -> Fe_s \mathrm{Fe}^{2+}\,+\,2\,\mathrm{e}^{-}\,\longrightarrow\,\mathrm{Fe}_{s} OK E\,=\,E_{0}\,+\,\frac{R\,T}{2\,F}\log([\mathrm{Fe}^{2+}]) Fe^2+_aq|Fe:1*1, 2 e^-|e:2*1; Fe_s|Fe:1*1 Fe^2+_aq + 2 e^- -> Fe_s ########################################################## # Une réaction rédox, avec des ions complexes ########################################################## [Fe(CN)6]^4- + 2e- --> Fes + 6CN- [Fe(CN)6]^4-_aq + 2 e^- -> Fe_s + 6 CN^-_aq [\mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}]^{4-}\,+\,2\,\mathrm{e}^{-}\,\longrightarrow\,\mathrm{Fe}_{s}\,+\,6\,\mathrm{C}\mathrm{N}^{-} OK E\,=\,E_{0}\,+\,\frac{R\,T}{2\,F}\log\frac{[[\mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}]^{4-}]}{\,[\mathrm{C}\mathrm{N}^{-}]^{6\,}} [Fe(CN)6]^4-_aq|Fe:1*1 C:1*6 N:1*6, 2 e^-|e:2*1; Fe_s|Fe:1*1, 6 CN^-_aq|C:6*1 N:6*1 [Fe(CN)6]^4-_aq + 2 e^- -> 6 CN^-_aq + Fe_s ########################################################### # Anti-composition de deux demi-réactions rédox ########################################################### MnO4^- + 8H+ + 5e- -> Mn^2+ +4H2O ~ 5Fe^3+ + 5e- -> 5Fe^2+ 5 Fe^2+_aq + 8 H^+_aq + MnO4^-_aq -> 5 Fe^3+_aq + 4 H2O + Mn^2+_aq 5\,\mathrm{Fe}^{2+}\,+\,8\,\mathrm{H}^{+}\,+\,\mathrm{Mn}\mathrm{O}_{4}^{-}\,\longrightarrow\,5\,\mathrm{Fe}^{3+}\,+\,4\,\mathrm{H}_{2}\mathrm{O}\,+\,\mathrm{Mn}^{2+} OK \frac{[\mathrm{Fe}^{3+}]^{5\,}\,[\mathrm{Mn}^{2+}]}{[\mathrm{Fe}^{2+}]^{5\,}\,[\mathrm{H}^{+}]^{8\,}\,[\mathrm{Mn}\mathrm{O}_{4}^{-}]}\,=\,K 5 Fe^2+_aq|Fe:5*1, 8 H^+_aq|H:8*1, MnO4^-_aq|Mn:1*1 O:1*4; 5 Fe^3+_aq|Fe:5*1, 4 H2O|H:4*2 O:4*1, Mn^2+_aq|Mn:1*1 Fe^2+_aq + 8/5 H^+_aq + 1/5 MnO4^-_aq -> Fe^3+_aq + 4/5 H2O + 1/5 Mn^2+_aq ########################################################### # Composition de deux demi-réactions rédox ########################################################### MnO4^- + 8H+ + 5e- -> Mn^2+ +4H2O # 5Fe^2+ -> 5e- + 5Fe^3+ 5 Fe^2+_aq + 8 H^+_aq + MnO4^-_aq -> 5 Fe^3+_aq + 4 H2O + Mn^2+_aq 5\,\mathrm{Fe}^{2+}\,+\,8\,\mathrm{H}^{+}\,+\,\mathrm{Mn}\mathrm{O}_{4}^{-}\,\longrightarrow\,5\,\mathrm{Fe}^{3+}\,+\,4\,\mathrm{H}_{2}\mathrm{O}\,+\,\mathrm{Mn}^{2+} OK \frac{[\mathrm{Fe}^{3+}]^{5\,}\,[\mathrm{Mn}^{2+}]}{[\mathrm{Fe}^{2+}]^{5\,}\,[\mathrm{H}^{+}]^{8\,}\,[\mathrm{Mn}\mathrm{O}_{4}^{-}]}\,=\,K 5 Fe^2+_aq|Fe:5*1, 8 H^+_aq|H:8*1, MnO4^-_aq|Mn:1*1 O:1*4; 5 Fe^3+_aq|Fe:5*1, 4 H2O|H:4*2 O:4*1, Mn^2+_aq|Mn:1*1 Fe^2+_aq + 8/5 H^+_aq + 1/5 MnO4^-_aq -> Fe^3+_aq + 4/5 H2O + 1/5 Mn^2+_aq ########################################################### # Anti-composition de deux demi-réactions rédox avec potentiels standards ########################################################### MnO4^- + 8H+ + 5e- -> Mn^2+ +4H2O (1.51 V)~ 5Fe^3+ + 5e- -> 5Fe^2+ (0.77 V) 5 Fe^2+_aq + 8 H^+_aq + MnO4^-_aq -> 5 Fe^3+_aq + 4 H2O + Mn^2+_aq (3.50866e+62) 5\,\mathrm{Fe}^{2+}\,+\,8\,\mathrm{H}^{+}\,+\,\mathrm{Mn}\mathrm{O}_{4}^{-}\,\longrightarrow\,5\,\mathrm{Fe}^{3+}\,+\,4\,\mathrm{H}_{2}\mathrm{O}\,+\,\mathrm{Mn}^{2+}\,(3.50866\times 10^{+62}) OK \frac{[\mathrm{Fe}^{3+}]^{5\,}\,[\mathrm{Mn}^{2+}]}{[\mathrm{Fe}^{2+}]^{5\,}\,[\mathrm{H}^{+}]^{8\,}\,[\mathrm{Mn}\mathrm{O}_{4}^{-}]}\,=\,3.50866\times 10^{+62} 5 Fe^2+_aq|Fe:5*1, 8 H^+_aq|H:8*1, MnO4^-_aq|Mn:1*1 O:1*4; 5 Fe^3+_aq|Fe:5*1, 4 H2O|H:4*2 O:4*1, Mn^2+_aq|Mn:1*1 Fe^2+_aq + 8/5 H^+_aq + 1/5 MnO4^-_aq -> Fe^3+_aq + 4/5 H2O + 1/5 Mn^2+_aq (7.01731e+61) ########################################################### # Multiplication de tous les coefficients d'une réaction ########################################################### 5*Fe^3+ + e- -> Fe^2+ 5 Fe^3+_aq + 5 e^- -> 5 Fe^2+_aq 5\,\mathrm{Fe}^{3+}\,+\,5\,\mathrm{e}^{-}\,\longrightarrow\,5\,\mathrm{Fe}^{2+} OK E\,=\,E_{0}\,+\,\frac{R\,T}{5\,F}\log\frac{[\mathrm{Fe}^{3+}]^{5\,}}{[\mathrm{Fe}^{2+}]^{5\,}} 5 Fe^3+_aq|Fe:5*1, 5 e^-|e:5*1; 5 Fe^2+_aq|Fe:5*1 Fe^3+_aq + e^- -> Fe^2+_aq ########################################################### # Anti-composition de deux demi-réactions rédox avec des mutiplicateurs ########################################################### MnO4^- + 8H+ + 5e- -> Mn^2+ +4H2O (1.51 V)~ 5 * Fe^3+ + e- -> Fe^2+ (0.77 V) 5 Fe^2+_aq + 8 H^+_aq + MnO4^-_aq -> 5 Fe^3+_aq + 4 H2O + Mn^2+_aq (3.50866e+62) 5\,\mathrm{Fe}^{2+}\,+\,8\,\mathrm{H}^{+}\,+\,\mathrm{Mn}\mathrm{O}_{4}^{-}\,\longrightarrow\,5\,\mathrm{Fe}^{3+}\,+\,4\,\mathrm{H}_{2}\mathrm{O}\,+\,\mathrm{Mn}^{2+}\,(3.50866\times 10^{+62}) OK \frac{[\mathrm{Fe}^{3+}]^{5\,}\,[\mathrm{Mn}^{2+}]}{[\mathrm{Fe}^{2+}]^{5\,}\,[\mathrm{H}^{+}]^{8\,}\,[\mathrm{Mn}\mathrm{O}_{4}^{-}]}\,=\,3.50866\times 10^{+62} 5 Fe^2+_aq|Fe:5*1, 8 H^+_aq|H:8*1, MnO4^-_aq|Mn:1*1 O:1*4; 5 Fe^3+_aq|Fe:5*1, 4 H2O|H:4*2 O:4*1, Mn^2+_aq|Mn:1*1 Fe^2+_aq + 8/5 H^+_aq + 1/5 MnO4^-_aq -> Fe^3+_aq + 4/5 H2O + 1/5 Mn^2+_aq (7.01731e+61) ########################################################### # Anti-composition de deux demi-réactions rédox avec des mutiplicateurs ########################################################### 2 * MnO4^- + 8H+ + 5e- -> Mn^2+ +4H2O ~ 5 * O2_g + 2H^+ + 2e^- -> H2O2 6 H^+_aq + 5 H2O2_aq + 2 MnO4^-_aq -> 8 H2O + 2 Mn^2+_aq + 5 O2_g 6\,\mathrm{H}^{+}\,+\,5\,\mathrm{H}_{2}\mathrm{O}_{2}\,+\,2\,\mathrm{Mn}\mathrm{O}_{4}^{-}\,\longrightarrow\,8\,\mathrm{H}_{2}\mathrm{O}\,+\,2\,\mathrm{Mn}^{2+}\,+\,5\,\mathrm{O}_{2}_{g} OK \frac{\,[\mathrm{Mn}^{2+}]^{2\,}\,P_{\mathrm{O}_{2}}^{5\,}}{[\mathrm{H}^{+}]^{6\,}\,[\mathrm{H}_{2}\mathrm{O}_{2}]^{5\,}\,[\mathrm{Mn}\mathrm{O}_{4}^{-}]^{2\,}}\,=\,K 6 H^+_aq|H:6*1, 5 H2O2_aq|H:5*2 O:5*2, 2 MnO4^-_aq|Mn:2*1 O:2*4; 8 H2O|H:8*2 O:8*1, 2 Mn^2+_aq|Mn:2*1, 5 O2_g|O:5*2 H^+_aq + 5/6 H2O2_aq + 1/3 MnO4^-_aq -> 4/3 H2O + 1/3 Mn^2+_aq + 5/6 O2_g ########################################################### # Composition et anti-compositions de plus de deux réactions ########################################################### Fe^3+ + e^- -> Fe^2+ # Fe^2+ + 6CN^- -> Fe(CN)6^4- ~ Fe^3+ + 6CN^- -> Fe(CN)6^3- Fe(CN)6^3-_aq + e^- -> Fe(CN)6^4-_aq \mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}^{3-}\,+\,\mathrm{e}^{-}\,\longrightarrow\,\mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}^{4-} OK E\,=\,E_{0}\,+\,\frac{R\,T}{1\,F}\log\frac{[\mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}^{3-}]}{[\mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}^{4-}]} Fe(CN)6^3-_aq|Fe:1*1 C:1*6 N:1*6, e^-|e:1*1; Fe(CN)6^4-_aq|Fe:1*1 C:1*6 N:1*6 Fe(CN)6^3-_aq + e^- -> Fe(CN)6^4-_aq ########################################################### # Composition et anti-compositions de plus de deux réactions ########################################################### Fe^3+ + e^- -> Fe^2+ (0.77 V) # Fe^2+ + 6CN^- -> Fe(CN)6^4- (Kfa=1e24) ~ Fe^3+ + 6CN^- -> Fe(CN)6^3- (Kfb=1e31) Fe(CN)6^3-_aq + e^- -> Fe(CN)6^4-_aq (0.355899 V) \mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}^{3-}\,+\,\mathrm{e}^{-}\,\longrightarrow\,\mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}^{4-}\,(0.355899 V) OK E\,=\,0.355899\,+\,\frac{R\,T}{1\,F}\log\frac{[\mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}^{3-}]}{[\mathrm{Fe}(\mathrm{C}\mathrm{N})_{6}^{4-}]} Fe(CN)6^3-_aq|Fe:1*1 C:1*6 N:1*6, e^-|e:1*1; Fe(CN)6^4-_aq|Fe:1*1 C:1*6 N:1*6 Fe(CN)6^3-_aq + e^- -> Fe(CN)6^4-_aq (0.355899 V) ########################################################### # Composition de deux réactions entraînant une simplification dans un membre ########################################################### 2Fe^3+ +2e^- -> 2Fe^2+ ~ Fe^2+ + 2e^- -> Fe_s 2 Fe^3+_aq + Fe_s -> 3 Fe^2+_aq 2\,\mathrm{Fe}^{3+}\,+\,\mathrm{Fe}_{s}\,\longrightarrow\,3\,\mathrm{Fe}^{2+} OK \frac{[\mathrm{Fe}^{2+}]^{3\,}}{[\mathrm{Fe}^{3+}]^{2\,}}\,=\,K 2 Fe^3+_aq|Fe:2*1, Fe_s|Fe:1*1; 3 Fe^2+_aq|Fe:3*1 Fe^3+_aq + 1/2 Fe_s -> 3/2 Fe^2+_aq chemeq-2.12.orig/tests/chemtest0000644000175000017500000000025311222350021016722 0ustar georgeskgeorgesk#!/bin/sh if [ -f test.stuff ]; then cat test.stuff | /usr/bin/perl chemtest.pl elif [ -f test.stuff.gz ]; then zcat test.stuff.gz | /usr/bin/perl chemtest.pl fi chemeq-2.12.orig/tests/chemtest.pl0000644000175000017500000000170411222350021017336 0ustar georgeskgeorgesk#!/usr/local/bin/perl # -*- coding: utf-8 -*- $lignes_de_reponse = 6; while(chomp($essai = )){ if(length($essai) != 0 && substr($essai,0,1) ne "#"){ for ($i=0; $i < $lignes_de_reponse; $i++){ chomp($tmp=); @reponse[$i]=$tmp; } $essai_ = $essai; $essai_ =~ s/\'/\\\'/g; @args = ("echo \"$essai_\" | chemeq > /tmp/tmp.1"); system @args; open (TMP,'/tmp/tmp.1'); $ok=1; for ($i=0; $i < $lignes_de_reponse; $i++){ chomp($tmp=); @result[$i]=$tmp; if (@result[$i] ne @reponse[$i]){$ok=0;} } if ($ok){print "OK\t\t$essai\n";} else{ print "***ERREUR***\t$essai\n"; for ($i=0; $i < $lignes_de_reponse; $i++){ if(@result[$i] ne @reponse[$i]){ print "ligne $i : on attendait\n"; print "\t\"@reponse[$i]\"\n"; print "on a trouvé\n"; print "\t\"@result[$i]\"\n"; } } } } else { if ($essai =~ /[a-zA-Z]/) {print "$essai\n";} } } system ("(cd /tmp; rm -f tmp.1)"); chemeq-2.12.orig/tests/chemreport.pl0000644000175000017500000000567312244451302017714 0ustar georgeskgeorgesk#!/usr/local/bin/perl # -*- coding: utf-8 -*- open ('TEX', '>/tmp/chemtest.tex'); print TEX "\\documentclass{article}\n"; #print TEX "\\usepackage[frenchb]{babel}\n"; print TEX "\\usepackage{a4wide}\n"; print TEX "\\usepackage[utf8]{inputenc}\n"; #print TEX "\\usepackage {lmodern}\n"; print TEX "\\title{Chemeq, a parser for chemical equations}\n"; print TEX "\\author{\\copyright{} GPL 2000-2013, Georges Khaznadar \\emph{georgesk\@debian.org}}\n"; print TEX "\\begin{document}\n\\maketitle\n\n\\sloppy\n"; print TEX "\\abstract{Chemtest is a parser which analyses its standard input and outputs useful strings accounting for informations related to chemical equations. It can be embedded in educational applications. Here are listed examples of possible inputs for chemeq. Some outputs are usefully interpreted by the LaTeX language in math mode. The other outputs are typeset with \\texttt{teletype fonts}.}\n\n"; $lignes_de_reponse = 6; print TEX "Currently, when \\texttt{chemeq} is fed with a chemical equation or a combination of chemical equations on its standard input, it gives ",$lignes_de_reponse," lines on its standard output.\n"; print TEX "\~\\\\\[3ex]\n\\hrule\n\\tableofcontents\n\~\\\\\[3ex]\n\\hrule\n"; while(chomp($essai = )){ if(length($essai) != 0 && substr($essai,0,1) ne "#"){ for ($i=0; $i < $lignes_de_reponse; $i++){ chomp($tmp=); @reponse[$i]=$tmp; } $essai_ = $essai; $essai_ =~ s/\'/\\\'/g; @args = ("echo \"$essai_\" | chemeq > /tmp/tmp.1"); system @args; open (TMP,'/tmp/tmp.1'); $essai =~ s/\^/\\\^{}/g; $essai =~ s/\>/\$>\$/g; $essai =~ s/\_/\\\_{}/g; $ok=1; for ($i=0; $i < $lignes_de_reponse; $i++){ chomp($tmp=); @result[$i]=$tmp; if (@result[$i] ne @reponse[$i]){ @idem[i]="KO"; $ok=0; } else { @idem[i]="OK"; } } if ($ok==1){ print TEX "\\section{OK : \\texttt{$essai}}\n"; } else { print TEX "\\section{ERROR : \\texttt{$essai}}\n"; } for ($i=0; $i < $lignes_de_reponse; $i++){ print TEX @idem[i]," "; } print TEX "\\\\\n"; print TEX "Expected output :\n"; print TEX "\\begin{enumerate} \n"; for ($i=0; $i < $lignes_de_reponse; $i++){ print TEX "\\item "; if (@reponse[$i] =~ /\\/){ print TEX "\$\$",@reponse[$i],"\$\$\n"; } else { $buffer = @reponse[$i]; $buffer =~ s/\^/\\\^{}/g; $buffer =~ s/\>/\$>\$/g; $buffer =~ s/\_/\\\_{}/g; $buffer =~ s/\|/\$|\$/g; print TEX "\\texttt{", $buffer,"}\n"; } } print TEX "\\end{enumerate}\n"; if (!$ok){ print TEX "found output :\n"; print TEX "\\begin{enumerate} \n"; for ($i=0; $i < $lignes_de_reponse; $i++){ print TEX "\\item \\verb|", @reponse[$i], "|\n"; } print TEX "\\end{enumerate}\n"; } } } print TEX "\\end{document}\n"; close TEX; system ("(cd /tmp; echo q | latex chemtest.tex)"); system ("(cd /tmp; echo q | latex chemtest.tex)"); system ("(cd /tmp; xdvi chemtest.dvi)"); system ("(cd /tmp;rm -f chemtest* tmp.1)");