diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644
index 0000000000000000000000000000000000000000..e17d9ed3b25bccbb5151b480a7dd25e8defa87c3
--- /dev/null
+++ b/.dir-locals.el
@@ -0,0 +1,7 @@
+((nil .
+      ((c-file-style . "gnu")
+       (indent-tabs-mode . nil)
+       (fill-column . 79)))
+ (makefile-mode . ((indent-tabs-mode . t)))
+ (matlab-mode . ((matlab-indent-level . 4)
+                 (matlab-indent-function-body . nil))))
diff --git a/.gitignore b/.gitignore
index f699af2fcfad47976f428c486f88b0dc7e5dfab0..be2c96947966ddba989593fabbf2d203f9171cb9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -62,6 +62,7 @@ ar-lib
 /doc/dynare.pg
 /doc/dynare.tp
 /doc/dynare.vr
+/doc/dynare.t2p/*
 /doc/texinfo.tex
 /doc/version.texi
 /doc/mdate-sh
@@ -192,3 +193,6 @@ mex/build/matlab/run_m2html.m
 /contrib/ms-sbvar/*.dat
 /contrib/ms-sbvar/sbvar_commandline
 /contrib/ms-sbvar/sbvar_init_file
+
+# Reporting
+*synctex.gz
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index 91bcb4a1bb0585211366e9e15715f81f9785678f..67e0b82edcab02f0c3949f500672dbba291522bc 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,3 +7,6 @@
 [submodule "contrib/ms-sbvar/TZcode"]
 	path = contrib/ms-sbvar/TZcode
 	url = http://www.dynare.org/git/frbatlanta/TZcode.git
+[submodule "contrib/dmm"]
+	path = contrib/dmm
+	url = http://www.dynare.org/git/dmm.git
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000000000000000000000000000000000000..94a9ed024d3859793618152ea559a168bbcbb5e2
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ 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.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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 <http://www.gnu.org/licenses/>.
+
+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:
+
+    <program>  Copyright (C) <year>  <name of author>
+    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
+<http://www.gnu.org/licenses/>.
+
+  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
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/Makefile.am b/Makefile.am
index 7d0606ba6a468a81118bcc930e34a2ed053f28dd..55197c8a47f68759a932de858f6c6a9c74b977a6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,7 +30,8 @@ EXTRA_DIST = \
 	windows/README.txt \
 	osx \
 	examples \
-	scripts
+	scripts \
+	.dir-locals.el
 
 dist-hook:
 	rm -rf `find $(distdir)/matlab $(distdir)/examples -name *~`
diff --git a/NEWS b/NEWS
index f1465571a7aa14932bd1fd813220d930a0ca1292..b32e24e78ed53df98629e73281ebac7b5ac4470e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,346 @@
+Announcement for Dynare 4.4.2 (on 2014-03-04)
+=============================================
+
+We are pleased to announce the release of Dynare 4.4.2.
+
+This is a bugfix release.
+
+The Windows packages are already available for download at:
+
+ http://www.dynare.org/download/dynare-stable
+
+The Mac and GNU/Linux packages (for Debian and Ubuntu LTS) should follow soon.
+
+This release is compatible with MATLAB versions 7.3 (R2006b) to 8.2 (R2013b)
+and with GNU Octave versions 3.6 to 3.8.
+
+Here is a list of the problems identified in version 4.4.1 and that have been
+fixed in version 4.4.2:
+
+ - Geweke convergence diagnostics was computed on the wrong sample if `mh_drop'
+   was not equal to the default of 0.5.
+
+ - The `loglinear' option of `stoch_simul' was displaying the steady state of
+   the original values, not the logged ones, and was producing incorrect
+   simulations and simulated moments. Theoretical moments were unaffected.
+
+ - The `optim' option of `estimation (for setting options to `mode_compute')
+   was only working with at least MATLAB 8.1 (R2013a) or Octave 3.8.
+
+ - For unit root models, theoretical HP filtered moments were sometimes
+   erroneously displayed as NaN.
+
+ - Specifying an endogenous variable twice after the `estimation' command would
+   lead to a crash in the computation of moments.
+
+ - Deterministic simulations were crashing on some models with more than one
+   lead or one lag on exogenous variables.
+
+ - Homotopy in stochastic extended path with order greater than 0 was not
+   working correctly (during the homotopy steps the perfect foresight model
+   solver was called instead of the stochastic perfect foresight model solver).
+
+ - MCMC convergence diagnostics were not computed if `mh_replic' was less than
+   2000; the test now relies on the total number of iterations (this only makes
+   a difference if option `load_mh_file' is used).
+
+
+Announcement for Dynare 4.4.1 (on 2014-01-17)
+=============================================
+
+We are pleased to announce the release of Dynare 4.4.1.
+
+This release contains a few changes to the user interface and fixes various
+bugs. It also adds compatibility with Octave 3.8.
+
+The Windows packages are already available for download at:
+
+ http://www.dynare.org/download/dynare-stable
+
+The Mac and GNU/Linux packages (for Debian and Ubuntu) should follow soon.
+
+All users are encouraged to upgrade.
+
+This release is compatible with MATLAB versions 7.3 (R2006b) to 8.2 (R2013b) and
+with GNU Octave versions 3.6 to 3.8.
+
+* Changes to the user interface:
+
+ - The syntax introduced in 4.4.0 for conditional forecast in a deterministic
+   setup was removed, and replaced by a new one that is better suited to the
+   task. More precisely, such deterministic forecasts are no longer done using
+   the `conditional_forecast' command. The latter is replaced by a group of
+   commands: `init_plan', `basic_plan' and `flip_plan'. See the reference
+   manual for more details.
+
+ - Changes to the reporting module: option `annualAverages' to `addTable' has
+   been removed (use option `tableDataRhs' to `addSeries' instead); option
+   `vlineAfter' to `addTable' now also accepts a cell array.
+
+ - Changes to the date and time series classes: implement broadcasting for
+   operations (+,-,* and /) between `dseries' class and scalar or vectors; add
+   the possibility of selecting an observation within a time series using a
+   formatted string containing a date.
+
+* Bugs and problems identified in version 4.4.0 and that have been fixed in
+  version 4.4.1:
+
+ - In MS-SBVAR, there was a bug preventing the computation of impulse responses
+   on a constant regime.
+
+ - Under Octave, after modifying the MOD file, the changes were not taken into
+   account at the first Dynare run, but only at the second run.
+
+
+Announcement for Dynare 4.4.0 (on 2013-12-16)
+=============================================
+
+We are pleased to announce the release of Dynare 4.4.0.
+
+This major release adds new features and fixes various bugs.
+
+The Windows packages are already available for download at:
+
+ http://www.dynare.org/download/dynare-stable
+
+The Mac and Debian/Ubuntu packages should follow soon.
+
+All users are strongly encouraged to upgrade.
+
+This release is compatible with MATLAB versions ranging from 7.3 (R2006b) to
+8.2 (R2013b) and with GNU Octave version 3.6.
+
+Here is the list of major user-visible changes:
+
+
+* New major algorithms:
+
+ - Extended path at order 1 and above, also known as “stochastic extended
+   path”. This method is triggered by setting the `order' option of the
+   `extended_path' command to a value greater than 0. Dynare will then use a
+   Gaussian quadrature to take into account the effects of future uncertainty.
+   The time series for the endogenous variables are generated by assuming that
+   the agents believe that there will no more shocks after period t+order.
+
+ - Alternative algorithms for computing decision rules of a stochastic model,
+   based on the cycle reduction and logarithmic reduction algorithms. These
+   methods are respectively triggered by giving `dr = cycle_reduction' or 'dr
+   = logarithmic_reduction' as an option to the `stoch_simul' command.
+
+ - Pruning now works with 3rd order approximation, along the lines of
+   Andreasen, Fernández-Villaverde and Rubio-Ramírez (2013).
+
+ - Computation of conditional forecast using an extended path method. This is
+   triggered by the new option `simulation_type = deterministic' in the
+   `conditional_forecast' command. In this case, the `expectation' command in
+   the `conditional_forecast_paths' block has to be used to indicate the nature
+   of expectations (whether shocks are a surprise or are perfectly
+   anticipated).
+
+ - Endogenous priors as in Christiano, Trabandt and Walentin (2011). Those are
+   triggered by the new option `endogenous_prior' of the `estimation' command.
+
+
+* Other algorithmic improvements:
+
+ - New command `model_diagnostics' to perform various sanity checks on the
+   model. Note: in the past, some users may have used a preliminary MATLAB
+   function implementing this; the new command has the same syntax, except that
+   you shouldn't pass any argument to it.
+
+ - Terminal conditions of perfect foresight simulations can now be specified in
+   growth rates. More specifically, the new option `differentiate_forward_vars'
+   of the `model' block will create auxiliary forward looking variables
+   expressed in first differences or growth rates of the actual forward looking
+   variables defined in the model. These new variables have obvious zero
+   terminal conditions whatever the simulation context and this in many cases
+   helps convergence of simulations.
+
+ - Convergence diagnostics for single chain MCMC à la Geweke (1992, 1999).
+
+ - New optimizer for the posterior mode (triggered by `mode_compute=10'): it
+   uses the simpsa algorithm, based on the combination of the non-linear
+   simplex and simulated annealing algorithms and proposed by Cardoso, Salcedo
+   and Feyo de Azevedo (1996).
+
+ - The automatic detrending engine has been extended to work on models written
+   in logs. The corresponding trend variable type is `log_trend_var', and the
+   corresponding deflator type is `log_deflator'.
+
+
+* New features in the user interface:
+
+ - New set of functions for easily creating PDF reports including figures and
+   tables. See the “Reporting” section in the reference manual for more
+   details.
+
+ - New MATLAB/Octave classes for handling time series. See the “Time series”
+   section in the reference manual for more details.
+
+ - Datafiles in CSV format can now be used for estimation.
+
+ - New macro processor `length' operator, returns the length of an array.
+
+ - New option `all_values_required' of `initval' and `endval' blocks: enforces
+   initialization of all endogenous and exogenous variables within the block.
+
+ - Option `ar' can now be given to the `estimation' command.
+
+ - New options `nograph', `nointeractive' and `nowarn' to the `dynare' command,
+   for a better control of what is displayed.
+
+ - New option `nostrict' to the `dynare' command, for allowing Dynare to
+   continue processing when there are more endogenous variables than equations
+   or when an undeclared symbol is assigned in `initval' or `endval'.
+
+ - The information on MCMC acceptance rates, seeds, last log posterior
+   likelihood, and last parameter draw are now saved on the disk and can
+   be displayed with `internals --display-mh-history' or loaded into the
+   workspace with `internals --load-mh-history'.
+
+ - New options `mode_check_neighbourhood_size', `mode_check_symmetric_plots'
+   and `mode_check_number_of_points', for a better control of the diagnostic
+   plots.
+
+ - New option `parallel_local_files' of `model' block, for transferring extra
+   files during parallel computations.
+
+ - New option `clock' of `set_dynare_seed', for setting a different seed at
+   each run.
+
+ - New option `qz_zero_threshold' of the `check', `stoch_simul' and
+   `estimation' commands, for a better control of the situation where a
+   generalized eigenvalue is close to 0/0.
+
+ - New `verbatim' block for inclusion of text that should pass through the
+   preprocessor and be placed as is in the `modfile.m' file.
+
+ - New option `mcmc_jumping_covariance' of the `estimation' command, for a
+   better control of the covariance matrix used for the proposal density of the
+   MCMC sampler.
+
+ - New option `use_calibration' of the `estimated_params_init', for using the
+   calibration of deep parameters and the elements of the covariance matrix
+   specified in the `shocks' block as starting values for the estimation.
+
+ - New option `save_draws' of the `ms_simulation' command.
+
+ - New option `irf_plot_threshold' of the `stoch_simul' and `estimation'
+   commands, for a better control of the display of IRFs which are almost nil.
+
+ - New option `long_name' for endogenous, exogenous and parameter declarations,
+   which can be used to declare a long name for variables. That long name can
+   be programmatically retrieved in `M_.endo_names_long'.
+
+
+* Miscellaneous changes
+
+ - The deciles of some posterior moments were erroneously saved in a field
+   `Distribution' under `oo_'. This field is now called `deciles', for
+   consistency with other posterior moments and with the manual. Similarly, the
+   fields `Mean', `Median', `HPDsup', `HPDinf', and `Variance' are now
+   consistently capitalized.
+
+ - The console mode now implies the `nodisplay' option.
+
+
+* Bugs and problems identified in version 4.3.3 and that have been fixed in
+  version 4.4.0:
+
+ - In an `endval' block, auxiliary variables were not given the right value.
+   This would not result in wrong results, but could prevent convergence of
+   the steady state computation.
+
+ - Deterministic simulations with `stack_solve_algo=0' (the default value) were
+   crashing if some exogenous had a lag strictly greater than 1.
+
+ - When using the `mode_file' option, the initial estimation checks were not
+   performed for the loaded mode, but for the original starting values. Thus,
+   potential prior violations by the mode only appeared during estimation,
+   leading to potentially cryptic crashes and error messages.
+
+ - If a shock/measurement error variance was set to 0 in calibration, the
+   correlation matrix featured a 0 instead of a 1 on the diagonal, leading to
+   wrong estimation results.
+
+ - In the presence of calibrated covariances, estimation did not enforce
+   positive definiteness of the covariance matrix.
+
+ - Estimation using the `diffuse_filter' option together with the univariate
+   Kalman filter and a diagonal measurement error matrix was broken.
+
+ - A purely backward model with `k_order_solver' was leading to crashes of
+   MATLAB/Octave.
+
+ - Non-linear estimation was not skipping the specified presample when
+   computing the likelihood.
+
+ - IRFs and theoretical moments at order > 1 were broken for purely
+   forward-looking models.
+
+ - Simulated moments with constant variables was leading to crashes when
+   displaying autocorrelations.
+
+ - The `osr' command was sometimes crashing with cryptic error messages because
+   of some unaccounted error codes returned from a deeper routine.
+
+ - The check for stochastic singularity during initial estimation checks was
+   broken.
+
+ - Recursive estimation starting with the pathological case of `nobs=1' was
+   crashing.
+
+ - Conditional variance decomposition within or after estimation was crashing
+   when at least one shock had been calibrated to zero variance.
+
+ - The `estimated_params_init' and `estimated_params_bounds' blocks were broken
+   for correlations.
+
+ - The `filter_step_ahead' option was not producing any output in Bayesian
+   estimation.
+
+ - Deterministic simulations were sometimes erroneously indicating convergence
+   although the residuals were actually NaN or Inf.
+
+ - Supplying a user function in the `mode_compute' option was leading to
+   a crash.
+
+ - Deterministic simulation of models without any exogenous variable was
+   crashing.
+
+ - The MS-SBVAR code was not updating files between runs on Windows. This means
+   that if a MOD file was updated between runs in the same folder and a
+   `file_tag' was not changed, then the results would not change.
+
+ - The `ramsey_policy' command was not putting in `oo_.planner_objective_value'
+   the value of the planner objective at the optimum.
+
+
+* References:
+
+ - Andreasen, Martin M., Jesús Fernández-Villaverde, and Juan Rubio-Ramírez
+   (2013): “The Pruned State-Space System for Non-Linear DSGE Models: Theory
+   and Empirical Applications,” NBER Working Paper, 18983
+
+ - Cardoso, Margarida F., R. L. Salcedo and S. Feyo de Azevedo (1996): “The
+   simplex simulated annealing approach to continuous non-linear optimization,”
+   Computers chem. Engng, 20(9), 1065-1080
+
+ - Christiano, Lawrence J., Mathias Trabandt and Karl Walentin (2011):
+   “Introducing financial frictions and unemployment into a small open economy
+   model,” Journal of Economic Dynamics and Control, 35(12), 1999-2041
+
+ - Geweke, John (1992): “Evaluating the accuracy of sampling-based approaches
+   to the calculation of posterior moments,” in J.O. Berger, J.M. Bernardo,
+   A.P. Dawid, and A.F.M. Smith (eds.) Proceedings of the Fourth Valencia
+   International Meeting on Bayesian Statistics, pp. 169-194, Oxford University
+   Press
+
+ - Geweke, John (1999): “Using simulation methods for Bayesian econometric
+   models: Inference, development and communication,” Econometric Reviews,
+   18(1), 1-73
+
+
 Announcement for Dynare 4.3.3 (on 2013-04-12)
 =============================================
 
diff --git a/README.extended-preprocessor.org b/README.extended-preprocessor.org
new file mode 100644
index 0000000000000000000000000000000000000000..151e1d8f72a3ac5a2bb9584220223b97f02785bd
--- /dev/null
+++ b/README.extended-preprocessor.org
@@ -0,0 +1,75 @@
+In branch extended-preprocessor, we develop a version of Dynare
+preprocessor that produces C and Cuda routine that can be later
+linked within another program.
+
+* dynare_m options
+- new option output=dynamic|first|second|third
+  - output=dynamic generates <fname>_dynamic
+  - output=first generates <fname>_first_derivatives
+  - output=second generates <fname>_first_derivatives and <fname>_second_derivatives
+  - output=third generates <fname>_first_derivatives,
+    <fname>_second_derivatives and <fname>_third_derivatives
+  - routine <fname>_static is always generated
+  - routine <fname>_steady_state is generated if the *.mod file contains a
+    steady_state_model block
+  - routine <fname>_auxiliary_variables_steady_state is always
+    generated but doesn't contain any instruction is the preprocessor
+    didn't add any auxiliary variable
+* Functions
+- <fname>_model: returns a structure containting fields describing
+  the model, analogous to the M_ structure in Dynare. This structure
+  is defined in dynare_model.h and must be accessible when compiling
+  the second stage program.
+- <fname>_dynamic: the historical Dynare dynamic function, returns
+  residuals, first, second and third order derivatives of the model,
+  if needed.
+- <fname>_static: the historical Dynare static function, returns
+  residuals of the static model
+- <fname>_steady_state: a function computing the steady state of the
+  model, given the parameters. It comes from parsing a
+  steady_state_model block in the *.mod file. Currently, there is no provision for
+  calling a non-linear solver for a subset of equations/variables.
+- <fname>_auxiliary_variables_steady_state: a function to compute the steady state
+  values of auxiliary variables automatically added by the
+  preprocessor
+- <fname>_first_derivatives: returns the Jacobian of the model at the steady
+  state, given the
+  steady state. It is more efficient than <fname>_dynamic. Doesn't
+  exist in Dynare yet.
+- <fname>_second_derivatives: returns the second order derivatives of
+  the model. There are as many rows as equations and as many column
+  as the square of the number of endogenous and exogenous
+  variables. The matrix is stored in compressed sparse row format. It
+  is more efficient than compressed column format as there many more
+  columns than rows and many columns are empty. Note that the
+  transpose of the second derivatives matrix in compressed column
+  format can be obtained directly from the same function by inverting
+  the role of the two index vectors.
+- <fname>_third_derivatives: returns the third order derivatives of
+  the model. See above for the storage format of this matrix.
+* Implementation
+** C++ version
+- the routines use C++ and classes from the STL
+** Cuda version
+- the routines have the __global__ keyword necessary to create CUDA
+  kernls
+- vector addressing uses a stride parameter to allow for various
+  storage schemes on the device  
+* Changes with dynare-msdsge
+  - removed erasing previous files as all files should be always
+    written to faciliate application building
+  - added back creating variables with the parameter name (otherwise
+    it doesn't work in Matlab backend) TO BE FIXED
+* Pre-processor
+  - in DynareMain2.cc, in main2() option output != none calls ModFile::write_external_files() 
+  - in ModFile.cc, ModFile::writeExternalFiles() calls
+    - ModFile::writeModelCC()
+    - SteadyStateMode::writeSteadyStateFileCC()
+    - DynamicModel::writeDynamicFile()
+    - StaticModel::writeStaticFile()
+    - DynamicModel::writeResidualsCC()
+    - DynamicModel::writeParamsDerivativesFileCC()
+    - DynamicModel::writeFirstDerivativesCC()
+    - DynamicModel::writeSecondDerivativesCC_csr()
+    - DynamicModel::writeThirdDerivativesCC_csr()
+
diff --git a/README.md b/README.md
index 23a876aec80efa82ad24d9b0836a0f5f34e70623..75a43d2415c1de2e7dc45e6485d9c59192fe3928 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Here, we explain how to build from source:
 
 This source can be retrieved in three forms:
 - via git, at <https://github.com/DynareTeam/dynare.git>
-- using the stable source archive of the latest Dynare version (currently 4.3) from <http://www.dynare.org/download/dynare-4.3/source>
+- using the stable source archive of the latest Dynare version (currently 4.4) from <http://www.dynare.org/download/dynare-stable/>
 - using a source snapshot of the unstable version, from <http://www.dynare.org/download/dynare-unstable/source-snapshot>
 
 Note that if you obtain the source code via git, you will need to install more tools (see below).
@@ -52,25 +52,24 @@ A number of tools and libraries are needed in order to recompile everything. You
 - [MATLAB](http://www.dynare.org/DynareWiki/BuildingDynareFromSource?action=AttachFile&do=view&target=dynare-mingw64-libs.zip) (if you want to compile MEX for MATLAB)
 - [GNU Octave](http://www.octave.org), with the development headers (if you want to compile MEX for Octave)
 - [Boost libraries](http://www.boost.org), version 1.36 or later
-- [Bison](http://www.gnu.org/software/bison/), version 2.3 or later (only if you get the source through Git)
+- [Bison](http://www.gnu.org/software/bison/), version 2.5 or later (only if you get the source through Git)
 - [Flex](http://flex.sourceforge.net/), version 2.5.4 or later (only if you get the source through Git)
 - [Autoconf](http://www.gnu.org/software/autoconf/), version 2.62 or later (only if you get the source through Git) (see [Installing an updated version of Autoconf in your own directory, in GNU/Linux](http://www.dynare.org/DynareWiki/AutoMake))
 - [Automake](http://www.gnu.org/software/automake/), version 1.11.2 or later (only if you get the source through Git) (see [Installing an updated version of AutoMake in your own directory, in GNU/Linux](http://www.dynare.org/DynareWiki/AutoMake))
 - [CWEB](http://www-cs-faculty.stanford.edu/%7Eknuth/cweb.html), with its tools `ctangle` and `cweave` (only if you want to build Dynare++ and get the source through Git)
 - An implementation of BLAS and LAPACK: either [ATLAS](http://math-atlas.sourceforge.net/), [OpenBLAS](http://xianyi.github.com/OpenBLAS/), Netlib ([BLAS](http://www.netlib.org/blas/), [LAPACK](http://www.netlib.org/lapack/)) or [MKL](http://software.intel.com/en-us/intel-mkl/) (only if you want to build Dynare++)
 - An implementation of [POSIX Threads](http://en.wikipedia.org/wiki/POSIX_Threads) (optional, for taking advantage of multi-core)
-- [MAT File I/O library](http://sourceforge.net/projects/matio/) (if you want to compile Markov-Switching code, the estimation DLL, k-order DLL and Dynare++ in unstable)
+- [MAT File I/O library](http://sourceforge.net/projects/matio/) (if you want to compile Markov-Switching code, the estimation DLL, k-order DLL and Dynare++)
 - [SLICOT](http://www.slicot.org) (if you want to compile the Kalman steady state DLL)
 - [GSL library](http://www.gnu.org/software/gsl/) (if you want to compile Markov-Switching code)
 - A decent LaTeX distribution (if you want to compile PDF documentation). The following extra components may be needed:
-  - The Econometrica bibliography style: you need [harvard](http://www.ctan.org/tex-archive/macros/latex/contrib/harvard/) and [economic](http://www.ctan.org/tex-archive/biblio/bibtex/contrib/economic/) packages from CTAN (only if you want to build Dynare user guide, no more needed with Dynare unstable)
   - [Eplain](http://www.tug.org/eplain/) TeX macros (only if you want to build Dynare++ source documentation)
   - [Beamer](http://latex-beamer.sourceforge.net/) (for some PDF presentations)
 - For building the reference manual:
   - [GNU Texinfo](http://www.gnu.org/software/texinfo/)
   - [Texi2HTML](http://www.nongnu.org/texi2html) and [Latex2HTML](http://www.latex2html.org), if you want nice mathematical formulas in HTML output
   - [Doxygen](http://www.stack.nl/%7Edimitri/doxygen/) (if you want to build Dynare preprocessor source documentation)
-- For Octave, the development libraries corresponding to the UMFPACK packaged with Octave (only in unstable)
+- For Octave, the development libraries corresponding to the UMFPACK packaged with Octave
 
 ### Preparing the sources
 
@@ -78,9 +77,8 @@ If you have downloaded the sources from an official source archive or the source
 
 If you want to use Git, do the following from a terminal:
 
-    git clone http://github.com/DynareTeam/dynare.git
+    git clone --recursive http://github.com/DynareTeam/dynare.git
     cd dynare
-    git submodule update --init
     autoreconf -si
 
 The last line runs Autoconf and Automake in order to prepare the build environment (this is not necessary if you got the sources from an official source archive or the source snapshot).
@@ -139,12 +137,12 @@ apt-get build-dep dynare
 Alternatively, if you want to build everything, manually install the following packages:
 
 - `build-essential` (for gcc, g++ and make)
-- `octave3.2-headers` or `liboctave-dev` (will install ATLAS)
+- `liboctave-dev` or `octave3.2-headers` (will install ATLAS)
 - `libboost-graph-dev`
 - `libgsl0-dev`
 - `libmatio-dev`
 - `libslicot-dev` and `libslicot-pic`
-- `libsuitesparse-dev` (only for Unstable)
+- `libsuitesparse-dev`
 - `flex`
 - `bison`
 - `autoconf`
@@ -257,21 +255,24 @@ Configure and make:
     - Next to `Command Line Tools`, click on `Install`
 - Download [MacOSX10.6.sdk.zip](http://www.jamesgeorge.org/uploads/MacOSX10.6.sdk.zip) and unzip it in `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs`. Change the owner to be `root` and the group to be `wheel`
 
-- Install [Homebrew](http://mxcl.github.io/homebrew/)
+- Install [Homebrew](http://mxcl.github.io/homebrew/) and [Homebrew Science](https://github.com/Homebrew/homebrew-science)
 - Install the following brews:
-```
-    brew install automake
-    brew install gsl
-    brew install boost
-    brew install gfortran
-    brew install matlab2tikz --HEAD
-    brew install libmatio --with-hdf5
-    brew install slicot --with-default-integer-8
-```
+    - ```brew install automake```
+    - ```brew install gsl```
+    - ```brew install bison```
+    - ```brew install boost```
+    - ```brew install gfortran```
+    - ```brew install libmatio --with-hdf5```
+    - ```brew install slicot --with-default-integer-8```
 - **(Optional)** To compile Dynare mex files for use on Octave, first install Octave following the [Simple Installation Instructions](http://wiki.octave.org/Octave_for_MacOS_X#Simple_Installation_Instructions_3). Then, you will probably also want to install graphicsmagick via Homebrew with `brew install graphicsmagick`.
-- **(Optional)** To compile Dynare's documentation, first install the latest version of [MacTeX](http://www.tug.org/mactex/). Then install `doxygen` and `latex2html` via Homebrew with the following commands:
+- **(Optional)** To compile Dynare's documentation, first install the latest version of [MacTeX](http://www.tug.org/mactex/). Then install `doxygen`, `latex2html` and `texi2html` via Homebrew with the following commands:
+    - ```brew install doxygen```
+    - ```brew install texinfo```
+    - ```brew install latex2html```
+    - ```brew install texi2html```
 - **(On OS X 10.7 Only)** Copy [FlexLexer.h](http://www.dynare.org/DynareWiki/BuildingDynareFromSource?action=AttachFile&do=view&target=FlexLexer.h) into the `preprocessor` directory (there was an error in the `FlexLexer.h` file distributed with 10.7)
 - Finally, switch to the root dynare directory. Ensure your path contains `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin:/usr/local/sbin`. Run:
     - `autoconf -si`
-    - `./configure --with-matlab=/Applications/MATLAB_R2013a.app MATLAB_VERSION=8.1` for builds with Matlab or `./configure` for builds just using Octave
+    - `./configure --with-matlab=/Applications/MATLAB_R2013a.app MATLAB_VERSION=8.1 YACC=/usr/local/Cellar/bison/<<BISON VERSION>>/bin/bison`
     - `make`
+    - `make pdf TEXI2DVI=/usr/local/Cellar/texinfo/5.2/bin/texi2dvi`, where you replace everything after the equal sign with the path to the `texi2dvi` installed by homebrew when you installed `texinfo`.
diff --git a/configure.ac b/configure.ac
index 5e7cea34f230b56da3e64506a7ce038022f8033e..60b946a3c7560fad4e972b461b16cfc1b1cf66e6 100755
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
-dnl Copyright (C) 2009-2013 Dynare Team
+dnl Copyright (C) 2009-2014 Dynare Team
 dnl
 dnl This file is part of Dynare.
 dnl
@@ -18,7 +18,7 @@ dnl You should have received a copy of the GNU General Public License
 dnl along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 AC_PREREQ([2.62])
-AC_INIT([dynare], [4.4-unstable])
+AC_INIT([dynare], [4.5-unstable])
 AC_CONFIG_SRCDIR([preprocessor/DynareMain.cc])
 AM_INIT_AUTOMAKE([1.11 -Wall -Wno-portability foreign no-dist-gzip dist-xz tar-pax])
 
@@ -62,6 +62,9 @@ AX_PROG_LN_S
 AC_PROG_MKDIR_P
 
 AM_PROG_LEX
+# Hack to get lex include dir, ticket #575
+AC_PATH_PROG([LEXPATH], [$LEX])
+AC_SUBST([LEXINC], [`eval "echo $LEXPATH | sed 's|$LEX$|../include|'"`])
 
 AC_CHECK_PROG([YACC], [bison], [bison])
 if test "x$YACC" = "x"; then
@@ -70,7 +73,7 @@ if test "x$YACC" = "x"; then
 fi
 
 # We need 1.36 because of unordered_{set,hash} used by Dynare++
-AX_BOOST_BASE([1.36])
+AX_BOOST_BASE([1.36], [], [AC_MSG_ERROR([Can't find Boost >= 1.36])])
 
 CPPFLAGS_SAVED="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
@@ -160,6 +163,12 @@ fi
 AM_CONDITIONAL([HAVE_BLAS], [test x"$ax_blas_ok" = "xyes"])
 AM_CONDITIONAL([HAVE_LAPACK], [test x"$ax_lapack_ok" = "xyes"])
 
+case ${host_os} in
+  *mingw32*)
+    # Ensure that -lpthread is statically linked under MinGW
+    PTHREAD_LIBS="-Wl,-Bstatic -lpthread -Wl,-Bdynamic"
+    ;;
+esac
 AX_PTHREAD
 
 AC_CONFIG_FILES([Makefile
diff --git a/contrib/dmm b/contrib/dmm
new file mode 160000
index 0000000000000000000000000000000000000000..ea7846fd71d32851877cf60008ac5046b51a7a51
--- /dev/null
+++ b/contrib/dmm
@@ -0,0 +1 @@
+Subproject commit ea7846fd71d32851877cf60008ac5046b51a7a51
diff --git a/contrib/ms-sbvar/switch_dw b/contrib/ms-sbvar/switch_dw
index 29c446f7fe8a773860ebee347662c4ae2494c5e9..8b3d14040133ea5b622cde9ea79b3b0b41891bce 160000
--- a/contrib/ms-sbvar/switch_dw
+++ b/contrib/ms-sbvar/switch_dw
@@ -1 +1 @@
-Subproject commit 29c446f7fe8a773860ebee347662c4ae2494c5e9
+Subproject commit 8b3d14040133ea5b622cde9ea79b3b0b41891bce
diff --git a/contrib/ms-sbvar/utilities_dw b/contrib/ms-sbvar/utilities_dw
index b388d5eac8c8d092088db5ef805584ae4dd2d952..216abedb9ab4df5dd4dca07c721f7c07392801e9 160000
--- a/contrib/ms-sbvar/utilities_dw
+++ b/contrib/ms-sbvar/utilities_dw
@@ -1 +1 @@
-Subproject commit b388d5eac8c8d092088db5ef805584ae4dd2d952
+Subproject commit 216abedb9ab4df5dd4dca07c721f7c07392801e9
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 90e21fe469d01d2752a14c076e4a844d0a421956..23b3ae4321843497ebb66defc8d15986bf2a4052 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -24,7 +24,7 @@ endif
 
 pdf-local: $(PDF_TARGETS)
 
-EXTRA_DIST = guide.tex guide.bbl bibmad.sty bvar-a-la-sims.tex dr.tex dr.bib
+EXTRA_DIST = guide.tex guide.bbl bibmad.sty bvar-a-la-sims.tex dr.tex dr.bib dynare.plots
 
 guide.pdf: guide.tex guide.bbl bibmad.sty
 	$(PDFLATEX) guide
diff --git a/doc/dynare.plots/BaxterKingFilter.eps b/doc/dynare.plots/BaxterKingFilter.eps
new file mode 100644
index 0000000000000000000000000000000000000000..60765a8a5979d972deb53b05880b5d46b1b5530a
--- /dev/null
+++ b/doc/dynare.plots/BaxterKingFilter.eps
@@ -0,0 +1,384 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.10-3-amd64 #1 SMP Debian 3.10.11-1 (2013-09-10) x86_64.
+%%Title: ../doc/dynare.plots/BaxterKingFilter.eps
+%%CreationDate: 11/12/2013  18:18:18
+%%DocumentNeededFonts: Helvetica
+%%DocumentProcessColors: Cyan Magenta Yellow Black
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox:    70   213   546   591
+%%EndComments
+
+%%BeginProlog
+% MathWorks dictionary
+/MathWorks 160 dict begin
+% definition operators
+/bdef {bind def} bind def
+/ldef {load def} bind def
+/xdef {exch def} bdef
+/xstore {exch store} bdef
+% operator abbreviations
+/c  /clip ldef
+/cc /concat ldef
+/cp /closepath ldef
+/gr /grestore ldef
+/gs /gsave ldef
+/mt /moveto ldef
+/np /newpath ldef
+/cm /currentmatrix ldef
+/sm /setmatrix ldef
+/rm /rmoveto ldef
+/rl /rlineto ldef
+/s {show newpath} bdef
+/sc {setcmykcolor} bdef
+/sr /setrgbcolor ldef
+/sg /setgray ldef
+/w /setlinewidth ldef
+/j /setlinejoin ldef
+/cap /setlinecap ldef
+/rc {rectclip} bdef
+/rf {rectfill} bdef
+% page state control
+/pgsv () def
+/bpage {/pgsv save def} bdef
+/epage {pgsv restore} bdef
+/bplot /gsave ldef
+/eplot {stroke grestore} bdef
+% orientation switch
+/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def
+% coordinate system mappings
+/dpi2point 0 def
+% font control
+/FontSize 0 def
+/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]
+  makefont setfont} bdef
+/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse
+  exch dup 3 1 roll findfont dup length dict begin
+  { 1 index /FID ne {def}{pop pop} ifelse } forall
+  /Encoding exch def currentdict end definefont pop} bdef
+/isroman {findfont /CharStrings get /Agrave known} bdef
+/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse
+  exch FMS} bdef
+/csm {1 dpi2point div -1 dpi2point div scale neg translate
+ dup landscapeMode eq {pop -90 rotate}
+  {rotateMode eq {90 rotate} if} ifelse} bdef
+% line types: solid, dotted, dashed, dotdash
+/SO { [] 0 setdash } bdef
+/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef
+/DA { [6 dpi2point mul] 0 setdash } bdef
+/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4
+  dpi2point mul] 0 setdash } bdef
+% macros for lines and objects
+/L {lineto stroke} bdef
+/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef
+/AP {{rlineto} repeat} bdef
+/PDlw -1 def
+/W {/PDlw currentlinewidth def setlinewidth} def
+/PP {closepath eofill} bdef
+/DP {closepath stroke} bdef
+/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto
+  neg 0 exch rlineto closepath} bdef
+/FR {MR stroke} bdef
+/PR {MR fill} bdef
+/L1i {{currentfile picstr readhexstring pop} image} bdef
+/tMatrix matrix def
+/MakeOval {newpath tMatrix currentmatrix pop translate scale
+0 0 1 0 360 arc tMatrix setmatrix} bdef
+/FO {MakeOval stroke} bdef
+/PO {MakeOval fill} bdef
+/PD {currentlinewidth 2 div 0 360 arc fill
+   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def
+/FA {newpath tMatrix currentmatrix pop translate scale
+  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef
+/PA {newpath tMatrix currentmatrix pop	translate 0 0 moveto scale
+  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef
+/FAn {newpath tMatrix currentmatrix pop translate scale
+  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef
+/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale
+  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef
+/vradius 0 def /hradius 0 def /lry 0 def
+/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def
+/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef
+  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly
+  vradius add translate hradius vradius scale 0 0 1 180 270 arc 
+  tMatrix setmatrix lrx hradius sub uly vradius add translate
+  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix
+  lrx hradius sub lry vradius sub translate hradius vradius scale
+  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub
+  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix
+  closepath} bdef
+/FRR {MRR stroke } bdef
+/PRR {MRR fill } bdef
+/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def
+  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate
+  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad
+  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix
+  closepath} bdef
+/FlrRR {MlrRR stroke } bdef
+/PlrRR {MlrRR fill } bdef
+/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def
+  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate
+  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad
+  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix
+  closepath} bdef
+/FtbRR {MtbRR stroke } bdef
+/PtbRR {MtbRR fill } bdef
+/stri 6 array def /dtri 6 array def
+/smat 6 array def /dmat 6 array def
+/tmat1 6 array def /tmat2 6 array def /dif 3 array def
+/asub {/ind2 exch def /ind1 exch def dup dup
+  ind1 get exch ind2 get sub exch } bdef
+/tri_to_matrix {
+  2 0 asub 3 1 asub 4 0 asub 5 1 asub
+  dup 0 get exch 1 get 7 -1 roll astore } bdef
+/compute_transform {
+  dmat dtri tri_to_matrix tmat1 invertmatrix 
+  smat stri tri_to_matrix tmat2 concatmatrix } bdef
+/ds {stri astore pop} bdef
+/dt {dtri astore pop} bdef
+/db {2 copy /cols xdef /rows xdef mul dup 3 mul string
+  currentfile 
+  3 index 0 eq {/ASCIIHexDecode filter}
+  {/ASCII85Decode filter 3 index 2 eq {/RunLengthDecode filter} if }
+  ifelse exch readstring pop
+  dup 0 3 index getinterval /rbmap xdef
+  dup 2 index dup getinterval /gbmap xdef
+  1 index dup 2 mul exch getinterval /bbmap xdef pop pop}bdef
+/it {gs np dtri aload pop moveto lineto lineto cp c
+  cols rows 8 compute_transform 
+  rbmap gbmap bbmap true 3 colorimage gr}bdef
+/il {newpath moveto lineto stroke}bdef
+currentdict end def
+%%EndProlog
+
+%%BeginSetup
+MathWorks begin
+
+0 cap
+
+end
+%%EndSetup
+
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox:    70   213   546   591
+MathWorks begin
+bpage
+%%EndPageSetup
+
+%%BeginObject: obj1
+bplot
+
+/dpi2point 12 def
+portraitMode 0216 7344 csm
+
+  628   247  5717  4541 rc
+85 dict begin %Colortable dictionary
+/c0 { 0.000000 0.000000 0.000000 sr} bdef
+/c1 { 1.000000 1.000000 1.000000 sr} bdef
+/c2 { 0.900000 0.000000 0.000000 sr} bdef
+/c3 { 0.000000 0.820000 0.000000 sr} bdef
+/c4 { 0.000000 0.000000 0.800000 sr} bdef
+/c5 { 0.910000 0.820000 0.320000 sr} bdef
+/c6 { 1.000000 0.260000 0.820000 sr} bdef
+/c7 { 0.000000 0.820000 0.820000 sr} bdef
+c0
+1 j
+1 sg
+   0    0 6913 5186 rf
+6 w
+0 4226 5356 0 0 -4226 899 4615 4 MP
+PP
+-5356 0 0 4226 5356 0 0 -4226 899 4615 5 MP stroke
+4 w
+DO
+SO
+6 w
+0 sg
+ 899 4615 mt 6255 4615 L
+ 899  389 mt 6255  389 L
+ 899 4615 mt  899  389 L
+6255 4615 mt 6255  389 L
+ 899 4615 mt 6255 4615 L
+ 899 4615 mt  899  389 L
+1480 4615 mt 1480 4561 L
+1480  389 mt 1480  442 L
+%%IncludeResource: font Helvetica
+/Helvetica /ISOLatin1Encoding 120 FMSR
+
+1267 4760 mt 
+(1957Q4) s
+2092 4615 mt 2092 4561 L
+2092  389 mt 2092  442 L
+1879 4760 mt 
+(1962Q4) s
+2704 4615 mt 2704 4561 L
+2704  389 mt 2704  442 L
+2491 4760 mt 
+(1967Q4) s
+3316 4615 mt 3316 4561 L
+3316  389 mt 3316  442 L
+3103 4760 mt 
+(1972Q4) s
+3928 4615 mt 3928 4561 L
+3928  389 mt 3928  442 L
+3715 4760 mt 
+(1977Q4) s
+4541 4615 mt 4541 4561 L
+4541  389 mt 4541  442 L
+4328 4760 mt 
+(1982Q4) s
+5153 4615 mt 5153 4561 L
+5153  389 mt 5153  442 L
+4940 4760 mt 
+(1987Q4) s
+5765 4615 mt 5765 4561 L
+5765  389 mt 5765  442 L
+5552 4760 mt 
+(1992Q4) s
+ 899 4514 mt  952 4514 L
+6255 4514 mt 6201 4514 L
+ 728 4558 mt 
+(-1) s
+ 899 4050 mt  952 4050 L
+6255 4050 mt 6201 4050 L
+ 628 4094 mt 
+(-0.8) s
+ 899 3585 mt  952 3585 L
+6255 3585 mt 6201 3585 L
+ 628 3629 mt 
+(-0.6) s
+ 899 3121 mt  952 3121 L
+6255 3121 mt 6201 3121 L
+ 628 3165 mt 
+(-0.4) s
+ 899 2657 mt  952 2657 L
+6255 2657 mt 6201 2657 L
+ 628 2701 mt 
+(-0.2) s
+ 899 2193 mt  952 2193 L
+6255 2193 mt 6201 2193 L
+ 798 2237 mt 
+(0) s
+ 899 1729 mt  952 1729 L
+6255 1729 mt 6201 1729 L
+ 698 1773 mt 
+(0.2) s
+ 899 1264 mt  952 1264 L
+6255 1264 mt 6201 1264 L
+ 698 1308 mt 
+(0.4) s
+ 899  800 mt  952  800 L
+6255  800 mt 6201  800 L
+ 698  844 mt 
+(0.6) s
+ 899 4615 mt 6255 4615 L
+ 899  389 mt 6255  389 L
+ 899 4615 mt  899  389 L
+6255 4615 mt 6255  389 L
+gs 899 389 5357 4227 rc
+31 12 31 676 30 -486 31 425 31 -1153 30 -555 31 -24 30 460 
+31 -265 31 -694 30 753 31 -407 30 230 31 -138 31 659 30 472 
+31 -400 30 -229 31 -107 31 -5 30 -479 31 615 30 -148 31 597 
+31 -50 30 -1070 31 679 30 77 31 493 31 524 30 -41 31 -1027 
+30 -141 31 214 31 3 30 -157 31 198 31 202 30 -681 31 411 
+30 -34 31 -120 31 4 30 -526 31 -11 30 275 31 1054 31 176 
+30 -1612 31 249 30 1174 31 -48 31 -535 30 609 31 364 30 -70 
+31 -1162 31 454 30 579 31 -638 30 210 31 -685 31 1139 30 -375 
+31 405 30 1063 31 -819 31 -1243 30 -191 31 54 31 182 30 -625 
+31 742 30 307 31 -138 31 18 30 -392 31 1208 30 -331 31 -617 
+31 -397 30 500 31 -129 30 650 31 -643 31 -39 30 -633 31 262 
+30 238 31 -119 31 581 30 -78 31 418 30 277 31 -272 31 -539 
+30 619 31 418 30 -911 31 -454 31 -270 30 -569 31 1089 30 -246 
+31 210 31 532 30 303 31 -230 31 -1012 30 156 31 -977 30 -216 
+31 452 31 -425 30 1663 31 -578 30 1117 31 122 31 -122 30 -108 
+31 399 30 22 31 -661 31 60 30 125 31 1128 30 -715 31 -50 
+31 -594 30 -469 31 153 30 287 31 -45 31 462 30 273 31 -89 
+30 -321 31 -421 31 -124 30 297 31 -159 31 -443 30 286 31 -229 
+30 -7 31 213 31 97 30 598 31 -556 30 -367 31 -95 31 391 
+30 -463 31 268 30 1060 31 -948 31 419 30 -89 31 566 30 -43 
+31 -678 31 -47 30 573 31 -23 30 604 31 -26 31 -643 30 409 
+31 293 30 -83 31 -665 31 510 30 -870 31 78 30 589 899 1359 176 MP stroke
+DA
+/c8 { 1.000000 0.000000 0.000000 sr} bdef
+c8
+31 299 31 88 30 -301 31 -716 31 -901 30 -729 31 -326 30 58 
+31 216 31 118 30 -42 31 10 30 279 31 615 31 724 30 429 
+31 -134 30 -602 31 -680 31 -328 30 199 31 505 30 392 31 -47 
+31 -388 30 -329 31 128 30 619 31 705 31 319 30 -296 31 -731 
+30 -703 31 -295 31 110 30 239 31 148 31 58 30 9 31 -102 
+30 -214 31 -260 31 -210 30 -6 31 321 30 534 31 380 31 -5 
+30 -274 31 -224 30 104 31 428 31 485 30 180 31 -257 30 -450 
+31 -305 31 -81 30 -35 31 -167 30 -196 31 70 31 490 30 719 
+31 565 30 27 31 -720 31 -1174 30 -1007 31 -337 31 317 30 581 
+31 483 30 286 31 215 31 247 30 237 31 72 30 -222 31 -387 
+31 -252 30 10 31 165 30 102 31 -128 31 -430 30 -519 31 -200 
+30 336 31 751 31 738 30 361 31 5 30 -129 31 -78 31 21 
+30 -17 31 -229 30 -555 31 -725 31 -612 30 -187 31 402 30 816 
+31 912 31 573 30 -19 31 -590 31 -942 30 -1036 31 -803 30 -229 
+31 441 31 900 30 1018 31 860 30 591 31 341 31 75 30 -227 
+31 -457 30 -466 31 -276 31 47 30 293 31 237 30 -104 31 -601 
+31 -861 30 -663 31 -72 30 568 31 886 31 685 30 148 31 -345 
+30 -547 31 -399 31 -134 30 44 31 18 31 -103 30 -176 31 -84 
+30 202 31 451 31 429 30 93 31 -293 30 -440 31 -292 31 4 
+30 245 31 322 30 302 31 230 31 111 30 -34 31 -158 30 -209 
+31 -178 31 15 30 223 31 310 30 298 31 226 31 58 30 -143 
+31 -200 30 -175 31 -115 31 -137 30 -250 31 -397 30 -514 899 2994 176 MP stroke
+gr
+
+c8
+DA
+0 sg
+ 882 4658 mt 
+( ) s
+6239  431 mt 
+( ) s
+SO
+1 sg
+0 334 1903 0 0 -334 4293 783 4 MP
+PP
+-1903 0 0 334 1903 0 0 -334 4293 783 5 MP stroke
+4 w
+DO
+SO
+6 w
+0 sg
+4293  783 mt 6196  783 L
+4293  449 mt 6196  449 L
+4293  783 mt 4293  449 L
+6196  783 mt 6196  449 L
+4293  783 mt 6196  783 L
+4293  783 mt 4293  449 L
+4293  783 mt 6196  783 L
+4293  449 mt 6196  449 L
+4293  783 mt 4293  449 L
+6196  783 mt 6196  449 L
+4756  583 mt 
+(Stationary component of y) s
+gs 4293 449 1904 335 rc
+356 0 4364 540 2 MP stroke
+gr
+
+4756  734 mt 
+(Filtered y) s
+gs 4293 449 1904 335 rc
+DA
+c8
+356 0 4364 691 2 MP stroke
+SO
+gr
+
+c8
+
+end %%Color Dict
+
+eplot
+%%EndObject
+
+epage
+end
+
+showpage
+
+%%Trailer
+%%EOF
diff --git a/doc/dynare.plots/BaxterKingFilter.jpg b/doc/dynare.plots/BaxterKingFilter.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..579cb8c1e677b644d9dfb30fb1048e6fbee995ef
Binary files /dev/null and b/doc/dynare.plots/BaxterKingFilter.jpg differ
diff --git a/doc/dynare.plots/BaxterKingFilter.png b/doc/dynare.plots/BaxterKingFilter.png
new file mode 100644
index 0000000000000000000000000000000000000000..13f972d978a65ef2ae5ba216977f4edaf27ba582
Binary files /dev/null and b/doc/dynare.plots/BaxterKingFilter.png differ
diff --git a/doc/dynare.plots/HPCycle.eps b/doc/dynare.plots/HPCycle.eps
new file mode 100644
index 0000000000000000000000000000000000000000..09788100d0f339454d5d3cf8bab7c5dbab87f17b
--- /dev/null
+++ b/doc/dynare.plots/HPCycle.eps
@@ -0,0 +1,386 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.10-3-amd64 #1 SMP Debian 3.10.11-1 (2013-09-10) x86_64.
+%%Title: ../doc/dynare.plots/HPCycle.eps
+%%CreationDate: 11/12/2013  18:12:56
+%%DocumentNeededFonts: Helvetica
+%%DocumentProcessColors: Cyan Magenta Yellow Black
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox:    70   213   561   591
+%%EndComments
+
+%%BeginProlog
+% MathWorks dictionary
+/MathWorks 160 dict begin
+% definition operators
+/bdef {bind def} bind def
+/ldef {load def} bind def
+/xdef {exch def} bdef
+/xstore {exch store} bdef
+% operator abbreviations
+/c  /clip ldef
+/cc /concat ldef
+/cp /closepath ldef
+/gr /grestore ldef
+/gs /gsave ldef
+/mt /moveto ldef
+/np /newpath ldef
+/cm /currentmatrix ldef
+/sm /setmatrix ldef
+/rm /rmoveto ldef
+/rl /rlineto ldef
+/s {show newpath} bdef
+/sc {setcmykcolor} bdef
+/sr /setrgbcolor ldef
+/sg /setgray ldef
+/w /setlinewidth ldef
+/j /setlinejoin ldef
+/cap /setlinecap ldef
+/rc {rectclip} bdef
+/rf {rectfill} bdef
+% page state control
+/pgsv () def
+/bpage {/pgsv save def} bdef
+/epage {pgsv restore} bdef
+/bplot /gsave ldef
+/eplot {stroke grestore} bdef
+% orientation switch
+/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def
+% coordinate system mappings
+/dpi2point 0 def
+% font control
+/FontSize 0 def
+/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]
+  makefont setfont} bdef
+/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse
+  exch dup 3 1 roll findfont dup length dict begin
+  { 1 index /FID ne {def}{pop pop} ifelse } forall
+  /Encoding exch def currentdict end definefont pop} bdef
+/isroman {findfont /CharStrings get /Agrave known} bdef
+/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse
+  exch FMS} bdef
+/csm {1 dpi2point div -1 dpi2point div scale neg translate
+ dup landscapeMode eq {pop -90 rotate}
+  {rotateMode eq {90 rotate} if} ifelse} bdef
+% line types: solid, dotted, dashed, dotdash
+/SO { [] 0 setdash } bdef
+/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef
+/DA { [6 dpi2point mul] 0 setdash } bdef
+/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4
+  dpi2point mul] 0 setdash } bdef
+% macros for lines and objects
+/L {lineto stroke} bdef
+/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef
+/AP {{rlineto} repeat} bdef
+/PDlw -1 def
+/W {/PDlw currentlinewidth def setlinewidth} def
+/PP {closepath eofill} bdef
+/DP {closepath stroke} bdef
+/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto
+  neg 0 exch rlineto closepath} bdef
+/FR {MR stroke} bdef
+/PR {MR fill} bdef
+/L1i {{currentfile picstr readhexstring pop} image} bdef
+/tMatrix matrix def
+/MakeOval {newpath tMatrix currentmatrix pop translate scale
+0 0 1 0 360 arc tMatrix setmatrix} bdef
+/FO {MakeOval stroke} bdef
+/PO {MakeOval fill} bdef
+/PD {currentlinewidth 2 div 0 360 arc fill
+   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def
+/FA {newpath tMatrix currentmatrix pop translate scale
+  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef
+/PA {newpath tMatrix currentmatrix pop	translate 0 0 moveto scale
+  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef
+/FAn {newpath tMatrix currentmatrix pop translate scale
+  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef
+/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale
+  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef
+/vradius 0 def /hradius 0 def /lry 0 def
+/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def
+/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef
+  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly
+  vradius add translate hradius vradius scale 0 0 1 180 270 arc 
+  tMatrix setmatrix lrx hradius sub uly vradius add translate
+  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix
+  lrx hradius sub lry vradius sub translate hradius vradius scale
+  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub
+  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix
+  closepath} bdef
+/FRR {MRR stroke } bdef
+/PRR {MRR fill } bdef
+/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def
+  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate
+  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad
+  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix
+  closepath} bdef
+/FlrRR {MlrRR stroke } bdef
+/PlrRR {MlrRR fill } bdef
+/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def
+  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate
+  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad
+  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix
+  closepath} bdef
+/FtbRR {MtbRR stroke } bdef
+/PtbRR {MtbRR fill } bdef
+/stri 6 array def /dtri 6 array def
+/smat 6 array def /dmat 6 array def
+/tmat1 6 array def /tmat2 6 array def /dif 3 array def
+/asub {/ind2 exch def /ind1 exch def dup dup
+  ind1 get exch ind2 get sub exch } bdef
+/tri_to_matrix {
+  2 0 asub 3 1 asub 4 0 asub 5 1 asub
+  dup 0 get exch 1 get 7 -1 roll astore } bdef
+/compute_transform {
+  dmat dtri tri_to_matrix tmat1 invertmatrix 
+  smat stri tri_to_matrix tmat2 concatmatrix } bdef
+/ds {stri astore pop} bdef
+/dt {dtri astore pop} bdef
+/db {2 copy /cols xdef /rows xdef mul dup 3 mul string
+  currentfile 
+  3 index 0 eq {/ASCIIHexDecode filter}
+  {/ASCII85Decode filter 3 index 2 eq {/RunLengthDecode filter} if }
+  ifelse exch readstring pop
+  dup 0 3 index getinterval /rbmap xdef
+  dup 2 index dup getinterval /gbmap xdef
+  1 index dup 2 mul exch getinterval /bbmap xdef pop pop}bdef
+/it {gs np dtri aload pop moveto lineto lineto cp c
+  cols rows 8 compute_transform 
+  rbmap gbmap bbmap true 3 colorimage gr}bdef
+/il {newpath moveto lineto stroke}bdef
+currentdict end def
+%%EndProlog
+
+%%BeginSetup
+MathWorks begin
+
+0 cap
+
+end
+%%EndSetup
+
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox:    70   213   561   591
+MathWorks begin
+bpage
+%%EndPageSetup
+
+%%BeginObject: obj1
+bplot
+
+/dpi2point 12 def
+portraitMode 0216 7344 csm
+
+  628   247  5889  4541 rc
+85 dict begin %Colortable dictionary
+/c0 { 0.000000 0.000000 0.000000 sr} bdef
+/c1 { 1.000000 1.000000 1.000000 sr} bdef
+/c2 { 0.900000 0.000000 0.000000 sr} bdef
+/c3 { 0.000000 0.820000 0.000000 sr} bdef
+/c4 { 0.000000 0.000000 0.800000 sr} bdef
+/c5 { 0.910000 0.820000 0.320000 sr} bdef
+/c6 { 1.000000 0.260000 0.820000 sr} bdef
+/c7 { 0.000000 0.820000 0.820000 sr} bdef
+c0
+1 j
+1 sg
+   0    0 6913 5186 rf
+6 w
+0 4226 5356 0 0 -4226 899 4615 4 MP
+PP
+-5356 0 0 4226 5356 0 0 -4226 899 4615 5 MP stroke
+4 w
+DO
+SO
+6 w
+0 sg
+ 899 4615 mt 6255 4615 L
+ 899  389 mt 6255  389 L
+ 899 4615 mt  899  389 L
+6255 4615 mt 6255  389 L
+ 899 4615 mt 6255 4615 L
+ 899 4615 mt  899  389 L
+1410 4615 mt 1410 4561 L
+1410  389 mt 1410  442 L
+%%IncludeResource: font Helvetica
+/Helvetica /ISOLatin1Encoding 120 FMSR
+
+1197 4760 mt 
+(1954Q4) s
+1948 4615 mt 1948 4561 L
+1948  389 mt 1948  442 L
+1735 4760 mt 
+(1959Q4) s
+2486 4615 mt 2486 4561 L
+2486  389 mt 2486  442 L
+2273 4760 mt 
+(1964Q4) s
+3025 4615 mt 3025 4561 L
+3025  389 mt 3025  442 L
+2812 4760 mt 
+(1969Q4) s
+3563 4615 mt 3563 4561 L
+3563  389 mt 3563  442 L
+3350 4760 mt 
+(1974Q4) s
+4101 4615 mt 4101 4561 L
+4101  389 mt 4101  442 L
+3888 4760 mt 
+(1979Q4) s
+4640 4615 mt 4640 4561 L
+4640  389 mt 4640  442 L
+4427 4760 mt 
+(1984Q4) s
+5178 4615 mt 5178 4561 L
+5178  389 mt 5178  442 L
+4965 4760 mt 
+(1989Q4) s
+5716 4615 mt 5716 4561 L
+5716  389 mt 5716  442 L
+5503 4760 mt 
+(1994Q4) s
+6255 4615 mt 6255 4561 L
+6255  389 mt 6255  442 L
+6042 4760 mt 
+(1999Q4) s
+ 899 4405 mt  952 4405 L
+6255 4405 mt 6201 4405 L
+ 728 4449 mt 
+(-1) s
+ 899 3725 mt  952 3725 L
+6255 3725 mt 6201 3725 L
+ 628 3769 mt 
+(-0.5) s
+ 899 3045 mt  952 3045 L
+6255 3045 mt 6201 3045 L
+ 798 3089 mt 
+(0) s
+ 899 2365 mt  952 2365 L
+6255 2365 mt 6201 2365 L
+ 698 2409 mt 
+(0.5) s
+ 899 1686 mt  952 1686 L
+6255 1686 mt 6201 1686 L
+ 798 1730 mt 
+(1) s
+ 899 1006 mt  952 1006 L
+6255 1006 mt 6201 1006 L
+ 698 1050 mt 
+(1.5) s
+ 899 4615 mt 6255 4615 L
+ 899  389 mt 6255  389 L
+ 899 4615 mt  899  389 L
+6255 4615 mt 6255  389 L
+gs 899 389 5357 4227 rc
+27 -628 27 -299 27 -259 27 -645 27 -168 27 101 27 -250 27 77 
+27 286 27 -83 27 -41 26 -264 27 164 27 -187 27 -2 27 389 
+27 139 27 73 27 47 27 -74 27 775 27 432 27 107 26 16 
+27 206 27 -135 27 -384 27 536 27 275 27 -35 27 253 27 -705 
+27 -338 27 327 27 -313 26 -59 27 130 27 376 27 33 27 -185 
+27 -424 27 551 27 -207 27 292 27 -122 27 119 26 -167 27 450 
+27 357 27 12 27 13 27 -619 27 96 27 -15 27 220 27 397 
+27 -173 27 -247 26 9 27 -37 27 171 27 -922 27 -31 27 462 
+27 -398 27 -372 27 176 27 -541 27 624 27 -315 26 -148 27 78 
+27 -174 27 127 27 35 27 -89 27 -182 27 -226 27 -159 27 82 
+27 296 26 -437 27 88 27 -339 27 370 27 358 27 -244 27 375 
+27 350 27 -303 27 -156 27 791 27 65 26 84 27 110 27 -28 
+27 -35 27 -270 27 10 27 302 27 -75 27 521 27 123 27 -561 
+27 -26 26 -212 27 133 27 420 27 -184 27 -487 27 -84 27 -272 
+27 42 27 -553 27 215 27 229 27 252 26 30 27 7 27 34 
+27 -234 27 18 27 -194 27 102 27 -15 27 -179 27 -85 27 -8 
+26 262 27 107 27 -154 27 -19 27 30 27 -99 27 -242 27 55 
+27 -125 27 -79 27 328 27 67 26 -281 27 173 27 153 27 -123 
+27 -125 27 37 27 48 27 549 27 285 27 575 27 676 27 -383 
+26 -282 27 -74 27 -184 27 -161 27 -16 27 202 27 -74 27 242 
+27 71 27 -164 27 -508 26 -168 27 82 27 18 27 -229 27 -205 
+27 -122 27 231 27 255 27 -365 27 -170 27 -298 27 221 26 -100 
+27 -268 27 113 27 -209 27 75 27 6 27 -259 27 739 27 222 
+27 -85 27 -120 27 136 26 -346 27 409 27 -167 27 -437 27 353 
+27 -144 27 33 27 -106 27 376 27 193 27 101 26 -27 899 3045 200 MP stroke
+DA
+/c8 { 1.000000 0.000000 0.000000 sr} bdef
+c8
+27 -1255 27 -568 27 -466 27 -1181 27 -220 27 293 27 -399 27 230 
+27 602 27 -147 27 -77 26 -514 27 305 27 -395 27 -39 27 691 
+27 166 27 20 27 -41 27 -274 27 1349 27 628 27 -19 26 -188 
+27 188 27 -462 27 -904 27 903 27 373 27 -225 27 342 27 -1487 
+27 -708 27 601 27 -642 26 -124 27 247 27 702 27 18 27 -401 
+27 -832 27 1062 27 -431 27 541 27 -273 27 204 26 -346 27 850 
+27 639 27 -42 27 -29 27 -1218 27 213 27 6 27 464 27 793 
+27 -320 27 -430 26 89 27 10 27 413 27 -1677 27 110 27 1048 
+27 -638 27 -554 27 515 27 -875 27 1380 27 -479 26 -146 27 287 
+27 -218 27 355 27 151 27 -103 27 -290 27 -375 27 -242 27 212 
+27 592 26 -849 27 174 27 -659 27 704 27 636 27 -555 27 641 
+27 552 27 -722 27 -410 27 1412 27 -39 26 5 27 57 27 -200 
+27 -192 27 -620 27 -44 27 526 27 -201 27 953 27 165 27 -1133 
+27 -47 26 -383 27 303 27 844 27 -340 27 -890 27 -77 27 -425 
+27 195 27 -945 27 564 27 562 27 576 26 123 27 70 27 114 
+27 -403 27 94 27 -318 27 258 27 18 27 -300 27 -110 27 37 
+26 545 27 214 27 -298 27 -35 27 52 27 -205 27 -476 27 103 
+27 -253 27 -167 27 608 27 68 26 -608 27 276 27 217 27 -328 
+27 -323 27 1 27 20 27 974 27 429 27 966 27 1117 27 -938 
+26 -688 27 -244 27 -424 27 -340 27 -30 27 401 27 -125 27 498 
+27 160 27 -280 27 -911 26 -208 27 286 27 156 27 -316 27 -254 
+27 -80 27 592 27 607 27 -607 27 -212 27 -453 27 548 26 -97 
+27 -422 27 312 27 -326 27 219 27 67 27 -449 27 1461 27 396 
+27 -217 27 -278 27 215 26 -718 27 746 27 -391 27 -892 27 652 
+27 -332 27 14 27 -255 27 668 27 283 27 88 26 -167 899 2718 200 MP stroke
+gr
+
+c8
+DA
+0 sg
+ 882 4658 mt 
+( ) s
+6239  431 mt 
+( ) s
+SO
+1 sg
+0 334 1903 0 0 -334 4293 783 4 MP
+PP
+-1903 0 0 334 1903 0 0 -334 4293 783 5 MP stroke
+4 w
+DO
+SO
+6 w
+0 sg
+4293  783 mt 6196  783 L
+4293  449 mt 6196  449 L
+4293  783 mt 4293  449 L
+6196  783 mt 6196  449 L
+4293  783 mt 6196  783 L
+4293  783 mt 4293  449 L
+4293  783 mt 6196  783 L
+4293  449 mt 6196  449 L
+4293  783 mt 4293  449 L
+6196  783 mt 6196  449 L
+4756  583 mt 
+(Stationary component of y) s
+gs 4293 449 1904 335 rc
+356 0 4364 540 2 MP stroke
+gr
+
+4756  734 mt 
+(Filtered y) s
+gs 4293 449 1904 335 rc
+DA
+c8
+356 0 4364 691 2 MP stroke
+SO
+gr
+
+c8
+
+end %%Color Dict
+
+eplot
+%%EndObject
+
+epage
+end
+
+showpage
+
+%%Trailer
+%%EOF
diff --git a/doc/dynare.plots/HPCycle.jpg b/doc/dynare.plots/HPCycle.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b52879512d8f37ff8a5bd292922445ba0d57487d
Binary files /dev/null and b/doc/dynare.plots/HPCycle.jpg differ
diff --git a/doc/dynare.plots/HPCycle.png b/doc/dynare.plots/HPCycle.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ce94af9bd8dfcb56ccd296df6da93512726319f
Binary files /dev/null and b/doc/dynare.plots/HPCycle.png differ
diff --git a/doc/dynare.plots/HPTrend.eps b/doc/dynare.plots/HPTrend.eps
new file mode 100644
index 0000000000000000000000000000000000000000..d5075bf37fe1e9b72c704683b9257fc3d58d28d5
--- /dev/null
+++ b/doc/dynare.plots/HPTrend.eps
@@ -0,0 +1,378 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.10-3-amd64 #1 SMP Debian 3.10.11-1 (2013-09-10) x86_64.
+%%Title: ../doc/dynare.plots/HPTrend.eps
+%%CreationDate: 11/12/2013  18:39:48
+%%DocumentNeededFonts: Helvetica
+%%DocumentProcessColors: Cyan Magenta Yellow Black
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox:    78   213   561   591
+%%EndComments
+
+%%BeginProlog
+% MathWorks dictionary
+/MathWorks 160 dict begin
+% definition operators
+/bdef {bind def} bind def
+/ldef {load def} bind def
+/xdef {exch def} bdef
+/xstore {exch store} bdef
+% operator abbreviations
+/c  /clip ldef
+/cc /concat ldef
+/cp /closepath ldef
+/gr /grestore ldef
+/gs /gsave ldef
+/mt /moveto ldef
+/np /newpath ldef
+/cm /currentmatrix ldef
+/sm /setmatrix ldef
+/rm /rmoveto ldef
+/rl /rlineto ldef
+/s {show newpath} bdef
+/sc {setcmykcolor} bdef
+/sr /setrgbcolor ldef
+/sg /setgray ldef
+/w /setlinewidth ldef
+/j /setlinejoin ldef
+/cap /setlinecap ldef
+/rc {rectclip} bdef
+/rf {rectfill} bdef
+% page state control
+/pgsv () def
+/bpage {/pgsv save def} bdef
+/epage {pgsv restore} bdef
+/bplot /gsave ldef
+/eplot {stroke grestore} bdef
+% orientation switch
+/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def
+% coordinate system mappings
+/dpi2point 0 def
+% font control
+/FontSize 0 def
+/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]
+  makefont setfont} bdef
+/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse
+  exch dup 3 1 roll findfont dup length dict begin
+  { 1 index /FID ne {def}{pop pop} ifelse } forall
+  /Encoding exch def currentdict end definefont pop} bdef
+/isroman {findfont /CharStrings get /Agrave known} bdef
+/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse
+  exch FMS} bdef
+/csm {1 dpi2point div -1 dpi2point div scale neg translate
+ dup landscapeMode eq {pop -90 rotate}
+  {rotateMode eq {90 rotate} if} ifelse} bdef
+% line types: solid, dotted, dashed, dotdash
+/SO { [] 0 setdash } bdef
+/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef
+/DA { [6 dpi2point mul] 0 setdash } bdef
+/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4
+  dpi2point mul] 0 setdash } bdef
+% macros for lines and objects
+/L {lineto stroke} bdef
+/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef
+/AP {{rlineto} repeat} bdef
+/PDlw -1 def
+/W {/PDlw currentlinewidth def setlinewidth} def
+/PP {closepath eofill} bdef
+/DP {closepath stroke} bdef
+/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto
+  neg 0 exch rlineto closepath} bdef
+/FR {MR stroke} bdef
+/PR {MR fill} bdef
+/L1i {{currentfile picstr readhexstring pop} image} bdef
+/tMatrix matrix def
+/MakeOval {newpath tMatrix currentmatrix pop translate scale
+0 0 1 0 360 arc tMatrix setmatrix} bdef
+/FO {MakeOval stroke} bdef
+/PO {MakeOval fill} bdef
+/PD {currentlinewidth 2 div 0 360 arc fill
+   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def
+/FA {newpath tMatrix currentmatrix pop translate scale
+  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef
+/PA {newpath tMatrix currentmatrix pop	translate 0 0 moveto scale
+  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef
+/FAn {newpath tMatrix currentmatrix pop translate scale
+  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef
+/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale
+  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef
+/vradius 0 def /hradius 0 def /lry 0 def
+/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def
+/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef
+  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly
+  vradius add translate hradius vradius scale 0 0 1 180 270 arc 
+  tMatrix setmatrix lrx hradius sub uly vradius add translate
+  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix
+  lrx hradius sub lry vradius sub translate hradius vradius scale
+  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub
+  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix
+  closepath} bdef
+/FRR {MRR stroke } bdef
+/PRR {MRR fill } bdef
+/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def
+  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate
+  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad
+  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix
+  closepath} bdef
+/FlrRR {MlrRR stroke } bdef
+/PlrRR {MlrRR fill } bdef
+/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def
+  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate
+  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad
+  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix
+  closepath} bdef
+/FtbRR {MtbRR stroke } bdef
+/PtbRR {MtbRR fill } bdef
+/stri 6 array def /dtri 6 array def
+/smat 6 array def /dmat 6 array def
+/tmat1 6 array def /tmat2 6 array def /dif 3 array def
+/asub {/ind2 exch def /ind1 exch def dup dup
+  ind1 get exch ind2 get sub exch } bdef
+/tri_to_matrix {
+  2 0 asub 3 1 asub 4 0 asub 5 1 asub
+  dup 0 get exch 1 get 7 -1 roll astore } bdef
+/compute_transform {
+  dmat dtri tri_to_matrix tmat1 invertmatrix 
+  smat stri tri_to_matrix tmat2 concatmatrix } bdef
+/ds {stri astore pop} bdef
+/dt {dtri astore pop} bdef
+/db {2 copy /cols xdef /rows xdef mul dup 3 mul string
+  currentfile 
+  3 index 0 eq {/ASCIIHexDecode filter}
+  {/ASCII85Decode filter 3 index 2 eq {/RunLengthDecode filter} if }
+  ifelse exch readstring pop
+  dup 0 3 index getinterval /rbmap xdef
+  dup 2 index dup getinterval /gbmap xdef
+  1 index dup 2 mul exch getinterval /bbmap xdef pop pop}bdef
+/it {gs np dtri aload pop moveto lineto lineto cp c
+  cols rows 8 compute_transform 
+  rbmap gbmap bbmap true 3 colorimage gr}bdef
+/il {newpath moveto lineto stroke}bdef
+currentdict end def
+%%EndProlog
+
+%%BeginSetup
+MathWorks begin
+
+0 cap
+
+end
+%%EndSetup
+
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox:    78   213   561   591
+MathWorks begin
+bpage
+%%EndPageSetup
+
+%%BeginObject: obj1
+bplot
+
+/dpi2point 12 def
+portraitMode 0216 7344 csm
+
+  731   247  5786  4541 rc
+85 dict begin %Colortable dictionary
+/c0 { 0.000000 0.000000 0.000000 sr} bdef
+/c1 { 1.000000 1.000000 1.000000 sr} bdef
+/c2 { 0.900000 0.000000 0.000000 sr} bdef
+/c3 { 0.000000 0.820000 0.000000 sr} bdef
+/c4 { 0.000000 0.000000 0.800000 sr} bdef
+/c5 { 0.910000 0.820000 0.320000 sr} bdef
+/c6 { 1.000000 0.260000 0.820000 sr} bdef
+/c7 { 0.000000 0.820000 0.820000 sr} bdef
+c0
+1 j
+1 sg
+   0    0 6913 5186 rf
+6 w
+0 4226 5356 0 0 -4226 899 4615 4 MP
+PP
+-5356 0 0 4226 5356 0 0 -4226 899 4615 5 MP stroke
+4 w
+DO
+SO
+6 w
+0 sg
+ 899 4615 mt 6255 4615 L
+ 899  389 mt 6255  389 L
+ 899 4615 mt  899  389 L
+6255 4615 mt 6255  389 L
+ 899 4615 mt 6255 4615 L
+ 899 4615 mt  899  389 L
+1410 4615 mt 1410 4561 L
+1410  389 mt 1410  442 L
+%%IncludeResource: font Helvetica
+/Helvetica /ISOLatin1Encoding 120 FMSR
+
+1197 4760 mt 
+(1954Q4) s
+1948 4615 mt 1948 4561 L
+1948  389 mt 1948  442 L
+1735 4760 mt 
+(1959Q4) s
+2486 4615 mt 2486 4561 L
+2486  389 mt 2486  442 L
+2273 4760 mt 
+(1964Q4) s
+3025 4615 mt 3025 4561 L
+3025  389 mt 3025  442 L
+2812 4760 mt 
+(1969Q4) s
+3563 4615 mt 3563 4561 L
+3563  389 mt 3563  442 L
+3350 4760 mt 
+(1974Q4) s
+4101 4615 mt 4101 4561 L
+4101  389 mt 4101  442 L
+3888 4760 mt 
+(1979Q4) s
+4640 4615 mt 4640 4561 L
+4640  389 mt 4640  442 L
+4427 4760 mt 
+(1984Q4) s
+5178 4615 mt 5178 4561 L
+5178  389 mt 5178  442 L
+4965 4760 mt 
+(1989Q4) s
+5716 4615 mt 5716 4561 L
+5716  389 mt 5716  442 L
+5503 4760 mt 
+(1994Q4) s
+6255 4615 mt 6255 4561 L
+6255  389 mt 6255  442 L
+6042 4760 mt 
+(1999Q4) s
+ 899 3776 mt  952 3776 L
+6255 3776 mt 6201 3776 L
+ 798 3820 mt 
+(5) s
+ 899 2921 mt  952 2921 L
+6255 2921 mt 6201 2921 L
+ 731 2965 mt 
+(10) s
+ 899 2067 mt  952 2067 L
+6255 2067 mt 6201 2067 L
+ 731 2111 mt 
+(15) s
+ 899 1212 mt  952 1212 L
+6255 1212 mt 6201 1212 L
+ 731 1256 mt 
+(20) s
+ 899 4615 mt 6255 4615 L
+ 899  389 mt 6255  389 L
+ 899 4615 mt  899  389 L
+6255 4615 mt 6255  389 L
+gs 899 389 5357 4227 rc
+27 -29 27 -16 27 -32 27 -21 27 59 27 -35 27 18 27 -24 
+27 -16 27 -14 27 67 26 -83 27 -31 27 -48 27 -116 27 11 
+27 -38 27 -42 27 30 27 8 27 19 27 -25 27 -16 26 -75 
+27 -2 27 -16 27 8 27 -41 27 -29 27 50 27 -10 27 -38 
+27 -39 27 -13 27 -49 26 6 27 3 27 21 27 -22 27 -25 
+27 -14 27 34 27 0 27 -53 27 -9 27 -18 26 -87 27 -53 
+27 -15 27 -28 27 -54 27 -28 27 -28 27 -14 27 41 27 50 
+27 -12 27 -73 26 50 27 50 27 -44 27 8 27 -24 27 25 
+27 -42 27 -15 27 3 27 -21 27 -6 27 -74 26 -23 27 -39 
+27 -42 27 -47 27 -20 27 -18 27 -10 27 31 27 -54 27 -38 
+27 -44 26 29 27 -49 27 10 27 -38 27 -51 27 -30 27 -57 
+27 -7 27 2 27 -11 27 20 27 -44 26 -88 27 -39 27 -5 
+27 10 27 12 27 -26 27 3 27 -78 27 -23 27 -39 27 -57 
+27 -10 26 38 27 0 27 -66 27 1 27 -9 27 1 27 -27 
+27 -65 27 -12 27 -27 27 20 27 -41 26 -22 27 -20 27 27 
+27 -4 27 23 27 -43 27 -28 27 8 27 -16 27 -25 27 19 
+26 25 27 -104 27 -17 27 -14 27 -8 27 -4 27 -6 27 -35 
+27 -11 27 -25 27 -41 27 -32 26 -42 27 -36 27 -59 27 -73 
+27 5 27 -7 27 12 27 -29 27 59 27 -66 27 -75 27 -15 
+26 -23 27 -52 27 5 27 -54 27 -39 27 -47 27 9 27 13 
+27 -46 27 -9 27 -78 26 -21 27 -18 27 -55 27 -68 27 -25 
+27 -37 27 -22 27 -65 27 -29 27 -28 27 22 27 -5 26 -24 
+27 44 27 -70 27 31 27 -44 27 -17 27 -58 27 -28 27 -68 
+27 -50 27 -46 27 -56 26 -36 27 3 27 -13 27 -61 27 -50 
+27 -43 27 -56 27 14 27 -19 27 3 27 -5 26 -50 899 4592 200 MP stroke
+DA
+/c8 { 1.000000 0.000000 0.000000 sr} bdef
+c8
+27 -13 27 -13 27 -12 27 -13 27 -13 27 -13 27 -14 27 -15 
+27 -15 27 -16 27 -17 26 -18 27 -19 27 -20 27 -20 27 -21 
+27 -21 27 -20 27 -20 27 -20 27 -19 27 -19 27 -19 26 -18 
+27 -18 27 -17 27 -17 27 -17 27 -16 27 -16 27 -15 27 -15 
+27 -15 27 -15 27 -15 26 -14 27 -15 27 -15 27 -15 27 -15 
+27 -16 27 -17 27 -17 27 -18 27 -19 27 -19 26 -20 27 -20 
+27 -20 27 -20 27 -18 27 -18 27 -16 27 -15 27 -13 27 -12 
+27 -10 27 -10 26 -9 27 -8 27 -8 27 -8 27 -9 27 -10 
+27 -10 27 -12 27 -13 27 -14 27 -16 27 -17 26 -18 27 -20 
+27 -20 27 -22 27 -22 27 -22 27 -23 27 -24 27 -23 27 -25 
+27 -24 26 -24 27 -25 27 -25 27 -25 27 -25 27 -25 27 -25 
+27 -25 27 -25 27 -25 27 -24 27 -25 26 -24 27 -24 27 -24 
+27 -24 27 -23 27 -24 27 -23 27 -23 27 -23 27 -22 27 -23 
+27 -21 26 -21 27 -21 27 -20 27 -20 27 -19 27 -18 27 -18 
+27 -18 27 -17 27 -16 27 -15 27 -15 26 -14 27 -13 27 -12 
+27 -12 27 -12 27 -11 27 -12 27 -11 27 -12 27 -12 27 -12 
+26 -13 27 -14 27 -15 27 -16 27 -16 27 -17 27 -19 27 -19 
+27 -21 27 -21 27 -23 27 -24 26 -24 27 -25 27 -25 27 -26 
+27 -25 27 -26 27 -25 27 -26 27 -26 27 -26 27 -26 27 -27 
+26 -27 27 -28 27 -28 27 -28 27 -28 27 -29 27 -28 27 -29 
+27 -30 27 -30 27 -30 26 -30 27 -31 27 -31 27 -30 27 -30 
+27 -30 27 -29 27 -29 27 -28 27 -26 27 -27 27 -25 26 -26 
+27 -25 27 -26 27 -26 27 -27 27 -28 27 -29 27 -31 27 -31 
+27 -33 27 -33 27 -34 26 -35 27 -35 27 -35 27 -36 27 -36 
+27 -36 27 -35 27 -36 27 -35 27 -35 27 -35 26 -36 899 4615 200 MP stroke
+gr
+
+c8
+DA
+0 sg
+ 882 4658 mt 
+( ) s
+6239  431 mt 
+( ) s
+SO
+1 sg
+0 334 2103 0 0 -334 4092 783 4 MP
+PP
+-2103 0 0 334 2103 0 0 -334 4092 783 5 MP stroke
+4 w
+DO
+SO
+6 w
+0 sg
+4092  783 mt 6195  783 L
+4092  449 mt 6195  449 L
+4092  783 mt 4092  449 L
+6195  783 mt 6195  449 L
+4092  783 mt 6195  783 L
+4092  783 mt 4092  449 L
+4092  783 mt 6195  783 L
+4092  449 mt 6195  449 L
+4092  783 mt 4092  449 L
+6195  783 mt 6195  449 L
+4555  583 mt 
+(Nonstationary component of y) s
+gs 4092 449 2104 335 rc
+356 0 4163 540 2 MP stroke
+gr
+
+4555  734 mt 
+(Estimated trend of y) s
+gs 4092 449 2104 335 rc
+DA
+c8
+356 0 4163 691 2 MP stroke
+SO
+gr
+
+c8
+
+end %%Color Dict
+
+eplot
+%%EndObject
+
+epage
+end
+
+showpage
+
+%%Trailer
+%%EOF
diff --git a/doc/dynare.plots/HPTrend.jpg b/doc/dynare.plots/HPTrend.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a6dcbb82de10bfd9f73151632bf33ef00d3591b7
Binary files /dev/null and b/doc/dynare.plots/HPTrend.jpg differ
diff --git a/doc/dynare.plots/HPTrend.png b/doc/dynare.plots/HPTrend.png
new file mode 100644
index 0000000000000000000000000000000000000000..cdfe46e406ec466692d314238059b70bca4df875
Binary files /dev/null and b/doc/dynare.plots/HPTrend.png differ
diff --git a/doc/dynare.texi b/doc/dynare.texi
index 1ab025113640ece3306a4267cb1f7f2f52c9a549..c4f1deb31a9006e9c638ebb0157c3f81f0d95f71 100644
--- a/doc/dynare.texi
+++ b/doc/dynare.texi
@@ -42,6 +42,20 @@
 @emph{Example}
 @end macro
 
+@macro exampleshead
+@iftex
+@sp 1
+@end iftex
+@emph{Examples}
+@end macro
+
+@macro remarkhead
+@iftex
+@sp 1
+@end iftex
+@noindent @emph{Remark}
+@end macro
+
 @macro outputhead
 @iftex
 @sp 1
@@ -63,8 +77,6 @@
 @emph{Algorithms}
 @end macro
 
-
-
 @macro customhead{title}
 @iftex
 @sp 1
@@ -72,10 +84,18 @@
 @emph{\title\}
 @end macro
 
+@macro dates
+@code{dates }
+@end macro
+
+@macro dseries
+@code{dseries }
+@end macro
+
 @c %**end of header
 
 @copying
-Copyright @copyright{} 1996-2013, Dynare Team.
+Copyright @copyright{} 1996-2014, Dynare Team.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -116,137 +136,147 @@ This is Dynare Reference Manual, version @value{VERSION}.
 @end ifnottex
 
 @menu
-* Introduction::                
-* Installation and configuration::  
-* Running Dynare::              
-* The Model file::              
-* The Configuration File::      
-* Time Series::                 
-* Reporting::                   
-* Examples::                    
-* Dynare internal documentation and unitary tests::  
-* Bibliography::                
-* Command and Function Index::  
-* Variable Index::              
+* Introduction::
+* Installation and configuration::
+* Running Dynare::
+* The Model file::
+* The Configuration File::
+* Time Series::
+* Reporting::
+* Examples::
+* Dynare misc commands::
+* Bibliography::
+* Command and Function Index::
+* Variable Index::
 
 @detailmenu
  --- The Detailed Node Listing ---
 
 Introduction
 
-* What is Dynare ?::            
-* Documentation sources::       
-* Citing Dynare in your research::  
+* What is Dynare ?::
+* Documentation sources::
+* Citing Dynare in your research::
 
 Installation and configuration
 
-* Software requirements::       
-* Installation of Dynare::      
-* Configuration::               
+* Software requirements::
+* Installation of Dynare::
+* Configuration::
 
 Installation of Dynare
 
-* On Windows::                  
-* On Debian GNU/Linux and Ubuntu::  
-* On Mac OS X::                 
-* For other systems::           
+* On Windows::
+* On Debian GNU/Linux and Ubuntu::
+* On Mac OS X::
+* For other systems::
 
 Configuration
 
-* For MATLAB::                  
-* For GNU Octave::              
-* Some words of warning::       
+* For MATLAB::
+* For GNU Octave::
+* Some words of warning::
 
 Running Dynare
 
-* Dynare invocation::           
-* Dynare hooks::                
-* Understanding Preprocessor Error Messages::  
+* Dynare invocation::
+* Dynare hooks::
+* Understanding Preprocessor Error Messages::
 
 The Model file
 
-* Conventions::                 
-* Variable declarations::       
-* Expressions::                 
-* Parameter initialization::    
-* Model declaration::           
-* Auxiliary variables::         
-* Initial and terminal conditions::  
-* Shocks on exogenous variables::  
-* Other general declarations::  
-* Steady state::                
-* Getting information about the model::  
-* Deterministic simulation::    
-* Stochastic solution and simulation::  
-* Estimation::                  
-* Forecasting::                 
-* Optimal policy::              
-* Sensitivity and identification analysis::  
-* Markov-switching SBVAR::      
-* Displaying and saving results::  
-* Macro-processing language::   
-* Verbatim inclusion::          
-* Misc commands::               
+* Conventions::
+* Variable declarations::
+* Expressions::
+* Parameter initialization::
+* Model declaration::
+* Auxiliary variables::
+* Initial and terminal conditions::
+* Shocks on exogenous variables::
+* Other general declarations::
+* Steady state::
+* Getting information about the model::
+* Deterministic simulation::
+* Stochastic solution and simulation::
+* Estimation::
+* Forecasting::
+* Optimal policy::
+* Sensitivity and identification analysis::
+* Markov-switching SBVAR::
+* Displaying and saving results::
+* Macro-processing language::
+* Verbatim inclusion::
+* Misc commands::
 
 Expressions
 
-* Parameters and variables::    
-* Operators::                   
-* Functions::                   
-* A few words of warning in stochastic context::  
+* Parameters and variables::
+* Operators::
+* Functions::
+* A few words of warning in stochastic context::
 
 Parameters and variables
 
-* Inside the model::            
-* Outside the model::           
+* Inside the model::
+* Outside the model::
 
 Functions
 
-* Built-in Functions::          
-* External Functions::          
+* Built-in Functions::
+* External Functions::
 
 Steady state
 
-* Finding the steady state with Dynare nonlinear solver::  
-* Using a steady state file::   
-* Replace some equations during steady state computations::  
+* Finding the steady state with Dynare nonlinear solver::
+* Using a steady state file::
+* Replace some equations during steady state computations::
 
 Stochastic solution and simulation
 
-* Computing the stochastic solution::  
-* Typology and ordering of variables::  
-* First order approximation::   
-* Second order approximation::  
-* Third order approximation::   
+* Computing the stochastic solution::
+* Typology and ordering of variables::
+* First order approximation::
+* Second order approximation::
+* Third order approximation::
 
 Sensitivity and identification analysis
 
-* Sampling::                    
-* Stability Mapping::           
-* Reduced Form Mapping::        
-* RMSE::                        
-* Screening Analysis::          
-* Identification Analysis::     
-* Performing Sensitivity and Identification Analysis::  
+* Sampling::
+* Stability Mapping::
+* Reduced Form Mapping::
+* RMSE::
+* Screening Analysis::
+* Identification Analysis::
+* Performing Sensitivity and Identification Analysis::
 
 Macro-processing language
 
-* Macro expressions::           
-* Macro directives::            
-* Typical usages::              
-* MATLAB/Octave loops versus macro-processor loops::  
+* Macro expressions::
+* Macro directives::
+* Typical usages::
+* MATLAB/Octave loops versus macro-processor loops::
 
 Typical usages
 
-* Modularization::              
-* Indexed sums or products::    
-* Multi-country models::        
-* Endogeneizing parameters::    
+* Modularization::
+* Indexed sums or products::
+* Multi-country models::
+* Endogeneizing parameters::
 
 The Configuration File
 
-* Dynare Configuration::        
-* Parallel Configuration::      
+* Dynare Configuration::
+* Parallel Configuration::
+
+Time Series
+
+* Dates::
+* dseries class::
+
+Dates
+
+* dates in a mod file::
+* dates class::
 
 @end detailmenu
 @end menu
@@ -255,9 +285,9 @@ The Configuration File
 @chapter Introduction
 
 @menu
-* What is Dynare ?::            
-* Documentation sources::       
-* Citing Dynare in your research::  
+* What is Dynare ?::
+* Documentation sources::
+* Citing Dynare in your research::
 @end menu
 
 @node What is Dynare ?
@@ -319,7 +349,7 @@ institutions who cannot afford, or do not want to pay for, MATLAB and
 are willing to bear the concomitant performance loss.
 
 The development of Dynare is mainly done at
-@uref{http://www.cepremap.ens.fr, Cepremap} by a core team of
+@uref{http://www.cepremap.fr, Cepremap} by a core team of
 researchers who devote part of their time to software development.
 Currently the development team of Dynare is composed of Stéphane
 Adjemian (Université du Maine, Gains and Cepremap), Houtan Bastani
@@ -383,9 +413,9 @@ If you want to give a URL, use the address of the Dynare website:
 @chapter Installation and configuration
 
 @menu
-* Software requirements::       
-* Installation of Dynare::      
-* Configuration::               
+* Software requirements::
+* Installation of Dynare::
+* Configuration::
 @end menu
 
 @node Software requirements
@@ -402,7 +432,7 @@ In order to run Dynare, you need one of the following:
 @itemize
 
 @item
-MATLAB version 7.3 (R2006b) or above;
+MATLAB version 7.5 (R2007b) or above;
 
 @item
 GNU Octave version 3.6 or above.
@@ -455,10 +485,10 @@ upgrade Dynare and discard the previous version without having to worry
 about your own files.
 
 @menu
-* On Windows::                  
-* On Debian GNU/Linux and Ubuntu::  
-* On Mac OS X::                 
-* For other systems::           
+* On Windows::
+* On Debian GNU/Linux and Ubuntu::
+* On Mac OS X::
+* For other systems::
 @end menu
 
 @node On Windows
@@ -523,9 +553,9 @@ loadable libraries. Please refer to
 @section Configuration
 
 @menu
-* For MATLAB::                  
-* For GNU Octave::              
-* Some words of warning::       
+* For MATLAB::
+* For GNU Octave::
+* Some words of warning::
 @end menu
 
 @node For MATLAB
@@ -634,9 +664,9 @@ file contains the description of the model and the computing tasks
 required by the user. Its contents is described in @ref{The Model file}.
 
 @menu
-* Dynare invocation::           
-* Dynare hooks::                
-* Understanding Preprocessor Error Messages::  
+* Dynare invocation::
+* Dynare hooks::
+* Understanding Preprocessor Error Messages::
 @end menu
 
 @node Dynare invocation
@@ -650,7 +680,7 @@ In practice, the handling of the model file is done in two steps: in the
 first one, the model and the processing instructions written by the user
 in a @emph{model file} are interpreted and the proper MATLAB or GNU
 Octave instructions are generated; in the second step, the program
-actually runs the computations. Boths steps are triggered automatically
+actually runs the computations. Both steps are triggered automatically
 by the @code{dynare} command.
 
 @deffn {MATLAB/Octave command} dynare @var{FILENAME}[.mod] [@var{OPTIONS}@dots{}]
@@ -672,10 +702,10 @@ Contains variable declarations, and computing tasks
 
 @item @var{FILENAME}_dynamic.m
 @vindex M_.lead_lag_incidence
-Contains the dynamic model equations. Note that Dynare might introduce auxiliary equations and variables (@pxref{Auxiliary variables}). Outputs are the residuals of the dynamic model equations in the order the equations were declared and the Jacobian of the dynamic model equations. For higher order approximations also the Hessian and the third-order derivates are provided. When computing the Jacobian of the dynamic model, the order of the endogenous variables in the columns is stored in @code{M_.lead_lag_incidence}. The rows of this matrix represent time periods: the first row denotes a lagged (time t-1) variable, the second row a contemporaneous (time t) variable, and the third row a leaded (time t+1) variable. The colums of the matrix represent the endogenous variables in their order of declaration. A zero in the matrix means that this endogenous does not appear in the model in this time period. The value in the @code{M_.lead_lag_incidence} matrix corresponds to the column of that variable in the Jacobian of the dynamic model. Example: Let the second declared variable be @code{c} and the @code{(3,2)} entry of @code{M_.lead_lag_incidence} be @code{15}. Then the @code{15}th column of the Jacobian is the derivative with respect to @code{y(+1)}. 
- 
+Contains the dynamic model equations. Note that Dynare might introduce auxiliary equations and variables (@pxref{Auxiliary variables}). Outputs are the residuals of the dynamic model equations in the order the equations were declared and the Jacobian of the dynamic model equations. For higher order approximations also the Hessian and the third-order derivatives are provided. When computing the Jacobian of the dynamic model, the order of the endogenous variables in the columns is stored in @code{M_.lead_lag_incidence}. The rows of this matrix represent time periods: the first row denotes a lagged (time t-1) variable, the second row a contemporaneous (time t) variable, and the third row a leaded (time t+1) variable. The columns of the matrix represent the endogenous variables in their order of declaration. A zero in the matrix means that this endogenous does not appear in the model in this time period. The value in the @code{M_.lead_lag_incidence} matrix corresponds to the column of that variable in the Jacobian of the dynamic model. Example: Let the second declared variable be @code{c} and the @code{(3,2)} entry of @code{M_.lead_lag_incidence} be @code{15}. Then the @code{15}th column of the Jacobian is the derivative with respect to @code{y(+1)}.
+
 @item @var{FILENAME}_static.m
-Contains the long run static model equations. Note that Dynare might introduce auxiliary equations and variables (@pxref{Auxiliary variables}). Outputs are the residuals of the static model equations in the order the equations were declared and the Jacobian of the static equations. Entry @code{(i,j)} of the Jacobian represents the derivative of the @code{i}th static model equation with respect to the @code{j}th model variable in declaration order. 
+Contains the long run static model equations. Note that Dynare might introduce auxiliary equations and variables (@pxref{Auxiliary variables}). Outputs are the residuals of the static model equations in the order the equations were declared and the Jacobian of the static equations. Entry @code{(i,j)} of the Jacobian represents the derivative of the @code{i}th static model equation with respect to the @code{j}th model variable in declaration order.
 @end table
 
 @noindent
@@ -683,6 +713,15 @@ These files may be looked at to understand errors reported at the simulation sta
 
 @code{dynare} will then run the computing tasks by executing @file{@var{FILENAME}.m}.
 
+A few words of warning is warranted here: the filename of the
+@file{.mod} file should be chosen in such a way that the generated
+@file{.m} files described above do not conflict with @file{.m} files
+provided by MATLAB/Octave or by Dynare. Not respecting this rule could
+cause crashes or unexpected behaviour. In particular, it means that
+the @file{.mod} file cannot be given the name of a MATLAB/Octave or
+Dynare command. Under Octave, it also means that the @file{.mod} file
+cannot be named @file{test.mod}.
+
 @optionshead
 
 @table @code
@@ -715,7 +754,7 @@ the macro-processor independently of the rest of Dynare toolbox.
 
 @item nolinemacro
 Instructs the macro-preprocessor to omit line numbering information in
-the intermediary @file{.mod} file created after the maco-processing
+the intermediary @file{.mod} file created after the macro-processing
 step. Useful in conjunction with @code{savemacro} when one wants that to
 reuse the intermediary @file{.mod} file, without having it cluttered by
 line numbering directives.
@@ -741,7 +780,7 @@ Activate console mode. In addition to the behavior of
 computations.
 
 @item nograph
-Activate the @code{nograph} option (@xref{nograph}), so that Dynare will not produce any
+Activate the @code{nograph} option (@pxref{nograph}), so that Dynare will not produce any
 graph
 
 @item nointeractive
@@ -795,12 +834,14 @@ Allows Dynare to issue a warning and continue processing when
 @outputhead
 
 Depending on the computing tasks requested in the @file{.mod} file,
-executing command @code{dynare} will leave in the workspace variables
-containing results available for further processing. More details are
-given under the relevant computing tasks.
+executing the @code{dynare} command will leave variables containing
+results in the workspace available for further processing. More
+details are given under the relevant computing tasks.
 
-The @code{M_}, @code{oo_} and @code{options_} structures are also saved
-in a file called @file{@var{FILENAME}_results.mat}.
+The @code{M_}, @code{oo_}, and @code{options_} structures are saved in
+a file called @file{@var{FILENAME}_results.mat}. If they exist,
+@code{estim_params_}, @code{bayestopt_}, @code{dataset_}, and
+@code{estimation_info} are saved in the same file.
 
 @examplehead
 
@@ -815,7 +856,7 @@ The output of Dynare is left into three main variables in the
 MATLAB/Octave workspace:
 
 @defvr {MATLAB/Octave variable} M_
-Structure containing various informations about the model.
+Structure containing various information about the model.
 @end defvr
 
 @defvr {MATLAB/Octave variable} options_
@@ -831,11 +872,11 @@ Structure containing the various results of the computations.
 @node Dynare hooks
 @section Dynare hooks
 
-It is possible to call pre and post dynare preprocessor hooks written as matlab scripts.
-The script @file{@var{FILENAME}_pre_dynare_preprocessor_hook.m} is executed before the
-call to Dynare's preprocessor, and  can be used to programatically transform the mod file
-that will be read by the preprocessor. The script @file{@var{FILENAME}_post_dynare_preprocessor_hook.m}
-is executed just after the call to Dynare's preprocessor, and can be used to programatically
+It is possible to call pre and post Dynare preprocessor hooks written as MATLAB scripts.
+The script @file{@var{MODFILENAME}/hooks/priorprocessing.m} is executed before the
+call to Dynare's preprocessor, and  can be used to programmatically transform the mod file
+that will be read by the preprocessor. The script @file{@var{MODFILENAME}/hooks/postprocessing.m}
+is executed just after the call to Dynare's preprocessor, and can be used to programmatically
 transform the files generated by Dynare's preprocessor before actual computations start. The
 pre and/or post dynare preprocessor hooks are executed if and only if the aforementioned scripts
 are detected in the same folder as the the model file, @file{@var{FILENAME}.mod}.
@@ -883,28 +924,28 @@ end of line one and the parser would continue processing.
 @chapter The Model file
 
 @menu
-* Conventions::                 
-* Variable declarations::       
-* Expressions::                 
-* Parameter initialization::    
-* Model declaration::           
-* Auxiliary variables::         
-* Initial and terminal conditions::  
-* Shocks on exogenous variables::  
-* Other general declarations::  
-* Steady state::                
-* Getting information about the model::  
-* Deterministic simulation::    
-* Stochastic solution and simulation::  
-* Estimation::                  
-* Forecasting::                 
-* Optimal policy::              
-* Sensitivity and identification analysis::  
-* Markov-switching SBVAR::      
-* Displaying and saving results::  
-* Macro-processing language::   
-* Verbatim inclusion::          
-* Misc commands::               
+* Conventions::
+* Variable declarations::
+* Expressions::
+* Parameter initialization::
+* Model declaration::
+* Auxiliary variables::
+* Initial and terminal conditions::
+* Shocks on exogenous variables::
+* Other general declarations::
+* Steady state::
+* Getting information about the model::
+* Deterministic simulation::
+* Stochastic solution and simulation::
+* Estimation::
+* Forecasting::
+* Optimal policy::
+* Sensitivity and identification analysis::
+* Markov-switching SBVAR::
+* Displaying and saving results::
+* Macro-processing language::
+* Verbatim inclusion::
+* Misc commands::
 @end menu
 
 @node Conventions
@@ -986,9 +1027,9 @@ extension or if the filename contains a non-alphanumeric character;
 
 Declarations of variables and parameters are made with the following commands:
 
-@deffn Command var @var{VARIABLE_NAME} [$@var{LATEX_NAME}$]@dots{};
-@deffnx Command var (deflator = @var{MODEL_EXPRESSION}) @var{VARIABLE_NAME} [$@var{LATEX_NAME}$]@dots{};
-@deffnx Command var (log_deflator = @var{MODEL_EXPRESSION}) @var{VARIABLE_NAME} [$@var{LATEX_NAME}$]@dots{};
+@deffn Command var @var{VARIABLE_NAME} [$@var{LATEX_NAME}$] [(long_name=@var{QUOTED_STRING})]@dots{};
+@deffnx Command var (deflator = @var{MODEL_EXPRESSION}) @var{VARIABLE_NAME} [$@var{LATEX_NAME}$] [(long_name=@var{QUOTED_STRING})]@dots{};
+@deffnx Command var (log_deflator = @var{MODEL_EXPRESSION}) @var{VARIABLE_NAME} [$@var{LATEX_NAME}$] [(long_name=@var{QUOTED_STRING})]@dots{};
 
 @descriptionhead
 
@@ -1024,6 +1065,11 @@ Same as @code{deflator}, except that the deflator is assumed to be
 additive instead of multiplicative (or, to put it otherwise, the
 declared variable is equal to the log of a variable with a
 multiplicative trend).
+
+@anchor{long_name}
+@item long_name = @var{QUOTED_STRING}
+This is the long version of the variable name. Its value is stored in
+@code{M_.endo_names_long}. Default: @var{VARIABLE_NAME}
 @end table
 
 @examplehead
@@ -1031,11 +1077,12 @@ multiplicative trend).
 @example
 var c gnp q1 q2;
 var(deflator=A) i b;
+var c $C$ (long_name=`Consumption');
 @end example
 
 @end deffn
 
-@deffn Command varexo @var{VARIABLE_NAME} [$@var{LATEX_NAME}$]@dots{};
+@deffn Command varexo @var{VARIABLE_NAME} [$@var{LATEX_NAME}$] [(long_name=@var{QUOTED_STRING})]@dots{};
 
 @descriptionhead
 
@@ -1049,6 +1096,12 @@ shocks to her model.
 @code{varexo} commands can appear several times in the file and Dynare
 will concatenate them.
 
+@optionshead
+@table @code
+@item long_name = @var{QUOTED_STRING}
+Like @ref{long_name} but value stored in @code{M_.exo_names_long}.
+@end table
+
 @examplehead
 
 @example
@@ -1057,7 +1110,7 @@ varexo m gov;
 
 @end deffn
 
-@deffn Command varexo_det @var{VARIABLE_NAME} [$@var{LATEX_NAME}$]@dots{};
+@deffn Command varexo_det @var{VARIABLE_NAME} [$@var{LATEX_NAME}$] [(long_name=@var{QUOTED_STRING})]@dots{};
 
 @descriptionhead
 
@@ -1077,6 +1130,12 @@ conditions and future information.
 @code{varexo_det} commands can appear several times in the file and
 Dynare will concatenate them.
 
+@optionshead
+@table @code
+@item long_name = @var{QUOTED_STRING}
+Like @ref{long_name} but value stored in @code{M_.exo_det_names_long}.
+@end table
+
 @examplehead
 
 @example
@@ -1088,7 +1147,7 @@ varexo_det tau;
 
 @end deffn
 
-@deffn Command parameters @var{PARAMETER_NAME} [$@var{LATEX_NAME}$]@dots{};
+@deffn Command parameters @var{PARAMETER_NAME} [$@var{LATEX_NAME}$] [(long_name=@var{QUOTED_STRING})]@dots{};
 
 @descriptionhead
 
@@ -1103,6 +1162,12 @@ initialization}).
 @code{parameters} commands can appear several times in the file and
 Dynare will concatenate them.
 
+@optionshead
+@table @code
+@item long_name = @var{QUOTED_STRING}
+Like @ref{long_name} but value stored in @code{M_.param_names_long}.
+@end table
+
 @examplehead
 
 @example
@@ -1166,6 +1231,20 @@ are supposed to be decided one period ahead of all other endogenous
 variables. For stock variables, they are supposed to follow a ``stock at
 the beginning of the period'' convention.
 
+Note that Dynare internally always uses the ``stock at the end of the period''
+concept, even when the model has been entered using the
+@code{predetermined_variables}-command. Thus, when plotting,
+computing or simulating variables, Dynare will follow the convention to
+use variables that are decided in the current period. For example,
+when generating impulse response functions for capital, Dynare
+will plot @code{k}, which is the capital stock decided upon by
+investment today (and which will be used in tomorrow's production function).
+This is the reason that capital is shown to be moving on impact, because
+it is @code{k} and not the predetermined @code{k(-1)} that is displayed.
+It is important to remember that this also affects simulated time
+series and output from smoother routines for predetermined variables.
+Compared to non-predetermined variables they might otherwise appear
+to be falsely shifted to the future by one period.
 @examplehead
 
 The following two program snippets are strictly equivalent.
@@ -1278,10 +1357,10 @@ Represents infinity.
 @end deffn
 
 @menu
-* Parameters and variables::    
-* Operators::                   
-* Functions::                   
-* A few words of warning in stochastic context::  
+* Parameters and variables::
+* Operators::
+* Functions::
+* A few words of warning in stochastic context::
 @end menu
 
 @node Parameters and variables
@@ -1292,8 +1371,8 @@ typing their names. The semantics of parameters and variables is quite
 different whether they are used inside or outside the model block.
 
 @menu
-* Inside the model::            
-* Outside the model::           
+* Inside the model::
+* Outside the model::
 @end menu
 
 @node Inside the model
@@ -1387,8 +1466,8 @@ internally and how this affects the output.
 @subsection Functions
 
 @menu
-* Built-in Functions::          
-* External Functions::          
+* Built-in Functions::
+* External Functions::
 @end menu
 
 @node Built-in Functions
@@ -1605,7 +1684,7 @@ The equations of the model are written in a block delimited by
 
 There must be as many equations as there are endogenous variables in the
 model, except when computing the unconstrained optimal policy with
-@code{ramsey_policy} or @code{discretionary_policy}.
+@code{ramsey_model}, @code{ramsey_policy} or @code{discretionary_policy}.
 
 The syntax of equations must follow the conventions for
 @var{MODEL_EXPRESSION} as described in @ref{Expressions}. Each equation
@@ -1661,7 +1740,7 @@ in those cases.}
 @item block
 @anchor{block}
 Perform the block decomposition of the model, and exploit it in
-computations (steady-state, deterministic simulation, 
+computations (steady-state, deterministic simulation,
 stochastic simulation with first order approximation and estimation). See
 @uref{http://www.dynare.org/DynareWiki/FastDeterministicSimulationAndSteadyStateComputation,Dynare
 wiki} for details on the algorithms used in deterministic simulation and steady-state computation.
@@ -1889,7 +1968,7 @@ variables will have a name beginning with @code{AUX_EXO_LEAD} or
 @code{AUX_EXO_LAG} respectively).
 
 Another transformation is done for the @code{EXPECTATION}
-operator. For each occurence of this operator, Dynare creates an
+operator. For each occurrence of this operator, Dynare creates an
 auxiliary variable defined by a new equation, and replaces the
 expectation operator by a reference to the new auxiliary variable. For
 example, the expression @code{EXPECTATION(-1)(x(+1))} is replaced by
@@ -1897,7 +1976,7 @@ example, the expression @code{EXPECTATION(-1)(x(+1))} is replaced by
 declared as @code{AUX_EXPECT_LAG_1 = x(+2)}.
 
 Auxiliary variables are also introduced by the preprocessor for the
-@code{ramsey_policy} command. In this case, they are used to represent the Lagrange
+@code{ramsey_model} and @code{ramsey_policy} commands. In this case, they are used to represent the Lagrange
 multipliers when first order conditions of the Ramsey problem are computed.
 The new variables take the form @code{MULT_@var{i}}, where @var{i} represents
 the constraint with which the multiplier is associated (counted from the
@@ -1931,20 +2010,20 @@ possibly terminal) conditions. It is also necessary to provide initial
 guess values for non-linear solvers. This section describes the
 statements used for those purposes.
 
-In many contexts (determistic or stochastic), it is necessary to
+In many contexts (deterministic or stochastic), it is necessary to
 compute the steady state of a non-linear model: @code{initval} then
 specifies numerical initial values for the non-linear solver. The
 command @code{resid} can be used to compute the equation residuals for
 the given initial values.
 
-Used in perfect foresight mode, the types of forward-loking models for
+Used in perfect foresight mode, the types of forward-looking models for
 which Dynare was designed require both initial and terminal
 conditions. Most often these initial and terminal conditions are
 static equilibria, but not necessarily.
 
 One typical application is to consider an economy at the equilibrium,
 trigger a shock in first period, and study the trajectory of return at
-the initial equilbrium. To do that, one needs @code{initval} and
+the initial equilibrium. To do that, one needs @code{initval} and
 @code{shocks} (@pxref{Shocks on exogenous variables}.
 
 Another one is to study, how an economy, starting from arbitrary
@@ -1980,14 +2059,14 @@ period (unless some of these initial values are modified by
 Second, in the absence of an @code{endval} block, it sets the terminal
 conditions for all the periods succeeding the last simulation period.
 
-Third, in the absence of an @code{endval} block, it provides initial
-guess values at all simulation dates for the non-linear solver
-implemented in @code{simul}.
+Third, in the absence of an @code{endval} block, it provides initial guess
+values at all simulation dates for the perfect foresight solver, and is
+therefore used by @code{perfect_foresight_setup} and @code{simul}.
 
 For this last reason, it necessary to provide values for all the
 endogenous variables in an @code{initval} block (even though,
 theoretically, initial conditions are only necessary for lagged
-variables). If some variables, endogenous or exogenous, are not mentionned in the
+variables). If some variables, endogenous or exogenous, are not mentioned in the
 @code{initval} block, a zero value is assumed.
 
 Note that if the @code{initval} block is immediately followed by a
@@ -2062,19 +2141,20 @@ form:
 @var{VARIABLE_NAME} = @var{EXPRESSION};
 @end example
 
-The @code{endval} block makes only sense in a determistic model, and
+The @code{endval} block makes only sense in a deterministic model, and
 serves two purposes.
 
 First, it sets the terminal conditions for all the periods succeeding
 the last simulation period.
 
-Second, it provides initial guess values at all the simulation dates
-for the non-linear solver implemented in @code{simul}.
+Second, it provides initial guess values at all the simulation dates for the
+perfect foresight solver, and is therefore used by
+@code{perfect_foresight_setup} and @code{simul}.
 
 For this last reason, it necessary to provide values for all the
 endogenous variables in an @code{endval} block (even though,
-theoretically, initial conditions are only necessary for forward
-variables). If some variables, endogenous or exogenous, are not mentionned in the
+theoretically, terminal conditions are only necessary for forward
+variables). If some variables, endogenous or exogenous, are not mentioned in the
 @code{endval} block, the value assumed is that of the last
 @code{initval} block or @code{steady} command.
 
@@ -2123,12 +2203,90 @@ steady;
 The initial equilibrium is computed by @code{steady} for @code{x=1},
 and the terminal one, for @code{x=2}.
 
+@examplehead
+
+@example
+var c k;
+varexo x;
+@dots{}
+model;
+c + k - aa*x*k(-1)^alph - (1-delt)*k(-1);
+c^(-gam) - (1+bet)^(-1)*(aa*alph*x(+1)*k^(alph-1) + 1 - delt)*c(+1)^(-gam);
+end;
+
+initval;
+c = 1.2;
+k = 12;
+x = 1;
+end;
+
+endval;
+c = 2;
+k = 20;
+x = 1.1;
+end;
+simul(periods=200);
+
+@end example
+
+In this example, the problem is finding the optimal path for consumption
+and capital for the periods t=1 to T=200, given the path of the exogenous
+technology level @code{x}. Setting @code{x=1.1} in the
+@code{endval}-block without a @code{shocks}-block implies that technology
+jumps to this new level in t=1 and stays there forever. Because the law
+of motion for capital is backward-looking, we also need an initial
+condition for @code{k} at time 0, specified in the @code{initval}-block.
+Similarly, because the Euler equation is forward-looking, we need a
+terminal condition for @code{c} at t=201, which is specified in the
+@code{endval}-block. Specifying @code{c} in the @code{initval}-block and
+@code{k} in the @code{endval}-block has no impact on the results: due to
+the optimization problem in the first period being to choose @code{c,k}
+at t=1 given predetermined capital stock @code{k} inherited from t=0 as
+well as the current and future values for technology, the value for
+@code{c} at time t=0 plays no role. The same applies to the choice of
+@code{c,k} at time t=200, which does not depend on @code{k} at t=201. As
+the Euler equation shows, that choice only depends on current capital as
+well as future consumption @code{c} and technology @code{x}, but not on
+future capital @code{k}. The intuitive reason is that those variables are
+the consequence of optimization problems taking place in at periods t=0
+and t=201, respectively, which are not considered. Thus, when specifying
+those values in the @code{initval} and @code{endval}-blocks, Dynare takes
+them as given and basically assumes that there were realizations
+of exogenous variables and states (basically initial/terminal conditions
+at the unspecified time periods t<0 and t>201) that make those choices
+equilibrium values.
+ 
+This also suggest another way of looking at the use of @code{steady}
+after @code{initval} and @code{endval}. Instead of saying that the
+implicit unspecified conditions before and after the simulation range
+have to fit the initial/terminal conditions of the endogenous variables
+in those blocks, @code{steady} specifies that those conditions at t<0 and
+t>201 are equal to being at the steady state given the exogenous
+variables in the @code{initval} and @code{endval}-blocks and sets the
+endogenous variables at t=0 and t=201 to the corresponding steady state
+equilibrium values.
+ 
+The fact that @code{c} at t=0 and @code{k} at t=201 specified in
+@code{initval} and @code{endval} are taken as given has an important
+implication for plotting the simulated vector for the endogenous
+variables: this vector will also contain the initial and terminal
+conditions and thus is 202 periods long in the example. When you specify
+arbitrary values for the initial and terminal conditions for forward- and
+backward-looking variables, respectively, these values can be very far
+away from the endogenously determined values at t=1 and t=200. While the
+values at t=0 and t=201 are unrelated to the dynamics for 0<t<201, they
+may result in strange-looking large jumps. In the example above,
+consumption will display a large jump from t=0 to t=1 and capital will
+jump from t=200 to t=201.
+
 @end deffn
 
 @deffn Block histval ;
 
 @descriptionhead
 
+@customhead{In a deterministic perfect foresight context}
+
 In models with lags on more than one period, the @code{histval} block
 permits to specify different historical initial values for different
 periods.
@@ -2156,6 +2314,14 @@ variables are initialized at their steady state value at period 0 and
 before (except when a @code{steady} command doesn't follow an
 @code{initval} block).
 
+@customhead{In a stochastic simulation context}
+
+In the context of stochastic simulations, @code{histval} allows setting
+the starting point of those simulations in the state space (it does not
+affect the starting point for impulse response functions). As for the case of
+perfect foresight simulations, all not explicitly specified variables are set to 0.
+Moreover, as only states enter the recursive policy functions, all values specified for control variables will be ignored.
+
 @examplehead
 
 @example
@@ -2245,6 +2411,15 @@ type.
 
 @end deffn
 
+@deffn Command histval_file (filename = @var{FILENAME});
+
+This command is equivalent to @code{histval}, except that it reads its input
+from a file.
+
+This command is typically used in conjunction with @code{smoother2histval}.
+
+@end deffn
+
 @node Shocks on exogenous variables
 @section Shocks on exogenous variables
 
@@ -2264,7 +2439,7 @@ in each period. In Dynare, these random values follow a normal
 distribution with zero mean, but it belongs to the user to specify the
 variability of these shocks. The non-zero elements of the matrix of
 variance-covariance of the shocks can be entered with the @code{shocks}
-command. Or, the entire matrix can be direclty entered with
+command. Or, the entire matrix can be directly entered with
 @code{Sigma_e} (this use is however deprecated).
 
 If the variance of an exogenous variable is set to zero, this variable
@@ -2273,7 +2448,16 @@ isn't used in the computation of moments and of Impulse Response
 Functions. Setting a variance to zero is an easy way of removing an
 exogenous shock.
 
+Note that, by default, if there are several @code{shocks} or @code{mshocks}
+blocks in the same @file{.mod} file, then they are cumulative: all the shocks
+declared in all the blocks are considered; however, if a @code{shocks} or
+@code{mshocks} block is declared with the @code{overwrite} option, then it
+replaces all the previous @code{shocks} and @code{mshocks} blocks.
+
 @deffn Block shocks ;
+@deffnx Block shocks (overwrite) ;
+
+See above for the meaning of the @code{overwrite} option.
 
 @customhead{In deterministic context}
 
@@ -2334,10 +2518,6 @@ values (xx);
 end;
 @end example
 
-In case of conditional forecasts using an extended path method, 
-the shock command is extended in order to determine the nature of the expectation 
-on the endogenous variable paths. The command @code{expectation} has, in this case, 
-to be added after the @code{values} command (@pxref{Forecasting}).
 
 @customhead{In stochastic context}
 
@@ -2379,7 +2559,7 @@ var v, w = 2;
 end;
 @end example
 
-@customhead{Mixing determininistic and stochastic shocks}
+@customhead{Mixing deterministic and stochastic shocks}
 
 It is possible to mix deterministic and stochastic shocks to build
 models where agents know from the start of the simulation about future
@@ -2413,6 +2593,7 @@ forecast;
 
 
 @deffn Block mshocks ;
+@deffnx Block mshocks (overwrite) ;
 
 The purpose of this block is similar to that of the @code{shocks}
 block for deterministic shocks, except that the numeric values given
@@ -2435,6 +2616,8 @@ on deterministic exogenous variables with a non-zero steady state, in
 a stochastic setup.
 @end itemize
 
+See above for the meaning of the @code{overwrite} option.
+
 @end deffn
 
 @defvr {Special variable} Sigma_e
@@ -2448,7 +2631,7 @@ discouraged.} You should use a @code{shocks} block instead.
 
 This special variable specifies directly the covariance matrix of the
 stochastic shocks, as an upper (or lower) triangular matrix. Dynare
-builds the corresponding symmetrix matrix. Each row of the triangular
+builds the corresponding symmetric matrix. Each row of the triangular
 matrix, except the last one, must be terminated by a semi-colon
 @code{;}. For a given element, an arbitrary @var{EXPRESSION} is
 allowed (instead of a simple constant), but in that case you need to
@@ -2483,9 +2666,9 @@ Reduces the number of periods considered in subsequent output commands.
 
 @descriptionhead
 
-This command is now deprecated (but will still work for older model
-files). It is not necessary when no simulation is performed and is
-replaced by an option @code{periods} in @code{simul} and
+This command is now deprecated (but will still work for older model files). It
+is not necessary when no simulation is performed and is replaced by an option
+@code{periods} in @code{perfect_foresight_setup}, @code{simul} and
 @code{stoch_simul}.
 
 This command sets the number of periods in the simulation. The periods
@@ -2512,9 +2695,9 @@ give more guidance to Dynare, using your knowledge of the model, by
 providing it with a ``steady state file''.
 
 @menu
-* Finding the steady state with Dynare nonlinear solver::  
-* Using a steady state file::   
-* Replace some equations during steady state computations::  
+* Finding the steady state with Dynare nonlinear solver::
+* Using a steady state file::
+* Replace some equations during steady state computations::
 @end menu
 
 @node Finding the steady state with Dynare nonlinear solver
@@ -2526,7 +2709,7 @@ providing it with a ``steady state file''.
 @descriptionhead
 
 This command computes the steady state of a model using a nonlinear
-Newton-type solver and displays it. When a steady state file is used @code{steady} displays the steady state and checks that it is a solution of the static model. 
+Newton-type solver and displays it. When a steady state file is used @code{steady} displays the steady state and checks that it is a solution of the static model.
 
 More precisely, it computes the equilibrium value of the endogenous
 variables for the value of the exogenous variables specified in the
@@ -2546,10 +2729,11 @@ add new variables one by one.
 @table @code
 
 @item maxit = @var{INTEGER}
-Determines the maximum number of iterations used in the non-linear solver. 
-The default value of @code{maxit} is 10. The @code{maxit} option is shared with the 
-@code{simul} command. So a change in @code{maxit} in a @code{steady} command will 
-also be considered in the following @code{simul} commands.
+Determines the maximum number of iterations used in the non-linear solver. The
+default value of @code{maxit} is 10. The @code{maxit} option is shared with the
+@code{perfect_foresight_solver} and @code{simul} commands. So a change in
+@code{maxit} in a @code{steady} command will also be considered in the
+following @code{perfect_foresight_solver} and @code{simul} commands.
 
 
 @item solve_algo = @var{INTEGER}
@@ -2563,17 +2747,18 @@ Use @code{fsolve} (under MATLAB, only available if you have the
 Optimization Toolbox; always available under Octave)
 
 @item 1
-Use Dynare's own nonlinear equation solver
+Use Dynare's own nonlinear equation solver (a Newton-like algorithm with
+line-search)
 
 @item 2
 Splits the model into recursive blocks and solves each block in turn
+using the same solver as value @code{1}
 
 @item 3
 Use Chris Sims' solver
 
 @item 4
-Similar to value @code{2}, except that it deals differently with
-nearly singular Jacobian
+Trust-region solver with autoscaling.
 
 @item 5
 Newton algorithm with a sparse Gaussian elimination (SPE) (requires
@@ -2595,7 +2780,7 @@ option, @pxref{Model declaration})
 @end table
 
 @noindent
-Default value is @code{2}.
+Default value is @code{4}.
 
 @item homotopy_mode = @var{INTEGER}
 Use a homotopy (or divide-and-conquer) technique to solve for the
@@ -2608,7 +2793,7 @@ values:
 
 @item 1
 In this mode, all the parameters are changed simultaneously, and the
-distance between the boudaries for each parameter is divided in as
+distance between the boundaries for each parameter is divided in as
 many intervals as there are steps (as defined by @code{homotopy_steps}
 option); the problem is solves as many times as there are steps.
 
@@ -2650,7 +2835,7 @@ variables are NOT at the value expected by the user
 Default is @code{0}.
 
 @item nocheck
-Don't check the steady state values when they are provided explicitely either by a steady state file or a @code{steady_state_model} block. This is useful for models with unit roots as, in this case, the steady state is not unique or doesn't exist.
+Don't check the steady state values when they are provided explicitly either by a steady state file or a @code{steady_state_model} block. This is useful for models with unit roots as, in this case, the steady state is not unique or doesn't exist.
 
 @item markowitz = @var{DOUBLE}
 Value of the Markowitz criterion, used to select the pivot. Only used
@@ -2763,25 +2948,42 @@ steady(homotopy_mode = 1, homotopy_steps = 50);
 
 If you know how to compute the steady state for your model, you can
 provide a MATLAB/Octave function doing the computation instead of
-using @code{steady}. If your MOD-file is called
-@file{@var{FILENAME}.mod}, the steady state file should be called
-@file{@var{FILENAME}_steadystate.m}.
-
-Again, there are two options for creating this file:
+using @code{steady}. Again, there are two options for doing that:
 
 @itemize
 
 @item
-The easiest way is to write a @code{steady_state_model} block.
+The easiest way is to write a @code{steady_state_model} block, which
+is described below in more details. See also @file{fs2000.mod} in the
+@file{examples} directory for an example.
+
+The steady state file generated by Dynare will be called
+@file{@var{FILENAME}_steadystate2.m}.
 
 @item
-You can write the corresponding Matlab function by hand. See @file{fs2000_steadystate.m}
-in the @file{examples} directory for an example. This option
-gives a bit more flexibility, at the expense of a heavier
-programming burden and a lesser efficiency.
+You can write the corresponding MATLAB function by hand. If your
+MOD-file is called @file{@var{FILENAME}.mod}, the steady state file
+must be called @file{@var{FILENAME}_steadystate.m}. See
+@file{NK_baseline_steadystate.m} in the @file{examples} directory for
+an example. This option gives a bit more flexibility, at the expense
+of a heavier programming burden and a lesser efficiency.
 
 @end itemize
 
+Note that both files allow to update parameters in each call of
+the function. This allows for example to calibrate a model to a labor
+supply of 0.2 in steady state by setting the labor disutility parameter
+to a corresponding value (see @file{NK_baseline_steadystate.m} in the
+@file{examples} directory). They can also be used in estimation
+where some parameter may be a function of an estimated parameter
+and needs to be updated for every parameter draw. For example, one might
+ want to set the capital utilization cost parameter as a function
+of the discount rate to ensure that capacity utilization is 1 in steady
+state. Treating both parameters as independent or not updating one as
+a function of the other would lead to wrong results. But this also means
+that care is required. Do not accidentally overwrite your parameters
+with new values as it will lead to wrong results.
+
 @anchor{steady_state_model}
 @deffn Block steady_state_model ;
 
@@ -2943,6 +3145,7 @@ must have full rank.
 @xref{solve_algo}, for the possible values and their meaning.
 
 @item qz_zero_threshold = @var{DOUBLE}
+@anchor{qz_zero_threshold}
 Value used to test if a generalized eigenvalue is 0/0 in the generalized
 Schur decomposition  (in which case  the model  does not admit  a unique
 solution). Default: @code{1e-6}.
@@ -3042,12 +3245,12 @@ equation appears in the block, @var{x} is equal to @samp{COMPLETE}.
 @table @code
 
 @item 'static'
-Prints out the block decomposition of the static model. 
-Without 'static' option model_info displays the block decomposition 
+Prints out the block decomposition of the static model.
+Without 'static' option model_info displays the block decomposition
 of the dynamic model.
 
 @item 'incidence'
-Displays the gross incidence matrix and the reordered incidence matrix 
+Displays the gross incidence matrix and the reordered incidence matrix
 of the block decomposed model.
 
 @end table
@@ -3081,21 +3284,39 @@ models, this return to equilibrium is only an asymptotic phenomenon,
 which one must approximate by an horizon of simulation far enough in
 the future.  Another exercise for which Dynare is well suited is to
 study the transition path to a new equilibrium following a permanent
-shock.  For deterministic simulations, Dynare uses a Newton-type
-algorithm, first proposed by @cite{Laffargue (1990)} and
-@cite{Boucekkine (1995)}, instead of a first order technique like the
-one proposed by @cite{Fair and Taylor (1983)}, and used in earlier
-generation simulation programs. We believe this approach to be in
-general both faster and more robust. The details of the algorithm can
-be found in @cite{Juillard (1996)}.
-
-@deffn Command simul ;
-@deffnx Command simul (@var{OPTIONS}@dots{});
+shock.  For deterministic simulations, the numerical problem consists of solving
+ a nonlinar system of simultaneous equations in @code{n} endogenous
+ variables in @code{T} periods. Dynare offers several algorithms for
+ solving this problem, which can be chosen via the
+ @code{stack_solve_algo}-option. By default (@code{stack_solve_algo=0}),
+Dynare uses a Newton-type method to solve the simultaneous equation
+system. Because the resulting Jacobian is in the order of @code{n} by
+@code{T} and hence will be very large for long simulations with many
+variables, Dynare makes use of the sparse matrix capacities of
+MATLAB/Octave. A slower but potentially less memory consuming alternative
+(@code{stack_solve_algo=6}) is based on a Newton-type algorithm first
+proposed by @cite{Laffargue (1990)} and @cite{Boucekkine (1995)}, which
+uses relaxation techniques. Thereby, the algorithm avoids ever storing
+the full Jacobian. The details of the algorithm can be found in
+@cite{Juillard (1996)}. The third type of algorithms makes use of block
+decomposition techniques (divide-and-conquer methods) that exploit the
+structure of the model. The principle is to identify recursive and
+simultaneous blocks in the model structure and use this information to
+aid the solution process.  These solution algorithms can provide a
+significant speed-up on large models.
+
+
+@deffn Command perfect_foresight_setup ;
+@deffnx Command perfect_foresight_setup (@var{OPTIONS}@dots{});
 
 @descriptionhead
 
-Triggers the computation of a deterministic simulation of the model
-for the number of periods set in the option @code{periods}.
+Prepares a perfect foresight simulation, by extracting the information in the
+@code{initval}, @code{endval} and @code{shocks} blocks and converting them into
+simulation paths for exogenous and endogenous variables.
+
+This command must always be called before running the simulation with
+@code{perfect_foresight_solver}.
 
 @optionshead
 
@@ -3104,12 +3325,43 @@ for the number of periods set in the option @code{periods}.
 @item periods = @var{INTEGER}
 Number of periods of the simulation
 
-@item maxit = @var{INTEGER}
-Determines the maximum number of iterations used in the non-linear solver. 
-The default value of @code{maxit} is 10. The @code{maxit} option is shared with the 
-@code{steady} command. So a change in @code{maxit} in a @code{simul} command will 
-also be considered in the following @code{steady} commands.
+@item datafile = @var{FILENAME}
+If the variables of the model are not constant over time, their
+initial values, stored in a text file, could be loaded, using that
+option, as initial values before a deterministic simulation.
+@end table
+
+@outputhead
+
+The paths for the exogenous variables are stored into @code{oo_.exo_simul}.
+
+The initial and terminal conditions for the endogenous variables and the
+initial guess for the path of endogenous variables are stored into
+@code{oo_.endo_simul}.
+
+@end deffn
+
 
+@deffn Command perfect_foresight_solver ;
+@deffnx Command perfect_foresight_solver (@var{OPTIONS}@dots{});
+
+@descriptionhead
+
+Computes the perfect foresight (or deterministic) simulation of the model.
+
+Note that @code{perfect_foresight_setup} must be called before this command, in
+order to setup the environment for the simulation.
+
+@optionshead
+
+@table @code
+
+@item maxit = @var{INTEGER}
+Determines the maximum number of iterations used in the non-linear solver. The
+default value of @code{maxit} is 10. The @code{maxit} option is shared with the
+@code{steady} command. So a change in @code{maxit} in a
+@code{perfect_foresight_solver} command will also be considered in the
+following @code{steady} commands.
 
 @item stack_solve_algo = @var{INTEGER}
 Algorithm used for computing the solution. Possible values are:
@@ -3153,6 +3405,12 @@ options).
 
 @end table
 
+@item no_homotopy
+By default, the perfect foresight solver uses a homotopy technique if it cannot
+solve the problem. Concretely, it divides the problem into smaller steps by
+diminishing the size of shocks and increasing them progressively until the
+problem converges. This option tells Dynare to disable that behavior.
+
 @item markowitz = @var{DOUBLE}
 Value of the Markowitz criterion, used to select the pivot. Only used
 when @code{stack_solve_algo = 5}. Default: @code{0.5}.
@@ -3162,10 +3420,17 @@ Specify the minimal number of periods where the model has to be
 solved, before using a constant set of operations for the remaining
 periods. Only used when @code{stack_solve_algo = 5}. Default: @code{1}.
 
-@item datafile = @var{FILENAME}
-If the variables of the model are not constant over time, their
-initial values, stored in a text file, could be loaded, using that
-option, as initial values before a deteministic simulation.
+@item endogenous_terminal_period
+The  number of  periods is  not constant  across Newton  iterations when
+solving the perfect foresight model. The size of the nonlinear system of
+equations  is  reduced  by  removing  the  portion  of  the  paths  (and
+associated equations) for which the solution has already been identified
+(up to the  tolerance parameter). This strategy can be  interpreted as a
+mix  of the  shooting and  relaxation  approaches. Note  that round  off
+errors are  more important with  this mixed strategy (user  should check
+the reported value  of the maximum absolute error).  Only available with
+option @code{stack_solve_algo==0}.
+
 @end table
 
 @outputhead
@@ -3175,11 +3440,28 @@ The simulated endogenous variables are available in global matrix
 
 @end deffn
 
+@deffn Command simul ;
+@deffnx Command simul (@var{OPTIONS}@dots{});
+
+@descriptionhead
+
+Short-form command for triggering the computation of a deterministic simulation
+of the model. It is strictly equivalent to a call to
+@code{perfect_foresight_setup} followed by a call to
+@code{perfect_foresight_solver}.
+
+@optionshead
+
+Accepts all the options of @code{perfect_foresight_setup} and
+@code{perfect_foresight_solver}.
+
+@end deffn
+
 @anchor{oo_.endo_simul}
 @defvr {MATLAB/Octave variable} oo_.endo_simul
-This variable stores the result of a deterministic simulation
-(computed by @code{simul}) or of a stochastic simulation (computed by
-@code{stoch_simul} with the @code{periods} option or by
+This variable stores the result of a deterministic simulation (computed by
+@code{perfect_foresight_solver} or @code{simul}) or of a stochastic simulation
+(computed by @code{stoch_simul} with the @code{periods} option or by
 @code{extended_path}).
 
 The variables are arranged row by row, in order of declaration (as in
@@ -3190,9 +3472,9 @@ and terminal conditions, so it has more columns than the value of
 
 @anchor{oo_.exo_simul}
 @defvr {MATLAB/Octave variable} oo_.exo_simul
-This variable stores the path of exogenous variables during a
-simulation (computed by @code{simul}, @code{stoch_simul} or
-@code{extended_path}).
+This variable stores the path of exogenous variables during a simulation
+(computed by @code{perfect_foresight_solver}, @code{simul}, @code{stoch_simul}
+or @code{extended_path}).
 
 The variables are arranged in columns, in order of declaration (as in
 @code{M_.endo_names}). Periods are in rows. Note that this convention
@@ -3222,11 +3504,11 @@ there are strong nonlinearities or binding constraints. Such a
 solution is computed using the @code{extended_path} command.
 
 @menu
-* Computing the stochastic solution::  
-* Typology and ordering of variables::  
-* First order approximation::   
-* Second order approximation::  
-* Third order approximation::   
+* Computing the stochastic solution::
+* Typology and ordering of variables::
+* First order approximation::
+* Second order approximation::
+* Third order approximation::
 @end menu
 
 @node Computing the stochastic solution
@@ -3302,7 +3584,7 @@ increase it for highly autocorrelated processes. Default: @code{512}.
 @item irf = @var{INTEGER}
 @anchor{irf}
 Number of periods on which to compute the IRFs. Setting @code{irf=0},
-suppresses the plotting of IRF's. Default: @code{40}.
+suppresses the plotting of IRFs. Default: @code{40}.
 
 @item irf_shocks = ( @var{VARIABLE_NAME} [[,] @var{VARIABLE_NAME} @dots{}] )
 @anchor{irf_shocks}
@@ -3312,6 +3594,10 @@ The exogenous variables for which to compute IRFs. Default: all.
 Requests the computation of normalized IRFs in percentage of the
 standard error of each shock.
 
+@item irf_plot_threshold = @var{DOUBLE}
+@anchor{irf_plot_threshold}
+Threshold size for plotting IRFs. All IRFs for a particular variable with a maximum absolute deviation from the steady state smaller than this value are not displayed. Default: @code{1e-10}.
+
 @item nocorr
 Don't print the correlation matrix (printing them is the default).
 
@@ -3384,9 +3670,7 @@ problems. Default: @code{1.000001} (except when estimating with
 @code{0.999999} in that case; @pxref{Estimation}).
 
 @item qz_zero_threshold = @var{DOUBLE}
-Value used to test if a generalized eigenvalue is 0/0 in the generalized
-Schur decomposition  (in which case  the model  does not admit  a unique
-solution). Default: @code{1e-6}.
+@xref{qz_zero_threshold}.
 
 @item replic = @var{INTEGER}
 Number of simulated series used to compute the IRFs. Default: @code{1}
@@ -3425,10 +3709,10 @@ period(s). The periods must be strictly positive. Conditional variances are give
 decomposition provides the decomposition of the effects of shocks upon
 impact. The results are stored in
 @code{oo_.conditional_variance_decomposition}
-(@pxref{oo_.conditional_variance_decomposition}). The variance decomposition is only conducted, if theoretical moments are requested, i.e. using the @code{periods=0}-option. In case of @code{order=2}, Dynare provides a second-order accurate approximation to the true second moments based on the linear terms of the second-order solution (see @cite{Kim, Kim, Schaumburg and Sims (2008)}). 
+(@pxref{oo_.conditional_variance_decomposition}). The variance decomposition is only conducted, if theoretical moments are requested, i.e. using the @code{periods=0}-option. In case of @code{order=2}, Dynare provides a second-order accurate approximation to the true second moments based on the linear terms of the second-order solution (see @cite{Kim, Kim, Schaumburg and Sims (2008)}). Note that the unconditional variance decomposition (i.e. at horizon infinity) is automatically conducted if theoretical moments are requested (@pxref{oo_.variance_decomposition})
 
 @item pruning
-Discard higher order terms when iteratively computing simulations of 
+Discard higher order terms when iteratively computing simulations of
 the solution. At second order, Dynare uses the algorithm of @cite{Kim, Kim, Schaumburg and Sims (2008)}, while at third order its generalization by @cite{Andreasen, Fernández-Villaverde and Rubio-Ramírez (2013)} is used.
 
 @item partial_information
@@ -3451,7 +3735,7 @@ Determines the algorithm used to solve the Sylvester equation for block decompos
 
 @item default
 Uses the default solver for Sylvester equations (@code{gensylv}) based
-on Ondra Kamenik algorithm (see
+on Ondra Kamenik's algorithm (see
 @uref{http://www.dynare.org/documentation-and-support/dynarepp/sylvester.pdf/at_download/file,the
 Dynare Website} for more information).
 
@@ -3465,7 +3749,7 @@ Default value is @code{default}
 
 @item sylvester_fixed_point_tol = @var{DOUBLE}
 @anchor{sylvester_fixed_point_tol}
-It is the convergence criterion used in the fixed point sylvester solver. Its default value is 1e-12.
+It is the convergence criterion used in the fixed point Sylvester solver. Its default value is 1e-12.
 
 @item dr = @var{OPTION}
 @anchor{dr}
@@ -3503,7 +3787,11 @@ The convergence criterion used in the logarithmic reduction algorithm. Its defau
 The maximum number of iterations used in the logarithmic reduction algorithm. Its default value is 100.
 
 @item loglinear
-@xref{loglinear}.
+@xref{loglinear}. Note that ALL variables are log-transformed by using the Jacobian transformation,
+not only selected ones. Thus, you have to make sure that your variables have strictly positive
+steady states. @code{stoch_simul} will display the moments, decision rules,
+and impulse responses for the log-linearized variables. The decision rules saved
+in @code{oo_.dr} and the simulated variables will also be the ones for the log-linear variables.
 
 @end table
 
@@ -3570,7 +3858,7 @@ number of the matrix in the cell array corresponds to the order of
 autocorrelation. The option @code{ar} specifies the number of
 autocorrelation matrices available. Contains theoretical
 autocorrelations if the @code{periods} option is not present (or an approximation thereof for @code{order=2}), and
-empirical autocorrelations otherwise.
+empirical autocorrelations otherwise. The field is only created if stationary variables are present.
 
 The element @code{oo_.autocorr@{i@}(k,l)} is equal to the correlation
 between @math{y^k_t} and @math{y^l_{t-i}}, where @math{y^k}
@@ -3597,17 +3885,33 @@ details. Beware, this is the @i{autocorrelation} function, not the
 @i{autocovariance} function.
 
 @item oo_.gamma@{nar+2@}
-Variance decomposition.
+Unconditional variance decomposition @pxref{oo_.variance_decomposition}
 
 @item oo_.gamma@{nar+3@}
 If a second order approximation has been requested, contains the
 vector of the mean correction terms.
 @end table
 
-In case of @code{order=2}, the theoretical second moments are a second order accurate approximation of the true second moments, see @code{conditional_variance_decomposition}. 
+In case of @code{order=2}, the theoretical second moments are a second order accurate approximation of the true second moments, see @code{conditional_variance_decomposition}.
 
 @end defvr
 
+@anchor{oo_.variance_decomposition}
+@defvr {MATLAB/Octave variable} oo_.variance_decomposition
+After a run of @code{stoch_simul} when requesting theoretical moments (@code{periods=0}), contains a matrix with the result of the unconditional variance decomposition (i.e. at horizon infinity). The first dimension corresponds to the endogenous variables (in the order of declaration) and the second dimension corresponds to exogenous variables (in the order of declaration). Numbers are in percent and sum up to 100 across columns.
+@end defvr
+
+@anchor{oo_.conditional_variance_decomposition}
+@defvr {MATLAB/Octave variable} oo_.conditional_variance_decomposition
+After a run of @code{stoch_simul} with the
+@code{conditional_variance_decomposition} option, contains a
+three-dimensional array with the result of the decomposition. The
+first dimension corresponds to forecast horizons (as declared with the
+option), the second dimension corresponds to endogenous variables (in
+the order of declaration), the third dimension corresponds to
+exogenous variables (in the order of declaration).
+@end defvr
+
 @defvr {MATLAB/Octave variable} oo_.irfs
 After a run of @code{stoch_simul} with option @code{irf} different
 from zero, contains the impulse responses, with the following naming
@@ -3617,11 +3921,10 @@ For example, @code{oo_.irfs.gnp_ea} contains the effect on @code{gnp}
 of a one standard deviation shock on @code{ea}.
 @end defvr
 
-@vindex oo_.dr
 The approximated solution of a model takes the form of a set of decision
 rules or transition equations expressing the current value of the endogenous
 variables of the model as function of the previous state of the model and
-shocks oberved at the beginning of the period. The decision rules are stored
+shocks observed at the beginning of the period. The decision rules are stored
 in the structure @code{oo_.dr} which is described below.
 
 @deffn Command extended_path ;
@@ -3660,7 +3963,7 @@ If @code{order} is greater than 0 Dynare uses a gaussian quadrature to take into
 are generated  by assuming that the agents  believe that there  will no more shocks after period @var{t+S}. This is an experimental feature and can be quite slow. Default: @code{0}.
 
 @item hybrid
-Use the constant of the second order perturbation reduced form to correct the paths generated by the (stochastic) extended path algorithm. 
+Use the constant of the second order perturbation reduced form to correct the paths generated by the (stochastic) extended path algorithm.
 
 @end table
 
@@ -3735,7 +4038,7 @@ declaration order. Conversely, k-th declared variable is numbered
 @vindex M_.nsfwrd
 @vindex M_.ndynamic
 Finally, the state variables of the model are the purely backward variables
-and the mixed variables. They are orderer in DR-order when they appear in
+and the mixed variables. They are ordered in DR-order when they appear in
 decision rules elements. There are @code{M_.nspred = M_.npred + M_.nboth} such
 variables. Similarly, one has @code{M_.nsfwrd = M_.nfwrd + M_.nboth},
 and @code{M_.ndynamic = M_.nfwrd+M_.nboth+M_.npred}.
@@ -3743,7 +4046,7 @@ and @code{M_.ndynamic = M_.nfwrd+M_.nboth+M_.npred}.
 @node First order approximation
 @subsection First order approximation
 
-The approximation has the form:
+The approximation has the stylized form:
 
 @math{y_t = y^s + A y^h_{t-1} + B u_t}
 
@@ -3772,6 +4075,12 @@ endogenous in DR-order. The matrix columns correspond to exogenous
 variables in declaration order.
 @end itemize
 
+Of course, the shown form of the approximation is only stylized, because it neglects the required different ordering in @math{y^s} and @math{y^h_t}. The precise form of the approximation that shows the way Dynare deals with differences between declaration and DR-order, is
+
+@math{y_t(oo\_.dr.order\_var) = y^s(oo\_.dr.order\_var) + A \cdot y_{t-1}(oo\_.dr.order\_var(k2))-y^s(oo\_.dr.order\_var(k2)) + B\cdot u_t}
+
+where @math{k2} selects the state variables, @math{y_t} and @math{y^s} are in declaration order and the coefficient matrices are in DR-order. Effectively, all variables on the right hand side are brought into DR order for computations and then assigned to @math{y_t} in declaration order.
+
 @node Second order approximation
 @subsection Second order approximation
 
@@ -3785,7 +4094,7 @@ A y^h_{t-1} + B u_t + 0.5 C
 
 where @math{y^s} is the steady state value of @math{y},
 @math{y^h_t=y_t-y^s}, and @math{\Delta^2} is the shift effect of the
-variance of future shocks.
+variance of future shocks. For the reordering required due to differences in declaration and DR order, see the first order approximation.
 
 The coefficients of the decision rules are stored in the variables
 described for first order approximation, plus the following variables:
@@ -3896,16 +4205,6 @@ three times in the unfolded @math{G_3} matrix, they must be multiplied
 by 3 when computing the decision rules.
 @end itemize
 
-@anchor{oo_.conditional_variance_decomposition}
-@defvr {MATLAB/Octave variable} oo_.conditional_variance_decomposition
-After a run of @code{stoch_simul} with the
-@code{conditional_variance_decomposition} option, contains a
-three-dimensional array with the result of the decomposition. The
-first dimension corresponds to forecast horizons (as declared with the
-option), the second dimension corresponds to endogenous variables (in
-the order of declaration), the third dimension corresponds to
-exogenous variables (in the order of declaration).
-@end defvr
 
 @node Estimation
 @section Estimation
@@ -3923,7 +4222,7 @@ Note that in order to avoid stochastic singularity, you must have at
 least as many shocks or measurement errors in your model as you have
 observed variables.
 
-The estimation using a first order approximation can benefit from the block 
+The estimation using a first order approximation can benefit from the block
 decomposition of the model (@pxref{block}).
 
 
@@ -4080,7 +4379,7 @@ A fourth parameter of the prior used for generalized beta distribution
 and for the uniform distribution. Default: @code{1}
 
 @item @var{SCALE_PARAMETER}
-The scale parameter to be used for the jump distribution of the
+A parameter specific scale parameter for the jumping distribution's covariance matrix of the
 Metropolis-Hasting algorithm
 @end table
 
@@ -4101,7 +4400,7 @@ apply.
 
 The following line:
 @example
-corr eps_1, eps_2, 0.5,  ,  , beta_pdf, 0, 0.3, -1, 1;
+corr eps_1, eps_2, 0.5,  ,  , beta_pdf, 0, 0.3, -1, 1;
 @end example
 sets a generalized beta prior for the correlation between @code{eps_1} and
 @code{eps_2} with mean 0 and variance 0.3. By setting
@@ -4113,7 +4412,7 @@ respectively. The initial value is set to 0.5.
 
 Similarly, the following line:
 @example
-corr eps_1, eps_2, 0.5,  -0.5,  1, beta_pdf, 0, 0.3, -1, 1;
+corr eps_1, eps_2, 0.5,  -0.5,  1, beta_pdf, 0, 0.3, -1, 1;
 @end example
 sets the same generalized beta distribution as before, but now truncates
 this distribution to [-0.5,1] through the use of @var{LOWER_BOUND} and
@@ -4149,9 +4448,10 @@ end;
 @end deffn
 
 @deffn Block estimated_params_init ;
+@deffnx Block estimated_params_init (@var{OPTIONS}@dots{});
 
 This block declares numerical initial values for the optimizer when
-these ones are different from the prior mean.
+these ones are different from the prior mean. It should be specified after the @code{estimated_params}-block as otherwise the specified starting values are overwritten by the latter.
 
 Each line has the following syntax:
 
@@ -4160,6 +4460,14 @@ stderr VARIABLE_NAME | corr VARIABLE_NAME_1, VARIABLE_NAME_2 | PARAMETER_NAME
 , INITIAL_VALUE;
 @end example
 
+@optionshead
+
+@table @code
+
+@item use_calibration
+For not specifically initialized parameters, use the deep parameters and the elements of the covariance matrix specified in the @code{shocks} block from calibration as starting values for estimation. For components of the @code{shocks} block that were not explicitly specified during calibration or which violate the prior, the prior mean is used.
+@end table
+
 @xref{estimated_params}, for the meaning and syntax of the various components.
 
 @end deffn
@@ -4195,31 +4503,79 @@ The following information will be displayed by the command:
 results from posterior optimization (also for maximum likelihood)
 
 @item
-marginal log density
+marginal log data density
 
 @item
-mean and shortest confidence interval from posterior simulation
+posterior mean and highest posterior density interval (shortest credible set) from posterior simulation
 
 @item
 Metropolis-Hastings convergence graphs that still need to be documented
 
 @item
-graphs with prior, posterior and mode
+graphs with prior, posterior, and mode
 
 @item
 graphs of smoothed shocks, smoothed observation errors, smoothed and historical variables
 @end itemize
 
+Note that the posterior moments, smoothed variables, k-step ahead
+filtered variables and forecasts (when requested) will only be
+computed on the variables listed after the @code{estimation} command.
+Alternatively, one can choose to compute these quantities on all
+endogenous or on all observed variables (see
+@code{consider_all_endogenous} and @code{consider_only_observed}
+options below). If no variable is listed after the @code{estimation}
+command, then Dynare will interactively ask which variable set to use.
+
+Also, during  the MCMC  (Bayesian estimation with  @code{mh_replic}>0) a
+(graphical or text) waiting bar is displayed showing the progress of the
+Monte-Carlo and the @i{current} value of the acceptance ratio. Note that
+if  the @code{load_mh_file}  option  is used  (see  below) the  reported
+acceptance ratio does not take into  account the draws from the previous
+MCMC. In the literature there is a general agreement for saying that the
+acceptance ratio  should be close to  one third or one  quarter. If this
+not the case, you can stop the MCMC (@code{Ctrl-C}) and change the value
+of option @code{mh_jscale} (see below).
+
+Note that by default Dynare generates random numbers using the algorithm
+@code{mt199937ar} (@i{ie} Mersenne Twister method) with a seed set equal
+to @code{0}.   Consequently the MCMCs  in Dynare are  deterministic: one
+will  get  exactly  the  same   results  across  different  Dynare  runs
+(@i{ceteris paribus}).  For instance, the posterior moments or posterior
+densities  will be  exactly the  same. This  behaviour allows  to easily
+identify the  consequences of a change  on the model, the  priors or the
+estimation options. But one may also  want to check that across multiple
+runs, with  different sequences of  proposals, the returned  results are
+almost  identical. This  should  be  true if  the  number of  iterations
+(@i{ie} the value of @code{mh_replic}) is important enough to ensure the
+convergence of  the MCMC to its  ergodic distribution. In this  case the
+default behaviour of the random number generators in not wanted, and the
+user  should set  the  seed according  to the  system  clock before  the
+estimation command using the following command:
+
+@example
+set_dynare_seed('clock');
+@end example
+
+@noindent so that the sequence of proposals will be different across different runs.
+
 @algorithmshead
 
-The Monte Carlo Markov Chain (MCMC) univariate diagnostics are generated
-by  the estimation  command if  @ref{mh_nblocks}  is larger  than 1,  if
-@ref{mh_replic} is larger than 2000, and if option @ref{nodiagnostic} is
-not used.  As described in section  3 of @cite{Brooks and Gelman (1998)}
-the convergence  diagnostics are  based on  comparing pooled  and within
-MCMC moments  (Dynare displays the  second and third order  moments, and
-the length of  the Highest Probability Density interval  covering 80% of
-the  posterior   distribution).   Due  to  computational   reasons,  the
+The Monte  Carlo Markov  Chain (MCMC) diagnostics  are generated  by the
+estimation command if @ref{mh_replic} is  larger than 2000 and if option
+@ref{nodiagnostic} is not used. If @ref{mh_nblocks} is equal to one, the
+convergence diagnostics  of @cite{Geweke  (1992,1999)} is  computed.  It
+uses a chi square test to compare  the means of the first and last draws
+specified  by  @ref{geweke_interval}  after  discarding  the  burnin  of
+@ref{mh_drop}. The test  is computed using variance  estimates under the
+assumption of  no serial correlation  as well as using  tapering windows
+specified in  @ref{taper_steps}.  If @ref{mh_nblocks} is  larger than 1,
+the convergence diagnostics of @cite{Brooks  and Gelman (1998)} are used
+instead.  As described  in section 3 of @cite{Brooks  and Gelman (1998)}
+the univariate convergence diagnostics are based on comparing pooled and
+within MCMC moments (Dynare displays the second and third order moments,
+and the length of the  Highest Probability Density interval covering 80%
+of  the  posterior distribution).   Due  to  computational reasons,  the
 multivariate  convergence diagnostic  does not  follow @cite{Brooks  and
 Gelman (1998)}  strictly, but rather  applies their idea  for univariate
 convergence  diagnostics  to  the  range  of  the  posterior  likelihood
@@ -4234,12 +4590,14 @@ univariate convergence diagnostic.
 
 @item datafile = @var{FILENAME}
 @anchor{datafile}
-The datafile: a @file{.m} file, a @file{.mat} file, a @file{.csv} file, or a
-@file{.xls}/@file{.xlsx} file (the latter format is supported under Octave
-if the @uref{http://octave.sourceforge.net/io/,io} and
-@uref{http://octave.sourceforge.net/java/,java} packages from
-Octave-Forge are installed, along with a
-@uref{http://www.java.com/download,Java Runtime Environment})
+The datafile: a @file{.m} file, a @file{.mat} file, a @file{.csv}
+file, or a @file{.xls}/@file{.xlsx} file (under Octave, the
+@uref{http://octave.sourceforge.net/io/,io} from Octave-Forge is
+required for the @file{.csv}, @file{.xls} and @file{.xlsx} formats; in
+addition, for the @file{.xls} and @file{.xlsx} formats, the
+@uref{http://octave.sourceforge.net/java/,java} package is required,
+along with a @uref{http://www.java.com/download,Java Runtime
+Environment})
 
 @item xls_sheet = @var{NAME}
 @anchor{xls_sheet}
@@ -4268,7 +4626,7 @@ The number of the first observation to be used. Default: @code{1}
 @item prefilter = @var{INTEGER}
 @anchor{prefilter}
 A value of @code{1} means that the estimation procedure will demean
-the data. Default: @code{0}, @i{i.e.} no prefiltering
+each data series by its empirical mean. Default: @code{0}, @i{i.e.} no prefiltering
 
 @item presample = @var{INTEGER}
 @anchor{presample}
@@ -4278,12 +4636,16 @@ likelihood. These first observations are used as a training sample. Default: @co
 @item loglinear
 @anchor{loglinear}
 Computes a log-linear approximation of the model instead of a linear
-approximation. The data must correspond to the definition of the
-variables used in the model. Default: computes a linear approximation
+approximation. As always in the context of estimation, the data must correspond to the definition of the
+variables used in the model (see @cite{Pfeifer 2013} for more details on how to correctly specify observation equations linking model variables and the data). If you specify the loglinear option, Dynare will take the logarithm of both your model variables and of your data as it assumes the data to correspond to the original non-logged model variables. The displayed posterior results like impulse responses, smoothed variables, and moments will be for the logged variables, not the original un-logged ones. Default: computes a linear approximation
+
+@item logdata
+@anchor{logdata}
+Dynare applies the @math{log} transformation to the provided data if a log-linearization of the model is requested (@ref{loglinear}) unless @code{logdata} option is used. This option is necessary if the user provides data already in logs, otherwise the @math{log} transformation will be applied twice (this may result in complex data).
 
 @item plot_priors = @var{INTEGER}
 Control the plotting of priors:
-
+1
 @table @code
 
 @item 0
@@ -4292,7 +4654,7 @@ No prior plot
 @item 1
 Prior density for each estimated parameter is plotted. It is important
 to check that the actual shape of prior densities matches what you
-have in mind. Ill choosen values for the prior standard density can
+have in mind. Ill-chosen values for the prior standard density can
 result in absurd prior densities.
 @end table
 
@@ -4338,7 +4700,11 @@ Default value is @code{1}. For advanced use only.
 For internal use and testing only.
 
 @item conf_sig = @var{DOUBLE}
-@xref{conf_sig}.
+Confidence interval used for classical forecasting after estimation. See @xref{conf_sig}.
+
+@item mh_conf_sig = @var{DOUBLE}
+@anchor{mh_conf_sig} 
+Confidence/HPD interval used for the computation of prior and  posterior statistics like: parameter distributions, prior/posterior moments, conditional variance decomposition, impulse response functions, Bayesian forecasting. Default: @code{0.9} 
 
 @item mh_replic = @var{INTEGER}
 @anchor{mh_replic} Number of replications for Metropolis-Hastings
@@ -4346,26 +4712,39 @@ algorithm. For the time being, @code{mh_replic} should be larger than
 @code{1200}. Default: @code{20000}
 
 @item sub_draws = @var{INTEGER}
-@anchor{sub_draws} number of draws from the Metropolis iterations that
-are used to compute posterior distribution of various objects (smoothed
-variable, smoothed shocks, forecast, moments, IRF). @code{sub_draws} should be smaller than
-the total number of Metropolis draws available. Default:
-@code{min(1200,0.25*Total number of draws)}
-
+@anchor{sub_draws}  number of  draws  from  the MCMC  that  are used  to
+compute posterior  distribution of  various objects  (smoothed variable,
+smoothed shocks,  forecast, moments,  IRF).  The  draws used  to compute
+these posterior moments are sampled uniformly in the estimated empirical
+posterior  distribution (@i{ie}  draws of  the MCMC).   @code{sub_draws}
+should  be  smaller than  the  total  number  of MCMC  draws  available.
+Default:  @code{min(posterior_max_subsample_draws,0.25*Total  number  of
+draws)}
+
+@item posterior_max_subsample_draws = @var{INTEGER}
+@anchor{posterior_max_subsample_draws} maximum number  of draws from the
+MCMC used to compute posterior distribution of various objects (smoothed
+variable, smoothed shocks, forecast, moments,  IRF), if not overriden by
+option @ref{sub_draws}. Default: @code{1200}
 
 @item mh_nblocks = @var{INTEGER}
 @anchor{mh_nblocks} Number of parallel chains for Metropolis-Hastings algorithm. Default:
 @code{2}
 
 @item mh_drop = @var{DOUBLE}
-The fraction of initially generated parameter vectors to be dropped
-before using posterior simulations. Default: @code{0.5}
+@anchor{mh_drop}
+The fraction of initially generated parameter vectors to be dropped as a burnin before using posterior simulations. Default: @code{0.5}
 
 @item mh_jscale = @var{DOUBLE}
-The scale to be used for the jumping distribution in
-Metropolis-Hastings algorithm. The default value is rarely
-satisfactory. This option must be tuned to obtain, ideally, an
-acceptation rate of 25% in the Metropolis-Hastings algorithm. Default:
+@anchor{mh_jscale}  The scale  parameter of  the jumping  distribution's
+covariance matrix (Metropolis-Hastings algorithm).  The default value is
+rarely satisfactory.  This  option must be tuned to  obtain, ideally, an
+acceptance  ratio  of  25%-33%  in  the  Metropolis-Hastings  algorithm.
+Basically,  the  idea  is  to  increase  the  variance  of  the  jumping
+distribution if the acceptance ratio is  too high, and decrease the same
+variance if the  acceptance ratio is too low. In  some situations in may
+help to  consider parameter  specific values  for this  scale parameter,
+this  can  be  done  in  the  @ref{estimated_params}  block. Default:
 @code{0.2}
 
 @item mh_init_scale = @var{DOUBLE}
@@ -4388,17 +4767,18 @@ hessian (@code{hh}, only if @code{cova_compute=1}) in a file called
 @file{@var{MODEL_FILENAME}_mode.mat}
 
 @item mode_compute = @var{INTEGER} | @var{FUNCTION_NAME}
+@anchor{mode_compute}
 Specifies the optimizer for the mode computation:
 
 @table @code
 
 @item 0
 The mode isn't computed. When @code{mode_file} option is specified, the
-mode is simply read from that file. 
+mode is simply read from that file.
 
 When @code{mode_file} option is not
 specified, Dynare reports the value of the log posterior (log likelihood)
-evaluated at the initial value of the parameters. 
+evaluated at the initial value of the parameters.
 
 When @code{mode_file}
 option is not specified and there is no @code{estimated_params} block,
@@ -4442,7 +4822,11 @@ routine (generally more efficient than the MATLAB or Octave implementation
 available with @code{mode_compute=7})
 
 @item 9
-Uses the CMA-ES (Covariance Matrix Adaptation Evolution Strategy) algorithm, an evolutionary algorithm for difficult non-linear non-convex optimization 
+Uses the CMA-ES (Covariance Matrix Adaptation Evolution Strategy) algorithm, an evolutionary algorithm for difficult non-linear non-convex optimization
+
+@item 10
+Uses the simpsa algorithm, based on the combination of the non-linear simplex and simulated annealing algorithms and proposed by
+@cite{Cardoso, Salcedo and Feyo de Azevedo (1996)}.
 
 @item @var{FUNCTION_NAME}
 It is also possible to give a @var{FUNCTION_NAME} to this option,
@@ -4453,6 +4837,26 @@ value of that function as the posterior mode.
 @noindent
 Default value is @code{4}.
 
+@item mcmc_jumping_covariance = hessian|prior_variance|identity_matrix|@var{FILENAME}
+Tells Dynare which covariance to use for the proposal density of the MCMC sampler. @code{mcmc_jumping_covariance} can be one of the following:
+
+@table @code
+@item hessian
+Uses the Hessian matrix computed at the mode.
+
+@item prior_variance
+Uses the prior variances. No infinite prior variances are allowed in this case.
+
+@item identity_matrix
+Uses an identity matrix.
+
+@item @var{FILENAME}
+Loads an arbitrary user-specified covariance matrix from @code{@var{FILENAME}.mat}. The covariance matrix must be saved in a variable named @code{jumping_covariance}, must be square, positive definite, and have the same dimension as the number of estimated parameters.
+
+@end table
+@noindent
+Note that the covariance matrices are still scaled with @ref{mh_jscale}. Default value is @code{hessian}.
+
 @item mode_check
 Tells Dynare to plot the posterior density for values around the
 computed mode for each estimated parameter in turn. This is helpful to
@@ -4475,7 +4879,7 @@ boundary, or in conjunction with @code{mode_check_neighbourhood_size =
 Inf} when the domain in not the entire real line. Default: @code{1}.
 
 @item mode_check_number_of_points = @var{INTEGER}
-Number of points around the posterior mode where the posterior kernel is evaluated (for each parameter). Default is @code{20}  
+Number of points around the posterior mode where the posterior kernel is evaluated (for each parameter). Default is @code{20}
 
 @item prior_trunc = @var{DOUBLE}
 @anchor{prior_trunc} Probability of extreme values of the prior
@@ -4487,51 +4891,172 @@ parameters. Default: @code{1e-32}
 Metropolis-Hastings simulations instead of starting from
 scratch. Shouldn't be used together with @code{mh_recover}
 
-@item optim = (@var{fmincon options})
-Can be used to set options for @code{fmincon}, the optimizing function
-of MATLAB Optimization toolbox. Use MATLAB's syntax for these
-options. Default:
-@code{('display','iter','LargeScale','off','MaxFunEvals',100000,'TolFun',1e-8,'TolX',1e-6)}
+@item optim = (@var{NAME}, @var{VALUE}, ...)
+A list of @var{NAME} and @var{VALUE} pairs. Can be used to set options for the optimization routines. The set of available options depends on the selected optimization routine (ie on the value of option @ref{mode_compute}):
+
+@table @code
+
+@item 1, 3, 7
+Available options are given in the documentation of the MATLAB optimization toolbox or in Octave's documentation.
+
+@item 4
+Available options are:
+
+@table @code
+
+@item 'MaxIter'
+Maximum number of iterations. Default: @code{1000}
+
+@item 'NumgradAlgorithm'
+Possible values are @code{2}, @code{3} and @code{5} respectively corresponding to the two, three and five points formula used to compute the gradient of the objective function (see @cite{Abramowitz and Stegun (1964)}). Values @code{13} and @code{15} are more experimental. If perturbations on the right and the left increase the value of the objective function (we minimize this function) then we force the corresponding element of the gradient to be zero. The idea is to temporarily reduce the size of the optimization problem. Default: @code{2}.
+
+@item 'NumgradEpsilon'
+Size of the perturbation used to compute numerically the gradient of the objective function. Default: @code{1e-6}
+
+@item 'TolFun'
+Stopping criteria. Default: @code{1e-7}
+
+@item 'InitialInverseHessian'
+Initial approximation for the inverse of the Hessian matrix of the posterior kernel (or likelihood). Obviously this approximation has to be a square, positive definite and symmetric matrix. Default: @code{'1e-4*eye(nx)'}, where @code{nx} is the number of parameters to be estimated.
+
+@end table
+
+@item 6
+Available options are:
+
+@table @code
+
+@item 'NumberOfMh'
+Number of MCMC run sequentially. Default: @code{3}
+
+@item 'ncov-mh'
+Number of iterations used for updating the covariance matrix of the jumping distribution. Default: @code{20000}
+
+@item 'nscale-mh'
+Maximum number of iterations used for adjusting the scale parameter of the jumping distribution.  @code{200000}
+
+@item 'nclimb'
+Number of iterations in the last MCMC (climbing mode).
+
+@item 'InitialCovarianceMatrix'
+Initial covariance matrix of the jumping distribution. Default is @code{'previous'} if option @code{mode_file} is used, @code{'prior'} otherwise.
+
+@item 'AcceptanceRateTarget'
+A real number between zero and one. The scale parameter of the jumping distribution is adjusted so that the effective acceptance rate matches the value of option @code{'AcceptanceRateTarget'}. Default: @code{1.0/3.0}
+
+@end table
+
+@item 8
+Available options are:
+
+@table @code
+
+@item 'MaxIter'
+Maximum number of iterations. Default: @code{5000}
+
+@item 'MaxFunEvals'
+Maximum number of objective function evaluations. No default.
+
+@item 'MaxFunvEvalFactor'
+Set @code{MaxFunvEvals} equal to @code{MaxFunvEvalFactor} times the number of estimated parameters. Default: @code{500}.
+
+@item 'TolFun'
+Tolerance parameter (w.r.t the objective function). Default: @code{1e-4}
+
+@item 'TolX'
+Tolerance parameter (w.r.t the instruments). Default: @code{1e-4}
+
+@item 'InitialSimplexSize'
+
+Initial size of the simplex, expressed as percentage deviation from the provided initial guess in each direction. Default: @code{.05}
+
+@end table
+
+@item 9
+Available options are:
+
+@table @code
+
+@item 'MaxIter'
+Maximum number of iterations.
+
+@item 'MaxFunEvals'
+Maximum number of objective function evaluations. Default: @code{Inf}.
+
+@item 'TolFun'
+Tolerance parameter (w.r.t the objective function). Default: @code{1e-7}
+
+@item 'TolX'
+Tolerance parameter (w.r.t the instruments). Default: @code{1e-7}
+
+@end table
+
+@item 10
+Available options are:
+
+@table @code
+
+@item 'MaxIter'
+Maximum number of iterations. Default: @code{5000}
+
+@item 'MaxFunvEvals'
+Maximum number of objective function evaluations. No default.
+
+@item 'TolFun'
+Tolerance parameter (w.r.t the objective function). Default: @code{1e-4}
+
+@item 'TolX'
+Tolerance parameter (w.r.t the instruments). Default: @code{1e-4}
+
+@item 'EndTemperature'
+Terminal condition w.r.t the temperature. When the temperature reaches @code{EndTemperature}, the temperature is set to zero and the algorithm falls back into a standard simplex algorithm. Default: @code{.1}
+
+@end table
+
+@end table
+
+@customhead{Example 1}
+To change the defaults of csminwel (@code{mode_compute=4}):
+
+@code{estimation(..., mode_compute=4, optim=('NumgradAlgorithm',3,'TolFun',1e-5), ...);}
+
 
 @item nodiagnostic
 @anchor{nodiagnostic} Does not compute the convergence diagnostics for
 Metropolis-Hastings. Default: diagnostics are computed and displayed
 
 @item bayesian_irf
-@vindex oo_.PosteriorIRF.dsge
 @anchor{bayesian_irf} Triggers the computation of the posterior
 distribution of IRFs. The length of the IRFs are controlled by the
 @code{irf} option. Results are stored in @code{oo_.PosteriorIRF.dsge}
 (see below for a description of this variable)
 
-@item dsge_var
-Triggers the estimation of a DSGE-VAR model, where the weight of the
-DSGE prior of the VAR model will be estimated.  The prior on the
-weight of the DSGE prior, @code{dsge_prior_weight}, must be defined in
-the @code{estimated_params} section.  NB: The previous method of
-declaring @code{dsge_prior_weight} as a parameter and then placing it
-in @code{estimated_params} is now deprecated and will be removed in a
-future release of Dynare.
-
 @item dsge_var = @var{DOUBLE}
-@anchor{dsge_var}
-Triggers the estimation of a DSGE-VAR model, where the weight of the
-DSGE prior of the VAR model is calibrated to the value passed. NB: The
-previous method of declaring @code{dsge_prior_weight} as a parameter
-and then calibrating it is now deprecated and will be removed in a
-future release of Dynare.
+@anchor{dsge_var} Triggers the estimation of a DSGE-VAR model, where the
+weight of  the DSGE prior  of the VAR model  is calibrated to  the value
+passed (see @cite{Del  Negro and Schorfheide (2004)}). NB:  The previous method
+of   declaring  @code{dsge_prior_weight}   as  a   parameter  and   then
+calibrating it is now deprecated and will be removed in a future release
+of Dynare.
+
+@item dsge_var
+Triggers the  estimation of a  DSGE-VAR model,  where the weight  of the
+DSGE prior of  the VAR model will  be estimated (as in  @cite{Adjemian et alii
+(2008)}).    The   prior    on   the   weight   of    the   DSGE   prior,
+@code{dsge_prior_weight}, must be defined in the @code{estimated_params}
+section.  NB: The previous  method of declaring @code{dsge_prior_weight}
+as a  parameter and  then placing it  in @code{estimated_params}  is now
+deprecated and will be removed in a future release of Dynare.
 
 @item dsge_varlag = @var{INTEGER}
 @anchor{dsge_varlag} The number of lags used to estimate a DSGE-VAR
 model. Default: @code{4}.
 
 @item moments_varendo
-@vindex oo_.PosteriorTheoreticalMoments
 @anchor{moments_varendo} Triggers the computation of the posterior
 distribution of the theoretical moments of the endogenous
 variables. Results are stored in
-@code{oo_.PosteriorTheoreticalMoments} (see below for a description of
-this variable). The number of lags in the autocorrelation function is
+@code{oo_.PosteriorTheoreticalMoments} (@pxref{oo_.PosteriorTheoreticalMoments}). The number of lags in the autocorrelation function is
 controlled by the @code{ar} option.
 
 @item conditional_variance_decomposition = @var{INTEGER}
@@ -4548,30 +5073,24 @@ period 1, the conditional variance decomposition provides the
 decomposition of the effects of shocks upon impact. The results are
 stored in
 @code{oo_.PosteriorTheoreticalMoments.dsge.ConditionalVarianceDecomposition},
-but currently there is no output. Note that this option requires the
+but currently there is no displayed output. Note that this option requires the
 option @code{moments_varendo} to be specified.
 
 @item filtered_vars
-@vindex oo_.FilteredVariables
 @anchor{filtered_vars} Triggers the computation of the posterior
 distribution of filtered endogenous variables/one-step ahead forecasts, i.e. @math{E_{t}{y_{t+1}}}. Results are
 stored in @code{oo_.FilteredVariables} (see below for a description of
 this variable)
 
 @item smoother
-@vindex oo_.SmoothedVariables
-@vindex oo_.SmoothedShocks
-@vindex oo_.SmoothedMeasurementErrors
-@vindex oo_.UpdatedVariables
 @anchor{smoother} Triggers the computation of the posterior distribution
-of smoothered endogenous variables and shocks, i.e. the expected value of variables and shocks given the information available in all observations up to the @emph{final} date (@math{E_{T}{y_t}}). Results are stored in
+of smoothed endogenous variables and shocks, i.e. the expected value of variables and shocks given the information available in all observations up to the @emph{final} date (@math{E_{T}{y_t}}). Results are stored in
 @code{oo_.SmoothedVariables}, @code{oo_.SmoothedShocks} and
 @code{oo_.SmoothedMeasurementErrors}.  Also triggers the computation of
 @code{oo_.UpdatedVariables}, which contains the estimation of the expected value of variables given the information available at the @emph{current} date (@math{E_{t}{y_t}}).  See below for a description of all these
 variables.
 
 @item forecast = @var{INTEGER}
-@vindex oo_.forecast
 @anchor{forecast} Computes the posterior distribution of a forecast on
 @var{INTEGER} periods after the end of the sample used in
 estimation. If no Metropolis-Hastings is computed, the result is
@@ -4609,7 +5128,7 @@ Use the Univariate Diffuse Kalman Filter
 
 @end table
 @noindent
-Default value is @code{0}.
+Default value is @code{0}. In case of missing observations of single or all series, Dynare treats those missing values as unobserved states and uses the Kalman filter to infer their value (see e.g. @cite{Durbin and Koopman (2012), Ch. 4.10})
 
 
 @item kalman_tol = @var{DOUBLE}
@@ -4621,9 +5140,10 @@ Default value is @code{0}.
 forecast covariance matrices.
 
 @item filter_step_ahead = [@var{INTEGER1}:@var{INTEGER2}]
+See below.
+
+@item filter_step_ahead = [@var{INTEGER1} @var{INTEGER2}  @dots{}]
 @anchor{filter_step_ahead}
-@vindex oo_.FilteredVariablesKStepAhead
-@vindex oo_.FilteredVariablesKStepAheadVariances
 Triggers the computation k-step ahead filtered values. Stores results in
 @code{oo_.FilteredVariablesKStepAhead} and
 @code{oo_.FilteredVariablesKStepAheadVariances}.
@@ -4632,15 +5152,9 @@ Triggers the computation k-step ahead filtered values. Stores results in
 @anchor{filter_decomposition} Triggers the computation of the shock
 decomposition of the above k-step ahead filtered values.
 
-@item constant
-@dots{}
-
-@item noconstant
-@dots{}
-
 @item diffuse_filter
 Uses the diffuse Kalman filter (as described in
-@cite{Durbin and Koopman (2001)} and @cite{Koopman and Durbin
+@cite{Durbin and Koopman (2012)} and @cite{Koopman and Durbin
 (2003)}) to estimate models with non-stationary observed variables.
 
 When @code{diffuse_filter} is used the @code{lik_init} option of
@@ -4677,7 +5191,7 @@ Order of approximation, either @code{1} or @code{2}. When equal to
 @code{2}, the likelihood is evaluated with a particle filter based on
 a second order approximation of the model (see
 @cite{Fernandez-Villaverde and Rubio-Ramirez (2005)}).  Default is
-@code{1}, ie the lilkelihood of the linearized model is evaluated
+@code{1}, ie the likelihood of the linearized model is evaluated
 using a standard Kalman filter.
 
 @item irf = @var{INTEGER}
@@ -4687,6 +5201,9 @@ using a standard Kalman filter.
 @xref{irf_shocks}. Only used if @ref{bayesian_irf} is passed. Cannot be used
 with @ref{dsge_var}.
 
+@item irf_plot_threshold = @var{DOUBLE}
+@xref{irf_plot_threshold}. Only used if @ref{bayesian_irf} is passed.
+
 @item aim_solver
 @xref{aim_solver}.
 
@@ -4698,7 +5215,7 @@ with @ref{dsge_var}.
 
 @item lyapunov = @var{OPTION}
 @anchor{lyapunov}
-Determines the algorithm used to solve the Laypunov equation to initialized the variance-covariance matrix of the Kalman filter using the steady-state value of state variables. Possible values for @code{@var{OPTION}} are:
+Determines the algorithm used to solve the Lyapunov equation to initialized the variance-covariance matrix of the Kalman filter using the steady-state value of state variables. Possible values for @code{@var{OPTION}} are:
 
 @table @code
 
@@ -4727,11 +5244,11 @@ Default value is @code{default}
 
 @item lyapunov_fixed_point_tol = @var{DOUBLE}
 @anchor{lyapunov_fixed_point_tol}
-This is the convergence criterion used in the fixed point lyapunov solver. Its default value is 1e-10.
+This is the convergence criterion used in the fixed point Lyapunov solver. Its default value is 1e-10.
 
 @item lyapunov_doubling_tol = @var{DOUBLE}
 @anchor{lyapunov_doubling_tol}
-This is the convergence criterion used in the doubling algorithm to solve the lyapunov equation. Its default value is 1e-16.
+This is the convergence criterion used in the doubling algorithm to solve the Lyapunov equation. Its default value is 1e-16.
 
 @item analytic_derivation
 Triggers estimation with analytic gradient. The final hessian is also
@@ -4739,7 +5256,7 @@ computed analytically. Only works for stationary models without
 missing observations.
 
 @item ar = @var{INTEGER}
-@xref{ar}. Only useful in conjuction with option @code{moments_varendo}.
+@xref{ar}. Only useful in conjunction with option @code{moments_varendo}.
 
 @item endogenous_prior
 Use endogenous priors as in @cite{Christiano, Trabandt and Walentin
@@ -4754,9 +5271,31 @@ the filter, but rather use a penalty value for the likelihood when
 such a singularity is encountered. Default: @code{1}.
 
 @item qz_zero_threshold = @var{DOUBLE}
-Value used to test if a generalized eigenvalue is 0/0 in the generalized
-Schur decomposition  (in which case  the model  does not admit  a unique
-solution). Default: @code{1e-6}.
+@xref{qz_zero_threshold}.
+
+@item taper_steps = [@var{INTEGER1} @var{INTEGER2} @dots{}]
+@anchor{taper_steps}
+Percent tapering used for the spectral window in the @cite{Geweke (1992,1999)}
+convergence diagnostics (requires @ref{mh_nblocks}=1). The tapering is used to
+take the serial correlation of the posterior draws into account. Default: @code{[4 8 15]}.
+
+@item geweke_interval = [@var{DOUBLE} @var{DOUBLE}]
+@anchor{geweke_interval}
+Percentage of MCMC draws at the beginning and end of the MCMC chain taken
+to compute the @cite{Geweke (1992,1999)} convergence diagnostics (requires @ref{mh_nblocks}=1)
+after discarding the first @ref{mh_drop} percent of draws as a burnin. Default: @code{[0.2 0.5]}.
+
+@item consider_all_endogenous
+Compute the posterior moments, smoothed variables, k-step ahead
+filtered variables and forecasts (when requested) on all the
+endogenous variables. This is equivalent to manually listing all the
+endogenous variables after the @code{estimation} command.
+
+@item consider_only_observed
+Compute the posterior moments, smoothed variables, k-step ahead
+filtered variables and forecasts (when requested) on all the observed
+variables. This is equivalent to manually listing all the observed
+variables after the @code{estimation} command.
 
 @end table
 
@@ -4860,15 +5399,22 @@ Variable set by the @code{estimation} command, if it is used with
 
 @defvr {MATLAB/Octave variable} oo_.FilteredVariables
 Variable set by the @code{estimation} command, if it is used with the
-@code{filtered_vars} option. Fields are of the form:
+@code{filtered_vars} option.
+
+After an estimation without Metropolis, fields are of the form:
 @example
 @code{oo_.FilteredVariables.@var{VARIABLE_NAME}}
 @end example
+
+After an estimation with Metropolis, fields are of the form:
+@example
+@code{oo_.FilteredVariables.@var{MOMENT_NAME}.@var{VARIABLE_NAME}}
+@end example
 @end defvr
 
 @defvr {MATLAB/Octave variable} oo_.FilteredVariablesKStepAhead
 Variable set by the @code{estimation} command, if it is used with the
-@code{filter_step_ahead} option.
+@code{filter_step_ahead} option. The k-steps are stored along the rows while the columns indicate the respective variables. The third dimension of the array provides the observation for which the forecast has been made. For example, if @code{filter_step_ahead=[1 2 4]} and @code{nobs=200}, the element (3,5,204) stores the four period ahead filtered value of variable 5 computed at time t=200 for time t=204. The periods at the beginning and end of the sample for which no forecasts can be made, e.g. entries (1,5,1) and (1,5,204) in the example, are set to zero.
 @end defvr
 
 @defvr {MATLAB/Octave variable} oo_.FilteredVariablesKStepAheadVariances
@@ -4876,6 +5422,16 @@ Variable set by the @code{estimation} command, if it is used with the
 @code{filter_step_ahead} option.
 @end defvr
 
+@defvr {MATLAB/Octave variable} oo_.Filtered_Variables_X_step_ahead
+Variable set by the @code{estimation} command, if it is used with the @code{filter_step_ahead} option in the context of Bayesian estimation. Fields are of the form:
+@example
+@code{oo_.Filtered_Variables_X_step_ahead.@var{VARIABLE_NAME}}
+@end example
+The nth entry stores the k-step ahead filtered variable computed at time n for time n+k.
+@end defvr
+
+
+
 @defvr {MATLAB/Octave variable} oo_.PosteriorIRF.dsge
 Variable set by the @code{estimation} command, if it is used with the
 @code{bayesian_irf} option. Fields are of the form:
@@ -4893,32 +5449,58 @@ Variable set by the @code{estimation} command, if it is used with the
 @end defvr
 
 @defvr {MATLAB/Octave variable} oo_.SmoothedShocks
-Variable set by the @code{estimation} command, if it is used with the
-@code{smoother} option. Fields are of the form:
+Variable set by the @code{estimation} command (if used with the
+@code{smoother} option), or by the @code{calib_smoother} command.
+
+After an estimation without Metropolis, or if computed by
+@code{calib_smoother}, fields are of the form:
 @example
 @code{oo_.SmoothedShocks.@var{VARIABLE_NAME}}
 @end example
+
+After an estimation with Metropolis, fields are of the form:
+@example
+@code{oo_.SmoothedShocks.@var{MOMENT_NAME}.@var{VARIABLE_NAME}}
+@end example
+
 @end defvr
 
 @defvr {MATLAB/Octave variable} oo_.SmoothedVariables
-Variable set by the @code{estimation} command, if it is used with the
-@code{smoother} option. Fields are of the form:
+Variable set by the @code{estimation} command (if used with the
+@code{smoother} option), or by the @code{calib_smoother} command.
+
+After an estimation without Metropolis, or if computed by
+@code{calib_smoother}, fields are of the form:
 @example
 @code{oo_.SmoothedVariables.@var{VARIABLE_NAME}}
 @end example
+
+After an estimation with Metropolis, fields are of the form:
+@example
+@code{oo_.SmoothedVariables.@var{MOMENT_NAME}.@var{VARIABLE_NAME}}
+@end example
 @end defvr
 
 @defvr {MATLAB/Octave variable} oo_.UpdatedVariables
-Variable set by the @code{estimation} command, if it is used with the
-@code{smoother} option. Contains the estimation of the expected value of
-variables given the information available at the @emph{current}
-date. Fields are of the form:
+Variable set by the @code{estimation} command (if used with the
+@code{smoother} option), or by the @code{calib_smoother} command.
+Contains the estimation of the expected value of variables given the
+information available at the @emph{current} date.
+
+After an estimation without Metropolis, or if computed by
+@code{calib_smoother}, fields are of the form:
 @example
 @code{oo_.UpdatedVariables.@var{VARIABLE_NAME}}
 @end example
+
+After an estimation with Metropolis, fields are of the form:
+@example
+@code{oo_.UpdatedVariables.@var{MOMENT_NAME}.@var{VARIABLE_NAME}}
+@end example
 @end defvr
 
 @defvr {MATLAB/Octave variable} oo_.PosteriorTheoreticalMoments
+@anchor{oo_.PosteriorTheoreticalMoments}
 Variable set by the @code{estimation} command, if it is used with the
 @code{moments_varendo} option. Fields are of the form:
 @example
@@ -4936,9 +5518,9 @@ Auto- and cross-correlation of endogenous variables. Fields are vectors with cor
 
 
 @item VarianceDecomposition
-Decomposition of variance@footnote{When the shocks are correlated, it
+Decomposition of variance (unconditional variance, i.e. at horizon infinity)@footnote{When the shocks are correlated, it
 is the decomposition of orthogonalized shocks via Cholesky
-decompostion according to the order of declaration of shocks
+decomposition according to the order of declaration of shocks
 (@pxref{Variable declarations})}
 
 @item ConditionalVarianceDecomposition
@@ -5005,22 +5587,6 @@ oo_.posterior_mean.shocks_std.ex
 oo_.posterior_hpdsup.measurement_errors_corr.gdp_conso
 @end example
 
-@defvr {MATLAB/Octave variable} oo_.MC_record.Seeds
-Variable set by the @code{estimation} command. Stores seeds used in MCMC chains
-@end defvr
-
-@defvr {MATLAB/Octave variable} oo_.MC_record.AcceptationRates
-Variable set by the @code{estimation} command. Stores acceptation rates of the MCMC chains
-@end defvr
-
-@defvr {MATLAB/Octave variable} oo_.MC_record.LastParameters
-Variable set by the @code{estimation} command. Stores parameter vector of final MCMC chain draw
-@end defvr
-
-@defvr {MATLAB/Octave variable} oo_.MC_record.LastLogPost
-Variable set by the @code{estimation} command. Stores log-posterior of final MCMC chain draw
-@end defvr
-
 @defvr {MATLAB/Octave variable} oo_.RecursiveForecast
 @anchor{RecursiveForecast}
 Variable set by the @code{forecast} option of the @code{estimation} command when used with the nobs = [@var{INTEGER1}:@var{INTEGER2}] option (@pxref{nobs1,,nobs}).
@@ -5037,10 +5603,10 @@ where @var{FORECAST_OBJECT} is one of the following@footnote{See @ref{forecast}
 Mean of the posterior forecast distribution
 
 @item HPDinf/HPDsup
-Upper/lower bound of the 90\% HPD interval taking into account only parameter uncertainty
+Upper/lower bound of the 90% HPD interval taking into account only parameter uncertainty
 
 @item HPDTotalinf/HPDTotalsup
-Upper/lower bound of the 90\% HPD interval taking into account both parameter and future shock uncertainty
+Upper/lower bound of the 90% HPD interval taking into account both parameter and future shock uncertainty
 
 @end table
 
@@ -5048,6 +5614,56 @@ Upper/lower bound of the 90\% HPD interval taking into account both parameter an
 
 @end defvr
 
+@defvr {MATLAB/Octave variable} oo_.convergence.geweke
+@anchor{convergence.geweke}
+Variable set by the convergence diagnostics of the @code{estimation} command when used with @ref{mh_nblocks}=1 option (@pxref{mh_nblocks}).
+
+Fields are of the form:
+@example
+@code{oo_.convergence.geweke.@var{VARIABLE_NAME}.@var{DIAGNOSTIC_OBJECT}}
+@end example
+where @var{DIAGNOSTIC_OBJECT} is one of the following:
+
+@table @code
+
+@item posteriormean
+Mean of the posterior parameter distribution
+
+@item posteriorstd
+Standard deviation of the posterior parameter distribution
+
+@item nse_iid
+Numerical standard error (NSE) under the assumption of iid draws
+
+@item rne_iid
+Relative numerical efficiency (RNE) under the assumption of iid draws
+
+@item nse_x
+Numerical standard error (NSE) when using an x% taper
+
+@item rne_x
+Relative numerical efficiency (RNE) when using an x% taper
+
+@item pooled_mean
+Mean of the parameter when pooling the beginning and end parts of the chain
+specified in @ref{geweke_interval} and weighting them with their relative precision.
+It is a vector containing the results under the iid assumption followed by the ones
+using the @ref{taper_steps} (@pxref{taper_steps}).
+
+@item pooled_nse
+NSE of the parameter when pooling the beginning and end parts of the chain and weighting them with their relative precision. See @code{pooled_mean}
+
+@item prob_chi2_test
+p-value of a chi squared test for equality of means in the beginning and the end
+of the MCMC chain. See @code{pooled_mean}. A value above 0.05 indicates that
+the null hypothesis of equal means and thus convergence cannot be rejected
+at the 5 percent level. Differing values along the @ref{taper_steps} signal
+the presence of significant autocorrelation in draws. In this case, the
+estimates using a higher tapering are usually more reliable.
+
+@end table
+@end defvr
+
 @deffn Command model_comparison @var{FILENAME}[(@var{DOUBLE})]@dots{};
 @deffnx Command model_comparison (marginal_density = laplace | modifiedharmonicmean) @var{FILENAME}[(@var{DOUBLE})]@dots{};
 
@@ -5097,6 +5713,15 @@ calibrated model.
 
 @end table
 
+@vindex oo_.shock_decomposition
+The results are stored in the field @code{oo_.shock_decomposition}, which is a three
+dimensional array. The first dimension contains the endogenous variables for
+which the shock decomposition has been requested. The second dimension stores
+in the first @code{M_.exo_nbr} columns the contribution of the respective shocks.
+Column @code{M_.exo_nbr+1} stores the contribution of the initial conditions,
+while column @code{M_.exo_nbr+2} stores the smoothed value of the respective
+endogenous variable. The third dimension stores the time periods.
+
 @end deffn
 
 
@@ -5129,9 +5754,6 @@ A datafile must be provided, and the observable variables declared with
 @code{varobs}. The smoother is based on a first-order approximation of
 the model.
 
-@vindex oo_.SmoothedVariables
-@vindex oo_.SmoothedShocks
-@vindex oo_.UpdatedVariables 
 By default, the command computes the smoothed variables and shocks and stores the
 results in @code{oo_.SmoothedVariables} and
 @code{oo_.SmoothedShocks}. It also fills @code{oo_.UpdatedVariables}.
@@ -5169,13 +5791,6 @@ DSGE model, by finding the structural shocks that are needed to match
 the restricted paths. Use @code{conditional_forecast},
 @code{conditional_forecast_paths} and @code{plot_conditional_forecast}
 for that purpose.
-If the model contains strong non-linearities, the conditional forecasts 
-can be computed using an extended path method with the @code{simulation_type} 
-option in @code{conditional_forecast} command set to @code{deterministic}. 
-Because in this case deterministic simulations are carried out, 
-the nature of the shocks (surprise or perfect foresight) has to be indicated 
-in the @code{conditional_forecast_paths} block, using the command @code{expectation} 
-for each endogenous path. The forecasts are plotted using the rplot command.
 
 Finally, it is possible to do forecasting with a Bayesian VAR using
 the @code{bvar_forecast} command.
@@ -5189,7 +5804,7 @@ This command computes a simulation of a stochastic model from an
 arbitrary initial point.
 
 When the model also contains deterministic exogenous shocks, the
-simulation is computed conditionaly to the agents knowing the future
+simulation is computed conditionally to the agents knowing the future
 values of the deterministic exogenous variables.
 
 @code{forecast} must be called after @code{stoch_simul}.
@@ -5335,11 +5950,8 @@ structural shocks that are needed to match the restricted paths. This
 command has to be called after estimation.
 
 Use @code{conditional_forecast_paths} block to give the list of
-constrained endogenous, and their constrained future path. 
-If an extended path method is applied on the original dsge model, 
-the nature of the expectation on the constrained endogenous has to be 
-specified using expectation command. Option
-@code{controlled_varexo} is used to specify the structural shocks
+constrained endogenous, and their constrained future path.
+Option @code{controlled_varexo} is used to specify the structural shocks
 which will be matched to generate the constrained path.
 
 Use @code{plot_conditional_forecast} to graph the results.
@@ -5366,66 +5978,75 @@ Number of simulations. Default: @code{5000}.
 @item conf_sig = @var{DOUBLE}
 Level of significance for confidence interval. Default: @code{0.80}
 
-@item  simulation_type = @code{stochastic} | @code{deterministic}
-Indicates the nature of simulations used to compute the conditional forecast.  
-The default value @code{stochastic} is used, when simulations are computed 
-using the reduced form representation of the DSGE model. 
-If the model has to be simulated using extended path method on the original 
-DSGE model, @code{simulation_type} has to be set equal to @code{deterministic}.
-
-
 @end table
 
-@examplehead
+@outputhead
+
+The results are not stored in the @code{oo_} structure but in a separate structure @code{forecasts} saved to the harddisk into a file called @code{conditional_forecasts.mat}.
 
+@defvr {MATLAB/Octave variable} forecasts.cond
+Variable set by the @code{conditional_forecast} command. It stores the conditional forecasts. Fields are @code{periods+1} by 1 vectors storing the steady state (time 0) and the subsequent @code{periods} forecasts periods. Fields are of the form:
 @example
-var y a
-varexo e u;
+@code{forecasts.cond.@var{FORECAST_MOMENT}.@var{VARIABLE_NAME}}
+@end example
+where @var{FORECAST_MOMENT} is one of the following:
 
-@dots{}
+@table @code
 
-estimation(@dots{});
+@item Mean
+Mean of the conditional forecast distribution.
 
-conditional_forecast_paths;
-var y;
-periods 1:3, 4:5;
-values 2, 5;
-var a;
-periods 1:5;
-values 3;
-end;
+@item ci
+Confidence interval of the conditional forecast distribution. The size corresponds to @code{conf_sig}.
+@end table
 
-conditional_forecast(parameter_set = calibration, controlled_varexo = (e, u), replic = 3000);
+@end defvr
 
-plot_conditional_forecast(periods = 10) a y;
+@defvr {MATLAB/Octave variable} forecasts.uncond
+Variable set by the @code{conditional_forecast} command. It stores the unconditional forecasts. Fields are of the form:
+@example
+@code{forecasts.uncond.@var{FORECAST_MOMENT}.@var{VARIABLE_NAME}}
 @end example
+@end defvr
+
+@defvr {MATLAB/Octave variable} forecasts.instruments
+Variable set by the @code{conditional_forecast} command. Stores the names of the exogenous instruments.
+@end defvr
+
+@defvr {MATLAB/Octave variable} forecasts.controlled_variables
+Variable set by the @code{conditional_forecast} command. Stores the position of the constrained endogenous variables in declaration order.
+@end defvr
+
+@defvr {MATLAB/Octave variable} forecasts.graphs
+Variable set by the @code{conditional_forecast} command. Stores the information for generating the conditional forecast plots.
+@end defvr
 
 
 @examplehead
+
 @example
-/* conditional forecast using extended path method
-with perfect foresight on r path*/
-var y r
+var y a
 varexo e u;
 
 @dots{}
 
+estimation(@dots{});
+
 conditional_forecast_paths;
 var y;
 periods 1:3, 4:5;
 values 2, 5;
-var r
+var a;
 periods 1:5;
 values 3;
-expectation perfect_foresight;
 end;
 
-conditional_forecast(parameter_set = calibration, controlled_varexo = (e, u), simulation_type=deterministic);
+conditional_forecast(parameter_set = calibration, controlled_varexo = (e, u), replic = 3000);
 
-rplot a;
-rplot y;
+plot_conditional_forecast(periods = 10) a y;
 @end example
 
+
 @end deffn
 
 @deffn Block conditional_forecast_paths ;
@@ -5438,10 +6059,6 @@ example.
 The syntax of the block is the same than the deterministic shocks in
 the @code{shocks} blocks (@pxref{Shocks on exogenous variables}).
 
-If the conditional forecast is carried out using the extended path method 
-on the original DSGE model, the nature of the expectation have to be specified
-for each endogenous path, using the @code{expectation} = @code{surprise} | @code{perfect_foresight}.
-By default, @code{expectation} is equal to @code{surprise}.
 
 @end deffn
 
@@ -5475,12 +6092,140 @@ See @file{bvar-a-la-sims.pdf}, which comes with Dynare distribution,
 for more information on this command.
 @end deffn
 
+If the model contains strong non-linearities or if some perfectly expected shocks are considered, the forecasts and the conditional forecasts
+can be computed using an extended path method. The forecast scenario describing the shocks and/or the constrained paths on some endogenous variables should be build.
+The first step is the forecast scenario initialization using the function @code{init_plan}:
+
+@anchor{init_plan}
+@deffn {MATLAB/Octave command} HANDLE = init_plan(DATES) ;
+
+Creates a new forecast scenario for a forecast period (indicated as a dates class, see @ref{dates class members}). This function return a handle on the new forecast scenario.
+
+@end deffn
+
+The forecast scenario can contain some simple shocks on the exogenous variables. This shocks are described using the function @code{basic_plan}:
+
+@anchor{basic_plan}
+@deffn {MATLAB/Octave command} HANDLE = basic_plan(HANDLE, 'VARIABLE_NAME', 'SHOCK_TYPE', DATES, MATLAB VECTOR OF DOUBLE |  [DOUBLE | EXPRESSION [DOUBLE | | EXPRESSION] ] ) ;
+
+Adds to the forecast scenario a shock on the exogenous variable indicated between quotes in the second argument. The shock type has to be specified in the third argument between quotes: 'surprise' in case of an unexpected shock  or 'perfect_foresight' for a perfectly anticipated shock. The fourth argument indicates the period of the shock using a dates class (see @ref{dates class members}). The last argument is the shock path indicated as a Matlab vector of double. This function return the handle of the updated forecast scenario.
+
+@end deffn
+
+The forecast scenario can also contain a constrained path on an endogenous variable. The values of the related exogenous variable compatible with the constrained path are in this case computed. In other words, a conditional forecast is performed. This kind of shock is described with the function  @code{flip_plan}:
+
+@anchor{flip_plan}
+@deffn {MATLAB/Octave command} HANDLE = flip_plan(HANDLE, 'VARIABLE_NAME, 'VARIABLE_NAME', 'SHOCK_TYPE', DATES, MATLAB VECTOR OF DOUBLE |  [DOUBLE | EXPRESSION [DOUBLE | | EXPRESSION] ] ) ;
+
+Adds to the forecast scenario a constrained path on the endogenous variable specified between quotes in the second argument. The associated exogenous variable provided in the third argument between quotes, is considered as an endogenous variable and its values compatible with the constrained path on the endogenous variable will be computed. The nature of the expectation on the constrained  path has to be specified in the fourth argument between quotes: 'surprise' in case of an unexpected path or 'perfect_foresight' for a perfectly anticipated path. The fifth argument indicates the period where the path of the endogenous variable is constrained using a dates class (see @ref{dates class members}). The last argument contains the constrained path as a Matlab vector of double. This function return the handle of the updated forecast scenario.
+
+@end deffn
+
+Once the forecast scenario if fully described, the forecast is computed with the command @code{det_cond_forecast}:
+@anchor{det_cond_forecast}
+@deffn {MATLAB/Octave command} DSERIES = det_cond_forecast(HANDLE[, DSERIES [, DATES]]) ;
+
+Computes the forecast or the conditional forecast using an extended path method for the given forecast scenario (first argument). The past values of the endogenous and exogenous variables provided with a dseries class (see @ref{dseries class members}) can be indicated in the second argument. By default, the past values of the variables are equal to their steady-state values. The initial date of the forecast can be provided in the third argument. By default, the forecast will start at the first date indicated in the @code{init_plan} command. This function returns a dset containing the historical and forecast values for the endogenous and exogenous variables.
+
+@end deffn
+
+
+
+@examplehead
+@example
+/* conditional forecast using extended path method
+with perfect foresight on r path*/
+var y r
+varexo e u;
+
+@dots{}
+
+smoothed = dseries('smoothed_variables.csv');
+
+fplan = init_plan(2013Q4:2029Q4);
+
+fplan = flip_plan(fplan, 'y', 'u', 'surprise', 2013Q4:2014Q4,  [1 1.1 1.2 1.1 ]);
+
+fplan = flip_plan(fplan, 'r', 'e', 'perfect_foresight', 2013Q4:2014Q4,  [2 1.9 1.9 1.9 ]);
+
+dset_forecast = det_cond_forecast(fplan, smoothed);
+
+plot(dset_forecast.@{'y','u'@});
+plot(dset_forecast.@{'r','e'@});
+@end example
+
+@deffn Command smoother2histval [(@var{OPTIONS}@dots{})]
+
+@descriptionhead
+
+The purpose of this command is to construct initial conditions (for a
+subsequent simulation) that are the smoothed values of a previous estimation.
+
+More precisely, after an estimation run with the @code{smoother} option,
+@code{smoother2histval} will extract the smoothed values (from
+@code{oo_.SmoothedVariables}, and possibly from @code{oo_.SmoothedShocks} if
+there are lagged exogenous), and will use these values to construct initial
+conditions (as if they had been manually entered through @code{histval}).
+
+@optionshead
+
+@table @code
+
+@item period = @var{INTEGER}
+Period number to use as the starting point for the subsequent simulation.
+It should be between @code{1} and the number of observations that were used to produce the
+smoothed values. Default: the last observation.
+
+@item infile = @var{FILENAME}
+Load the smoothed values from a @file{_results.mat} file created by a previous
+Dynare run. Default: use the smoothed values currently in the global workspace.
+
+@item invars = ( @var{VARIABLE_NAME} [@var{VARIABLE_NAME} @dots{}] )
+A list of variables to read from the smoothed values. It can contain state
+endogenous variables, and also exogenous variables having a lag. Default: all
+the state endogenous variables, and all the exogenous variables with a lag.
+
+@item outfile = @var{FILENAME}
+Write the initial conditions to a file. Default: write the initial conditions
+in the current workspace, so that a simulation can be performed.
+
+@item outvars = ( @var{VARIABLE_NAME} [@var{VARIABLE_NAME} @dots{}] )
+A list of variables which will be given the initial conditions. This list must
+have the same length than the list given to @code{invars}, and there will be a
+one-to-one mapping between the two list. Default: same value as option
+@code{invars}.
+
+@end table
+
+@customhead{Use cases}
+
+There are three possible ways of using this command:
+
+@itemize
+
+@item
+Everything in a single file: run an estimation with a smoother, then run @code{smoother2histval} (without the @code{infile} and @code{outfile} options), then run a stochastic simulation.
+
+@item
+In two files: in the first file, run the smoother and then run @code{smoother2histval} with the @code{outfile} option; in the second file, run @code{histval_file} to load the initial conditions, and run a (deterministic or stochastic) simulation
+
+@item
+In two files: in the first file, run the smoother; in the second file, run @code{smoother2histval} with the @code{infile} option equal to the @file{_results.mat} file created by the first file, and then run a (deterministic or stochastic) simulation
+
+@end itemize
+
+@end deffn
 
 @node Optimal policy
 @section Optimal policy
 
 Dynare has tools to compute optimal policies for various types of
-objectives. You can either solve for optimal policy under commitment
+objectives. @code{ramsey_model} computes automatically the First Order
+Conditions (FOC) of a model, given the @code{planner_objective}. You can
+then use other standard commands to solve, estimate or simulate this
+new, expanded model.
+
+Alternatively, you can either solve for optimal policy under commitment
 with @code{ramsey_policy}, for optimal policy under discretion with
 @code{discretionary_policy} or for optimal simple rule with
 @code{osr}.
@@ -5497,7 +6242,7 @@ This command computes optimal simple policy rules for
 linear-quadratic problems of the form:
 
 @quotation
-@math{\max_\gamma E(y'_tWy_t)}
+@math{\min_\gamma E(y'_tWy_t)}
 @end quotation
 
 such that:
@@ -5507,42 +6252,84 @@ such that:
 
 where:
 
-@itemize
+@itemize 
+@item
+@math{E} denotes the unconditional expectations operator;
 
 @item
-@math{\gamma} are parameters to be optimized. They must be elements of matrices
-@math{A_1}, @math{A_2}, @math{A_3};
+@math{\gamma} are parameters to be optimized. They must be elements
+of the matrices @math{A_1}, @math{A_2}, @math{A_3}, i.e. be specified as
+parameters in the @code{params}-command and be entered in the
+@code{model}-block;
 
 @item
-@math{y} are the endogenous variables;
+@math{y} are the endogenous variables, specified in the
+@code{var}-command, whose (co)-variance enters the loss function;
 
 @item
-@math{e} are the exogenous stochastic shocks;
-@end itemize
+@math{e} are the exogenous stochastic shocks, specified in the
+@code{var_exo}-command;
+
+@item
+@math{W} is the weighting matrix;
 
-The parameters to be optimized must be listed with @code{osr_params}.
+@end itemize
 
-The quadratic objectives must be listed with @code{optim_weights}.
+The linear quadratic problem consists of choosing a subset of model
+parameters to minimize the weighted (co)-variance of a specified subset
+of endogenous variables, subject to a linear law of motion implied by the
+first order conditions of the model. A few things are worth mentioning.
+First, @math{y} denotes the selected endogenous variables' deviations
+from their steady state, i.e. in case they are not already mean 0 the
+variables entering the loss function are automatically demeaned so that
+the centered second moments are minimized. Second, @code{osr} only solves
+linear quadratic problems of the type resulting from combining the
+specified quadratic loss function with a first order approximation to the
+model's equilibrium conditions. The reason is that the first order
+state-space representation is used to compute the unconditional
+(co)-variances. Hence, @code{osr} will automatically select
+@code{order=1}. Third, because the objective involves minimizing a
+weighted sum of unconditional second moments, those second moments must
+be finite. In particular, unit roots in @math{y} are not allowed.
+
+The subset of the model parameters over which the optimal simple rule is
+to be optimized, @math{\gamma}, must be listed with @code{osr_params}.
+
+The weighting matrix @math{W} used for the quadratic objective function
+is specified in the @code{optim_weights}-block. By attaching weights to
+endogenous variables, the subset of endogenous variables entering the
+objective function, @math{y}, is implicitly specified.
+
+The linear quadratic problem is solved using the numerical optimizer
+@code{csminwel} of Chris Sims.
 
-This problem is solved using the numerical optimizer @code{csminwel} of Chris Sims.
 
 @optionshead
 
-This command accepts the same options as @code{stoch_simul}
-(@pxref{Computing the stochastic solution}) plus 
+The @code{osr} command will subsequently run @code{stoch_simul} and
+accepts the same options, including restricting the endogenous variables
+by listing them after the command, as @code{stoch_simul}
+(@pxref{Computing the stochastic solution}) plus
 
 @table @code
 
-@item maxit = @var{INTEGER}
-Determines the maximum number of iterations used in the non-linear solver. Default: @code{1000}
+@item maxit = @var{INTEGER} Determines the maximum number of iterations
+used in the non-linear solver. Default: @code{1000}
+
+@item tolf = @var{DOUBLE} Convergence criterion for termination based on
+the function value. Iteration will cease when it proves impossible to
+improve the function value by more than tolf. Default: @code{1e-7}
 
-@item tolf = @var{DOUBLE}
-Convergence criterion for termination based on the function value. Iteration will 
-cease when it proves impossible to improve the function value by more than tolf. Default: @code{1e-7}
 @end table
 
 The value of the objective is stored in the variable
-@code{oo_.osr.objective_function}, which is described below.
+@code{oo_.osr.objective_function} and the value of parameters at the
+optimum is stored in @code{oo_.osr.optim_params}. See below for more
+details.
+
+After running @code{osr} the parameters entering the simple rule will be
+set to their optimal value so that subsequent runs of @code{stoch_simul}
+will be conducted at these values.
 
 @end deffn
 
@@ -5556,11 +6343,12 @@ This command declares parameters to be optimized by @code{osr}.
 
 This block specifies quadratic objectives for optimal policy problems
 
-More precisely, this block specifies the nonzero elements of the
-quadratic weight matrices for the objectives in @code{osr}.
+More precisely, this block specifies the nonzero elements of the weight
+matrix @math{W} used in the quadratic form of the objective function in
+@code{osr}.
 
-An element of the diagonal of the weight matrix is given by a line of
-the form:
+An element of the diagonal of the weight matrix is given by a line of the
+form:
 @example
 @var{VARIABLE_NAME} @var{EXPRESSION};
 @end example
@@ -5573,11 +6361,116 @@ the form:
 
 @end deffn
 
-@defvr {MATLAB/Octave variable} oo_.osr.objective_function
-After an execution of the @code{osr} command, this variable contains
-the value of the objective under optimal policy.
+@examplehead
+
+@example
+var y inflation r; 
+varexo y_ inf_;
+
+parameters delta sigma alpha kappa gammarr gammax0 gammac0 gamma_y_ gamma_inf_;
+
+delta =  0.44;
+kappa =  0.18;
+alpha =  0.48;
+sigma = -0.06;
+
+gammarr = 0;
+gammax0 = 0.2;
+gammac0 = 1.5;
+gamma_y_ = 8;
+gamma_inf_ = 3;
+
+model(linear); 
+y  = delta * y(-1)  + (1-delta)*y(+1)+sigma *(r - inflation(+1)) + y_;
+inflation  =   alpha * inflation(-1) + (1-alpha) * inflation(+1) + kappa*y + inf_;
+r = gammax0*y(-1)+gammac0*inflation(-1)+gamma_y_*y_+gamma_inf_*inf_; 
+end;
+
+shocks; 
+var y_; stderr 0.63; 
+var inf_; stderr 0.4; 
+end;
+
+optim_weights; 
+inflation 1; 
+y 1; 
+y, inflation 0.5; 
+end;
+
+osr_params gammax0 gammac0 gamma_y_ gamma_inf_; 
+osr y; 
+@end example
+
+@defvr {MATLAB/Octave variable} oo_.osr.objective_function 
+After an execution of the @code{osr} command, this variable contains the value of
+the objective under optimal policy.
+@end defvr
+
+@defvr {MATLAB/Octave variable} oo_.osr.optim_params 
+After an execution of the @code{osr} command, this variable contains the value of parameters
+at the optimum, stored in fields of the form
+@code{oo_.osr.optim_params.@var{PARAMETER_NAME}}.
 @end defvr
 
+@anchor{Ramsey}
+
+@deffn Command ramsey_model (@var{OPTIONS}@dots{});
+
+@descriptionhead
+
+This command computes the First Order Conditions for maximizing the policy maker objective function subject to the
+constraints provided by the equilibrium path of the economy.
+
+The planner objective must be declared with the @code{planner_objective} command.
+
+This command only creates the expanded model, it doesn't perform any
+computations. It needs to be followed by other instructions to actually
+perfrom desired computations. Note that it is the only way to perform
+perfect foresight simulation of the Ramsey policy problem.
+
+@xref{Auxiliary
+variables}, for an explanation of how Lagrange multipliers are
+automatically created.
+
+@optionshead
+
+This command accepts the following options:
+
+@table @code
+
+@item planner_discount = @var{EXPRESSION}
+Declares the discount factor of the central planner. Default: @code{1.0}
+
+@item instruments = (@var{VARIABLE_NAME},@dots{})
+Declares instrument variables for the computation of the steady state
+under optimal policy. Requires a @code{steady_state_model} block or a
+@code{@dots{}_steadystate.m} file. See below.
+
+@end table
+
+@customhead{Steady state}
+
+Dynare takes advantage of the fact that the Lagrange multipliers appear
+linearly in the equations of the steady state of the model under optimal
+policy. Nevertheless, it is in general very difficult to compute the
+steady state with simply a numerical guess in @code{initval} for the
+endogenous variables.
+
+It greatly facilitates the computation, if the user provides an
+analytical solution for the steady state (in @code{steady_state_model}
+block or in a @code{@dots{}_steadystate.m} file). In this case, it is
+necessary to provide a steady state solution CONDITIONAL on the value
+of the instruments in the optimal policy problem and declared with
+option @code{instruments}. Note that choosing the instruments is
+partly a matter of interpretation and you can choose instruments that
+are handy from a mathematical point of view but different from the
+instruments you would refer to in the analysis of the paper. A typical
+example is choosing inflation or nominal interest rate as an
+instrument.
+
+
+@end deffn
+
 @deffn Command ramsey_policy [@var{VARIABLE_NAME}@dots{}];
 @deffnx Command ramsey_policy (@var{OPTIONS}@dots{}) [@var{VARIABLE_NAME}@dots{}];
 
@@ -5667,7 +6560,7 @@ This command accepts the same options than @code{ramsey_policy}, plus:
 Sets the tolerance level used to assess convergence of the solution
 algorithm. Default: @code{1e-7}.
 
-@item solve_maxit = @var{INTEGER}
+@item maxit = @var{INTEGER}
 Maximum number of iterations. Default: @code{3000}.
 
 @end table
@@ -5683,7 +6576,10 @@ This command declares the policy maker objective, for use with
 
 You need to give the one-period objective, not the discounted lifetime
 objective. The discount factor is given by the @code{planner_discount}
-option of @code{ramsey_policy} and @code{discretionary_policy}.
+option of @code{ramsey_policy} and @code{discretionary_policy}. The
+objective function can only contain current endogenous variables and no
+exogenous ones. This limitation is easily circumvented by defining an
+appropriate auxiliary variable in the model.
 
 With @code{ramsey_policy}, you are not limited to quadratic
 objectives: you can give any arbitrary nonlinear expression.
@@ -5724,13 +6620,13 @@ Sensitivity analysis results are saved locally in @code{<mod_file>/GSA},
 where @code{<mod_file>.mod} is the name of the DYNARE model file.
 
 @menu
-* Sampling::                    
-* Stability Mapping::           
-* Reduced Form Mapping::        
-* RMSE::                        
-* Screening Analysis::          
-* Identification Analysis::     
-* Performing Sensitivity and Identification Analysis::  
+* Sampling::
+* Stability Mapping::
+* Reduced Form Mapping::
+* RMSE::
+* Screening Analysis::
+* Identification Analysis::
+* Performing Sensitivity and Identification Analysis::
 @end menu
 
 @node Sampling
@@ -6408,7 +7304,7 @@ the given chain. One, but not both, of @code{coefficients} or
 @code{variances} must appear. Default: @code{none}
 
 @item equations
-Defines the equation controlled by the given chain. If not specificed,
+Defines the equation controlled by the given chain. If not specified,
 then all equations are controlled by @code{chain}. Default: @code{none}
 
 @item chain = @var{INTEGER}
@@ -6481,14 +7377,33 @@ To be documented. For now, see the wiki: @uref{http://www.dynare.org/DynareWiki/
 @end deffn
 
 
-@anchor{ms_estimation}
-@deffn Command ms_estimation (@var{OPTIONS}@dots{});
+@deffn Block svar_identification ;
+
 @descriptionhead
 
-Triggers the creation of an initialization file for, and the estimation
-of, a Markov-switching SBVAR model. At the end of the run, the
-@math{A^0}, @math{A^+}, @math{Q} and @math{\zeta} matrices are contained
-in the @code{oo_.ms} structure.
+This block is terminated by @code{end;}, and contains lines of the
+form:
+@example
+UPPER_CHOLESKY;
+LOWER_CHOLESKY;
+EXCLUSION CONSTANTS;
+EXCLUSION LAG @var{INTEGER}; @var{VARIABLE_NAME} [,@var{VARIABLE_NAME}@dots{}]
+EXCLUSION LAG @var{INTEGER}; EQUATION @var{INTEGER}, @var{VARIABLE_NAME} [,@var{VARIABLE_NAME}@dots{}]
+RESTRICTION EQUATION @var{INTEGER}, @var{EXPRESSION} = @var{EXPRESSION};
+@end example
+
+To be documented. For now, see the wiki: @uref{http://www.dynare.org/DynareWiki/MarkovSwitchingInterface}
+
+@end deffn
+
+@anchor{ms_estimation}
+@deffn Command ms_estimation (@var{OPTIONS}@dots{});
+@descriptionhead
+
+Triggers the creation of an initialization file for, and the estimation
+of, a Markov-switching SBVAR model. At the end of the run, the
+@math{A^0}, @math{A^+}, @math{Q} and @math{\zeta} matrices are contained
+in the @code{oo_.ms} structure.
 
 @optionshead
 
@@ -6567,11 +7482,14 @@ The first period of data (@i{i.e.} for quarterly data, an integer in
 [@code{1,4}]). Default: @code{1}
 
 @item final_year = @var{INTEGER}
-The last year of data. Default: Set to encompass entire dataset
+The last year of data. Default: Set to encompass entire dataset.
 
 @item final_subperiod = @var{INTEGER}
 The final period of data (@i{i.e.} for monthly data, an integer in
-[@code{1,12}]. Default: Set to encompass entire dataset
+[@code{1,12}]. Default: When final_year is also missing, set to
+encompass entire dataset; when final_year is indicated, set to the
+maximum number of subperiods given the frequency (@i{i.e}. 4 for
+quarterly data, 12 for monthly,...).
 
 @item datafile = @var{FILENAME}
 @xref{datafile}.
@@ -6592,7 +7510,7 @@ Use cross @math{A^0} and @math{A^+} restrictions. Default: @code{off}
 Use contemporaneous recursive reduced form. Default: @code{off}
 
 @item no_bayesian_prior
-Do not use bayesian prior. Default: @code{off} (@i{i.e.} use bayesian
+Do not use Bayesian prior. Default: @code{off} (@i{i.e.} use Bayesian
 prior)
 
 @item alpha = @var{INTEGER}
@@ -6618,7 +7536,7 @@ parameters. Default: @code{Random Walk}
 @item convergence_starting_value = @var{DOUBLE}
 This is the tolerance criterion for convergence and refers to changes in
 the objective function value. It should be rather loose since it will
-gradually be tighened during estimation. Default: @code{1e-3}
+gradually be tightened during estimation. Default: @code{1e-3}
 
 @item convergence_ending_value = @var{DOUBLE}
 The convergence criterion ending value. Values much smaller than square
@@ -6667,7 +7585,7 @@ The entire process described by @ref{max_block_iterations} is repeated
 with random starting values drawn from the posterior. This specifies the
 number of random starting values used. Set this to @code{0} to not use
 random starting values. A larger number should be specified to ensure
-that the entire parameter space has been covererd. Default: @code{5}
+that the entire parameter space has been covered. Default: @code{5}
 
 @item number_of_small_perturbations = @var{INTEGER}
 The number of small perturbations to make after the large perturbations
@@ -6681,7 +7599,7 @@ small number will result in a small perturbation. Default: @code{1}
 
 @item max_number_of_stages = @var{INTEGER}
 The small and large perturbation are repeated until improvement has
-stopped. This specifices the maximum number of stages allowed. Default:
+stopped. This specifics the maximum number of stages allowed. Default:
 @code{20}
 
 @item random_function_convergence_criterion = @var{DOUBLE}
@@ -6742,7 +7660,17 @@ The total number of draws is equal to
 @code{thinning_factor*mh_replic+drop}.  Default: @code{1}
 
 @item adaptive_mh_draws = @var{INTEGER}
-Tuning period for Metropolis-Hasting draws. Default: @code{30,000}
+Tuning period for Metropolis-Hastings draws. Default: @code{30,000}
+
+@item save_draws
+Save all elements of @math{A^0}, @math{A^+}, @math{Q}, and
+@math{\zeta}, to a file named @code{draws_<<file_tag>>.out} with each
+draw on a separate line. A file that describes how these matrices are
+laid out is contained in @code{draws_header_<<file_tag>>.out}. A file
+called @code{load_flat_file.m} is provided to simplify loading the
+saved files into the corresponding variables @code{A0}, @code{Aplus},
+@code{Q}, and @code{Zeta} in your MATLAB/Octave workspace. Default:
+@code{off}
 
 @end table
 @end deffn
@@ -6777,7 +7705,7 @@ log marginal densities are contained in the @code{oo_.ms} structure.
 
 @item simulation_file_tag = @var{FILENAME}
 @anchor{simulation_file_tag} The portion of the filename associated with
-the simulation run.  Defualt: @code{<file_tag>}
+the simulation run.  Default: @code{<file_tag>}
 
 @item proposal_type = @var{INTEGER}
 The proposal type:
@@ -7063,10 +7991,10 @@ Dynare has comments to plot the results of a simulation and to save the results.
 @deffn Command rplot @var{VARIABLE_NAME}@dots{};
 
 Plots the simulated path of one or several variables, as stored in
-@var{oo_.endo_simul} by either @var{simul} (@pxref{Deterministic
-simulation}) or @var{stoch_simul} with
-option @var{periods} (@pxref{Computing the stochastic solution}). The
-variables are plotted in levels.
+@code{oo_.endo_simul} by either @code{perfect_foresight_solver}, @code{simul}
+(@pxref{Deterministic simulation}) or @code{stoch_simul} with option
+@code{periods} (@pxref{Computing the stochastic solution}). The variables are
+plotted in levels.
 
 @end deffn
 
@@ -7154,10 +8082,10 @@ types: integer, character string, array of integers, array of
 strings.
 
 @menu
-* Macro expressions::           
-* Macro directives::            
-* Typical usages::              
-* MATLAB/Octave loops versus macro-processor loops::  
+* Macro expressions::
+* Macro directives::
+* Typical usages::
+* MATLAB/Octave loops versus macro-processor loops::
 @end menu
 
 @node Macro expressions
@@ -7388,10 +8316,10 @@ and to abort. The argument must evaluate to a string.
 @subsection Typical usages
 
 @menu
-* Modularization::              
-* Indexed sums or products::    
-* Multi-country models::        
-* Endogeneizing parameters::    
+* Modularization::
+* Indexed sums or products::
+* Multi-country models::
+* Endogeneizing parameters::
 @end menu
 
 @node Modularization
@@ -7411,7 +8339,7 @@ Includes @file{modeldesc.mod}, calibrates parameters and runs
 stochastic simulations
 @item estim.mod
 Includes @file{modeldesc.mod}, declares priors on parameters and runs
-bayesian estimation
+Bayesian estimation
 @end table
 
 Dynare can be called on @file{simul.mod} and @file{estim.mod}, but it
@@ -7504,7 +8432,7 @@ The labor share in GDP is defined as:
 In the model, @math{\alpha} is a (share) parameter, and
 @code{lab_rat} is an endogenous variable.
 
-It is clear that calibrating @math{\alpha} is not straigthforward; but
+It is clear that calibrating @math{\alpha} is not straightforward; but
 on the contrary, we have real world data for @code{lab_rat}, and
 it is clear that these two variables are economically linked.
 
@@ -7602,7 +8530,7 @@ array stored in a MATLAB/Octave variable.
 
 @end table
 
-@node Verbatim   inclusion
+@node Verbatim inclusion
 @section Verbatim inclusion
 
 Pass everything contained within the @code{verbatim} block to the @code{<mod_file>.m} file.
@@ -7729,6 +8657,13 @@ the one that is highest on the MATLAB/Octave path).
 
 @end deffn
 
+@deffn {MATLAB/Octave command} write_latex_definitions ;
+
+Writes the names, @LaTeX{} names and long names of model variables to
+tables in a file named @code{<<M_.fname>>_latex_definitions.tex}.
+
+@end deffn
+
 
 @node The Configuration File
 @chapter The Configuration File
@@ -7786,8 +8721,8 @@ Is @code{true} or @code{false}.
 @end table
 
 @menu
-* Dynare Configuration::        
-* Parallel Configuration::      
+* Dynare Configuration::
+* Parallel Configuration::
 @end menu
 
 @node Dynare Configuration
@@ -7801,7 +8736,7 @@ processing. Currently, there is only one option available.
 @descriptionhead
 
 The @code{[hooks]} block can be used to specify configuration options
-that will be used when running dynare.
+that will be used when running Dynare.
 
 @optionshead
 
@@ -8045,416 +8980,2441 @@ MatlabOctavePath = matlab
 @node Time Series
 @chapter Time Series
 
-Dynare provides a Matlab class for handling time series data, which is
-based on classes for handling dates. Below, you will first find the
-classes and methods used for creating and dealing with dates and then
-the class used for using time series.
-
-@section dynDate
+@menu
+* Dates::
+* dseries class::
+@end menu
 
-@deftypefn  {dynDate} dynDate (@code{INTEGER})
-@deftypefnx {dynDate} dynDate (@code{STRING})
-@deftypefnx {dynDate} dynDate (@var{NUMERICAL_VECTOR}, @code{INTEGER})
-Returns a @code{dynDate} object that represents a date.
 
-If the value passed is an @code{INTEGER}, return a date of annual
-frequency.
+Dynare provides a  Matlab/Octave class for handling time series  data, which is
+based on a class for handling dates. Dynare also provides a new type for
+dates, so  that the  basic user  do not  have to  worry about  class and
+methods for  dates.  Below, you  will first  find the class  and methods
+used for  creating and dealing  with dates and  then the class  used for
+using time series.
 
-If the value passed is a @code{STRING}, it should be passed in one of
-the following formats: @code{`1999'} for an annual date,
-@code{`1999q4'} for a quarterly date, @code{`1999m12'} for a monthly
-date, and @code{`1999w52'} for a weekly date.
+@node Dates
+@section Dates
 
-If the value passed is a @code{NUMERICAL_VECTOR} it should be a vector
-of size @code{2}. The format should be: @code{[year period]}. In this
-case, you must pass a second argument to the @code{dynDate} consructor
-indicating the freqency of the date as an @code{INTEGER}. This
-argument can take the following possible values: @code{1} for annual,
-@code{4} for quarterly, @code{12} for monthly and @code{52} for
-weekly.
+@menu
+* dates in a mod file::
+* dates class::
+@end menu
 
-@examplehead
+@node dates in a mod file
+@subsection dates in a mod file
 
-An example of various ways to create a @code{dynDate} object:
+Dynare  understands dates  in  a  mod file.  Users  can declare  annual,
+quarterly, monthly or weekly dates using the following syntax:
 
 @example
-do1 = dynDate(`1999');            % 1999
-do2 = dynDate(`Q');               % NaNqNan
-do3 = dynDate([1999 2], 12);      % 1999m2
+1990Y
+1990Q3
+1990M11
+1990W49
 @end example
-@end deftypefn
 
+@noindent Behind the scene, Dynare's preprocessor translates these expressions
+into instantiations of the  Matlab/Octave's class @dates described
+below. Basic  operations can be performed  on dates:
+@table @strong
 
-@section dynDates
+@item plus binary operator (@code{+})
 
-@deftypefn  {dynDates} dynDates (@code{STRING} [, @code{STRING} @dots{}])
-Returns a @code{dynDates} object that represents a list of dates.
+An integer scalar, interpreted as a number of periods, can be added to a date. For instance, if @code{a = 1950Q1} then
+@code{b = 1951Q2} and @code{b = a + 5} are identical.
 
-Providing a @code{STRING} argument populates the object with the date
-represented by said @code{STRING}. If more than one argument is
-provided, they should all be dates represented as @code{STRINGS}.
+@item plus unary operator (@code{+})
 
-@examplehead
+Increments a date by one period. @code{+1950Q1} is identical to @code{1950Q2}, @code{++++1950Q1} is identical to @code{1951Q1}.
 
-An example of various ways to create a @code{dynDates} object:
+@item minus binary operator (@code{-})
 
-@example
-do1 = dynDates(`1999', `2000', `2001', `2002');
-do2 = dynDates(`1999', `2003', `2002');
-do3 = dynDate(`1999Q2'):dynDate(`2000Q3');
-@end example
-Here, @code{do1} and @code{do2} contain the dates specified in the
-order specified. @code{do3} contains a quarterly list of all dates
-between @code{1999q2} and @code{2000q3} inclusive.
-@end deftypefn
+Has two functions: difference and subtraction. If the second argument
+is a date, calculates the difference between the first date and the
+second date (@i{e.g.} @code{1951Q2-1950Q1} is equal to @code{5}). If
+the second argument is an integer @code{X}, subtracts @code{X} periods
+from the date (@i{e.g.} @code{1951Q2-2} is equal to @code{1950Q4}).
 
-@section dynSeries
-
-@deftypefn  {dynSeries} dynSeries (@code{dynDate})
-@deftypefnx {dynSeries} dynSeries (@code{FILENAME})
-@deftypefnx {dynSeries} dynSeries (@code{DOUBLE_MATRIX}, @code{dynDate}, @code{CELLSTR}, @code{CELLSTR})
-@deftypefnx {dynSeries} dynSeries (@code{DOUBLE_MATRIX}, @code{STRING}, @code{CELLSTR}, @code{CELLSTR})
-Returns a @code{dynSeries} object that represents one or more time
-series.
-
-If a @code{dynDate} argument is provided, instantiate an empty
-@code{dynSeries} with an inital date equal to the input argument.
-
-If a @code{FILENAME} is passed as input, a @code{dynSeries} object
-will be created from the named file. Valid file types are @file{.m}
-file, @file{.mat} file, and @file{.csv}.
-
-If the data is not read from a file, it can be provided via a
-@math{T}x@math{N} matrix as the first argument to @code{dynSeries}, with
-@math{T} representing the number of observations on @math{N}
-variables. The second argument in such a calling sequence can be
-either a @code{dynDate} representing the period of the first
-observation or a @code{STRING} which would be used to instantiate a
-@code{dynDate}. The third argument is a @code{CELLSTR} of size
-@math{N} with one entry for each variable name. The final argument is
-a @code{CELLSTR} of size @math{N} composed of the @LaTeX{} names
-associated with the variables. Input arguments three and four are
-optional.
+@item minus unary operator (@code{-})
 
-@examplehead
+Subtracts one period to a date. @code{-1950Q1} is identical to @code{1949Q4}. The unary minus operator is the reciprocal of the unary plus operator, @code{+-1950Q1} is identical to @code{1950Q1}.
 
-An example of various ways to create a @code{dynSeries} object:
+@item colon operator (@code{:})
 
-@example
-do1 = dynSeries(dynDate(1999));
-do2 = dynSeries(`filename.csv');
-do3 = dynSeries([1; 2; 3], dynDate(1999), @{`var123'@}, @{`var_@{123@}'@});
-@end example
-@end deftypefn
+Can be used to create a range of dates. For instance, @code{r = 1950Q1:1951Q1} creates a @dates object with five elements: @code{1950Q1}, @code{1950Q2}, @code{1950Q3}, @code{1950Q4} and @code{1951Q1}. By default the increment between each element is one period. This default can be changed using, for instance, the following instruction: @code{1950Q1:2:1951Q1} which will instantiate a @dates object with three elements: @code{1950Q1}, @code{1950Q3} and @code{1951Q1}.
 
-@node Reporting
-@chapter Reporting
+@item horzcat operator (@code{[,]})
 
-Dynare provides a simple interface for creating @LaTeX{} reports,
-comprised of @LaTeX{} tables and TikZ graphs. You can use the report as
-created through Dynare or pick out the pieces you want for inclusion
-in your own paper.
+Concatenates @dates objects without removing repetitions. For instance @code{[1950Q1, 1950Q2]} is a a @dates object with two elements (@code{1950Q1} and @code{1950Q2}).
 
-Reports are created and modified by calling methods on class
-objects. The objects are hierarchichal, with the following order (from
-highest to lowest): @code{Report, Page, Section, Graph/Table/Vspace,
-Series}. For simplicity of syntax, we abstract away from these
-classes, allowing you to operate directly on a @code{Report} object,
-while maintaining the names of these classes in the @code{Report}
-Class methods you will use.
+@item vertcat operator (@code{[;]})
 
-The report is created sequentially, command by command, hence the
-order of the commands matters. When an object of a certain hierarchy
-is inserted, all methods will function on that object until an object
-of equal or greater hierarchy is added. Hence, once you add a
-@code{Page} to the report, every time you add a @code{Section} object,
-it will be added to this @code{Page} until another @code{Page} is
-added to the report (via @ref{addPage}). This will become more clear
-with the example at the end of the section.
+Same as @code{horzcat} operator.
 
-Options to the methods are passed differently than those to Dynare
-commands. They take the form of named options to Matlab functions
-where the arguments come in pairs (@i{e.g.}
-@code{function_name(`option_1_name', `option_1_value',
-`option_2_name', `option_2_value', ...)}, where @code{option_X_name}
-is the name of the option while @code{option_X_value} is the value
-assigned to that option). The ordering of the option pairs matters
-only in the unusual case when an option is provided twice (probably
-erroneously). In this case, the last value passed is the one that is
-used.
+@item eq operator (equal, @code{==})
 
-Below, you will see a list of methods available for the Report class and
-a clarifying example.
+Tests if two @dates objects are equal. @code{+1950Q1==1950Q2} returns @code{1}, @code{1950Q1==1950Q2} returns @code{0}. If the compared objects have both @code{n>1} elements, the @code{eq} operator returns a column vector, @code{n} by @code{1}, of zeros and ones.
 
-@defmethod Report report compiler, showDate, filename, margin, marginUnit, orientation, paper, title
-Instantiates a @code{Report} object.
-@optionshead
-@table @code
-@anchor{compiler}
-@item compiler, @var{FILENAME}
-The full path to the @LaTeX{} compiler on your system. If this option
-is not provided, Dynare will try to find the appropriate program to
-compile @LaTeX{} on your system. Default is system dependent: Windows:
-the result of @code{findtexmf --file-type=exe pdflatex}, Mac OS X and
-Linux: the result of @code{which pdflatex}
+@item ne operator (not equal, @code{~=})
 
-@item showDate, @code{BOOLEAN}
-Display the date and time when the report was compiled. Default:
-@code{true}
+Tests if two @dates objects are not equal. @code{+1950Q1~=1950Q2}
+returns @code{0} while @code{1950Q1~=1950Q2} returns @code{1}. If the
+compared objects both have @code{n>1} elements, the @code{ne} operator
+returns an @code{n} by @code{1} column vector of zeros and ones.
 
-@anchor{filename}
-@item filename, @var{FILENAME}
-The filename to use when saving this report. Default:
-@code{report.tex}
+@item lt operator (less than, @code{<})
 
-@item margin, @var{DOUBLE}
-The margin size. Default: @code{2.5}
+Tests if a @dates object preceeds another @dates object. For instance, @code{1950Q1<1950Q3} returns @code{1}.  If the compared objects have both @code{n>1} elements, the @code{lt} operator returns a column vector, @code{n} by @code{1}, of zeros and ones.
 
-@item marginUnit, `cm' | `in'
-Units associated with the margin. Default: @code{`cm'}
+@item gt operator (greater than, @code{>})
 
-@anchor{orientation}
-@item orientation, `landscape' | `portrait'
-Paper orientation: Default: @code{`portrait'}
+Tests if a @dates object follows another @dates object. For instance, @code{1950Q1>1950Q3} returns @code{0}.  If the compared objects have both @code{n>1} elements, the @code{gt} operator returns a column vector, @code{n} by @code{1}, of zeros and ones.
 
-@anchor{paper}
-@item paper, `a4' | `letter'
-Paper size. Default: @code{`a4'}
+@item le operator (less or equal, @code{<=})
 
-@item title, @code{STRING}
-Report Title. Default: @code{none}
-@end table
-@end defmethod
+Tests if a @dates object preceeds another @dates object or is equal to this object. For instance, @code{1950Q1<=1950Q3} returns @code{1}.  If the compared objects have both @code{n>1} elements, the @code{le} operator returns a column vector, @code{n} by @code{1}, of zeros and ones.
 
-@anchor{addPage}
-@defmethod Report addPage footnote, orientation, paper, title, titleFormat
-Adds a @code{Page} to the @code{Report}.
-@optionshead
-@table @code
-@item footnote, @code{STRING}
-A footnote to be included at the bottom of this page. Default: @code{none}
+@item ge operator (greater or equal, @code{>=})
 
-@item orientation, `landscape' | `portrait'
-@xref{orientation}.
+Tests if a @dates object follows another @dates object or is equal to this object. For instance, @code{1950Q1>=1950Q3} returns @code{0}.  If the compared objects have both @code{n>1} elements, the @code{ge} operator returns a column vector, @code{n} by @code{1}, of zeros and ones.
 
-@item paper, `a4' | `letter'
-@xref{paper}.
+@end table
 
-@anchor{title}
-@item title, @code{STRING} | @code{CELL_ARRAY_STRINGS}
-With one entry (a @code{STRING}), the title of the page. With more
-than one entry (a @code{CELL_ARRAY_STRINGS}), the title and subtitle(s)
-of the page. Default: @code{none}
+@noindent One can select an element, or some elements, in a @dates object as he would extract some elements from a vector in Matlab/Octave. Let @code{a = 1950Q1:1951Q1} be a @dates object, then @code{a(1)==1950Q1} returns @code{1}, @code{a(end)==1951Q1} returns @code{1} and @code{a(end-1:end)} selects the two last elements of @code{a} (by instantiating the @dates object @code{[1950Q4, 1951Q1]}).
 
-@anchor{titleFormat}
-@item titleFormat, @code{STRING} | @code{CELL_ARRAY_STRINGS}
-A string representing the @LaTeX{} markup to use on the
-@ref{title}. The number of cell array entries must be equal to that of
-the @ref{title} option. Default: @code{none}
+@remarkhead
+@noindent Dynare substitutes any occurrence of dates in the mod file into an instantiation of the @dates class regardless of the context. For instance, @code{d = 1950Q1;} will be translated as @code{d = dates('1950Q1');}. This automatic substitution can lead to a crash if a date is defined in a string. Typically, if the user wants to display a date:
 
-@end table
-@end defmethod
+@example
+disp('Initial period is 1950Q1');
+@end example
 
-@defmethod Report addSection cols, height
-Adds a @code{Section} to a @code{Page}.
-@optionshead
-@table @code
-@item cols, @code{INTEGER}
-The number of columns in the section. Default: @code{1}
+@noindent Dynare will translate this as:
 
-@item height, @code{STRING}
-A string to be used with the @code{\sectionheight} @LaTeX{}
-command. Default: @code{`!'}
-@end table
-@end defmethod
+@example
+disp('Initial period is dates('1950Q1')');
+@end example
 
-@defmethod Report addGraph data, figname, graphSize, showGrid, showLegend, showLegendBox, legendLocation, legendOrientation, legendFontSize, seriesToUse, shade, shadeColor, shadeOpacity, title, xlabel, ylabel, xrange, xTickLabels, yrange, showZeroline
-Adds a @code{Graph} to a @code{Section}.
-@optionshead
-@table @code
-@anchor{data}
-@item data, @code{dynSeries}
-The @code{dynSeries} that provides the data for the graph. Default:
-@code{none}
+@noindent which will lead to a crash because this expression is illegal in Matlab. For this situation, Dynare provides the @code{$} escape parameter. The following expression:
 
-@item figname, @code{STRING}
-The name to use when saving this figure. Default: @code{[tempname
-`.tex']}
+@example
+disp('Initial period is $1950Q1');
+@end example
 
-@item graphSize, @code{NUMERICAL_VECTOR}
-The width and height to be passed to the third and fourth elements of
-the array passed to the @code{`Position'} option of Matlab's
-@code{figure} command, passed as a vector of size @math{2}. Default:
-Matlab sets width and height
+@noindent will be translated as:
 
-@item showGrid, @code{BOOLEAN}
-Whether or not to display the minor grid on the graph. Default:
-@code{true}
+@example
+disp('Initial period is 1950Q1');
+@end example
 
-@item showLegend, @code{BOOLEAN}
-Whether or not to display the legend. Default: @code{false}
+@noindent in the generated MATLAB script.
 
-@item showLegendBox, @code{BOOLEAN}
-Whether or not to display a box around the legend. Default:
-@code{false}
+@node dates class
+@subsection dates class
 
-@item legendLocation, `North' | `South' | `East' | `West' | `NorthEast' | `SouthEast' | `NorthWest' | `SouthWest' | `NorthOutside' | `SouthOutside' | `EastOutside' | `WestOutside' | `NorthEastOutside' | `SouthEastOutside' | `NorthWestOutside' | `SouthWestOutside' | `Best' | `BestOutside'
-Where to place the legend in the graph. NB: some of these are not
-available under Octave. Default: @code{`SouthEast'}
+The @dates class has three members:
+@table @code
+@anchor{dates class members}
 
-@item legendOrientation, `vertical' | `horizontal'
-Orientation of the legend. Default: @code{`horizontal'}
+@item freq
+an integer equal to 1, 4, 12  or 52 (resp. for annual, quarterly, monthly
+or weekly dates).
 
-@item legendFontSize, @code{DOUBLE}
-The font size for legend entries. Default: @code{8}
+@item ndat
+an integer scalar, the number of declared dates in the object.
 
-@anchor{seriesToUse}
-@item seriesToUse, @code{CELL_ARRAY_STRINGS}
-The names of the series contained in the @code{dynSeries} provided to
-the @ref{data} option. If empty, use all series provided to
-@ref{data} option. Default: @code{empty}
+@item time
+a @code{ndat}*2  array of integers,  the years  are stored in  the first
+column, the subperiods (1 for annual dates, 1-4 for quarterly dates, 1-12
+for monthly  dates and 1-52 for  weekly dates) are stored  in the second
+column.
 
-@item shade, @code{dynDates}
-The date range showing the portion of the graph that should be
-shaded. Default: @code{none}
+@end table
 
-@item shadeColor, @code{MATLAB_COLOR_NAME}
-The color to use in the shaded portion of the graph. Default:
-@code{`green'}
+@noindent Each member is private, one can display the content of a member but cannot change its value:
 
-@item shadeOpacity, @code{DOUBLE}
-The opacity of the shaded area, must be in @math{[0,1]}. Default: @code{.2}
+@example
+>> d = dates('2009Q2');
+>> d.time
 
-@item title, @code{STRING}
-Title for the graph. Default: @code{none}
+ans =
 
-@item xlabel, @code{STRING}
-The x-axis label. Default: @code{none}
+        2009           2
 
-@item ylabel, @code{STRING}
-The y-axis label. Default: @code{none}
+>>
+@end example
 
-@item xrange, @code{dynDates}
-The boundary on the x-axis to display in the graph. Default: all
+@noindent Note that it is not possible to mix frequencies in a @dates object: all the elements must have common frequency. The @dates class has five constructors:
 
-@item xTickLabels, @code{CELL_ARRAY_STRINGS}
-The labels to use for the xticks in the graph. Default: the dates of
-the @code{dynSeries}
+@sp 1
 
-@item yrange, @code{NUMERICAL_VECTOR}
-The boundary on the y-axis to display in the graph, represented as a
-@code{NUMERICAL_VECTOR} of size @math{2}, with the first entry less
-than the second entry. Default: all
+@deftypefn  {dates} dates ()
+@deftypefnx {dates} dates (@code{FREQ})
 
-@item showZeroline, @code{BOOLEAN}
-Display a solid black line at @math{y = 0}. Default: @code{false}
+Returns an empty @dates object with  a given frequency (if the constructor is called with one input argument).  @code{FREQ} is a character equal to 'Y' or 'A'  for annual dates, 'Q' for quarterly dates, 'M' for monthly dates or 'W'  for weekly dates. Note that @code{FREQ} is not  case sensitive,  so that,  for instance,  'q' is  also allowed  for quarterly dates. The frequency can also be set with an integer scalar equal to 1 (annual), 4 (quarterly), 12 (monthly) or 52 (weekly). The instantiation of empty objects can be used to rename  the @dates class. For  instance, if one  only works  with quarterly dates, he can create @code{qq} as:
 
-@end table
-@end defmethod
+@example
+qq = dates('Q')
+@end example
 
-@defmethod Report addTable data, showHlines, precision, range, seriesToUse, title, titleSize, vlineAfter, showVlines
-Adds a @code{Table} to a @code{Section}.
-@optionshead
-@table @code
+@noindent and a @dates object holding the date @code{2009Q2}:
 
-@item data, @code{dynSeries}
-@xref{data}.
+@example
+d0 = qq(2009,2);
+@end example
 
-@item showHlines, @code{BOOLEAN}
-Whether or not to show horizontal lines separating the rows. Default: @code{false}
+@noindent which is much simpler if @dates objects have to be defined programmatically.
 
-@item precision, @code{INTEGER}
-The number of decimal places to report in the table data. Default: @code{1}
+@end deftypefn
 
-@item range, @code{dynDates}
-The date range of the data to be displayed. Default: @code{all}
+@sp 1
 
-@item seriesToUse, @code{CELL_ARRAY_STRINGS}
-@xref{seriesToUse}.
+@deftypefn {dates} dates (@code{STRING})
+@deftypefnx {dates} dates (@code{STRING}, @code{STRING}, ...)
 
-@item title, @code{STRING}
-Title for the table. Default: @code{none}
+Returns a @dates object that represents a date as given by the string @code{STRING}. This string has to be interpretable as a date (only strings of the following forms are admitted: @code{'1990Y'}, @code{'1990A'}, @code{'1990Q1'}, @code{'1990M2'}, @code{'1990W5'}), the routine @code{isdate} can be used to test if a string is interpretable as a date. If more than one argument is provided, they should all be dates represented as strings, the resulting @dates object contains as many elements as arguments to the constructor.
 
-@item titleSize, @code{STRING}
-@LaTeX{} string representing the size of the table title. Default: @code{large}
+@end deftypefn
 
-@item vlineAfter, @code{dynDate}
-Show a vertical line after the specified date. Default: @code{empty}
+@sp 1
 
-@item showVlines, @code{BOOLEAN}
-Whether or not to show vertical lines separating the columns. Default: @code{false}
-@end table
-@end defmethod
+@deftypefn {dates} dates (@code{DATES})
+@deftypefnx {dates} dates (@code{DATES}, @code{DATES}, ...)
 
-@anchor{addSeries}
-@defmethod Report addSeries data, graphLineColor, graphLineStyle, graphLineWidth, graphMarker, graphMarkerEdgeColor, graphMarkerFaceColor, graphMarkerSize, tableShowMarkers, tableAlignRight, tableNegColor, tablePosColor, zerotol
-Adds a @code{Series} to a @code{Graph} or a @code{Table}.
-@optionshead
-@table @code
+Returns a copy of the  @dates object @code{DATES} passed as input arguments. If more than one argument is provided, they should all be @dates objects. The number of elements in the instantiated @dates object is equal to the sum of the elements in the @dates passed as arguments to the constructor.
 
-@item data, @code{dynSeries}
-@xref{data}.
+@end deftypefn
 
-@item graphLineColor, @code{MATLAB_COLOR}
-Color to use for the series in a graph. Default: @code{`k'}
+@sp 1
 
-@item graphLineStyle, @code{`none'} | @code{`-'} | @code{`--'} | @code{`:'} | @code{`-.'}
-Line style for this series in a graph. Default: @code{'-'}
+@deftypefn {dates} dates (@code{FREQ}, @code{YEAR}, @code{SUBPERIOD})
 
-@item graphLineWidth @code{DOUBLE}
-Line width for this series in a graph. Default: @code{0.5}
+where @code{FREQ} is a single character ('Y', 'A', 'Q', 'M', 'W') or integer (1, 4, 12 or 52) specifying the frequency, @code{YEAR} and @code{SUBPERIOD} are @code{n*1} vectors of integers. Returns a @dates object with @code{n} elements. If @code{FREQ} is equal to @code{'Y', 'A'} or @code{1}, the third argument is not needed (because @code{SUBPERIOD} is necessarily a vector of ones in this case).
 
-@item graphMarker, @code{`+'} | @code{`o'} | @code{`*'} | @code{`.'} | @code{`x'} | @code{`s'} | @code{`square'} | @code{`d'} | @code{`diamond'} | @code{`^'} | @code{`v'} | @code{`>'} | @code{`<'} | @code{`p'} | @code{`pentagram'} | @code{`h'} | @code{`hexagram'} | @code{`none'}
-The Marker to use on this series in a graph. Default: @code{none}
+@end deftypefn
 
-@item graphMarkerEdgeColor, @code{MATLAB_COLOR}
-The edge color of the graph marker. Default: @code{`auto'}
+@sp 1
 
-@item graphMarkerFaceColor, @code{MATLAB_COLOR}
-The face color of the graph marker. Default: @code{`auto'}
+@exampleshead
+@example
+do1 = dates('1950Q1');
+do2 = dates('1950Q2','1950Q3');
+do3 = dates(do1,do2);
+do4 = dates('Q',1950, 1);
+@end example
 
-@item graphMarkerSize, @code{DOUBLE}
-The size of the graph marker. Default: @code{6}
+@sp 1
 
-@item tableShowMarkers, @code{BOOLEAN}
-In a Table, if @code{true}, surround each cell with brackets and color
-it according to @ref{tableNegColor} and @ref{tablePosColor}. No effect
-for graphs. Default: @code{false}
+@noindent A list of the available methods, by alphabetical order, is given below. Note that the Matlab/Octave classes do not allow in place modifications: when a method is applied to an object a new object is instantiated. For instance, to apply the method @code{multiplybytwo} to an object @code{X} we write:
 
-@item tableAlignRight, @code{BOOLEAN}
-Whether or not to align the series name to the right of the
-cell. Default: @code{false}
+@example
+Y = X.multiplybytwo()
+@end example
 
-@item tableMarkerLimit, @code{DOUBLE}
-For values less than @math{-1*@code{tableMarkerLimit}}, mark the cell
-with the color denoted by @ref{tableNegColor}. For those greater than
-@code{tableMarkerLimit}, mark the cell with the color denoted by
-@ref{tablePosColor}. Default: @code{1e-4}
+@noindent or equivalently:
 
-@anchor{tableNegColor}
-@item tableNegColor, @code{LATEX_COLOR}
-The color to use when marking Table data that is less than
-zero. Default: @code{`red'}
+@example
+Y = multiplybytwo(X)
+@end example
 
-@anchor{tablePosColor}
-@item tablePosColor, @code{LATEX_COLOR}
-The color to use when marking Table data that is greater than
-zero. Default: @code{`blue'}
+@noindent the object @code{X} is left unchanged, and the object @code{Y} is a modified copy of @code{X}.
 
-@item zerotol, @code{DOUBLE}
-The zero tolerance. Anything smaller than @code{zerotol} and larger
-than @code{-zerotol} will be set to zero before being
-graphed. Default: @math{1e-6}
+@sp 1
 
-@end table
-@end defmethod
+@deftypefn {dates} {@var{C} = } append (@var{A}, @var{B})
 
-@defmethod Report addVspace hline, number
-Adds a @code{Vspace} (vertical space) to a @code{Section}.
-@optionshead
-@table @code
-@item hline, @code{INTEGER}
-The number of horizontal lines to be inserted. Default: @code{0}
+Appends @dates object @var{B}, or a string that can be interpreted as a date, to the @dates object @var{A}. If @var{B} is a @dates object it is assumed that it has no more than one element.
+
+@examplehead
+@example
+>> D = dates('1950Q1','1950Q2');
+>> d = dates('1950Q3');
+>> E = D.append(d);
+>> F = D.append('1950Q3')
+>> isequal(E,F)
+
+ans =
+
+     1
+>> F
+F = <dates: 1950Q1, 1950Q2, 1950Q3>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dates} {@var{C} = } colon (@var{A}, @var{B})
+@deftypefnx {dates} {@var{C} = } colon (@var{A}, @var{i}, @var{B})
+
+Overloads the Matlab/Octave colon (:) operator. @var{A} and @var{B} are @dates objects. The optional increment @var{i} is a scalar integer (default value is @code{i=1}). This method returns a @dates object and can be used to create ranges of dates.
+
+@examplehead
+@example
+>> A = dates('1950Q1');
+>> B = dates('1951Q2');
+>> C = A:B
+C = <dates: 1950Q1, 1950Q2, 1950Q3, 1950Q4, 1951Q1>
+>> D = A:2:B
+D = <dates: 1950Q1, 1950Q3, 1951Q1>
+
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{B} = } double (@var{A})
+
+Overloads the Matlab/Octave @code{double} function. @var{A} is a @dates object. The method returns a floating point representation of a @dates object, the integer and fractional parts respectively corresponding to the year and the subperiod. The fractional part is the subperiod number minus one divided by the frequency (@code{1}, @code{4}, @code{12} or @code{52}).
+
+
+@examplehead
+@example
+>> a = dates('1950Q1'):dates('1950Q4');
+>> a.double()
+
+ans =
+
+   1950.00
+   1950.25
+   1950.50
+   1950.75
+
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} eq (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{eq} (equal, @code{==}) operator. @dates objects @var{A} and @var{B} must have the  same number of elements (say, @code{n}). The returned argument is a @code{n} by @code{1} vector of zeros and ones. The i-th element of @var{C} is equal to @code{1} if and only if the dates @code{A(i)} and @code{B(i)} are the same.
+
+@examplehead
+@example
+>> A = dates('1950Q1','1951Q2');
+>> B = dates('1950Q1','1950Q2');
+>> A==B
+
+ans =
+
+     1
+     0
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} ge (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{ge} (greater or equal, @code{>=}) operator. @dates objects @var{A} and @var{B} must have the  same number of elements (say, @code{n}). The returned argument is a @code{n} by @code{1} vector of zeros and ones. The i-th element of @var{C} is equal to @code{1} if and only if the date @code{A(i)} is posterior or equal to the date @code{B(i)}.
+
+@examplehead
+@example
+>> A = dates('1950Q1','1951Q2');
+>> B = dates('1950Q1','1950Q2');
+>> A>=B
+
+ans =
+
+     1
+     1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} gt (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{gt} (greater than, @code{>=}) operator. @dates objects @var{A} and @var{B} must have the  same number of elements (say, @code{n}). The returned argument is a @code{n} by @code{1} vector of zeros and ones. The i-th element of @var{C} is equal to @code{1} if and only if the date @code{A(i)} is posterior to the date @code{B(i)}.
+
+@examplehead
+@example
+>> A = dates('1950Q1','1951Q2');
+>> B = dates('1950Q1','1950Q2');
+>> A>B
+
+ans =
+
+     0
+     1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{D} =} horzcat (@var{A}, @var{B}, @var{C}, ...)
+
+Overloads the Matlab/Octave @code{horzcat} operator. All the input arguments must be @dates objects. The returned argument is a @dates object gathering all the dates given in the input arguments (repetitions are not removed).
+
+@examplehead
+@example
+>> A = dates('1950Q1');
+>> B = dates('1950Q2');
+>> C = [A, B];
+>> C
+C = <dates: 1950Q1, 1950Q2>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} intersect (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{intersect} function. All the input arguments must be @dates objects. The returned argument is a @dates object gathering all the common dates given in the input arguments. If @var{A} and @var{B} are disjoint @dates objects, the function returns an empty @dates object. Returned dates in @dates object @var{C} are sorted by increasing order.
+
+@examplehead
+@example
+>> A = dates('1950Q1'):dates('1951Q4');
+>> B = dates('1951Q1'):dates('1951Q4');
+>> C = intersect(A, B);
+>> C
+C = <dates: 1951Q1, 1951Q2, 1951Q3, 1951Q4>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} setdiff (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{setdiff} function. All the input arguments must be @dates objects. The returned argument is a @dates object all dates present in @var{A} but not in @var{B}. If @var{A} and @var{B} are disjoint @dates objects, the function returns @var{A}. Returned dates in @dates object @var{C} are sorted by increasing order.
+
+@examplehead
+@example
+>> A = dates('1950Q1'):dates('1969Q4') ;
+>> B = dates('1960Q1'):dates('1969Q4') ;
+>> C = dates('1970Q1'):dates('1979Q4') ;
+>> d1 = setdiff(d1,d2);
+>> d2 = setdiff(d1,d3);
+d1 = <dates: 1950Q1, 1950Q2,  ..., 1959Q3, 1959Q4>
+d2 = <dates: 1950Q1, 1950Q2,  ..., 1969Q3, 1969Q4>
+@end example
+
+@end deftypefn
+
+
+@sp 1
+
+
+@deftypefn{dates} {@var{B} =} isempty (@var{A})
+
+Overloads the Matlab/Octave isempty function for @dates object.
+
+@examplehead
+@example
+>> A = dates('1950Q1'):dates('1951Q4');
+>> A.isempty()
+
+ans =
+
+     0
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} isequal (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{isequal} function for @dates objects.
+
+@examplehead
+@example
+>> A = dates('1950Q1'):dates('1951Q4');
+>> isequal(A,A)
+
+ans =
+
+     1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} le (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{le} (less or equal, @code{<=}) operator. @dates objects @var{A} and @var{B} must have the  same number of elements (say, @code{n}). The returned argument is a @code{n} by @code{1} vector of zeros and ones. The i-th element of @var{C} is equal to @code{1} if and only if the date @code{A(i)} is not posterior to the date @code{B(i)}.
+
+@examplehead
+@example
+>> A = dates('1950Q1','1951Q2');
+>> B = dates('1950Q1','1950Q2');
+>> A<=B
+
+ans =
+
+     1
+     0
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{B} =} length (@var{A})
+
+Overloads the Matlab/Octave @code{length}  function. Returns the number of dates in @dates object @var{A} (@var{B} is a scalar integer).
+
+@examplehead
+@example
+>> A = dates('1950Q1','1951Q2');
+>> A.length()
+
+ans =
+
+     2
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} lt (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{lt} (less than, @code{<=}) operator. @dates objects @var{A} and @var{B} must have the  same number of elements (say, @code{n}). The returned argument is a @code{n} by @code{1} vector of zeros and ones. The i-th element of @var{C} is equal to @code{1} if and only if the date @code{A(i)} preceeds the date @code{B(i)}.
+
+@examplehead
+@example
+>> A = dates('1950Q1','1951Q2');
+>> B = dates('1950Q1','1950Q2');
+>> A<B
+
+ans =
+
+     0
+     0
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{D} =} max (@var{A}, @var{B}, @var{C}, ...)
+
+Overloads the Matlab/Octave @code{max} function. All input arguments must be @dates objects. The function returns a single element @dates object containing the greatest date.
+
+@examplehead
+@example
+>> A = @{dates('1950Q2'), dates('1953Q4','1876Q2'), dates('1794Q3')@};
+>> max(A@{:@})
+ans = <dates: 1953Q4>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{D} =} min (@var{A}, @var{B}, @var{C}, ...)
+
+Overloads the Matlab/Octave @code{min} function. All input arguments must be @dates objects. The function returns a single element @dates object containing the smallest date.
+
+@examplehead
+@example
+>> A = @{dates('1950Q2'), dates('1953Q4','1876Q2'), dates('1794Q3')@};
+>> min(A@{:@})
+ans = <dates: 1794Q3>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} minus (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{minus} operator (@code{-}). If both input arguments are @dates objects, then number of periods between @var{A} and @var{B} is returned (so that @code{A+C=B}). If @var{B} is a vector of integers, the @code{minus} operator shifts the @dates object by @var{B} periods backward.
+
+@examplehead
+@example
+>> d1 = dates('1950Q1','1950Q2','1960Q1');
+>> d2 = dates('1950Q3','1950Q4','1960Q1');
+>> ee = d2-d1
+
+ee =
+
+     2
+     2
+     0
+
+>> d1-(-ee)
+ans = <dates: 1950Q3, 1950Q4, 1960Q1>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} ne (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{ne} (not equal, @code{~=}) operator. @dates objects @var{A} and @var{B} must have the  same number of elements (say, @code{n}) or one of the inputs must be a single element @dates object. The returned argument is a @code{n} by @code{1} vector of zeros and ones. The i-th element of @var{C} is equal to @code{1} if and only if the dates @code{A(i)} and @code{B(i)} are different.
+
+@examplehead
+@example
+>> A = dates('1950Q1','1951Q2');
+>> B = dates('1950Q1','1950Q2');
+>> A~=B
+
+ans =
+
+     0
+     1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} plus (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{plus} operator (@code{+}). If both input arguments are @dates objects, then the method combines A and B without removing repetitions. If @var{B} is a vector of integers, the @code{plus} operator shifts the @dates object by @var{B} periods forward.
+
+@examplehead
+@example
+>> d1 = dates('1950Q1','1950Q2')+dates('1960Q1');
+>> d2 = (dates('1950Q1','1950Q2')+2)+dates('1960Q1');
+>> ee = d2-d1;
+
+ee =
+
+     2
+     2
+     0
+
+>> d1+ee
+ans = <dates: 1950Q3, 1950Q4, 1960Q1>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{C} =} pop (@var{A})
+@deftypefnx{dates} {@var{C} =} pop (@var{A},@var{B})
+
+Pop method for @dates class. If only one input is provided, the method removes the last element of a @dates object. If a second input argument is provided, a scalar integer between @code{1} and @code{A.length()}, the method removes element number @var{B} from @dates object @var{A}.
+
+@examplehead
+@example
+>> d1 = dates('1950Q1','1950Q2');
+>> d1.pop()
+ans = <dates: 1950Q1>
+
+>> d1.pop(1)
+ans = <dates: 1950Q2>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{B} =} sort (@var{A})
+
+Sort method for @dates objects. Returns a @dates object with elements sorted by increasing order.
+
+@examplehead
+@example
+>> dd = dates('1945Q3','1938Q4','1789Q3');
+>> dd.sort()
+ans = <dates: 1789Q3, 1938Q4, 1945Q3>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{B} =} uminus (@var{A})
+
+Overloads the Matlab/Octave unary minus operator. Returns a @dates object with elements shifted one period backward.
+
+@examplehead
+@example
+>> dd = dates('1945Q3','1938Q4','1973Q1');
+>> -dd
+ans = <dates: 1945Q2, 1938Q3, 1972Q4>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{D} =} union (@var{A}, @var{B}, @var{C}, ...)
+
+Overloads the Matlab/Octave @code{union} function. Returns a @dates object with elements sorted by increasing order (repetitions are removed, to keep the repetitions use the @code{horzcat} or @code{plus} operators).
+
+@examplehead
+@example
+>> d1 = dates('1945Q3','1973Q1','1938Q4');
+>> d2 = dates('1973Q1','1976Q1');
+>> union(d1,d2)
+ans = <dates: 1938Q4, 1945Q3, 1973Q1, 1976Q1>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{B} =} unique (@var{A})
+
+Overloads the Matlab/Octave @code{unique} function. Returns a @dates object with repetitions removed (only the last occurence of a date is kept).
+
+@examplehead
+@example
+>> d1 = dates('1945Q3','1973Q1','1945Q3');
+>> d1.unique()
+ans = <dates: 1973Q1, 1945Q3>
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dates} {@var{B} =} uplus (@var{A})
+
+Overloads the Matlab/Octave unary plus operator. Returns a @dates object with elements shifted one period ahead.
+
+@examplehead
+@example
+>> dd = dates('1945Q3','1938Q4','1973Q1');
+>> +dd
+ans = <dates: 1945Q4, 1939Q1, 1973Q2>
+@end example
+
+@end deftypefn
+
+
+@node dseries class
+@section dseries class
+
+The Matlab/Octave @dseries class handles time series data. As any Matlab/Octave statements, this class can be used in a Dynare's mod file. A @dseries object has eight members:
+
+@table @code
+@anchor{dseries class members}
+
+@item nobs
+A scalar integer, the number of observations.
+
+@item vobs
+A scalar integer, the number of variables.
+
+@item name
+A @code{nobs}*1 cell of strings or a @code{nobs}*p character array, the names of the variables.
+
+@item tex
+ A @code{nobs}*1 cell of strings or a @code{nobs}*p character array, the tex names of the variables.
+
+@item freq
+A scalar integer equal to 1, 4, 12 or 52, the frequency of the dataset.
+
+@item init
+A single element @dates object, the initial date of the sample.
+
+@item dates
+A @dates object with @code{nobs} element, the dates of the sample.
+
+@item data
+A @code{nobs} by @code{vobs} array of doubles, the data.
+
+@end table
+
+@noindent @code{freq}, @code{nobs}, @code{vobs}, @code{data}, @code{name}, @code{tex} are private members. The following constructors are available:
+
+@deftypefn  {dseries} dseries ()
+@deftypefnx {dseries} dseries (@var{INITIAL_DATE})
+@deftypefnx {dseries} dseries (@var{RANGE_OF_DATES})
+
+Instantiates an empty @dseries object, with, if defined, an initial date given by the single element @dates object @var{INITIAL_DATE} or the first element of the @dates object @var{RANGE_OF_DATES} (the frequency is then set accordingly).
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} dseries (@var{FILENAME})
+
+Instantiates and populates a @dseries object with a data file specified by @var{FILENAME}, a string passed as input. Valid file types are @file{.m} file, @file{.mat} file, @file{.csv} file, and @file{.xls} file. A typical @file{.m} file will have the following form:
+
+@example
+INIT__ = '1994Q3';
+NAMES__ = @{'azert';'yuiop'@};
+TEX__ = @{'azert';'yuiop'@};
+
+azert = randn(100,1);
+yuiop = randn(100,1);
+@end example
+
+If a @file{.mat} file is used instead, it should provide the same informations. Note that the @code{INIT__} variable can be either a @dates object or a string which could be used to instantiate the same @dates object.
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} dseries (@var{DATA_MATRIX}[, @var{INITIAL_DATE}[, @var{LIST_OF_NAMES}[, @var{LIST_OF_TEX_NAMES}]]])
+@deftypefnx {dseries} dseries (@var{DATA_MATRIX}[, @var{RANGE_OF_DATES}[, @var{LIST_OF_NAMES}[, @var{LIST_OF_TEX_NAMES}]]])
+
+If the data is not read from a file, it can be provided via a @math{T}x@math{N} matrix as the first argument to @code{dseries}' constructor, with @math{T} representing the number of observations on @math{N} variables. The optional second argument, @var{INITIAL_DATE}, can be either a @dates object representing the period of the first observation or a string which would be used to instantiate a @dates object. Its default value is @code{dates('1Y')}. The optional third argument, @var{LIST_OF_NAMES}, is a @math{N} by @math{1} cell of strings  with one entry for each variable name. The default name associated with column @code{i} of @var{DATA_MATRIX} is @code{Variable_i}. The final argument, @var{LIST_OF_TEX_NAMES}, is a @math{N} by @math{1} cell of strings composed of the @LaTeX{} names associated with the variables. The default @LaTeX{} name associated with column @code{i} of @var{DATA_MATRIX} is @code{Variable\_i}. If the optional second input argument is a range of dates, @dates object @var{RANGE_OF_DATES}, the number of rows in the first argument must match the number of elements @var{RANGE_OF_DATES} or be equal to one (in which case the single observation is replicated).
+
+@end deftypefn
+
+@sp 1
+
+@exampleshead
+
+Various ways to create a @code{dseries} object:
+
+@sp 1
+
+@example In a mod file:
+do1 = dseries(1999Q3);
+do2 = dseries('filename.csv');
+do3 = dseries([1; 2; 3], 1999Q3, @{'var123'@}, @{'var_@{123@}'@});
+@end example
+
+@sp 1
+
+@example In a Matlab/Octave script:
+>> do1 = dseries(dates('1999Q3'));
+>> do2 = dseries('filename.csv');
+>> do3 = dseries([1; 2; 3], dates('1999Q3'), @{'var123'@}, @{'var_@{123@}'@});
+@end example
+
+@sp 1
+
+@noindent One can easily create subsamples from a @dseries object using the overloaded parenthesis operator. If @var{ds} is a @dseries object with @math{T} observations and @var{d} is a @dates object with @math{S<T} elements, such that @math{min(d)} is not smaller than the date associated to the first observation in @var{ds} and @math{max(d)} is not greater than the date associated to the last observation, then @code{ds(d)} instantiates a new @dseries object containing the subsample defined by @var{d}.
+
+@noindent A list of the available methods, by alphabetical order, is given below.
+
+@deftypefn {dseries} {@var{A} =} abs (@var{B})
+
+Overloads the @code{abs()} function for @dseries objects. Returns the absolute value of the variables in @dseries object @var{B}.
+
+@examplehead
+@example
+>> ts0 = dseries(randn(3,2),'1973Q1',@{'A1'; 'A2'@},@{'A_1'; 'A_2'@});
+>> ts1 = ts0.abs();
+>> ts0
+
+ts0 is a dseries object:
+
+       | A1       | A2
+1973Q1 | -0.67284 | 1.4367
+1973Q2 | -0.51222 | -0.4948
+1973Q3 | 0.99791  | 0.22677
+
+>> ts1
+
+ts1 is a dseries object:
+
+       | abs(A1) | abs(A2)
+1973Q1 | 0.67284 | 1.4367
+1973Q2 | 0.51222 | 0.4948
+1973Q3 | 0.99791 | 0.22677
+
+>> ts1.tex
+
+ans =
+
+    '|A_1|'
+    '|A_2|'
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {[@var{A}, @var{B}] = } align (@var{A}, @var{B})
+
+If @dseries objects @var{A} and @var{B} are defined on different time ranges, this function extends @var{A} and/or @var{B} with NaNs so that they are defined on the same time range. Note that both @dseries objects must have the same frequency.
+
+@examplehead
+@example
+>> ts0 = dseries(rand(5,1),dates('2000Q1')); % 2000Q1 -> 2001Q1
+>> ts1 = dseries(rand(3,1),dates('2000Q4')); % 2000Q4 -> 2001Q2
+>> [ts0, ts1] = align(ts0, ts1);             % 2000Q1 -> 2001Q2
+>> ts0
+
+ts0 is a dseries object:
+
+       | Variable_1
+2000Q1 | 0.81472
+2000Q2 | 0.90579
+2000Q3 | 0.12699
+2000Q4 | 0.91338
+2001Q1 | 0.63236
+2001Q2 | NaN
+
+>> ts1
+
+ts1 is a dseries object:
+
+       | Variable_1
+2000Q1 | NaN
+2000Q2 | NaN
+2000Q3 | NaN
+2000Q4 | 0.66653
+2001Q1 | 0.17813
+2001Q2 | 0.12801
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{B} = } baxter_king_filter (@var{A}, @var{hf}, @var{lf}, @var{K})
+
+Implementation of the Baxter and King (1999) band pass filter for @dseries objects. This filter isolates business cycle fluctuations with a period of length ranging between @var{hf} (high frequency) to @var{lf} (low frequency) using a symmetric moving average smoother with @math{2K+1} points, so that K observations at the beginning and at the end of the  sample are lost in the computation of the filter.
+
+@examplehead
+@example
+% Simulate a component model (stochastic trend, deterministic trend, and a
+% stationary autoregressive process).
+e = .2*randn(200,1);
+u = randn(200,1);
+stochastic_trend = cumsum(e);
+deterministic_trend = .1*transpose(1:200);
+x = zeros(200,1);
+for i=2:200
+    x(i) = .75*x(i-1) + e(i);
+end
+y = x + stochastic_trend + deterministic_trend;
+
+% Instantiates time series objects.
+ts0 = dseries(y,'1950Q1');
+ts1 = dseries(x,'1950Q1'); % stationary component.
+
+% Apply the Baxter-King filter.
+ts2 = ts0.baxter_king_filter();
+
+% Plot the filtered time series.
+plot(ts1(ts2.dates).data,'-k'); % Plot of the stationary component.
+hold on
+plot(ts2.data,'--r');           % Plot of the filtered y.
+hold off
+axis tight
+id = get(gca,'XTick');
+set(gca,'XTickLabel',strings(ts.dates(id)));
+@end example
+
+@iftex
+@sp 1
+The previous code should produce something like:
+@center
+@image{dynare.plots/BaxterKingFilter,11.32cm,7cm}
+@end iftex
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{C} = } chain (@var{A}, @var{B})
+
+Merge two @dseries objects along the time dimension. The two objects must have the same number of observed variables, and the initial date in @var{B} must not be posterior to the last date in @var{A}. The returned @dseries object, @var{C}, is built by extending @var{A} with the cumulated growth factors of @var{B}.
+
+@examplehead
+@example
+>> ts = dseries([1; 2; 3; 4],dates(`1950Q1'))
+
+ts is a dseries object:
+
+       | Variable_1
+1950Q1 | 1
+1950Q2 | 2
+1950Q3 | 3
+1950Q4 | 4
+
+>> us = dseries([3; 4; 5; 6],dates(`1950Q3'))
+
+us is a dseries object:
+
+       | Variable_1
+1950Q3 | 3
+1950Q4 | 4
+1951Q1 | 5
+1951Q2 | 6
+
+>> chain(ts, us)
+
+ans is a dseries object:
+
+       | Variable_1
+1950Q1 | 1
+1950Q2 | 2
+1950Q3 | 3
+1950Q4 | 4
+1951Q1 | 5
+1951Q2 | 6
+
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {[@var{error_flag}, @var{message} ] = } check (@var{A})
+
+Sanity check of @dseries object @var{A}. Returns @math{1} if there is an error, @math{0} otherwise. The second output argument is a string giving brief informations about the error.
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{B} = } cumprod (@var{A}[, @var{d}[, @var{v}]])
+
+Overloads the Matlab/Octave @code{cumprod} function for @dseries objects. The cumulated product cannot be computed if the variables in @dseries object @var{A} has @code{NaN}s. If a @dates object @var{d} is provided as a second argument, then the method computes the cumulated product with the additional constraint that the variables in the @dseries object @var{B} are equal to one in period @var{d}. If a single observation @dseries object @var{v} is provided as a third argument, the cumulated product in @var{B} is normalized such that @code{B(@var{d})} matches @var{v} (@dseries objects @var{A} and @var{v} must have the same number of variables).
+
+@examplehead
+@example
+>> ts1 = dseries(2*ones(7,1));
+>> ts2 = ts1.cumprod();
+>> ts2
+
+ts2 is a dseries object:
+
+   | cumprod(Variable_1)
+1Y | 2
+2Y | 4
+3Y | 8
+4Y | 16
+5Y | 32
+6Y | 64
+7Y | 128
+
+>> ts3 = ts1.cumsum(dates('3Y'));
+>> ts3
+
+ts3 is a dseries object:
+
+   | cumprod(Variable_1)
+1Y | 0.25
+2Y | 0.5
+3Y | 1
+4Y | 2
+5Y | 4
+6Y | 8
+7Y | 16
+
+>> ts4 = ts1.cumsum(dates('3Y'),dseries(pi));
+>> ts4
+
+ts4 is a dseries object:
+
+   | cumprod(Variable_1)
+1Y | 0.7854
+2Y | 1.5708
+3Y | 3.1416
+4Y | 6.2832
+5Y | 12.5664
+6Y | 25.1327
+7Y | 50.2655
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{B} = } cumsum (@var{A}[, @var{d}[, @var{v}]])
+
+Overloads the Matlab/Octave @code{cumsum} function for @dseries objects. The cumulated sum cannot be computed if the variables in @dseries object @var{A} has @code{NaN}s. If a @dates object @var{d} is provided as a second argument, then the method computes the cumulated sum with the additional constraint that the variables in the @dseries object @var{B} are zero in period @var{d}. If a single observation @dseries object @var{v} is provided as a third argument, the cumulated sum in @var{B} is such that @code{B(@var{d})} matches @var{v} (@dseries objects @var{A} and @var{v} must have the same number of variables).
+
+@examplehead
+@example
+>> ts1 = dseries(ones(10,1));
+>> ts2 = ts1.cumsum();
+>> ts2
+
+ts2 is a dseries object:
+
+    | cumsum(Variable_1)
+1Y  | 1
+2Y  | 2
+3Y  | 3
+4Y  | 4
+5Y  | 5
+6Y  | 6
+7Y  | 7
+8Y  | 8
+9Y  | 9
+10Y | 10
+
+>> ts3 = ts1.cumsum(dates('3Y'));
+>> ts3
+
+ts3 is a dseries object:
+
+    | cumsum(Variable_1)
+1Y  | -2
+2Y  | -1
+3Y  | 0
+4Y  | 1
+5Y  | 2
+6Y  | 3
+7Y  | 4
+8Y  | 5
+9Y  | 6
+10Y | 7
+
+>> ts4 = ts1.cumsum(dates('3Y'),dseries(pi));
+>> ts4
+
+ts4 is a dseries object:
+
+    | cumsum(Variable_1)
+1Y  | 1.1416
+2Y  | 2.1416
+3Y  | 3.1416
+4Y  | 4.1416
+5Y  | 5.1416
+6Y  | 6.1416
+7Y  | 7.1416
+8Y  | 8.1416
+9Y  | 9.1416
+10Y | 10.1416
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} eq (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{eq} (equal, @code{==}) operator. @dseries objects @var{A} and @var{B} must have the  same number of observations (say, @math{T}) and variables (@math{N}). The returned argument is a @math{T} by @math{N} matrix of zeros and ones. Element @math{(i,j)} of @var{C} is equal to @code{1} if and only if observation @math{i} for variable @math{j} in @var{A} and @var{B} are the same.
+
+@examplehead
+@example
+>> ts0 = dseries(2*ones(3,1));
+>> ts1 = dseries([2; 0; 2]);
+>> ts0==ts1
+
+ans =
+
+     1
+     0
+     1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{B} =} exp (@var{A})
+
+Overloads the Matlab/Octave @code{exp} function for @dseries objects.
+@examplehead
+@example
+>> ts0 = dseries(rand(10,1));
+>> ts1 = ts0.exp();
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} extract (@var{A}, @var{B}[, ...])
+
+Extracts some variables from a @dseries object @var{A} and returns a @dseries object @var{C}. The input arguments following @var{A} are strings representing the variables to be selected in the new @dseries object @var{C}. To simplify the creation of sub-objects, the @dseries class overloads the curly braces (@code{D = extract (A, B, C)} is equivalent to @code{D = A@{B,C@}}) and allows implicit loops (defined between a pair of @@ symbol, see examples below) or Matlab/Octave's regular expressions (introduced by square brackets).
+
+@exampleshead
+
+@noindent The following selections are equivalent:
+@example
+>> ts0 = dseries(ones(100,10));
+>> ts1 = ts0@{'Variable_1','Variable_2','Variable_3'@};
+>> ts2 = ts0@{'Variable_@@1,2,3@@'@}
+>> ts3 = ts0@{'Variable_[1-3]$'@}
+>> isequal(ts1,ts2) && isequal(ts1,ts3)
+
+ans =
+
+     1
+@end example
+
+@noindent It is possible to use up to two implicit loops to select variables:
+@example
+names = @{'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; ...
+      'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; ...
+      'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; ...
+      'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12'@};
+
+ts0 = dseries(randn(4,24),dates('1973Q1'),names);
+ts0@{'@@GDP,HICP@@_@@1,3,5@@'@}
+
+ans is a dseries object:
+
+       | GDP_1    | GDP_3     | GDP_5     | HICP_1   | HICP_3   | HICP_5
+1973Q1 | 1.7906   | -1.6606   | -0.57716  | 0.60963  | -0.52335 | 0.26172
+1973Q2 | 2.1624   | 3.0125    | 0.52563   | 0.70912  | -1.7158  | 1.7792
+1973Q3 | -0.81928 | 1.5008    | 1.152     | 0.2798   | 0.88568  | 1.8927
+1973Q4 | -0.03705 | -0.35899  | 0.85838   | -1.4675  | -2.1666  | -0.62032
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{D} =} horzcat (@var{A}, @var{B}[, ...])
+
+Overloads the @code{horzcat} Matlab/Octave's method for @dseries
+objects. Returns a @dseries object @var{D} containing the variables
+in @dseries objects passed as inputs: @var{A}, @var{B}, ... If the
+inputs are not defined on the same time ranges, the method adds
+@code{NaN}s to the variables so that the variables are redefined on
+the smallest common time range. Note that the names in the @dseries
+objects passed as inputs must be different and these objects must have
+common frequency.
+
+@examplehead
+@example
+>> ts0 = dseries(rand(5,2),'1950Q1',@{'nifnif';'noufnouf'@});
+>> ts1 = dseries(rand(7,1),'1950Q3',@{'nafnaf'@});
+>> ts2 = [ts0, ts1];
+>> ts2
+
+ts2 is a dseries object:
+
+       | nifnif  | noufnouf | nafnaf
+1950Q1 | 0.17404 | 0.71431  | NaN
+1950Q2 | 0.62741 | 0.90704  | NaN
+1950Q3 | 0.84189 | 0.21854  | 0.83666
+1950Q4 | 0.51008 | 0.87096  | 0.8593
+1951Q1 | 0.16576 | 0.21184  | 0.52338
+1951Q2 | NaN     | NaN      | 0.47736
+1951Q3 | NaN     | NaN      | 0.88988
+1951Q4 | NaN     | NaN      | 0.065076
+1952Q1 | NaN     | NaN      | 0.50946
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{B} = } hpcycle (@var{A}[, @var{lambda}])
+
+Extracts the cycle component from a @dseries @var{A} object using
+Hodrick Prescott (1997) filter and returns a @dseries object, @var{B}. The
+default value for @var{lambda}, the smoothing parameter, is
+@math{1600}.
+
+@examplehead
+@example
+% Simulate a component model (stochastic trend, deterministic trend, and a
+% stationary autoregressive process).
+e = .2*randn(200,1);
+u = randn(200,1);
+stochastic_trend = cumsum(e);
+deterministic_trend = .1*transpose(1:200);
+x = zeros(200,1);
+for i=2:200
+    x(i) = .75*x(i-1) + e(i);
+end
+y = x + stochastic_trend + deterministic_trend;
+
+% Instantiates time series objects.
+ts0 = dseries(y,'1950Q1');
+ts1 = dseries(x,'1950Q1'); % stationary component.
+
+% Apply the HP filter.
+ts2 = ts0.hpcycle();
+
+% Plot the filtered time series.
+plot(ts1(ts2.dates).data,'-k'); % Plot of the stationary component.
+hold on
+plot(ts2.data,'--r');           % Plot of the filtered y.
+hold off
+axis tight
+id = get(gca,'XTick');
+set(gca,'XTickLabel',strings(ts.dates(id)));
+@end example
+
+@iftex
+@sp 1
+The previous code should produce something like:
+@center
+@image{dynare.plots/HPCycle,11.32cm,7cm}
+@end iftex
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{B} = } hptrend (@var{A}[, @var{lambda}])
+
+Extracts the trend component from a @dseries @var{A} object using Hodrick Prescott (1997) filter and returns a @dseries object, @var{B}. Default value for @var{lambda}, the smoothing parameter, is  @math{1600}.
+
+@examplehead
+Using the same generating data process as in the previous example:
+@example
+ts1 = dseries(stochastic_trend + deterministic_trend,'1950Q1');
+% Apply the HP filter.
+ts2 = ts0.hptrend();
+
+% Plot the filtered time series.
+plot(ts1.data,'-k'); % Plot of the nonstationary components.
+hold on
+plot(ts2.data,'--r');           % Plot of the estimated trend.
+hold off
+axis tight
+id = get(gca,'XTick');
+set(gca,'XTickLabel',strings(ts0.dates(id)));
+@end example
+
+@iftex
+@sp 1
+The previous code should produce something like:
+@center
+@image{dynare.plots/HPTrend,11.32cm,7cm}
+@end iftex
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{C} = } insert (@var{A}, @var{B}, @var{I})
+
+Inserts variables contained in @dseries object @var{B} in @dseries object @var{A} at positions specified by integer scalars in vector @var{I}, returns augmented @dseries object @var{C}. The integer scalars in @var{I} must take values between @code{1} and @code{A.length()+1} and refers to @var{A}'s column numbers. The @dseries objects @var{A} and @var{B} need not to be defined over the same time ranges, but it is assumed that they have common frequency.
+
+@examplehead
+@example
+>> ts0 = dseries(ones(2,4),'1950Q1',@{'Sly'; 'Gobbo'; 'Sneaky'; 'Stealthy'@});
+>> ts1 = dseries(pi*ones(2,1),'1950Q1',@{'Noddy'@});
+>> ts2 = ts0.insert(ts1,3)
+
+ts2 is a dseries object:
+
+       | Sly | Gobbo | Noddy  | Sneaky | Stealthy
+1950Q1 | 1   | 1     | 3.1416 | 1      | 1
+1950Q2 | 1   | 1     | 3.1416 | 1      | 1
+
+>> ts3 = dseries([pi*ones(2,1) sqrt(pi)*ones(2,1)],'1950Q1',@{'Noddy';'Tessie Bear'@});
+>> ts4 = ts0.insert(ts1,[3, 4])
+
+ts4 is a dseries object:
+
+       | Sly | Gobbo | Noddy  | Sneaky | Tessie Bear | Stealthy
+1950Q1 | 1   | 1     | 3.1416 | 1      | 1.7725      | 1
+1950Q2 | 1   | 1     | 3.1416 | 1      | 1.7725      | 1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{B} = } isempty (@var{A})
+
+Overloads the Matlab/octave's @code{isempty} function. Returns @code{1} if @dseries object @var{A} is empty, @code{0} otherwise.
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{C} = } isequal (@var{A},@var{B})
+
+Overloads the Matlab/octave's @code{isequal} function. Returns @code{1} if @dseries objects @var{A} and @code{B} are identical, @code{0} otherwise.
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{B} = } lag (@var{A}[, @var{p}])
+
+Returns lagged time series. Default value of @var{p}, the number of lags, is @code{1}.
+
+@exampleshead
+
+@example
+>> ts0 = dseries(transpose(1:4),'1950Q1')
+
+ts0 is a dseries object:
+
+       | Variable_1
+1950Q1 | 1
+1950Q2 | 2
+1950Q3 | 3
+1950Q4 | 4
+
+>> ts1 = ts0.lag()
+
+ts1 is a dseries object:
+
+       | lag(Variable_1,1)
+1950Q1 | NaN
+1950Q2 | 1
+1950Q3 | 2
+1950Q4 | 3
+
+>> ts2 = ts0.lag(2)
+
+ts2 is a dseries object:
+
+       | lag(Variable_1,2)
+1950Q1 | NaN
+1950Q2 | NaN
+1950Q3 | 1
+1950Q4 | 2
+@end example
+
+@noindent @dseries class overloads the parenthesis so that @code{ts.lag(p)} can be written more compactly as @code{ts(-p)}. For instance:
+
+@example
+>> ts0.lag(1)
+
+ans is a dseries object:
+
+       | lag(Variable_1,1)
+1950Q1 | NaN
+1950Q2 | 1
+1950Q3 | 2
+1950Q4 | 3
+@end example
+
+@noindent or alternatively:
+
+@example
+>> ts0(-1)
+
+ans is a dseries object:
+
+       | lag(Variable_1,1)
+1950Q1 | NaN
+1950Q2 | 1
+1950Q3 | 2
+1950Q4 | 3
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn {dseries} {@var{B} = } lead (@var{A}[, @var{p}])
+
+Returns leaded time series. Default value of @var{p}, the number of leads, is @code{1}. As for the @code{lag} method, the @dseries class overloads the parenthesis so that @code{ts.lead(p)} is equivalent to @code{ts(p)}.
+
+@examplehead
+
+@example
+>> ts0 = dseries(transpose(1:4),'1950Q1');
+>> ts1 = ts0.lead()
+
+ts1 is a dseries object:
+
+       | lead(Variable_1,1)
+1950Q1 | 2
+1950Q2 | 3
+1950Q3 | 4
+1950Q4 | NaN
+
+>> ts2 = ts0(2)
+
+ts2 is a dseries object:
+
+       | lead(Variable_1,2)
+1950Q1 | 3
+1950Q2 | 4
+1950Q3 | NaN
+1950Q4 | NaN
+@end example
+
+@end deftypefn
+
+@noindent @remarkhead
+
+@noindent The overloading of the parenthesis for @dseries objects, allows to easily create new @dseries objects by copying/pasting equations declared in the @code{model} block. For instance, if an Euler equation is defined in the @code{model} block:
+
+@example
+model;
+    ...
+    1/C - beta/C(1)*(exp(A(1))*K^(alpha-1)+1-delta) ;
+    ...
+end;
+@end example
+
+@noindent and if variables @var{C}, @var{A} and @var{K} are defined as @dseries objects, then by writting:
+
+@example
+Residuals = 1/C - beta/C(1)*(exp(A(1))*K^(alpha-1)+1-delta) ;
+@end example
+
+@noindent outside of the @code{model} block, we create a new @dseries object, called @code{Residuals}, for the residuals of the Euler equation (the conditional expectation of the equation defined in the @code{model} block is zero, but the residuals are non zero).
+
+@sp 1
+
+@deftypefn{dseries} {@var{B} =} log (@var{A})
+
+Overloads the Matlab/Octave @code{log} function for @dseries objects.
+@examplehead
+@example
+>> ts0 = dseries(rand(10,1));
+>> ts1 = ts0.log();
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} merge (@var{A}, @var{B})
+
+Merges two @dseries objects @var{A} and @var{B} in @dseries object @var{C}. Objects @var{A} and @var{B} need to have common frequency but can be defined on different time ranges. If a variable, say @code{x}, is defined both in @dseries objects @var{A} and @var{B}, then the merge will select the variable @code{x} as defined in the second input argument, @var{B}.
+
+@examplehead
+@example
+>> ts0 = dseries(rand(3,2),'1950Q1',@{'A1';'A2'@})
+
+ts0 is a dseries object:
+
+       | A1       | A2
+1950Q1 | 0.42448  | 0.92477
+1950Q2 | 0.60726  | 0.64208
+1950Q3 | 0.070764 | 0.1045
+
+>> ts1 = dseries(rand(3,1),'1950Q2',@{'A1'@})
+
+ts1 is a dseries object:
+
+       | A1
+1950Q2 | 0.70023
+1950Q3 | 0.3958
+1950Q4 | 0.084905
+
+>> merge(ts0,ts1)
+
+ans is a dseries object:
+
+       | A1       | A2
+1950Q1 | NaN      | 0.92477
+1950Q2 | 0.70023  | 0.64208
+1950Q3 | 0.3958   | 0.1045
+1950Q4 | 0.084905 | NaN
+
+>> merge(ts1,ts0)
+
+ans is a dseries object:
+
+       | A1       | A2
+1950Q1 | 0.42448  | 0.92477
+1950Q2 | 0.60726  | 0.64208
+1950Q3 | 0.070764 | 0.1045
+1950Q4 | NaN      | NaN
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} minus (@var{A}, @var{B})
+
+Overloads the @code{minus} (@code{-}) operator for @dseries objects,
+element by element subtraction. If both @var{A} and @var{B}
+are @dseries objects, they do not need to be defined over the same
+time ranges. If @var{A} and @var{B} are @dseries objects with
+@math{T_A} and @math{T_B} observations and @math{N_A} and @math{N_B}
+variables, then @math{N_A} must be equal to @math{N_B} or @math{1} and
+@math{N_B} must be equal to @math{N_A} or @math{1}. If @math{T_A=T_B},
+@code{isequal(A.init,B.init)} returns 1 and @math{N_A=N_B}, then the
+@code{minus} operator will compute for each couple @math{(t,n)}, with
+@math{1\le t\le T_A} and @math{1\le n\le N_A},
+@code{C.data(t,n)=A.data(t,n)-B.data(t,n)}. If @math{N_B} is equal to
+@math{1} and @math{N_A>1}, the smaller @dseries object (@var{B}) is
+``broadcast'' across the larger @dseries (@var{A}) so that they have
+compatible shapes, the @code{minus} operator will subtract the
+variable defined in @var{B} from each variable in @var{A}. If @var{B}
+is a double scalar, then the method @code{minus} will subtract
+@var{B} from all the observations/variables in @var{A}. If @var{B} is
+a row vector of length @math{N_A}, then the @code{minus} method will
+subtract @code{B(i)} from all the observations of variable @code{i},
+for @math{i=1,...,N_A}. If @var{B} is a column vector of length
+@math{T_A}, then the @code{minus} method will subtract @code{B} from
+all the variables.
+
+@examplehead
+@example
+>> ts0 = dseries(rand(3,2));
+>> ts1 = ts0@{'Variable_2'@};
+>> ts0-ts1
+
+ans is a dseries object:
+
+   | minus(Variable_1,Variable_2) | minus(Variable_2,Variable_2)
+1Y | -0.48853                     | 0
+2Y | -0.50535                     | 0
+3Y | -0.32063                     | 0
+
+>> ts1
+
+ts1 is a dseries object:
+
+   | Variable_2
+1Y | 0.703
+2Y | 0.75415
+3Y | 0.54729
+
+>> ts1-ts1.data(1)
+
+ans is a dseries object:
+
+   | minus(Variable_2,0.703)
+1Y | 0
+2Y | 0.051148
+3Y | -0.15572
+
+>> ts1.data(1)-ts1
+
+ans is a dseries object:
+
+   | minus(0.703,Variable_2)
+1Y | 0
+2Y | -0.051148
+3Y | 0.15572
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} mpower (@var{A}, @var{B})
+
+Overloads the @code{mpower} (@code{^}) operator for @dseries objects and computes element-by-element power. @var{A} is a @dseries object with @code{N} variables and @code{T} observations. If @var{B} is a real scalar, then @code{mpower(@var{A},@var{B})} returns a @dseries object @var{C} with @code{C.data(t,n)=A.data(t,n)^C}. If @var{B} is a @dseries object with @code{N} variables and @code{T} observations then @code{mpower(@var{A},@var{B})} returns a @dseries object @var{C} with @code{C.data(t,n)=A.data(t,n)^C.data(t,n)}.
+
+@examplehead
+@example
+>> ts0 = dseries(transpose(1:3));
+>> ts1 = ts0^2
+
+ts1 is a dseries object:
+
+   | power(Variable_1,2)
+1Y | 1
+2Y | 4
+3Y | 9
+
+>> ts2 = ts0^ts0
+
+ts2 is a dseries object:
+
+   | power(Variable_1,Variable_1)
+1Y | 1
+2Y | 4
+3Y | 27
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} mrdivide (@var{A}, @var{B})
+
+Overloads the @code{mrdivide} (@code{/}) operator for @dseries
+objects, element by element division (like the @code{./} Matlab/Octave
+operator). If both @var{A} and @var{B} are @dseries objects, they do
+not need to be defined over the same time ranges. If @var{A} and
+@var{B} are @dseries objects with @math{T_A} and @math{T_B}
+observations and @math{N_A} and @math{N_B} variables, then @math{N_A}
+must be equal to @math{N_B} or @math{1} and @math{N_B} must be equal
+to @math{N_A} or @math{1}. If @math{T_A=T_B},
+@code{isequal(A.init,B.init)} returns 1 and @math{N_A=N_B}, then the
+@code{mrdivide} operator will compute for each couple @math{(t,n)},
+with @math{1\le t\le T_A} and @math{1\le n\le N_A},
+@code{C.data(t,n)=A.data(t,n)/B.data(t,n)}. If @math{N_B} is equal to
+@math{1} and @math{N_A>1}, the smaller @dseries object (@var{B}) is
+``broadcast'' across the larger @dseries (@var{A}) so that they have
+compatible shapes. In this case the @code{mrdivides} operator will
+divide each variable defined in @var{A} by the variable in @var{B},
+observation per observation. If @var{B} is a double scalar, then
+@code{mrdivide} will divide all the observations/variables in @var{A}
+by @var{B}. If @var{B} is a row vector of length @math{N_A}, then
+@code{mrdivide} will divide all the observations of variable @code{i}
+by @code{B(i)}, for @math{i=1,...,N_A}. If @var{B} is a column vector
+of length @math{T_A}, then @code{mrdivide} will perform a division of
+all the variables by @code{B}, element by element.
+
+@examplehead
+@example
+>> ts0 = dseries(rand(3,2))
+
+ts0 is a dseries object:
+
+   | Variable_1 | Variable_2
+1Y | 0.72918    | 0.90307
+2Y | 0.93756    | 0.21819
+3Y | 0.51725    | 0.87322
+
+>> ts1 = ts0@{'Variable_2'@};
+>> ts0/ts1
+
+ans is a dseries object:
+
+   | divide(Variable_1,Variable_2) | divide(Variable_2,Variable_2)
+1Y | 0.80745                       | 1
+2Y | 4.2969                        | 1
+3Y | 0.59235                       | 1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} mtimes (@var{A}, @var{B})
+
+Overloads the @code{mtimes} (@code{*}) operator for @dseries objects
+and the Hadammard product (the @code{.*} Matlab/Octave operator). If
+both @var{A} and @var{B} are @dseries objects, they do not need to be
+defined over the same time ranges. If @var{A} and @var{B} are @dseries
+objects with @math{T_A} and @math{T_B} observations and @math{N_A} and
+@math{N_B} variables, then @math{N_A} must be equal to @math{N_B} or
+@math{1} and @math{N_B} must be equal to @math{N_A} or @math{1}. If
+@math{T_A=T_B}, @code{isequal(A.init,B.init)} returns 1 and
+@math{N_A=N_B}, then the @code{mtimes} operator will compute for each
+couple @math{(t,n)}, with @math{1\le t\le T_A} and @math{1\le n\le N_A},
+@code{C.data(t,n)=A.data(t,n)*B.data(t,n)}. If @math{N_B} is equal to
+@math{1} and @math{N_A>1}, the smaller @dseries object (@var{B}) is
+``broadcast'' across the larger @dseries (@var{A}) so that they have
+compatible shapes, @code{mtimes} operator will multiply each variable
+defined in @var{A} by the variable in @var{B}, observation per
+observation. If @var{B} is a double scalar, then the method
+@code{mtimes} will multiply all the observations/variables in @var{A}
+by @var{B}. If @var{B} is a row vector of length @math{N_A}, then the
+@code{mtimes} method will multiply all the observations of variable
+@code{i} by @code{B(i)}, for @math{i=1,...,N_A}. If @var{B} is a
+column vector of length @math{T_A}, then the @code{mtimes} method will
+perform a multiplication of all the variables by @code{B}, element by
+element.
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} ne (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{ne} (equal, @code{~=}) operator. @dseries objects @var{A} and @var{B} must have the  same number of observations (say, @math{T}) and variables (@math{N}). The returned argument is a @math{T} by @math{N} matrix of zeros and ones. Element @math{(i,j)} of @var{C} is equal to @code{1} if and only if observation @math{i} for variable @math{j} in @var{A} and @var{B} are not equal.
+
+@examplehead
+@example
+>> ts0 = dseries(2*ones(3,1));
+>> ts1 = dseries([2; 0; 2]);
+>> ts0~=ts1
+
+ans =
+
+     0
+     1
+     0
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{h} =} plot (@var{A})
+@deftypefnx{dseries} {@var{h} =} plot (@var{A}, @var{B})
+@deftypefnx{dseries} {@var{h} =} plot (@var{A}[, ...])
+@deftypefnx{dseries} {@var{h} =} plot (@var{A}, @var{B}[, ...])
+
+Overloads Matlab/Octave's @code{plot} function for @dseries objects. Returns a Matlab/Octave plot handle, that can be used to modify the properties of the plotted time series. If only one @dseries object, @var{A}, is passed as argument, then the @code{plot} function will put the associated dates on the x-abscissa. If this @dseries object contains only one variable, additional arguments can be passed to modify the properties of the plot (as one would do with the Matlab/Octave's version of the @code{plot} function). If @dseries object @var{A} contains more than one variable, it is not possible to pass these additional arguments and the properties of the plotted time series must be modify using the returned plot handle and the Matlab/Octave @code{set} function (see example below). If two @dseries objects, @var{A} and @var{B}, are passed as input arguments, the @code{plot} function will plot the variables in @var{A} against the variables in @var{B} (the number of variables in each object must be the same otherwise an error is issued). Again, if each object contains only one variable additional arguments can be passed to modify the properties of the plotted time series, otherwise the Matlab/Octave @code{set} command has to be used.
+
+@exampleshead
+
+@noindent Define a @dseries object with two variables (named by default @code{Variable_1} and @code{Variable_2}):
+
+@example
+>> ts = dseries(randn(100,2),'1950Q1');
+@end example
+
+@noindent The following command will plot the first variable in @code{ts}
+
+@example
+>> plot(ts@{'Variable_1'@},'-k','linewidth',2);
+@end example
+
+@noindent The next command will draw all the variables in @code{ts} on the same figure:
+
+@example
+>> h = plot(ts);
+@end example
+
+@noindent If one wants to modify the properties of the plotted time series (line style, colours, ...), the @code{set} function can be used (see Matlab's documentation):
+
+@example
+>> set(h(1),'-k','linewidth',2);
+>> set(h(2),'--r');
+@end example
+
+@noindent The follwing command will plot @code{Variable_1} against @code{exp(Variable_1)}:
+
+@example
+>> plot(ts@{'Variable_1'@},ts@{'Variable_1'@}.exp(),'ok');
+@end example
+
+@noindent Again, the properties can also be modified using the returned plot handle and the @code{set} function:
+
+@example
+>> h = plot(ts, ts.exp());
+>> set(h(1),'ok');
+>> set(h(2),'+r');
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} plus (@var{A}, @var{B})
+
+Overloads the @code{plus} (@code{+}) operator for @dseries objects,
+element by element addition. If both @var{A} and @var{B} are @dseries
+objects, they do not need to be defined over the same time ranges. If
+@var{A} and @var{B} are @dseries objects with @math{T_A} and @math{T_B}
+observations and @math{N_A} and @math{N_B} variables, then @math{N_A}
+must be equal to @math{N_B} or @math{1} and @math{N_B} must be equal
+to @math{N_A} or @math{1}. If @math{T_A=T_B},
+@code{isequal(A.init,B.init)} returns 1 and @math{N_A=N_B}, then the
+@code{plus} operator will compute for each couple @math{(t,n)}, with
+@math{1\le t\le T_A} and @math{1\le n\le N_A},
+@code{C.data(t,n)=A.data(t,n)+B.data(t,n)}. If @math{N_B} is equal to
+@math{1} and @math{N_A>1}, the smaller @dseries object (@var{B}) is
+``broadcast'' across the larger @dseries (@var{A}) so that they have
+compatible shapes, the @code{plus} operator will add the variable
+defined in @var{B} to each variable in @var{A}. If @var{B} is a double
+scalar, then the method @code{plus} will add @var{B} to all the
+observations/variables in @var{A}. If @var{B} is a row vector of
+length @math{N_A}, then the @code{plus} method will add @code{B(i)} to
+all the observations of variable @code{i}, for @math{i=1,...,N_A}. If
+@var{B} is a column vector of length @math{T_A}, then the @code{plus}
+method will add @code{B} to all the variables.
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{C} =} pop (@var{A}[, @var{B}])
+
+Removes variable @var{B} from @dseries object @var{A}. By default, if the second argument is not provided, the last variable is removed.
+
+@examplehead
+@example
+>> ts0 = dseries(ones(3,3));
+>> ts1 = ts0.pop('Variable_2');
+
+ts1 is a dseries object:
+
+   | Variable_1 | Variable_3
+1Y | 1          | 1
+2Y | 1          | 1
+3Y | 1          | 1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{B} =} qdiff (@var{A})
+@deftypefnx{dseries} {@var{B} =} qgrowth (@var{A})
+
+Computes quarterly differences or growth rates.
+
+@examplehead
+@example
+>> ts0 = dseries(transpose(1:4),'1950Q1');
+>> ts1 = ts0.qdiff()
+
+ts1 is a dseries object:
+
+       | qdiff(Variable_1)
+1950Q1 | NaN
+1950Q2 | 1
+1950Q3 | 1
+1950Q4 | 1
+
+>> ts0 = dseries(transpose(1:6),'1950M1');
+>> ts1 = ts0.qdiff()
+
+ts1 is a dseries object:
+
+        | qdiff(Variable_1)
+1950M1  | NaN
+1950M2  | NaN
+1950M3  | NaN
+1950M4  | 3
+1950M5  | 3
+1950M6  | 3
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{B} =} rename (@var{A},@var{oldname},@var{newname})
+
+Rename variable @var{oldname} to @var{newname} in @dseries object
+@var{A}. Returns a @dseries object.
+
+@examplehead
+@example
+>> ts0 = dseries(ones(2,2));
+>> ts1 = ts0.rename('Variable_1','Stinkly')
+
+ts1 is a dseries object:
+
+   | Stinkly | Variable_2
+1Y | 1       | 1
+2Y | 1       | 1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} save (@var{A}, @var{basename}[, @var{format}])
+
+Overloads the Matlab/Octave @code{save} function and saves @dseries
+object @var{A} to disk. Possible formats are @code{csv} (this is the
+default), @code{m} (Matlab/Octave script), and @code{mat} (Matlab
+binary data file). The name of the file without extension is specified
+by @var{basename}.
+
+@examplehead
+@example
+>> ts0 = dseries(ones(2,2));
+>> ts0.save('ts0');
+@end example
+
+@noindent The last command will create a file @code{ts0.csv} with the following content:
+
+@example
+,Variable_1,Variable_2
+1Y,               1,               1
+2Y,               1,               1
+@end example
+
+@noindent To create a Matlab/octave script, the following command:
+
+@example
+>> ts0.save('ts0','m');
+@end example
+
+@noindent will produce a file @code{ts0.m} with the following content:
+
+@example
+% File created on 14-Nov-2013 12:08:52.
+
+FREQ__ = 1;
+INIT__ = ' 1Y';
+
+NAMES__ = @{'Variable_1'; 'Variable_2'@};
+TEX__ = @{'Variable_@{1@}'; 'Variable_@{2@}'@};
+
+Variable_1 = [
+              1
+              1];
+
+Variable_2 = [
+              1
+              1];
+@end example
+
+@noindent The generated (@code{csv}, @code{m}, or @code{mat}) files can be loaded when instantiating a @dseries object as explained above.
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{B} =} set_names (@var{A}, @var{s1}, @var{s2}, ...)
+
+Renames variables in @dseries object @var{A} and returns a @dseries
+object @var{B} with new names @var{s1}, @var{s2}, @var{s3}, ... The
+number of input arguments after the first one (@dseries object
+@var{A}) must be equal to @code{A.vobs} (the number of variables in
+@var{A}). @var{s1} will be the name of the first variable in @var{B},
+@var{s2} the name of the second variable in @var{B}, and so on.
+
+@examplehead
+@example
+>> ts0 = dseries(ones(1,3));
+>> ts1 = ts0.set_names('Barbibul',[],'Barbouille')
+
+ts1 is a dseries object:
+
+   | Barbibul | Variable_2 | Barbouille
+1Y | 1        | 1          | 1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {[@var{T}, @var{N} ] = } size (@var{A}[, @var{dim}])
+
+Overloads the Matlab/Octave's @code{size} function. Returns the number of observations in @dseries object @var{A} (@emph{ie} @code{A.nobs}) and the number of variables (@emph{ie} @code{A.vobs}). If a second input argument is passed, the @code{size} function returns the number of observations if @code{dim=1} or the number of variables if @code{dim=2} (for all other values of @var{dim} an error is issued).
+
+@examplehead
+@example
+>> ts0 = dseries(ones(1,3));
+>> ts0.size()
+
+ans =
+
+     1     3
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{B} =} tex_rename (@var{A}, @var{name}, @var{newtexname})
+
+Redefines the tex name of variable @var{name} to @var{newtexname}
+in @dseries object @var{A}. Returns a @dseries object.
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{B} =} uminus (@var{A})
+
+Overloads @code{uminus} (@code{-}, unary minus) for @dseries object.
+
+@examplehead
+@example
+>> ts0 = dseries(1)
+
+ts0 is a dseries object:
+
+   | Variable_1
+1Y | 1
+
+>> ts1 = -ts0
+
+ts1 is a dseries object:
+
+   | -Variable_1
+1Y | -1
+@end example
+
+@end deftypefn
+
+@sp 1
+
+@deftypefn{dseries} {@var{D} =} vertcat (@var{A}, @var{B}[, ...])
+
+Overloads the @code{vertcat} Matlab/Octave method for @dseries
+objects. This method is used to append more observations to a @dseries
+object. Returns a @dseries object @var{D} containing the variables
+in @dseries objects passed as inputs. All the input arguments must
+be @dseries objects with the same variables defined on @emph{different
+time ranges}.
+
+@examplehead
+@example
+>> ts0 = dseries(rand(2,2),'1950Q1',@{'nifnif';'noufnouf'@});
+>> ts1 = dseries(rand(2,2),'1950Q3',@{'nifnif';'noufnouf'@});
+>> ts2 = [ts0; ts1]
+
+ts2 is a dseries object:
+
+       | nifnif   | noufnouf
+1950Q1 | 0.82558  | 0.31852
+1950Q2 | 0.78996  | 0.53406
+1950Q3 | 0.089951 | 0.13629
+1950Q4 | 0.11171  | 0.67865
+@end example
+
+@end deftypefn
+
+@deftypefn{dseries} {@var{B} =} ydiff (@var{A})
+@deftypefnx{dseries} {@var{B} =} ygrowth (@var{A})
+
+Computes yearly differences or growth rates.
+
+@end deftypefn
+
+@sp 1
+
+@node Reporting
+@chapter Reporting
+
+Dynare provides a simple interface for creating @LaTeX{} reports,
+comprised of @LaTeX{} tables and @code{PGFPLOTS/TikZ/PGF} graphs. You
+can use the report as created through Dynare or pick out the pieces
+(tables and graphs) you want for inclusion in your own paper. Though
+Dynare provides a subset of options available through @code{PGFPLOTS},
+you can easily modify the graphs created by Dynare using the options
+available in the @code{PGFPLOTS} manual.
+
+Reports are created and modified by calling methods on class
+objects. The objects are hierarchical, with the following order (from
+highest to lowest): @code{Report, Page, Section, Graph/Table/Vspace,
+Series}. For simplicity of syntax, we abstract away from these
+classes, allowing you to operate directly on a @code{Report} object,
+while maintaining the names of these classes in the @code{Report}
+Class methods you will use.
+
+The report is created sequentially, command by command, hence the
+order of the commands matters. When an object of a certain hierarchy
+is inserted, all methods will function on that object until an object
+of equal or greater hierarchy is added. Hence, once you add a
+@code{Page} to the report, every time you add a @code{Section} object,
+it will be added to this @code{Page} until another @code{Page} is
+added to the report (via @ref{addPage}). This will become more clear
+with the example at the end of the section.
+
+Options to the methods are passed differently than those to Dynare
+commands. They take the form of named options to Matlab functions
+where the arguments come in pairs (@i{e.g.}
+@code{function_name(`option_1_name', `option_1_value',
+`option_2_name', `option_2_value', ...)}, where @code{option_X_name}
+is the name of the option while @code{option_X_value} is the value
+assigned to that option). The ordering of the option pairs matters
+only in the unusual case when an option is provided twice (probably
+erroneously). In this case, the last value passed is the one that is
+used.
+
+Below, you will see a list of methods available for the Report class and
+a clarifying example.
+
+@defmethod Report report compiler, showDate, fileName, margin, marginUnit, orientation, paper, title
+Instantiates a @code{Report} object.
+@optionshead
+@table @code
+@anchor{compiler}
+@item compiler, @var{FILENAME}
+The full path to the @LaTeX{} compiler on your system. If this option
+is not provided, Dynare will try to find the appropriate program to
+compile @LaTeX{} on your system. Default is system dependent: Windows:
+the result of @code{findtexmf --file-type=exe pdflatex}, Mac OS X and
+Linux: the result of @code{which pdflatex}
+
+@item showDate, @code{BOOLEAN}
+Display the date and time when the report was compiled. Default:
+@code{true}
+
+@anchor{filename}
+@item fileName, @var{FILENAME}
+The file name to use when saving this report. Default:
+@code{report.tex}
+
+@item margin, @var{DOUBLE}
+The margin size. Default: @code{2.5}
+
+@item marginUnit, `cm' | `in'
+Units associated with the margin. Default: @code{`cm'}
+
+@anchor{orientation}
+@item orientation, `landscape' | `portrait'
+Paper orientation: Default: @code{`portrait'}
+
+@anchor{paper}
+@item paper, `a4' | `letter'
+Paper size. Default: @code{`a4'}
+
+@item title, @code{STRING}
+Report Title. Default: @code{none}
+@end table
+@end defmethod
+
+@anchor{addPage}
+@defmethod Report addPage footnote, orientation, paper, title, titleFormat
+Adds a @code{Page} to the @code{Report}.
+@optionshead
+@table @code
+@item footnote, @code{STRING}
+A footnote to be included at the bottom of this page. Default: @code{none}
+
+@item orientation, `landscape' | `portrait'
+@xref{orientation}.
+
+@item paper, `a4' | `letter'
+@xref{paper}.
+
+@anchor{title}
+@item title, @code{STRING} | @code{CELL_ARRAY_STRINGS}
+With one entry (a @code{STRING}), the title of the page. With more
+than one entry (a @code{CELL_ARRAY_STRINGS}), the title and subtitle(s)
+of the page. Default: @code{none}
+
+@anchor{titleFormat}
+@item titleFormat, @code{STRING} | @code{CELL_ARRAY_STRINGS}
+A string representing the @LaTeX{} markup to use on @ref{title}. The
+number of cell array entries must be equal to that of the @ref{title}
+option, if you do not want to use the default value for the title and
+subtitle(s). Default: @code{\large\bfseries}
+
+@end table
+@end defmethod
+
+@defmethod Report addSection cols, height
+Adds a @code{Section} to a @code{Page}.
+@optionshead
+@table @code
+@item cols, @code{INTEGER}
+The number of columns in the section. Default: @code{1}
+
+@item height, @code{STRING}
+A string to be used with the @code{\sectionheight} @LaTeX{}
+command. Default: @code{`!'}
+@end table
+@end defmethod
+
+@defmethod Report addGraph data, graphDirName, graphName, graphSize, height, showGrid, showLegend, showLegendBox, legendLocation, legendOrientation, legendFontSize, seriesToUse, shade, shadeColor, shadeOpacity, title, width, xlabel, ylabel, xAxisTight, xrange, xTicks, xTickLabels, xTickLabelAnchor, xTickLabelRotation, yAxisTight, yrange, showZeroline
+Adds a @code{Graph} to a @code{Section}.
+@optionshead
+@table @code
+@anchor{data}
+@item data, @code{dseries}
+The @code{dseries} that provides the data for the graph. Default:
+@code{none}
+
+@item graphDirName, @code{STRING}
+The name of the folder in which to store this figure. Default:
+@code{tmpRepDir}
+
+@item graphName, @code{STRING}
+The name to use when saving this figure. Default: something of the
+form @code{graph_pg1_sec2_row1_col3.tex}
+
+@item graphSize, @code{NUMERICAL_VECTOR}
+The width and height to be passed to the third and fourth elements of
+the array passed to the @code{`Position'} option of Matlab's
+@code{figure} command, passed as a vector of size @math{2}. Default:
+Matlab sets width and height
+
+@item height, @code{DOUBLE}
+The height of the graph, in inches. Default: @code{4.5}
+
+@item showGrid, @code{BOOLEAN}
+Whether or not to display the major grid on the graph. Default:
+@code{true}
+
+@item showLegend, @code{BOOLEAN}
+Whether or not to display the legend. Default: @code{false}
+
+@item showLegendBox, @code{BOOLEAN}
+Whether or not to display a box around the legend. Default:
+@code{false}
+
+@item legendLocation, @code{`south west'} | @code{`south east'} | @code{`north west'} | @code{`north east'} | @code{`outer north east'}
+Where to place the legend in the graph. Default: @code{`south east'}
+
+@item legendOrientation, `vertical' | `horizontal'
+Orientation of the legend. Default: @code{`horizontal'}
+
+@item legendFontSize, @code{`tiny'} | @code{`scriptsize'} | @code{`footnotesize'} | @code{`small'} | @code{`normalsize'} | @code{`large'} | @code{`Large'} | @code{`LARGE'} | @code{`huge'} | @code{`Huge'}
+The font size for legend entries. Default: @code{tiny}
+
+@anchor{seriesToUse}
+@item seriesToUse, @code{CELL_ARRAY_STRINGS}
+The names of the series contained in the @code{dseries} provided to
+the @ref{data} option. If empty, use all series provided to
+@ref{data} option. Default: @code{empty}
+
+@anchor{shade}
+@item shade, @code{dates}
+The date range showing the portion of the graph that should be
+shaded. Default: @code{none}
+
+@item shadeColor, @code{`red'} | @code{`green'} | @code{`blue'} | @code{`cyan'} | @code{`magenta'} | @code{`yellow'} | @code{`black'} | @code{`gray'} | @code{`darkgray'} | @code{`lightgray'} | @code{`brown'} | @code{`lime'} | @code{`olive'} | @code{`orange'} | @code{`pink'} | @code{`purple'} | @code{`teal'} | @code{`violet'} | @code{`white'}
+The color to use in the shaded portion of the graph. Default:
+@code{`green'}
+
+@item shadeOpacity, @code{DOUBLE}
+The opacity of the shaded area, must be in @math{[0,100]}. Default: @code{20}
+
+@anchor{graph.title}
+@item title, @code{STRING} | @code{CELL_ARRAY_STRINGS}
+Same as @ref{title}, just for graphs.
+
+@item titleFormat, @code{STRING}
+The format to use for @ref{graph.title,,the graph title}. Unlike
+@ref{titleFormat}, due to a constraint of TikZ, this format applies to
+the title and subtitles. Default: @code{TikZ default}
+
+@item width, @code{DOUBLE}
+The width of the graph, in inches. Default: @code{6.0}
+
+@item xlabel, @code{STRING}
+The x-axis label. Default: @code{none}
+
+@item ylabel, @code{STRING}
+The y-axis label. Default: @code{none}
+
+@item xAxisTight, @code{BOOLEAN}
+Use a tight x axis. If false, uses pgfplots @code{enlarge x limits} to
+choose appropriate axis size. Default: @code{true}
+
+@item xrange, @code{dates}
+The boundary on the x-axis to display in the graph. Default: all
+
+@anchor{xTicks}
+@item xTicks, @code{NUMERICAL_VECTOR}
+Used only in conjunction with @ref{xTickLabels}, this option denotes
+the numerical position of the label along the x-axis. The positions
+begin at @math{1}. Default: the indices associated with the first and
+last dates of the @code{dseries} and, if passed, the index associated
+with the first date of the @ref{shade} option.
+
+@anchor{xTickLabels}
+@item xTickLabels, @code{CELL_ARRAY_STRINGS} | `ALL'
+The labels to be mapped to the ticks provided by
+@ref{xTicks}. Default: the first and last dates of the @code{dseries}
+and, if passed, the date first date of the @ref{shade} option.
+
+@item xTickLabelAnchor, @code{STRING}
+Where to anchor the x tick label. Default: @code{`south'}
+
+@item xTickLabelRotation, @code{DOUBLE}
+The amount to rotate the x tick labels by. Default: @code{0}
+
+@item yAxisTight, @code{BOOLEAN}
+Use a tight y axis. If false, uses pgfplots @code{enlarge y limits} to
+choose appropriate axis size. Default: @code{false}
+
+@item yrange, @code{NUMERICAL_VECTOR}
+The boundary on the y-axis to display in the graph, represented as a
+@code{NUMERICAL_VECTOR} of size @math{2}, with the first entry less
+than the second entry. Default: all
+
+@item showZeroline, @code{BOOLEAN}
+Display a solid black line at @math{y = 0}. Default: @code{false}
+
+@end table
+@end defmethod
+
+@defmethod Report addTable data, showHlines, precision, range, seriesToUse, tableDirName, tableName, title, titleFormat, vlineAfter, vlineAfterEndOfPeriod, showVlines
+Adds a @code{Table} to a @code{Section}.
+@optionshead
+@table @code
+
+@item data, @code{dseries}
+@xref{data}.
+
+@item showHlines, @code{BOOLEAN}
+Whether or not to show horizontal lines separating the rows. Default: @code{false}
+
+@item precision, @code{INTEGER}
+The number of decimal places to report in the table data. Default: @code{1}
+
+@item range, @code{dates}
+The date range of the data to be displayed. Default: @code{all}
+
+@item seriesToUse, @code{CELL_ARRAY_STRINGS}
+@xref{seriesToUse}.
+
+@item tableDirName, @code{STRING}
+The name of the folder in which to store this table. Default:
+@code{tmpRepDir}
+
+@item tableName, @code{STRING}
+The name to use when saving this table. Default: something of the
+form @code{table_pg1_sec2_row1_col3.tex}
+
+@item title, @code{STRING}
+Same as @ref{title}, just for tables.
+
+@item titleFormat, @code{STRING}
+Same as @ref{titleFormat}, just for tables. Default: @code{\large}.
+
+@item vlineAfter, @code{dates} | @code{CELL_ARRAY_DATES}
+Show a vertical line after the specified date (or dates if a cell
+array of dates is passed). Default: @code{empty}
+
+@item vlineAfterEndOfPeriod, @code{BOOLEAN}
+Show a vertical line after the end of every period (@i{i.e.} after
+every year, after the fourth quarter, etc.). Default: @code{false}
+
+@item showVlines, @code{BOOLEAN}
+Whether or not to show vertical lines separating the columns. Default: @code{false}
+@end table
+@end defmethod
+
+@anchor{addSeries}
+@defmethod Report addSeries data, graphLineColor, graphLineStyle, graphLineWidth, graphMarker, graphMarkerEdgeColor, graphMarkerFaceColor, graphMarkerSize, tableDataRhs, tableRowColor, tableRowIndent, tableShowMarkers, tableAlignRight, tableNegColor, tablePosColor, tableSubSectionHeader, zeroTol
+Adds a @code{Series} to a @code{Graph} or a @code{Table}.
+@optionshead
+@table @code
+
+@item data, @code{dseries}
+@xref{data}.
+
+@item graphLineColor, @code{`red'} | @code{`green'} | @code{`blue'} | @code{`cyan'} | @code{`magenta'} | @code{`yellow'} | @code{`black'} | @code{`gray'} | @code{`darkgray'} | @code{`lightgray'} | @code{`brown'} | @code{`lime'} | @code{`olive'} | @code{`orange'} | @code{`pink'} | @code{`purple'} | @code{`teal'} | @code{`violet'} | @code{`white'}
+Color to use for the series in a graph. Default: @code{`black'}
+
+@item graphLineStyle, @code{`none'} | @code{`solid'} | @code{`dotted'} | @code{`densely dotted'} | @code{`loosely dotted'} | @code{`dashed'} | @code{`densely dashed'} | @code{`loosely dashed'} | @code{`dashdotted'} | @code{`densely dashdotted'} | @code{`loosely dashdotted'} | @code{`dashdotdotted'} | @code{`densely dashdotdotted'} | @code{`loosely dashdotdotted'}
+Line style for this series in a graph. Default: @code{`solid'}
+
+@item graphLineWidth @code{DOUBLE}
+Line width for this series in a graph. Default: @code{0.5}
+
+@item graphMarker, @code{`x'} | @code{`+'} | @code{`-'} | @code{`|'} | @code{`o'} | @code{`asterisk'} | @code{`star'} | @code{`10-pointed star'} | @code{`oplus'} | @code{`oplus*'} | @code{`otimes'} | @code{`otimes*'} | @code{`square'} | @code{`square*'} | @code{`triangle'} | @code{`triangle*'} | @code{`diamond'} | @code{`diamond*'} | @code{`halfdiamond*'} | @code{`halfsquare*'} | @code{`halfsquare right*'} | @code{`halfsquare left*'} | @code{`Mercedes star'} | @code{`Mercedes star flipped'} | @code{`halfcircle'} | @code{`halfcircle*'} | @code{`pentagon'} | @code{`pentagon star'}
+The Marker to use on this series in a graph. Default: @code{none}
+
+@item graphMarkerEdgeColor, @code{`red'} | @code{`green'} | @code{`blue'} | @code{`cyan'} | @code{`magenta'} | @code{`yellow'} | @code{`black'} | @code{`gray'} | @code{`darkgray'} | @code{`lightgray'} | @code{`brown'} | @code{`lime'} | @code{`olive'} | @code{`orange'} | @code{`pink'} | @code{`purple'} | @code{`teal'} | @code{`violet'} | @code{`white'}
+The edge color of the graph marker. Default: @code{graphLineColor}
+
+@item graphMarkerFaceColor, @code{`red'} | @code{`green'} | @code{`blue'} | @code{`cyan'} | @code{`magenta'} | @code{`yellow'} | @code{`black'} | @code{`gray'} | @code{`darkgray'} | @code{`lightgray'} | @code{`brown'} | @code{`lime'} | @code{`olive'} | @code{`orange'} | @code{`pink'} | @code{`purple'} | @code{`teal'} | @code{`violet'} | @code{`white'}
+The face color of the graph marker. Default: @code{graphLineColor}
+
+@item graphMarkerSize, @code{DOUBLE}
+The size of the graph marker. Default: @code{1}
+
+@item tableDataRhs, @code{dseries}
+A series to be added to the right of the current series. Usefull for
+displaying aggregate data for a series. @i{e.g} if the series is
+quarterly @code{tableDataRhs} could point to the yearly averages of
+the quarterly series. This would cause quarterly data to be displayed
+followed by annual data. Default: @code{empty}
+
+@item tableRowColor, @code{STRING}
+The color that you want the row to be. Predefined values include
+@code{LightCyan} and @code{Gray}. Default: @code{white}.
+
+@item tableRowIndent, @code{INTEGER}
+The number of times to indent the name of the series in the
+table. Used to create subgroups of series. Default: @code{0}
+
+@item tableShowMarkers, @code{BOOLEAN}
+In a Table, if @code{true}, surround each cell with brackets and color
+it according to @ref{tableNegColor} and @ref{tablePosColor}. No effect
+for graphs. Default: @code{false}
+
+@item tableAlignRight, @code{BOOLEAN}
+Whether or not to align the series name to the right of the
+cell. Default: @code{false}
+
+@item tableMarkerLimit, @code{DOUBLE}
+For values less than @math{-1*@code{tableMarkerLimit}}, mark the cell
+with the color denoted by @ref{tableNegColor}. For those greater than
+@code{tableMarkerLimit}, mark the cell with the color denoted by
+@ref{tablePosColor}. Default: @code{1e-4}
+
+@anchor{tableNegColor}
+@item tableNegColor, @code{LATEX_COLOR}
+The color to use when marking Table data that is less than
+zero. Default: @code{`red'}
+
+@anchor{tablePosColor}
+@item tablePosColor, @code{LATEX_COLOR}
+The color to use when marking Table data that is greater than
+zero. Default: @code{`blue'}
+
+@item tableSubSectionHeader, @code{STRING}
+A header for a subsection of the table. No data will be associated
+with it. It is equivalent to adding an empty series with a
+name. Default: @code{''}
+
+@item zeroTol, @code{DOUBLE}
+The zero tolerance. Anything smaller than @code{zeroTol} and larger
+than @code{-zeroTol} will be set to zero before being
+graphed. Default: @math{1e-6}
+
+@end table
+@end defmethod
+
+@defmethod Report addVspace hline, number
+Adds a @code{Vspace} (vertical space) to a @code{Section}.
+@optionshead
+@table @code
+@item hline, @code{INTEGER}
+The number of horizontal lines to be inserted. Default: @code{0}
 
 @item number, @code{INTEGER}
 The number of new lines to be inserted. Default: @code{1}
@@ -8487,29 +11447,30 @@ The following code creates a one page report. The first part of the
 page contains two graphs displayed across two columns and one
 row. The bottom of the page displays a centered table.
 @example
-%% Create dynSeries
-dsq = dynSeries(`quarterly.csv');
-dsa = dynSeries(`annual.csv');
-dsca = dynSeries(`annual_control.csv');
+%% Create dseries
+dsq = dseries(`quarterly.csv');
+dsa = dseries(`annual.csv');
+dsca = dseries(`annual_control.csv');
 
 %% Report
 rep = report();
 
 %% Page 1
-rep = rep.addPage(`title', `My Page Title', `titleFormat', `\large\bfseries');
+rep = rep.addPage(`title', @{`My Page Title', `My Page Subtitle'@}, ...
+                  `titleFormat', @{`\large\bfseries', `\large'@});
 
 % Section 1
 rep = rep.addSection(`cols', 2);
 rep = rep.addGraph(`title', `Graph (1,1)', `showLegend', true, ...
-                   `xrange', dynDate(`2007q1'):dynDate(`2013q4'), ...
-                   `shade', dynDate(`2012q2'):dynDate(`2013q4'));
+                   `xrange', dates(`2007q1'):dates(`2013q4'), ...
+                   `shade', dates(`2012q2'):dates(`2013q4'));
 rep = rep.addSeries(`data', dsq@{`SERIES1'@}, `color', `b', ...
                     `graphLineWidth', 1);
 rep = rep.addSeries(`data', dsq@{`SERIES2'@}, `color', `g', ...
                     `graphLineStyle', '--', `graphLineWidth', 1.5);
 rep = rep.addGraph(`title', `Graph (1,2)', `showLegend', true, ...
-                   `xrange', dynDate(`2007q1'):dynDate(`2013q4'), ...
-                   `shade', dynDate(`2012q2'):dynDate(`2013q4'));
+                   `xrange', dates(`2007q1'):dates(`2013q4'), ...
+                   `shade', dates(`2012q2'):dates(`2013q4'));
 rep = rep.addSeries(`data', dsq@{`SERIES3'@}, `color', `b', ...
                     `graphLineWidth', 1);
 rep = rep.addSeries(`data', dsq@{`SERIES4'@}, `color', `g', ...
@@ -8518,7 +11479,7 @@ rep = rep.addSeries(`data', dsq@{`SERIES4'@}, `color', `g', ...
 % Section 2
 rep = rep.addSection();
 rep = rep.addTable(`title', `Table 1', ...
-                   `range', dynDate(`2012'):dynDate(`2014'));
+                   `range', dates(`2012Y'):dates(`2014Y'));
 shortNames = @{`US', `EU'@};
 longNames  = @{`United States', `Euro Area'@};
 for i=1:length(shortNames)
@@ -8559,8 +11520,12 @@ Two examples of a small RBC model in a stochastic setup, presented in
 @cite{Collard (2001)} (see the file @file{guide.pdf} which comes with
 Dynare).
 
+@item example3.mod
+A small RBC model in a stochastic setup, presented in
+@cite{Collard (2001)}. The steady state is solved analytically using the  @code{steady_state_model} block (@pxref{steady_state_model}).
+
 @item fs2000.mod
-A cash in advance model, estimated by @cite{Schorfheide (2000)}.
+A cash in advance model, estimated by @cite{Schorfheide (2000)}. The file shows how to use Dynare for estimation.
 
 @item fs2000_nonstationary.mod
 The same model than @file{fs2000.mod}, but written in non-stationary
@@ -8568,66 +11533,113 @@ form. Detrending of the equations is done by Dynare.
 
 @item bkk.mod
 Multi-country RBC model with time to build, presented in @cite{Backus,
-Kehoe and Kydland (1992)}.
+Kehoe and Kydland (1992)}. The file shows how to use Dynare's macro-processor.
 
 @item agtrend.mod
 Small open economy RBC model with shocks to the growth trend, presented
 in @cite{Aguiar and Gopinath (2004)}.
 
-@end table
-
-@node Dynare internal documentation and unitary tests
-@chapter Dynare internal documentation and unitary tests
+@item NK_baseline.mod
+Baseline New Keynesian Model estimated in @cite{Fernández-Villaverde (2010)}. It demonstrates how to use an explicit steady state file to update parameters and call a numerical solver.
 
-One can obtain internal documentation of matlab/octave's routines or perform unitary tests
-using the @code{internals} command. This is a new feature, and, at this time, will work properly for
-a small number of routines. At the top of the (available) matlab/octave routines a commented block for
-the internal documentation is written in the GNU texinfo documentation format. This block is
-processed by calling texinfo from matlab. Consequently, texinfo has to be installed
-on your machine.
+@end table
 
-@deffn {MATLAB/Octave command} internals @var{FLAG} @var{ROUTINENAME}[.m]
+@node Dynare misc commands
+@chapter Dynare misc commands
 
-@descriptionhead
+@anchor{internals}
+@deffn {MATLAB/Octave command} internals @var{FLAG} @var{ROUTINENAME}[.m]|@var{MODFILENAME}
 
-Depending on the @var{FLAG} this command prints internal documentation of a matlab/octave
-routine or triggers unitary tests associated to this routine.
+Depending on the value of @var{FLAG}, the @code{internals} command can be used to run unitary tests specific to a Matlab/Octave routine (if available), to display documentation about a Matlab/Octave routine, or to extract some informations about the state of Dynare.
 
 @flagshead
 
 @table @code
 
-@item --info
-Prints on screen the internal documentation of @var{ROUTINENAME} (if this routine exists and if this
-routine has texinfo internal documentation header). If the command is executed in the matlab directory
-of Dynare, then the path to @var{ROUTINENAME} has to be provided.
-
 @item --test
-Performs the unitary test associated to  @var{ROUTINENAME} (if this routine exists and if the matalab/octave m
+Performs the unitary test associated to  @var{ROUTINENAME} (if this routine exists and if the matalab/octave @code{m}
 file has unitary test sections).
+@examplehead
+@example
+>> internals --test ROUTINENAME
+@end example
+if @code{routine.m} is  not in the current directory, the  full path has
+to be given:
+@example
+>> internals --test ../matlab/fr/ROUTINENAME
+@end example
 
-@end table
-
+@item --info
+Prints  on screen  the internal  documentation of  @var{ROUTINENAME} (if
+this  routine  exists  and  if  this  routine  has  a  texinfo  internal
+documentation header). The path to @var{ROUTINENAME} has to be provided,
+if the routine is not in the current directory.
+@examplehead
+@example
+>> internals --doc ../matlab/fr/ROUTINENAME
+@end example
+At this time, will work properly for only a small number of routines. At
+the top of the (available)  Matlab/Octave routines a commented block for
+the internal documentation  is written in the  GNU texinfo documentation
+format.   This   block   is    processed   by   calling   texinfo   from
+MATLAB. Consequently, texinfo has to be installed on your machine.
+
+@item --display-mh-history
+Displays information about the previously saved MCMC draws generated by a mod file named @var{MODFILENAME}. This file must be in the current directory.
 @examplehead
+@example
+>> internals --display-mh-history MODFILENAME
+@end example
 
+@item --load-mh-history
+Loads into the Matlab/Octave's workspace informations  about the previously saved MCMC draws generated by a mod file named @var{MODFILENAME}.
+@examplehead
 @example
-internals --info particle/local_state_iteration
-internals --test particle/local_state_iteration
+>> internals --load-mh-history MODFILENAME
 @end example
+This will create a structure called @code{mcmc_informations} (in the workspace) with the following fields:
+@table @code
+@item Nblck
+The number of MCMC chains.
+@item InitialParameters
+A @code{Nblck*n}, where @code{n} is the number of estimated parameters, array of doubles. Initial state of the MCMC.
+@item LastParameters
+A @code{Nblck*n}, where @code{n} is the number of estimated parameters, array of doubles. Current state of the MCMC.
+@item InitialLogPost
+A @code{Nblck*1} array of doubles. Initial value of the posterior kernel.
+@item LastLogPost
+A @code{Nblck*1} array of doubles. Current value of the posterior kernel.
+@item InitialSeeds
+A @code{1*Nblck} structure array. Initial state of the random number generator.
+@item LastSeeds
+A @code{1*Nblck} structure array. Current  state of the random number generator.
+@item AcceptanceRatio
+A @code{1*Nblck} array of doubles. Current acceptance ratios.
+@end table
+
+@end table
 
 @end deffn
 
+
 @node Bibliography
 @chapter Bibliography
 
 @itemize
 
+@item
+Abramowitz, Milton and Irene A. Stegun (1964): ``Handbook of Mathematical Functions'', Courier Dover Publications
+
+@item
+Adjemian, Stéphane, Matthieu Darracq Parriès and Stéphane Moyen (2008): ``Towards a monetary policy evaluation framework'',
+@i{European Central Bank Working Paper}, 942
+
 @item
 Aguiar, Mark and Gopinath, Gita (2004): ``Emerging Market Business
 Cycles: The Cycle is the Trend,'' @i{NBER Working Paper}, 10734
 
 @item
-Andreasen, Martin M., Fernández-Villaverde, Jesús and Juan Rubio-Ramírez (2013): ``The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,'' @i{NBER Working Paper}, 18983
+Andreasen, Martin M., Jesús Fernández-Villaverde, and Juan Rubio-Ramírez (2013): ``The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,'' @i{NBER Working Paper}, 18983
 
 @item
 Backus, David K., Patrick J. Kehoe, and Finn E. Kydland (1992):
@@ -8644,6 +11656,9 @@ Brooks,  Stephen P.,  and Andrew  Gelman (1998):  ``General methods  for
 monitoring  convergence   of  iterative  simulations,''   @i{Journal  of
 computational and graphical statistics}, 7, pp. 434--455
 
+@item
+Cardoso, Margarida F., R. L. Salcedo and S. Feyo de Azevedo (1996): ``The simplex simulated annealing approach to continuous non-linear optimization,'' @i{Computers chem. Engng}, 20(9), 1065-1080
+
 @item
 Collard, Fabrice (2001): ``Stochastic simulations with Dynare: A practical guide''
 
@@ -8664,14 +11679,18 @@ Christiano, Lawrence J., Mathias Trabandt and Karl Walentin (2011):
 economy model,'' @i{Journal of Economic Dynamics and Control}, 35(12),
 1999--2041
 
+@item
+Del Negro, Marco and Franck Schorfheide (2004): ``Priors from General Equilibrium Models for VARS'',
+@i{International Economic Review}, 45(2), 643--673
+
 @item
 Dennis, Richard (2007): ``Optimal Policy In Rational Expectations
 Models: New Solution Algorithms,'' @i{Macroeconomic Dynamics}, 11(1),
 31--55
 
 @item
-Durbin, J. and S. J. Koopman (2001), @i{Time Series Analysis by State
-Space Methods}, Oxford University Press
+Durbin, J. and S. J. Koopman (2012), @i{Time Series Analysis by State
+Space Methods}, Second Revised Edition, Oxford University Press
 
 @item
 Fair, Ray and John Taylor (1983): ``Solution and Maximum Likelihood
@@ -8688,6 +11707,20 @@ Fernández-Villaverde, Jesús and Juan Rubio-Ramírez (2005): ``Estimating
 Dynamic Equilibrium Economies: Linear versus Nonlinear Likelihood,''
 @i{Journal of Applied Econometrics}, 20, 891--910
 
+@item
+Fernández-Villaverde, Jesús (2010): ``The econometrics of DSGE models,''
+@i{SERIEs}, 1, 3--49
+
+@item
+Geweke, John (1992): ``Evaluating the accuracy of sampling-based approaches
+to the calculation of posterior moments,'' in J.O. Berger, J.M. Bernardo,
+A.P. Dawid, and A.F.M. Smith (eds.) Proceedings of the Fourth Valencia
+International Meeting on Bayesian Statistics, pp. 169--194, Oxford University Press
+
+@item
+Geweke, John (1999): ``Using simulation methods for Bayesian econometric models:
+Inference, development and communication,'' @i{Econometric Reviews}, 18(1), 1--73
+
 @item
 Ireland, Peter (2004): ``A Method for Taking Models to the Data,''
 @i{Journal of Economic Dynamics and Control}, 28, 1205--26
@@ -8737,6 +11770,9 @@ Pearlman, Joseph, David Currie, and Paul Levine (1986): ``Rational
 expectations models with partial information,'' @i{Economic
 Modelling}, 3(2), 90--105
 
+@item
+Pfeifer, Johannes (2013): ``A Guide to Specifying Observation Equations for the Estimation of DSGE Models''
+
 @item
 Rabanal, Pau and Juan Rubio-Ramirez (2003): ``Comparing New Keynesian
 Models of the Business Cycle: A Bayesian Approach,'' Federal Reserve
diff --git a/dynare++/parser/cc/atom_assignings.cpp b/dynare++/parser/cc/atom_assignings.cpp
index 7335c9003d5f54b9799c10198a9887470429c0e0..7b688f259a918b4218d982e556ab3ecb77629d22 100644
--- a/dynare++/parser/cc/atom_assignings.cpp
+++ b/dynare++/parser/cc/atom_assignings.cpp
@@ -9,6 +9,7 @@
 #include "utils/cc/exception.h"
 
 #include <limits>
+#include <iostream>
 
 using namespace ogp;
 
diff --git a/examples/NK_baseline.mod b/examples/NK_baseline.mod
index fde80648a7d6d51b3a70841570b819dfacb29ce3..1775508a18c3a9ecb6e299d1252d953dacb8617d 100644
--- a/examples/NK_baseline.mod
+++ b/examples/NK_baseline.mod
@@ -15,7 +15,14 @@
  * equations. Moreover, it makes use of a steady state file to i) set 
  * parameters that depend on other parameters that are potentially estimated
  * and ii) solve a nonlinear equation using a numerical solver to find the steady
- * state of labor.
+ * state of labor. It provides an example on how the steady state file can be used
+ * to circumvent some of the limitation of Dynare mod-file by accessing an external
+ * file that allows calling general Matlab routines. These capacities will mostly be 
+ * interesting for power users. If one just wants to provide analytical steady state 
+ * values and update parameters, the steady_state_model-block allows an easy and convenient
+ * alternative. It even allows calling numerical solvers like fsolve. For an example, see
+ * example3.mod
+ * 
  * The model is written in the beginning of period stock notation. To make the model
  * conform with Dynare's end of period stock notation, we use the 
  * predetermined_variables-command.
diff --git a/examples/NK_baseline_steadystate.m b/examples/NK_baseline_steadystate.m
index d1c159f5e5734b6da22ca2a9e6cad72e5476bd7c..1ec7aa0552a25d9f6104f087acc15b6d0905f2f4 100644
--- a/examples/NK_baseline_steadystate.m
+++ b/examples/NK_baseline_steadystate.m
@@ -1,14 +1,27 @@
-function [ys,check] = NK_baseline_steadystate(ys,exe)
-global M_ lgy_
-
-if isfield(M_,'param_nbr') == 1
+function [ys,check] = NK_baseline_steadystate(ys,exo)
+% function [ys,check] = NK_baseline_steadystate(ys,exo)
+% computes the steady state for the NK_baseline.mod and uses a numerical
+% solver to do so
+% Inputs: 
+%   - ys        [vector] vector of initial values for the steady state of
+%                   the endogenous variables
+%   - exo       [vector] vector of values for the exogenous variables
+%
+% Output: 
+%   - ys        [vector] vector of steady state values fpr the the endogenous variables
+%   - check     [scalar] set to 0 if steady state computation worked and to
+%                    1 of not (allows to impos restriction on parameters)
+
+global M_ 
+
+% read out parameters to access them with their name
 NumberOfParameters = M_.param_nbr;
-for i = 1:NumberOfParameters
-  paramname = deblank(M_.param_names(i,:));
-  eval([ paramname ' = M_.params(' int2str(i) ');']);
+for ii = 1:NumberOfParameters
+  paramname = deblank(M_.param_names(ii,:));
+  eval([ paramname ' = M_.params(' int2str(ii) ');']);
 end
+% initialize indicator
 check = 0;
-end
 
 
 %% Enter model equations here
@@ -32,6 +45,11 @@ Lambdax=mu_z;
 
 %set the parameter gammma1
 gammma1=mu_z*mu_I/betta-(1-delta);
+if gammma1<0 % parameter violates restriction; Preventing this cannot be implemented via prior restriction as it is a composite of different parameters and the valid prior region has unknown form
+    check=1; %set failure indicator
+    return; %return without updating steady states
+end
+
 
 r=1*gammma1;
 R=1+(PI*mu_z/betta-1);
@@ -49,9 +67,17 @@ vp=(1-thetap)/(1-thetap*PI^((1-chi)*epsilon))*PIstar^(-epsilon);
 vw=(1-thetaw)/(1-thetaw*PI^((1-chiw)*eta)*mu_z^eta)*PIstarw^(-eta);
 tempvaromega=alppha/(1-alppha)*w/r*mu_z*mu_I;
 
-ld=fsolve(@(ld)(1-betta*thetaw*mu_z^(eta-1)*PI^(-(1-chiw)*(1-eta)))/(1-betta*thetaw*mu_z^(eta*(1+gammma))*PI^(eta*(1-chiw)*(1+gammma)))...
+[ld,fval,exitflag]=fsolve(@(ld)(1-betta*thetaw*mu_z^(eta-1)*PI^(-(1-chiw)*(1-eta)))/(1-betta*thetaw*mu_z^(eta*(1+gammma))*PI^(eta*(1-chiw)*(1+gammma)))...
 -(eta-1)/eta*wstar/(varpsi*PIstarw^(-eta*gammma)*ld^gammma)*((1-h*mu_z^(-1))^(-1)-betta*h*(mu_z-h)^(-1))*...
 ((mu_A*mu_z^(-1)*vp^(-1)*tempvaromega^alppha-tempvaromega*(1-(1-delta)*(mu_z*mu_I)^(-1)))*ld-vp^(-1)*Phi)^(-1),0.25,options);
+if exitflag <1
+    %indicate the SS computation was not sucessful; this would also be detected by Dynare
+    %setting the indicator here shows how to use this functionality to
+    %filter out parameter draws
+    check=1; %set failure indicator
+    return; %return without updating steady states
+end
+
 
 l=vw*ld;
 k=tempvaromega*ld;
@@ -68,27 +94,12 @@ g2=epsilon/(epsilon-1)*g1;
 
 %% end own model equations
 
-
-for iter = 1:length(M_.params)
+for iter = 1:length(M_.params) %update parameters set in the file
   eval([ 'M_.params(' num2str(iter) ') = ' M_.param_names(iter,:) ';' ])
 end
 
-if isfield(M_,'param_nbr') == 1
-
-if isfield(M_,'orig_endo_nbr') == 1
-NumberOfEndogenousVariables = M_.orig_endo_nbr;
-else
-NumberOfEndogenousVariables = M_.endo_nbr;
-end
-ys = zeros(NumberOfEndogenousVariables,1);
-for i = 1:NumberOfEndogenousVariables
-  varname = deblank(M_.endo_names(i,:));
-  eval(['ys(' int2str(i) ') = ' varname ';']);
-end
-else
-ys=zeros(length(lgy_),1);
-for i = 1:length(lgy_)
-    ys(i) = eval(lgy_(i,:));
-end
-check = 0;
+NumberOfEndogenousVariables = M_.orig_endo_nbr; %auxiliary variables are set automatically
+for ii = 1:NumberOfEndogenousVariables
+  varname = deblank(M_.endo_names(ii,:));
+  eval(['ys(' int2str(ii) ') = ' varname ';']);
 end
diff --git a/examples/example3.mod b/examples/example3.mod
new file mode 100644
index 0000000000000000000000000000000000000000..77dd3ffc04de29ea3113b52500daf4bbe3aff18a
--- /dev/null
+++ b/examples/example3.mod
@@ -0,0 +1,88 @@
+/*
+ * Example 1 from F. Collard (2001): "Stochastic simulations with DYNARE:
+ * A practical guide" (see "guide.pdf" in the documentation directory).
+ * 
+ * This file uses the steady_state_model-block to provide analytical steady state values.
+ * To do so, the equations of the model have been transformed into a non-linear equation in 
+ * labor h. Within the steady_state_model-block, a helper function is called that uses fsolve
+ * to solve this non-linear equation. The use of the helper function is necessary to avoid 
+ * interference of the Matlab syntax with Dynare's preprocessor. A more complicated alternative 
+ * that provides more flexibility in the type of commands executed and functions called is the use 
+ * of an explicit steady state file. See the NK_baseline.mod in the Examples Folder.
+ * 
+ * This mod-file also shows how to use Dynare's capacities to generate TeX-files of the model equations. 
+ * If you want to see the model equations belonging to this mod-file, run it using Dynare 
+ * and then use a TeX-editor to compile the TeX-files generated.
+ */
+
+/*
+ * Copyright (C) 2013 Dynare Team
+ *
+ * This file is part of Dynare.
+ *
+ * Dynare 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.
+ *
+ * Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+var y, c, k, a, h, b;
+varexo e, u;
+
+parameters beta $\beta$
+     rho $\rho$
+     alpha $\alpha$
+     delta $\delta$
+     theta $\theta$
+     psi $\psi$
+     tau $\tau$;
+
+alpha = 0.36;
+rho   = 0.95;
+tau   = 0.025;
+beta  = 0.99;
+delta = 0.025;
+psi   = 0;
+theta = 2.95;
+
+phi   = 0.1;
+
+model;
+c*theta*h^(1+psi)=(1-alpha)*y;
+k = beta*(((exp(b)*c)/(exp(b(+1))*c(+1)))
+    *(exp(b(+1))*alpha*y(+1)+(1-delta)*k));
+y = exp(a)*(k(-1)^alpha)*(h^(1-alpha));
+k = exp(b)*(y-c)+(1-delta)*k(-1);
+a = rho*a(-1)+tau*b(-1) + e;
+b = tau*a(-1)+rho*b(-1) + u;
+end;
+
+steady_state_model;
+h=example3_steady_state_helper(alpha,beta,delta,psi,theta);
+k=((1/beta-(1-delta))/alpha)^(1/(alpha-1))*h;
+y = k^alpha*h^(1-alpha);
+c=(1-alpha)*y/(theta*h^(1+psi));
+a=0;
+b=0;
+end;
+
+shocks;
+var e; stderr 0.009;
+var u; stderr 0.009;
+var e, u = phi*0.009*0.009;
+end;
+
+//use command to generate TeX-Files with dynamic and static model equations
+write_latex_dynamic_model;
+write_latex_static_model;
+
+stoch_simul;
diff --git a/examples/example3_steady_state_helper.m b/examples/example3_steady_state_helper.m
new file mode 100644
index 0000000000000000000000000000000000000000..65c47f45f8ab1480173d9fa483d42f1f3fb72e1d
--- /dev/null
+++ b/examples/example3_steady_state_helper.m
@@ -0,0 +1,5 @@
+function h=example3_steady_state_helper(alpha,beta,delta,psi,theta)
+options=optimset('Display','Final','TolX',1e-10,'TolFun',1e-10);
+h=fsolve(@(h)1- ((((((1/beta-(1-delta))/alpha)^(1/(alpha-1))*h)^(alpha-1))*(h^(1-alpha))-(((1-alpha)*((((1/beta-(1-delta))/alpha)^(1/(alpha-1)))^alpha))/(theta*h^psi))/(((1/beta-(1-delta))/alpha)^(1/(alpha-1))*h))+(1-delta)),0.2,options);
+
+
diff --git a/examples/fs2000.mod b/examples/fs2000.mod
index 14e78d91078438e14d110735fe0997738144905a..8717fbeb8ee9b190676ce7205cb8134f6cbcf1bf 100644
--- a/examples/fs2000.mod
+++ b/examples/fs2000.mod
@@ -65,28 +65,37 @@ gy_obs = dA*y/y(-1);
 gp_obs = (P/P(-1))*m(-1)/dA;
 end;
 
-initval;
-k = 6;
-m = mst;
-P = 2.25;
-c = 0.45;
-e = 1;
-W = 4;
-R = 1.02;
-d = 0.85;
-n = 0.19;
-l = 0.86;
-y = 0.6;
-gy_obs = exp(gam);
-gp_obs = exp(-gam);
-dA = exp(gam);
-end;
-
 shocks;
 var e_a; stderr 0.014;
 var e_m; stderr 0.005;
 end;
 
+steady_state_model;
+  dA = exp(gam);
+  gst = 1/dA;
+  m = mst;
+  khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1));
+  xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1);
+  nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp );
+  n  = xist/(nust+xist);
+  P  = xist + nust;
+  k  = khst*n;
+
+  l  = psi*mst*n/( (1-psi)*(1-n) );
+  c  = mst/P;
+  d  = l - mst + 1;
+  y  = k^alp*n^(1-alp)*gst^alp;
+  R  = mst/bet;
+  W  = l/n;
+  ist  = y-c;
+  q  = 1 - d;
+
+  e = 1;
+  
+  gp_obs = m/dA;
+  gy_obs = dA;
+end;
+
 steady;
 
 check;
diff --git a/license.txt b/license.txt
index 2dcfdcf07d9ce528f9d9d8c3ee65d8a85a21887e..f7946c208a638d256d5f65a0448dc9e16d1ceb9f 100644
--- a/license.txt
+++ b/license.txt
@@ -1,6 +1,6 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: Dynare
-Upstream-Contact: Dynare Team, whose members in 2013 are:
+Upstream-Contact: Dynare Team, whose members in 2014 are:
                   Stéphane Adjemian <stephane.adjemian@univ-lemans.fr>
                   Houtan Bastani <houtan@dynare.org>
                   Michel Juillard <michel.juillard@mjui.fr>
@@ -14,7 +14,7 @@ Upstream-Contact: Dynare Team, whose members in 2013 are:
 Source: http://www.dynare.org
 
 Files: *
-Copyright: 1996-2013 Dynare Team
+Copyright: 1996-2014 Dynare Team
 License: GPL-3+
 
 Files: matlab/AIM/SP*
@@ -40,12 +40,12 @@ License: public-domain
  pages 472-489
 
 Files: matlab/bfgsi1.m matlab/csolve.m matlab/csminit1.m matlab/numgrad2.m
- matlab/numgrad2_.m matlab/numgrad3.m matlab/numgrad3_.m matlab/numgrad5.m
+ matlab/numgrad3.m matlab/numgrad3_.m matlab/numgrad5.m
  matlab/numgrad5_.m matlab/csminwel1.m matlab/bvar_density.m
  matlab/bvar_toolbox.m matlab/partial_information/PI_gensys.m matlab/qzswitch.m
  matlab/qzdiv.m
 Copyright: 1993-2009 Christopher Sims
-           2006-2012 Dynare Team
+           2006-2013 Dynare Team
 License: GPL-3+
 
 Files: matlab/cmaes.m
@@ -58,6 +58,17 @@ Copyright: 2011 Lawrence J. Christiano, Mathias Trabandt and Karl Walentin
            2013 Dynare Team
 License: GPL-3+
 
+Files: matlab/trust_region.m
+Copyright: 2008-2012 VZLU Prague, a.s.
+           2014 Dynare Team
+License: GPL-3+
+
+Files: matlab/simpsa.m matlab/simpsaget.m matlab/simpsaset.m
+Copyright: 2005 Henning Schmidt, FCC, henning@fcc.chalmers.se
+           2006 Brecht Donckels, BIOMATH, brecht.donckels@ugent.be
+           2013 Dynare Team
+License: GPL-3+
+
 Files: matlab/missing/stats/normpdf.m matlab/missing/stats/gamcdf.m
  matlab/missing/stats/common_size.m matlab/missing/stats/chi2inv.m
  matlab/missing/stats/gaminv.m matlab/missing/stats/gampdf.m
@@ -79,7 +90,7 @@ Copyright: 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu>
 License: GPL-3+
 
 Files: doc/dynare.texi doc/*.tex doc/*.svg doc/*.dia doc/*.pdf doc/*.bib
-Copyright: 1996-2013 Dynare Team
+Copyright: 1996-2014 Dynare Team
 License: GFDL-NIV-1.3+
 
 Files: doc/userguide/*.tex doc/userguide/*.bib doc/userguide/*.pdf
@@ -107,23 +118,25 @@ License: GPL-3+ with Autoconf exception
 
 Files: m4/ax_pthread.m4
 Copyright: 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-           2010 Dynare Team
+           2011 Daniel Richard G. <skunk@iSKUNK.ORG>
 License: GPL-3+ with Autoconf exception
 
 Files: m4/ax_boost_base.m4
 Copyright: 2008 Thomas Porschberg <thomas@randspringer.de>
-           2009 Dynare Team
+           2009 Peter Adolphs
 License: other
  Copying and distribution of this file, with or without modification, are
  permitted in any medium without royalty provided the copyright notice
- and this notice are preserved.
+ and this notice are preserved. This file is offered as-is, without any
+ warranty.
 
 Files: m4/ax_compare_version.m4
 Copyright: 2008 Tim Toolan <toolan@ele.uri.edu>
 License: other
  Copying and distribution of this file, with or without modification, are
  permitted in any medium without royalty provided the copyright notice
- and this notice are preserved.
+ and this notice are preserved. This file is offered as-is, without any
+ warranty.
 
 Files: m4/ax_latex_bibtex_test.m4 m4/ax_latex_class.m4 m4/ax_tex_test.m4
 Copyright: 2008 Boretti Mathieu <boretti@eig.unige.ch>
@@ -228,6 +241,33 @@ Files: contrib/ms-sbvar/TZcode/MatlabFiles/qplot2.m
 Copyright: 1997-2012 Clark A. Burdick
 License: GPL-3+
 
+Files: contrib/dmm/*
+Copyright: 2010-2014 European Commission
+           2006-2012 Dynare Team
+License: GPL-3+
+
+Files: contrib/dmm/randlib/*
+Copyright: none
+License: public-domain
+ We place the Randlib code that we have written in the public domain.  
+ .
+                                 NO WARRANTY
+ .    
+     WE PROVIDE ABSOLUTELY  NO 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
+     THIS PROGRAM PROVE  DEFECTIVE, YOU ASSUME  THE COST  OF  ALL NECESSARY
+     SERVICING, REPAIR OR CORRECTION.
+ .    
+     IN NO  EVENT  SHALL THE UNIVERSITY  OF TEXAS OR  ANY  OF ITS COMPONENT
+     INSTITUTIONS INCLUDING M. D.   ANDERSON HOSPITAL BE LIABLE  TO YOU FOR
+     DAMAGES, INCLUDING ANY  LOST PROFITS, LOST MONIES,   OR OTHER SPECIAL,
+     INCIDENTAL   OR  CONSEQUENTIAL DAMAGES   ARISING   OUT  OF  THE USE OR
+     INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA OR
+     ITS ANALYSIS BEING  RENDERED INACCURATE OR  LOSSES SUSTAINED  BY THIRD
+     PARTIES) THE PROGRAM.
+
 License: GFDL-NIV-1.3+
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
diff --git a/m4/ax_blas.m4 b/m4/ax_blas.m4
index 50cfdd70cb4182c9903fddfa5daacd6320dbae48..821459d85791faa0eecd51c6577f6e0fc1e5e507 100644
--- a/m4/ax_blas.m4
+++ b/m4/ax_blas.m4
@@ -1,5 +1,5 @@
 # ===========================================================================
-#             http://www.nongnu.org/autoconf-archive/ax_blas.html
+#          http://www.gnu.org/software/autoconf-archive/ax_blas.html
 # ===========================================================================
 #
 # SYNOPSIS
@@ -14,7 +14,7 @@
 #
 #   To link with BLAS, you should link with:
 #
-#   	$BLAS_LIBS $LIBS $FLIBS
+#     $BLAS_LIBS $LIBS $FLIBS
 #
 #   in that order. FLIBS is the output variable of the
 #   AC_F77_LIBRARY_LDFLAGS macro (called if necessary by AX_BLAS), and is
@@ -63,14 +63,17 @@
 #   modified version of the Autoconf Macro, you may extend this special
 #   exception to the GPL to apply to your modified version as well.
 
+#serial 14
+
 AU_ALIAS([ACX_BLAS], [AX_BLAS])
 AC_DEFUN([AX_BLAS], [
 AC_PREREQ(2.50)
 AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS])
+AC_REQUIRE([AC_CANONICAL_HOST])
 ax_blas_ok=no
 
 AC_ARG_WITH(blas,
-	[AC_HELP_STRING([--with-blas=<lib>], [use BLAS library <lib>])])
+	[AS_HELP_STRING([--with-blas=<lib>], [use BLAS library <lib>])])
 case $with_blas in
 	yes | "") ;;
 	no) ax_blas_ok=disable ;;
@@ -99,10 +102,18 @@ fi
 # BLAS linked to by default?  (happens on some supercomputers)
 if test $ax_blas_ok = no; then
 	save_LIBS="$LIBS"; LIBS="$LIBS"
-	AC_CHECK_FUNC($sgemm, [ax_blas_ok=yes])
+	AC_MSG_CHECKING([if $sgemm is being linked in already])
+	AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes])
+	AC_MSG_RESULT($ax_blas_ok)
 	LIBS="$save_LIBS"
 fi
 
+# BLAS in OpenBLAS library? (http://xianyi.github.com/OpenBLAS/)
+if test $ax_blas_ok = no; then
+	AC_CHECK_LIB(openblas, $sgemm, [ax_blas_ok=yes
+			                BLAS_LIBS="-lopenblas"])
+fi
+
 # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
 if test $ax_blas_ok = no; then
 	AC_CHECK_LIB(atlas, ATL_xerbla,
@@ -126,13 +137,45 @@ fi
 
 # BLAS in Intel MKL library?
 if test $ax_blas_ok = no; then
-	AC_CHECK_LIB(mkl, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl"])
+	# MKL for gfortran
+	if test x"$ac_cv_fc_compiler_gnu" = xyes; then
+		# 64 bit
+		if test $host_cpu = x86_64; then
+			AC_CHECK_LIB(mkl_gf_lp64, $sgemm,
+			[ax_blas_ok=yes;BLAS_LIBS="-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread"],,
+			[-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread])
+		# 32 bit
+		elif test $host_cpu = i686; then
+			AC_CHECK_LIB(mkl_gf, $sgemm,
+				[ax_blas_ok=yes;BLAS_LIBS="-lmkl_gf -lmkl_sequential -lmkl_core -lpthread"],,
+				[-lmkl_gf -lmkl_sequential -lmkl_core -lpthread])
+		fi
+	# MKL for other compilers (Intel, PGI, ...?)
+	else
+		# 64-bit
+		if test $host_cpu = x86_64; then
+			AC_CHECK_LIB(mkl_intel_lp64, $sgemm,
+				[ax_blas_ok=yes;BLAS_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread"],,
+				[-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread])
+		# 32-bit
+		elif test $host_cpu = i686; then
+			AC_CHECK_LIB(mkl_intel, $sgemm,
+				[ax_blas_ok=yes;BLAS_LIBS="-lmkl_intel -lmkl_sequential -lmkl_core -lpthread"],,
+				[-lmkl_intel -lmkl_sequential -lmkl_core -lpthread])
+		fi
+	fi
+fi
+# Old versions of MKL
+if test $ax_blas_ok = no; then
+	AC_CHECK_LIB(mkl, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl -lguide -lpthread"],,[-lguide -lpthread])
 fi
 
 # BLAS in Apple vecLib library?
 if test $ax_blas_ok = no; then
 	save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS"
-	AC_CHECK_FUNC($sgemm, [ax_blas_ok=yes;BLAS_LIBS="-framework vecLib"])
+	AC_MSG_CHECKING([for $sgemm in -framework vecLib])
+	AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes;BLAS_LIBS="-framework vecLib"])
+	AC_MSG_RESULT($ax_blas_ok)
 	LIBS="$save_LIBS"
 fi
 
@@ -151,7 +194,7 @@ if test $ax_blas_ok = no; then
 	if test "x$GCC" != xyes; then # only works with Sun CC
 		AC_CHECK_LIB(sunmath, acosp,
 			[AC_CHECK_LIB(sunperf, $sgemm,
-        			[BLAS_LIBS="-xlic_lib=sunperf -lsunmath"
+				[BLAS_LIBS="-xlic_lib=sunperf -lsunmath"
                                  ax_blas_ok=yes],[],[-lsunmath])])
 	fi
 fi
diff --git a/m4/ax_boost_base.m4 b/m4/ax_boost_base.m4
index 928874245d572a2f701dd5effa80e5908078dee5..57d14fe48d1e3bb7943f289eecb4ae655b95cf6d 100644
--- a/m4/ax_boost_base.m4
+++ b/m4/ax_boost_base.m4
@@ -1,10 +1,10 @@
 # ===========================================================================
-#          http://www.nongnu.org/autoconf-archive/ax_boost_base.html
+#       http://www.gnu.org/software/autoconf-archive/ax_boost_base.html
 # ===========================================================================
 #
 # SYNOPSIS
 #
-#   AX_BOOST_BASE([MINIMUM-VERSION])
+#   AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
 #
 # DESCRIPTION
 #
@@ -26,35 +26,42 @@
 # LICENSE
 #
 #   Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
-#   Copyright (c) 2009 Dynare Team
+#   Copyright (c) 2009 Peter Adolphs
 #
 #   Copying and distribution of this file, with or without modification, are
 #   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+
+#serial 21
 
 AC_DEFUN([AX_BOOST_BASE],
 [
 AC_ARG_WITH([boost],
-	AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use boost (default is yes) - it is possible to specify the root directory for boost (optional)]),
-	[
+  [AS_HELP_STRING([--with-boost@<:@=ARG@:>@],
+    [use Boost library from a standard location (ARG=yes),
+     from the specified location (ARG=<path>),
+     or disable it (ARG=no)
+     @<:@ARG=yes@:>@ ])],
+    [
     if test "$withval" = "no"; then
-		want_boost="no"
+        want_boost="no"
     elif test "$withval" = "yes"; then
         want_boost="yes"
         ac_boost_path=""
     else
-	    want_boost="yes"
+        want_boost="yes"
         ac_boost_path="$withval"
-	fi
+    fi
     ],
     [want_boost="yes"])
 
 
 AC_ARG_WITH([boost-libdir],
         AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
-        [Force given directory for boost libraries. Note that this will overwrite library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
+        [Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
         [
-        if test -d $withval
+        if test -d "$withval"
         then
                 ac_boost_lib_path="$withval"
         else
@@ -65,36 +72,54 @@ AC_ARG_WITH([boost-libdir],
 )
 
 if test "x$want_boost" = "xyes"; then
-	boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
-	boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
-	boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
-	boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
-	boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
-	if test "x$boost_lib_version_req_sub_minor" = "x" ; then
-		boost_lib_version_req_sub_minor="0"
-    	fi
-	WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+  $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
-	AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
-	succeeded=no
-
-	dnl first we check the system location for boost libraries
-	dnl this location ist chosen if boost libraries are installed with the --layout=system option
-	dnl or if you install boost with RPM
-	if test "$ac_boost_path" != ""; then
-		BOOST_LDFLAGS="-L$ac_boost_path/lib"
-		BOOST_CPPFLAGS="-I$ac_boost_path/include"
-	else
-		# If cross-compiling, adding /usr/include can confuse the compiler
-		if test "x$cross_compiling" != "xyes"; then
-			for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
-				if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
-					BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib"
-					BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
-					break;
-				fi
-			done
-		fi
-	fi
+    boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
+    boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
+    boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
+    boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
+    boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
+    if test "x$boost_lib_version_req_sub_minor" = "x" ; then
+        boost_lib_version_req_sub_minor="0"
+        fi
+    WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+  $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
+    AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
+    succeeded=no
+
+    dnl On 64-bit systems check for system libraries in both lib64 and lib.
+    dnl The former is specified by FHS, but e.g. Debian does not adhere to
+    dnl this (as it rises problems for generic multi-arch support).
+    dnl The last entry in the list is chosen by default when no libraries
+    dnl are found, e.g. when only header-only libraries are installed!
+    libsubdirs="lib"
+    ax_arch=`uname -m`
+    case $ax_arch in
+      x86_64|ppc64|s390x|sparc64|aarch64)
+        libsubdirs="lib64 lib lib64"
+        ;;
+    esac
+
+    dnl first we check the system location for boost libraries
+    dnl this location ist chosen if boost libraries are installed with the --layout=system option
+    dnl or if you install boost with RPM
+    if test "$ac_boost_path" != ""; then
+        BOOST_CPPFLAGS="-I$ac_boost_path/include"
+        for ac_boost_path_tmp in $libsubdirs; do
+                if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then
+                        BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp"
+                        break
+                fi
+        done
+    elif test "$cross_compiling" != yes; then
+        for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
+            if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
+                for libsubdir in $libsubdirs ; do
+                    if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
+                done
+                BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir"
+                BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
+                break;
+            fi
+        done
+    fi
 
     dnl overwrite ld flags if we have required special directory with
     dnl --with-boost-libdir parameter
@@ -102,122 +127,134 @@ if test "x$want_boost" = "xyes"; then
        BOOST_LDFLAGS="-L$ac_boost_lib_path"
     fi
 
-	CPPFLAGS_SAVED="$CPPFLAGS"
-	CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-	export CPPFLAGS
-
-	LDFLAGS_SAVED="$LDFLAGS"
-	LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-	export LDFLAGS
-
-	AC_LANG_PUSH(C++)
-     	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-	@%:@include <boost/version.hpp>
-	]], [[
-	#if BOOST_VERSION >= $WANT_BOOST_VERSION
-	// Everything is okay
-	#else
-	#  error Boost version is too old
-	#endif
-	]])],[
+    CPPFLAGS_SAVED="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+    export CPPFLAGS
+
+    LDFLAGS_SAVED="$LDFLAGS"
+    LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+    export LDFLAGS
+
+    AC_REQUIRE([AC_PROG_CXX])
+    AC_LANG_PUSH(C++)
+        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+    @%:@include <boost/version.hpp>
+    ]], [[
+    #if BOOST_VERSION >= $WANT_BOOST_VERSION
+    // Everything is okay
+    #else
+    #  error Boost version is too old
+    #endif
+    ]])],[
         AC_MSG_RESULT(yes)
-	succeeded=yes
-	found_system=yes
-       	],[
-       	])
-	AC_LANG_POP([C++])
-
-
-
-	dnl if we found no boost with system layout we search for boost libraries
-	dnl built and installed without the --layout=system option or for a staged(not installed) version
-	if test "x$succeeded" != "xyes"; then
-		_version=0
-		if test "$ac_boost_path" != ""; then
-			if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
-				for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
-					_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
-					V_CHECK=`expr $_version_tmp \> $_version`
-					if test "$V_CHECK" = "1" ; then
-						_version=$_version_tmp
-					fi
-					VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
-					BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
-				done
-			fi
-		else
-			for ac_boost_path in /usr /usr/local /opt /opt/local ; do
-				if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
-					for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
-						_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
-						V_CHECK=`expr $_version_tmp \> $_version`
-						if test "$V_CHECK" = "1" ; then
-							_version=$_version_tmp
-	               					best_path=$ac_boost_path
-						fi
-					done
-				fi
-			done
-
-			VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
-			BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
-            if test "$ac_boost_lib_path" = ""
-            then
-               BOOST_LDFLAGS="-L$best_path/lib"
+    succeeded=yes
+    found_system=yes
+        ],[
+        ])
+    AC_LANG_POP([C++])
+
+
+
+    dnl if we found no boost with system layout we search for boost libraries
+    dnl built and installed without the --layout=system option or for a staged(not installed) version
+    if test "x$succeeded" != "xyes"; then
+        _version=0
+        if test "$ac_boost_path" != ""; then
+            if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
+                for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
+                    _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
+                    V_CHECK=`expr $_version_tmp \> $_version`
+                    if test "$V_CHECK" = "1" ; then
+                        _version=$_version_tmp
+                    fi
+                    VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
+                    BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
+                done
             fi
+        else
+            if test "$cross_compiling" != yes; then
+                for ac_boost_path in /usr /usr/local /opt /opt/local ; do
+                    if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
+                        for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
+                            _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
+                            V_CHECK=`expr $_version_tmp \> $_version`
+                            if test "$V_CHECK" = "1" ; then
+                                _version=$_version_tmp
+                                best_path=$ac_boost_path
+                            fi
+                        done
+                    fi
+                done
 
-	    		if test "x$BOOST_ROOT" != "x"; then
-				if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/lib" && test -r "$BOOST_ROOT/stage/lib"; then
-					version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
-					stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
-			        	stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
-					V_CHECK=`expr $stage_version_shorten \>\= $_version`
+                VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
+                BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
+                if test "$ac_boost_lib_path" = ""; then
+                    for libsubdir in $libsubdirs ; do
+                        if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
+                    done
+                    BOOST_LDFLAGS="-L$best_path/$libsubdir"
+                fi
+            fi
+
+            if test "x$BOOST_ROOT" != "x"; then
+                for libsubdir in $libsubdirs ; do
+                    if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
+                done
+                if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
+                    version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
+                    stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
+                        stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
+                    V_CHECK=`expr $stage_version_shorten \>\= $_version`
                     if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
-						AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
-						BOOST_CPPFLAGS="-I$BOOST_ROOT"
-						BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib"
-					fi
-				fi
-	    		fi
-		fi
-
-		CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-		export CPPFLAGS
-		LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-		export LDFLAGS
-
-		AC_LANG_PUSH(C++)
-	     	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-		@%:@include <boost/version.hpp>
-		]], [[
-		#if BOOST_VERSION >= $WANT_BOOST_VERSION
-		// Everything is okay
-		#else
-		#  error Boost version is too old
-		#endif
-		]])],[
-        	AC_MSG_RESULT(yes)
-		succeeded=yes
-		found_system=yes
-       		],[
-	       	])
-		AC_LANG_POP([C++])
-	fi
-
-	if test "$succeeded" != "yes" ; then
-		if test "$_version" = "0" ; then
-			AC_MSG_ERROR([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
-		else
-			AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
-		fi
-	else
-		AC_SUBST(BOOST_CPPFLAGS)
-		AC_SUBST(BOOST_LDFLAGS)
-		AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
-	fi
-
-        CPPFLAGS="$CPPFLAGS_SAVED"
-       	LDFLAGS="$LDFLAGS_SAVED"
+                        AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
+                        BOOST_CPPFLAGS="-I$BOOST_ROOT"
+                        BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
+                    fi
+                fi
+            fi
+        fi
+
+        CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+        export CPPFLAGS
+        LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+        export LDFLAGS
+
+        AC_LANG_PUSH(C++)
+            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        @%:@include <boost/version.hpp>
+        ]], [[
+        #if BOOST_VERSION >= $WANT_BOOST_VERSION
+        // Everything is okay
+        #else
+        #  error Boost version is too old
+        #endif
+        ]])],[
+            AC_MSG_RESULT(yes)
+        succeeded=yes
+        found_system=yes
+            ],[
+            ])
+        AC_LANG_POP([C++])
+    fi
+
+    if test "$succeeded" != "yes" ; then
+        if test "$_version" = "0" ; then
+            AC_MSG_NOTICE([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
+        else
+            AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
+        fi
+        # execute ACTION-IF-NOT-FOUND (if present):
+        ifelse([$3], , :, [$3])
+    else
+        AC_SUBST(BOOST_CPPFLAGS)
+        AC_SUBST(BOOST_LDFLAGS)
+        AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
+        # execute ACTION-IF-FOUND (if present):
+        ifelse([$2], , :, [$2])
+    fi
+
+    CPPFLAGS="$CPPFLAGS_SAVED"
+    LDFLAGS="$LDFLAGS_SAVED"
 fi
 
 ])
diff --git a/m4/ax_compare_version.m4 b/m4/ax_compare_version.m4
index 3f33ad1b435e702bfd6952d7291b56045a6d3081..74dc0fdd9a40cea41852e138d687b43a05492bd9 100644
--- a/m4/ax_compare_version.m4
+++ b/m4/ax_compare_version.m4
@@ -1,5 +1,5 @@
 # ===========================================================================
-#       http://www.nongnu.org/autoconf-archive/ax_compare_version.html
+#    http://www.gnu.org/software/autoconf-archive/ax_compare_version.html
 # ===========================================================================
 #
 # SYNOPSIS
@@ -76,7 +76,10 @@
 #
 #   Copying and distribution of this file, with or without modification, are
 #   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+
+#serial 11
 
 dnl #########################################################################
 AC_DEFUN([AX_COMPARE_VERSION], [
diff --git a/m4/ax_lapack.m4 b/m4/ax_lapack.m4
index fb8a7b404b240895c7de15991dab11a68cfa26c8..6aa16aaffeaab0b46a6d07653057eac5fbe804f3 100644
--- a/m4/ax_lapack.m4
+++ b/m4/ax_lapack.m4
@@ -1,5 +1,5 @@
 # ===========================================================================
-#            http://www.nongnu.org/autoconf-archive/ax_lapack.html
+#         http://www.gnu.org/software/autoconf-archive/ax_lapack.html
 # ===========================================================================
 #
 # SYNOPSIS
@@ -14,7 +14,7 @@
 #
 #   To link with LAPACK, you should link with:
 #
-#       $LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS
+#     $LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS
 #
 #   in that order. BLAS_LIBS is the output variable of the AX_BLAS macro,
 #   called automatically. FLIBS is the output variable of the
@@ -64,13 +64,15 @@
 #   modified version of the Autoconf Macro, you may extend this special
 #   exception to the GPL to apply to your modified version as well.
 
+#serial 7
+
 AU_ALIAS([ACX_LAPACK], [AX_LAPACK])
 AC_DEFUN([AX_LAPACK], [
 AC_REQUIRE([AX_BLAS])
 ax_lapack_ok=no
 
 AC_ARG_WITH(lapack,
-        [AC_HELP_STRING([--with-lapack=<lib>], [use LAPACK library <lib>])])
+        [AS_HELP_STRING([--with-lapack=<lib>], [use LAPACK library <lib>])])
 case $with_lapack in
         yes | "") ;;
         no) ax_lapack_ok=disable ;;
diff --git a/m4/ax_matlab_version.m4 b/m4/ax_matlab_version.m4
index 12b5693dc8b3153588734b2a6fe2d3132e62f2ff..440af100ee6facb891c82fd42b8cad1390ee3e5e 100644
--- a/m4/ax_matlab_version.m4
+++ b/m4/ax_matlab_version.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2009-2013 Dynare Team
+dnl Copyright (C) 2009-2014 Dynare Team
 dnl
 dnl This file is part of Dynare.
 dnl
@@ -22,6 +22,12 @@ AC_REQUIRE([AX_MATLAB])
 AC_MSG_CHECKING([for MATLAB version])
 if test "x$MATLAB_VERSION" != "x"; then
   case $MATLAB_VERSION in
+    *2014a | *2014A)
+      MATLAB_VERSION="8.3"
+      ;;
+    *2013b | *2013B)
+      MATLAB_VERSION="8.2"
+      ;;
     *2013a | *2013A)
       MATLAB_VERSION="8.1"
       ;;
diff --git a/m4/ax_mexopts.m4 b/m4/ax_mexopts.m4
index 31dcb6c93047610f17ab124730f8069fab1c7579..c245e2511a3ae19a55203ccc901bb87b52622f98 100644
--- a/m4/ax_mexopts.m4
+++ b/m4/ax_mexopts.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2009-2012 Dynare Team
+dnl Copyright (C) 2009-2014 Dynare Team
 dnl
 dnl This file is part of Dynare.
 dnl
@@ -22,7 +22,7 @@ AC_REQUIRE([AX_MATLAB_ARCH])
 AC_REQUIRE([AX_MATLAB_VERSION])
 AC_REQUIRE([AC_PROG_SED])
 
-AX_COMPARE_VERSION([$MATLAB_VERSION], [lt], [7.3], [AC_MSG_ERROR([Your MATLAB is too old, please upgrade to 7.3 (R2006b) at least.])])
+AX_COMPARE_VERSION([$MATLAB_VERSION], [lt], [7.5], [AC_MSG_ERROR([Your MATLAB is too old, please upgrade to 7.5 (R2007b) at least.])])
 
 AC_MSG_CHECKING([for options to compile MEX for MATLAB])
 
@@ -36,9 +36,7 @@ case ${MATLAB_ARCH} in
     MATLAB_FFLAGS="-fPIC -g -O2 -fexceptions"
     MATLAB_LDFLAGS_NOMAP="-shared -Wl,--no-undefined -Wl,-rpath-link,$MATLAB/bin/${MATLAB_ARCH} -L$MATLAB/bin/${MATLAB_ARCH}"
     MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP -Wl,--version-script,$MATLAB/extern/lib/${MATLAB_ARCH}/mexFunction.map"
-    MATLAB_LIBS="-lmx -lmex -lmat -lm -lstdc++ -lmwlapack"
-    # Starting from MATLAB 7.5, BLAS and LAPACK are in distinct libraries
-    AX_COMPARE_VERSION([$MATLAB_VERSION], [ge], [7.5], [MATLAB_LIBS="${MATLAB_LIBS} -lmwblas"])
+    MATLAB_LIBS="-lmx -lmex -lmat -lm -lstdc++ -lmwlapack -lmwblas"
     if test "${MATLAB_ARCH}" = "glnx86"; then
       MATLAB_DEFS="$MATLAB_DEFS -D_FILE_OFFSET_BITS=64"
       MATLAB_CFLAGS="$MATLAB_CFLAGS -m32"
@@ -57,13 +55,10 @@ case ${MATLAB_ARCH} in
     # Note that static-libstdc++ is only supported since GCC 4.5 (but generates no error on older versions)
     MATLAB_LDFLAGS_NOMAP="-static-libgcc -static-libstdc++ -shared -L$MATLAB/bin/${MATLAB_ARCH}"
     MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP $(pwd)/$srcdir/mex.def"
-    MATLAB_LIBS="-lmex -lmx -lmat -lmwlapack"
-    # Starting from MATLAB 7.5, BLAS and LAPACK are in distinct libraries
-    AX_COMPARE_VERSION([$MATLAB_VERSION], [ge], [7.5], [MATLAB_LIBS="${MATLAB_LIBS} -lmwblas"])
+    MATLAB_LIBS="-lmex -lmx -lmat -lmwlapack -lmwblas"
     ax_mexopts_ok="yes"
     ;;
   maci | maci64)
-    SDKROOT='/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk'
     MACOSX_DEPLOYMENT_TARGET='10.6'
     if test "${MATLAB_ARCH}" = "maci"; then
         ARCHS='i386'
@@ -71,14 +66,12 @@ case ${MATLAB_ARCH} in
         ARCHS='x86_64'
     fi
     MATLAB_DEFS="$MATLAB_DEFS -DNDEBUG"
-    MATLAB_CFLAGS="-fno-common -no-cpp-precomp -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -fexceptions -O2"
-    MATLAB_LDFLAGS_NOMAP="-L$MATLAB/bin/${MATLAB_ARCH} -Wl,-twolevel_namespace -undefined error -arch $ARCHS -Wl,-syslibroot,$SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle"
-    MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP -Wl,-exported_symbols_list,$(pwd)/$srcdir/mexFunction-MacOSX.map"
-    MATLAB_LIBS="-lmx -lmex -lmat -lstdc++ -lmwlapack"
-    MATLAB_CXXFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -O2"
+    MATLAB_CFLAGS="-fno-common -arch $ARCHS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -fexceptions"
+    MATLAB_CXXFLAGS="-fno-common -fexceptions -arch $ARCHS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
     MATLAB_FFLAGS="-fexceptions -fbackslash -arch $ARCHS"
-    # Starting from MATLAB 7.5, BLAS and LAPACK are in distinct libraries
-    AX_COMPARE_VERSION([$MATLAB_VERSION], [ge], [7.5], [MATLAB_LIBS="${MATLAB_LIBS} -lmwblas"])
+    MATLAB_LDFLAGS_NOMAP="-L$MATLAB/bin/${MATLAB_ARCH} -Wl,-twolevel_namespace -undefined error -arch $ARCHS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle"
+    MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP -Wl,-exported_symbols_list,$(pwd)/$srcdir/mexFunction-MacOSX.map"
+    MATLAB_LIBS="-lmx -lmex -lmat -lstdc++ -lmwlapack -lmwblas"
     ax_mexopts_ok="yes"
     ;;
   *)
diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4
index 63e962df79c2de0a80688f392538b89d1ce7dd97..d383ad5c6d6a5061370800bb1dc89b7a334c0638 100644
--- a/m4/ax_pthread.m4
+++ b/m4/ax_pthread.m4
@@ -1,5 +1,5 @@
 # ===========================================================================
-#           http://www.nongnu.org/autoconf-archive/ax_pthread.html
+#        http://www.gnu.org/software/autoconf-archive/ax_pthread.html
 # ===========================================================================
 #
 # SYNOPSIS
@@ -25,14 +25,18 @@
 #   If you are only building threads programs, you may wish to use these
 #   variables in your default LIBS, CFLAGS, and CC:
 #
-#          LIBS="$PTHREAD_LIBS $LIBS"
-#          CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-#          CC="$PTHREAD_CC"
+#     LIBS="$PTHREAD_LIBS $LIBS"
+#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+#     CC="$PTHREAD_CC"
 #
 #   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
 #   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
 #   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
 #
+#   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
+#   PTHREAD_PRIO_INHERIT symbol is defined when compiling with
+#   PTHREAD_CFLAGS.
+#
 #   ACTION-IF-FOUND is a list of shell commands to run if a threads library
 #   is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
 #   is not found. If ACTION-IF-FOUND is not specified, the default action
@@ -45,10 +49,12 @@
 #   Alejandro Forero Cuervo to the autoconf macro repository. We are also
 #   grateful for the helpful feedback of numerous users.
 #
+#   Updated for Autoconf 2.68 by Daniel Richard G.
+#
 # LICENSE
 #
 #   Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-#   Copyright (c) 2010 Dynare Team
+#   Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
 #
 #   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
@@ -76,74 +82,71 @@
 #   modified version of the Autoconf Macro, you may extend this special
 #   exception to the GPL to apply to your modified version as well.
 
+#serial 21
+
 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
 AC_DEFUN([AX_PTHREAD], [
 AC_REQUIRE([AC_CANONICAL_HOST])
-AC_LANG_SAVE
-AC_LANG_C
+AC_LANG_PUSH([C])
 ax_pthread_ok=no
 
-AC_ARG_WITH([pthread], [AS_HELP_STRING([--without-pthread], [don't use POSIX threads])], [], [with_readline=check])
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
 
-if test "x$with_pthread" != "xno"; then
-
-  # We used to check for pthread.h first, but this fails if pthread.h
-  # requires special compiler flags (e.g. on True64 or Sequent).
-  # It gets checked for in the link test anyway.
-
-  # First of all, check if the user has set any of the PTHREAD_LIBS,
-  # etcetera environment variables, and if threads linking works using
-  # them:
-  if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
         save_CFLAGS="$CFLAGS"
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
         save_LIBS="$LIBS"
         LIBS="$PTHREAD_LIBS $LIBS"
         AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
-        AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
-        AC_MSG_RESULT($ax_pthread_ok)
+        AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
+        AC_MSG_RESULT([$ax_pthread_ok])
         if test x"$ax_pthread_ok" = xno; then
                 PTHREAD_LIBS=""
                 PTHREAD_CFLAGS=""
         fi
         LIBS="$save_LIBS"
         CFLAGS="$save_CFLAGS"
-  fi
-
-  # We must check for the threads library under a number of different
-  # names; the ordering is very important because some systems
-  # (e.g. DEC) have both -lpthread and -lpthreads, where one of the
-  # libraries is broken (non-POSIX).
-
-  # Create a list of thread flags to try.  Items starting with a "-" are
-  # C compiler flags, and other items are library names, except for "none"
-  # which indicates that we try without any flags at all, and "pthread-config"
-  # which is a program returning the flags for the Pth emulation library.
-
-  ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
-
-  # The ordering *is* (sometimes) important.  Some notes on the
-  # individual items follow:
-
-  # pthreads: AIX (must check this before -lpthread)
-  # none: in case threads are in libc; should be tried before -Kthread and
-  #       other compiler flags to prevent continual compiler warnings
-  # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-  # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-  # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-  # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
-  # -pthreads: Solaris/gcc
-  # -mthreads: Mingw32/gcc, Lynx/gcc
-  # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-  #      doesn't hurt to check since this sometimes defines pthreads too;
-  #      also defines -D_REENTRANT)
-  #      ... -mt is also the pthreads flag for HP/aCC
-  # pthread: Linux, etcetera
-  # --thread-safe: KAI C++
-  # pthread-config: use pthread-config program (for GNU Pth library)
-
-  case "${host_cpu}-${host_os}" in
-        *solaris*)
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+#      ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case ${host_os} in
+        solaris*)
 
         # On Solaris (at least, for some versions), libc contains stubbed
         # (non-functional) versions of the pthreads routines, so link-based
@@ -155,10 +158,28 @@ if test "x$with_pthread" != "xno"; then
 
         ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
         ;;
-  esac
 
-  if test x"$ax_pthread_ok" = xno; then
-  for flag in $ax_pthread_flags; do
+        darwin*)
+        ax_pthread_flags="-pthread $ax_pthread_flags"
+        ;;
+esac
+
+# Clang doesn't consider unrecognized options an error unless we specify
+# -Werror. We throw in some extra Clang-specific options to ensure that
+# this doesn't happen for GCC, which also accepts -Werror.
+
+AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
+save_CFLAGS="$CFLAGS"
+ax_pthread_extra_flags="-Werror"
+CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
+                  [AC_MSG_RESULT([yes])],
+                  [ax_pthread_extra_flags=
+                   AC_MSG_RESULT([no])])
+CFLAGS="$save_CFLAGS"
+
+if test x"$ax_pthread_ok" = xno; then
+for flag in $ax_pthread_flags; do
 
         case $flag in
                 none)
@@ -170,12 +191,12 @@ if test "x$with_pthread" != "xno"; then
                 PTHREAD_CFLAGS="$flag"
                 ;;
 
-		pthread-config)
-		AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
-		if test x"$ax_pthread_config" = xno; then continue; fi
-		PTHREAD_CFLAGS="`pthread-config --cflags`"
-		PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
-		;;
+                pthread-config)
+                AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
+                if test x"$ax_pthread_config" = xno; then continue; fi
+                PTHREAD_CFLAGS="`pthread-config --cflags`"
+                PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+                ;;
 
                 *)
                 AC_MSG_CHECKING([for the pthreads library -l$flag])
@@ -186,7 +207,7 @@ if test "x$with_pthread" != "xno"; then
         save_LIBS="$LIBS"
         save_CFLAGS="$CFLAGS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
 
         # Check for various functions.  We must include pthread.h,
         # since some functions may be macros.  (On the Sequent, we
@@ -197,83 +218,115 @@ if test "x$with_pthread" != "xno"; then
         # pthread_cleanup_push because it is one of the few pthread
         # functions on Solaris that doesn't have a non-functional libc stub.
         # We try pthread_create on general principles.
-        AC_TRY_LINK([#include <pthread.h>],
-                    [pthread_t th; pthread_join(th, 0);
-                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
-                     pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
-                    [ax_pthread_ok=yes])
+        AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
+                        static void routine(void *a) { a = 0; }
+                        static void *start_routine(void *a) { return a; }],
+                       [pthread_t th; pthread_attr_t attr;
+                        pthread_create(&th, 0, start_routine, 0);
+                        pthread_join(th, 0);
+                        pthread_attr_init(&attr);
+                        pthread_cleanup_push(routine, 0);
+                        pthread_cleanup_pop(0) /* ; */])],
+                [ax_pthread_ok=yes],
+                [])
 
         LIBS="$save_LIBS"
         CFLAGS="$save_CFLAGS"
 
-        AC_MSG_RESULT($ax_pthread_ok)
+        AC_MSG_RESULT([$ax_pthread_ok])
         if test "x$ax_pthread_ok" = xyes; then
                 break;
         fi
 
         PTHREAD_LIBS=""
         PTHREAD_CFLAGS=""
-  done
-  fi
+done
+fi
 
-  # Various other checks:
-  if test "x$ax_pthread_ok" = xyes; then
+# Various other checks:
+if test "x$ax_pthread_ok" = xyes; then
         save_LIBS="$LIBS"
         LIBS="$PTHREAD_LIBS $LIBS"
         save_CFLAGS="$CFLAGS"
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
 
         # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-	AC_MSG_CHECKING([for joinable pthread attribute])
-	attr_name=unknown
-	for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
-	    AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
-                        [attr_name=$attr; break])
-	done
-        AC_MSG_RESULT($attr_name)
+        AC_MSG_CHECKING([for joinable pthread attribute])
+        attr_name=unknown
+        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+            AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
+                           [int attr = $attr; return attr /* ; */])],
+                [attr_name=$attr; break],
+                [])
+        done
+        AC_MSG_RESULT([$attr_name])
         if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
-            AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
+            AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
                                [Define to necessary symbol if this constant
                                 uses a non-standard name on your system.])
         fi
 
         AC_MSG_CHECKING([if more special flags are required for pthreads])
         flag=no
-        case "${host_cpu}-${host_os}" in
-            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
-            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        case ${host_os} in
+            aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
+            osf* | hpux*) flag="-D_REENTRANT";;
+            solaris*)
+            if test "$GCC" = "yes"; then
+                flag="-D_REENTRANT"
+            else
+                # TODO: What about Clang on Solaris?
+                flag="-mt -D_REENTRANT"
+            fi
+            ;;
         esac
-        AC_MSG_RESULT(${flag})
+        AC_MSG_RESULT([$flag])
         if test "x$flag" != xno; then
             PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
         fi
 
+        AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
+            [ax_cv_PTHREAD_PRIO_INHERIT], [
+                AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
+                                                [[int i = PTHREAD_PRIO_INHERIT;]])],
+                    [ax_cv_PTHREAD_PRIO_INHERIT=yes],
+                    [ax_cv_PTHREAD_PRIO_INHERIT=no])
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
+            [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
+
         LIBS="$save_LIBS"
         CFLAGS="$save_CFLAGS"
 
-        # More AIX lossage: must compile with xlc_r or cc_r
-	if test x"$GCC" != xyes; then
-          AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
-        else
-          PTHREAD_CC=$CC
-	fi
-  else
-        PTHREAD_CC="$CC"
-  fi
+        # More AIX lossage: compile with *_r variant
+        if test "x$GCC" != xyes; then
+            case $host_os in
+                aix*)
+                AS_CASE(["x/$CC"],
+                  [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
+                  [#handle absolute path differently from PATH based program lookup
+                   AS_CASE(["x$CC"],
+                     [x/*],
+                     [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
+                     [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
+                ;;
+            esac
+        fi
+fi
 
-  AC_SUBST(PTHREAD_LIBS)
-  AC_SUBST(PTHREAD_CFLAGS)
-  AC_SUBST(PTHREAD_CC)
+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
 
-fi
+AC_SUBST([PTHREAD_LIBS])
+AC_SUBST([PTHREAD_CFLAGS])
+AC_SUBST([PTHREAD_CC])
 
 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
 if test x"$ax_pthread_ok" = xyes; then
-        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+        ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
         :
 else
         ax_pthread_ok=no
         $2
 fi
-AC_LANG_RESTORE
+AC_LANG_POP
 ])dnl AX_PTHREAD
diff --git a/matlab/@dynDates/append.m b/matlab/@dates/append.m
similarity index 51%
rename from matlab/@dynDates/append.m
rename to matlab/@dates/append.m
index 0fc59f0348bd99290990ab8b47999929af219a30..c818294ed6cb5e99d3b7041863f404d39d68f386 100644
--- a/matlab/@dynDates/append.m
+++ b/matlab/@dates/append.m
@@ -1,35 +1,17 @@
-function dd = append(dd,a) % --*-- Unitary tests --*--
+function B = append(A,a) % --*-- Unitary tests --*--
 
-% append method for dynDates class.
-
-%@info:
-%! @deftypefn {Function File} {@var{dd} =} sort (@var{dd}, @var{a})
-%! @anchor{dynDates/append}
-%! @sp 1
-%! Append method for the Dynare dates class.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item dd
-%! Object instantiated by @ref{dynDates}.
-%! @item a
-%! Object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item dd
-%! Object instantiated by @ref{dynDates}, with an additional date (@var{a}).
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
+% append method for dates class.
+%
+% INPUTS 
+%  o A    dates object.
+%  o a    dates object with one element or string that can be interpreted as a date.
+%
+% OUTPUTS 
+%  o B    dates object containing dates defined in A and a.
+%
+% EXAMPLE 1 
+%  If A is a dates object with quarterly frequency, then B = A.append(dates('1950Q2')) and 
+%  B = A.append('1950Q2') are equivalent syntaxes.
 
 % Copyright (C) 2012-2013 Dynare Team
 %
@@ -48,32 +30,28 @@ function dd = append(dd,a) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
-
-if ~isa(dd,'dynDates')
-    error(['dynDates::append: Input argument ' inputname(dd) ' has to be a dynDates object.'])
-end
-
-if ~(isa(a,'dynDate') || isa(a,'dynDates') || ischar(a))
-    error(['dynDates::append: Input argument ' inputname(2) ' has to be ' ...
-                        'a dynDate object or a dynDates object or a string (formatted date).'])
+if isa(a,'dates')
+    if ~isequal(length(a),1)
+        error(['dates::append: Input argument ' inputname(2) ' has to be a dates object with one element.'])
+    end
+    if isempty(a)
+        B = A;
+        return
+    end
+elseif isdate(a)
+    a = dates(a);
 end
 
-if isempty(a)
-    return
+if ~isequal(A.freq, a.freq)
+    error(['dates::append: A and a must have common frequency!'])
 end
 
-if isa(a,'dynDate')
-    dd.time = [dd.time; a.time];
-    dd.ndat = dd.ndat+1;
-elseif isa(a,'dynDates')
-    dd.time = [dd.time; a.time];
-    dd.ndat = dd.ndat+a.ndat;
-else
-    tmp = dynDate();
-    dd.time = [dd.time; tmp(a).time];
-    dd.ndat = dd.ndat+1;
-end
+B = dates();
+B.ndat = A.ndat+1;
+B.freq = A.freq;
+B.time = NaN(B.ndat,2);
+B.time(1:A.ndat,:) = A.time;
+B.time(A.ndat+1,:) = a.time; 
 
 %@test:1
 %$ % Define some dates
@@ -89,8 +67,8 @@ end
 %$ e.ndat = 5;
 %$
 %$ % Call the tested routine.
-%$ d = dynDates(B4,B3,B2,B1);
-%$ d = d.append(dynDate(B5));
+%$ d = dates(B4,B3,B2,B1);
+%$ d = d.append(dates(B5));
 %$
 %$ % Check the results.
 %$ t(1) = dyn_assert(d.time,e.time);
@@ -113,7 +91,7 @@ end
 %$ e.ndat = 5;
 %$
 %$ % Call the tested routine.
-%$ d = dynDates(B4,B3,B2,B1);
+%$ d = dates(B4,B3,B2,B1);
 %$ d = d.append(B5);
 %$
 %$ % Check the results.
diff --git a/matlab/@dates/colon.m b/matlab/@dates/colon.m
new file mode 100644
index 0000000000000000000000000000000000000000..4449d9a3f68668b0ae84a8899f1adcddb35383c6
--- /dev/null
+++ b/matlab/@dates/colon.m
@@ -0,0 +1,152 @@
+function C = colon(varargin) % --*-- Unitary tests --*--
+
+% Overloads the colon operator (:). This method can be used to create ranges of dates.
+%
+% INPUTS 
+%  o A    dates object with one element.
+%  o d    integer scalar, number of periods between each date (default value, if nargin==2, is one)
+%  o B    dates object with one element.
+%
+% OUTPUTS 
+%  o C    dates object with length(B-A) elements (if d==1).
+%
+% REMARKS 
+%  B must be greater than A if d>0.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if isequal(nargin,2)    
+    A = varargin{1};
+    B = varargin{2};
+    d = 1;
+    if ~(isa(A,'dates') && isa(B,'dates') && isequal(length(A),1) && isequal(length(B),1))
+        error('dates::colon: In an expression like A:B, A and B must be dates objects!')
+    end
+elseif isequal(nargin,3)
+    A = varargin{1};
+    B = varargin{3};
+    d = varargin{2};
+    if ~(isa(A,'dates') && isa(B,'dates') && isequal(length(A),1) && isequal(length(B),1))
+        error('dates::colon: In an expression like A:d:B, A and B must be dates objects and d a scalar integer (number of periods)!')
+    end
+    if ~(isscalar(d) && isint(d))
+        error('dates::colon: In an expression like A:d:B, A and B must be dates objects and d a scalar integer (number of periods)!')
+    end
+    if isequal(d,0)
+        error('dates::colon: In an expression like A:d:B, d (the incremental number of periods) must nonzero!')
+    end
+else
+    error('dates::colon: Wrong calling sequence! See the manual for the colon (:) operator and dates objects.')
+end
+
+if ~isequal(A.freq,B.freq)
+    error(['dates::colon: Input arguments ' inputname(1) 'and ' inputname(2) ' must have common frequency!'])
+end
+
+if A>B && d>0
+    error(['dates::colon: ' inputname(1) ' must precede ' inputname(2) '!' ])
+end
+
+if B>A && d<0
+    error(['dates::colon: ' inputname(2) ' must precede ' inputname(1) '!' ])
+end
+
+C = dates();
+n = (B-A)+1;
+C.freq = A.freq;
+C.ndat = n;
+C.time = NaN(n,2);
+C.time(1,:) = A.time;
+
+current_date = A;
+linee = 1;
+
+while current_date<B
+    linee = linee+1;
+    C.time(linee,:) = add_periods_to_array_of_dates(C.time(linee-1,:), C.freq, d);
+    current_date = current_date + d;
+end
+
+C.time = C.time(1:linee,:);
+C.ndat = rows(C.time);
+
+%@test:1
+%$ % Define two dates
+%$ date_1 = '1950Q2';
+%$ date_2 = '1951Q4';
+%$
+%$ % Define expected results.
+%$ e.freq = 4;
+%$ e.time = [1950 2; 1950 3; 1950 4; 1951 1; 1951 2; 1951 3; 1951 4];
+%$
+%$ % Call the tested routine.
+%$ d1 = dates(date_1);
+%$ d2 = dates(date_2);
+%$ d3 = d1:d2;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d3.time,e.time);
+%$ t(2) = dyn_assert(d3.freq,e.freq);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define expected results.
+%$ e.freq = 4;
+%$ e.time = [1950 2; 1950 3; 1950 4; 1951 1; 1951 2; 1951 3; 1951 4];
+%$
+%$ % Call the tested routine.
+%$ d = dates('1950Q2'):dates('1951Q4');
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d.time,e.time);
+%$ t(2) = dyn_assert(d.freq,e.freq);
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define expected results.
+%$ e.freq = 4;
+%$ e.time = [1950 2; 1950 4; 1951 2; 1951 4];
+%$
+%$ % Call the tested routine.
+%$ d = dates('1950Q2'):2:dates('1951Q4');
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d.time,e.time);
+%$ t(2) = dyn_assert(d.freq,e.freq);
+%$ T = all(t);
+%@eof:3
+
+
+%$ @test:3
+%$ % Create an empty dates object for quaterly data
+%$ qq = dates('Q');
+%$
+%$ % Define expected results.
+%$ e.freq = 4;
+%$ e.time = [1950 2; 1950 3; 1950 4; 1951 1; 1951 2; 1951 3; 1951 4];
+%$
+%$ % Call the tested routine.
+%$ d = qq(1950,2):qq(1951,4);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d.time,e.time);
+%$ t(2) = dyn_assert(d.freq,e.freq);
+%$ T = all(t);
+%$ @eof:3
\ No newline at end of file
diff --git a/matlab/@dynDates/dynDates.m b/matlab/@dates/dates.m
similarity index 58%
rename from matlab/@dynDates/dynDates.m
rename to matlab/@dates/dates.m
index 12ecd7c808b40ac7ce8abd8d0817604c166a8e33..8ba7efd3bd9c2ac666be079182c0625a45df0809 100644
--- a/matlab/@dynDates/dynDates.m
+++ b/matlab/@dates/dates.m
@@ -1,8 +1,8 @@
-function dd = dynDates(varargin) % --*-- Unitary tests --*--
+function dd = dates(varargin) % --*-- Unitary tests --*--
 
 %@info:
-%! @deftypefn {Function File} {@var{dd} =} dynDates (@var{a},@var{b},...)
-%! @anchor{dynDates}
+%! @deftypefn {Function File} {@var{dd} =} dates (@var{a},@var{b},...)
+%! @anchor{dates}
 %! @sp 1
 %! Constructor for the Dynare dates class (unordered sequence of dates).
 %! @sp 2
@@ -62,42 +62,61 @@ function dd = dynDates(varargin) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
  % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-dd = struct;
-
-dd.ndat = 0;
-dd.freq = NaN;
-dd.time = NaN(1,2);
-
-dd = class(dd,'dynDates');
+dd = struct('ndat', 0, 'freq', NaN(0), 'time', NaN(0,2));
+dd = class(dd,'dates');
 
 switch nargin
   case 0
     % Returns an empty object
     return
   case 1
-    if isa(varargin{1},'dynDates')
+    if isa(varargin{1},'dates')
         % Returns a copy of the input argument
         dd = varargin{1};
-    elseif ischar(varargin{1}) || isa(varargin{1},'dynDate')
-        tmp = dynDate(varargin{1});
+    elseif isdate(varargin{1})
+        date = string2date(varargin{1});
         dd.ndat = 1;
-        dd.freq = tmp.freq;
-        dd.time = tmp.time;
+        dd.freq = date.freq;
+        dd.time = date.time;
+    elseif isfreq(varargin{1})
+        % Instantiate an empty dates object (only set frequency)
+        if ischar(varargin{1})
+            dd.freq = string2freq(varargin{1});
+        else
+            dd.freq = varargin{1};
+        end
     else
-        error('dynDates:: Wrong calling sequence of the constructor!')
+        error('dates:: Wrong calling sequence of the constructor!')
     end
   otherwise
-    tmp = dynDate(varargin{1});
-    dd.ndat = nargin;
-    dd.time = NaN(dd.ndat,2);
-    dd.freq = tmp.freq;
-    dd.time(1,:) = tmp.time;
+    if isdate(varargin{1})
+        dd.ndat = nargin;
+        dd.time = NaN(dd.ndat,2);
+        date = string2date(varargin{1});
+        dd.freq = date.freq;
+        dd.time(1,:) = date.time;
+    elseif isdates(varargin{1})
+        dd = horzcat(varargin{:});
+        return
+    elseif isfreq(varargin{1})
+        S.type = '()';
+        S.subs = varargin;
+        dd = subsref(dd,S);
+        return
+    else
+        error(['dates::dates: Wrong calling sequence!'])
+    end
     for i=2:dd.ndat
-        tmp = dynDate(varargin{i});
-        if ~isequal(dd.freq,tmp.freq)
-            error(['dynDates:: The frequency declared in input argument number ' int2str(i) ' is different from the frequency declared in the first input argument!'])
+        if isdate(varargin{i})
+            date = string2date(varargin{i});
+            if isequal(date.freq,dd.freq)
+                dd.time(i,:) = date.time;
+            else
+                 error(['dates::dates: Check that all the inputs have the same frequency (see input number ' str2num(i) ')!'])
+            end
+        else
+            error(['dates::dates: Input ' str2num(i) ' has to be a string date!'])
         end
-        dd.time(i,:) = tmp.time;
     end
 end
 
@@ -114,7 +133,7 @@ end
 %$ e.ndat = 4;
 %$
 %$ % Call the tested routine.
-%$ d = dynDates(B1,B2,B3,B4);
+%$ d = dates(B1,B2,B3,B4);
 %$
 %$ % Check the results.
 %$ t(1) = dyn_assert(d.time,e.time);
@@ -136,7 +155,7 @@ end
 %$ e.ndat = 4;
 %$
 %$ % Call the tested routine.
-%$ d = dynDates(B1,B2,B3,B4);
+%$ d = dates(B1,B2,B3,B4);
 %$
 %$ % Check the results.
 %$ t(1) = dyn_assert(d.time,e.time);
@@ -147,10 +166,10 @@ end
 
 %@test:3
 %$ % Define some dates
-%$ B1 = '1945';
-%$ B2 = '1950';
-%$ B3 = '1950';
-%$ B4 = '1953';
+%$ B1 = '1945y';
+%$ B2 = '1950Y';
+%$ B3 = '1950a';
+%$ B4 = '1953A';
 %$
 %$ % Define expected results.
 %$ e.time = [1945 1; 1950 1; 1950 1; 1953 1];
@@ -158,7 +177,7 @@ end
 %$ e.ndat = 4;
 %$
 %$ % Call the tested routine.
-%$ d = dynDates(B1,B2,B3,B4);
+%$ d = dates(B1,B2,B3,B4);
 %$
 %$ % Check the results.
 %$ t(1) = dyn_assert(d.time,e.time);
@@ -168,13 +187,51 @@ end
 %@eof:3
 
 %@test:4
-%$ % Define a dynDates object
-%$ B = dynDate('1950Q1'):dynDate('1960Q3');
+%$ % Define a dates object
+%$ B = dates('1950Q1'):dates('1960Q3');
 %$
 %$
 %$ % Call the tested routine.
 %$ d = B(2);
-%$ if isa(d,'dynDate')
+%$ if isa(d,'dates')
+%$     t(1) = 1;
+%$ else
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dyn_assert(d.freq,B.freq);
+%$     t(3) = dyn_assert(d.time,[1950 2]);
+%$ end
+%$ T = all(t);
+%@eof:4
+
+%@test:5
+%$ % Define a dates object
+%$ B = dates(4,1950,1):dates(4,1960,3);
+%$
+%$ % Call the tested routine.
+%$ d = B(2);
+%$ if isa(d,'dates')
+%$     t(1) = 1;
+%$ else
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dyn_assert(d.freq,B.freq);
+%$     t(3) = dyn_assert(d.time,[1950 2]);
+%$ end
+%$ T = all(t);
+%@eof:5
+
+%@test:6
+%$ % Define a dates object
+%$ B = dates(4,[1950 1]):dates(4,[1960 3]);
+%$
+%$ % Call the tested routine.
+%$ d = B(2);
+%$ if isa(d,'dates')
 %$     t(1) = 1;
 %$ else
 %$     t(1) = 0;
@@ -185,4 +242,4 @@ end
 %$     t(3) = dyn_assert(d.time,[1950 2]);
 %$ end
 %$ T = all(t);
-%@eof:4
\ No newline at end of file
+%@eof:6
\ No newline at end of file
diff --git a/matlab/@dynDates/disp.m b/matlab/@dates/disp.m
similarity index 78%
rename from matlab/@dynDates/disp.m
rename to matlab/@dates/disp.m
index 7287aa15c7f7187b68cb66015cfa39449f253952..9c012fea451cf02dd3ccd9234cb116fba74d43d8 100644
--- a/matlab/@dynDates/disp.m
+++ b/matlab/@dates/disp.m
@@ -18,18 +18,18 @@ function disp(dd)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if isempty(dd)
-    fprintf('Empty dynDates object.\n');
+    fprintf('Empty dates object.\n');
     return
 end
     
 max_displayed = 5;
 first_displayed = 2;
     
-fprintf('<dynDates: ');
+fprintf('<dates: ');
     
 if dd.ndat<=max_displayed
     for i=1:dd.ndat
-        fprintf(format(dynDate(dd.time(i,:),dd.freq)))
+        fprintf(date2string(dd.time(i,:),dd.freq))
         if i<dd.ndat
             fprintf(', ')
         else
@@ -38,12 +38,12 @@ if dd.ndat<=max_displayed
     end
 else
     for i=1:first_displayed
-        fprintf(format(dynDate(dd.time(i,:),dd.freq)))
+        fprintf(date2string(dd.time(i,:),dd.freq))
         fprintf(', ')
     end
     fprintf(' ..., ')
-    fprintf(format(dynDate(dd.time(dd.ndat-1,:),dd.freq)))
+    fprintf(date2string(dd.time(dd.ndat-1,:),dd.freq))
     fprintf(', ')
-    fprintf(format(dynDate(dd.time(dd.ndat,:),dd.freq)))
+    fprintf(date2string(dd.time(dd.ndat,:),dd.freq))
     fprintf('>\n')
 end
diff --git a/matlab/@dynDates/display.m b/matlab/@dates/display.m
similarity index 75%
rename from matlab/@dynDates/display.m
rename to matlab/@dates/display.m
index 1f3482241a1455cc4578ff27ea403467b6eabd75..2d230dc8510fd4e828228f4b102b287699e81f52 100644
--- a/matlab/@dynDates/display.m
+++ b/matlab/@dates/display.m
@@ -18,18 +18,18 @@ function display(dd)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if isempty(dd)
-    fprintf('%s is an empty dynDates object.\n', inputname(1));
+    fprintf('%s is an empty dates object.\n', inputname(1));
     return
 end
-    
+
 max_displayed = 5;
 first_displayed = 2;
     
-fprintf('%s = <dynDates: ', inputname(1));
-    
+fprintf('%s = <dates: ', inputname(1));
+
 if dd.ndat<=max_displayed
     for i=1:dd.ndat
-        fprintf(format(dynDate(dd.time(i,:),dd.freq)))
+        fprintf(date2string(dd.time(i,:),dd.freq))
         if i<dd.ndat
             fprintf(', ')
         else
@@ -38,12 +38,12 @@ if dd.ndat<=max_displayed
     end
 else
     for i=1:first_displayed
-        fprintf(format(dynDate(dd.time(i,:),dd.freq)))
+        fprintf(date2string(dd.time(i,:),dd.freq))
         fprintf(', ')
     end
     fprintf(' ..., ')
-    fprintf(format(dynDate(dd.time(dd.ndat-1,:),dd.freq)))
+    fprintf(date2string(dd.time(dd.ndat-1,:),dd.freq))
     fprintf(', ')
-    fprintf(format(dynDate(dd.time(dd.ndat,:),dd.freq)))
+    fprintf(date2string(dd.time(dd.ndat,:),dd.freq))
     fprintf('>\n')
 end
\ No newline at end of file
diff --git a/matlab/@dates/double.m b/matlab/@dates/double.m
new file mode 100644
index 0000000000000000000000000000000000000000..4306199b5a1f85546e61487c30700e6e7f5ce687
--- /dev/null
+++ b/matlab/@dates/double.m
@@ -0,0 +1,81 @@
+function [B, C]  = double(A) % --*-- Unitary tests --*--
+
+% Returns a vector of doubles with the fractional part corresponding
+% to the subperiod. Used for plots and to store dates in a matrix.
+%
+% INPUTS 
+%  o A     dates object.
+%
+% OUTPUTS  
+%  o B     A.ndat*1 vector of doubles.
+%  o C     integer scalar, the frequency (1, 4, 12 or 52).
+%
+% REMARKS 
+%  Obviously the frequency is lost during the conversion.
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+B = A.time(:,1)+(A.time(:,2)-1)/A.freq;
+if nargout>1
+    C = A.freq;
+end
+
+%@test:1
+%$ % Define a dates object
+%$ qq = dates('Q');
+%$ B = qq(1950,1):qq(1951,1);
+%$
+%$ % Call the tested routine.
+%$ try
+%$     C = double(B);
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ % Define expected results.
+%$ E = [ones(4,1)*1950; 1951];
+%$ E = E + [(transpose(1:4)-1)/4; 0];
+%$ if t(1)
+%$     t(2) = dyn_assert(isequal(C,E),1);
+%$ end
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define a dates object
+%$ qq = dates('Q');
+%$
+%$ % Call the tested routine.
+%$ try
+%$     C = NaN(2,1);
+%$     C(1) = double(qq(1950,1));
+%$     C(2) = double(qq(1950,2));
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ % Define expected results.
+%$ E = ones(2,1)*1950;
+%$ E = E + [0; .25];
+%$ if t(1)
+%$     t(2) = dyn_assert(isequal(C,E),1);
+%$ end
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/@dynDates/end.m b/matlab/@dates/end.m
similarity index 78%
rename from matlab/@dynDates/end.m
rename to matlab/@dates/end.m
index 40a26e5a5d880758166cc5743dc9c08924e28acb..d1f04449f98c07d3ac7987dcea8fd91f071a9cf1 100644
--- a/matlab/@dynDates/end.m
+++ b/matlab/@dates/end.m
@@ -1,14 +1,14 @@
 function lastIndex = end(o, k, n)
-% function lastIndex = end(o, k, n)
-% End keyword
+
+% Overloads end keyword.
 %
 % INPUTS
-%   o              [dynDates] dynDates object
+%   o              [dates] dates object
 %   k              [integer]  index where end appears
 %   n              [integer]  number of indices
 %
 % OUTPUTS
-%   lastIndex      [integer] last dynDates index
+%   lastIndex      [integer] last dates index
 %
 % SPECIAL REQUIREMENTS
 %   none
@@ -30,6 +30,5 @@ function lastIndex = end(o, k, n)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-assert(k==1 && n==1, '@dynDates/end: dynDates only has one dimension');
-lastIndex = o.ndat;
-end
\ No newline at end of file
+assert(k==1 && n==1, 'dates::end: dates only has one dimension');
+lastIndex = o.ndat;
\ No newline at end of file
diff --git a/matlab/@dates/eq.m b/matlab/@dates/eq.m
new file mode 100644
index 0000000000000000000000000000000000000000..16983d184badf4ca7ab1897c91874428792d376b
--- /dev/null
+++ b/matlab/@dates/eq.m
@@ -0,0 +1,102 @@
+function C = eq(A,B) % --*-- Unitary tests --*--
+
+% Overloads == operator for dates objects.
+%
+% INPUTS 
+%  o A    dates object with n or 1 elements.
+%  o B    dates object with n or 1 elements.
+%
+% OUTPUTS 
+%  o C    column vector of max(n,1) elements (zeros or ones).
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~isequal(nargin,2)
+    error('dates::eq: I need exactly two input arguments!')
+end
+
+if ~isa(A,'dates') || ~isa(B,'dates')
+    error(['dates::eq: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be a dates objects!'])
+end
+
+if ~isequal(A.freq,B.freq)
+    C = 0;
+    return
+end
+
+if isequal(A.ndat, B.ndat)
+    C = transpose(all(transpose(eq(A.time,B.time))));
+else
+    if isequal(A.ndat,1) || isequal(B.ndat,1)
+        C = transpose(all(transpose(bsxfun(@eq,A.time,B.time))));
+    else
+        C = 0;
+    end
+end
+
+%@test:1
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4') ;
+%$ d2 = dates('1960Q1','1960Q2','1960Q3','1960Q4') ;
+%$ d3 = dates('1950Q1','1960Q2','1950Q3','1960Q4') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1==d1;
+%$ t2 = d1==d2;
+%$ t3 = d1==d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,ones(4,1));
+%$ t(2) = dyn_assert(t2,zeros(4,1));
+%$ t(2) = dyn_assert(t3,[1; 0; 1; 0]);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1') ;
+%$ d2 = dates('1960Q1') ;
+%$ d3 = dates('1960Q1') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1==d1;
+%$ t2 = d1==d2;
+%$ t3 = d1==d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,1);
+%$ t(2) = dyn_assert(t2,0);
+%$ t(2) = dyn_assert(t3,0);
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4') ;
+%$ d2 = dates('1950Q2') ;
+%$ d3 = dates('1970Q1') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1==d2;
+%$ t2 = d1==d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,[0; 1; 0; 0]);
+%$ t(2) = dyn_assert(t2,zeros(4,1));
+%$ T = all(t);
+%@eof:3
diff --git a/matlab/@dates/ge.m b/matlab/@dates/ge.m
new file mode 100644
index 0000000000000000000000000000000000000000..8f18cf7abe5914049639e7172c5afb88091044d3
--- /dev/null
+++ b/matlab/@dates/ge.m
@@ -0,0 +1,112 @@
+function C = ge(A,B)  % --*-- Unitary tests --*--
+
+% Overloads the >= operator for dates objects.
+%
+% INPUTS 
+%  o A    dates object with n or 1 elements.
+%  o B    dates object with n or 1 elements.
+%
+% OUTPUTS 
+%  o C    column vector of max(n,1) elements (zeros or ones).
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~isequal(nargin,2)
+    error('dates::ge: I need exactly two input arguments!')
+end
+
+if ~isa(A,'dates') || ~isa(B,'dates')
+    error(['dates::ge: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be a dates objects!'])
+end
+
+if ~isequal(A.freq,B.freq)
+    C = 0;
+    return
+end
+
+if isequal(A.ndat, B.ndat)
+    C = (A==B);
+    idx = find(C==0);
+    for i=1:length(idx)
+        C(idx(i)) = compare_vectors(@gt, A.time(idx(i),:), B.time(idx(i),:));
+    end
+else
+    if isequal(A.ndat,1) && isequal(B.ndat,1)
+        C = compare_vectors(@ge, A.time, B.time);
+    elseif isequal(A.ndat,1)
+        C = NaN(B.ndat,1);
+        for i=1:B.ndat
+            C(i) = compare_vectors(@ge, A.time, B.time(i,:));
+        end
+    elseif isequal(B.ndat,1)
+        C = NaN(A.ndat,1);
+        for i=1:A.ndat
+            C(i) = compare_vectors(@ge, A.time(i,:), B.time);
+        end
+    else
+        C = 0;
+    end
+end
+
+%@test:1
+%$ % Define some dates
+%$ date_2 = '1950Q2';
+%$ date_3 = '1950Q3';
+%$ date_4 = '1950Q1';
+%$ date_5 = '1949Q2';
+%$
+%$ % Call the tested routine.
+%$ d2 = dates(date_2);
+%$ d3 = dates(date_3);
+%$ d4 = dates(date_4);
+%$ d5 = dates(date_5);
+%$ i1 = (d2>=d3);
+%$ i2 = (d3>=d4);
+%$ i3 = (d4>=d2);
+%$ i4 = (d5>=d4);
+%$ i5 = (d5>=d5); 
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i1,0);
+%$ t(2) = dyn_assert(i2,1);
+%$ t(3) = dyn_assert(i3,0);
+%$ t(4) = dyn_assert(i4,0);
+%$ t(5) = dyn_assert(i5,1);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates
+%$ B1 = '1945Q1';
+%$ B2 = '1945Q2';
+%$ B3 = '1945Q3';
+%$ B4 = '1945Q4';
+%$ B5 = '1950Q1';
+%$
+%$ % Create dates objects.
+%$ dd = dates(B1,B2,B3,B4);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(dates(B1)>=dates(B2),0);
+%$ t(2) = dyn_assert(dates(B2)>=dates(B1),1);
+%$ t(3) = dyn_assert(dates(B2)>=dates(B2),1);
+%$ t(4) = dyn_assert(dd>=dates(B5),zeros(4,1));
+%$ t(5) = dyn_assert(dates(B5)>=dd,ones(4,1));
+%$ t(6) = dyn_assert(dates(B1)>=dd,[1; zeros(3,1)]);
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/@dates/gt.m b/matlab/@dates/gt.m
new file mode 100644
index 0000000000000000000000000000000000000000..241dd729e046c2d4aabdc6317b48cb9c54c374bf
--- /dev/null
+++ b/matlab/@dates/gt.m
@@ -0,0 +1,109 @@
+function C = gt(A,B)  % --*-- Unitary tests --*--
+
+% Overloads the > operator for dates objects.
+%
+% INPUTS 
+%  o A    dates object with n or 1 elements.
+%  o B    dates object with n or 1 elements.
+%
+% OUTPUTS 
+%  o C    column vector of max(n,1) elements (zeros or ones).
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~isequal(nargin,2)
+    error('dates::gt: I need exactly two input arguments!')
+end
+
+if ~isa(A,'dates') || ~isa(B,'dates')
+    error(['dates::gt: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be a dates objects!'])
+end
+
+if ~isequal(A.freq,B.freq)
+    C = 0;
+    return
+end
+
+if isequal(A.ndat, B.ndat)
+    C = NaN(A.ndat,1);
+    for i=1:A.ndat
+        C(i) = compare_vectors(@gt, A.time(i,:), B.time(i,:));
+    end
+else
+    if isequal(A.ndat,1) && isequal(B.ndat,1)
+        C = compare_vectors(@gt, A.time, B.time);
+    elseif isequal(A.ndat,1)
+        C = NaN(B.ndat,1);
+        for i=1:B.ndat
+            C(i) = compare_vectors(@gt, A.time, B.time(i,:));
+        end
+    elseif isequal(B.ndat,1)
+        C = NaN(A.ndat,1);
+        for i=1:A.ndat
+            C(i) = compare_vectors(@gt, A.time(i,:), B.time);
+        end
+    else
+        C = 0;
+    end
+end
+
+%@test:1
+%$ % Define some dates
+%$ date_2 = '1950Q2';
+%$ date_3 = '1950Q3';
+%$ date_4 = '1950Q1';
+%$ date_5 = '1949Q2';
+%$
+%$ % Call the tested routine.
+%$ d2 = dates(date_2);
+%$ d3 = dates(date_3);
+%$ d4 = dates(date_4);
+%$ d5 = dates(date_5);
+%$ i1 = (d2>d3);
+%$ i2 = (d3>d4);
+%$ i3 = (d4>d2);
+%$ i4 = (d5>d4);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i1,0);
+%$ t(2) = dyn_assert(i2,1);
+%$ t(3) = dyn_assert(i3,0);
+%$ t(4) = dyn_assert(i4,0);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates
+%$ B1 = '1945Q1';
+%$ B2 = '1945Q2';
+%$ B3 = '1945Q3';
+%$ B4 = '1945Q4';
+%$ B5 = '1950Q1';
+%$
+%$ % Create dates objects.
+%$ dd = dates(B1,B2,B3,B4);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(dates(B1)>dates(B2),0);
+%$ t(2) = dyn_assert(dates(B2)>dates(B1),1);
+%$ t(3) = dyn_assert(dates(B5)>dates(B1),1);
+%$ t(4) = dyn_assert(dd>dates(B5),zeros(4,1));
+%$ t(5) = dyn_assert(dates(B5)>dd,ones(4,1));
+%$ t(6) = dyn_assert(dates(B1)>dd,[0; zeros(3,1)]);
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/@dates/horzcat.m b/matlab/@dates/horzcat.m
new file mode 100644
index 0000000000000000000000000000000000000000..8bc1eddd33c5a824b7f9eefeaeccaa551ba17400
--- /dev/null
+++ b/matlab/@dates/horzcat.m
@@ -0,0 +1,152 @@
+function B = horzcat(varargin) % --*-- Unitary tests --*--
+
+% Overloads the horzcat method for dates objects.
+%
+% INPUTS 
+%  o A1    dates object.
+%  o A2    dates object.
+%  o ...
+%
+% OUTPUTS 
+%  o B    dates object containing dates defined in A1, A2, ...
+%
+% EXAMPLE 1 
+%  If A, B and C are dates objects the following syntax:
+%    
+%    D = [A, B, C] ;
+%
+%  Defines a dates object D containing the dates appearing in A, B and C.
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~all(cellfun(@isdates,varargin))
+    error('dates::horzcat: All input arguments must be dates objects.')
+end
+
+n = nargin;
+B = varargin{1};
+
+if isequal(n,1), return, end
+
+for i=2:n
+    C = varargin{i};
+    if isequal(B.freq,C.freq)
+        if ~isempty(C)
+            B.ndat = B.ndat + C.ndat;
+            B.time = [B.time; C.time];
+        end
+    else
+        error('dates::horzcat: All input arguments must have the same frequency!')
+    end
+end
+
+%@test:1
+%$ % Define some dates
+%$ B1 = '1953Q4';
+%$ B2 = '1950Q2';
+%$ B3 = '1950Q1';
+%$ B4 = '1945Q3';
+%$ B5 = '2009Q2';
+%$
+%$ % Define expected results.
+%$ e.time = [1945 3; 1950 1; 1950 2; 1953 4; 2009 2];
+%$ e.freq = 4;
+%$ e.ndat = 5;
+%$
+%$ % Call the tested routine.
+%$ d = dates(B4,B3,B2,B1);
+%$ d = [d, dates(B5)];
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d.time,e.time);
+%$ t(2) = dyn_assert(d.freq,e.freq);
+%$ t(3) = dyn_assert(d.ndat,e.ndat);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates
+%$ B1 = '1953Q4';
+%$ B2 = '1950Q2';
+%$ B3 = '1950Q1';
+%$ B4 = '1945Q3';
+%$ B5 = '2009Q2';
+%$
+%$ % Define expected results.
+%$ e.time = [1945 3; 1950 1; 1950 2; 1953 4; 2009 2];
+%$ e.freq = 4;
+%$ e.ndat = 5;
+%$
+%$ % Call the tested routine.
+%$ d = dates(B4,B3,B2);
+%$ d = [d, dates(B1), dates(B5)];
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d.time,e.time);
+%$ t(2) = dyn_assert(d.freq,e.freq);
+%$ t(3) = dyn_assert(d.ndat,e.ndat);
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define some dates
+%$ B1 = '1953Q4';
+%$ B2 = '1950Q2';
+%$ B3 = '1950Q1';
+%$ B4 = '1945Q3';
+%$ B5 = '2009Q2';
+%$
+%$ % Define expected results.
+%$ e.time = [1945 3; 1950 1; 1950 2; 1953 4; 2009 2];
+%$ e.freq = 4;
+%$ e.ndat = 5;
+%$
+%$ % Call the tested routine.
+%$ d = dates(B4,B3,B2);
+%$ d = [d, dates(B1,B5)];
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d.time,e.time);
+%$ t(2) = dyn_assert(d.freq,e.freq);
+%$ t(3) = dyn_assert(d.ndat,e.ndat);
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ % Define some dates
+%$ B1 = '1953Q4';
+%$ B2 = '1950Q2';
+%$ B3 = '1950Q1';
+%$ B4 = '1945Q3';
+%$ B5 = '2009Q2';
+%$
+%$ % Define expected results.
+%$ e.time = [1945 3; 1950 1; 1950 2; 1953 4; 2009 2];
+%$ e.freq = 4;
+%$ e.ndat = 5;
+%$
+%$ % Call the tested routine.
+%$ d = dates(B4,B3,B2);
+%$ d = [d, [dates(B1), dates(B5)]];
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d.time,e.time);
+%$ t(2) = dyn_assert(d.freq,e.freq);
+%$ t(3) = dyn_assert(d.ndat,e.ndat);
+%$ T = all(t);
+%@eof:4
\ No newline at end of file
diff --git a/matlab/@dynDates/intersect.m b/matlab/@dates/intersect.m
similarity index 69%
rename from matlab/@dynDates/intersect.m
rename to matlab/@dates/intersect.m
index e5c2a1b8a6c09d1d8f1f0059ff151a698e0d9e89..cd427918c572cf521509740d4ed5d2cffe4e3222 100644
--- a/matlab/@dynDates/intersect.m
+++ b/matlab/@dates/intersect.m
@@ -2,7 +2,7 @@ function C = intersect(A,B) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{C} =} intersect (@var{A},@var{B})
-%! @anchor{@dynDates/intersect}
+%! @anchor{@dates/intersect}
 %! @sp 1
 %! C of B and A.
 %! if A and B are not disjoints.
@@ -11,16 +11,16 @@ function C = intersect(A,B) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @ @var
 %! @item A
-%! @ref{dynDates} object.
+%! @ref{dates} object.
 %! @item B
-%! @ref{dynDates} object.
+%! @ref{dates} object.
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
 %! @sp 1
 %! @table @ @var
 %! @item C
-%! @ref{dynDates} object.
+%! @ref{dates} object.
 %! @end table
 %! @end deftypefn
 %@eod:
@@ -42,8 +42,8 @@ function C = intersect(A,B) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if ~isa(A,'dynDates') || ~isa(B,'dynDates')
-    error(['dynDates::plus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' must be dynDates objects!'])
+if ~isa(A,'dates') || ~isa(B,'dates')
+    error(['dates::plus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' must be dates objects!'])
 end
 
 if eq(A,B)
@@ -52,13 +52,17 @@ if eq(A,B)
 end
 
 if ~isequal(A.freq,B.freq)
-    C = dynDates();
+    C = dates();
     return
 end
 
-time = intersect(A.time,B.time,'rows');
+if isoctave || matlab_ver_less_than('8.1.0')
+    time = intersect(A.time,B.time,'rows');
+else
+    time = intersect(A.time,B.time,'rows','legacy');
+end
 
-C = dynDates();
+C = dates();
 if isempty(time)
     return
 end
@@ -68,17 +72,17 @@ C.time = time;
 C.ndat = rows(time); 
 
 %@test:1
-%$ % Define some dynDates objects
-%$ d1 = dynDate('1950Q1'):dynDate('1969Q4') ;
-%$ d2 = dynDate('1960Q1'):dynDate('1969Q4') ;
-%$ d3 = dynDate('1970Q1'):dynDate('1979Q4') ;
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1'):dates('1969Q4') ;
+%$ d2 = dates('1960Q1'):dates('1969Q4') ;
+%$ d3 = dates('1970Q1'):dates('1979Q4') ;
 %$
 %$ % Call the tested routine.
 %$ c1 = intersect(d1,d2);
 %$ c2 = intersect(d1,d3);
 %$
 %$ % Check the results.
-%$ t(1) = dyn_assert(c1==d2,1);
+%$ t(1) = dyn_assert(isequal(c1,d2),1);
 %$ t(2) = dyn_assert(isempty(c2),1);
 %$ T = all(t);
 %@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDates/isempty.m b/matlab/@dates/isempty.m
similarity index 82%
rename from matlab/@dynDates/isempty.m
rename to matlab/@dates/isempty.m
index 935d8d06c32f4fe2fcfd2479215cb8b043342130..859f7a785ed3e8a364d9a8e07e2b175a3cf6422b 100644
--- a/matlab/@dynDates/isempty.m
+++ b/matlab/@dates/isempty.m
@@ -2,15 +2,15 @@ function B = isempty(A) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{B} =} isempty (@var{A})
-%! @anchor{@dynDates/isempty}
+%! @anchor{@dates/isempty}
 %! @sp 1
-%! Overloads the isempty function for the @ref{dynDates} class.
+%! Overloads the isempty function for the @ref{dates} class.
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item A
-%! @ref{dynDates} object.
+%! @ref{dates} object.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -39,11 +39,11 @@ function B = isempty(A) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
     
-B = all(isnan(A.time(:))) && isnan(A.freq) && isequal(A.ndat,0);
+B = isequal(A.ndat,0);
 
 %@test:1
-%$ % Instantiate an empty dynDate object
-%$ d = dynDates();
+%$ % Instantiate an empty dates object
+%$ d = dates();
 %$ % Test if this object is empty
 %$ t(1) = isempty(d);
 %$ T = all(t);
diff --git a/matlab/reports/@objArray/getObjs.m b/matlab/@dates/isequal.m
similarity index 68%
rename from matlab/reports/@objArray/getObjs.m
rename to matlab/@dates/isequal.m
index a3b239a4a2f08700eefada078d26f3e0c7d1d9c2..1e436b96901356f1656cb720d1ce1ed9d4c6c7df 100644
--- a/matlab/reports/@objArray/getObjs.m
+++ b/matlab/@dates/isequal.m
@@ -1,6 +1,7 @@
-function e = getObjs(oa, varargin)
-%function e = getObjs(oa, varargin)
+function C = isequal(A,B)
 
+% Overloads isequal function for dates objects.
+    
 % Copyright (C) 2013 Dynare Team
 %
 % This file is part of Dynare.
@@ -18,13 +19,18 @@ function e = getObjs(oa, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-switch nargin
-    case 1
-        e = oa.objs;
-    case 2
-        assert(isnumeric(varargin{1}));
-        e = oa.objs{varargin{1}};
-    otherwise
-        error('@objArray.getObjs: invalid number of arguments');
+if ~isa(A,'dates') || ~isa(B,'dates')
+    error('dates::isequal: Both inputs must be dates objects!')
 end
-end
\ No newline at end of file
+
+if ~isequal(A.freq, B.freq)
+    C = 0;
+    return
+end
+
+if ~isequal(A.ndat, B.ndat)
+    C = 0;
+    return
+end
+
+C = isequal(A.time,B.time);
\ No newline at end of file
diff --git a/matlab/@dates/le.m b/matlab/@dates/le.m
new file mode 100644
index 0000000000000000000000000000000000000000..228317228398a2a89dc95c718b43a38757e20b9f
--- /dev/null
+++ b/matlab/@dates/le.m
@@ -0,0 +1,112 @@
+function C = le(A,B)  % --*-- Unitary tests --*--
+
+% Overloads the <= operator for dates objects.
+%
+% INPUTS 
+%  o A    dates object with n or 1 elements.
+%  o B    dates object with n or 1 elements.
+%
+% OUTPUTS 
+%  o C    column vector of max(n,1) elements (zeros or ones).
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~isequal(nargin,2)
+    error('dates::le: I need exactly two input arguments!')
+end
+
+if ~isa(A,'dates') || ~isa(B,'dates')
+    error(['dates::le: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be a dates objects!'])
+end
+
+if ~isequal(A.freq,B.freq)
+    C = 0;
+    return
+end
+
+if isequal(A.ndat, B.ndat)
+    C = (A==B);
+    idx = find(C==0);
+    for i=1:length(idx)
+        C(idx(i)) = compare_vectors(@lt, A.time(idx(i),:), B.time(idx(i),:));
+    end
+else
+    if isequal(A.ndat,1) && isequal(B.ndat,1)
+        C = compare_vectors(@le, A.time, B.time);
+    elseif isequal(A.ndat,1)
+        C = NaN(B.ndat,1);
+        for i=1:B.ndat
+            C(i) = compare_vectors(@le, A.time, B.time(i,:));
+        end
+    elseif isequal(B.ndat,1)
+        C = NaN(A.ndat,1);
+        for i=1:A.ndat
+            C(i) = compare_vectors(@le, A.time(i,:), B.time);
+        end
+    else
+        C = 0;
+    end
+end
+
+%@test:1
+%$ % Define some dates
+%$ date_2 = '1950Q2';
+%$ date_3 = '1950Q3';
+%$ date_4 = '1950Q1';
+%$ date_5 = '1949Q2';
+%$
+%$ % Call the tested routine.
+%$ d2 = dates(date_2);
+%$ d3 = dates(date_3);
+%$ d4 = dates(date_4);
+%$ d5 = dates(date_5);
+%$ i1 = (d2<=d3);
+%$ i2 = (d3<=d4);
+%$ i3 = (d4<=d2);
+%$ i4 = (d5<=d4);
+%$ i5 = (d5<=d5); 
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i1,1);
+%$ t(2) = dyn_assert(i2,0);
+%$ t(3) = dyn_assert(i3,1);
+%$ t(4) = dyn_assert(i4,1);
+%$ t(5) = dyn_assert(i5,1);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates
+%$ B1 = '1945Q1';
+%$ B2 = '1945Q2';
+%$ B3 = '1945Q3';
+%$ B4 = '1945Q4';
+%$ B5 = '1950Q1';
+%$
+%$ % Create dates objects.
+%$ dd = dates(B1,B2,B3,B4);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(dates(B1)<=dates(B2),1);
+%$ t(2) = dyn_assert(dates(B2)<=dates(B1),0);
+%$ t(3) = dyn_assert(dates(B2)<=dates(B2),1);
+%$ t(4) = dyn_assert(dd<=dates(B5),ones(4,1));
+%$ t(5) = dyn_assert(dates(B5)<=dd,zeros(4,1));
+%$ t(6) = dyn_assert(dates(B1)<=dd,ones(4,1));
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/reports/@elements/numElements.m b/matlab/@dates/length.m
similarity index 88%
rename from matlab/reports/@elements/numElements.m
rename to matlab/@dates/length.m
index 73355b0d30ee16cdc11c6a14ded6278ca8cebcb9..26c24d13affcfdbdccf3812eeadd413c564fe43c 100644
--- a/matlab/reports/@elements/numElements.m
+++ b/matlab/@dates/length.m
@@ -1,5 +1,6 @@
-function n = numElements(o)
-% function n = numElements(o)
+function n = length(A)
+
+% Returns the number of elements in a dates object.
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -18,5 +19,4 @@ function n = numElements(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-n = o.objArray.numObjArray();
-end
\ No newline at end of file
+n = A.ndat;
\ No newline at end of file
diff --git a/matlab/@dates/lt.m b/matlab/@dates/lt.m
new file mode 100644
index 0000000000000000000000000000000000000000..3707b6861e71d3a7445203152cda7aceb8c05ef7
--- /dev/null
+++ b/matlab/@dates/lt.m
@@ -0,0 +1,109 @@
+function C = lt(A,B)  % --*-- Unitary tests --*--
+
+% Overloads the < operator for dates objects.
+%
+% INPUTS 
+%  o A    dates object with n or 1 elements.
+%  o B    dates object with n or 1 elements.
+%
+% OUTPUTS 
+%  o C    column vector of max(n,1) elements (zeros or ones).
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~isequal(nargin,2)
+    error('dates::lt: I need exactly two input arguments!')
+end
+
+if ~isa(A,'dates') || ~isa(B,'dates')
+    error(['dates::lt: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be a dates objects!'])
+end
+
+if ~isequal(A.freq,B.freq)
+    C = 0;
+    return
+end
+
+if isequal(A.ndat, B.ndat)
+    C = NaN(A.ndat,1);
+    for i=1:A.ndat
+        C(i) = compare_vectors(@lt, A.time(i,:), B.time(i,:));
+    end
+else
+    if isequal(A.ndat,1) && isequal(B.ndat,1)
+        C = compare_vectors(@lt, A.time, B.time);
+    elseif isequal(A.ndat,1)
+        C = NaN(B.ndat,1);
+        for i=1:B.ndat
+            C(i) = compare_vectors(@lt, A.time, B.time(i,:));
+        end
+    elseif isequal(B.ndat,1)
+        C = NaN(A.ndat,1);
+        for i=1:A.ndat
+            C(i) = compare_vectors(@lt, A.time(i,:), B.time);
+        end
+    else
+        C = 0;
+    end
+end
+
+%@test:1
+%$ % Define some dates
+%$ date_2 = '1950Q2';
+%$ date_3 = '1950Q3';
+%$ date_4 = '1950Q1';
+%$ date_5 = '1949Q2';
+%$
+%$ % Call the tested routine.
+%$ d2 = dates(date_2);
+%$ d3 = dates(date_3);
+%$ d4 = dates(date_4);
+%$ d5 = dates(date_5);
+%$ i1 = (d2<d3);
+%$ i2 = (d3<d4);
+%$ i3 = (d4<d2);
+%$ i4 = (d5<d4);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i1,1);
+%$ t(2) = dyn_assert(i2,0);
+%$ t(3) = dyn_assert(i3,1);
+%$ t(4) = dyn_assert(i4,1);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates
+%$ B1 = '1945Q1';
+%$ B2 = '1945Q2';
+%$ B3 = '1945Q3';
+%$ B4 = '1945Q4';
+%$ B5 = '1950Q1';
+%$
+%$ % Create dates objects.
+%$ dd = dates(B1,B2,B3,B4);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(dates(B1)<dates(B2),1);
+%$ t(2) = dyn_assert(dates(B2)<dates(B1),0);
+%$ t(3) = dyn_assert(dates(B2)<dates(B1),0);
+%$ t(4) = dyn_assert(dd<dates(B5),ones(4,1));
+%$ t(5) = dyn_assert(dates(B5)<dd,zeros(4,1));
+%$ t(6) = dyn_assert(dates(B1)<dd,[0; ones(3,1)]);
+%$ T = all(t);
+%@eof:2
diff --git a/matlab/@dates/max.m b/matlab/@dates/max.m
new file mode 100644
index 0000000000000000000000000000000000000000..e7af8c4b81cfa22b5aaeecac77b135d5f6076ee6
--- /dev/null
+++ b/matlab/@dates/max.m
@@ -0,0 +1,86 @@
+function C = max(varargin)
+    
+% Overloads the max function for dates objects.
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+switch nargin
+  case 1
+    switch length(varargin{1})
+      case 0
+        C= dates();
+      case 1
+        C = varargin{1};
+      otherwise
+        tmp = sortrows(varargin{1}.time);
+        C = dates();
+        C.freq = varargin{1}.freq;
+        C.ndat = 1;
+        C.time = tmp(varargin{1}.ndat,:);
+    end
+  otherwise
+    C = max(horzcat(varargin{:}));
+end
+
+%@test:1
+%$ % Define some dates
+%$ d3 = dates('1950q2');
+%$ d4 = dates('1950Q3');
+%$ d5 = dates('1950m1');
+%$ d6 = dates('1948M6');
+%$ m2 = max(d3,d4);
+%$ i2 = (m2==d4);
+%$ m3 = max(d5,d6);
+%$ i3 = (m3==d5);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i2,1);
+%$ t(2) = dyn_assert(i3,1);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates
+%$ d = dates('1950Q2','1951Q3','1949Q1','1950Q4');
+%$ m = max(d);
+%$ i = (m==dates('1951Q3'));
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i,1);
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define some dates
+%$ m = max(dates('1950Q2','1951Q3'),dates('1949Q1'),dates('1950Q4'));
+%$ i = (m==dates('1951Q3'));
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i,1);
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ % Define some dates
+%$ m = max(dates('1950Q2'),dates('1951Q3'),dates('1949Q1'),dates('1950Q4'));
+%$ i = (m==dates('1951Q3'));
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i,1);
+%$ T = all(t);
+%@eof:4
\ No newline at end of file
diff --git a/matlab/@dates/min.m b/matlab/@dates/min.m
new file mode 100644
index 0000000000000000000000000000000000000000..1bdfe3c57fe25f8d6e77faf7d1859035513bad05
--- /dev/null
+++ b/matlab/@dates/min.m
@@ -0,0 +1,86 @@
+function C = min(varargin)
+    
+% Overloads the min function for dates objects.
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+switch nargin
+  case 1
+    switch length(varargin{1})
+      case 0
+        C= dates();
+      case 1
+        C = varargin{1};
+      otherwise
+        tmp = sortrows(varargin{1}.time);
+        C = dates();
+        C.freq = varargin{1}.freq;
+        C.ndat = 1;
+        C.time = tmp(1,:);
+    end
+  otherwise
+    C = min(horzcat(varargin{:}));
+end
+
+%@test:1
+%$ % Define some dates
+%$ d3 = dates('1950q2');
+%$ d4 = dates('1950Q3');
+%$ d5 = dates('1950m1');
+%$ d6 = dates('1948M6');
+%$ m2 = min(d3,d4);
+%$ i2 = (m2==d3);
+%$ m3 = min(d5,d6);
+%$ i3 = (m3==d6);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i2,1);
+%$ t(2) = dyn_assert(i3,1);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates
+%$ d = dates('1950Q2','1951Q3','1949Q1','1950Q4');
+%$ m = min(d);
+%$ i = (m==dates('1949Q1'));
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i,1);
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define some dates
+%$ m = min(dates('1950Q2','1951Q3'),dates('1949Q1'),dates('1950Q4'));
+%$ i = (m==dates('1949Q1'));
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i,1);
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ % Define some dates
+%$ m = min(dates('1950Q2'),dates('1951Q3'),dates('1949Q1'),dates('1950Q4'));
+%$ i = (m==dates('1949Q1'));
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i,1);
+%$ T = all(t);
+%@eof:4
\ No newline at end of file
diff --git a/matlab/@dates/minus.m b/matlab/@dates/minus.m
new file mode 100644
index 0000000000000000000000000000000000000000..4c90ff566af0f1762e6ccc1d6203308e93859112
--- /dev/null
+++ b/matlab/@dates/minus.m
@@ -0,0 +1,154 @@
+function C = minus(A,B) % --*-- Unitary tests --*--
+
+% Overloads the minus operator (-). If A and B are dates objects, the method returns the number of periods between A and B (so that A+C=B). If 
+% one of the inputs is an integer or a vector of integers, the method shifts the dates object by X (the interger input) periods backward.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if isa(B,'dates')
+    if ~isequal(A.freq,B.freq)
+        error(['dates::minus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' must have common frequencies!'])
+    end
+    if isempty(A) || isempty(B)
+        error(['dates::minus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' must not be empty!'])
+    end
+    if ~isequal(length(A),length(B))
+        if length(A)==1
+            A.time = repmat(A.time,B.ndat,1);
+            A.ndat = B.ndat;
+        elseif length(B)==1
+            B.time = repmat(B.time,A.ndat,1);
+            B.ndat = A.ndat;
+        else
+            error(['dates::minus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' lengths are not consistent!'])
+        end
+    end
+    C = zeros(length(A),1);
+    id = find(~(A==B));
+    if isempty(id)
+        return
+    end
+    C(id) = A.time(id,2)-B.time(id,2) + (A.time(id,1)-B.time(id,1))*A.freq;
+elseif (isvector(B) && isequal(length(B),A.ndat) && all(isint(B))) || isscalar(B) && isint(B) || isequal(length(A),1) && isvector(B) && all(isint(B))
+    C = dates();
+    C.freq = A.freq;
+    C.time = add_periods_to_array_of_dates(A.time, A.freq, -B);
+    C.ndat = rows(C.time);
+else
+    error('dates::plus: I don''t understand what you want to do! Check the manual.')
+end
+
+%@test:1
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1','1950Q2','1960Q1');
+%$ d2 = dates('1950Q3','1950Q4','1960Q1');
+%$ d3 = dates('2000Q1');
+%$ d4 = dates('2002Q2');
+%$ % Call the tested routine.
+%$ try
+%$   e1 = d2-d1;
+%$   e2 = d4-d3;
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(e1,[2; 2; 0]);
+%$   t(3) = dyn_assert(e2,9);
+%$ end
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates objects
+%$ d1 = dates('1950Y','1951Y','1953Y');
+%$ d2 = dates('1951Y','1952Y','1953Y');
+%$ d3 = dates('2000Y');
+%$ d4 = dates('1999Y');
+%$ % Call the tested routine.
+%$ try
+%$   e1 = d2-d1;
+%$   e2 = d4-d3;
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(e1,[1; 1; 0]);
+%$   t(3) = dyn_assert(e2,-1);
+%$ end
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define some dates objects
+%$ d1 = dates('2000Y');
+%$ d2 = dates('1999Y');
+%$ % Call the tested routine.
+%$ try
+%$   e1 = d1-1;
+%$   e2 = d2-(-1);
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(isequal(e1,d2),1);
+%$   t(3) = dyn_assert(isequal(e2,d1),1);
+%$ end
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ % Define some dates objects
+%$ d1 = dates('2000Q1');
+%$ e1 = dates('1999Q4','1999Q3','1999Q2','1999Q1','1998Q4');
+%$ % Call the tested routine.
+%$ try
+%$   f1 = d1-transpose(1:5);
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(isequal(e1,f1),1);
+%$ end
+%$ T = all(t);
+%@eof:4
+
+%@test:5
+%$ % Define some dates objects
+%$ d1 = dates('1999Q4','1999Q3','1999Q2','1999Q1','1998Q4');
+%$ e1 = dates('2000Q1')*5;
+%$ % Call the tested routine.
+%$ try
+%$   f1 = d1-(-transpose(1:5));
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(isequal(e1,f1),1);
+%$ end
+%$ T = all(t);
+%@eof:5
\ No newline at end of file
diff --git a/matlab/@dates/mtimes.m b/matlab/@dates/mtimes.m
new file mode 100644
index 0000000000000000000000000000000000000000..513915b3283f7210ce25f53063de36a56709c75f
--- /dev/null
+++ b/matlab/@dates/mtimes.m
@@ -0,0 +1,39 @@
+function B = mtimes(A,n)
+
+% Overloads the times operator (*). Returns dates object A replicated n times.
+%
+% INPUTS 
+%  o A    dates object with m elements.
+%
+% OUTPUTS 
+%  o B    dates object with m*n elements.
+%
+% EXAMPLE 1
+%  If A = dates('2000Q1'), then B=A*3 is a dates object equal to dates('2000Q1','2000Q1','2000Q1')  
+%
+% EXAMPLE 2
+%  If A = dates('2003Q1','2009Q2'), then B=A*2 is a dates object equal to dates('2003Q1','2009Q2','2003Q1','2009Q2')
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~(isscalar(n) && isint(n))
+    error('dates::m: First and second input arguments have to be a dates object and a scalar integer!')
+end
+B = A;
+B.time = repmat(A.time,n,1);
+B.ndat = A.ndat*n;
\ No newline at end of file
diff --git a/matlab/@dates/ne.m b/matlab/@dates/ne.m
new file mode 100644
index 0000000000000000000000000000000000000000..a5bab143b67cbe3b761f25a9bcd1b26adb4f2111
--- /dev/null
+++ b/matlab/@dates/ne.m
@@ -0,0 +1,102 @@
+function C = ne(A,B) % --*-- Unitary tests --*--
+
+% Overloads ~= operator for dates objects.
+%
+% INPUTS 
+%  o A    dates object with n or 1 elements.
+%  o B    dates object with n or 1 elements.
+%
+% OUTPUTS 
+%  o C    column vector of max(n,1) elements (zeros or ones).
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~isequal(nargin,2)
+    error('dates::ne: I need exactly two input arguments!')
+end
+
+if ~isdates(A) || ~isdates(B)
+    error(['dates::ne: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be dates objects!'])
+end
+
+if ~isequal(A.freq,B.freq)
+    C = 0;
+    return
+end
+
+if isequal(A.ndat, B.ndat)
+    C = transpose(any(transpose(ne(A.time,B.time))));
+else
+    if isequal(A.ndat,1) || isequal(B.ndat,1)
+        C = transpose(any(transpose(bsxfun(@ne,A.time,B.time))));
+    else
+        C = 0;
+    end
+end
+
+%@test:1
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4') ;
+%$ d2 = dates('1960Q1','1960Q2','1960Q3','1960Q4') ;
+%$ d3 = dates('1950Q1','1960Q2','1950Q3','1960Q4') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1~=d1;
+%$ t2 = d1~=d2;
+%$ t3 = d1~=d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,zeros(4,1));
+%$ t(2) = dyn_assert(t2,ones(4,1));
+%$ t(3) = dyn_assert(t3,[0; 1; 0; 1]);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1') ;
+%$ d2 = dates('1960Q1') ;
+%$ d3 = dates('1960Q1') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1~=d1;
+%$ t2 = d1~=d2;
+%$ t3 = d1~=d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,0);
+%$ t(2) = dyn_assert(t2,1);
+%$ t(3) = dyn_assert(t3,1);
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4') ;
+%$ d2 = dates('1950Q2') ;
+%$ d3 = dates('1970Q1') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1~=d2;
+%$ t2 = d1~=d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,[1; 0; 1; 1]);
+%$ t(2) = dyn_assert(t2,ones(4,1));
+%$ T = all(t);
+%@eof:3
diff --git a/matlab/@dates/plus.m b/matlab/@dates/plus.m
new file mode 100644
index 0000000000000000000000000000000000000000..4f1e222ed39bc298679f830f0290fd8fb324159d
--- /dev/null
+++ b/matlab/@dates/plus.m
@@ -0,0 +1,132 @@
+function C = plus(A,B) % --*-- Unitary tests --*--
+
+% Overloads the plus operator. If A and B are dates objects the method combines A and B without removing repetitions. If
+% one of the inputs is an integer or a vector of integers, the method shifts the dates object by X (the interger input)
+% periods forward.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if isa(B,'dates')
+    % Concatenate dates objects without removing repetitions if A and B are not disjoint sets of dates.
+    if ~isequal(A.freq,B.freq) && A.ndat>0 && B.ndat>0
+        error(['dates::plus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' must have common frequencies!'])
+    end
+    if isempty(B)
+        C = A;
+        return
+    end
+    if isempty(A)
+        C = B;
+        return
+    end
+    C = dates();
+    C.freq = A.freq;
+    C.time = [A.time; B.time];
+    C.ndat = A.ndat+B.ndat;
+elseif (isvector(B) && isequal(length(B),A.ndat) && all(isint(B))) || isscalar(B) && isint(B) || isequal(length(A),1) && isvector(B) && all(isint(B))
+    C = dates();
+    C.freq = A.freq;
+    C.time = add_periods_to_array_of_dates(A.time, A.freq, B);
+    C.ndat = rows(C.time);
+else
+    error('dates::plus: I don''t understand what you want to do! Check the manual.')
+end
+
+%@test:1
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1','1950Q2') ;
+%$ d2 = dates('1950Q3','1950Q4') ;
+%$ d3 = dates('1950Q1','1950Q2','1950Q3','1950Q4') ;
+%$
+%$ % Call the tested routine.
+%$ try
+%$   e1 = d1+d2;
+%$   e2 = d1+d2+d3;
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1) 
+%$   t(2) = dyn_assert(isequal(e1,d3),1);
+%$   t(3) = dyn_assert(isequal(e2,dates('1950Q1','1950Q2','1950Q3','1950Q4','1950Q1','1950Q2','1950Q3','1950Q4')),1);
+%$ end
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1');
+%$ e1 = dates('1950Q2');
+%$ e2 = dates('1950Q3');
+%$ e3 = dates('1950Q4');
+%$ e4 = dates('1951Q1');
+%$ e5 = dates('1950Q2','1950Q3','1950Q4','1951Q1');
+%$
+%$ % Call the tested routine.
+%$ try
+%$   f1 = d1+1;
+%$   f2 = d1+2;
+%$   f3 = d1+3;
+%$   f4 = d1+4;
+%$   f5 = d1+transpose(1:4);
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(isequal(e1,f1),1);
+%$   t(3) = dyn_assert(isequal(e2,f2),1);
+%$   t(4) = dyn_assert(isequal(e3,f3),1);
+%$   t(5) = dyn_assert(isequal(e4,f4),1);
+%$   t(6) = dyn_assert(isequal(e5,f5),1);
+%$ end
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1');
+%$ e1 = dates('1949Q4');
+%$ e2 = dates('1949Q3');
+%$ e3 = dates('1949Q2');
+%$ e4 = dates('1949Q1');
+%$ e5 = dates('1948Q4');
+%$
+%$ % Call the tested routine.
+%$ try
+%$   f1 = d1+(-1);
+%$   f2 = d1+(-2);
+%$   f3 = d1+(-3);
+%$   f4 = d1+(-4);
+%$   f5 = d1+(-5);
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(isequal(e1,f1),1);
+%$   t(3) = dyn_assert(isequal(e2,f2),1);
+%$   t(4) = dyn_assert(isequal(e3,f3),1);
+%$   t(5) = dyn_assert(isequal(e4,f4),1);
+%$   t(6) = dyn_assert(isequal(e5,f5),1);
+%$ end
+%$ T = all(t);
+%@eof:3
\ No newline at end of file
diff --git a/matlab/@dates/pop.m b/matlab/@dates/pop.m
new file mode 100644
index 0000000000000000000000000000000000000000..2aec07a405adae82d3731f6d111f93ec8464669a
--- /dev/null
+++ b/matlab/@dates/pop.m
@@ -0,0 +1,119 @@
+function B = pop(A,a) % --*-- Unitary tests --*--
+
+% pop method for dates class (removes a date).
+%
+% INPUTS 
+%  o A     dates object.
+%  o a     dates object with one element, string which can be interpreted as a date or integer scalar.
+%
+% OUTPUTS 
+%  o B     dates object (with B.ndat==A.ndat-1).
+%
+% REMARKS 
+%  If a is a date appearing more than once in A, then only the last occurence is removed. If one wants to
+%  remove all the occurences of a in A, the setdiff function should be used instead.
+
+% Copyright (C) 2012-2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if nargin<2
+    % Remove last date
+    B = dates();
+    B.ndat = A.ndat-1;
+    B.freq = A.freq;
+    B.time = NaN(B.ndat,2);
+    B.time = A.time(1:end-1,:);
+    return
+end
+
+if ~( isdates(a) || isdate(a) || (isscalar(a) && isint(a)) )
+    error(['dates::pop: Input argument ' inputname(2) ' has to be a dates object with a single element, a string (which can be interpreted as a date) or an integer.'])
+end
+
+if ischar(a)
+    a = dates(a);
+end
+
+B = dates();
+B.ndat = A.ndat-1;
+B.freq = A.freq;
+B.time = NaN(B.ndat,2);
+
+if isscalar(a) && isint(a)
+    idx = find(transpose(1:A.ndat)~=a);
+    B.time = A.time(idx,:);
+else
+    if ~isequal(A.freq,a.freq)
+        error('dates::pop: Inputs must have common frequency!')
+    end
+    idx = find(A==a);
+    jdx = find(transpose(1:A.ndat)~=idx(end));
+    B.time = A.time(jdx,:);
+end
+
+%@test:1
+%$ % Define some dates
+%$ B1 = '1953Q4';
+%$ B2 = '1950Q2';
+%$ B3 = '1950Q1';
+%$ B4 = '1945Q3';
+%$ B5 = '2009Q2';
+%$
+%$ % Define expected results
+%$ e.time = [1945 3; 1950 1; 1950 2; 1953 4; 2009 2];
+%$ e.freq = 4;
+%$ e.ndat = 5;
+%$
+%$ % Call the tested routine
+%$ d = dates(B4,B3,B2,B1);
+%$ d = d.append(dates(B5));
+%$ f = d.pop();
+%$ t(1) = dyn_assert(f.time,e.time(1:end-1,:));
+%$ t(2) = dyn_assert(f.freq,e.freq);
+%$ t(3) = dyn_assert(f.ndat,e.ndat-1);
+%$ f = d.pop(B1);
+%$ t(4) = dyn_assert(f.time,[1945 3; 1950 1; 1950 2; 2009 2]);
+%$ t(5) = dyn_assert(f.freq,e.freq);
+%$ t(6) = dyn_assert(f.ndat,e.ndat-1);
+%$ f = d.pop(dates(B1));
+%$ t(7) = dyn_assert(f.time,[1945 3; 1950 1; 1950 2; 2009 2]);
+%$ t(8) = dyn_assert(f.freq,e.freq);
+%$ t(9) = dyn_assert(f.ndat,e.ndat-1);
+%$
+%$ % Check the results.
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates
+%$ B1 = '1950Q1';
+%$ B2 = '1950Q2';
+%$ B3 = '1950Q1';
+%$ B4 = '1945Q3';
+%$ B5 = '2009Q2';
+%$
+%$ % Call the tested routine
+%$ d = dates(B1,B2,B3,B4);
+%$ d = d.append(dates(B5));
+%$ f = d.pop();
+%$ t(1) = dyn_assert(isequal(f,dates(B1,B2,B3,B4)),1);
+%$ f = d.pop(B1);
+%$ t(2) = dyn_assert(isequal(f,dates(B1,B2,B4,B5)),1);
+%$ g = f.pop(1);
+%$ t(3) = dyn_assert(isequal(g,dates(B2,B4,B5)),1);
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/@dynDates/minus.m b/matlab/@dates/setdiff.m
similarity index 54%
rename from matlab/@dynDates/minus.m
rename to matlab/@dates/setdiff.m
index 7e41ac6484b6900800bda60b88bee3d6e1aaca96..fb0228c0e8983afabb7a89f07739f8302ca1d420 100644
--- a/matlab/@dynDates/minus.m
+++ b/matlab/@dates/setdiff.m
@@ -1,26 +1,26 @@
-function C = minus(A,B) % --*-- Unitary tests --*--
+function C = setdiff(A,B) % --*-- Unitary tests --*--
 
 %@info:
-%! @deftypefn {Function File} {@var{C} =} minus (@var{A},@var{B})
-%! @anchor{@dynDates/minus}
+%! @deftypefn {Function File} {@var{C} =} setdiff (@var{A},@var{B})
+%! @anchor{@dates/intersect}
 %! @sp 1
-%! Overloads the minus (soustraction) operator for the @ref{dynDates} class. C is the relative complement of B in A.
+%! C of B and A.
 %! if A and B are not disjoints.
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item A
-%! @ref{dynDates} object.
+%! @ref{dates} object.
 %! @item B
-%! @ref{dynDates} object.
+%! @ref{dates} object.
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
 %! @sp 1
 %! @table @ @var
 %! @item C
-%! @ref{dynDates} object.
+%! @ref{dates} object.
 %! @end table
 %! @end deftypefn
 %@eod:
@@ -42,44 +42,47 @@ function C = minus(A,B) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if isempty(B)
-    C = A;
-    return
+if ~isa(A,'dates') || ~isa(B,'dates')
+    error(['dates::plus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' must be dates objects!'])
 end
 
-if isempty(A)
-    C = dynDates();
+if eq(A,B)
+    C = A;
     return
 end
 
 if ~isequal(A.freq,B.freq)
-    C = A;
+    C = dates();
     return
 end
 
-D = intersect(A,B);
-
-if isempty(D)
-    C = A;
+if isoctave || matlab_ver_less_than('8.1.0')
+    time = setdiff(A.time,B.time,'rows');
 else
-    C = dynDates();
-    C.freq = A.freq;
-    C.time = setdiff(A.time,D.time,'rows');
-    C.ndat = rows(C.time);
+    time = setdiff(A.time,B.time,'rows','legacy');
 end
 
+C = dates();
+if isempty(time)
+    return
+end
+
+C.freq = A.freq;
+C.time = time;
+C.ndat = rows(time); 
+
 %@test:1
-%$ % Define some dynDates objects
-%$ d1 = dynDate('1950Q1'):dynDate('1959Q4') ;
-%$ d2 = dynDate('1960Q1'):dynDate('1969Q4') ;
-%$ d3 = d1+d2;
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1'):dates('1969Q4') ;
+%$ d2 = dates('1960Q1'):dates('1969Q4') ;
+%$ d3 = dates('1970Q1'):dates('1979Q4') ;
 %$
 %$ % Call the tested routine.
-%$ e1 = d1-d2;
-%$ e2 = d3-d1;
+%$ c1 = intersect(d1,d2);
+%$ c2 = intersect(d1,d3);
 %$
 %$ % Check the results.
-%$ t(1) = dyn_assert(e1==d1,1);
-%$ t(2) = dyn_assert(e2==d2,1);
+%$ t(1) = dyn_assert(isequal(c1,d2),1);
+%$ t(2) = dyn_assert(isempty(c2),1);
 %$ T = all(t);
 %@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDates/size.m b/matlab/@dates/size.m
similarity index 100%
rename from matlab/@dynDates/size.m
rename to matlab/@dates/size.m
diff --git a/matlab/@dynDates/sort.m b/matlab/@dates/sort.m
similarity index 68%
rename from matlab/@dynDates/sort.m
rename to matlab/@dates/sort.m
index 2a39dbd2006cc91ebec4b2fee2308d286cb7ee0f..d86c73901d530f1f089eb03f4947662fd05a0006 100644
--- a/matlab/@dynDates/sort.m
+++ b/matlab/@dates/sort.m
@@ -1,33 +1,12 @@
 function dd = sort(dd) % --*-- Unitary tests --*--
 
-% sort method for dynDates class.
-
-%@info:
-%! @deftypefn {Function File} {@var{a} =} sort (@var{a})
-%! @anchor{dynDates/sort}
-%! @sp 1
-%! Sort method for the Dynare dates class.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Object instantiated by @ref{dynDates}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Object instantiated by @ref{dynDates}, with dates sorted by increasing order.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
+% Sort method for dates class.
+%
+% INPUTS 
+%  o dd    dates object.
+%
+% OUTPUTS 
+%  o dd    dates object (with dates sorted by increasing order).
 
 % Copyright (C) 2011-2013 Dynare Team
 %
@@ -46,11 +25,7 @@ function dd = sort(dd) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if ~isa(dd,'dynDates')
-    error(['dynDates::sort: Input argument ' inputname(1) ' has to be a dynDates object.'])
-end
-
-if dd.ndat==1
+if isequal(dd.ndat,1)
     return
 end
 
@@ -69,7 +44,7 @@ dd.time = sortrows(dd.time,[1,2]);
 %$ e.ndat = 4;
 %$
 %$ % Call the tested routine.
-%$ d = dynDates(B1,B2,B3,B4);
+%$ d = dates(B1,B2,B3,B4);
 %$ d = d.sort;
 %$ 
 %$ % Check the results.
@@ -92,7 +67,7 @@ dd.time = sortrows(dd.time,[1,2]);
 %$ e.ndat = 4;
 %$
 %$ % Call the tested routine.
-%$ d = dynDates(B1,B2,B3,B4);
+%$ d = dates(B1,B2,B3,B4);
 %$ d = d.sort();
 %$
 %$ % Check the results.
diff --git a/matlab/reports/@objArray/display.m b/matlab/@dates/strings.m
similarity index 75%
rename from matlab/reports/@objArray/display.m
rename to matlab/@dates/strings.m
index 181ba5721fe23b7904af47dc9e7572573c88bc6d..94ccefa1129fe12e64bc4588ca2b4f1f9a0b10ec 100644
--- a/matlab/reports/@objArray/display.m
+++ b/matlab/@dates/strings.m
@@ -1,12 +1,12 @@
-function display(oa)
-%function display(oa)
-% Display an objArray object
+function m = strings(dd)
+
+% Returns a cell array of strings containing the dates
 %
-% INPUTS
-%   o   [objArray] objArray object
+% INPUTS 
+%   o dd   dates object
 %
 % OUTPUTS
-%   none
+%   o m    cell array of strings
 %
 % SPECIAL REQUIREMENTS
 %   none
@@ -28,5 +28,8 @@ function display(oa)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+m = cell(1,dd.ndat);
+
+for i = 1:dd.ndat
+    m(i) = { date2string(dd.time(i,:), dd.freq) };
 end
\ No newline at end of file
diff --git a/matlab/@dynDate/subsasgn.m b/matlab/@dates/subsasgn.m
similarity index 91%
rename from matlab/@dynDate/subsasgn.m
rename to matlab/@dates/subsasgn.m
index 93ad09e37bf8c84218d11d39c10caeae4974bcee..4b910070496d3443e50d27abc1ac70e811219f03 100644
--- a/matlab/@dynDate/subsasgn.m
+++ b/matlab/@dates/subsasgn.m
@@ -17,4 +17,4 @@ function val = subsasgn(val, idx, rhs)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-error('dynDate::subsasgn: Members of dynDate class are private')
\ No newline at end of file
+error('dates::subsasgn: Members of dates class are private')
\ No newline at end of file
diff --git a/matlab/@dates/subsref.m b/matlab/@dates/subsref.m
new file mode 100644
index 0000000000000000000000000000000000000000..9073f2f46f77a9ef0536c6d6f9e374b074d6a5d6
--- /dev/null
+++ b/matlab/@dates/subsref.m
@@ -0,0 +1,330 @@
+function B = subsref(A,S) % --*-- Unitary tests --*--
+
+% Overload the subsref method for dates objects.
+%
+% INPUTS 
+%  o A     dates object.
+%  o S     matlab's structure.
+%
+% OUTPUTS 
+%  o B     dates object.
+%
+% REMARKS 
+%  See the matlab's documentation about the subsref method.
+
+% Copyright (C) 2011-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+switch S(1).type
+  case '.'
+    switch S(1).subs
+      case {'time','freq','ndat'}% Access public members.
+        if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
+            error(['dates::subsref: ' S(1).subs ' is not a method but a member!'])
+        end
+        B = builtin('subsref', A, S(1));
+      case {'sort','unique','double','isempty','length'}% Public methods (without arguments)
+        B = feval(S(1).subs,A);
+        if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
+           S = shiftS(S,1);
+        end
+      case {'append','pop'}% Public methods (with arguments).
+        if isequal(S(2).type,'()')
+            B = feval(S(1).subs,A,S(2).subs{:});
+            S = shiftS(S,1);
+        else
+            error('dates::subsref: Something is wrong in your syntax!')
+        end
+      otherwise
+        error('dates::subsref: Unknown public member or method!')
+    end
+  case '()'
+    if isempty(A)
+        if isempty(A.freq)
+            % Populate an empty dates object with time member (freq is not specified). Needs two or three inputs. First input is an integer
+            % scalar specifying the frequency. Second input is either the time member (a n*2 array of integers) or a column vector with n
+            % elements (the first column of the time member --> years). If the the second input is a row vector and if A.freq~=1 a third input
+            % is necessary. The third input is n*1 vector of integers between 1 and A.freq (second column of the time member --> subperiods).
+            B = dates();
+            % First input is the frequency.
+            if isfreq(S(1).subs{1})
+                if ischar(S(1).subs{1})
+                    B.freq = string2freq(S(1).subs{1});
+                else
+                    B.freq = S(1).subs{1};
+                end
+            else
+                error('dates::subsref: First input must be a frequency!')
+            end
+            if isequal(length(S(1).subs),2)
+                % If two inputs are provided, the second input must be a n*2 array except if frequency is annual.
+                [n, m] = size(S(1).subs{2});
+                if m>2
+                    error('dates::subsref: Second input argument array cannot have more than two columns!')
+                end
+                if ~isequal(m,2) && ~isequal(B.freq,1)
+                    error('dates::subsref: Second argument has to be a n*2 array for non annual frequency!')
+                end
+                if ~all(all(S(1).subs{2}))
+                    error('dates::subsref: Second argument has be an array of intergers!')
+                end
+                if m>1 && ~issubperiod(S(1).subs{2}(:,2),B.freq)
+                    error(['dates::subsref: Elements in the second column of the first input argument are not legal subperiods (should be integers betwwen 1 and ' num2str(B.freq) ')!'])
+                end
+                if isequal(m,2)
+                    B.time = S(1).subs{2};
+                elseif isequal(m,1)
+                    B.time = [S(1).subs{2}, ones(n,1)];
+                else
+                    error(['dates::subsref: This is a bug!'])
+                end
+                B.ndat = rows(B.time);
+            elseif isequal(length(S(1).subs),3)
+                % If three inputs are provided, the second and third inputs are column verctors of integers (years and subperiods).
+                if ~iscolumn(S(1).subs{2}) && ~all(isint(S(1).subs{2}))
+                    error('dates::subsref: Second input argument must be a column vector of integers!')
+                end
+                n1 = size(S(1).subs{2},1);
+                if ~iscolumn(S(1).subs{3}) && ~issubperiod(S(1).subs{3}, B.freq)
+                    error(['dates::subsref: Third input argument must be a column vector of subperiods (integers between 1 and ' num2str(B.freq) ')!'])
+                end
+                n2 = size(S(1).subs{3},1);
+                if ~isequal(n1,n2)
+                    error('dates::subsref: Second and third input arguments must have the same number of elements!')
+                end
+                B.time = [S(1).subs{2}, S(1).subs{3}];
+                B.ndat = rows(B.time);
+            else
+                error('dates::subsref: Wrong calling sequence!')
+            end
+        else
+            % Populate an empty dates object with time member (freq is already specified).
+            % Needs one (time) or two (first and second columns of time for years and subperiods) inputs.
+            B = A;
+            if isequal(length(S(1).subs),2)
+                if ~iscolumn(S(1).subs{1}) && ~all(isint(S(1).subs{1}))
+                    error('dates::subsref: First argument has to be a column vector of integers!')
+                end
+                n1 = size(S(1).subs{1},1);
+                if ~iscolumn(S(1).subs{2}) && ~issubperiod(S(1).subs{2}, B.freq)
+                    error(['dates::subsref: Second argument has to be a column vector of subperiods (integers between 1 and ' num2str(B.freq) ')!'])
+                end
+                n2 = size(S(1).subs{2},1);
+                if ~isequal(n2,n1)
+                    error('dates::subsref: First and second argument must have the same number of rows!')
+                end
+                B.time = [S(1).subs{1}, S(1).subs{2}];
+                B.ndat = rows(B.time);
+            elseif isequal(length(S(1).subs),1)
+                [n, m] = size(S(1).subs{1});
+                if ~isequal(m,2) && ~isequal(B.freq,1)
+                    error('dates::subsref: First argument has to be a n*2 array!')
+                end
+                if ~all(isint(S(1).subs{1}(:,1)))
+                    error('dates::subsref: First column of the first argument has to be a column vector of integers!')
+                end
+                if m>1 && issubperiod(S(1).subs{1}(:,1), B.freq)
+                    error(['dates::subsref: The second column of the first input argument has to be a column  vector of subperiods (integers between 1 and ' num2str(B.freq) ')!'])
+                end
+                if isequal(m,2)
+                    B.time = S(1).subs{1};
+                elseif isequal(m,1) && isequal(B.freq,1)
+                    B.time = [S(1).subs{1}, ones(n,1)];
+                else
+                    error(['dates::subsref: This is a bug!'])
+                end
+                B.ndat = rows(B.time);
+            else
+                error('dates::subsref: Wrong number of inputs!')
+            end
+        end
+    else
+        % dates object A is not empty. We extract some dates
+        if isvector(S(1).subs{1}) && all(isint(S(1).subs{1})) && all(S(1).subs{1}>0) && all(S(1).subs{1}<=A.ndat)
+            B = dates();
+            B.freq = A.freq;
+            B.time = A.time(S(1).subs{1},:);
+            B.ndat = rows(B.time);
+        else
+            error(['dates::subsref: indices has to be a vector of positive integers less than or equal to ' int2str(A.ndat) '!'])
+        end
+    end
+  otherwise
+    error('dates::subsref: Something is wrong in your syntax!')
+end
+
+S = shiftS(S,1);
+if ~isempty(S)
+    B = subsref(B, S);
+end
+
+%@test:1
+%$ % Define a dates object
+%$ B = dates('1950Q1','1950Q2','1950Q3','1950Q4','1951Q1');
+%$
+%$ % Try to extract a sub-dates object.
+%$ d = B(2:3);
+%$
+%$ if isa(d,'dates')
+%$     t(1) = 1;
+%$ else
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dyn_assert(d.freq,B.freq);
+%$     t(3) = dyn_assert(d.time,[1950 2; 1950 3]);
+%$     t(4) = dyn_assert(d.ndat,2);
+%$ end
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define a dates object
+%$ B = dates('1950Q1'):dates('1960Q3');
+%$
+%$ % Try to extract a sub-dates object and apply a method
+%$ 
+%$ d = B(2:3).sort ;
+%$
+%$ if isa(d,'dates')
+%$     t(1) = 1;
+%$ else
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dyn_assert(d.freq,B.freq);
+%$     t(3) = dyn_assert(d.time,[1950 2; 1950 3]);
+%$     t(4) = dyn_assert(d.ndat,2);
+%$ end
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define a dates object
+%$ B = dates('1950Q1'):dates('1960Q3');
+%$
+%$ % Try to extract a sub-dates object and apply a method
+%$
+%$ d = B(2:3).sort() ;
+%$
+%$ if isa(d,'dates')
+%$     t(1) = 1;
+%$ else
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dyn_assert(d.freq,B.freq);
+%$     t(3) = dyn_assert(d.time,[1950 2; 1950 3]);
+%$     t(4) = dyn_assert(d.ndat,2);
+%$ end
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ % Define a dates object
+%$ B = dates('1950Q1','1950Q2','1950Q3','1950Q4','1951Q1');
+%$
+%$ % Try to extract a sub-dates object.
+%$ d = B(2);
+%$
+%$ if isa(d,'dates')
+%$     t(1) = 1;
+%$ else
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dyn_assert(d.freq,B.freq);
+%$     t(3) = dyn_assert(d.time,[1950 2]);
+%$     t(4) = dyn_assert(d.ndat,1);
+%$ end
+%$ T = all(t);
+%@eof:4
+
+%@test:5
+%$ % Define an empty dates object with quaterly frequency.
+%$ qq = dates('Q');
+%$
+%$ % Define a ranges of dates using qq.
+%$ try
+%$     r1 = qq(1950,1):qq([1950, 3]);
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$ if t(1)
+%$     try
+%$         r2 = qq([1950, 1; 1950, 2; 1950, 3]);
+%$         t(2) = 1;
+%$     catch
+%$         t(2) = 0;
+%$     end
+%$ end
+%$ if t(1) && t(2)
+%$     try
+%$         r3 = qq(1950*ones(3,1), transpose(1:3));
+%$         t(3) = 1;
+%$     catch
+%$         t(3) = 0;
+%$     end
+%$ end
+%$
+%$ if t(1) && t(2) && t(3)
+%$     t(4) = dyn_assert(isequal(r1,r2),1);
+%$     t(5) = dyn_assert(isequal(r1,r3),1);
+%$ end
+%$ T = all(t);
+%@eof:5
+
+%@test:6
+%$ % Define an empty dates object with quaterly frequency.
+%$ date = dates();
+%$
+%$ % Define a ranges of dates using qq.
+%$ try
+%$     r1 = date(4,1950,1):date(4,[1950, 3]);
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$ if t(1)
+%$     try
+%$         r2 = date(4,[1950, 1; 1950, 2; 1950, 3]);
+%$         t(2) = 1;
+%$     catch
+%$         t(2) = 0;
+%$     end
+%$ end
+%$ if t(1) && t(2)
+%$     try
+%$         r3 = date(4,1950*ones(3,1), transpose(1:3));
+%$         t(3) = 1;
+%$     catch
+%$         t(3) = 0;
+%$     end
+%$ end
+%$
+%$ if t(1) && t(2) && t(3)
+%$     t(4) = dyn_assert(isequal(r1,r2),1);
+%$     t(5) = dyn_assert(isequal(r1,r3),1);
+%$ end
+%$ T = all(t);
+%@eof:6
+
diff --git a/matlab/@dates/uminus.m b/matlab/@dates/uminus.m
new file mode 100644
index 0000000000000000000000000000000000000000..fd3a79c1806065eead5e62169ea91919f016b309
--- /dev/null
+++ b/matlab/@dates/uminus.m
@@ -0,0 +1,78 @@
+function B = uminus(A)  % --*-- Unitary tests --*--
+
+% Overloads the unary minus operator for dates objects. Shifts all the elements by one period.
+%
+% INPUTS 
+%  o A    dates object with n elements.
+%
+% OUTPUTS 
+%  o B    dates object with n elements.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+B = dates(A);
+B.time(:,2) = B.time(:,2)-1;
+idx = find(B.time(:,2)==0);
+B.time(idx,1) = B.time(idx,1)-1;
+B.time(idx,2) = B.freq;
+
+%@test:1
+%$ % Define some dates
+%$ date_1 = '1950Y';
+%$ date_2 = '1950Q2';
+%$ date_3 = '1950Q1';
+%$ date_4 = '1950M2';
+%$ date_5 = '1950M1';
+%$
+%$ % Call the tested routine.
+%$ d1 = dates(date_1); d1 = -d1;
+%$ d2 = dates(date_2); d2 = -d2;
+%$ d3 = dates(date_3); d3 = -d3;
+%$ d4 = dates(date_4); d4 = -d4;
+%$ d5 = dates(date_5); d5 = -d5;
+%$ i1 = (d1==dates('1949Y'));
+%$ i2 = (d2==dates('1950Q1'));
+%$ i3 = (d3==dates('1949Q4'));
+%$ i4 = (d4==dates('1950M1'));
+%$ i5 = (d5==dates('1949M12'));
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i1,1);
+%$ t(2) = dyn_assert(i2,1);
+%$ t(3) = dyn_assert(i3,1);
+%$ t(4) = dyn_assert(i4,1);
+%$ t(5) = dyn_assert(i5,1);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4','1951Q1');
+%$ d2 = dates('1949Q4','1950Q1','1950Q2','1950Q3','1950Q4');
+%$ try
+%$   d3 = -d1;
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(all(d2==d3),1);
+%$ end
+%$
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/@dates/union.m b/matlab/@dates/union.m
new file mode 100644
index 0000000000000000000000000000000000000000..ab3d393abb2c3728af1a41fa3edae1d5274a7c3d
--- /dev/null
+++ b/matlab/@dates/union.m
@@ -0,0 +1,58 @@
+function D = union(varargin) % --*-- Unitary tests --*--
+
+% Overloads union function for dates objects (removes repetitions if any).
+%
+% INPUTS 
+%  o A    dates object.
+%  o B    dates object.
+%  o C    dates object.
+%  o ...
+%
+% OUPUTS 
+%  o D    dates object (elements are sorted by increasing order).
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if isequal(nargin,1)
+    D = sort(unique(varargin{1}));
+    return;
+end
+
+D = sort(unique(horzcat(varargin{:})));
+
+%@test:1
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1'):dates('1959Q4') ;
+%$ d2 = dates('1960Q1'):dates('1969Q4') ;
+%$ d3 = dates('1970Q1'):dates('1979Q4') ;
+%$
+%$ % Call the tested routine.
+%$ e1 = union(d1);
+%$ e2 = union(d1,d2);
+%$ e3 = union(d1,d2,d3);
+%$ e4 = union(d1,d2,d3,d2+d3);
+%$ e5 = union(d1,d2,d3,d2);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(isequal(e1,d1),1);
+%$ t(2) = dyn_assert(isequal(e2,d1+d2),1);
+%$ t(3) = dyn_assert(isequal(e3,d1+d2+d3),1);
+%$ t(4) = dyn_assert(isequal(e4,d1+d2+d3),1);
+%$ t(5) = dyn_assert(isequal(e5,d1+d2+d3),1);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDates/unique.m b/matlab/@dates/unique.m
similarity index 53%
rename from matlab/@dynDates/unique.m
rename to matlab/@dates/unique.m
index c800fd9b8fb22c2d710585fb1f0c9c85cf97b61f..66ee5d067cb4a1de572059962550f782395a7049 100644
--- a/matlab/@dynDates/unique.m
+++ b/matlab/@dates/unique.m
@@ -1,33 +1,12 @@
-function dd = unique(dd) % --*-- Unitary tests --*--
+function B = unique(A) % --*-- Unitary tests --*--
 
-% unique method for dynDates class.
-
-%@info:
-%! @deftypefn {Function File} {@var{a} =} unique (@var{a})
-%! @anchor{dynDates/unique}
-%! @sp 1
-%! Unique method for the Dynare dates class (removes repetitions).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Object instantiated by @ref{dynDates}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Object instantiated by @ref{dynDates}.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
+% Overloads the unique function for dates objects.
+%
+% INPUTS 
+%  o A    dates object.
+%
+% OUTPUTS 
+%  o B    dates object (a copy of A without repetitions, only the last occurence of a date is kept).
 
 % Copyright (C) 2012-2013 Dynare Team
 %
@@ -46,17 +25,20 @@ function dd = unique(dd) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if ~isa(dd,'dynDates')
-    error(['dynDates::unique: Input argument ' inputname(1) ' has to be a dynDates object.'])
+if isequal(A.ndat,1)
+    return
 end
 
-if dd.ndat==1
-    return
+B = A;
+
+if isoctave || matlab_ver_less_than('8.1.0')
+    [tmp, id, jd] = unique(A.time,'rows');
+else
+    [tmp, id, jd] = unique(A.time,'rows','legacy');
 end
 
-[tmp,id,jd] = unique(dd.time,'rows');
-dd.time = dd.time(sort(id),:);
-dd.ndat = size(dd.time,1);
+B.time = A.time(sort(id),:);
+B.ndat = size(B.time,1);
 
 %@test:1
 %$ % Define some dates
@@ -67,13 +49,13 @@ dd.ndat = size(dd.time,1);
 %$ B5 = '1950Q2'; 
 %$
 %$ % Define expected results.
-%$ e.time = [1953 4; 1950 2; 1950 1; 1945 3];
+%$ e.time = [1953 4; 1950 1; 1945 3; 1950 2];
 %$ e.freq = 4;
 %$ e.ndat = 4;
 %$
 %$ % Call the tested routine.
-%$ d = dynDates(B1,B2,B3,B4,B5);
-%$ d = d.unique;
+%$ d = dates(B1,B2,B3,B4,B5);
+%$ d = d.unique();
 %$ 
 %$ % Check the results.
 %$ t(1) = dyn_assert(d.time,e.time);
diff --git a/matlab/@dates/uplus.m b/matlab/@dates/uplus.m
new file mode 100644
index 0000000000000000000000000000000000000000..33bf6ff2be94db41505ece985c687c88d07eed6e
--- /dev/null
+++ b/matlab/@dates/uplus.m
@@ -0,0 +1,78 @@
+function B = uplus(A)  % --*-- Unitary tests --*--
+
+% Overloads the unary plus operator for dates objects. Shifts all the elements by one period.
+%
+% INPUTS 
+%  o A    dates object with n elements.
+%
+% OUTPUTS 
+%  o B    dates object with n elements.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+B = dates(A);
+B.time(:,2) = B.time(:,2)+1;
+idx = find(B.time(:,2)>B.freq); % Happy new year!
+B.time(idx,1) = B.time(idx,1)+1;
+B.time(idx,2) = 1;
+
+%@test:1
+%$ % Define some dates
+%$ date_1 = '1950Y';
+%$ date_2 = '1950Q2';
+%$ date_3 = '1950Q4';
+%$ date_4 = '1950M2';
+%$ date_5 = '1950M12';
+%$
+%$ % Call the tested routine.
+%$ d1 = dates(date_1); d1 = +d1;
+%$ d2 = dates(date_2); d2 = +d2;
+%$ d3 = dates(date_3); d3 = +d3;
+%$ d4 = dates(date_4); d4 = +d4;
+%$ d5 = dates(date_5); d5 = +d5;
+%$ i1 = (d1==dates('1951Y'));
+%$ i2 = (d2==dates('1950Q3'));
+%$ i3 = (d3==dates('1951Q1'));
+%$ i4 = (d4==dates('1950M3'));
+%$ i5 = (d5==dates('1951M1'));
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(i1,1);
+%$ t(2) = dyn_assert(i2,1);
+%$ t(3) = dyn_assert(i3,1);
+%$ t(4) = dyn_assert(i4,1);
+%$ t(5) = dyn_assert(i5,1);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4','1951Q1');
+%$ d2 = dates('1950Q2','1950Q3','1950Q4','1951Q1','1951Q2');
+%$ try
+%$   d3 = +d1;
+%$   t(1) = 1;
+%$ catch
+%$   t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$   t(2) = dyn_assert(all(d2==d3),1);
+%$ end
+%$
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/@dates/vertcat.m b/matlab/@dates/vertcat.m
new file mode 100644
index 0000000000000000000000000000000000000000..6cf21743dd5dd027f0b5c7fbfa634b15b716f08b
--- /dev/null
+++ b/matlab/@dates/vertcat.m
@@ -0,0 +1,37 @@
+function B = vertcat(varargin)
+    
+% Overloads the vertcat method for dates objects.
+%
+% INPUTS 
+%  o A1    dates object.
+%  o A2    dates object.
+%  o ...
+%
+% OUTPUTS 
+%  o B    dates object containing dates defined in A1, A2, ...
+%
+% EXAMPLE 1 
+%  If A, B and C are dates object the following syntax:
+%    
+%    D = [A; B; C] ;
+%
+%  Defines a dates object D containing the dates appearing in A, B and C.
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+B = horzcat(varargin{:});
\ No newline at end of file
diff --git a/matlab/@dseries/abs.m b/matlab/@dseries/abs.m
new file mode 100644
index 0000000000000000000000000000000000000000..b8d49bce7fce513167b7a89ebf0f8341d8ae290a
--- /dev/null
+++ b/matlab/@dseries/abs.m
@@ -0,0 +1,110 @@
+function A = abs(B) % --*-- Unitary tests --*--
+
+%@info:
+%! @deftypefn {Function File} {@var{A} =} abs (@var{B})
+%! @anchor{@dseries/uminus}
+%! @sp 1
+%! Overloads the abs method for the Dynare time series class (@ref{dseries}).
+%! @sp 2
+%! @strong{Inputs}
+%! @sp 1
+%! @table @ @var
+%! @item B
+%! Dynare time series object instantiated by @ref{dseries}.
+%! @end table
+%! @sp 1
+%! @strong{Outputs}
+%! @sp 1
+%! @table @ @var
+%! @item A
+%! Dynare time series object.
+%! @end deftypefn
+%@eod:
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+A = dseries();
+
+A.freq = B.freq;
+A.nobs = B.nobs;
+A.vobs = B.vobs;
+A.init = B.init;
+A.dates = B.dates;
+A.name = cell(A.vobs,1);
+A.tex = cell(A.vobs,1);
+for i = 1:A.vobs
+    A.name(i) = {[ 'abs(' B.name{i} ')']};
+    A.tex(i) = {[ '|' B.tex{i} '|']};
+end
+A.data = abs(B.data);
+
+%@test:1
+%$ % Define a datasets.
+%$ A = randn(10,2);
+%$
+%$ % Define names
+%$ A_name = {'A1';'A2'};
+%$ A_tex = {'A_1';'A_2'};
+%$ t = zeros(6,1);
+%$
+%$ % Instantiate a time series object and compute the absolute value.
+%$ try
+%$    ts1 = dseries(A,[],A_name,A_tex);
+%$    ts2 = abs(ts1);
+%$    t(1) = 1;
+%$ catch
+%$    t = 0;
+%$ end
+%$
+%$ if t(1)
+%$    t(2) = dyn_assert(ts2.vobs,2);
+%$    t(3) = dyn_assert(ts2.nobs,10);
+%$    t(4) = dyn_assert(ts2.data,abs(A),1e-15);
+%$    t(5) = dyn_assert(ts2.name,{'abs(A1)';'abs(A2)'});
+%$    t(6) = dyn_assert(ts2.tex,{'|A_1|';'|A_2|'});
+%$ end
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define a datasets.
+%$ A = randn(10,2);
+%$
+%$ % Define names
+%$ A_name = {'A1';'A2'};
+%$ A_tex = {'A_1';'A_2'};
+%$ t = zeros(6,1);
+%$
+%$ % Instantiate a time series object and compute the absolute value.
+%$ try
+%$    ts1 = dseries(A,[],A_name,A_tex);
+%$    ts2 = ts1.abs();
+%$    t(1) = 1;
+%$ catch
+%$    t = 0;
+%$ end
+%$
+%$ if t(1)
+%$    t(2) = dyn_assert(ts2.vobs,2);
+%$    t(3) = dyn_assert(ts2.nobs,10);
+%$    t(4) = dyn_assert(ts2.data,abs(A),1e-15);
+%$    t(5) = dyn_assert(ts2.name,{'abs(A1)';'abs(A2)'});
+%$    t(6) = dyn_assert(ts2.tex,{'|A_1|';'|A_2|'});
+%$ end
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/@dynSeries/align.m b/matlab/@dseries/align.m
similarity index 75%
rename from matlab/@dynSeries/align.m
rename to matlab/@dseries/align.m
index 4b3d459608c9e022af06256010caf2c66979234a..60c65a9472d2e0dd1000a7754007dbe3ab775bcb 100644
--- a/matlab/@dynSeries/align.m
+++ b/matlab/@dseries/align.m
@@ -2,27 +2,27 @@ function [a,b] = align(a, b) % --*-- Unitary tests --*--
     
 %@info:
 %! @deftypefn {Function File} {[@var{a}, @var{b}] =} align (@var{a}, @var{b})
-%! @anchor{dynSeries/align}
+%! @anchor{dseries/align}
 %! @sp 1
-%! If dynSeries objects @var{a} and @var{b} are defined on different time ranges, extend @var{a} and/or
+%! If dseries objects @var{a} and @var{b} are defined on different time ranges, extend @var{a} and/or
 %! @var{b} with NaNs so that they are defined on the same time range.
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item a
-%! Object instantiated by @ref{dynSeries}.
+%! Object instantiated by @ref{dseries}.
 %! @item b
-%! Object instantiated by @ref{dynSeries}.
+%! Object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
 %! @sp 1
 %! @table @ @var
 %! @item a
-%! Object instantiated by @ref{dynSeries}.
+%! Object instantiated by @ref{dseries}.
 %! @item b
-%! Object instantiated by @ref{dynSeries}.
+%! Object instantiated by @ref{dseries}.
 %! @end table
 %! @end deftypefn
 %@eod:
@@ -45,7 +45,7 @@ function [a,b] = align(a, b) % --*-- Unitary tests --*--
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if ~isequal(a.freq,b.freq)
-    error(['dynSeries::merge_dates: ''' inputname(1) ''' and ''' inputname(2) ''' dynSeries objects must have common frequencies!'])
+    error(['dseries::align: ''' inputname(1) ''' and ''' inputname(2) ''' dseries objects must have common frequencies!'])
 end
 
 init = min(a.init,b.init);
@@ -59,7 +59,7 @@ last_b = time_range_of_b(b.nobs);
 common_time_range = intersect(time_range_of_a,time_range_of_b);
 
 if isempty(common_time_range)
-    error(['dynSeries::merge_dates: ''' inputname(1) ''' and ''' inputname(2) ''' dynSeries object must have at least one common date!'])
+    error(['dseries::align: ''' inputname(1) ''' and ''' inputname(2) ''' dseries object must have at least one common date!'])
 end
 
 if a.init<b.init
@@ -80,16 +80,15 @@ if last_a>last_b
     n = last_a-last_b;
     b.data = [b.data; NaN(n,b.vobs)];
     b.nobs = b.nobs+n;
-    return
-end
-
-if last_a<last_b
+elseif last_a<last_b
     n = last_b-last_a;
     a.data = [a.data; NaN(n,a.vobs)];
     a.nobs = a.nobs+n;
-    return
 end
 
+a.dates = a.init:a.init+(a.nobs-1);
+b.dates = b.init:b.init+(b.nobs-1);
+
 %@test:1
 %$ % Define a datasets.
 %$ A = rand(8,3); B = rand(7,2);
@@ -102,9 +101,9 @@ end
 %$ A_init = '1990Q1';
 %$ B_init = '1989Q2';
 %$
-%$ % Instantiate two dynSeries objects
-%$ ts1 = dynSeries(A,A_init,A_name);
-%$ ts2 = dynSeries(B,B_init,B_name);
+%$ % Instantiate two dseries objects
+%$ ts1 = dseries(A,A_init,A_name);
+%$ ts2 = dseries(B,B_init,B_name);
 %$
 %$ try
 %$   [ts1, ts2] = align(ts1, ts2);
@@ -115,7 +114,7 @@ end
 %$ 
 %$ if t(1)
 %$   t(2) = dyn_assert(ts1.nobs,ts2.nobs);
-%$   t(3) = dyn_assert(ts1.init==ts2.init,1);
+%$   t(3) = dyn_assert(isequal(ts1.init,ts2.init),1);
 %$   t(4) = dyn_assert(ts1.data,[NaN(3,3); A], 1e-15);
 %$   t(5) = dyn_assert(ts2.data,[B; NaN(4,2)], 1e-15);
 %$ end
@@ -134,9 +133,9 @@ end
 %$ A_init = '1990Q1';
 %$ B_init = '1990Q1';
 %$
-%$ % Instantiate two dynSeries objects
-%$ ts1 = dynSeries(A,A_init,A_name);
-%$ ts2 = dynSeries(B,B_init,B_name);
+%$ % Instantiate two dseries objects
+%$ ts1 = dseries(A,A_init,A_name);
+%$ ts2 = dseries(B,B_init,B_name);
 %$
 %$ try
 %$   [ts1, ts2] = align(ts1, ts2);
@@ -147,7 +146,7 @@ end
 %$
 %$ if t(1)
 %$   t(2) = dyn_assert(ts1.nobs,ts2.nobs);
-%$   t(3) = dyn_assert(ts1.init==ts2.init,1);
+%$   t(3) = dyn_assert(isequal(ts1.init,ts2.init),1);
 %$   t(4) = dyn_assert(ts1.data,A, 1e-15);
 %$   t(5) = dyn_assert(ts2.data,[B; NaN(1,2)], 1e-15);
 %$ end
@@ -166,9 +165,9 @@ end
 %$ A_init = '1990Q1';
 %$ B_init = '1990Q1';
 %$
-%$ % Instantiate two dynSeries objects
-%$ ts1 = dynSeries(A,A_init,A_name);
-%$ ts2 = dynSeries(B,B_init,B_name);
+%$ % Instantiate two dseries objects
+%$ ts1 = dseries(A,A_init,A_name);
+%$ ts2 = dseries(B,B_init,B_name);
 %$
 %$ try
 %$   [ts2, ts1] = align(ts2, ts1);
@@ -179,7 +178,7 @@ end
 %$
 %$ if t(1)
 %$   t(2) = dyn_assert(ts1.nobs,ts2.nobs);
-%$   t(3) = dyn_assert(ts1.init==ts2.init,1);
+%$   t(3) = dyn_assert(isequal(ts1.init,ts2.init),1);
 %$   t(4) = dyn_assert(ts1.data,A, 1e-15);
 %$   t(5) = dyn_assert(ts2.data,[B; NaN(1,2)], 1e-15);
 %$ end
diff --git a/matlab/@dynSeries/baxter_king_filter.m b/matlab/@dseries/baxter_king_filter.m
similarity index 76%
rename from matlab/@dynSeries/baxter_king_filter.m
rename to matlab/@dseries/baxter_king_filter.m
index 21a8dd930687f8147279f7b4bbbf0734782dd81b..8dce6288a69df337800b20d34bb353e82d00ddb9 100644
--- a/matlab/@dynSeries/baxter_king_filter.m
+++ b/matlab/@dseries/baxter_king_filter.m
@@ -2,18 +2,18 @@ function ts = baxter_king_filter(ts, high_frequency, low_frequency, K) % --*-- U
 
 % ts = baxter_king_filter(ts, high_frequency, low_frequency, K)
 %
-% Implementation of Baxter and King (1999) band pass filter for dynSeries objects. The code is adapted from
+% Implementation of Baxter and King (1999) band pass filter for dseries objects. The code is adapted from
 % the one provided by Baxter and King. This filter isolates business cycle fluctuations with a period of length 
 % ranging between high_frequency to low_frequency (quarters).
 %
 % INPUTS 
-%  o ts                 dynSeries object.
+%  o ts                 dseries object.
 %  o high_frequency     positive scalar, period length (default value is 6).
 %  o low_frequency      positive scalar, period length (default value is 32).
 %  o K                  positive scalar integer, truncation parameter (default value is 12).
 %
 % OUTPUTS 
-%  o ts                 dynSeries object.
+%  o ts                 dseries object.
 %
 % REMARKS 
 % This filter use a (symmetric) moving average smoother, so that K observations at the beginning and at the end of the 
@@ -45,14 +45,14 @@ if nargin<4 || isempty(truncature)
             % Set default number of periods corresponding to the highest frequency.
             high_frequency = 6;
             if nargin<1
-                error('dynSeries::baxter_king_filter: I need at least one argument')
+                error('dseries::baxter_king_filter: I need at least one argument')
             end
         else
             if high_frequency<2
-                error('dynSeries::baxter_king_filter: Second argument must be greater than 2!')
+                error('dseries::baxter_king_filter: Second argument must be greater than 2!')
             end
             if high_frequency>low_frequency
-                error('dynSeries::baxter_king_filter: Second argument must be smaller than the third argument!')
+                error('dseries::baxter_king_filter: Second argument must be smaller than the third argument!')
             end
         end
     end
@@ -91,14 +91,14 @@ for t = K+1:ts.nobs-K
     tmp(t,:)  = weights'*ts.data(t-K:t+K,:);    
 end
 
-% Update dynSeries object.
+% Update dseries object.
 ts.data = tmp(K+1:end-K,:);
 ts.nobs = ts.nobs-2*K;
 ts.init = ts.init+K;
-ts.time = ts.init:ts.init+ts.nobs;
+ts.dates = ts.init:ts.init+(ts.nobs-1);
 
 %@test:1
-%$ plot_flag = 0; 
+%$ plot_flag = 0;
 %$
 %$ % Create a dataset.
 %$ e = .2*randn(200,1);
@@ -113,9 +113,9 @@ ts.time = ts.init:ts.init+ts.nobs;
 %$
 %$ % Test the routine.
 %$ try
-%$     ts = dynSeries(y,'1950Q1');
+%$     ts = dseries(y,'1950Q1');
 %$     ts = ts.baxter_king_filter();
-%$     xx = dynSeries(x,'1950Q1');
+%$     xx = dseries(x,'1950Q1');
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
@@ -131,11 +131,18 @@ ts.time = ts.init:ts.init+ts.nobs;
 %$
 %$ % Show results
 %$ if plot_flag
-%$     plot(xx(ts.time).data,'-k');
+%$     plot(xx(ts.dates).data,'-k');
 %$     hold on
 %$     plot(ts.data,'--r');
 %$     hold off
 %$     axis tight
+%$     id = get(gca,'XTick');
+%$     set(gca,'XTickLabel',strings(ts.dates(id)));
+%$     legend({'Stationary component of y', 'Filtered y'})
+%$     print('-depsc2','../doc/dynare.plots/BaxterKingFilter.eps')
+%$     system('convert -density 300 ../doc/dynare.plots/BaxterKingFilter.eps ../doc/dynare.plots/BaxterKingFilter.png');
+%$     system('convert -density 300 ../doc/dynare.plots/BaxterKingFilter.eps ../doc/dynare.plots/BaxterKingFilter.pdf');
+%$     system('convert -density 300 ../doc/dynare.plots/BaxterKingFilter.eps ../doc/dynare.plots/BaxterKingFilter.jpg');
 %$ end
 %$
 %$ T = all(t);
diff --git a/matlab/@dseries/chain.m b/matlab/@dseries/chain.m
new file mode 100644
index 0000000000000000000000000000000000000000..dccf3bb525f854ce5d51d1b00375b5fc58f6bcb0
--- /dev/null
+++ b/matlab/@dseries/chain.m
@@ -0,0 +1,62 @@
+function vs = chain(ts,us)
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ts.vobs-us.vobs
+    error(['dseries::chain: dseries objects ' inputname(1) ' and ' inputname(2) ' must have the same number of variables!'])
+end
+
+if ts.freq-us.freq
+    error(['dseries::chain: dseries objects ' inputname(1) ' and ' inputname(2) ' must have common frequencies!'])
+end
+
+if ts.dates(end)<us.dates(1)
+    error(['dseries::chain: The last date in ' inputname(1) ' (' date2string(ts.dates(end)) ') must not preceed the first date in ' inputname(2) ' (' date2string(us.dates(1)) ')!'])
+end
+
+tdx = find(sum(bsxfun(@eq,us.dates.time,ts.dates.time(end,:)),2)==2);
+GrowthFactor = us.data(tdx+1:end,:)./us.data(tdx:end-1,:);
+CumulatedGrowthFactors = cumprod(GrowthFactor);
+
+vs = ts;
+vs.data = [vs.data; bsxfun(@times,CumulatedGrowthFactors,vs.data(end,:))];
+vs.nobs = rows(vs.data);
+
+vs.dates = vs.init:(vs.init+vs.nobs);
+
+%@test:1
+%$ try
+%$     ts = dseries([1; 2; 3; 4],dates('1950Q1')) ;
+%$     us = dseries([3; 4; 5; 6],dates('1950Q3')) ;
+%$     vs = chain(ts,us);
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dyn_assert(vs.freq,4);
+%$     t(3) = dyn_assert(vs.init.freq,4);
+%$     t(4) = dyn_assert(vs.init.time,[1950, 1]);
+%$     t(5) = dyn_assert(ts.vobs,1);
+%$     t(6) = dyn_assert(vs.nobs,6);
+%$     t(7) = isequal(vs.data,transpose(1:6));
+%$ end
+%$
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynSeries/check.m b/matlab/@dseries/check.m
similarity index 59%
rename from matlab/@dynSeries/check.m
rename to matlab/@dseries/check.m
index 02525ec3ba205239a84ff7c37e5429833b147fea..9f07b011948bb5ab3a725b79da6ece3fc409ba63 100644
--- a/matlab/@dynSeries/check.m
+++ b/matlab/@dseries/check.m
@@ -24,7 +24,7 @@ error_flag = 0;
 if ~isequal(m,A.vobs);
     error_flag = 1;
     if nargout>1
-        message = ['dynSeries: Wrong number of variables in dynSeries object ''' inputname(1) '''!']:
+        message = ['dseries: Wrong number of variables in dseries object ''' inputname(1) '''!'];
     end
     return
 end
@@ -32,7 +32,7 @@ end
 if ~isequal(n,A.nobs);
     error_flag = 1;
     if nargout>1
-        message = ['dynSeries: Wrong number of observations in dynSeries object ''' inputname(1) '''!']:
+        message = ['dseries: Wrong number of observations in dseries object ''' inputname(1) '''!'];
     end
     return
 end
@@ -40,7 +40,7 @@ end
 if ~isequal(m,numel(A.name));
     error_flag = 1;
     if nargout>1
-        message = ['dynSeries: Wrong number of variable names in dynSeries object ''' inputname(1) '''!']:
+        message = ['dseries: Wrong number of variable names in dseries object ''' inputname(1) '''!'];
     end
     return
 end
@@ -48,7 +48,7 @@ end
 if ~isequal(m,numel(A.tex));
     error_flag = 1;
     if nargout>1
-        message = ['dynSeries: Wrong number of variable tex names in dynSeries object ''' inputname(1) '''!']:
+        message = ['dseries: Wrong number of variable tex names in dseries object ''' inputname(1) '''!'];
     end
     return
 end
@@ -56,7 +56,7 @@ end
 if ~isequal(numel(A.name),numel(A.tex));
     error_flag = 1;
     if nargout>1
-        message = ['dynSeries: The number of variable tex names has to be equal to the number of variable names in dynSeries object ''' inputname(1) '''!']:
+        message = ['dseries: The number of variable tex names has to be equal to the number of variable names in dseries object ''' inputname(1) '''!'];
     end
     return
 end
@@ -64,23 +64,23 @@ end
 if ~isequal(numel(unique(A.name)),numel(A.name));
     error_flag = 1;
     if nargout>1
-        message = ['dynSeries: The variable names in dynSeries object ''' inputname(1) ''' are not unique!']:
+        message = ['dseries: The variable names in dseries object ''' inputname(1) ''' are not unique!'];
     end
     return
 end
 
-if ~isequal(numel(unique(A.tex)),numel(A.tex));
+if ~isequa(numel(unique(A.tex)),numel(A.tex));
     error_flag = 1;
     if nargout>1
-        message = ['dynSeries: The variable tex names in dynSeries object ''' inputname(1) ''' are not unique!']:
+        message = ['dseries: The variable tex names in dseries object ''' inputname(1) ''' are not unique!'];
     end
     return
 end
 
-if ~eq(A.time,A.init:A.init+A.nobs)
+if ~isequal(A.dates,A.init:A.init+A.nobs)
     error_flag = 1;
     if nargout>1
-        message = ['dynSeries: Wrong definition of the time member in dynSeries object ''' inputname(1) '''!']:
+        message = ['dseries: Wrong definition of the dates member in dseries object ''' inputname(1) '''!'];
     end
     return
 end
\ No newline at end of file
diff --git a/matlab/@dseries/cumprod.m b/matlab/@dseries/cumprod.m
new file mode 100644
index 0000000000000000000000000000000000000000..54a4e33add9f29a2563565eb6ab5e97e38ec5aeb
--- /dev/null
+++ b/matlab/@dseries/cumprod.m
@@ -0,0 +1,234 @@
+function B = cumprod(varargin) % --*-- Unitary tests --*--
+
+% Overloads matlab's cumprod function for dseries objects.
+%
+% INPUTS
+%  o A     dseries object [mandatory].
+%  o d     dates object [optional]
+%  o v     dseries object with one observation [optional]
+%
+% OUTPUTS
+%  o B     dseries object.
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+% Get indices of the columns without NaNs
+idx = find(~any(isnan(varargin{1}.data)));
+
+if isempty(idx)
+    error('dseries::cumprod: All the variables have NaNs. The cumulated product cannot be computed!')
+end
+
+if ~isequal(idx(:),transpose(1:varargin{1}.vobs))
+    warning('dseries::cumprod: The cumulated product is not computed for some variables because they have NaNs!')
+end
+
+switch nargin
+    case 1
+      % Initialize the output.
+      B = varargin{1};
+      % Perform the cumulated sum
+      B.data(:,idx) = cumprod(B.data(:,idx));
+      % Change the name of the variables
+      for i=1:B.vobs
+          B.name(i) = {['cumprod(' B.name{i} ')']};
+          B.tex(i) = {['\prod_t ' B.tex{i}]};
+      end
+  case 2
+    if isdseries(varargin{2})
+        if ~isequal(varargin{1}.vobs, varargin{2}.vobs)
+            error('dseries::cumprod: First and second input arguments must be dseries objects with the same number of variables!')
+        end
+        if ~isequal(varargin{1}.name, varargin{2}.name)
+            warning('dseries::cumprod: First and second input arguments must be dseries objects do not have the same variables!')
+        end
+        if ~isequal(varargin{2}.nobs,1)
+            error('dseries::cumprod: Second input argument must be a dseries object with only one observation!')
+        end
+        B = cumprod(varargin{1});
+        B.data = bsxfun(@rdivide,B.data,B.data(1,:));
+        B.data = bsxfun(@times,B.data,varargin{2}.data);
+    elseif isdates(varargin{2})
+        B = cumprod(varargin{1});
+        t = find(B.dates==varargin{2});
+        if isempty(t)
+            if varargin{2}==(B.init-1)
+                return
+            else
+                error(['dseries::cumprod: date ' date2string(varargin{2}) ' is not in the sample!'])
+            end
+        end
+        B.data = bsxfun(@rdivide,B.data,B.data(t,:));
+    else
+        error('dseries::cumprod: Second input argument must be a dseries object or a dates object!')
+    end
+  case 3
+    if ~isdates(varargin{2})
+        error('dseries::cumprod: Second input argument must be a dates object!')
+    end
+    if ~isdseries(varargin{3})
+        error('dseries::cumprod: Third input argument must be a dseries object!')
+    end
+    if ~isequal(varargin{1}.vobs, varargin{3}.vobs)
+        error('dseries::cumprod: First and third input arguments must be dseries objects with the same number of variables!')
+    end
+    if ~isequal(varargin{1}.name, varargin{3}.name)
+        warning('dseries::cumprod: First and third input arguments must be dseries objects do not have the same variables!')
+    end
+    if ~isequal(varargin{3}.nobs,1)
+        error('dseries::cumprod: Third input argument must be a dseries object with only one observation!')
+    end
+    B = cumprod(varargin{1});
+    t = find(B.dates==varargin{2});
+    if isempty(t)
+        if varargin{2}==(B.init-1)
+            B.data = bsxfun(@times,B.data,varargin{3}.data);
+            return
+        else
+            error(['dseries::cumprod: date ' date2string(varargin{2}) ' is not in the sample!'])
+        end
+    end
+    B.data = bsxfun(@rdivide, B.data, B.data(t,:));
+    B.data = bsxfun(@times, B.data, varargin{3}.data);
+  otherwise
+    error('dseries::cumprod: Wrong number of input arguments!')
+end
+
+%@test:1
+%$ % Define a data set.
+%$ A = 2*ones(4,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts = dseries(A,[],A_name,[]);
+%$
+%$ % Call the tested method.
+%$ try
+%$     ts = cumprod(ts);
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = isequal(ts.data,cumprod(A));
+%$     t(3) = isequal(ts.name{1},'cumprod(A1)');
+%$ end
+%$
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define a data set.
+%$ A = 2*ones(4,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts = dseries(A,[],A_name,[]);
+%$
+%$ % Call the tested method.
+%$ try
+%$     ts = ts.cumprod();
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = isequal(ts.data,cumprod(A));
+%$     t(3) = isequal(ts.name{1},'cumprod(A1)');
+%$ end
+%$
+%$ T = all(t);
+%@eof:2
+
+
+%@test:3
+%$ % Define a data set.
+%$ A = 2*ones(7,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts = dseries(A,[],A_name,[]);
+%$
+%$ % Call the tested method.
+%$ ts = cumprod(ts,dates('3Y'));
+%$
+%$ % Expected results.
+%$ ds = dseries([.25; .5; 1; 2; 4; 8; 16], [], A_name, []);
+%$
+%$ % Check the results.
+%$ warning off, % Because the names of the variables are not the same...
+%$ t(1) = dyn_assert(isequal(ts,ts),1);
+%$ warning_config
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ % Define a data set.
+%$ A = 2*ones(7,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(pi, [], A_name, []);
+%$
+%$ % Call the tested method.
+%$ ts3 = cumprod(ts1,dates('3Y'),ts2);
+%$
+%$ % Expected results.
+%$ ts4 = dseries([.25; .5; 1; 2; 4; 8; 16]*pi, [], A_name, []);
+%$
+%$ % Check the results.
+%$ warning off, % Because the names of the variables are not the same...
+%$ t(1) = dyn_assert(isequal(ts3,ts4),1);
+%$ warning_config
+%$ T = all(t);
+%@eof:4
+
+%@test:5
+%$ % Define a data set.
+%$ A = 2*ones(7,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(pi, [], A_name, []);
+%$
+%$ % Call the tested method.
+%$ ts3 = ts1.cumprod(dates('3Y'),ts2);
+%$
+%$ % Expected results.
+%$ ts4 = dseries([.25; .5; 1; 2; 4; 8; 16]*pi, [], A_name, []);
+%$
+%$ % Check the results.
+%$ warning off, % Because the names of the variables are not the same...
+%$ t(1) = dyn_assert(isequal(ts3,ts4),1);
+%$ warning_config
+%$ T = all(t);
+%@eof:5
\ No newline at end of file
diff --git a/matlab/@dseries/cumsum.m b/matlab/@dseries/cumsum.m
new file mode 100644
index 0000000000000000000000000000000000000000..8dc442041c409b50d7967def70179745f70c302d
--- /dev/null
+++ b/matlab/@dseries/cumsum.m
@@ -0,0 +1,225 @@
+function B = cumsum(varargin) % --*-- Unitary tests --*--
+
+% Overloads matlab's cumsum function for dseries objects.
+%
+% INPUTS 
+%  o A     dseries object [mandatory].
+%  o d     dates object [optional]
+%  o v     dseries object with one observation [optional]
+%
+% OUTPUTS 
+%  o B     dseries object.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+% Get indices of the columns without NaNs
+idx = find(~any(isnan(varargin{1}.data)));
+
+if isempty(idx)
+    error('dseries::cumsum: All the variables have NaNs. The cumulated sum cannot be computed!')
+end
+
+if ~isequal(idx(:),transpose(1:varargin{1}.vobs))
+    warning('dseries::cumsum: The cumulated sum is not computed for some variables because they have NaNs!')
+end
+
+switch nargin
+    case 1
+      % Initialize the output.
+      B = varargin{1};
+      % Perform the cumulated sum
+      B.data(:,idx) = cumsum(B.data(:,idx));
+      % Change the name of the variables
+      for i=1:B.vobs
+          B.name(i) = {['cumsum(' B.name{i} ')']};
+          B.tex(i) = {['\sum_t ' B.tex{i}]};
+      end
+  case 2
+    if isdseries(varargin{2})
+        if ~isequal(varargin{1}.vobs, varargin{2}.vobs)
+            error('dseries::cumsum: First and second input arguments must be dseries objects with the same number of variables!')
+        end
+        if ~isequal(varargin{1}.name, varargin{2}.name)
+            warning('dseries::cumsum: First and second input arguments must be dseries objects do not have the same variables!')
+        end
+        if ~isequal(varargin{2}.nobs,1)
+            error('dseries::cumsum: Second input argument must be a dseries object with only one observation!')
+        end
+        B = cumsum(varargin{1});
+        B.data = bsxfun(@plus,B.data,varargin{2}.data);
+    elseif isdates(varargin{2})
+        B = cumsum(varargin{1});
+        t = find(B.dates==varargin{2});
+        if isempty(t)
+            if varargin{2}==(B.init-1)
+                return
+            else
+                error(['dseries::cumsum: date ' date2string(varargin{2}) ' is not in the sample!'])
+            end
+        end
+        B.data = bsxfun(@minus,B.data,B.data(t,:));
+    else
+        error('dseries::cumsum: Second input argument must be a dseries object or a dates object!')
+    end
+  case 3
+    if ~isdates(varargin{2})
+        error('dseries::cumsum: Second input argument must be a dates object!')
+    end
+    if ~isdseries(varargin{3})
+        error('dseries::cumsum: Third input argument must be a dseries object!')
+    end
+    if ~isequal(varargin{1}.vobs, varargin{3}.vobs)
+        error('dseries::cumsum: First and third input arguments must be dseries objects with the same number of variables!')
+    end
+    if ~isequal(varargin{1}.name, varargin{3}.name)
+        warning('dseries::cumsum: First and third input arguments must be dseries objects do not have the same variables!')
+    end
+    if ~isequal(varargin{3}.nobs,1)
+        error('dseries::cumsum: Third input argument must be a dseries object with only one observation!')
+    end
+    B = cumsum(varargin{1});
+    t = find(B.dates==varargin{2});
+    if isempty(t)
+        if varargin{2}==(B.init-1)
+            B.data = bsxfun(@plus,B.data,varargin{3}.data);
+            return
+        else
+            error(['dseries::cumsum: date ' date2string(varargin{2}) ' is not in the sample!'])
+        end
+    end
+    B.data = bsxfun(@plus,B.data,varargin{3}.data-B.data(t,:));
+  otherwise
+    error('dseries::cumsum: Wrong number of input arguments!')
+end
+
+%@test:1
+%$ % Define a data set.
+%$ A = ones(10,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts1 = dseries(A,[],A_name,[]);
+%$
+%$ % Call the tested method.
+%$ ts1 = cumsum(ts1);
+%$
+%$ % Expected results.
+%$ ts2 = dseries(transpose(1:10), [], A_name, []);
+%$
+%$ % Check the results.
+%$ warning off, % Because the names of the variables are not the same...
+%$ t(1) = dyn_assert(isequal(ts1,ts2),1);
+%$ warning_config
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define a data set.
+%$ A = ones(10,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts1 = dseries(A,[],A_name,[]);
+%$
+%$ % Call the tested method.
+%$ ts1 = ts1.cumsum();
+%$
+%$ % Expected results.
+%$ ts2 = dseries(transpose(1:10), [], A_name, []);
+%$
+%$ % Check the results.
+%$ warning off, % Because the names of the variables are not the same...
+%$ t(1) = dyn_assert(isequal(ts1,ts2),1);
+%$ warning_config
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define a data set.
+%$ A = ones(10,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ 
+%$ % Call the tested method.
+%$ ts1 = cumsum(ts1,dates('3Y'));
+%$
+%$ % Expected results.
+%$ ts2 = dseries([-2; -1; 0; 1; 2; 3; 4; 5; 6; 7], [], A_name, []);
+%$
+%$ % Check the results.
+%$ warning off, % Because the names of the variables are not the same...
+%$ t(1) = dyn_assert(isequal(ts1,ts2),1);
+%$ warning_config
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ % Define a data set.
+%$ A = ones(10,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(pi, [], A_name, []);
+%$
+%$ % Call the tested method.
+%$ ts3 = cumsum(ts1,dates('3Y'),ts2);
+%$
+%$ % Expected results.
+%$ ts4 = dseries([-2; -1; 0; 1; 2; 3; 4; 5; 6; 7]+pi, [], A_name, []);
+%$
+%$ % Check the results.
+%$ warning off, % Because the names of the variables are not the same...
+%$ t(1) = dyn_assert(isequal(ts3,ts4),1);
+%$ warning_config
+%$ T = all(t);
+%@eof:4
+
+%@test:5
+%$ % Define a data set.
+%$ A = ones(10,1);
+%$
+%$ % Define names
+%$ A_name = {'A1'};
+%$
+%$ % Instantiate a time series object.
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(pi, [], A_name, []);
+%$
+%$ % Call the tested method.
+%$ ts3 = ts1.cumsum(dates('3Y'),ts2);
+%$
+%$ % Expected results.
+%$ ts4 = dseries([-2; -1; 0; 1; 2; 3; 4; 5; 6; 7]+pi, [], A_name, []);
+%$
+%$ % Check the results.
+%$ warning off, % Because the names of the variables are not the same...
+%$ t(1) = dyn_assert(isequal(ts3,ts4),1);
+%$ warning_config
+%$ T = all(t);
+%@eof:5
\ No newline at end of file
diff --git a/matlab/@dynSeries/disp.m b/matlab/@dseries/disp.m
similarity index 75%
rename from matlab/@dynSeries/disp.m
rename to matlab/@dseries/disp.m
index 852b0bbe8e9ba3fedc9c9bb75932fbdd1f75b946..4ea14a7e65b26da68dfa09f93c38928f98266252 100644
--- a/matlab/@dynSeries/disp.m
+++ b/matlab/@dseries/disp.m
@@ -2,15 +2,15 @@ function disp(A)
 
 %@info:
 %! @deftypefn {Function File} disp (@var{A})
-%! @anchor{@dynSeries/disp}
+%! @anchor{@dseries/disp}
 %! @sp 1
-%! Overloads the disp method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the disp method for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item A
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -23,7 +23,7 @@ separator = repmat(' | ',A.nobs+1,1);
 vspace = ' ';
 TABLE = ' ';
 for t=1:A.nobs
-    TABLE = char(TABLE, format(A.time(t)));
+    TABLE = char(TABLE, date2string(A.dates(t)));
 end
 for i = 1:A.vobs
     TABLE = horzcat(TABLE,separator);
@@ -34,7 +34,7 @@ for i = 1:A.vobs
     TABLE = horzcat(TABLE, tmp);
 end
 disp(vspace)
-disp([inputname(1) ' is a dynSeries object:'])
+disp([inputname(1) ' is a dseries object:'])
 disp(vspace);
 disp(TABLE);
 disp(vspace);
\ No newline at end of file
diff --git a/matlab/@dseries/display.m b/matlab/@dseries/display.m
new file mode 100644
index 0000000000000000000000000000000000000000..70998ecd89c94ad247011577f05ae6c8d23a3678
--- /dev/null
+++ b/matlab/@dseries/display.m
@@ -0,0 +1,128 @@
+function display(A)
+%@info:
+%! @deftypefn {Function File} display (@var{A})
+%! @anchor{@dseries/display}
+%! @sp 1
+%! Overloads the disp method for the Dynare time series class (@ref{dseries}).
+%! @sp 2
+%! @strong{Inputs}
+%! @sp 1
+%! @table @ @var
+%! @item A
+%! Dynare time series object instantiated by @ref{dseries}.
+%! @end table
+%! @sp 1
+%! @strong{Outputs}
+%! @sp 1
+%! None
+%! @end deftypefn
+%@eod:
+
+vspace = ' ';
+TABLE = ' ';
+
+if A.vobs<=10
+    if A.nobs<=40
+        separator = repmat(' | ',A.nobs+1,1);
+        for t=1:A.nobs
+            TABLE = char(TABLE, date2string(A.dates(t)));
+        end
+        for i = 1:A.vobs
+            TABLE = horzcat(TABLE,separator);
+            tmp = A.name{i};
+            for t=1:A.nobs
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            TABLE = horzcat(TABLE, tmp);
+        end
+    else
+        n = 10;
+        separator = repmat(' | ',2*n+3,1);
+        for t=1:n
+            TABLE = char(TABLE, date2string(A.dates(t)));
+        end
+        TABLE = char(TABLE,vspace);
+        for t = A.nobs-n:A.nobs
+            TABLE = char(TABLE, date2string(A.dates(t)));
+        end
+        for i=1:A.vobs
+            TABLE = horzcat(TABLE,separator);
+            tmp = A.name{i};
+            for t=1:10
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            tmp = char(tmp,vspace);
+            for t=A.nobs-10:A.nobs
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            TABLE = horzcat(TABLE, tmp);
+        end
+    end
+else
+    m = 4;
+    if A.nobs<=40
+        separator = repmat(' | ',A.nobs+1,1);
+        for t=1:A.nobs
+            TABLE = char(TABLE, date2string(A.dates(t)));
+        end
+        for i = 1:m
+            TABLE = horzcat(TABLE,separator);
+            tmp = A.name{i};
+            for t=1:A.nobs
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            TABLE = horzcat(TABLE, tmp);
+        end
+        TABLE = horzcat(TABLE, separator, repmat(' ... ', A.nobs+1,1));
+        for i = A.vobs-m+1:A.vobs
+            TABLE = horzcat(TABLE,separator);
+            tmp = A.name{i};
+            for t=1:A.nobs
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            TABLE = horzcat(TABLE, tmp);
+        end
+    else
+        n = 10;
+        separator = repmat(' | ',2*n+3,1);
+        for t=1:n
+            TABLE = char(TABLE, date2string(A.dates(t)));
+        end
+        TABLE = char(TABLE,vspace);
+        for t = A.nobs-n:A.nobs
+            TABLE = char(TABLE, date2string(A.dates(t)));
+        end
+        for i=1:m
+            TABLE = horzcat(TABLE,separator);
+            tmp = A.name{i};
+            for t=1:10
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            tmp = char(tmp,vspace);
+            for t=A.nobs-10:A.nobs
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            TABLE = horzcat(TABLE, tmp);
+        end
+        TABLE = horzcat(TABLE, separator, repmat(' ... ', 2*n+3,1));
+        for i=A.vobs-m+1:A.vobs
+            TABLE = horzcat(TABLE,separator);
+            tmp = A.name{i};
+            for t=1:10
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            tmp = char(tmp,vspace);
+            for t=A.nobs-10:A.nobs
+                tmp = char(tmp,num2str(A.data(t,i)));
+            end
+            TABLE = horzcat(TABLE, tmp);
+        end
+    end
+end
+disp(vspace)
+disp([inputname(1) ' is a dseries object:'])
+disp(vspace);
+if ~isempty(strtrim(TABLE))
+    disp(TABLE);
+    disp(vspace);
+end
diff --git a/matlab/@dynSeries/dynSeries.m b/matlab/@dseries/dseries.m
similarity index 64%
rename from matlab/@dynSeries/dynSeries.m
rename to matlab/@dseries/dseries.m
index 9d56f5b5f72b43bd6d3a9258ace80597861c43a1..2c1ef64857c73216732e147a731acd90e950f302 100644
--- a/matlab/@dynSeries/dynSeries.m
+++ b/matlab/@dseries/dseries.m
@@ -1,18 +1,18 @@
-function ts = dynSeries(varargin) % --*-- Unitary tests --*--
+function ts = dseries(varargin) % --*-- Unitary tests --*--
 
 %@info:
-%! @deftypefn {Function File} {@var{ts} =} dynSeries (@var{a},@var{b},@var{c},@var{d})
-%! @anchor{dynSeries}
+%! @deftypefn {Function File} {@var{ts} =} dseries (@var{a},@var{b},@var{c},@var{d})
+%! @anchor{dseries}
 %! @sp 1
 %! Constructor for the Dynare time series class.
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 2
-%! If @code{nargin==0} then an empty dynSeries object is created. The object can be populated with data subsequently using the overloaded subsref method.
+%! If @code{nargin==0} then an empty dseries object is created. The object can be populated with data subsequently using the overloaded subsref method.
 %! @sp 2
-%! If @code{nargin==1} and if the input argument is a @ref{dynDate} object, then a dynSeries object without data is created. This object can be populated with the overload subsref method.
+%! If @code{nargin==1} and if the input argument is a @ref{dynDate} object, then a dseries object without data is created. This object can be populated with the overload subsref method.
 %! @sp 2
-%! If @code{nargin==1} and if the input argument is a string for the name of a csv, m or mat file containing data, then a dynSeries object is created from these data.
+%! If @code{nargin==1} and if the input argument is a string for the name of a csv, m or mat file containing data, then a dseries object is created from these data.
 %! @sp 2
 %! If @code{nargin>1}:
 %! @sp 1
@@ -22,9 +22,9 @@ function ts = dynSeries(varargin) % --*-- Unitary tests --*--
 %! @item b
 %! Initial date. For Quaterly, Monthly or Weekly data, b must be a string. For yearly data or if the frequence is not defined b must be an integer.
 %! @item c
-%! N*1 cell array of strings. Names of the N time series.
+%! N*1 cell array of strings or N*q array of strings. Names of the N time series.
 %! @item d
-%! N*p array of characters. TeX names of the N time series.
+%! N*1 cell array of strings or N*p array of characters. TeX names of the N time series.
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
@@ -78,35 +78,41 @@ function ts = dynSeries(varargin) % --*-- Unitary tests --*--
 
 ts = struct;
 
-ts.data = [];
-ts.nobs = 0;
-ts.vobs = 0;
-ts.name = {};
-ts.tex  = {};
-ts.freq = [];
-ts.init = dynDate();
-ts.time = dynDates();
+ts.data  = [];
+ts.nobs  = 0;
+ts.vobs  = 0;
+ts.name  = {};
+ts.tex   = {};
+ts.freq  = [];
+ts.init  = dates();
+ts.dates = dates();
 
-ts = class(ts,'dynSeries');
+ts = class(ts,'dseries');
 
 switch nargin
   case 0
-    %  Create an empty dynSeries object.
+    %  Create an empty dseries object.
     return
   case 1
-    if isa(varargin{1},'dynDate')
-        if isempty(varargin{1})
-            error(['dynSeries:: ' inputname(1) ' (identified as a dynDate object) must be non empty!'])
-        else
-            % Create an empty dynSeries object with an initial date.
+    if isdates(varargin{1})
+        switch length(varargin{1})
+          case 0
+            error(['dseries::dseries: Input ' inputname(1) ' (identified as a dates object) must be non empty!'])
+          case 1
+            % Create an empty dseries object with an initial date.
             ts.init = varargin{1};
             ts.freq = varargin{1}.freq;
+          otherwise
+            % A range of dates is passed to the constructor
+            ts.dates = varargin{1};
+            ts.init = varargin{1}(1);
+            ts.freq = varargin{1}.freq;
         end
         return
     elseif ischar(varargin{1})
-        % Create a dynSeries object loading data in a file (*.csv, *.m, *.mat).
+        % Create a dseries object loading data in a file (*.csv, *.m, *.mat).
         if isempty(varargin{1})
-            error('dynSeries:: Wrong calling sequence! Input argument cannot be an empty string.')
+            error('dseries:: Wrong calling sequence! Input argument cannot be an empty string.')
         elseif check_file_extension(varargin{1},'m')
             [freq,init,data,varlist,tex] = load_m_file_data(varargin{1});
         elseif check_file_extension(varargin{1},'mat')
@@ -115,9 +121,9 @@ switch nargin
             [freq,init,data,varlist] = load_csv_file_data(varargin{1});
             tex = [];
         elseif check_file_extension(varargin{1},'xls') || check_file_extension(varargin{1},'xlsx')
-            if ~isempty(who('global','options_'));
+            if isglobalinbase('options_')
                 % Check that the object is instantiated within a dynare session so that options_ global structure exists.
-                % Should provide latter a mechanism to pass range and sheet to dynSeries constructor...
+                % Should provide latter a mechanism to pass range and sheet to dseries constructor...
                 range = evalin('base','options_.xls_range');
                 sheet = evalin('base','options_.xls_sheet');
             else
@@ -128,7 +134,7 @@ switch nargin
             [freq,init,data,varlist] = load_xls_file_data(varargin{1}, sheet, range);
             tex = [];
         else
-            error(['dynSeries:: I''m not able to load data from ' inputname(1) '!'])
+            error(['dseries:: I''m not able to load data from ' inputname(1) '!'])
         end
         ts.init = init;
         ts.freq = freq;
@@ -145,8 +151,7 @@ switch nargin
         ts.data = varargin{1};
         [ts.nobs, ts.vobs] = size(ts.data);
         ts.freq = 1;
-        ts.init = dynDate(1);
-        ts.time = ts.init:ts.init+ts.nobs;
+        ts.init = dates(1,1);
         ts.name = default_name(ts.vobs);
         ts.tex = name2tex(ts.name);
     end
@@ -157,33 +162,57 @@ switch nargin
         d = {};
     else
         d = varargin{4};
+        if ~iscell(d) && ~isempty(d)
+            d = cellstr(d);
+        end
     end
     if nargin<3
         c = {};
     else
         c = varargin{3};
+        if ~iscell(c) && ~isempty(c)
+            c = cellstr(c);
+        end
     end
     % Get data, number of observations and number of variables.
     ts.data = a;
     ts.nobs = size(a,1);
     ts.vobs = size(a,2);
     % Get the first date and set the frequency.
-    if ~isempty(b)
-        if ischar(b)% Weekly, Monthly or Quaterly data.
-            ts.init = dynDate(b);
-            ts.freq = ts.init.freq;
-        elseif isa(b,'dynDate') && ~isempty(b)
-            ts.freq = b.freq;
-            ts.init = b;
-        elseif isnumeric(b) && isreal(b) && isint(b)
-            ts.freq = 1;
-            ts.init = dynDate(b);
-        else
-            error('dynSeries::dynSeries: Wrong calling sequence!');
-        end
-    else% If b is empty.
+    if isempty(b)
         ts.freq = 1;
-        ts.init = dynDate(1);
+        ts.init = dates(1,1);
+    elseif (isdates(b) && isequal(length(b),1))
+        ts.freq = b.freq;
+        ts.init = b;
+    elseif isdate(b)% Weekly, Monthly, Quaterly or Annual data (string).
+        ts.init = dates(b);
+        ts.freq = ts.init.freq;
+    elseif (isnumeric(b) && isscalar(b) && isint(b)) % Yearly data.
+        ts.freq = 1;
+        ts.init = dates([num2str(b) 'Y']);
+    elseif isdates(b) % Range of dates
+        ts.freq = b.freq;
+        ts.init = b(1);
+        if ts.nobs>1 && ~isequal(b.ndat,ts.nobs)
+            message =   'dseries::dseries: If second input is a range, its number of elements must match ';
+            message = char(message, '                  the number of rows in the first input, unless the first input');
+            message = char(message, '                  has only one row.');
+            skipline()
+            disp(message);
+            error(' ');
+        elseif isequal(ts.nobs, 1)
+            ts.data = repmat(ts.data,b.ndat,1);
+            ts.nobs = b.ndat;
+        end
+        ts.dates = b;
+    elseif (isnumeric(b) && isint(b)) % Range of yearly dates.
+        message = 'dseries::dseries: Not implemented! If you need to define a range of years';
+        message = char(message, '                  you have to pass a dates object as the second input argument.');
+        disp(message)
+        error(' ')
+    else
+        error('dseries::dseries: Wrong calling sequence!');
     end
     % Get the names of the variables.
     if ~isempty(c)
@@ -192,7 +221,7 @@ switch nargin
                 ts.name = vertcat(ts.name, c(i) );
             end
         else
-            error('dynSeries::dynSeries: The number of declared names does not match the number of variables!')
+            error('dseries::dseries: The number of declared names does not match the number of variables!')
         end
     else
         ts.name = default_name(ts.vobs);
@@ -203,21 +232,23 @@ switch nargin
                 ts.tex = vertcat(ts.tex, d(i));
             end
         else
-            error('dynSeries::dynSeries: The number of declared tex names does not match the number of variables!')
+            error('dseries::dseries: The number of declared tex names does not match the number of variables!')
         end
     else
         ts.tex = name2tex(ts.name);
     end
   otherwise
-    error('dynSeries::dynSeries: Can''t instantiate the class, wrong calling sequence!')
+    error('dseries::dseries: Can''t instantiate the class, wrong calling sequence!')
 end
 
-ts.time = ts.init:(ts.init+ts.nobs);
+if isempty(ts.dates)
+    ts.dates = ts.init:ts.init+(ts.nobs-1);
+end
 
 %@test:1
-%$ % Test if we can instantiate an empty dynSeries object.
+%$ % Test if we can instantiate an empty dseries object.
 %$ try
-%$     ts = dynSeries();
+%$     ts = dseries();
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
@@ -230,8 +261,8 @@ ts.time = ts.init:(ts.init+ts.nobs);
 %$ t = zeros(4,1);
 %$
 %$ try
-%$     aa = dynDate('1938M11');
-%$     ts = dynSeries(aa);
+%$     aa = dates('1938M11');
+%$     ts = dseries(aa);
 %$     t(1) = 1;
 %$ catch
 %$     t = 0;
@@ -250,7 +281,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 %$ t = zeros(6,1);
 %$
 %$ try
-%$     ts = dynSeries('dynseries_test_data.m');
+%$     ts = dseries('dynseries_test_data.m');
 %$     t(1) = 1;
 %$ catch
 %$     t = 0;
@@ -271,7 +302,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 %$ t = zeros(6,1);
 %$
 %$ try
-%$     ts = dynSeries('dynseries_test_data.mat');
+%$     ts = dseries('dynseries_test_data.mat');
 %$     t(1) = 1;
 %$ catch
 %$     t = 0;
@@ -292,7 +323,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 %$ t = zeros(8,1);
 %$
 %$ try
-%$     ts = dynSeries('dynseries_test_data.csv');
+%$     ts = dseries('dynseries_test_data.csv');
 %$     t(1) = 1;
 %$ catch
 %$     t = 0;
@@ -315,7 +346,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 %$ t = zeros(8,1);
 %$
 %$ %try
-%$     ts = dynSeries(transpose(1:5),[]);
+%$     ts = dseries(transpose(1:5),[]);
 %$     t(1) = 1;
 %$ %catch
 %$ %    t = 0;
@@ -338,7 +369,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 %$ t = zeros(8,1);
 %$
 %$ try
-%$     ts = dynSeries(transpose(1:5),'1950Q1');
+%$     ts = dseries(transpose(1:5),'1950Q1');
 %$     t(1) = 1;
 %$ catch
 %$     t = 0;
@@ -361,7 +392,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 %$ t = zeros(8,1);
 %$
 %$ try
-%$     ts = dynSeries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
+%$     ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
 %$     t(1) = 1;
 %$ catch
 %$     t = 0;
@@ -382,7 +413,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 
 %@test:9
 %$ try
-%$     ts = dynSeries('dynseries_test_data-1.xls');
+%$     ts = dseries('dynseries_test_data-1.xls');
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
@@ -403,7 +434,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 
 %@test:10
 %$ try
-%$     ts = dynSeries('dynseries_test_data-2.xls');
+%$     ts = dseries('dynseries_test_data-2.xls');
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
@@ -424,7 +455,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 
 %@test:11
 %$ try
-%$     ts = dynSeries('dynseries_test_data-3.xls');
+%$     ts = dseries('dynseries_test_data-3.xls');
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
@@ -445,7 +476,7 @@ ts.time = ts.init:(ts.init+ts.nobs);
 
 %@test:12
 %$ try
-%$     ts = dynSeries('dynseries_test_data-4.xls');
+%$     ts = dseries('dynseries_test_data-4.xls');
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
@@ -462,4 +493,58 @@ ts.time = ts.init:(ts.init+ts.nobs);
 %$ end
 %$
 %$ T = all(t);
-%@eof:12
\ No newline at end of file
+%@eof:12
+
+%@test:13
+%$ t = zeros(6,1);
+%$
+%$ try
+%$     ts = dseries(transpose(1:4),dates('1990Q1'):dates('1990Q4'));
+%$     t(1) = 1;
+%$ catch
+%$     t = 0;
+%$ end
+%$
+%$ if length(t)>1
+%$     t(2) = dyn_assert(ts.freq,4);
+%$     t(3) = dyn_assert(ts.init.freq,4);
+%$     t(4) = dyn_assert(ts.init.time,[1990, 1]);
+%$     t(5) = dyn_assert(ts.vobs,1);
+%$     t(6) = dyn_assert(ts.nobs,4);
+%$ end
+%$
+%$ T = all(t);
+%@eof:13
+
+%@test:14
+%$ t = zeros(7,1);
+%$
+%$ try
+%$     ts = dseries([1, 2],dates('1990Q1'):dates('1990Q4'));
+%$     t(1) = 1;
+%$ catch
+%$     t = 0;
+%$ end
+%$
+%$ if length(t)>1
+%$     t(2) = dyn_assert(ts.freq,4);
+%$     t(3) = dyn_assert(ts.init.freq,4);
+%$     t(4) = dyn_assert(ts.init.time,[1990, 1]);
+%$     t(5) = dyn_assert(ts.vobs,2);
+%$     t(6) = dyn_assert(ts.nobs,4);
+%$     t(7) = dyn_assert(ts.data, [ones(4,1), 2*ones(4,1)]);
+%$ end
+%$
+%$ T = all(t);
+%@eof:14
+
+%@test:15
+%$ try
+%$     ts = dseries([1; 2],dates('1990Q1'):dates('1990Q4'));
+%$     t = 0;
+%$ catch
+%$     t = 1;
+%$ end
+%$
+%$ T = all(t);
+%@eof:15
diff --git a/matlab/@dseries/eq.m b/matlab/@dseries/eq.m
new file mode 100644
index 0000000000000000000000000000000000000000..0f961fb551fad9a7e85f723d8e4dd2fab6f778c5
--- /dev/null
+++ b/matlab/@dseries/eq.m
@@ -0,0 +1,89 @@
+function C = eq(A,B) % --*-- Unitary tests --*--
+
+% Overloads eq (==) operator.
+%
+% INPUTS 
+%  o A      dseries object (T periods, N variables).
+%  o B      dseries object (T periods, N variables).
+%
+% OUTPUTS 
+%  o C      T*N matrix of zeros and ones. Element C(t,n) is nonzero iff observation t of variable n in A and B are equal.  
+%
+% REMARKS 
+%  If the number of variables, the number of observations or the frequencies are different in A and B, the function returns a zero scalar. 
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if nargin~=2
+    error('dseries::eq: I need exactly two input arguments!')
+end
+
+if ~(isdseries(A) && isdseries(B))
+    error('dseries::eq: Both input arguments must be dseries objects!')
+end
+
+if ~isequal(A.nobs,B.nobs)
+    warning('dseries::eq: Both input arguments should have the same number of observations!')
+    C = 0;
+    return
+end
+
+if ~isequal(A.vobs,B.vobs)
+    warning('dseries::eq: Both input arguments should have the same number of observations!')
+    C = 0;
+    return
+end
+
+if ~isequal(A.freq,B.freq)
+    warning('dseries::eq: Both input arguments should have the same frequencies!')
+    C = 0;
+    return
+end
+
+if ~isequal(A.init,B.init)
+    warning('dseries::eq: Both input arguments should have the same initial period!')
+    C = 0;
+    return
+end
+
+C = eq(A.data, B.data);
+
+%@test:1
+%$ % Define a datasets.
+%$ A = rand(10,3);
+%$
+%$ % Define names
+%$ A_name = {'A1';'A2';'A3'};
+%$
+%$ t = zeros(2,1);
+%$
+%$ % Instantiate a time series object.
+%$ try
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = ts1;
+%$    a = eq(ts1,ts2);
+%$    t(1) = 1;
+%$ catch
+%$    t = 0;
+%$ end
+%$
+%$ if length(t)>1
+%$    t(2) = dyn_assert(a,ones(10,3));
+%$ end
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynSeries/exp.m b/matlab/@dseries/exp.m
similarity index 95%
rename from matlab/@dynSeries/exp.m
rename to matlab/@dseries/exp.m
index 3690ae4bb756ba4a85ffddeb4848013f9dd7c954..4fa36bc793433ca52c46b2c56e3a0de7b835552c 100644
--- a/matlab/@dynSeries/exp.m
+++ b/matlab/@dseries/exp.m
@@ -9,7 +9,7 @@ function ts = exp(ts)
 %! @strong{Inputs}
 %! @table @var
 %! @item ts
-%! Dynare time series object, instantiated by @ref{dynSeries}
+%! Dynare time series object, instantiated by @ref{dseries}
 %! @end table
 %!
 %! @strong{Outputs}
diff --git a/matlab/@dynSeries/extract.m b/matlab/@dseries/extract.m
similarity index 60%
rename from matlab/@dynSeries/extract.m
rename to matlab/@dseries/extract.m
index d51e08da7abe69968089febc37bfc1570ee32e29..2c0e0be7999014bea818dd55d9b51d67b65f7c9b 100644
--- a/matlab/@dynSeries/extract.m
+++ b/matlab/@dseries/extract.m
@@ -19,110 +19,113 @@ function A = extract(B,varargin) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-A = dynSeries();
+A = dseries();
 
-% Get the names of the variables to be extracted from dynSeries object B.
+% Get the names of the variables to be extracted from dseries object B.
 VariableName_ = {};
 for i=1:nargin-1
     VariableName = varargin{i};
     idArobase = strfind(VariableName,'@');
-    switch length(idArobase)
-      case 2
-        idComma = strfind(VariableName(idArobase(1)+1:idArobase(2)-1),',');
-        first_block_id = 0;
-        last_block_id = 0;
-        if idArobase(1)>1
-            first_block_id = idArobase(1)-1;
+    if mod(length(idArobase),2)
+        error('dseries::extract: (Implicit loops) The number of @ symbols must be even!')
+    end
+    idBracket.open = strfind(VariableName,'[');
+    idBracket.close = strfind(VariableName,']');
+    if ~isequal(length(idBracket.open),length(idBracket.open))
+        error('dseries::extract: (Matlab/Octave''s regular expressions) Check opening and closing square brackets!')
+    end
+    if length(idArobase)
+        NumberOfImplicitLoops = .5*length(idArobase);
+        idComma = cell(NumberOfImplicitLoops,1);
+        expressions = cell(NumberOfImplicitLoops,1);
+        for i=0:NumberOfImplicitLoops-1
+            idComma(i+1) = { strfind(VariableName(idArobase(2*i+1)+1:idArobase(2*i+2)-1),',') };
+            expressions(i+1) = { VariableName(idArobase(2*i+1)+1:idArobase(2*i+2)-1) };
         end
-        if idArobase(2)<length(VariableName)
-            last_block_id = length(VariableName)-idArobase(2)-1;
+        if any(cellfun(@isempty,idComma))
+            error('dseries::extract: (Implicit loops) Wrong syntax!')
         end
-        if isempty(idComma)
-            % Matlab's regular expressions
-            VariableName(idArobase(1)) = '[';
-            VariableName(idArobase(2)) = ']';
-            idVariables = find(isnotempty_cell(regexp(B.name,VariableName,'match')));
-            if isempty(idVariables)
-                error(['dynSeries::extract: Can''t find any variable matching ' VariableName ' pattern!'])
-            end
-            idVariables_ = [];
-            for j = 1:length(idVariables)
-                first_block_flag = 0;
-                if (first_block_id && strcmp(B.name{idVariables(j)}(1:first_block_id),VariableName(1:first_block_id))) || ~first_block_id
-                    first_block_flag = 1;
-                end
-                last_block_flag = 0;
-                if (last_block_id && strcmp(B.name{idVariables(j)}(end-last_block_id:end),VariableName(end-last_block_id:end))) || ~last_block_id
-                    last_block_flag = 1;
-                end
-                if first_block_flag && last_block_flag
-                    idVariables_ = [idVariables_; idVariables(j)];
-                end
-            end
-            VariableName = B.name(idVariables_);
-        else
-            expression = VariableName(idArobase(1)+1:idArobase(2)-1);
+        switch NumberOfImplicitLoops
+          case 1
+            expression = expressions{1};
             idVariables_ = [];
             while ~isempty(expression)
                 [token, expression] = strtok(expression,',');             
                 candidate = [VariableName(1:idArobase(1)-1), token, VariableName(idArobase(2)+1:end)];
-                id = strmatch(candidate,B.name,'exact');
+                id = find(strcmp(candidate,B.name));
                 if isempty(id)
-                    error(['dynSeries::extract: Variable ''' candidate ''' does not exist in dynSeries object ''' inputname(1) '''!'])
+                    error(['dseries::extract: (Implicit loops) Variable ''' candidate ''' does not exist in dseries object ''' inputname(1) '''!'])
                 else
                     idVariables_ = [idVariables_; id];
                 end
             end
             VariableName = B.name(idVariables_);
-        end
-        VariableName_ = vertcat(VariableName_,VariableName);
-      case 4
-        idComma_1 = strfind(VariableName(idArobase(1)+1:idArobase(2)-1),',');
-        idComma_2 = strfind(VariableName(idArobase(3)+1:idArobase(4)-1),',');
-        if ~(isempty(idComma_1) || isempty(idComma_1))
+          case 2
             idVariables_ = [];
-            expression_1 = VariableName(idArobase(1)+1:idArobase(2)-1);
+            expression_1 = expressions{1};
             while ~isempty(expression_1)
                 [token_1, expression_1] = strtok(expression_1,',');
-                expression_2 = VariableName(idArobase(3)+1:idArobase(4)-1);
+                expression_2 = expressions{2};
                 while ~isempty(expression_2)
                     [token_2, expression_2] = strtok(expression_2,',');
                     candidate = [VariableName(1:idArobase(1)-1), token_1, VariableName(idArobase(2)+1:idArobase(3)-1),  token_2, VariableName(idArobase(4)+1:end)];
-                    id = strmatch(candidate,B.name,'exact');
+                    id = find(strcmp(candidate,B.name));
                     if isempty(id)
-                        error(['dynSeries::extract: Variable ''' candidate ''' does not exist in dynSeries object ''' inputname(1) '''!'])
+                        error(['dseries::extract: (Implicit loops) Variable ''' candidate ''' does not exist in dseries object ''' inputname(1) '''!'])
                     else
                         idVariables_ = [idVariables_; id];
                     end
                 end
             end
-            VariableName_ = B.name(idVariables_);
-        else
-            error('dynSeries::extract: This kind of selection is not implemented!')
+            VariableName = B.name(idVariables_);
+          otherwise
+            error('dseries::extract: (Implicit loops) Cannot unroll more than two implicit loops!')
+        end
+        VariableName_ = vertcat(VariableName_,VariableName);
+    elseif length(idBracket.open)
+        % Matlab/Octave's regular expressions.
+        first_block_id = 0;
+        last_block_id = 0;
+        idVariables = find(isnotempty_cell(regexp(B.name,VariableName,'match')));
+        if isempty(idVariables)
+            error(['dseries::extract: Can''t find any variable matching ' VariableName ' pattern!'])
         end
-      otherwise
-        if isempty(idArobase)
-            VariableName_ = varargin(:);
-        else
-            error('dynSeries::extract: Cannot handle more than two regular expressions!')
+        idVariables_ = [];
+        for j = 1:length(idVariables)
+            first_block_flag = 0;
+            if (first_block_id && strcmp(B.name{idVariables(j)}(1:first_block_id),VariableName(1:first_block_id))) || ~first_block_id
+                first_block_flag = 1;
+            end
+            last_block_flag = 0;
+            if (last_block_id && strcmp(B.name{idVariables(j)}(end-last_block_id:end),VariableName(end-last_block_id:end))) || ~last_block_id
+                last_block_flag = 1;
+            end
+            if first_block_flag && last_block_flag
+                idVariables_ = [idVariables_; idVariables(j)];
+            end
         end
+        VariableName = B.name(idVariables_);
+        VariableName_ = vertcat(VariableName_,VariableName);
+    else
+        VariableName_ = varargin(:);
     end
-    % Remove trailing white spaces if any
-    VariableName_ = strtrim(VariableName_);
 end
 
+% Remove trailing white spaces if any
+VariableName_ = strtrim(VariableName_);
+
 % Get indices of the selected variables
 idVariableName = NaN(length(VariableName_),1);
 for i = 1:length(idVariableName)
-    idx = strmatch(VariableName_{i},B.name,'exact');
+    idx = find(strcmp(VariableName_{i},B.name));
     if isempty(idx)
-        error(['dynSeries::extract: Variable ' VariableName_{i} ' is not a member of ' inputname(1) '!'])
+        error(['dseries::extract: Variable ' VariableName_{i} ' is not a member of ' inputname(1) '!'])
     end
     idVariableName(i) = idx;
 end
 
 A.data = B.data(:,idVariableName);
-A.time = B.time;
+A.dates = B.dates;
 A.init = B.init;
 A.freq = B.freq;
 A.nobs = B.nobs;
@@ -130,7 +133,6 @@ A.vobs = length(idVariableName);
 A.name = B.name(idVariableName);
 A.tex = B.tex(idVariableName);
 
-
 function b = isnotempty_cell(CellArray)
     CellArrayDimension = size(CellArray);
     b = NaN(CellArrayDimension);
@@ -149,7 +151,7 @@ function b = isnotempty_cell(CellArray)
 %$ A_name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; 'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; 'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12';};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,[],A_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
 %$
 %$ % Call the tested method.
 %$ a = ts1{'GDP_@1,2,3,4,5@'};
@@ -161,25 +163,25 @@ function b = isnotempty_cell(CellArray)
 %$ e1.vobs = 5;
 %$ e1.name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'};
 %$ e1.freq = 1;
-%$ e1.init = dynDate(1);
+%$ e1.init = dates(1,1);
 %$ e2.data = A(:,[1, 13]);
 %$ e2.nobs = 10;
 %$ e2.vobs = 2;
 %$ e2.name = {'GDP_1';'HICP_1'};
 %$ e2.freq = 1;
-%$ e2.init = dynDate(1);
+%$ e2.init = dates(1,1);
 %$
 %$ % Check results.
 %$ t(1) = dyn_assert(e1.data,a.data);
 %$ t(2) = dyn_assert(e1.nobs,a.nobs);
 %$ t(3) = dyn_assert(e1.vobs,a.vobs);
 %$ t(4) = dyn_assert(e1.name,a.name);
-%$ t(5) = dyn_assert(e1.init,a.init);
+%$ t(5) = dyn_assert(isequal(e1.init,a.init),1);
 %$ t(6) = dyn_assert(e2.data,b.data);
 %$ t(7) = dyn_assert(e2.nobs,b.nobs);
 %$ t(8) = dyn_assert(e2.vobs,b.vobs);
 %$ t(9) = dyn_assert(e2.name,b.name);
-%$ t(10) = dyn_assert(e2.init,b.init);
+%$ t(10) = dyn_assert(isequal(e2.init,b.init),1);
 %$ T = all(t);
 %@eof:1
 
@@ -192,7 +194,7 @@ function b = isnotempty_cell(CellArray)
 %$ A_name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; 'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; 'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12';};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,[],A_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
 %$
 %$ % Call the tested method.
 %$ try
@@ -214,7 +216,7 @@ function b = isnotempty_cell(CellArray)
 %$ A_name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; 'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; 'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12';};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,[],A_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
 %$
 %$ % Call the tested method.
 %$ try
diff --git a/matlab/@dynSeries/horzcat.m b/matlab/@dseries/horzcat.m
similarity index 57%
rename from matlab/@dynSeries/horzcat.m
rename to matlab/@dseries/horzcat.m
index dec0d08225b77b63727ecfb31a1a5e275b4c42fb..40610c3f3c90058f2f7b34b3e6feee0019e5de27 100644
--- a/matlab/@dynSeries/horzcat.m
+++ b/matlab/@dseries/horzcat.m
@@ -1,44 +1,25 @@
-function a = horzcat(varargin) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function file} {@var{a} =} horzcat (@var{b},@var{c}, ...)
-%! @anchor{horzcat}
-%! @sp 1
-%! Method of the dynSeries class.
-%! @sp 1
-%! Merge Dynare time series objects. This method overloads the horizontal concatenation operator, so that
-%! two (or more) time series objects can be merged using the following syntax:
-%!
-%!     a = [b, c, d];
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item b
-%! Dynare time series object, instantiated by @ref{dynSeries}.
-%! @item c
-%! Dynare time series object, instantiated by @ref{dynSeries}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item a
-%! Dynare time series object.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @ref{descriptive_statistics}
-%!
-%! @strong{This function calls:}
-%! @ref{dynSeries}, @ref{private/horzcat2}
-%!
-%! @strong{Remark 1.} It is assumed that the two time series objects have the same frequencies. The two time series objects can cover
-%! different time ranges.
-%!
-%! @end deftypefn
-%@eod:
+function B = horzcat(varargin) % --*-- Unitary tests --*--
 
+% Overloads horzcat method for dseries objects.
+%
+% INPUTS 
+%  o A1    dseries object.
+%  o A2    dseries object.
+%  o ...
+%
+% OUTPUTS 
+%  o B     dseries object.
+%
+% EXAMPLE 1 
+%  If A, B and C are dseries objects the following syntax:
+%    
+%    D = [A, B, C] ;
+%
+%  Defines a dseries object D containing the variables appearing in A, B and C.
+%
+% REMARKS 
+%  o A1, A2, ... must not have common variables.
+    
 % Copyright (C) 2011-2013 Dynare Team
 %
 % This file is part of Dynare.
@@ -56,21 +37,69 @@ function a = horzcat(varargin) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-% Original author: stephane DOT adjemian AT univ DASH lemans DOT fr
-
-if nargin==0 
-    a = DynSeries();
-elseif nargin == 1
-    a = varargin{1};
-elseif nargin==2
-    a = horzcat2(varargin{1},varargin{2});
-else
-    a = horzcat2(varargin{1},varargin{2});
-    for i=3:nargin
-        a = horzcat2(a,varargin{i});
+switch nargin
+  case 0
+    B = dseries();
+  case 1
+    B = varargin{1};
+  otherwise
+    B = concatenate(varargin{1}, varargin{2});
+    if nargin>2
+        B = horzcat(B, varargin{3:end});
     end
 end
 
+function a = concatenate(b,c)
+    [n,message] = common_strings_in_cell_arrays(b.name,c.name);
+    if n
+        error(['dseries::horzcat: I cannot concatenate dseries objects with common variable names (' message ')!'])
+    end
+    if ~isequal(b.freq,c.freq)
+        error('dseries::horzcat: All time series objects must have common frequency!')
+    else
+        a = dseries();
+        a.freq = b.freq;
+    end
+    d_nobs_flag = 0;
+    if ~isequal(b.nobs,c.nobs)
+        d_nobs_flag = 1;
+    else
+        a.nobs = b.nobs;
+    end
+    d_init_flag = 0;
+    if ~isequal(b.init,c.init)
+        d_init_flag = 1;
+    end
+    a.vobs = b.vobs+c.vobs;
+    a.name = vertcat(b.name,c.name);
+    a.tex  = vertcat(b.tex,c.tex);
+    if ~( d_nobs_flag(1) || d_init_flag(1) )
+        a.init = b.init;
+        a.data = [b.data,c.data];
+        a.dates = b.dates;
+    else
+        if b.init<=c.init
+            a.init = b.init;
+            if b.init<c.init
+                c.data = [NaN(c.init-b.init,c.vobs); c.data];
+            end
+        else
+            a.init = c.init;
+            b_first_lines = b.init-c.init;
+            b.data = [NaN(b.init-c.init,b.vobs); b.data];
+        end
+        b_last_date = b.init+b.nobs;
+        c_last_date = c.init+c.nobs;
+        if b_last_date<c_last_date
+            b.data = [b.data; NaN(c_last_date-b_last_date,b.vobs)];
+        elseif b_last_date>c_last_date
+            c.data = [c.data; NaN(b_last_date-c_last_date,c.vobs)];
+        end
+        a.data = [b.data, c.data];
+        a.dates = unique([b.dates, c.dates]);
+    end
+    a.nobs = size(a.data,1);
+
 %@test:1
 %$ % Define a data set.
 %$ A = [transpose(1:10),2*transpose(1:10)];
@@ -81,21 +110,21 @@ end
 %$ B_name = {'B1';'B2'};
 %$
 %$ % Define expected results.
-%$ e.time = dynDate(1);
+%$ e.init = dates(1,1);
 %$ e.freq = 1;
 %$ e.name = {'A1';'A2';'B1';'B2'};
 %$ e.data = [A,B];
 %$
 %$ % Instantiate two time series objects.
-%$ ts1 = dynSeries(A,[],A_name,[]);
-%$ ts2 = dynSeries(B,[],B_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(B,[],B_name,[]);
 %$
 %$ % Call the tested method.
 %$ ts3 = [ts1,ts2];
 %$
 %$ % Check the results.
 %$
-%$ t(1) = dyn_assert(ts3.init,e.time);
+%$ t(1) = dyn_assert(isequal(ts3.init,e.init),1);
 %$ t(2) = dyn_assert(ts3.freq,e.freq);
 %$ t(3) = dyn_assert(ts3.data,e.data);
 %$ t(4) = dyn_assert(ts3.name,e.name);
@@ -116,21 +145,20 @@ end
 %$ B_init = 2005;
 %$
 %$ % Define expected results.
-%$ e.time = [transpose(2000+(1:12)), ones(12,1)];
-%$ e.init = dynDate(2001);
+%$ e.init = dates('2001Y');
 %$ e.freq = 1;
 %$ e.name = {'A1';'A2';'B1';'B2'};
 %$ e.data = [ [A; NaN(2,2)], [NaN(4,2); B]];
 %$
 %$ % Instantiate two time series objects.
-%$ ts1 = dynSeries(A,A_init,A_name,[]);
-%$ ts2 = dynSeries(B,B_init,B_name,[]);
+%$ ts1 = dseries(A,A_init,A_name,[]);
+%$ ts2 = dseries(B,B_init,B_name,[]);
 %$
 %$ % Call the tested method.
 %$ ts3 = [ts1,ts2];
 %$
 %$ % Check the results.
-%$ t(1) = dyn_assert(ts3.init,e.init);
+%$ t(1) = dyn_assert(isequal(ts3.init,e.init),1);
 %$ t(2) = dyn_assert(ts3.freq,e.freq);
 %$ t(3) = dyn_assert(ts3.data,e.data);
 %$ t(4) = dyn_assert(ts3.name,e.name);
@@ -152,19 +180,19 @@ end
 %$
 %$ % Define expected results.
 %$ e.freq = 4;
-%$ e.init = dynDate('1950Q1');
+%$ e.init = dates('1950Q1');
 %$ e.name = {'A1';'A2';'B1';'B2'};
 %$ e.data = [ [A; NaN(2,2)], [NaN(2,2); B]];
 %$
 %$ % Instantiate two time series objects.
-%$ ts1 = dynSeries(A,A_init,A_name,[]);
-%$ ts2 = dynSeries(B,B_init,B_name,[]);
+%$ ts1 = dseries(A,A_init,A_name,[]);
+%$ ts2 = dseries(B,B_init,B_name,[]);
 %$
 %$ % Call the tested method.
 %$ ts3 = [ts1,ts2];
 %$
 %$ % Check the results.
-%$ t(1) = dyn_assert(ts3.init,e.init);
+%$ t(1) = dyn_assert(isequal(ts3.init,e.init),1);
 %$ t(2) = dyn_assert(ts3.freq,e.freq);
 %$ t(3) = dyn_assert(ts3.data,e.data);
 %$ t(4) = dyn_assert(ts3.name,e.name);
@@ -185,20 +213,20 @@ end
 %$ B_init = '1950Q3';
 %$
 %$ % Define expected results.
-%$ e.init = dynDate(A_init);
+%$ e.init = dates(A_init);
 %$ e.freq = 4;
 %$ e.name = {'A1';'A2';'B1';'B2'};
 %$ e.data = [ A, [NaN(2,2); B]];
 %$
 %$ % Instantiate two time series objects.
-%$ ts1 = dynSeries(A,A_init,A_name,[]);
-%$ ts2 = dynSeries(B,B_init,B_name,[]);
+%$ ts1 = dseries(A,A_init,A_name,[]);
+%$ ts2 = dseries(B,B_init,B_name,[]);
 %$
 %$ % Call the tested method.
 %$ ts3 = [ts1,ts2];
 %$
 %$ % Check the results.
-%$ t(1) = dyn_assert(ts3.init,e.init);
+%$ t(1) = dyn_assert(isequal(ts3.init,e.init),1);
 %$ t(2) = dyn_assert(ts3.freq,e.freq);
 %$ t(3) = dyn_assert(ts3.data,e.data);
 %$ t(4) = dyn_assert(ts3.name,e.name);
@@ -217,21 +245,21 @@ end
 %$ C_name = {'C1';'C2'};
 %$
 %$ % Define expected results.
-%$ e.init = dynDate(1);
+%$ e.init = dates(1,1);
 %$ e.freq = 1;
 %$ e.name = {'A1';'A2';'B1';'B2';'C1';'C2'};
 %$ e.data = [A,B,C];
 %$
 %$ % Instantiate two time series objects.
-%$ ts1 = dynSeries(A,[],A_name,[]);
-%$ ts2 = dynSeries(B,[],B_name,[]);
-%$ ts3 = dynSeries(C,[],C_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(B,[],B_name,[]);
+%$ ts3 = dseries(C,[],C_name,[]);
 %$
 %$ % Call the tested method.
 %$ ts4 = [ts1,ts2,ts3];
 %$
 %$ % Check the results.
-%$ t(1) = dyn_assert(ts4.init,e.init);
+%$ t(1) = dyn_assert(isequal(ts4.init,e.init),1);
 %$ t(2) = dyn_assert(ts4.freq,e.freq);
 %$ t(3) = dyn_assert(ts4.data,e.data);
 %$ t(4) = dyn_assert(ts4.name,e.name);
@@ -248,8 +276,8 @@ end
 %$ B_name = {'B1';'A2'};
 %$
 %$ % Instantiate two time series objects.
-%$ ts1 = dynSeries(A,[],A_name,[]);
-%$ ts2 = dynSeries(B,[],B_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(B,[],B_name,[]);
 %$
 %$ % Call the tested method.
 %$ try
diff --git a/matlab/@dynSeries/hpcycle.m b/matlab/@dseries/hpcycle.m
similarity index 56%
rename from matlab/@dynSeries/hpcycle.m
rename to matlab/@dseries/hpcycle.m
index e67e93bdf049f02ae7427f1f2166bee0925a4c6d..a35abf7b661fac1f1f048d43ab6ca0f059512d18 100644
--- a/matlab/@dynSeries/hpcycle.m
+++ b/matlab/@dseries/hpcycle.m
@@ -2,14 +2,14 @@ function ts = hpcycle(ts, lambda) % --*-- Unitary tests --*--
 
 % ts = hpcycle(ts, lambda)
 %
-% Extracts the cycle component form a dynSeries object using Hodrick Prescott filter.
+% Extracts the cycle component from a dseries object using Hodrick Prescott filter.
 %
 % INPUTS 
-%  o ts         dynSeries object.
+%  o ts         dseries object.
 %  o lambda     positive scalar, trend smoothness parameter.
 %
 % OUTPUTS 
-%  o ts         dynSeries object, with time series replaced by the cyclical component of the original time series.
+%  o ts         dseries object, with time series replaced by the cyclical component of the original time series.
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -30,7 +30,7 @@ function ts = hpcycle(ts, lambda) % --*-- Unitary tests --*--
 
 if nargin>1 
     if lambda<=0
-        error(['dynSeries::hpcycle: Lambda must be a positive integer!'])
+        error(['dseries::hpcycle: Lambda must be a positive integer!'])
     end
 else
     lambda = [];
@@ -60,28 +60,36 @@ ts.data = data;
 %$
 %$ % Test the routine.
 %$ try
-%$     ts = dynSeries(y,'1950Q1');
-%$     ts = ts.hpcycle();
+%$     ts0 = dseries(y,'1950Q1');
+%$     ts1 = dseries(x,'1950Q1');
+%$     ts2 = ts0.hpcycle();
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
 %$ end
 %$
 %$ if t(1)
-%$     t(2) = dyn_assert(ts.freq,4);
-%$     t(3) = dyn_assert(ts.init.freq,4);
-%$     t(4) = dyn_assert(ts.init.time,[1950, 1]);
-%$     t(5) = dyn_assert(ts.vobs,1);
-%$     t(6) = dyn_assert(ts.nobs,200);
+%$     t(2) = dyn_assert(ts2.freq,4);
+%$     t(3) = dyn_assert(ts2.init.freq,4);
+%$     t(4) = dyn_assert(ts2.init.time,[1950, 1]);
+%$     t(5) = dyn_assert(ts2.vobs,1);
+%$     t(6) = dyn_assert(ts2.nobs,200);
 %$ end
 %$
 %$ % Show results
 %$ if plot_flag
-%$     plot(x,'-k');
+%$     plot(ts1.data,'-k'); % Plot of the stationary component.
 %$     hold on
-%$     plot(ts.data,'--r');
+%$     plot(ts2.data,'--r');          % Plot of the filtered y.
 %$     hold off
 %$     axis tight
+%$     id = get(gca,'XTick');
+%$     set(gca,'XTickLabel',strings(ts1.dates(id)));
+%$     legend({'Stationary component of y', 'Filtered y'})
+%$     print('-depsc2','../doc/dynare.plots/HPCycle.eps')
+%$     system('convert -density 300 ../doc/dynare.plots/HPCycle.eps ../doc/dynare.plots/HPCycle.png');
+%$     system('convert -density 300 ../doc/dynare.plots/HPCycle.eps ../doc/dynare.plots/HPCycle.pdf');
+%$     system('convert -density 300 ../doc/dynare.plots/HPCycle.eps ../doc/dynare.plots/HPCycle.jpg');
 %$ end
 %$
 %$ T = all(t);
diff --git a/matlab/@dynSeries/hptrend.m b/matlab/@dseries/hptrend.m
similarity index 55%
rename from matlab/@dynSeries/hptrend.m
rename to matlab/@dseries/hptrend.m
index a67ac94df0e8e3c54e0ed500282f94c46dcf2b16..a8e1366b7e21bd4503629761582f55826ad9acaa 100644
--- a/matlab/@dynSeries/hptrend.m
+++ b/matlab/@dseries/hptrend.m
@@ -2,14 +2,14 @@ function ts = hptrend(ts, lambda) % --*-- Unitary tests --*--
 
 % ts = hptrend(ts, lambda)
 %
-% Extracts the trend component form a dynSeries object using Hodrick Prescott filter.
+% Extracts the trend component from a dseries object using Hodrick Prescott filter.
 %
 % INPUTS 
-%  o ts         dynSeries object.
+%  o ts         dseries object.
 %  o lambda     positive scalar, trend smoothness parameter.
 %
 % OUTPUTS 
-%  o ts         dynSeries object, with time series replaced by the trend component of the original time series.
+%  o ts         dseries object, with time series replaced by the trend component of the original time series.
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -30,7 +30,7 @@ function ts = hptrend(ts, lambda) % --*-- Unitary tests --*--
 
 if nargin>1 
     if lambda<=0
-        error(['dynSeries::hptrend: Lambda must be a positive integer!'])
+        error(['dseries::hptrend: Lambda must be a positive integer!'])
     end
 else
     lambda = [];
@@ -59,28 +59,36 @@ ts.data = sample_hp_filter(ts.data,lambda);
 %$
 %$ % Test the routine.
 %$ try
-%$     ts = dynSeries(y,'1950Q1');
-%$     ts = ts.hptrend(1600);
+%$     ts0 = dseries(y,'1950Q1');
+%$     ts1 = dseries(stochastic_trend+deterministic_trend,'1950Q1');
+%$     ts2 = ts0.hptrend(1600);
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
 %$ end
 %$
 %$ if t(1)
-%$     t(2) = dyn_assert(ts.freq,4);
-%$     t(3) = dyn_assert(ts.init.freq,4);
-%$     t(4) = dyn_assert(ts.init.time,[1950, 1]);
-%$     t(5) = dyn_assert(ts.vobs,1);
-%$     t(6) = dyn_assert(ts.nobs,200);
+%$     t(2) = dyn_assert(ts2.freq,4);
+%$     t(3) = dyn_assert(ts2.init.freq,4);
+%$     t(4) = dyn_assert(ts2.init.time,[1950, 1]);
+%$     t(5) = dyn_assert(ts2.vobs,1);
+%$     t(6) = dyn_assert(ts2.nobs,200);
 %$ end
 %$
 %$ % Show results
 %$ if plot_flag
-%$     plot(stochastic_trend+deterministic_trend,'-k');
+%$     plot(ts1.data,'-k'); % Plot of the stationary component.
 %$     hold on
-%$     plot(ts.data,'--r');
+%$     plot(ts2.data,'--r');          % Plot of the filtered y.
 %$     hold off
 %$     axis tight
+%$     id = get(gca,'XTick');
+%$     set(gca,'XTickLabel',strings(ts1.dates(id)));
+%$     legend({'Nonstationary component of y', 'Estimated trend of y'})
+%$     print('-depsc2','../doc/dynare.plots/HPTrend.eps')
+%$     system('convert -density 300 ../doc/dynare.plots/HPTrend.eps ../doc/dynare.plots/HPTrend.png');
+%$     system('convert -density 300 ../doc/dynare.plots/HPTrend.eps ../doc/dynare.plots/HPTrend.pdf');
+%$     system('convert -density 300 ../doc/dynare.plots/HPTrend.eps ../doc/dynare.plots/HPTrend.jpg');
 %$ end
 %$ T = all(t);
 %@eof:1
\ No newline at end of file
diff --git a/matlab/@dynSeries/insert.m b/matlab/@dseries/insert.m
similarity index 71%
rename from matlab/@dynSeries/insert.m
rename to matlab/@dseries/insert.m
index 95377f090b3003134fded044f27df0fa2aeb0810..4b8aa06b9ca0e8cbac21a6b41e96843a1ffdff25 100644
--- a/matlab/@dynSeries/insert.m
+++ b/matlab/@dseries/insert.m
@@ -1,21 +1,21 @@
 function ts = insert(ts,us,id) % --*-- Unitary tests --*--
 
-% Add a variable in a dynSeries object.
+% Add a variable in a dseries object.
 
 %@info:
 %! @deftypefn {Function File} {@var{ts} =} insert (@var{ts}, @var{us}, @var{id})
-%! @anchor{dynSeries/insert}
+%! @anchor{dseries/insert}
 %! @sp 1
-%! Insert method for the dynSeries class. Insert new variables (@var{us}) in a dynSeries object (@var{ts}) at
+%! Insert method for the dseries class. Insert new variables (@var{us}) in a dseries object (@var{ts}) at
 %! positions @var{id}.
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item ts
-%! Object instantiated by @ref{dynSeries}.
+%! Object instantiated by @ref{dseries}.
 %! @item us
-%! Object instantiated by @ref{dynSeries}.
+%! Object instantiated by @ref{dseries}.
 %! @item id
 %! vector of integers.
 %! @end table
@@ -24,7 +24,7 @@ function ts = insert(ts,us,id) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @ @var
 %! @item ts
-%! Object instantiated by @ref{dynSeries}, without variable (@var{a}).
+%! Object instantiated by @ref{dseries}, without variable (@var{a}).
 %! @end table
 %! @end deftypefn
 %@eod:
@@ -49,17 +49,24 @@ function ts = insert(ts,us,id) % --*-- Unitary tests --*--
 [n,message] = common_strings_in_cell_arrays(ts.name,us.name);
 
 if n
-    error(['dynSeries::insert: Variable(s) ' message ' already exist in ''' inputname(1) '''!'])
+    error(['dseries::insert: Variable(s) ' message ' already exist in ''' inputname(1) '''!'])
 end
 
 if ~isequal(ts.freq,us.freq)
-    error(['dynSeries::insert: ''' inputname(1) ''' and ''' inputname(2) ''' dynSeries objects must have common frequencies!'])
+    error(['dseries::insert: ''' inputname(1) ''' and ''' inputname(2) ''' dseries objects must have common frequencies!'])
 end
 
 [ts,us] = align(ts, us);
 
 n = length(id);
 
+if n>1
+   [id, jd] = sort(id);
+   us.data = us.data(:,jd);
+   us.name = us.name(jd);
+   us.tex = us.tex(jd);
+end
+
 for i=1:n
     ts.data = insert_column_vector_in_a_matrix(ts.data,us.data(:,i),id(i));
     ts.name = insert_object_in_a_one_dimensional_cell_array(ts.name,us.name{i},id(i));
@@ -67,6 +74,11 @@ for i=1:n
     id = id+1;
 end
 
+% Update vobs member.
+ts.vobs = columns(ts.data);
+
+
+
 %@test:1
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(5,2);
@@ -79,9 +91,9 @@ end
 %$ A_init = '1950Q1';
 %$ B_init = '1950Q3';
 %$
-%$ % Instantiate two dynSeries objects.
-%$ ts1 = dynSeries(A, A_init, A_name,[]);
-%$ ts2 = dynSeries(B, B_init, B_name,[]);
+%$ % Instantiate two dseries objects.
+%$ ts1 = dseries(A, A_init, A_name,[]);
+%$ ts2 = dseries(B, B_init, B_name,[]);
 %$
 %$ try
 %$    ts1 = insert(ts1,ts2,[1,2]);
diff --git a/matlab/@dynSeries/isempty.m b/matlab/@dseries/isempty.m
similarity index 81%
rename from matlab/@dynSeries/isempty.m
rename to matlab/@dseries/isempty.m
index 049ceb7b91c822b7a9a1329ec8a03a3be13c78f7..f171be29545d49d6a2c71a6290616f4b6d5a0e97 100644
--- a/matlab/@dynSeries/isempty.m
+++ b/matlab/@dseries/isempty.m
@@ -1,15 +1,15 @@
 function b = isempty(A)
 %@info:
 %! @deftypefn {Function File} {@var{b} =} isempty (@var{A})
-%! @anchor{@dynSeries/isempty}
+%! @anchor{@dseries/isempty}
 %! @sp 1
-%! Overloads the isempty function for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the isempty function for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item 1
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -36,7 +36,5 @@ function b = isempty(A)
 %
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
     
-b = isempty(A.data) && isequal(A.nobs,0) && isequal(A.vobs,0);
+b = isempty(A.data) && isequal(A.nobs,0) && isequal(A.vobs,0);
\ No newline at end of file
diff --git a/matlab/@dseries/isequal.m b/matlab/@dseries/isequal.m
new file mode 100644
index 0000000000000000000000000000000000000000..50b93b097ebde6020b6a207d4f9826a48c1cae06
--- /dev/null
+++ b/matlab/@dseries/isequal.m
@@ -0,0 +1,65 @@
+function C = isequal(A,B)
+
+% Overloads the isequal Matlab/Octave's function.
+%
+% INPUTS 
+%  o A      dseries object (T periods, N variables).
+%  o B      dseries object (T periods, N variables).
+%
+% OUTPUTS 
+%  o C      Integer scalar equal to zero or one.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if nargin~=2
+    error('dseries::isequal: I need exactly two input arguments!')
+end
+
+if ~isdseries(B)
+    error('dseries::isequal: Both input arguments must be dseries objects!')
+end
+
+if ~isequal(A.nobs,B.nobs)
+    C = 0;
+    return
+end
+
+if ~isequal(A.vobs,B.vobs)
+    C = 0;
+    return
+end
+
+if ~isequal(A.freq,B.freq)
+    C = 0;
+    return
+end
+
+if ~isequal(A.init,B.init)
+    C = 0;
+    return
+end
+
+if ~isequal(A.name,B.name)
+    warning('dseries::isequal: Both input arguments do not have the same variables!')
+end
+
+if ~isequal(A.tex,B.tex)
+    warning('dseries::isequal: Both input arguments do not have the same tex names!')
+end
+
+C = isequal(A.data, B.data);
\ No newline at end of file
diff --git a/matlab/@dynSeries/lag.m b/matlab/@dseries/lag.m
similarity index 88%
rename from matlab/@dynSeries/lag.m
rename to matlab/@dseries/lag.m
index 5258ce47e6c7d1b26f5f9288aef43a3db108c927..d0ce3965d3bca27ef9f1aae39514c0de73ac3111 100644
--- a/matlab/@dynSeries/lag.m
+++ b/matlab/@dseries/lag.m
@@ -10,7 +10,7 @@ function us = lag(ts,p) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @var
 %! @item ts
-%! Dynare time series object, instantiated by @ref{dynSeries}
+%! Dynare time series object, instantiated by @ref{dseries}
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
@@ -45,10 +45,10 @@ if nargin<2
 end
 
 if p<=0
-    error('dynSeries::lag: Second input argument must be strictly positive! Use lead method instead.')
+    error('dseries::lag: Second input argument must be strictly positive! Use lead method instead.')
 end
 
-% Copy of ts dynSeries object
+% Copy of ts dseries object
 us = ts;
 
 % Update data member
@@ -64,7 +64,7 @@ end
 %$
 %$ try
 %$     data = transpose(0:1:50);
-%$     ts = dynSeries(data,'1950Q1');
+%$     ts = dseries(data,'1950Q1');
 %$     a = ts.lag;
 %$     b = ts.lag.lag;
 %$     c = lag(ts,2);
diff --git a/matlab/@dynSeries/lead.m b/matlab/@dseries/lead.m
similarity index 88%
rename from matlab/@dynSeries/lead.m
rename to matlab/@dseries/lead.m
index a065a2ac611f8496e9c28e3c20d622b4d093a6cf..8a61e2d0c263b9c3ea0fd890285495ed8f9de16b 100644
--- a/matlab/@dynSeries/lead.m
+++ b/matlab/@dseries/lead.m
@@ -10,7 +10,7 @@ function us = lead(ts,p) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @var
 %! @item ts
-%! Dynare time series object, instantiated by @ref{dynSeries}
+%! Dynare time series object, instantiated by @ref{dseries}
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
@@ -45,10 +45,10 @@ if nargin<2
 end
 
 if p<=0
-    error('dynSeries::lead: Second input argument must be strictly positive! Use lag method instead.')
+    error('dseries::lead: Second input argument must be strictly positive! Use lag method instead.')
 end
 
-% Copy of ts dynSeries object
+% Copy of ts dseries object
 us = ts;
 
 % Update data member
@@ -64,7 +64,7 @@ end
 %$
 %$ try
 %$     data = transpose(0:1:50);
-%$     ts = dynSeries(data,'1950Q1');
+%$     ts = dseries(data,'1950Q1');
 %$     a = ts.lead;
 %$     b = ts.lead.lead;
 %$     c = lead(ts,2);
diff --git a/matlab/@dynSeries/log.m b/matlab/@dseries/log.m
similarity index 90%
rename from matlab/@dynSeries/log.m
rename to matlab/@dseries/log.m
index dd4127e9bfcaa2ac4fc80a08a025e5924aec00f9..6655fa29a19494b1e714123d9f5fd2fd4b0672f8 100644
--- a/matlab/@dynSeries/log.m
+++ b/matlab/@dseries/log.m
@@ -8,7 +8,7 @@ function ts = log(ts)
 %! @strong{Inputs}
 %! @table @var
 %! @item ts
-%! Dynare time series object, instantiated by @ref{dynSeries}
+%! Dynare time series object, instantiated by @ref{dseries}
 %! @end table
 %!
 %! @strong{Outputs}
@@ -44,7 +44,7 @@ function ts = log(ts)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if any(ts.data<eps)
-    error('dynSeries::log: Input argument has to be strictly positive!')
+    error('dseries::log: Input argument has to be strictly positive!')
 end
 
 for i=1:ts.vobs
diff --git a/matlab/@dynSeries/merge.m b/matlab/@dseries/merge.m
similarity index 82%
rename from matlab/@dynSeries/merge.m
rename to matlab/@dseries/merge.m
index 25e3183baf0e6c429bd09b4beab7547dec05a009..52fe8ac48ec551adfbbfdb982a910748fd2ec5f2 100644
--- a/matlab/@dynSeries/merge.m
+++ b/matlab/@dseries/merge.m
@@ -2,17 +2,17 @@ function A = merge(B,C) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{A} =} merge (@var{B},@var{C})
-%! @anchor{@dynSeries/plus}
+%! @anchor{@dseries/plus}
 %! @sp 1
-%! Overloads the merge method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the merge method for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item B
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @item C
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -40,18 +40,26 @@ function A = merge(B,C) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+if ~isdseries(C)
+    error('dseries::merge: Both inputs must be dseries objects!')
+end
+
 if ~isequal(B.freq,C.freq)
-    error(['dynSeries::merge: Cannot merge ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
+    error(['dseries::merge: Cannot merge ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
 end
 
-A = dynSeries();
+A = dseries();
 A.freq = B.freq;
 [A.name, IBC, junk] = unique([B.name; C.name], 'last');
 tex = [B.tex; C.tex];
 A.tex = tex(IBC); 
 A.vobs=length(IBC);
 
-if B.init >= C.init
+if B.nobs == 0
+    A = C;
+elseif C.nobs == 0
+    A = B;
+elseif B.init >= C.init
     diff = B.init - C.init;
     A.nobs = max(B.nobs + diff, C.nobs);
     A.data = NaN(A.nobs, A.vobs);
@@ -83,7 +91,7 @@ else
     A.init = B.init;
 end
 
-A.time = A.init:A.init+A.nobs;
+A.dates = A.init:A.init+(A.nobs-1);
 
 %@test:1
 %$ % Define a datasets.
@@ -96,8 +104,8 @@ A.time = A.init:A.init+A.nobs;
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = merge(ts1,ts2);
 %$    t(1) = 1;
 %$ catch
@@ -123,8 +131,8 @@ A.time = A.init:A.init+A.nobs;
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = merge(ts1,ts2);
 %$    t(1) = 1;
 %$ catch
diff --git a/matlab/@dynSeries/minus.m b/matlab/@dseries/minus.m
similarity index 66%
rename from matlab/@dynSeries/minus.m
rename to matlab/@dseries/minus.m
index 5f88b728a084e4357d81727754eea706efcd8f7b..6f7c47dbcb88211a3fbeadebc66c342a9dc7e006 100644
--- a/matlab/@dynSeries/minus.m
+++ b/matlab/@dseries/minus.m
@@ -2,17 +2,17 @@ function A = minus(B,C) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{A} =} minus (@var{B},@var{C})
-%! @anchor{@dynSeries/minus}
+%! @anchor{@dseries/minus}
 %! @sp 1
-%! Overloads the minus method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the minus method for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item B
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @item C
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -23,7 +23,7 @@ function A = minus(B,C) % --*-- Unitary tests --*--
 %! @end deftypefn
 %@eod:
 
-% Copyright (C) 2012-2013 Dynare Team
+% Copyright (C) 2012-2014, Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -40,42 +40,26 @@ function A = minus(B,C) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if isnumeric(B) && isreal(B) && isequal(length(B),1) && isa(C,'dynSeries')
-    A = dynSeries();
-    A.freq = C.freq;
-    A.init = C.init;
-    A.time = C.time;
-    A.nobs = C.nobs;
-    A.vobs = C.vobs;
-    A.name = cell(A.vobs,1);
-    A.tex = cell(A.vobs,1);
-    for i=1:A.vobs
-        A.name(i) = {['minus(' num2str(B) ',' C.name{i} ')']};
-        A.tex(i) = {['(' num2str(B) '-' C.tex{i} ')']};
+if isnumeric(B) && (isscalar(B) ||  isvector(B))
+    if ~isdseries(C)
+        error('dseries::minus: Second input argument must be a dseries object!')
     end
-    A.data = bsxfun(@minus, B, C.data);
+    A = C;
+    A.data = bsxfun(@minus,C.data,B);
     return;
 end
 
-if isnumeric(C) && isreal(C) && isequal(length(C),1) && isa(B,'dynSeries')
-    A = dynSeries();
-    A.freq = B.freq;
-    A.init = B.init;
-    A.time = B.time;
-    A.nobs = B.nobs;
-    A.vobs = B.vobs;
-    A.name = cell(A.vobs,1);
-    A.tex = cell(A.vobs,1);
-    for i=1:A.vobs
-        A.name(i) = {['minus(' B.name{i} ',' num2str(C) ')']};
-        A.tex(i) = {['(' B.tex{i} '-' num2str(C) ')']};
+if isnumeric(C) && (isscalar(C) || isvector(C))
+    if ~isdseries(B)
+        error('dseries::minus: First input argument must be a dseries object!')
     end
-    A.data = bsxfun(@minus, B.data, C);
-    return;
+    A = B;
+    A.data = bsxfun(@minus,B.data,C);
+    return
 end
 
 if ~isequal(B.vobs,C.vobs) && ~(isequal(B.vobs,1) || isequal(C.vobs,1))
-    error(['dynSeries::minus: Cannot substract ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
+    error(['dseries::minus: Cannot substract ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
 else
     if B.vobs>C.vobs
         idB = 1:B.vobs;
@@ -90,7 +74,7 @@ else
 end
 
 if ~isequal(B.freq,C.freq)
-    error(['dynSeries::plus: Cannot substract ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
+    error(['dseries::plus: Cannot substract ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
 end
 
 if ~isequal(B.nobs,C.nobs) || ~isequal(B.init,C.init)
@@ -107,11 +91,11 @@ if isempty(C)
     return
 end
 
-A = dynSeries();
+A = dseries();
 
 A.freq = B.freq;
 A.init = B.init;
-A.time = B.time;
+A.dates = B.dates;
 A.nobs = max(B.nobs,C.nobs);
 A.vobs = max(B.vobs,C.vobs);
 A.name = cell(A.vobs,1);
@@ -133,8 +117,8 @@ A.data = bsxfun(@minus,B.data,C.data);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = ts1-ts2;
 %$    t(1) = 1;
 %$ catch
@@ -161,8 +145,8 @@ A.data = bsxfun(@minus,B.data,C.data);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = ts1-ts2;
 %$    t(1) = 1;
 %$ catch
diff --git a/matlab/@dseries/mpower.m b/matlab/@dseries/mpower.m
new file mode 100644
index 0000000000000000000000000000000000000000..89b0b1049379c4da13f96c2c6b86b85d3d43d9cc
--- /dev/null
+++ b/matlab/@dseries/mpower.m
@@ -0,0 +1,136 @@
+function A = mpower(B,C) % --*-- Unitary tests --*--
+
+%@info:
+%! @deftypefn {Function File} {@var{A} =} mpower (@var{B},@var{C})
+%! @anchor{@dseries/mpower}
+%! @sp 1
+%! Overloads the mpower method for the Dynare time series class (@ref{dseries}).
+%! @sp 2
+%! @strong{Inputs}
+%! @sp 1
+%! @table @ @var
+%! @item B
+%! Dynare time series object instantiated by @ref{dseries}, with T observations and N variables.
+%! @item C
+%! Real scalar or a dseries object with T observations and N variables.
+%! @end table
+%! @sp 1
+%! @strong{Outputs}
+%! @sp 1
+%! @table @ @var
+%! @item A
+%! dseries object with T observations and N variables.
+%! @end deftypefn
+%@eod:
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if isdseries(B) && isnumeric(C) && isreal(C) && isscalar(C)
+    A = dseries();
+    A.freq = B.freq;
+    A.init = B.init;
+    A.dates = B.dates;
+    A.nobs = B.nobs;
+    A.vobs = B.vobs;
+    A.name = cell(A.vobs,1);
+    A.tex = cell(A.vobs,1);
+    for i=1:A.vobs
+        A.name(i) = {['power(' B.name{i} ',' num2str(C) ')']};
+        A.tex(i) = {[B.tex{i} '^' num2str(C) ]};
+    end
+    A.data = B.data.^C;
+    return
+end
+
+if isdseries(B) && isdseries(C)
+    if isequal(B.nobs,C.nobs) && isequal(B.vobs,C.vobs) && isequal(B.freq,C.freq)
+        A = dseries();
+        A.freq = B.freq;
+        A.init = B.init;
+        A.dates = B.dates;
+        A.nobs = B.nobs;
+        A.vobs = B.vobs;
+        A.name = cell(A.vobs,1);
+        A.tex = cell(A.vobs,1);
+        for i=1:A.vobs
+            A.name(i) = {['power(' B.name{i} ',' C.name{i} ')']};
+            A.tex(i) = {[B.tex{i} '^{' C.tex{i} '}']};
+        end
+        A.data = B.data.^C.data;
+    else
+        error('dseries::mpower: If both input arguments are dseries objects, they must have the same numbers of variables and observations and common frequency!')
+    end
+    return
+end
+
+error(['dseries::mpower: Wrong calling sequence!'])
+
+%@test:1
+%$ % Define a datasets.
+%$ A = rand(10,2); B = randn(10,2);
+%$
+%$ % Define names
+%$ A_name = {'A1';'A2'}; B_name = {'B1';'B2'};
+%$
+%$
+%$ % Instantiate a time series object.
+%$ try
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
+%$    ts3 = ts1^ts2;
+%$    t = 1;
+%$ catch
+%$    t = 0;
+%$ end
+%$
+%$ if t(1)
+%$    t(2) = dyn_assert(ts3.vobs,2);
+%$    t(3) = dyn_assert(ts3.nobs,10);
+%$    t(4) = dyn_assert(ts3.data,A.^B,1e-15);
+%$    t(5) = dyn_assert(ts3.name,{'power(A1,B1)';'power(A2,B2)'});
+%$    t(6) = dyn_assert(ts3.tex,{'A1^{B1}';'A2^{B2}'});
+%$ end
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define a datasets.
+%$ A = rand(10,2);
+%$
+%$ % Define names
+%$ A_name = {'A1';'A2'};
+%$
+%$
+%$ % Instantiate a time series object.
+%$ try
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts3 = ts1^2;
+%$    t = 1;
+%$ catch
+%$    t = 0;
+%$ end
+%$
+%$ if t(1)
+%$    t(2) = dyn_assert(ts3.vobs,2);
+%$    t(3) = dyn_assert(ts3.nobs,10);
+%$    t(4) = dyn_assert(ts3.data,A.^2,1e-15);
+%$    t(5) = dyn_assert(ts3.name,{'power(A1,2)';'power(A2,2)'});
+%$    t(6) = dyn_assert(ts3.tex,{'A1^2';'A2^2'});
+%$ end
+%$ T = all(t);
+%@eof:2
\ No newline at end of file
diff --git a/matlab/@dynSeries/mrdivide.m b/matlab/@dseries/mrdivide.m
similarity index 65%
rename from matlab/@dynSeries/mrdivide.m
rename to matlab/@dseries/mrdivide.m
index c8f04b36c305fc4416a6fa8e4d268d048f545fc5..e42b47aa99c2702956d03bfe878fea5032251b50 100644
--- a/matlab/@dynSeries/mrdivide.m
+++ b/matlab/@dseries/mrdivide.m
@@ -2,17 +2,17 @@ function A = mrdivide(B,C) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{A} =} mrdivide (@var{B},@var{C})
-%! @anchor{@dynSeries/mrdivide}
+%! @anchor{@dseries/mrdivide}
 %! @sp 1
-%! Overloads the mrdivide method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the mrdivide method for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item B
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @item C
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -23,7 +23,7 @@ function A = mrdivide(B,C) % --*-- Unitary tests --*--
 %! @end deftypefn
 %@eod:
 
-% Copyright (C) 2012-2013 Dynare Team
+% Copyright (C) 2012-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -39,11 +39,29 @@ function A = mrdivide(B,C) % --*-- Unitary tests --*--
 %
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ 
+if isnumeric(B) && (isscalar(B) ||  isvector(B))
+    if ~isdseries(C)
+        error('dseries::mrdivide: Second input argument must be a dseries object!')
+    end
+    A = C;
+    A.data = bsxfun(@rdivide,B,C.data);
+    return;
+end
+
+if isnumeric(C) && (isscalar(C) || isvector(C))
+    if ~isdseries(B)
+        error('dseries::mrdivide: First input argument must be a dseries object!')
+    end
+    A = B;
+    A.data = bsxfun(@rdivide,B.data,C);
+    return
+end    
 
-if isa(B,'dynSeries') && isa(C,'dynSeries')
-    % Element by element divisions of two dynSeries object
+if isdseries(B) && isdseries(C)
+    % Element by element divisions of two dseries object
     if ~isequal(B.vobs,C.vobs) && ~(isequal(B.vobs,1) || isequal(C.vobs,1))
-        error(['dynSeries::times: Cannot divide ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
+        error(['dseries::times: Cannot divide ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
     else
         if B.vobs>C.vobs
             idB = 1:B.vobs;
@@ -57,15 +75,15 @@ if isa(B,'dynSeries') && isa(C,'dynSeries')
         end
     end
     if ~isequal(B.freq,C.freq)
-        error(['dynSeries::times: Cannot divide ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
+        error(['dseries::times: Cannot divide ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
     end
     if ~isequal(B.nobs,C.nobs) || ~isequal(B.init,C.init)
         [B, C] = align(B, C);
     end
-    A = dynSeries();
+    A = dseries();
     A.freq = B.freq;
     A.init = B.init;
-    A.time = B.time;
+    A.dates = B.dates;
     A.nobs = max(B.nobs,C.nobs);
     A.vobs = max(B.vobs,C.vobs);
     A.name = cell(A.vobs,1);
@@ -75,36 +93,6 @@ if isa(B,'dynSeries') && isa(C,'dynSeries')
         A.tex(i) = {['(' B.tex{idB(i)} '/' C.tex{idC(i)} ')']};
     end
     A.data = bsxfun(@rdivide,B.data,C.data);
-elseif isnumeric(C) &&  isreal(C) && isequal(length(C),1) && isa(B,'dynSeries') 
-    % division of a dynSeries object by a real scalar.
-    A = dynSeries();
-    A.freq = B.freq;
-    A.time = B.time;
-    A.init = B.init;
-    A.nobs = B.nobs;
-    A.vobs = B.vobs;
-    A.name = cell(A.vobs,1);
-    A.tex = cell(A.vobs,1);
-    for i=1:A.vobs
-        A.name(i) = {['divide(' B.name{i} ',' num2str(C) ')']};
-        A.tex(i) = {['(' B.tex{i} '/' num2str(C) ')']};
-    end
-    A.data = B.data/C;    
-elseif isnumeric(B) && isreal(B) && isequal(length(B),1) && isa(C,'dynSeries')
-    % division of a real scalar by a dynSeries object.
-    A = dynSeries();
-    A.freq = C.freq;
-    A.time = C.time;
-    A.init = C.init;
-    A.nobs = C.nobs;
-    A.vobs = C.vobs;
-    A.name = cell(A.vobs,1);
-    A.tex = cell(A.vobs,1);
-    for i=1:A.vobs
-        A.name(i) = {['divide(' num2str(B) ',' C.name{i} ')']};
-        A.tex(i) = {['(' num2str(B) '/'  C.tex{i} ')']};
-    end
-    A.data = B./C.data;
 else
     error()
 end
@@ -120,8 +108,8 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = ts1/ts2;
 %$    t(1) = 1;
 %$ catch
@@ -147,7 +135,7 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    ts2 = ts1/B;
 %$    t(1) = 1;
 %$ catch
@@ -173,7 +161,7 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    ts2 = B/ts1;
 %$    t(1) = 1;
 %$ catch
diff --git a/matlab/@dynSeries/mtimes.m b/matlab/@dseries/mtimes.m
similarity index 60%
rename from matlab/@dynSeries/mtimes.m
rename to matlab/@dseries/mtimes.m
index d95f8818483b13993cb4cba356948f383b87c7f1..79f2019c2c423744e018c910fc664c48515ba437 100644
--- a/matlab/@dynSeries/mtimes.m
+++ b/matlab/@dseries/mtimes.m
@@ -2,17 +2,17 @@ function A = mtimes(B,C) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{A} =} mtimes (@var{B},@var{C})
-%! @anchor{@dynSeries/mtimes}
+%! @anchor{@dseries/mtimes}
 %! @sp 1
-%! Overloads the mtimes method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the mtimes method for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item B
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @item C
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -23,7 +23,7 @@ function A = mtimes(B,C) % --*-- Unitary tests --*--
 %! @end deftypefn
 %@eod:
 
-% Copyright (C) 2012-2013 Dynare Team
+% Copyright (C) 2012-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -40,10 +40,28 @@ function A = mtimes(B,C) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if isa(B,'dynSeries') && isa(C,'dynSeries')
-    % Element by element multiplication of two dynSeries object
+if isnumeric(B) && (isscalar(B) ||  isvector(B))
+    if ~isdseries(C)
+        error('dseries::mtimes: Second input argument must be a dseries object!')
+    end
+    A = C;
+    A.data = bsxfun(@times,C.data,B);
+    return;
+end
+
+if isnumeric(C) && (isscalar(C) || isvector(C))
+    if ~isdseries(B)
+        error('dseries::mtimes: First input argument must be a dseries object!')
+    end
+    A = B;
+    A.data = bsxfun(@times,B.data,C);
+    return
+end
+
+if isdseries(B) && isdseries(C)
+    % Element by element multiplication of two dseries object
     if ~isequal(B.vobs,C.vobs) && ~(isequal(B.vobs,1) || isequal(C.vobs,1))
-        error(['dynSeries::times: Cannot multiply ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
+        error(['dseries::times: Cannot multiply ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
     else
         if B.vobs>C.vobs
             idB = 1:B.vobs;
@@ -57,15 +75,15 @@ if isa(B,'dynSeries') && isa(C,'dynSeries')
         end
     end
     if ~isequal(B.freq,C.freq)
-        error(['dynSeries::times: Cannot multiply ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
+        error(['dseries::times: Cannot multiply ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
     end
     if ~isequal(B.nobs,C.nobs) || ~isequal(B.init,C.init)
         [B, C] = align(B, C);
     end
-    A = dynSeries();
+    A = dseries();
     A.freq = B.freq;
     A.init = B.init;
-    A.time = B.time;
+    A.dates = B.dates;
     A.nobs = max(B.nobs,C.nobs);
     A.vobs = max(B.vobs,C.vobs);
     A.name = cell(A.vobs,1);
@@ -75,36 +93,6 @@ if isa(B,'dynSeries') && isa(C,'dynSeries')
         A.tex(i) = {['(' B.tex{idB(i)} '*' C.tex{idC(i)} ')']};
     end
     A.data = bsxfun(@times,B.data,C.data);
-elseif isnumeric(C) &&  isreal(C) && isequal(length(C),1) && isa(B,'dynSeries') 
-    % Multiplication of a dynSeries object by a real scalar.
-    A = dynSeries();
-    A.freq = B.freq;
-    A.init = B.init;
-    A.time = B.time;
-    A.nobs = B.nobs;
-    A.vobs = B.vobs;
-    A.name = cell(A.vobs,1);
-    A.tex = cell(A.vobs,1);
-    for i=1:A.vobs
-        A.name(i) = {['multiply(' B.name{i} ',' num2str(C) ')']};
-        A.tex(i) = {['(' B.tex{i} '*' num2str(C) ')']};
-    end
-    A.data = B.data*C;    
-elseif isnumeric(B) && isreal(B) && isequal(length(B),1) && isa(C,'dynSeries')
-    % Multiplication of a dynSeries object by a real scalar.
-    A = dynSeries();
-    A.freq = C.freq;
-    A.init = C.init;
-    A.time = C.time;
-    A.nobs = C.nobs;
-    A.vobs = C.vobs;
-    A.name = cell(A.vobs,1);
-    A.tex = cell(A.vobs,1);
-    for i=1:A.vobs
-        A.name(i) = {['multiply(' num2str(B) ',' C.name{i} ')']};
-        A.tex(i) = {['(' num2str(B) '*'  C.tex{i} ')']};
-    end
-    A.data = C.data*B;
 else
     error()
 end
@@ -116,19 +104,18 @@ end
 %$ % Define names
 %$ A_name = {'A1';'A2'}; B_name = {'B1'};
 %$
-%$ t = zeros(4,1);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = ts1*ts2;
-%$    t(1) = 1;
+%$    t = 1;
 %$ catch
 %$    t = 0;
 %$ end
 %$
-%$ if length(t)>1
+%$ if t(1)
 %$    t(2) = dyn_assert(ts3.vobs,2);
 %$    t(3) = dyn_assert(ts3.nobs,10);
 %$    t(4) = dyn_assert(ts3.data,[A(:,1).*B, A(:,2).*B],1e-15);
@@ -144,22 +131,20 @@ end
 %$ % Define names
 %$ A_name = {'A1';'A2'};
 %$
-%$ t = zeros(5,1);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    ts2 = ts1*B;
-%$    t(1) = 1;
+%$    t = 1;
 %$ catch
 %$    t = 0;
 %$ end
 %$
-%$ if length(t)>1
+%$ if t(1)
 %$    t(2) = dyn_assert(ts2.vobs,2);
 %$    t(3) = dyn_assert(ts2.nobs,10);
 %$    t(4) = dyn_assert(ts2.data,A*B,1e-15);
-%$    t(5) = dyn_assert(ts2.name,{['multiply(A1,' num2str(pi) ')'];['multiply(A2,' num2str(pi) ')']});
 %$ end
 %$ T = all(t);
 %@eof:2
@@ -171,22 +156,45 @@ end
 %$ % Define names
 %$ A_name = {'A1';'A2'};
 %$
-%$ t = zeros(4,1);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    ts2 = B*ts1;
-%$    t(1) = 1;
+%$    t = 1;
 %$ catch
 %$    t = 0;
 %$ end
 %$
-%$ if length(t)>1
+%$ if t(1)
 %$    t(2) = dyn_assert(ts2.vobs,2);
 %$    t(3) = dyn_assert(ts2.nobs,10);
 %$    t(4) = dyn_assert(ts2.data,A*B,1e-15);
-%$    t(5) = dyn_assert(ts2.name,{['multiply(' num2str(pi) ',A1)'];['multiply(' num2str(pi) ',A2)']});
 %$ end
 %$ T = all(t);
 %@eof:3
+
+%@test:4
+%$ % Define a datasets.
+%$ A = rand(10,2); B = A(1,:);
+%$
+%$ % Define names
+%$ A_name = {'A1';'A2'};
+%$
+%$
+%$ % Instantiate a time series object.
+%$ try
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = B*ts1;
+%$    t = 1;
+%$ catch
+%$    t = 0;
+%$ end
+%$
+%$ if t(1)
+%$    t(2) = dyn_assert(ts2.vobs,2);
+%$    t(3) = dyn_assert(ts2.nobs,10);
+%$    t(4) = dyn_assert(ts2.data,bsxfun(@times,A,B),1e-15);
+%$ end
+%$ T = all(t);
+%@eof:4
diff --git a/matlab/@dseries/ne.m b/matlab/@dseries/ne.m
new file mode 100644
index 0000000000000000000000000000000000000000..53c98867cfe1b0c18e0475ccf71b42e28f410e7c
--- /dev/null
+++ b/matlab/@dseries/ne.m
@@ -0,0 +1,100 @@
+function C = ne(A,B) % --*-- Unitary tests --*--
+
+% Overloads ne (~=) operator.
+%
+% INPUTS 
+%  o A      dseries object (T periods, N variables).
+%  o B      dseries object (T periods, N variables).
+%
+% OUTPUTS 
+%  o C      T*N matrix of zeros and ones. Element C(t,n) is nonzero iff observation t of variable n in A and B are different.  
+%
+% REMARKS 
+%  If the number of variables, the number of observations or the frequencies are different in A and B, the function returns one. 
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if nargin~=2
+    error('dseries::ne: I need exactly two input arguments!')
+end
+
+if ~(isdseries(A) && isdseries(B))
+    error('dseries::ne: Both input arguments must be dseries objects!')
+end
+
+if ~isequal(A.nobs,B.nobs)
+    warning('dseries::eq: Both input arguments should have the same number of observations!')
+    C = 1;
+    return
+end
+
+if ~isequal(A.vobs,B.vobs)
+    warning('dseries::eq: Both input arguments should have the same number of observations!')
+    C = 1;
+    return
+end
+
+if ~isequal(A.freq,B.freq)
+    warning('dseries::eq: Both input arguments should have the same frequencies!')
+    C = 1;
+    return
+end
+
+if ~isequal(A.init,B.init)
+    warning('dseries::eq: Both input arguments should have the same initial period!')
+    C = 1;
+    return
+end
+
+if ~isequal(A.name,B.name)
+    warning('dseries::eq: Both input arguments do not have the same variables!')
+end
+
+if ~isequal(A.tex,B.tex)
+    warning('dseries::eq: Both input arguments do not have the same tex names!')
+end
+
+C = ne(A.data, B.data);
+
+%@test:1
+%$ % Define a datasets.
+%$ A = rand(10,3);
+%$ B = A;
+%$ B(:,3) = rand(10,1);
+%$
+%$ % Define names
+%$ A_name = {'A1';'A2';'A3'}; B_name = A_name;
+%$
+%$ t = zeros(2,1);
+%$
+%$ % Instantiate a time series object.
+%$ try
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
+%$    ts2 = ts1;
+%$    a = eq(ts1,ts2);
+%$    t(1) = 1;
+%$ catch
+%$    t = 0;
+%$ end
+%$
+%$ if length(t)>1
+%$    t(2) = dyn_assert(a,[ones(10,2), ones(10,1)]);
+%$ end
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynSeries/numel.m b/matlab/@dseries/numel.m
similarity index 100%
rename from matlab/@dynSeries/numel.m
rename to matlab/@dseries/numel.m
diff --git a/matlab/@dseries/plot.m b/matlab/@dseries/plot.m
new file mode 100644
index 0000000000000000000000000000000000000000..26d8e80d057f70da4bfa1f531b218e3de7121dcc
--- /dev/null
+++ b/matlab/@dseries/plot.m
@@ -0,0 +1,84 @@
+function h = plot(ts, varargin)
+
+% Overloads Matlab/Octave's plot function for dseries objects. 
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+% Get the number of dseries objects
+if isequal(nargin,1)
+    ndseries = 1;
+    nvariables = ts.vobs;
+    nobservations = ts.nobs;
+else
+    if isdseries(varargin{1})
+        ndseries = 2;
+        nvariables = ts.vobs;
+        nobservations = ts.nobs;
+        if nargin>2 && any(cellfun(@isdseries,varargin(2:end)))
+            error('dseries::plot: You cannot pass more two dseries objects!')
+        end
+        if ~isequal(nvariables,varargin{1}.vobs)
+            error('dseries::plot: The two dseries objects must have the same number of variables!')
+        end
+        if ~isequal(nobservations,varargin{1}.nobs)
+            error('dseries::plot: The two dseries objects must have the same number of observations!')
+        end
+    else
+        ndseries = 1;
+        nvariables = ts.vobs;
+        nobservations = ts.nobs;
+    end
+end
+
+switch ndseries
+  case 1
+    if isequal(nvariables,1)
+        hh = plot(ts.data,varargin{:});
+    else
+        if length(varargin)
+            message = sprintf('dseries::plot: dseries object %s has %d>1 variables but you passed additional arguments to the plot function.\n                        These additional arguments won''t ne interpreted. Use the Matlab/Octave set command and the plot\n                        handle instead if you wish to modify the properties of the plotted time series.',inputname(1),nvariables);
+            warning(message)
+        end
+        hh = plot(ts.data);
+    end
+    axis tight;
+    id = get(gca,'XTick');
+    if isequal(id(1),0)
+        dates = strings([ts.dates(1)-1,ts.dates(id(2:end))]);
+    else
+        dates = strings(ts.dates(id));
+    end
+    set(gca,'XTickLabel',dates);
+  case 2
+    [ts0, ts1] = align(ts, varargin{1});
+    if isequal(nvariables,1)
+        hh = plot(ts0.data, ts1.data, varargin{2:end});
+    else
+        if length(varargin)>1
+             message = sprintf('dseries::plot: dseries objects %s and %s have %d>1 variables but you passed additional arguments to the plot function.\n                        These additional arguments won''t ne interpreted. Use the Matlab/Octave set command and the plot\n                        handle instead if you wish to modify the properties of the plotted time series.',inputname(1),inputname(2),nvariables);
+            warning(message)
+        end
+        hh = plot(ts0.data, ts1.data);
+    end
+  otherwise
+    error('dseries::plot: This is a bug! Please report the bug to the authors of Dynare.')
+end
+
+if nargout
+     h = hh;
+end
\ No newline at end of file
diff --git a/matlab/@dynSeries/plus.m b/matlab/@dseries/plus.m
similarity index 61%
rename from matlab/@dynSeries/plus.m
rename to matlab/@dseries/plus.m
index 969374b5c484b923bc8fbc459e30f07f0194bd68..b9d20a798be05b117f67c00c325947a72a6db1cb 100644
--- a/matlab/@dynSeries/plus.m
+++ b/matlab/@dseries/plus.m
@@ -2,17 +2,17 @@ function A = plus(B,C) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{A} =} plus (@var{B},@var{C})
-%! @anchor{@dynSeries/plus}
+%! @anchor{@dseries/plus}
 %! @sp 1
-%! Overloads the plus method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the plus method for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item B
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @item C
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -23,7 +23,7 @@ function A = plus(B,C) % --*-- Unitary tests --*--
 %! @end deftypefn
 %@eod:
 
-% Copyright (C) 2011-2013 Dynare Team
+% Copyright (C) 2011-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -40,42 +40,30 @@ function A = plus(B,C) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if isscalar(B)
-    assert(isa(C, 'dynSeries'));
-    b(1:size(C)) = B;
-    BB = dynSeries(b, C.time(1));
-    BB.freq = C.freq;
-    BB.time = C.time;
-    BB.nobs = C.nobs;
-    BB.vobs = C.vobs;
-    BB.name = cell(BB.vobs,1);
-    BB.tex = cell(BB.vobs,1);
-    BB.name(1) = {num2str(B)};
-    A = BB + C;
+if isnumeric(B) && (isscalar(B) ||  isvector(B))
+    if ~isdseries(C)
+        error('dseries::plus: Second input argument must be a dseries object!')
+    end
+    A = C;
+    A.data = bsxfun(@plus,C.data,B);
     return;
 end
 
-if isscalar(C)
-    assert(isa(B, 'dynSeries'));
-    c(1:size(C)) = C;
-    CC = dynSeries(C, B.time(1));
-    CC.freq = B.freq;
-    CC.time = B.time;
-    CC.nobs = B.nobs;
-    CC.vobs = B.vobs;
-    CC.name = cell(CC.vobs,1);
-    CC.tex = cell(CC.vobs,1);
-    CC.name(1) = {num2str(C)};
-    A = B + CC;
-    return;
+if isnumeric(C) && (isscalar(C) || isvector(C))
+    if ~isdseries(B)
+        error('dseries::plus: First input argument must be a dseries object!')
+    end
+    A = B;
+    A.data = bsxfun(@plus,B.data,C);
+    return
 end
 
 if ~isequal(B.vobs,C.vobs) && ~(isequal(B.vobs,1) || isequal(C.vobs,1))
-    error(['dynSeries::plus: Cannot add ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
+    error(['dseries::plus: Cannot add ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
 else
     if B.vobs>C.vobs
         idB = 1:B.vobs;
-        idC = ones(1:B.vobs);
+        idC = ones(1,B.vobs);
     elseif B.vobs<C.vobs
         idB = ones(1,C.vobs);
         idC = 1:C.vobs;
@@ -86,7 +74,7 @@ else
 end
 
 if ~isequal(B.freq,C.freq)
-    error(['dynSeries::plus: Cannot add ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
+    error(['dseries::plus: Cannot add ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
 end
 
 if ~isequal(B.nobs,C.nobs) || ~isequal(B.init,C.init)
@@ -103,7 +91,7 @@ if isempty(C)
     return
 end
 
-A = dynSeries();
+A = dseries();
 
 A.freq = B.freq;
 A.init = B.init;
@@ -116,6 +104,7 @@ for i=1:A.vobs
     A.tex(i) = {['(' B.tex{idB(i)} '+' C.tex{idC(i)} ')']};
 end
 A.data = bsxfun(@plus,B.data,C.data);
+A.dates = A.init:A.init+(A.nobs-1);
 
 %@test:1
 %$ % Define a datasets.
@@ -128,8 +117,8 @@ A.data = bsxfun(@plus,B.data,C.data);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = ts1+ts2;
 %$    t(1) = 1;
 %$ catch
@@ -156,8 +145,8 @@ A.data = bsxfun(@plus,B.data,C.data);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = ts1+ts2;
 %$    ts4 = ts3+ts1; 
 %$    t(1) = 1;
@@ -186,8 +175,8 @@ A.data = bsxfun(@plus,B.data,C.data);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = dynSeries(B,[],B_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts2 = dseries(B,[],B_name,[]);
 %$    ts3 = ts1+ts2;
 %$    t(1) = 1;
 %$ catch
@@ -207,8 +196,8 @@ A.data = bsxfun(@plus,B.data,C.data);
 %$ t = zeros(7,1);
 %$
 %$ try
-%$     ts = dynSeries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'});
-%$     us = dynSeries(transpose(1:5),'1949q4',{'Consumption'}, {'C_t'});
+%$     ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'});
+%$     us = dseries(transpose(1:5),'1949q4',{'Consumption'}, {'C_t'});
 %$     vs = ts+us;
 %$     t(1) = 1;
 %$ catch
@@ -231,8 +220,8 @@ A.data = bsxfun(@plus,B.data,C.data);
 %$ t = zeros(7,1);
 %$
 %$ try
-%$     ts = dynSeries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'});
-%$     us = dynSeries(transpose(1:7),'1950q1',{'Consumption'}, {'C_t'});
+%$     ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'});
+%$     us = dseries(transpose(1:7),'1950q1',{'Consumption'}, {'C_t'});
 %$     vs = ts+us;
 %$     t(1) = 1;
 %$ catch
@@ -249,4 +238,54 @@ A.data = bsxfun(@plus,B.data,C.data);
 %$ end
 %$
 %$ T = all(t);
-%@eof:5
\ No newline at end of file
+%@eof:5
+
+%@test:6
+%$ t = zeros(8,1);
+%$
+%$ try
+%$     ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'});
+%$     us = dseries(transpose(1:7),'1950q1',{'Consumption'}, {'C_t'});
+%$     vs = ts+us('1950q1').data;
+%$     t(1) = 1;
+%$ catch
+%$     t = 0;
+%$ end
+%$
+%$ if length(t)>1
+%$     t(2) = dyn_assert(ts.freq,4);
+%$     t(3) = dyn_assert(us.freq,4);
+%$     t(4) = dyn_assert(ts.init.time,[1950, 1]);
+%$     t(5) = dyn_assert(us.init.time,[1950, 1]);
+%$     t(6) = dyn_assert(vs.init.time,[1950, 1]);
+%$     t(7) = dyn_assert(vs.nobs,5);
+%$     t(8) = dyn_assert(vs.data,ts.data+1);
+%$ end
+%$
+%$ T = all(t);
+%@eof:6
+
+%@test:7
+%$ t = zeros(8,1);
+%$
+%$ try
+%$     ts = dseries([transpose(1:5), transpose(1:5)],'1950q1');
+%$     us = dseries([transpose(1:7),2*transpose(1:7)],'1950q1');
+%$     vs = ts+us('1950q1').data;
+%$     t(1) = 1;
+%$ catch
+%$     t = 0;
+%$ end
+%$
+%$ if length(t)>1
+%$     t(2) = dyn_assert(ts.freq,4);
+%$     t(3) = dyn_assert(us.freq,4);
+%$     t(4) = dyn_assert(ts.init.time,[1950, 1]);
+%$     t(5) = dyn_assert(us.init.time,[1950, 1]);
+%$     t(6) = dyn_assert(vs.init.time,[1950, 1]);
+%$     t(7) = dyn_assert(vs.nobs,5);
+%$     t(8) = dyn_assert(vs.data,bsxfun(@plus,ts.data,[1, 2]));
+%$ end
+%$
+%$ T = all(t);
+%@eof:7
\ No newline at end of file
diff --git a/matlab/@dynSeries/pop.m b/matlab/@dseries/pop.m
similarity index 79%
rename from matlab/@dynSeries/pop.m
rename to matlab/@dseries/pop.m
index 371374efff842fb2918e42b08220c54fd9bcf890..f4f9a5ea19c562d8c2e0468c9c860b970d317ed7 100644
--- a/matlab/@dynSeries/pop.m
+++ b/matlab/@dseries/pop.m
@@ -1,18 +1,18 @@
 function [ts,id] = pop(ts,a) % --*-- Unitary tests --*--
 
-% Removes a variable from a dynSeries object.
+% Removes a variable from a dseries object.
 
 %@info:
 %! @deftypefn {Function File} {@var{ts} =} pop (@var{ts}, @var{a})
-%! @anchor{dynSeries/pop}
+%! @anchor{dseries/pop}
 %! @sp 1
-%! Pop method for the dynSeries class. Removes a variable from a dynSeries object.
+%! Pop method for the dseries class. Removes a variable from a dseries object.
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item ts
-%! Object instantiated by @ref{dynSeries}.
+%! Object instantiated by @ref{dseries}.
 %! @item a
 %! String, name of the variable to be removed.
 %! @end table
@@ -21,9 +21,9 @@ function [ts,id] = pop(ts,a) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @ @var
 %! @item ts
-%! Object instantiated by @ref{dynSeries}, without variable (@var{a}).
+%! Object instantiated by @ref{dseries}, without variable (@var{a}).
 %! @item id
-%! Scalar integer, position of variable (@var{a}) in the original dynSeries object @var{ts}.
+%! Scalar integer, position of variable (@var{a}) in the original dseries object @var{ts}.
 %! @end table
 %! @end deftypefn
 %@eod:
@@ -45,11 +45,18 @@ function [ts,id] = pop(ts,a) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-id = strmatch(a,ts.name,'exact');
+if nargin<2
+    % Removes the last variable
+    id = ts.vobs;
+else
+    id = find(strcmp(a,ts.name));
+end
+
 if isempty(id)
     id = 0;
     return
 end
+
 ts.vobs = ts.vobs-1; 
 ts.data(:,id) = [];
 ts.name(id) = [];
@@ -66,7 +73,7 @@ ts.tex(id) = [];
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    ts2 = pop(ts1,'A2');
 %$    t(1) = 1;
 %$ catch
@@ -81,7 +88,7 @@ ts.tex(id) = [];
 %$ T = all(t);
 %@eof:1
 
-%@test:1
+%@test:2
 %$ % Define a datasets.
 %$ A = rand(10,3);
 %$
@@ -92,7 +99,7 @@ ts.tex(id) = [];
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    [ts2,id] = pop(ts1,'A4');
 %$    t(1) = 1;
 %$ catch
@@ -101,7 +108,7 @@ ts.tex(id) = [];
 %$
 %$ if length(t)>1
 %$    t(2) = dyn_assert(id,0);
-%$    t(2) = dyn_assert(ts1==ts2,1);
+%$    t(2) = dyn_assert(isequal(ts1,ts2),1);
 %$ end
 %$ T = all(t);
-%@eof:1
+%@eof:2
diff --git a/matlab/@dynSeries/private/default_name.m b/matlab/@dseries/private/default_name.m
similarity index 100%
rename from matlab/@dynSeries/private/default_name.m
rename to matlab/@dseries/private/default_name.m
diff --git a/matlab/@dynSeries/qdiff.m b/matlab/@dseries/qdiff.m
similarity index 80%
rename from matlab/@dynSeries/qdiff.m
rename to matlab/@dseries/qdiff.m
index e287bfa02bc6557131a2d1798ab09c9109a30b81..b1683f1d6b60a9308f7dcbc3866de77b71bf9685 100644
--- a/matlab/@dynSeries/qdiff.m
+++ b/matlab/@dseries/qdiff.m
@@ -10,7 +10,7 @@ function us = qdiff(ts) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @var
 %! @item ts
-%! Dynare time series object, instantiated by @ref{dynSeries}
+%! Dynare time series object, instantiated by @ref{dseries}
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
@@ -43,25 +43,25 @@ us = ts;
 
 switch ts.freq
   case 1
-    error('dynSeries::qgrowth: I cannot compute quaterly differences from yearly data!')
+    error('dseries::qgrowth: I cannot compute quaterly differences from yearly data!')
   case 4
     us.data(2:end,:) = ts.data(2:end,:)-ts.data(1:end-1,:);
     us.data(1,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['QDIFF_' us.name{i}]};
+        us.name(i) = {['qdiff(' us.name{i} ')']};
         us.tex(i) = {['\Delta ' us.tex{i}]};
     end
   case 12
     us.data(4:end,:) = ts.data(4:end,:)-ts.data(1:end-3,:);
     us.data(1:3,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['QDIFF_' us.name{i}]};
+        us.name(i) = {['qdiff(' us.name{i} ')']};
         us.tex(i) = {['\Delta_3 ' us.tex{i}]};
     end
   case 52
-    error('dynSeries::qgrowth: I do not know yet how to compute quaterly differences from weekly data!')
+    error('dseries::qgrowth: I do not know yet how to compute quaterly differences from weekly data!')
   otherwise
-    error(['dynSeries::ygrowth: object ' inputname(1) ' has unknown frequency']);
+    error(['dseries::ygrowth: object ' inputname(1) ' has unknown frequency']);
 end
 
 %@test:1
@@ -69,7 +69,7 @@ end
 %$
 %$ try
 %$     data = transpose(0:1:50);
-%$     ts = dynSeries(data,'1950Q1');
+%$     ts = dseries(data,'1950Q1');
 %$     ts = ts.qdiff;
 %$     t(1) = 1;
 %$ catch
@@ -90,7 +90,7 @@ end
 %$
 %$ try
 %$     data = transpose(0:1:80);
-%$     ts = dynSeries(data,'1950M1');
+%$     ts = dseries(data,'1950M1');
 %$     ts = ts.qdiff;
 %$     t(1) = 1;
 %$ catch
diff --git a/matlab/@dynSeries/qgrowth.m b/matlab/@dseries/qgrowth.m
similarity index 81%
rename from matlab/@dynSeries/qgrowth.m
rename to matlab/@dseries/qgrowth.m
index 562cd90d9c18d451db02a70a49e5a86a2d8c0751..f86233abeea21c65c0b1bee58f335db676182e69 100644
--- a/matlab/@dynSeries/qgrowth.m
+++ b/matlab/@dseries/qgrowth.m
@@ -10,7 +10,7 @@ function us = qgrowth(ts) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @var
 %! @item ts
-%! Dynare time series object, instantiated by @ref{dynSeries}
+%! Dynare time series object, instantiated by @ref{dseries}
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
@@ -43,25 +43,25 @@ us = ts;
 
 switch ts.freq
   case 1
-    error('dynSeries::qgrowth: I cannot compute quaterly growth rates from yearly data!')
+    error('dseries::qgrowth: I cannot compute quaterly growth rates from yearly data!')
   case 4
     us.data(2:end,:) = ts.data(2:end,:)./ts.data(1:end-1,:) - 1;
     us.data(1,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['QGROWTH_' us.name{i}]};
+        us.name(i) = {['qgrowth(' us.name{i} ')']};
         us.tex(i) = {['\delta ' us.tex{i}]};
     end
   case 12
     us.data(4:end,:) = ts.data(4:end,:)./ts.data(1:end-3,:) - 1;
     us.data(1:3,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['QGROWTH_' us.name{i}]};
+        us.name(i) = {['qgrowth(' us.name{i} ')']};
         us.tex(i) = {['\delta_3 ' us.tex{i}]};
     end
   case 52
-    error('dynSeries::qgrowth: I do not know yet how to compute quaterly growth rates from weekly data!')
+    error('dseries::qgrowth: I do not know yet how to compute quaterly growth rates from weekly data!')
   otherwise
-    error(['dynSeries::ygrowth: object ' inputname(1) ' has unknown frequency']);
+    error(['dseries::ygrowth: object ' inputname(1) ' has unknown frequency']);
 end
 
 %@test:1
@@ -69,7 +69,7 @@ end
 %$
 %$ try
 %$     data = (1+.01).^transpose(0:1:50);
-%$     ts = dynSeries(data,'1950Q1');
+%$     ts = dseries(data,'1950Q1');
 %$     ts = ts.qgrowth;
 %$     t(1) = 1;
 %$ catch
@@ -90,7 +90,7 @@ end
 %$
 %$ try
 %$     data = (1+.01).^transpose(0:1:80);
-%$     ts = dynSeries(data,'1950M1');
+%$     ts = dseries(data,'1950M1');
 %$     ts = ts.qgrowth;
 %$     t(1) = 1;
 %$ catch
diff --git a/matlab/@dynSeries/rename.m b/matlab/@dseries/rename.m
similarity index 79%
rename from matlab/@dynSeries/rename.m
rename to matlab/@dseries/rename.m
index 9ba5186af13db2e15124d1b339f49a352292d80d..de67e2b908f0b5fe04e505e3fcaab68d6b6b725c 100644
--- a/matlab/@dynSeries/rename.m
+++ b/matlab/@dseries/rename.m
@@ -18,20 +18,20 @@ function ts = rename(ts,old,new) % --*-- Unitary tests --*--
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if ~ischar(old) || ~ischar(new)
-    error(['dynSeries::rename: Input arguments ''' inputname(2) ''' and ''' inputname(3) '''  have to be strings!'])
+    error(['dseries::rename: Input arguments ''' inputname(2) ''' and ''' inputname(3) '''  have to be strings!'])
 end
     
-idname = strmatch(old,ts.name,'exact');
+idname = find(strcmp(old,ts.name));
 
 if isempty(idname)
-    error(['dynSeries::rename: Variable ' old ' is unknown in dynSeries object ' inputname(1)  '!'])
+    error(['dseries::rename: Variable ' old ' is unknown in dseries object ' inputname(1)  '!'])
 end
 
 ts.name(idname) = {new};
 
 %@test:1
 %$ t = zeros(8,1);
-%$ ts = dynSeries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
+%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
 %$ try
 %$     ts = rename(ts,'Output','Production');
 %$     t(1) = 1;
@@ -54,7 +54,7 @@ ts.name(idname) = {new};
 
 %@test:2
 %$ t = zeros(8,1);
-%$ ts = dynSeries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
+%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
 %$ try
 %$     ts = ts.rename('Output','Production');
 %$     t(1) = 1;
diff --git a/matlab/@dynSeries/save.m b/matlab/@dseries/save.m
similarity index 84%
rename from matlab/@dynSeries/save.m
rename to matlab/@dseries/save.m
index a098b825877fcc854477dbb589ddd0e7ba66fb5d..cad2b2e8aeb4d83f371690453a987253f80051d6 100644
--- a/matlab/@dynSeries/save.m
+++ b/matlab/@dseries/save.m
@@ -1,6 +1,6 @@
 function save(A,basename,format) % --*-- Unitary tests --*--
 
-% Saves a dynSeries object on disk.
+% Saves a dseries object on disk.
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -30,13 +30,13 @@ end
 switch format
   case 'm'
     if exist([basename, '.m'],'file')
-        copyfile([basename, '.m'],[basename, '.old.m'])
+        copyfile([basename, '.m'],[basename, '.old.m']);
     end
     fid = fopen([basename, '.m'],'w');
     fprintf(fid,'%% File created on %s.\n',datestr(now));
     fprintf(fid,'\n');
     fprintf(fid,'FREQ__ = %s;\n',num2str(A.freq));
-    fprintf(fid,'INIT__ = '' %s'';\n',A.init.format);
+    fprintf(fid,'INIT__ = '' %s'';\n',date2string(A.init));
     fprintf(fid,'\n');
     fprintf(fid,'NAMES__ = {');
     for i=1:A.vobs
@@ -62,7 +62,7 @@ switch format
     fclose(fid);
   case 'mat'
     FREQ__ = A.freq;
-    INIT__ = A.init.format;
+    INIT__ = date2string(A.init);
     NAMES__ = A.name;
     TEX__ = A.tex;
     str = [];
@@ -71,20 +71,19 @@ switch format
     end
     eval(str);
     if exist([basename, '.mat'],'file')
-        copyfile([basename, '.mat'],[basename, '.old.mat'])
+        copyfile([basename, '.mat'],[basename, '.old.mat']);
     end
     save([basename '.mat'],'INIT__','FREQ__','NAMES__','TEX__',A.name{:});
   case 'csv'
     if exist([basename, '.csv'],'file')
-        copyfile([basename, '.csv'],[basename, '.old.csv'])
+        copyfile([basename, '.csv'],[basename, '.old.csv']);
     end
     fid = fopen([basename, '.csv'],'w');
     fprintf(fid,',%s', A.name{:});
     fprintf(fid,'\n');
     for t=1:A.nobs
-        date = A.init+(t-1);
         str = sprintf(', %15.8g',A.data(t,:));
-        fprintf(fid, '%s%s\n',date.format,str);
+        fprintf(fid, '%s%s\n',date2string(A.dates(t)),str);
     end
     fclose(fid);
 end
@@ -98,7 +97,7 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    save(ts1,[],'csv');
 %$    t = 1;
 %$ catch
@@ -117,7 +116,7 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    save(ts1,[],'m');
 %$    t = 1;
 %$ catch
@@ -136,7 +135,7 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    save(ts1,[],'mat');
 %$    t = 1;
 %$ catch
@@ -155,8 +154,12 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts1.save;
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    if isoctave
+%$        ts1.save('A');
+%$    else
+%$        ts1.save;
+%$    end
 %$    t = 1;
 %$ catch
 %$    t = 0;
diff --git a/matlab/@dynSeries/set_names.m b/matlab/@dseries/set_names.m
similarity index 81%
rename from matlab/@dynSeries/set_names.m
rename to matlab/@dseries/set_names.m
index 00e4f071ed45523eb5a7962c299bdba9ec17211b..68a122db6ec123cd27ba813cf7f6e0361c42d67c 100644
--- a/matlab/@dynSeries/set_names.m
+++ b/matlab/@dseries/set_names.m
@@ -4,15 +4,15 @@ function A = set_names(B,varargin) % --*-- Unitary tests --*--
 %! @deftypefn {Function File} {@var{A} =} times (@var{B},@code{varargin})
 %! @anchor{@nSeries/set_names}
 %! @sp 1
-%! Specify names of the variables in a @ref{dynSeries} object.
+%! Specify names of the variables in a @ref{dseries} object.
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item B
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @item C
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -44,12 +44,12 @@ function A = set_names(B,varargin) % --*-- Unitary tests --*--
 
 n = nargin-1;
 
-if ~isa(B,'dynSeries')
-    error(['dynSeries::rename: ' inputname(1) ' must be a dynSeries object!'])
+if ~isdseries(B)
+    error(['dseries::rename: ' inputname(1) ' must be a dseries object!'])
 end
 
 if ~isequal(B.vobs,n)
-    error(['dynSeries::rename: The number of variables in ' inputname(1) ' does not match the number of declared names!'])
+    error(['dseries::rename: The number of variables in ' inputname(1) ' does not match the number of declared names!'])
 end
 
 A = B;
@@ -71,7 +71,7 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],[],[]);
+%$    ts1 = dseries(A,[],[],[]);
 %$    ts2 = set_names(ts1,'A1',[],'A3');
 %$    t(1) = 1;
 %$ catch
@@ -97,7 +97,7 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],[],[]);
+%$    ts1 = dseries(A,[],[],[]);
 %$    ts1 = ts1.set_names('A1',[],'A3');
 %$    t(1) = 1;
 %$ catch
diff --git a/matlab/@dynSeries/size.m b/matlab/@dseries/size.m
similarity index 84%
rename from matlab/@dynSeries/size.m
rename to matlab/@dseries/size.m
index d147ef823b7a21255f57dfccf5696938f7da774b..e452c8aab0d7d29931308b755068eda07a281894 100644
--- a/matlab/@dynSeries/size.m
+++ b/matlab/@dseries/size.m
@@ -22,7 +22,7 @@ b = c.vobs;
 
 if nargin>1
     if nargout>1
-        error('dynSeries::size: Wrong calling sequence!')
+        error('dseries::size: Wrong calling sequence!')
     end
     switch dim
       case 1
@@ -30,7 +30,7 @@ if nargin>1
       case 2
         a = c.vobs;
       otherwise
-        error(['dynSeries::size: Wrong calling sequence! Argument ''' inputname(2) ''' must be equal to 1 or 2.' ])
+        error(['dseries::size: Wrong calling sequence! Argument ''' inputname(2) ''' must be equal to 1 or 2.' ])
     end
 else
     a = c.nobs;
diff --git a/matlab/@dynSeries/subsasgn.m b/matlab/@dseries/subsasgn.m
similarity index 67%
rename from matlab/@dynSeries/subsasgn.m
rename to matlab/@dseries/subsasgn.m
index a31f7539154884778f1673f075456935bc5fbd3e..17fc472cde1a424a12d523fa8d443a802781202a 100644
--- a/matlab/@dynSeries/subsasgn.m
+++ b/matlab/@dseries/subsasgn.m
@@ -2,13 +2,13 @@ function A = subsasgn(A,S,B) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{A} =} subsasgn (@var{A}, @var{S}, @var{B})
-%! @anchor{@dynSeries/subsasgn}
+%! @anchor{@dseries/subsasgn}
 %! @sp 1
-%! Overloads the subsasgn method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the subsasgn method for the Dynare time series class (@ref{dseries}).
 %! @end deftypefn
 %@eod:
 
-% Copyright (C) 2012-2013 Dynare Team
+% Copyright (C) 2012-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -25,14 +25,14 @@ function A = subsasgn(A,S,B) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-merge_dynSeries_objects = 1;    
+merge_dseries_objects = 1;    
 
 switch length(S)
     case 1
       switch S(1).type
         case '{}' % Multiple variable selection.
           if ~isequal(numel(S(1).subs),numel(unique(S(1).subs)))
-              error('dynSeries::subsasgn: Wrong syntax!')
+              error('dseries::subsasgn: Wrong syntax!')
           end
           for i=1:numel(S(1).subs)
               element = S(1).subs{i};
@@ -51,7 +51,7 @@ switch length(S)
                           end
                           S(1).subs = replace_object_in_a_one_dimensional_cell_array(S(1).subs, elements(:), i);
                       else
-                          error('dynSeries::subsasgn: Wrong syntax, matlab''s regular expressions cannot be used here!')
+                          error('dseries::subsasgn: Wrong syntax, matlab''s regular expressions cannot be used here!')
                       end
                     case 4
                       idComma_1 = strfind(element(idArobase(1)+1:idArobase(2)-1),',');
@@ -70,21 +70,21 @@ switch length(S)
                           end
                           S(1).subs = replace_object_in_a_one_dimensional_cell_array(S(1).subs, elements(:), i);
                       else
-                          error('dynSeries::subsasgn: Wrong syntax, matlab''s regular expressions cannot be used here!')
+                          error('dseries::subsasgn: Wrong syntax, matlab''s regular expressions cannot be used here!')
                       end
                     otherwise
-                      error('dynSeries::subsasgn: Wrong syntax!')
+                      error('dseries::subsasgn: Wrong syntax!')
                   end
               end
           end
           if ~isequal(length(S(1).subs),B.vobs)
-              error('dynSeries::subsasgn: Wrong syntax!')
+              error('dseries::subsasgn: Wrong syntax!')
           end
           if ~isequal(S(1).subs(:),B.name)
               for i = 1:B.vobs
                   if ~isequal(S(1).subs{i},B.name{i})
                       % Rename a variable.
-                      id = strmatch(S(1).subs{i},A.name);
+                      id = find(strcmp(S(1).subs{i},A.name));
                       if isempty(id)
                           % Add a new variable a change its name.
                           B.name(i) = {S(1).subs{i}};
@@ -98,27 +98,27 @@ switch length(S)
               end
           end
         case '.'
-          if isequal(S(1).subs,'init') && isa(B,'dynDate')
+          if isequal(S(1).subs,'init') && isdates(B) && isequal(length(B),1)
               % Overwrite the init member...
               A.init = B;
               % ... and update freq and time members.
               A.freq = A.init.freq;
-              A.time = A.init:(A.init+(A.nobs-1));
+              A.dates = A.init:A.init+(A.nobs-1);
               return
-          elseif isequal(S(1).subs,'time') && isa(B,'dynDates')
+          elseif isequal(S(1).subs,'dates') && isdates(B)
               % Overwrite the time member...
-              A.time = B;
+              A.dates = B;
               % ... and update the freq and init members.
               A.init = B(1);
               A.freq = A.init.freq;
               return
           elseif ismember(S(1).subs,{'freq','nobs','vobs','data','name','tex'})
-              error(['dynSeries::subsasgn: You cannot overwrite ' S(1).subs ' member!'])
+              error(['dseries::subsasgn: You cannot overwrite ' S(1).subs ' member!'])
           elseif ~isequal(S(1).subs,B.name)
               % Single variable selection.
               if ~isequal(S(1).subs,B.name{1})
                   % Rename a variable.
-                  id = strmatch(S(1).subs,A.name);
+                  id = find(strcmp(S(1).subs,A.name));
                   if isempty(id)
                       % Add a new variable a change its name.
                       B.name(1) = {S(1).subs};
@@ -131,63 +131,104 @@ switch length(S)
               end
           end
         case '()' % Date(s) selection
-          if isa(S(1).subs{1},'dynDates') || isa(S(1).subs{1},'dynDate')
-              [junk, tdx] = intersect(A.time.time,S(1).subs{1}.time,'rows');
-              if isa(B,'dynSeries')
-                  [junk, tdy] = intersect(B.time.time,S(1).subs{1}.time,'rows');
+          if isdates(S(1).subs{1}) || isdate(S(1).subs{1})
+                if isdate(S(1).subs{1})
+                    Dates = dates(S(1).subs{1});
+                else
+                    Dates = S(1).subs{1};
+                end
+              [junk, tdx] = intersect(A.dates.time,Dates.time,'rows');
+              if isdseries(B)
+                  [junk, tdy] = intersect(B.dates.time,Dates.time,'rows');
                   if isempty(tdy)
-                      error('dynSeries::subsasgn: Periods of the dynSeries objects on the left and right hand sides must intersect!')
+                      error('dseries::subsasgn: Periods of the dseries objects on the left and right hand sides must intersect!')
                   end
                   if ~isequal(A.vobs,B.vobs)
-                      error('dynSeries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
+                      error('dseries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
                   end
                   A.data(tdx,:) = B.data(tdy,:);
+                  merge_dseries_objects = 0;
               elseif isnumeric(B)
-                  merge_dynSeries_objects = 0;
+                  merge_dseries_objects = 0;
                   if isequal(length(tdx),rows(B))
                       if isequal(columns(A.data),columns(B))
                           A.data(tdx,:) = B;
                       else
-                          error('dynSeries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
+                          error('dseries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
                       end
                   else
-                      error('dynSeries::subsassgn: Dimension error! The number of periods on the left and right hand side must match.')
+                      error('dseries::subsassgn: Dimension error! The number of periods on the left and right hand side must match.')
                   end
               else
-                  error('dynSeries::subsasgn: The object on the right hand side must be a dynSeries object or a numeric array!')
+                  error('dseries::subsasgn: The object on the right hand side must be a dseries object or a numeric array!')
+              end
+          elseif ischar(S(1).subs{1}) && isequal(S(1).subs{1},':') && isempty(A)
+              if isnumeric(B)
+                  if isequal(rows(B),1)
+                      A.data = repmat(B,A.dates.ndat,1);
+                      A.nobs = rows(A.data);
+                      A.vobs = columns(A.data);
+                  elseif isequal(rows(B),A.dates.ndat)
+                      A.data = B;
+                      A.nobs = rows(A.data);
+                      A.vobs = columns(A.data);
+                  else
+                      error('dseries::subsasgn: Wrong syntax!')
+                  end
+                  if isempty(A.name)
+                      A.name = default_name(A.vobs);
+                      A.tex = name2tex(A.name);
+                  end
+              elseif isdseries(B)
+                  if isequal(B.nobs,1)
+                      A.data = repmat(B.data,A.dates.ndat,1);
+                      A.nobs = rows(A.data);
+                      A.vobs = columns(A.data);
+                  elseif isequal(B.nobs,A.dates.ndat)
+                      A.data = B;
+                      A.nobs = rows(A.data);
+                      A.vobs = columns(A.data);
+                  else
+                      error('dseries::subsasgn: Wrong syntax!')
+                  end
+                  if isempty(A.name)
+                      A.name = B.name;
+                      A.tex = B.tex;
+                  end
               end
+              return
           else
-              error('dynSeries::subsasgn: Wrong syntax!')
+              error('dseries::subsasgn: Wrong syntax!')
           end
         otherwise
-          error('dynSeries::subsasgn: Wrong syntax!')
+          error('dseries::subsasgn: Wrong syntax!')
       end
   case 2
-    merge_dynSeries_objects = 0;
+    merge_dseries_objects = 0;
     if ((isequal(S(1).type,'{}') || isequal(S(1).type,'.')) && isequal(S(2).type,'()'))
         if isequal(S(1).type,'{}')
             sA = extract(A,S(1).subs{:});
         else
             sA = extract(A,S(1).subs);
         end
-        if (isa(B,'dynSeries') && isequal(sA.vobs,B.vobs)) || (isnumeric(B) && isequal(sA.vobs,columns(B))) || (isnumeric(B) && isequal(columns(B),1)) 
-            if isa(S(2).subs{1},'dynDates') || isa(S(2).subs{1},'dynDate')
-                [junk, tdx] = intersect(sA.time.time,S(2).subs{1}.time,'rows');
-                if isa(B,'dynSeries')
-                    [junk, tdy] = intersect(B.time.time,S(2).subs{1}.time,'rows');
+        if (isdseries(B) && isequal(sA.vobs,B.vobs)) || (isnumeric(B) && isequal(sA.vobs,columns(B))) || (isnumeric(B) && isequal(columns(B),1)) 
+            if isdates(S(2).subs{1})
+                [junk, tdx] = intersect(sA.dates.time,S(2).subs{1}.time,'rows');
+                if isdseries(B)
+                    [junk, tdy] = intersect(B.dates.time,S(2).subs{1}.time,'rows');
                     if isempty(tdy)
-                        error('dynSeries::subsasgn: Periods of the dynSeries objects on the left and right hand sides must intersect!')
+                        error('dseries::subsasgn: Periods of the dseries objects on the left and right hand sides must intersect!')
                     end
                     sA.data(tdx,:) = B.data(tdy,:);
                 elseif isnumeric(B)
-                    merge_dynSeries_objects = 0;
+                    merge_dseries_objects = 0;
                     if isequal(length(tdx),rows(B))
                         if isequal(columns(sA.data),columns(B))
                             sA.data(tdx,:) = B;
                         elseif isequal(size(B,2),1)
                             sA.data(tdx,:) = repmat(B,1,columns(sA.data));
                         else
-                            error('dynSeries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
+                            error('dseries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
                         end
                     else
                         if isequal(columns(sA.data),columns(B)) && isequal(rows(B),1)
@@ -195,25 +236,31 @@ switch length(S)
                         elseif isequal(rows(B),1)
                             sA.data(tdx,:) = B;
                         else
-                            error('dynSeries::subsassgn: Dimension error! The number of periods on the left and right hand side must match.')
+                            error('dseries::subsassgn: Dimension error! The number of periods on the left and right hand side must match.')
                         end
                     end
                 else
-                    error('dynSeries::subsasgn: The object on the right hand side must be a dynSeries object or a numeric array!')
+                    error('dseries::subsasgn: The object on the right hand side must be a dseries object or a numeric array!')
                 end
             else
-                error('dynSeries::subsasgn: Wrong syntax!')
+                error('dseries::subsasgn: Wrong syntax!')
             end
             A = merge(A,sA);
         else
-            error('dynSeries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
+            error('dseries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
         end
     end
   otherwise
-    error('dynSeries::subsasgn: Wrong syntax!')
+    error('dseries::subsasgn: Wrong syntax!')
 end
 
-if merge_dynSeries_objects
+if isempty(A)
+    % Assign variables to an empty dseries object.
+    A = B;
+    return
+end
+
+if merge_dseries_objects
     A = merge(A,B);
 end
 
@@ -221,9 +268,9 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(10,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,[],{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,[],{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
@@ -249,8 +296,8 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
 %$
 %$ % Apply the exponential function to the second variable.
 %$ ts1{'A2'} = ts1{'A2'}.exp;
@@ -270,8 +317,8 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
 %$
 %$ % Apply the logarithm function to the first and third variables.
 %$ ts1{'A1'} = ts1{'A1'}.log;
@@ -292,8 +339,8 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
 %$
 %$ % Apply the logarithm function to the first and third variables of ts1.
 %$ ts1{'A1','A3'} = ts1{'A1','A3'}.log;
@@ -309,9 +356,9 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(10,3);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,[],{'A1';'B2';'B3'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,[],{'A1';'B2';'B3'},[]);
 %$
 %$ % Apply the logarithm function to the first and third variables.
 %$ ts1.A1 = ts2.A1;
@@ -330,9 +377,9 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(10,2);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,[],{'B1';'B2'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,[],{'B1';'B2'},[]);
 %$
 %$ % Call tested routine.
 %$ try
@@ -359,9 +406,9 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(10,2);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,[],{'B1';'B2'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,[],{'B1';'B2'},[]);
 %$
 %$ % Append B2 to the first object.
 %$ ts1{'B2'} = ts2{'B2'};
@@ -383,9 +430,9 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(10,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,[],{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,[],{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
@@ -412,9 +459,9 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(10,2);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,[],{'A1';'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,[],{'A1';'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
@@ -442,9 +489,9 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(10,3);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,[],{'A1';'B1';'B2'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,[],{'A1';'B1';'B2'},[]);
 %$
 %$ % modify first object.
 %$ try
@@ -471,9 +518,9 @@ end
 %$ % Define a datasets.
 %$ A = rand(10,3); B = rand(10,5);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,[],{'A_1';'A_2';'A_3'},[]);
-%$ ts2 = dynSeries(B,[],{'A_1';'A_2';'B_1';'B_2';'B_3'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,[],{'A_1';'A_2';'A_3'},[]);
+%$ ts2 = dseries(B,[],{'A_1';'A_2';'B_1';'B_2';'B_3'},[]);
 %$
 %$ % modify first object.
 %$ try
@@ -497,14 +544,14 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3); B = rand(40,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,'1950Q1',{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
-%$     d1 = dynDate('1950Q3');
-%$     d2 = dynDate('1951Q3');
+%$     d1 = dates('1950Q3');
+%$     d2 = dates('1951Q3');
 %$     rg = d1:d2;
 %$     ts1{'A1'}(rg) = ts2{'B1'}(rg);
 %$     t(1) = 1;
@@ -528,14 +575,14 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3); B = rand(40,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,'1950Q1',{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
-%$     d1 = dynDate('1950Q3');
-%$     d2 = dynDate('1951Q3');
+%$     d1 = dates('1950Q3');
+%$     d2 = dates('1951Q3');
 %$     rg = d1:d2;
 %$     ts1{'A1'}(rg) = B(3:7);
 %$     t(1) = 1;
@@ -559,14 +606,14 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3); B = rand(40,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,'1950Q1',{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
-%$     d1 = dynDate('1950Q3');
-%$     d2 = dynDate('1951Q3');
+%$     d1 = dates('1950Q3');
+%$     d2 = dates('1951Q3');
 %$     rg = d1:d2;
 %$     ts1.A1(rg) = B(3:7);
 %$     t(1) = 1;
@@ -590,14 +637,14 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3); B = rand(40,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,'1950Q1',{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
-%$     d1 = dynDate('1950Q3');
-%$     d2 = dynDate('1951Q3');
+%$     d1 = dates('1950Q3');
+%$     d2 = dates('1951Q3');
 %$     rg = d1:d2;
 %$     ts1.A1(rg) = sqrt(pi);
 %$     t(1) = 1;
@@ -621,14 +668,14 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3); B = rand(40,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,'1950Q1',{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
-%$     d1 = dynDate('1950Q3');
-%$     d2 = dynDate('1951Q3');
+%$     d1 = dates('1950Q3');
+%$     d2 = dates('1951Q3');
 %$     rg = d1:d2;
 %$     ts1{'A1','A2'}(rg) = sqrt(pi);
 %$     t(1) = 1;
@@ -652,14 +699,14 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3); B = rand(40,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,'1950Q1',{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
-%$     d1 = dynDate('1950Q3');
-%$     d2 = dynDate('1951Q3');
+%$     d1 = dates('1950Q3');
+%$     d2 = dates('1951Q3');
 %$     rg = d1:d2;
 %$     ts1{'A1','A2'}(rg) = [sqrt(pi), pi];
 %$     t(1) = 1;
@@ -683,14 +730,14 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3); B = rand(40,1);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dynSeries(B,'1950Q1',{'B1'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
 %$
 %$ % modify first object.
 %$ try
-%$     d1 = dynDate('1950Q3');
-%$     d2 = dynDate('1951Q3');
+%$     d1 = dates('1950Q3');
+%$     d2 = dates('1951Q3');
 %$     rg = d1:d2;
 %$     ts1{'A1','A2'}(rg) = ones(5,1);
 %$     t(1) = 1;
@@ -714,11 +761,11 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
 %$
-%$ % Instantiate a dynDate object.
-%$ dd = dynDate('1952Q1');
+%$ % Instantiate a dates object.
+%$ dd = dates('1952Q1');
 %$
 %$ % modify first object.
 %$ try
@@ -737,7 +784,7 @@ end
 %$    t(6) = dyn_assert(ts1.name{3},'A3');
 %$    t(7) = dyn_assert(ts1.data,A,1e-15);
 %$    t(8) = dyn_assert(isequal(ts1.init,dd),1);
-%$    t(9) = dyn_assert(isequal(ts1.time(1),dd),1);
+%$    t(9) = dyn_assert(isequal(ts1.dates(1),dd),1);
 %$ end
 %$ T = all(t);
 %@eof:19
@@ -746,15 +793,15 @@ end
 %$ % Define a datasets.
 %$ A = rand(40,3);
 %$
-%$ % Instantiate two dynSeries object.
-%$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]);
+%$ % Instantiate two dseries object.
+%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
 %$
-%$ % Instantiate a dynDate object.
-%$ dd = dynDate('1952Q1');
+%$ % Instantiate a dates object.
+%$ dd = dates('1952Q1');
 %$
 %$ % modify first object.
 %$ try
-%$     ts1.time = dd:(dd+(ts1.nobs-1));
+%$     ts1.dates = dd:(dd+(ts1.nobs-1));
 %$     t(1) = 1;
 %$ catch
 %$     t(1) = 0;
@@ -769,7 +816,55 @@ end
 %$    t(6) = dyn_assert(ts1.name{3},'A3');
 %$    t(7) = dyn_assert(ts1.data,A,1e-15);
 %$    t(8) = dyn_assert(isequal(ts1.init,dd),1);
-%$    t(9) = dyn_assert(isequal(ts1.time(1),dd),1);
+%$    t(9) = dyn_assert(isequal(ts1.dates(1),dd),1);
+%$ end
+%$ T = all(t);
+%@eof:20
+
+%@test:21
+%$ % Define a datasets.
+%$ A = rand(4,3);
+%$
+%$ % Instantiate an empty dseries object.
+%$ ts = dseries(dates('1950Q1'):dates('1950Q4'));
+%$
+%$ % Populate ts
+%$ try
+%$     ts(:) = A;
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ % Instantiate a time series object.
+%$ if t(1)
+%$    t(2) = dyn_assert(ts.vobs,3);
+%$    t(3) = dyn_assert(ts.nobs,4);
+%$    t(4) = dyn_assert(ts.data,A,1e-15);
+%$ end
+%$ T = all(t);
+%@eof:21
+
+%@test:21
+%$ % Define a datasets.
+%$ A = rand(1,3);
+%$
+%$ % Instantiate an empty dseries object.
+%$ ts = dseries(dates('1950Q1'):dates('1950Q4'));
+%$
+%$ % Populate ts
+%$ try
+%$     ts(:) = A;
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ % Instantiate a time series object.
+%$ if t(1)
+%$    t(2) = dyn_assert(ts.vobs,3);
+%$    t(3) = dyn_assert(ts.nobs,4);
+%$    t(4) = dyn_assert(ts.data,repmat(A,4,1),1e-15);
 %$ end
 %$ T = all(t);
-%@eof:20
\ No newline at end of file
+%@eof:21
\ No newline at end of file
diff --git a/matlab/@dynSeries/subsref.m b/matlab/@dseries/subsref.m
similarity index 60%
rename from matlab/@dynSeries/subsref.m
rename to matlab/@dseries/subsref.m
index e55471b6847bf9c6d2ebb01bcd2b916e9cd30e60..765dc6996d358f1de3271e95bb405cbc8bc42a6c 100644
--- a/matlab/@dynSeries/subsref.m
+++ b/matlab/@dseries/subsref.m
@@ -2,15 +2,15 @@ function B = subsref(A, S) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{us} =} subsref (@var{ts},S)
-%! @anchor{@dynSeries/subsref}
+%! @anchor{@dseries/subsref}
 %! @sp 1
-%! Overloads the subsref method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the subsref method for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item ts
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @item S
 %! Matlab's structure array S with two fields, type and subs. The type field is string containing '()', '@{@}', or '.', where '()' specifies
 %! integer subscripts, '@{@}' specifies cell array subscripts, and '.' specifies subscripted structure fields. The subs field is a cell array
@@ -22,30 +22,30 @@ function B = subsref(A, S) % --*-- Unitary tests --*--
 %! @table @ @var
 %! @item us
 %! Dynare time series object. Depending on the calling sequence @var{us} is a transformation of @var{ts} obtained by applying a public method on @var{ts},
-%! or a dynSeries object built by extracting a variable from @var{ts}, or a dynSeries object containing a subsample of the all the variable in @var{ts}.
+%! or a dseries object built by extracting a variable from @var{ts}, or a dseries object containing a subsample of the all the variable in @var{ts}.
 %! @end table
 %! @sp 2
-%! @strong{Example 1.} Let @var{ts} be a dynSeries object containing three variables named 'A1', 'A2' and 'A3'. Then the following syntax:
+%! @strong{Example 1.} Let @var{ts} be a dseries object containing three variables named 'A1', 'A2' and 'A3'. Then the following syntax:
 %! @example
 %!   us = ts.A1;
 %! @end example
-%!will create a new dynSeries object @var{us} containing the variable 'A1'.
+%!will create a new dseries object @var{us} containing the variable 'A1'.
 %! @sp 1
-%! @strong{Example 2.} Let @var{ts} be a dynSeries object. Then the following syntax:
+%! @strong{Example 2.} Let @var{ts} be a dseries object. Then the following syntax:
 %! @example
 %!   us = ts.log;
 %! @end example
-%!will create a new dynSeries object @var{us} containing all the variables of @var{ts} transformed by the neperian logarithm.
+%!will create a new dseries object @var{us} containing all the variables of @var{ts} transformed by the neperian logarithm.
 %! @sp 1
-%! @strong{Example 3.} Let @var{ts} be a dynSeries object. The following syntax:
+%! @strong{Example 3.} Let @var{ts} be a dseries object. The following syntax:
 %! @example
 %!   us = ts(3:50);
 %! @end example
-%!will create a new dynSeries object @var{us} by selecting a subsample out of @var{ts}.
+%!will create a new dseries object @var{us} by selecting a subsample out of @var{ts}.
 %! @end deftypefn
 %@eod:
 
-% Copyright (C) 2011-2013 Dynare Team
+% Copyright (C) 2011-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -65,27 +65,42 @@ function B = subsref(A, S) % --*-- Unitary tests --*--
 switch S(1).type
   case '.'
     switch S(1).subs
-      case {'data','nobs','vobs','name','tex','freq','time','init'}        % Public members.
+      case {'data','nobs','vobs','name','tex','freq','dates','init'}        % Public members.
         if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
-            error(['dynSeries::subsref: ' S(1).subs ' is not a method but a member!'])
+            error(['dseries::subsref: ' S(1).subs ' is not a method but a member!'])
         end
         B = builtin('subsref', A, S(1));
-      case {'log','exp','ygrowth','qgrowth','ydiff','qdiff'}         % Give "dot access" to public methods without args.
+      case {'log','exp','ygrowth','qgrowth','ydiff','qdiff','abs'}         % Give "dot access" to public methods without args.
         B = feval(S(1).subs,A);
         if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
-            S = shiftS(S);
+            S = shiftS(S,1);
         end
-      case {'lag','lead','hptrend','hpcycle'}
+      case {'lag','lead','hptrend','hpcycle','chain'} % Methods with less than two arguments.
         if length(S)>1 && isequal(S(2).type,'()')
             if isempty(S(2).subs)
                 B = feval(S(1).subs,A);
-                S = shiftS(S);
+                S = shiftS(S,1);
             else
                 if length(S(2).subs{1})>1
-                    error(['dynSeries::subsref: ' S(1).subs{1} ' method admits no more than one argument!'])
+                    error(['dseries::subsref: ' S(1).subs{1} ' method admits no more than one argument!'])
                 end
-                B = feval(S(1).subs,A,S(2).subs{1})
-                S = shiftS(S);
+                B = feval(S(1).subs,A,S(2).subs{1});
+                S = shiftS(S,1);
+            end
+        else
+            B = feval(S(1).subs,A);
+        end
+      case {'cumsum','insert','pop','cumprod'} % Methods with less than three argument.
+        if length(S)>1 && isequal(S(2).type,'()')
+            if isempty(S(2).subs)
+                B = feval(S(1).subs,A);
+                S = shiftS(S,1);
+            else
+                if length(S(2).subs)>2
+                    error(['dseries::subsref: ' S(1).subs{1} ' method admits no more than two arguments!'])
+                end
+                B = feval(S(1).subs,A,S(2).subs{:});
+                S = shiftS(S,1);
             end
         else
             B = feval(S(1).subs,A);
@@ -94,31 +109,35 @@ switch S(1).type
         if length(S)>1 && isequal(S(2).type,'()')
             if isempty(S(2).subs)
                 B = feval(S(1).subs,A);
-                S = shiftS(S);
+                S = shiftS(S,1);
             else
                 B = feval(S(1).subs,A,S(2).subs{1})
-                S = shiftS(S);
+                S = shiftS(S,1);
             end
         else
             B = feval(S(1).subs,A);
         end
-      case 'save'                                                        % Save dynSeries object on disk (default is a csv file).
+      case 'save'                                                        % Save dseries object on disk (default is a csv file).
         B = NaN;
         if isequal(length(S),2)
             if strcmp(S(2).type,'()')
                 if isempty(S(2).subs)
                     save(A,inputname(1));
                 else
-                    save(A,S(2).subs{:});
+                    if isempty(S(2).subs{1})
+                        save(A,inputname(1),S(2).subs{2});
+                    else
+                        save(A,S(2).subs{:});
+                    end
                 end
-                S = shiftS(S);
+                S = shiftS(S,1);
             else
-                error('dynSeries::subsref: Wrong syntax.')
+                error('dseries::subsref: Wrong syntax.')
             end
         elseif isequal(length(S),1)
             save(A,inputname(1));
         else
-            error('dynSeries::subsref: Call to save method must come in last position!')
+            error('dseries::subsref: Call to save method must come in last position!')
         end
       case 'size'
         if isequal(length(S),2) && strcmp(S(2).type,'()')
@@ -128,20 +147,20 @@ switch S(1).type
             else
                 B = size(A,S(2).subs{1});
             end
-            S = shiftS(S);
+            S = shiftS(S,1);
         elseif isequal(length(S),1)
             [x,y] = size(A);
             B = [x, y];
         else
-            error('dynSeries::subsref: Call to size method must come in last position!')
+            error('dseries::subsref: Call to size method must come in last position!')
         end
       case {'set_names','rename','tex_rename'}
         B = feval(S(1).subs,A,S(2).subs{:});
-        S = shiftS(S);
+        S = shiftS(S,1);
       otherwise                                                            % Extract a sub-object by selecting one variable.
-        ndx = strmatch(S(1).subs,A.name,'exact');
+        ndx = find(strcmp(S(1).subs,A.name));
         if ~isempty(ndx)
-            B = dynSeries();
+            B = dseries();
             B.data = A.data(:,ndx);
             B.name = A.name(ndx);
             B.tex = A.tex(ndx);
@@ -150,21 +169,21 @@ switch S(1).type
             B.vobs = 1;
             B.freq = A.freq;
             B.init = A.init;
-            B.time = A.time;
+            B.dates = A.dates;
         else
-            error('dynSeries::subsref: Unknown public method, public member or variable!')
+            error('dseries::subsref: Unknown public method, public member or variable!')
         end
     end
   case '()'
-    if ischar(S(1).subs{1})
-        % If ts is an empty dynSeries object, populate this object by reading data in a file.
+    if ischar(S(1).subs{1}) && ~isdate(S(1).subs{1})
+        % If ts is an empty dseries object, populate this object by reading data in a file.
         if isempty(A)
-            B = dynSeries(S(1).subs{1});
+            B = dseries(S(1).subs{1});
         else
-            error(['dynSeries::subsref: dynSeries object ''' inputname(1) '''  is not empty!'])
+            error(['dseries::subsref: dseries object ''' inputname(1) '''  is not empty!'])
         end
     elseif isa(S(1).subs{1},'dynTimeIndex')
-        % shift backward/forward (lag/lead) dynSeries object
+        % shift backward/forward (lag/lead) dseries object
         shift = S(1).subs{1}.index;
         if shift>0
             B = feval('lead',A,shift);
@@ -174,10 +193,32 @@ switch S(1).type
             % Do nothing.
             B = A;
         end
-    elseif isa(S(1).subs{1},'dynDates')
-        % Extract a subsample using a dynDates object
-        [junk,tdx] = intersect(A.time.time,S(1).subs{1}.time,'rows');
-        B = dynSeries();
+    elseif isscalar(S(1).subs{1}) && isnumeric(S(1).subs{1}) && isint(S(1).subs{1})
+        % Input is also interpreted as a backward/forward operator
+        if S(1).subs{1}>0
+            B = feval('lead', A, S(1).subs{1});
+        elseif S(1).subs{1}<0
+            B = feval('lag', A, -S(1).subs{1});
+        else
+            % Do nothing.
+            B = A;
+        end
+    elseif isdates(S(1).subs{1}) || isdate(S(1).subs{1})
+        if isdate(S(1).subs{1})
+            Dates = dates(S(1).subs{1});
+        else
+            Dates = S(1).subs{1};
+        end
+        % Test if Dates is out of bounds
+        if min(Dates)<min(A.dates)
+            error(['dseries::subsref: Indices are out of bounds! Subsample cannot start before ' date2string(A.dates(1)) '.'])
+        end
+        if  max(Dates)>max(A.dates)
+            error(['dseries::subsref: Indices are out of bounds! Subsample cannot end after ' date2string(A.dates(end)) '.'])
+        end
+        % Extract a subsample using a dates object
+        [junk,tdx] = intersect(A.dates.time,Dates.time,'rows');
+        B = dseries();
         B.data = A.data(tdx,:);
         B.name = A.name;
         B.tex  = A.tex;
@@ -185,26 +226,29 @@ switch S(1).type
         B.vobs = A.vobs;
         B.freq = A.freq;
         B.init = A.init+(tdx(1)-1);
-        B.time = A.time(tdx,:);
+        B.dates = A.dates(tdx);
     elseif isvector(S(1).subs{1}) && all(isint(S(1).subs{1}))
         % Extract a subsample using a vector of integers (observation index).
+        % Note that this does not work if S(1).subs is an integer scalar... In which case S(1).subs is interpreted as a lead/lag operator (as in the Dynare syntax).
+        % To extract one observation, a dates with one element input must be used.
         if all(S(1).subs{1}>0) && all(S(1).subs{1}<=A.nobs)
             if size(A.data,2)>1
                 S(1).subs = [S(1).subs, ':'];
             end
+            B = dseries();
             B.data = builtin('subsref', A.data, S(1));
             B.nobs = size(B.data,1);
             B.vobs = A.vobs;
             B.freq = A.freq;
-            B.time = builtin('subsref', A.time, S(1));
-            B.init = A.init+S(1).subs{1}(1);
+            B.dates = A.dates(S(1).subs{1});
+            B.init = B.dates(1);
             B.name = A.name;
             B.tex  = A.tex;
         else
-            error('dynSeries::subsref: Indices are out of bounds!')
+            error('dseries::subsref: Indices are out of bounds!')
         end
     else
-        error('dynSeries::subsref: I have no idea of what you are trying to do!')
+        error('dseries::subsref: I have no idea of what you are trying to do!')
     end
   case '{}'
     if iscellofchar(S(1).subs)
@@ -212,9 +256,9 @@ switch S(1).type
     elseif isequal(length(S(1).subs),1) && all(isint(S(1).subs{1}))
         idx = S(1).subs{1};
         if max(idx)>A.vobs || min(idx)<1
-            error('dynSeries::subsref: Indices are out of bounds!')
+            error('dseries::subsref: Indices are out of bounds!')
         end
-        B = dynSeries();
+        B = dseries();
         B.data = A.data(:,idx);
         B.name = A.name(idx);
         B.tex  = A.tex(idx);
@@ -222,15 +266,15 @@ switch S(1).type
         B.vobs = length(idx);
         B.freq = A.freq;
         B.init = A.init;
-        B.time = A.time;
+        B.dates = A.dates;
     else
-        error('dynSeries::subsref: What the Hell are you tryin'' to do?!')
+        error('dseries::subsref: What the Hell are you tryin'' to do?!')
     end
   otherwise
-    error('dynSeries::subsref: What the Hell are you doin'' here?!')
+    error('dseries::subsref: What the Hell are you doin'' here?!')
 end
 
-S = shiftS(S);
+S = shiftS(S,1);
 if ~isempty(S)
     B = subsref(B, S);
 end
@@ -243,7 +287,7 @@ end
 %$ A_name = {'A1';'A2'};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,[],A_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
 %$
 %$ % Call the tested method.
 %$ a = ts1(2:9);
@@ -254,14 +298,14 @@ end
 %$ e.vobs = 2;
 %$ e.name = {'A1';'A2'};
 %$ e.freq = 1;
-%$ e.init = dynDate(2);
+%$ e.init = dates(1,2);
 %$
 %$ % Check the results.
 %$ t(1) = dyn_assert(a.data,e.data);
 %$ t(2) = dyn_assert(a.nobs,e.nobs);
 %$ t(3) = dyn_assert(a.vobs,e.vobs);
 %$ t(4) = dyn_assert(a.freq,e.freq);
-%$ t(5) = dyn_assert(a.init,e.init);
+%$ t(5) = dyn_assert(isequal(a.init,e.init),1);
 %$ T = all(t);
 %@eof:1
 
@@ -273,7 +317,7 @@ end
 %$ A_name = {'A1';'A2'};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,[],A_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
 %$
 %$ % Call the tested method.
 %$ a = ts1.A1;
@@ -284,11 +328,11 @@ end
 %$ e.vobs = 1;
 %$ e.name = {'A1'};
 %$ e.freq = 1;
-%$ e.init = dynDate(1);
+%$ e.init = dates(1,1);
 %$
 %$ % Check the results.
 %$ t(1) = dyn_assert(a.data,e.data);
-%$ t(2) = dyn_assert(a.init,e.init);
+%$ t(2) = dyn_assert(isequal(a.init,e.init),1);
 %$ t(3) = dyn_assert(a.nobs,e.nobs);
 %$ t(4) = dyn_assert(a.vobs,e.vobs);
 %$ t(5) = dyn_assert(a.freq,e.freq);
@@ -303,7 +347,7 @@ end
 %$ A_name = {'A1';'A2'};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,[],A_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
 %$
 %$ % Call the tested method.
 %$ a = ts1.log;
@@ -314,20 +358,20 @@ end
 %$ e.vobs = 2;
 %$ e.name = {'A1';'A2'};
 %$ e.freq = 1;
-%$ e.init = dynDate(1);
+%$ e.init = dates(1,1);
 %$
 %$ % Check the results.
 %$ t(1) = dyn_assert(a.data,e.data);
 %$ t(2) = dyn_assert(a.nobs,e.nobs);
 %$ t(3) = dyn_assert(a.vobs,e.vobs);
 %$ t(4) = dyn_assert(a.freq,e.freq);
-%$ t(5) = dyn_assert(a.init,e.init);
+%$ t(5) = dyn_assert(isequal(a.init,e.init),1);
 %$ T = all(t);
 %@eof:3
 
 %@test:4
-%$ % Create an empty dynSeries object.
-%$ dataset = dynSeries();
+%$ % Create an empty dseries object.
+%$ dataset = dseries();
 %$
 %$ t = zeros(5,1);
 %$
@@ -343,7 +387,7 @@ end
 %$     t(2) = dyn_assert(A.nobs,4);
 %$     t(3) = dyn_assert(A.vobs,4);
 %$     t(4) = dyn_assert(A.freq,4);
-%$     t(5) = dyn_assert(A.init,dynDate('1990Q1'));
+%$     t(5) = dyn_assert(isequal(A.init,dates('1990Q1')),1);
 %$ end
 %$ T = all(t);
 %@eof:4
@@ -356,7 +400,7 @@ end
 %$ A_name = {'A1';'A2';'B1'};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,[],A_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
 %$
 %$ % Call the tested method.
 %$ a = ts1{'A1','B1'};
@@ -367,13 +411,13 @@ end
 %$ e.vobs = 2;
 %$ e.name = {'A1';'B1'};
 %$ e.freq = 1;
-%$ e.init = dynDate(1);
+%$ e.init = dates(1,1);
 %$
 %$ t(1) = dyn_assert(e.data,a.data);
 %$ t(2) = dyn_assert(e.nobs,a.nobs);
 %$ t(3) = dyn_assert(e.vobs,a.vobs);
 %$ t(4) = dyn_assert(e.name,a.name);
-%$ t(5) = dyn_assert(e.init,a.init);
+%$ t(5) = dyn_assert(isequal(e.init,a.init),1);
 %$ T = all(t);
 %@eof:5
 
@@ -385,11 +429,11 @@ end
 %$ A_name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; 'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; 'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12';};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,[],A_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
 %$
 %$ % Call the tested method.
-%$ a = ts1{'GDP_@0-9@'};
-%$ b = ts1{'@A-Z@_1'};
+%$ a = ts1{'GDP_[0-9]'};
+%$ b = ts1{'[A-Z]_1$'};
 %$
 %$ % Expected results.
 %$ e1.data = A(:,1:12);
@@ -397,25 +441,25 @@ end
 %$ e1.vobs = 12;
 %$ e1.name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'};
 %$ e1.freq = 1;
-%$ e1.init = dynDate(1);
-%$ e2.data = A(:,[1, 13]);
+%$ e1.init = dates(1,1);
+%$ e2.data = A(:,[1 13]);
 %$ e2.nobs = 10;
 %$ e2.vobs = 2;
 %$ e2.name = {'GDP_1';'HICP_1'};
 %$ e2.freq = 1;
-%$ e2.init = dynDate(1);
+%$ e2.init = dates(1,1);
 %$
 %$ % Check results.
 %$ t(1) = dyn_assert(e1.data,a.data);
 %$ t(2) = dyn_assert(e1.nobs,a.nobs);
 %$ t(3) = dyn_assert(e1.vobs,a.vobs);
 %$ t(4) = dyn_assert(e1.name,a.name);
-%$ t(5) = dyn_assert(e1.init,a.init);
+%$ t(5) = dyn_assert(isequal(e1.init,a.init),1);
 %$ t(6) = dyn_assert(e2.data,b.data);
 %$ t(7) = dyn_assert(e2.nobs,b.nobs);
 %$ t(8) = dyn_assert(e2.vobs,b.vobs);
 %$ t(9) = dyn_assert(e2.name,b.name);
-%$ t(10) = dyn_assert(e2.init,b.init);
+%$ t(10) = dyn_assert(isequal(e2.init,b.init),1);
 %$ T = all(t);
 %@eof:6
 
@@ -428,8 +472,8 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts1.save;
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    ts1.save('ts1');
 %$    t = 1;
 %$ catch
 %$    t = 0;
@@ -447,7 +491,7 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
+%$    ts1 = dseries(A,[],A_name,[]);
 %$    ts1.save('test_generated_data_file','m');
 %$    t = 1;
 %$ catch
@@ -465,10 +509,10 @@ end
 %$ A_name = {'A1';'A2';'B1'};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,'1971Q1',A_name,[]);
+%$ ts1 = dseries(A,'1971Q1',A_name,[]);
 %$
 %$ % Define the range of a subsample.
-%$ range = dynDate('1971Q2'):dynDate('1971Q4');
+%$ range = dates('1971Q2'):dates('1971Q4');
 %$ % Call the tested method.
 %$ a = ts1(range);
 %$
@@ -478,13 +522,13 @@ end
 %$ e.vobs = 3;
 %$ e.name = {'A1';'A2';'B1'};
 %$ e.freq = 4;
-%$ e.init = dynDate('1971Q2');
+%$ e.init = dates('1971Q2');
 %$
 %$ t(1) = dyn_assert(e.data,a.data);
 %$ t(2) = dyn_assert(e.nobs,a.nobs);
 %$ t(3) = dyn_assert(e.vobs,a.vobs);
 %$ t(4) = dyn_assert(e.name,a.name);
-%$ t(5) = dyn_assert(e.init,a.init);
+%$ t(5) = dyn_assert(isequal(e.init,a.init),1);
 %$ T = all(t);
 %@eof:9
 
@@ -496,7 +540,7 @@ end
 %$ A_name = {'A1';'A2';'B1'};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,'1971Q1',A_name,[]);
+%$ ts1 = dseries(A,'1971Q1',A_name,[]);
 %$
 %$ % Test the size method.
 %$ B = ts1.size();
@@ -519,7 +563,7 @@ end
 %$ A_name = {'A1';'A2';'B1'};
 %$
 %$ % Instantiate a time series object.
-%$ ts1 = dynSeries(A,'1971Q1',A_name,[]);
+%$ ts1 = dseries(A,'1971Q1',A_name,[]);
 %$
 %$ % Test the size method.
 %$ B = ts1{1};
@@ -546,8 +590,12 @@ end
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts1.save();
+%$    ts1 = dseries(A,[],A_name,[]);
+%$    if isoctave
+%$        ts1.save('ts1');
+%$    else
+%$        ts1.save();
+%$    end
 %$    t = 1;
 %$ catch
 %$    t = 0;
@@ -559,7 +607,7 @@ end
 %@test:13
 %$ try
 %$     data = transpose(0:1:50);
-%$     ts = dynSeries(data,'1950Q1');
+%$     ts = dseries(data,'1950Q1');
 %$     a = ts.lag;
 %$     b = ts.lead;
 %$     tt = dynTimeIndex();
@@ -576,4 +624,78 @@ end
 %$ end
 %$
 %$ T = all(t);
-%@eof:13
\ No newline at end of file
+%@eof:13
+
+%@test:14
+%$ try
+%$     data = transpose(0:1:50);
+%$     ts = dseries(data,'1950Q1');
+%$     a = ts.lag;
+%$     b = ts.lead;
+%$     c = ts(-1);
+%$     d = ts(1);
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)>1
+%$     t(2) = (a==c);
+%$     t(3) = (b==d);
+%$ end
+%$
+%$ T = all(t);
+%@eof:14
+
+%@test:15
+%$ try
+%$     ds = dseries(transpose(1:5));
+%$     ts = ds(2:3);
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)>1
+%$     t(2) = isdseries(ts);
+%$     t(3) = isequal(ts.data,ds.data(2:3));
+%$ end
+%$
+%$ T = all(t);
+%@eof:15
+
+%@test:16
+%$ try
+%$     ds = dseries(transpose(1:5));
+%$     ts = ds(2:6);
+%$     t(1) = 0;
+%$ catch
+%$     t(1) = 1;
+%$ end
+%$
+%$ T = all(t);
+%@eof:16
+
+%@test:17
+%$ try
+%$     ds = dseries(transpose(1:5));
+%$     ts = ds(dates('1Y'):dates('6Y'));
+%$     t(1) = 0;
+%$ catch
+%$     t(1) = 1;
+%$ end
+%$
+%$ T = all(t);
+%@eof:17
+
+%@test:18
+%$ try
+%$     ds = dseries(transpose(1:5));
+%$     ts = ds(dates('-2Y'):dates('4Y'));
+%$     t(1) = 0;
+%$ catch
+%$     t(1) = 1;
+%$ end
+%$
+%$ T = all(t);
+%@eof:18
\ No newline at end of file
diff --git a/matlab/@dynSeries/tex_rename.m b/matlab/@dseries/tex_rename.m
similarity index 69%
rename from matlab/@dynSeries/tex_rename.m
rename to matlab/@dseries/tex_rename.m
index 5cfa27fc4e5a736c353c6120b131ff9f40c8d84c..ae9975507ace347037368f3a8a5eea8b882954ae 100644
--- a/matlab/@dynSeries/tex_rename.m
+++ b/matlab/@dseries/tex_rename.m
@@ -17,31 +17,33 @@ function ts = tex_rename(ts, varargin) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-assert(nargin <= 3, 'dynSeries::tex_rename: accepts at most two args');
+assert(nargin <= 3, 'dseries::tex_rename: accepts at most three args');
+
 if nargin == 2
-    newtex = varargin{1};
-    assert(ts.vobs == 1, ['dynSeries::tex_rename: with one argument, the ' ...
-                        'dynSeries contain only one variable.']);
+    newtexname = varargin{1};
+    assert(ts.vobs == 1, ['dseries::tex_rename: with one argument, the dseries contain only one variable.']);
 else
-    newtex = varargin{2};
+    newtexname = varargin{2};
     name = varargin{1};
-    assert(ischar(name), 'dynSeries::tex_rename: name must be a string');
+    assert(ischar(name), 'dseries::tex_rename: second input argument (name) must be a string');
 end
-assert(ischar(newtex), 'dynSeries::tex_rename: the newtex name must be a string');
+
+assert(ischar(newtexname), 'dseries::tex_rename: third input argument (newtexname) name must be a string');
 
 if nargin == 2
     idname = 1;
 else
-    idname = strmatch(name, ts.name, 'exact');
+    idname = find(strcmp(name, ts.name));
     if isempty(idname)
-        error(['dynSeries::tex_rename: Variable ' name ' is unknown in dynSeries object ' inputname(1)  '!'])
+        error(['dseries::tex_rename: Variable ' name ' is unknown in dseries object ' inputname(1)  '!'])
     end
 end
-ts.tex(idname) = {newtex};
+
+ts.tex(idname) = {newtexname};
 
 %@test:1
 %$ t = zeros(8,1);
-%$ ts = dynSeries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
+%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
 %$ try
 %$     ts = tex_rename(ts,'Output','\\Delta Y_t');
 %$     t(1) = 1;
@@ -64,7 +66,7 @@ ts.tex(idname) = {newtex};
 
 %@test:2
 %$ t = zeros(8,1);
-%$ ts = dynSeries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
+%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
 %$ try
 %$     ts = ts.tex_rename('Output','\\Delta Y_t');
 %$     t(1) = 1;
diff --git a/matlab/@dynSeries/uminus.m b/matlab/@dseries/uminus.m
similarity index 88%
rename from matlab/@dynSeries/uminus.m
rename to matlab/@dseries/uminus.m
index b93aacbee8f30b65d41508e22b315cad1425b013..bcccca70ae88d09abb1160a71c25639a7fe319e1 100644
--- a/matlab/@dynSeries/uminus.m
+++ b/matlab/@dseries/uminus.m
@@ -2,17 +2,17 @@ function A = uminus(B) % --*-- Unitary tests --*--
 
 %@info:
 %! @deftypefn {Function File} {@var{A} =} plus (@var{B},@var{C})
-%! @anchor{@dynSeries/uminus}
+%! @anchor{@dseries/uminus}
 %! @sp 1
-%! Overloads the uminus method for the Dynare time series class (@ref{dynSeries}).
+%! Overloads the uminus method for the Dynare time series class (@ref{dseries}).
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
 %! @table @ @var
 %! @item B
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @item C
-%! Dynare time series object instantiated by @ref{dynSeries}.
+%! Dynare time series object instantiated by @ref{dseries}.
 %! @end table
 %! @sp 1
 %! @strong{Outputs}
@@ -40,13 +40,13 @@ function A = uminus(B) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-A = dynSeries();
+A = dseries();
 
 A.freq = B.freq;
 A.nobs = B.nobs;
 A.vobs = B.vobs;
 A.init = B.init;
-A.time = B.time;
+A.dates = B.dates;
 A.name = cell(A.vobs,1);
 A.tex = cell(A.vobs,1);
 for i = 1:A.vobs
@@ -66,7 +66,7 @@ A.data = -(B.data);
 %$
 %$ % Instantiate a time series object.
 %$ try
-%$    ts1 = dynSeries(A,[],A_name,A_tex);
+%$    ts1 = dseries(A,[],A_name,A_tex);
 %$    ts2 = -ts1;
 %$    t(1) = 1;
 %$ catch
diff --git a/matlab/@dynSeries/vertcat.m b/matlab/@dseries/vertcat.m
similarity index 75%
rename from matlab/@dynSeries/vertcat.m
rename to matlab/@dseries/vertcat.m
index cd99cf84ada1957939d6fa84aa27734782d39fda..9b286945dc70a480041ddde295d4527581429c30 100644
--- a/matlab/@dynSeries/vertcat.m
+++ b/matlab/@dseries/vertcat.m
@@ -4,7 +4,7 @@ function a = vertcat(varargin) % --*-- Unitary tests --*--
 %! @deftypefn {Function file} {@var{a} =} vertcat (@var{b},@var{c}, ...)
 %! @anchor{horzcat}
 %! @sp 1
-%! Method of the dynSeries class.
+%! Method of the dseries class.
 %! @sp 1
 %! This method overloads the vertical concatenation operator, so that
 %! two (or more) time series objects containing the same variables 
@@ -16,9 +16,9 @@ function a = vertcat(varargin) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @ @var
 %! @item b
-%! Dynare time series object, instantiated by @ref{dynSeries}.
+%! Dynare time series object, instantiated by @ref{dseries}.
 %! @item c
-%! Dynare time series object, instantiated by @ref{dynSeries}.
+%! Dynare time series object, instantiated by @ref{dseries}.
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
@@ -47,34 +47,32 @@ function a = vertcat(varargin) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-    if nargin==0 
-        a = DynSeries();
-    elseif nargin == 1
-        a = varargin{1};
-    elseif nargin>1
-        a = varargin{1};
-        for i=2:nargin
-            a = vertcat_(a,varargin{i});
-        end
+if nargin==0
+    a = DynSeries();
+elseif nargin == 1
+    a = varargin{1};
+elseif nargin>1
+    a = varargin{1};
+    for i=2:nargin
+        a = vertcat_(a,varargin{i});
     end
-
 end
 
 function d = vertcat_(b, c)
     d = NaN;
     if ~isequal(b.freq, c.freq)
-        error('dynSeries::vertcat: Frequencies must be common!')
+        error('dseries::vertcat: Frequencies must be common!')
     end
     if ~isequal(b.vobs, c.vobs)
-        error('dynSeries::vertcat: Number of variables must be common!')
+        error('dseries::vertcat: Number of variables must be common!')
     end
     if ~isequal(b.name, c.name)
-        error('dynSeries::vertcat: Variables must be common!')
+        error('dseries::vertcat: Variables must be common!')
     end
     d = b;
     d.data = [b.data; c.data];
+    d.dates = [b.dates; c.dates];
     d.nobs = b.nobs+c.nobs;
-end
 
 %@test:1
 %$ % Define a data set.
@@ -86,21 +84,21 @@ end
 %$ B_name = {'A1';'A2'};
 %$
 %$ % Define expected results.
-%$ e.time = dynDate(1);
+%$ e.init = dates(1,1);
 %$ e.freq = 1;
 %$ e.name = {'A1';'A2'};
 %$ e.data = [A;B];
 %$
 %$ % Instantiate two time series objects.
-%$ ts1 = dynSeries(A,[],A_name,[]);
-%$ ts2 = dynSeries(B,[],B_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(B,[],B_name,[]);
 %$
 %$ % Call the tested method.
 %$ ts3 = [ts1;ts2];
 %$
 %$ % Check the results.
 %$
-%$ t(1) = dyn_assert(ts3.init,e.time);
+%$ t(1) = dyn_assert(isequal(ts3.init,e.init),1);
 %$ t(2) = dyn_assert(ts3.freq,e.freq);
 %$ t(3) = dyn_assert(ts3.data,e.data);
 %$ t(4) = dyn_assert(ts3.name,e.name);
@@ -121,22 +119,22 @@ end
 %$ C_name = {'A1';'A2'};
 %$
 %$ % Define expected results.
-%$ e.time = dynDate(1);
+%$ e.init = dates(1,1);
 %$ e.freq = 1;
 %$ e.name = {'A1';'A2'};
 %$ e.data = [A;B;C];
 %$
 %$ % Instantiate two time series objects.
-%$ ts1 = dynSeries(A,[],A_name,[]);
-%$ ts2 = dynSeries(B,[],B_name,[]);
-%$ ts3 = dynSeries(C,[],C_name,[]);
+%$ ts1 = dseries(A,[],A_name,[]);
+%$ ts2 = dseries(B,[],B_name,[]);
+%$ ts3 = dseries(C,[],C_name,[]);
 %$
 %$ % Call the tested method.
 %$ ts4 = [ts1; ts2; ts3];
 %$
 %$ % Check the results.
 %$
-%$ t(1) = dyn_assert(ts4.init,e.time);
+%$ t(1) = dyn_assert(isequal(ts4.init,e.init),1);
 %$ t(2) = dyn_assert(ts4.freq,e.freq);
 %$ t(3) = dyn_assert(ts4.data,e.data);
 %$ t(4) = dyn_assert(ts4.name,e.name);
diff --git a/matlab/@dynSeries/ydiff.m b/matlab/@dseries/ydiff.m
similarity index 81%
rename from matlab/@dynSeries/ydiff.m
rename to matlab/@dseries/ydiff.m
index 87d7c261963f875a6013c379827be6bdeb471ad7..4e20608e66004db0e8c674e6d9b9f23920cfd570 100644
--- a/matlab/@dynSeries/ydiff.m
+++ b/matlab/@dseries/ydiff.m
@@ -10,7 +10,7 @@ function us = ydiff(ts) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @var
 %! @item ts
-%! Dynare time series object, instantiated by @ref{dynSeries}
+%! Dynare time series object, instantiated by @ref{dseries}
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
@@ -46,32 +46,32 @@ switch ts.freq
     us.data(2:end,:) = ts.data(2:end,:)-ts.data(1:end-1,:);
     us.data(1,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['YDIFF_' us.name{i}]};
+        us.name(i) = {['ydiff(' us.name{i} ')']};
         us.tex(i) = {['\Delta ' us.tex{i}]};
     end
   case 4
     us.data(5:end,:) = ts.data(5:end,:)-ts.data(1:end-4,:);
     us.data(1:4,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['YDIFF_' us.name{i}]};
+        us.name(i) = {['ydiff(' us.name{i} ')']};
         us.tex(i) = {['\Delta_4 ' us.tex{i}]};
     end  
   case 12
     us.data(13:end,:) = ts.data(13:end,:)-ts.data(1:end-12,:);
     us.data(1:12,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['YDIFF_' us.name{i}]};
+        us.name(i) = {['ydiff(' us.name{i} ')']};
         us.tex(i) = {['\Delta_{12} ' us.tex{i}]};
     end    
   case 52
     us.data(53:end,:) = ts.data(53:end,:)-ts.data(1:end-52,:);
     us.data(1:52,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['YDIFF_' us.name{i}]};
+        us.name(i) = {['ydiff(' us.name{i} ')']};
         us.tex(i) = {['\Delta_{52} ' us.tex{i}]};
     end    
   otherwise
-    error(['dynSeries::ygrowth: object ' inputname(1) ' has unknown frequency']);
+    error(['dseries::ygrowth: object ' inputname(1) ' has unknown frequency']);
 end
 
 %@test:1
@@ -79,7 +79,7 @@ end
 %$
 %$ try
 %$     data = transpose(1:100);
-%$     ts = dynSeries(data,'1950Q1',{'A1'},{'A_1'});
+%$     ts = dseries(data,'1950Q1',{'A1'},{'A_1'});
 %$     ts = ts.ydiff;
 %$     t(1) = 1;
 %$ catch
@@ -91,7 +91,7 @@ end
 %$     DATA = NaN(4,ts.vobs);
 %$     DATA = [DATA; 4*ones(ts.nobs-4,ts.vobs)];
 %$     t(2) = dyn_assert(ts.data,DATA);
-%$     t(3) = dyn_assert(ts.name{1},['YDIFF_A1']);
+%$     t(3) = dyn_assert(ts.name{1},['ydiff(A1)']);
 %$     t(4) = dyn_assert(ts.tex{1},['\\Delta_4 A_1']);
 %$ end
 %$
@@ -103,7 +103,7 @@ end
 %$
 %$ try
 %$     data = transpose(1:100);
-%$     ts = dynSeries(data,'1950M1',{'A1'},{'A_1'});
+%$     ts = dseries(data,'1950M1',{'A1'},{'A_1'});
 %$     ts = ts.ydiff;
 %$     t(1) = 1;
 %$ catch
@@ -115,7 +115,7 @@ end
 %$     DATA = NaN(12,ts.vobs);
 %$     DATA = [DATA; 12*ones(ts.nobs-12,ts.vobs)];
 %$     t(2) = dyn_assert(ts.data,DATA);
-%$     t(3) = dyn_assert(ts.name{1},['YDIFF_A1']);
+%$     t(3) = dyn_assert(ts.name{1},['ydiff(A1)']);
 %$     t(4) = dyn_assert(ts.tex{1},['\\Delta_{12} A_1']);
 %$ end
 %$
@@ -127,7 +127,7 @@ end
 %$
 %$ try
 %$     data = transpose(1:100);
-%$     ts = dynSeries(data,'1950W1',{'A1'},{'A_1'});
+%$     ts = dseries(data,'1950W1',{'A1'},{'A_1'});
 %$     ts = ts.ydiff;
 %$     t(1) = 1;
 %$ catch
@@ -139,7 +139,7 @@ end
 %$     DATA = NaN(52,ts.vobs);
 %$     DATA = [DATA; 52*ones(ts.nobs-52,ts.vobs)];
 %$     t(2) = dyn_assert(ts.data,DATA);
-%$     t(3) = dyn_assert(ts.name{1},['YDIFF_A1']);
+%$     t(3) = dyn_assert(ts.name{1},['ydiff(A1)']);
 %$     t(4) = dyn_assert(ts.tex{1},['\\Delta_{52} A_1']);
 %$ end
 %$
@@ -151,7 +151,7 @@ end
 %$
 %$ try
 %$     data = transpose(1:100);
-%$     ts = dynSeries(data,1950,{'A1'},{'A_1'});
+%$     ts = dseries(data,1950,{'A1'},{'A_1'});
 %$     ts = ts.ydiff;
 %$     t(1) = 1;
 %$ catch
@@ -163,7 +163,7 @@ end
 %$     DATA = NaN(1,ts.vobs);
 %$     DATA = [DATA; ones(ts.nobs-1,ts.vobs)];
 %$     t(2) = dyn_assert(ts.data,DATA);
-%$     t(3) = dyn_assert(ts.name{1},['YDIFF_A1']);
+%$     t(3) = dyn_assert(ts.name{1},['ydiff(A1)']);
 %$     t(4) = dyn_assert(ts.tex{1},['\\Delta A_1']);
 %$ end
 %$
diff --git a/matlab/@dynSeries/ygrowth.m b/matlab/@dseries/ygrowth.m
similarity index 86%
rename from matlab/@dynSeries/ygrowth.m
rename to matlab/@dseries/ygrowth.m
index 065e2f6f61d1b8858b326b66f684e60b90acd6ca..8b26d52521eb0fc5e5347cd3938b4271fa60ee14 100644
--- a/matlab/@dynSeries/ygrowth.m
+++ b/matlab/@dseries/ygrowth.m
@@ -10,7 +10,7 @@ function us = ygrowth(ts) % --*-- Unitary tests --*--
 %! @sp 1
 %! @table @var
 %! @item ts
-%! Dynare time series object, instantiated by @ref{dynSeries}
+%! Dynare time series object, instantiated by @ref{dseries}
 %! @end table
 %! @sp 2
 %! @strong{Outputs}
@@ -46,32 +46,32 @@ switch ts.freq
     us.data(2:end,:) = ts.data(2:end,:)./ts.data(1:end-1,:) - 1;
     us.data(1,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['YGROWTH_' us.name{i}]};
+        us.name(i) = {['ygrowth(' us.name{i} ')']};
         us.tex(i) = {['\delta ' us.tex{i}]};
     end
   case 4
     us.data(5:end,:) = ts.data(5:end,:)./ts.data(1:end-4,:) - 1;
     us.data(1:4,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['YDIFF_' us.name{i}]};
+        us.name(i) = {['ygrowth(' us.name{i} ')']};
         us.tex(i) = {['\delta_4 ' us.tex{i}]};
     end  
   case 12
     us.data(13:end,:) = ts.data(13:end,:)./ts.data(1:end-12,:) - 1;
     us.data(1:12,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['YDIFF_' us.name{i}]};
+        us.name(i) = {['ygrowth(' us.name{i} ')']};
         us.tex(i) = {['\delta_{12} ' us.tex{i}]};
     end
   case 52
     us.data(53:end,:) = ts.data(53:end,:)./ts.data(1:end-52,:) - 1;
     us.data(1:52,:) = NaN;
     for i = 1:ts.vobs
-        us.name(i) = {['YDIFF_' us.name{i}]};
+        us.name(i) = {['ygrowth(' us.name{i} ')']};
         us.tex(i) = {['\delta_{52} ' us.tex{i}]};
     end
   otherwise
-    error(['dynSeries::ygrowth: object ' inputname(1) ' has unknown frequency']);
+    error(['dseries::ygrowth: object ' inputname(1) ' has unknown frequency']);
 end
 
 %@test:1
@@ -79,7 +79,7 @@ end
 %$
 %$ try
 %$     data = repmat(transpose(1:4),100,1);
-%$     ts = dynSeries(data,'1950Q1');
+%$     ts = dseries(data,'1950Q1');
 %$     ts = ts.ygrowth;
 %$     t(1) = 1;
 %$ catch
@@ -101,7 +101,7 @@ end
 %$
 %$ try
 %$     data = repmat(transpose(1:12),100,1);
-%$     ts = dynSeries(data,'1950M1');
+%$     ts = dseries(data,'1950M1');
 %$     ts = ts.ygrowth;
 %$     t(1) = 1;
 %$ catch
@@ -123,7 +123,7 @@ end
 %$
 %$ try
 %$     data = repmat(transpose(1:52),100,1);
-%$     ts = dynSeries(data,'1950W1');
+%$     ts = dseries(data,'1950W1');
 %$     ts = ts.ygrowth;
 %$     t(1) = 1;
 %$ catch
diff --git a/matlab/@dynDate/colon.m b/matlab/@dynDate/colon.m
deleted file mode 100644
index d1c7138b795b9804ede3aeb21c61d1cfa778fb55..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/colon.m
+++ /dev/null
@@ -1,126 +0,0 @@
-function sp = colon(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{sp} =} colon (@var{a},@var{b})
-%! @anchor{@dynDate/colon}
-%! @sp 1
-%! Overloads the colon operator for the Dynare Dates class (@ref{dynDate}). Creates a @ref{dynDates} object.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}, initial date.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}, last date.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! Dynare Dates object instantiated by @ref{dynDates}.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @ref{dynDates}, @ref{@@dynDates/setFreq}, @ref{@@dynDates/setTime}, @ref{@@dynDates/setSize}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDate::colon: I need exactly two input arguments!')
-end
-
-if ~( isa(a,'dynDate') && isa(b,'dynDate'))
-    error(['dynDate::colon: Input arguments ' inputname(1) 'and ' inputname(2) ' have to be a dynDate objects!'])
-end
-
-if a.freq~=b.freq
-    error(['dynDate::colon: Input arguments ' inputname(1) 'and ' inputname(2) ' must have common frequency!'])
-end
-
-if a>b
-    error(['dynDate::colon: ' inputname(1) ' must precede ' inputname(2) '!' ])
-end
-
-sp = dynDates(a);
-n = b-a;
-for t=1:n
-    a = +a;
-    sp = sp.append(a);
-end
-
-%@test:1
-%$ % Define two dates
-%$ date_1 = '1950Q2';
-%$ date_2 = '1951Q4';
-%$
-%$ % Define expected results.
-%$ e.freq = 4;
-%$ e.time = [1950 2; 1950 3; 1950 4; 1951 1; 1951 2; 1951 3; 1951 4];
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = d1:d2;
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(d3.time,e.time);
-%$ t(2) = dyn_assert(d3.freq,e.freq);
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Create an empty dynDate object
-%$ date = dynDate();
-%$
-%$ % Define expected results.
-%$ e.freq = 4;
-%$ e.time = [1950 2; 1950 3; 1950 4; 1951 1; 1951 2; 1951 3; 1951 4];
-%$
-%$ % Call the tested routine.
-%$ d = date('1950Q2'):date('1951Q4');
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(d.time,e.time);
-%$ t(2) = dyn_assert(d.freq,e.freq);
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Create an empty dynDate object for quaterly data
-%$ qq = dynDate('Q');
-%$
-%$ % Define expected results.
-%$ e.freq = 4;
-%$ e.time = [1950 2; 1950 3; 1950 4; 1951 1; 1951 2; 1951 3; 1951 4];
-%$
-%$ % Call the tested routine.
-%$ d = qq(1950,2):qq(1951,4);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(d.time,e.time);
-%$ t(2) = dyn_assert(d.freq,e.freq);
-%$ T = all(t);
-%@eof:3
-
diff --git a/matlab/@dynDate/dynDate.m b/matlab/@dynDate/dynDate.m
deleted file mode 100644
index f6502323ae57813b573318d62c6a851a4960fb5a..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/dynDate.m
+++ /dev/null
@@ -1,310 +0,0 @@
-function date = dynDate(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{date} =} dynDate (@var{a})
-%! @anchor{dynDate}
-%! @sp 1
-%! Constructor for the Dynare dates class.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Date. For Quaterly, Monthly or Weekly data, a must be a string. For yearly data or if the frequence is not
-%! defined  must be an integer. If @var{a} is a dynDate object, then date will be a copy of this object. If
-%! the constructor is called without input argument, it will return an empty dynDate object.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item date
-%! Dynare date object.
-%! @end table
-%! @sp 1
-%! @strong{Properties}
-%! @sp 1
-%! The constructor defines the following properties:
-%! @sp 1
-%! @table @ @var
-%! @item freq
-%! Scalar integer, the frequency of the time series. @var{freq} is equal to 1 if data are on a yearly basis or if
-%! frequency is unspecified. @var{freq} is equal to 4 if data are on a quaterly basis. @var{freq} is equal to
-%! 12 if data are on a monthly basis. @var{freq} is equal to 52 if data are on a weekly basis.
-%! @item time
-%! Row vector of integers (1*2) indicating the year and the week, month or quarter of the first observation.
-%! @end table
-%! @sp 1
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @ref{set_time}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-date = struct;
-
-date.freq = NaN;
-date.time = NaN(1,2);
-
-date = class(date,'dynDate');
-
-switch nargin
-  case 0
-    % Return an empty dynDate object (without specified frequency).
-    return
-  case 1
-    if ischar(a)% Weekly, Monthly or Quaterly data.
-        a = upper(a);
-        if length(a)>1
-            yearly = findstr('Y',a);
-            if isempty(yearly)
-                yearly = findstr('A',a);
-            end
-            quaterly = findstr('Q',a);
-            monthly  = findstr('M',a);
-            weekly   = findstr('W',a);
-            if ~isempty(yearly)
-                date.freq = 1;
-                date.time(1) = str2num(a(1:yearly-1));
-                date.time(2) = 1;
-            end
-            if ~isempty(quaterly)
-                date.freq = 4;
-                date.time(1) = str2num(a(1:quaterly-1));
-                date.time(2) = str2num(a(quaterly+1:end));
-            end
-            if ~isempty(monthly)
-                date.freq = 12;
-                date.time(1) = str2num(a(1:monthly-1));
-                date.time(2) = str2num(a(monthly+1:end));
-            end
-            if ~isempty(weekly)
-                date.freq = 52;
-                date.time(1) = str2num(a(1:weekly-1));
-                date.time(2) = str2num(a(weekly+1:end));
-            end
-            if isempty(yearly) && isempty(quaterly) && isempty(monthly) && isempty(weekly)
-                if isaletter(a)
-                    error('dynDate:: Using a string as an input argument, I can only handle weekly (W), monthly (M), quaterly (Q) or yearly (Y, A), data!');
-                else
-                    % Yearly data declared with a string
-                    date.freq = 1;
-                    date.time(1) = str2num(a);
-                    date.time(2) = 1;
-                end
-            end
-        else
-            % Return an empty dynDate object (with a specified frequency).
-            switch a
-              case {'Y','A'}
-                date.freq = 1;
-              case 'Q'
-                date.freq = 4;
-              case 'M'
-                date.freq = 12;
-              case 'W'
-                date.freq = 52;
-              otherwise
-                error(['dynDate:: With one string argument of length one, you must provide one of weekly (''W''), monthly (''M''), quaterly (''Q'') or yearly (''Y'').']);
-            end
-        end
-    elseif isa(a,'dynDate') % If input argument is a dynDate object then do a copy.
-        date = a;
-    else
-        if isequal(length(a),1) && isnumeric(a) && isint(a)
-            % If b is not a string then yearly data are assumed.
-            date.freq = 1;
-            date.time(1) = a;
-            date.time(2) = 1;
-        else
-            error('dynDate:: Can''t instantiate the class, wrong calling sequence!')
-        end            
-    end
-  case 2 % provide time and freq to instantiate a dynDate object
-    date = dynDate();
-    if isnumeric(b) && isscalar(b) && ismember(b,[1,4,12,52])
-        date.freq = b;
-    elseif ischar(b) && isequal(length(b),1) && ismember(upper(b),{'Y','A','W','M','Q'})
-        b = upper(b);
-        switch b
-          case {'Y','A'}
-            date.freq = 1;
-          case 'W'
-            date.freq = 52;
-          case 'M'
-            date.freq = 12;
-          case 'Q'
-            date.freq = 4;
-          otherwise
-            error(['dynDate:: Can''t instantiate the class! The second argument ' inputname(2) ' must be an integer equal to 1, 4, 12 or 52, or a character equal to ''Y'', ''A'', ''W'', ''M'' or ''Q''!'])
-        end
-    else
-        error(['dynDate:: Can''t instantiate the class! The second argument ' inputname(2) ' must be an integer equal to 1, 4, 12 or 52, or a character equal to ''Y'', ''A'', ''W'', ''M'' or ''Q''!'])
-    end
-    if ~isnumeric(a)
-        error(['dynDate:: Can''t instantiate the class! The first argument ' inputname(1) ' must be numeric!'])
-    end
-    if ~all(isint(a))
-        error(['dynDate:: Can''t instantiate the class! The first argument ' inputname(1) ' must be a scalar or a 1*2 vector of integers!'])
-    end
-    if ~isequal(size(a),[1,2])
-        if date.freq>1
-            error(['dynDate:: Can''t instantiate the class! The first argument ' inputname(1) ' must be a 1*2 vector of integers.'])
-        end
-    else
-        if isequal(date.freq,1) && ~isequal(a(2),1)
-            error(['dynDate:: Can''t instantiate the class! The second element of the first input argument ' inputname(1) ' must be equal to one (because freq==1)!'])
-        end
-    end
-    if a(2)<=0 || a(2)>date.freq
-        error(['dynDate:: Can''t instantiate the class! The second element of the first argument ' inputname(1) ' must be a positive integer be <=' int2str(2) '!' ])
-    end
-    if length(a)==1
-        date.time = [a, 1];
-    else
-        date.time = a;
-    end
-  otherwise
-    error('dynDate:: Can''t instantiate the class, wrong calling sequence!')
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = '1950Q2';
-%$ date_3 = '1950m10';
-%$ date_4 = '1950w50';
-%$ date_5 = '1950';
-%$ date_6 = '1967y';
-%$ date_7 = '2009A';
-%$
-%$ % Define expected results.
-%$ e_date_1 = [1950 1];
-%$ e_freq_1 = 1;
-%$ e_date_2 = [1950 2];
-%$ e_freq_2 = 4;
-%$ e_date_3 = [1950 10];
-%$ e_freq_3 = 12;
-%$ e_date_4 = [1950 50];
-%$ e_freq_4 = 52;
-%$ e_date_5 = [1950 1];
-%$ e_freq_5 = 1;
-%$ e_date_6 = [1967 1];
-%$ e_freq_6 = 1;
-%$ e_date_7 = [2009 1];
-%$ e_freq_7 = 1;
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ d6 = dynDate(date_6);
-%$ d7 = dynDate(date_7);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(d1.time,e_date_1);
-%$ t(2) = dyn_assert(d2.time,e_date_2);
-%$ t(3) = dyn_assert(d3.time,e_date_3);
-%$ t(4) = dyn_assert(d4.time,e_date_4);
-%$ t(5) = dyn_assert(d5.time,e_date_5);
-%$ t(6) = dyn_assert(d1.freq,e_freq_1);
-%$ t(7) = dyn_assert(d2.freq,e_freq_2);
-%$ t(8) = dyn_assert(d3.freq,e_freq_3);
-%$ t(9) = dyn_assert(d4.freq,e_freq_4);
-%$ t(10)= dyn_assert(d5.freq,e_freq_5);
-%$ t(11)= dyn_assert(d6.freq,e_freq_6);
-%$ t(12)= dyn_assert(d7.freq,e_freq_7);
-%$ t(13)= dyn_assert(d6.time,e_date_6);
-%$ t(14)= dyn_assert(d7.time,e_date_7);
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Instatiate an empty objects for quaterly, monthly and weekly dates.
-%$ qq = dynDate('Q');
-%$ mm = dynDate('M');
-%$ ww = dynDate('W');
-%$ yy = dynDate('Y');
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(qq.freq,4);
-%$ t(2) = dyn_assert(mm.freq,12);
-%$ t(3) = dyn_assert(ww.freq,52);
-%$ t(4) = dyn_assert(yy.freq,1);
-%$ t(5) = dyn_assert(all(isnan(qq.time)),1);
-%$ t(6) = dyn_assert(all(isnan(mm.time)),1);
-%$ t(7) = dyn_assert(all(isnan(ww.time)),1);
-%$ t(8) = dyn_assert(all(isnan(yy.time)),1);
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Try to instatiate dynDate objects.
-%$ try
-%$    a = dynDate([1950 1],4);
-%$    t(1) = 1;
-%$ catch
-%$    t(1) = 0;
-%$ end
-%$ try
-%$    a = dynDate([1950 5],4);
-%$    t(2) = 0;
-%$ catch
-%$    t(2) = 1;
-%$ end
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ % Instatiate an empty objects for quaterly, monthly and weekly dates.
-%$ qq = dynDate('q');
-%$ mm = dynDate('m');
-%$ ww = dynDate('w');
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(qq.freq,4);
-%$ t(2) = dyn_assert(mm.freq,12);
-%$ t(3) = dyn_assert(ww.freq,52);
-%$ t(4) = dyn_assert(all(isnan(qq.time)),1);
-%$ t(5) = dyn_assert(all(isnan(mm.time)),1);
-%$ t(6) = dyn_assert(all(isnan(ww.time)),1);
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ % Try to instatiate dynDate objects.
-%$ try
-%$    a = dynDate([1950 1],'Q');
-%$    t(1) = 1;
-%$ catch
-%$    t(1) = 0;
-%$ end
-%$ try
-%$    a = dynDate([1950 5],'Q');
-%$    t(2) = 0;
-%$ catch
-%$    t(2) = 1;
-%$ end
-%$ T = all(t);
-%@eof:5
diff --git a/matlab/@dynDate/eq.m b/matlab/@dynDate/eq.m
deleted file mode 100644
index 86b47133e14c9f7b25943f68b050b4f748ea72e5..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/eq.m
+++ /dev/null
@@ -1,124 +0,0 @@
-function c = eq(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} eq (@var{a},@var{b})
-%! @anchor{@dynDate/eq}
-%! @sp 1
-%! Overloads the eq (equal) operator for the Dynare dates class (@ref{dynDate}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! scalar integer equal to one if a==b, 0 otherwise.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDate::eq: I need exactly two input arguments!')
-end
-
-if ~( isa(a,'dynDate') && isa(b,'dynDate'))
-    error(['dynDate::eq: Input arguments ' inputname(1) ' and ' inputname(2) ' have to be a dynDate objects!'])
-end
-
-if ~isequal(a.freq,b.freq)
-    c = 0;
-    return
-end
-
-c = isequal(a.time,b.time);
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = '1950Q2';
-%$ date_3 = '1950M10';
-%$ date_4 = '1950W50';
-%$ date_5 = '1950W32';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ try 
-%$    i1 = (d1==d2);
-%$    t1 = 1;
-%$ catch
-%$    t1 = 0;
-%$ end
-%$ t1 = t1 & ~i1;
-%$ i2 = (d2==d2);
-%$ i3 = (d4==d5);
-%$
-%$ % Check the results.
-%$ t(1) = t1;
-%$ t(2) = dyn_assert(i2,1);
-%$ t(3) = dyn_assert(i3,0);
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = '1950q2';
-%$ date_3 = '1950m10';
-%$ date_4 = '1950w50';
-%$ date_5 = '1950w32';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ try 
-%$    i1 = (d1==d2);
-%$    t1 = 1;
-%$ catch
-%$    t1 = 0;
-%$ end
-%$ t1 = t1 & ~i1;
-%$ i2 = (d2==d2);
-%$ i3 = (d4==d5);
-%$
-%$ % Check the results.
-%$ t(1) = t1;
-%$ t(2) = dyn_assert(i2,1);
-%$ t(3) = dyn_assert(i3,0);
-%$ T = all(t);
-%@eof:2
diff --git a/matlab/@dynDate/format.m b/matlab/@dynDate/format.m
deleted file mode 100644
index 686a8f82b6cd0757078b8e61c982740804763c1e..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/format.m
+++ /dev/null
@@ -1,90 +0,0 @@
-function p = format(date) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{p} =} format (@var{date})
-%! @anchor{@dynDate/format}
-%! @sp 1
-%! Produces a formatted date from a Dynare date object instantiated by @ref{dynDate}.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item date
-%! Dynare date object, instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item p
-%! A string containing the formatted date (for instance, '2000', '2000Q3', '2000M9' or '2000W43').
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-% Original author: stephane DOT adjemian AT univ DASH lemans DOT fr
-
-
-if nargin~=1
-    error('dynDate::format: I need exactly one input argument!')
-end
-
-if ~isa(date,'dynDate')
-    error(['dynDate::format: Input argument ' inputname(1) ' has to be a dynDate object!'])
-end
-
-switch date.freq
-  case 1
-    p = [num2str(date.time(1)) 'Y'];
-  case 4
-    p = [num2str(date.time(1)) 'Q' num2str(date.time(2))];
-  case 12
-    p = [num2str(date.time(1)) 'M' num2str(date.time(2))];
-  case 52
-    p = [num2str(date.time(1)) 'W' num2str(date.time(2))];
-  otherwise
-    error('dynDate::format: Unkonwn frequency!')
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = '1950Q2';
-%$ date_3 = '1950M10';
-%$ date_4 = '1950W50';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1); DATE_1 = format(d1);
-%$ d2 = dynDate(date_2); DATE_2 = format(d2);
-%$ d3 = dynDate(date_3); DATE_3 = format(d3);
-%$ d4 = dynDate(date_4); DATE_4 = format(d4);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert([num2str(date_1) 'Y'],DATE_1);
-%$ t(2) = dyn_assert(date_2,DATE_2);
-%$ t(3) = dyn_assert(date_3,DATE_3);
-%$ t(4) = dyn_assert(date_4,DATE_4);
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDate/ge.m b/matlab/@dynDate/ge.m
deleted file mode 100644
index 2ab2ece18b4a804827748aa0550a248ed4a4ca5e..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/ge.m
+++ /dev/null
@@ -1,83 +0,0 @@
-function c = ge(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} ge (@var{a},@var{b})
-%! @anchor{@dynDate/ge}
-%! @sp 1
-%! Overloads the ge (greater or equal) operator for the Dynare dates class (@ref{dynDate}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! scalar integer equal to one if a>=b, 0 otherwise.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @ref{@@dynDate/gt}, @ref{@@dynDate/eq}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if a>b
-    c=1;
-else
-    if a==b
-        c=1;
-    else
-        c=0;
-    end
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = '1950Q3';
-%$ date_2 = '1950Q3';
-%$ date_3 = '1950Q1';
-%$ date_4 = '1949Q2';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ i1 = (d1>=d2);
-%$ i2 = (d3>=d4);
-%$ i3 = (d4>=d2);
-%$ i4 = (d1>=d4);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(i1,1);
-%$ t(2) = dyn_assert(i2,1);
-%$ t(3) = dyn_assert(i3,0);
-%$ t(4) = dyn_assert(i4,1);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/gt.m b/matlab/@dynDate/gt.m
deleted file mode 100644
index 1da3f3fd91d9f6fee13abef574a5cff6645cc7d2..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/gt.m
+++ /dev/null
@@ -1,98 +0,0 @@
-function c = gt(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} gt (@var{a},@var{b})
-%! @anchor{@dynDate/gt}
-%! @sp 1
-%! Overloads the gt (greater than) operator for the Dynare dates class (@ref{dynDate}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! scalar integer equal to one if a>b, 0 otherwise.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDate::eq: I need exactly two input arguments!')
-end
-
-if ~( isa(a,'dynDate') && isa(b,'dynDate'))
-    error(['dynDate::eq: Input arguments ' inputname(1) 'and ' inputname(2) ' have to be a dynDate objects!'])
-end
-
-if ~isequal(a.freq,b.freq)
-    error(['dynDate::eq: Input arguments ' inputname(1) 'and ' inputname(2) ' have no common frequencies!'])
-end
-
-if a.time(1)>b.time(1)
-    c = 1;
-elseif isequal(a.time(1),b.time(1))
-    if a.time(2)>b.time(2)
-        c = 1;
-    else
-        c = 0;
-    end
-else
-    c = 0;
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = '1950Q2';
-%$ date_3 = '1950Q3';
-%$ date_4 = '1950Q1';
-%$ date_5 = '1949Q2';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ i1 = (d2>d3);
-%$ i2 = (d3>d4);
-%$ i3 = (d4>d2);
-%$ i4 = (d5>d4);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(i1,0);
-%$ t(2) = dyn_assert(i2,1);
-%$ t(3) = dyn_assert(i3,0);
-%$ t(4) = dyn_assert(i4,0);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/horzcat.m b/matlab/@dynDate/horzcat.m
deleted file mode 100644
index 90aca9708a5f562e61e3245ea1b14c0999ab591e..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/horzcat.m
+++ /dev/null
@@ -1,49 +0,0 @@
-function a = horzcat(varargin)
-
-%@info:
-%! @deftypefn {Function file} {@var{a} =} horzcat (@var{b},@var{c}, ...)
-%! @anchor{horzcat}
-%! @sp 1
-%! Method of the dynDate class.
-%! @sp 1
-%! Concatenate dynDate objects to form a dynDates object. This method overloads the horizontal concatenation operator, so that
-%! two (or more) dynDate objects an be concatenated :
-%!
-%!     a = [b, c, d];
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item b
-%! dynDate object, instantiated by @ref{dynDate}.
-%! @item c
-%! dynDate object, instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item a
-%! dynDates object.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-a = dynDates(varargin{:});
\ No newline at end of file
diff --git a/matlab/@dynDate/isempty.m b/matlab/@dynDate/isempty.m
deleted file mode 100644
index e0148ef7bdd753be61f7dd48251b7842ea219967..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/isempty.m
+++ /dev/null
@@ -1,59 +0,0 @@
-function b = isempty(a) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{b} =} isempty (@var{a})
-%! @anchor{@dynDate/isempty}
-%! @sp 1
-%! Overloads the isempty function for the @ref{dynDate} class.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item b
-%! Integer scalar (equal to zero if @var{a} is not empty).
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @sp 2
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if ~isa(a,'dynDate')
-    error(['dynDate::isempty: Input argument ' inputname(1) ' have to be a dynDate object!'])
-end
-
-b = all(isnan(a.time)) && isnan(a.freq);
-
-%@test:1
-%$ % Instantiate an empty dynDate object
-%$ d = dynDate();
-%$ % Test if this object is empty
-%$ t(1) = isempty(d);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/le.m b/matlab/@dynDate/le.m
deleted file mode 100644
index 67fb532a3845d3a0430347e1acd08559c10c3473..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/le.m
+++ /dev/null
@@ -1,83 +0,0 @@
-function c = le(a,b)  % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} le (@var{a},@var{b})
-%! @anchor{@dynDate/le}
-%! @sp 1
-%! Overloads the le (less or equal) operator for the Dynare dates class (@ref{dynDate}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! scalar integer equal to one if a<=b, 0 otherwise.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @ref{@@dynDate/lt}, @ref{@@dynDate/eq}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if a<b
-    c=1;
-else
-    if a==b
-        c=1;
-    else
-        c=0;
-    end
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = '1950Q3';
-%$ date_2 = '1950Q3';
-%$ date_3 = '1950Q1';
-%$ date_4 = '1949Q2';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ i1 = (d1<=d2);
-%$ i2 = (d3<=d4);
-%$ i3 = (d4<=d2);
-%$ i4 = (d1<=d4);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(i1,1);
-%$ t(2) = dyn_assert(i2,0);
-%$ t(3) = dyn_assert(i3,1);
-%$ t(4) = dyn_assert(i4,0);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/lt.m b/matlab/@dynDate/lt.m
deleted file mode 100644
index 789814ddf0c9a8dc2e5eaebe6e53c1e6352fc689..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/lt.m
+++ /dev/null
@@ -1,98 +0,0 @@
-function c = lt(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} lt (@var{a},@var{b})
-%! @anchor{@dynDate/lt}
-%! @sp 1
-%! Overloads the lt (less than) operator for the Dynare dates class (@ref{dynDate}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! scalar integer equal to one if a<b, 0 otherwise.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDate::eq: I need exactly two input arguments!')
-end
-
-if ~( isa(a,'dynDate') && isa(b,'dynDate'))
-    error(['dynDate::lt: Input arguments ' inputname(1) ' and ' inputname(2) ' have to be a dynDate objects!'])
-end
-
-if ~isequal(a.freq,b.freq)
-    error(['dynDate::lq: Input arguments ' inputname(1) ' and ' inputname(2) ' have no common frequencies!'])
-end
-
-if a.time(1)<b.time(1)
-    c = 1;
-elseif isequal(a.time(1),b.time(1))
-    if a.time(2)<b.time(2)
-        c = 1;
-    else
-        c = 0;
-    end
-else
-    c = 0;
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = '1950Q2';
-%$ date_3 = '1950Q3';
-%$ date_4 = '1950Q1';
-%$ date_5 = '1949Q2';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ i1 = (d2<d3);
-%$ i2 = (d3<d4);
-%$ i3 = (d4<d2);
-%$ i4 = (d5<d4);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(i1,1);
-%$ t(2) = dyn_assert(i2,0);
-%$ t(3) = dyn_assert(i3,1);
-%$ t(4) = dyn_assert(i4,1);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/max.m b/matlab/@dynDate/max.m
deleted file mode 100644
index cff76e1f6b85a93b254122b43aed71d0f3a090bf..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/max.m
+++ /dev/null
@@ -1,95 +0,0 @@
-function c = max(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} max (@var{a},@var{b})
-%! @anchor{@dynDate/gt}
-%! @sp 1
-%! Overloads the max function for the Dynare dates class @ref{dynDate}.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! Dynare date object instantiated by @ref{dynDate}. @var{c} is a copy of @var{a} if @var{a}>=@var{b}, a copy of @var{b} otherwise.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDate::min: I need exactly two input arguments!')
-end
-
-if ~( isa(a,'dynDate') && isa(b,'dynDate'))
-    error(['dynDate::min: Input arguments ' inputname(1) 'and ' inputname(2) ' have to be a dynDate objects!'])
-end
-
-if ~isequal(a.freq,b.freq)
-    error(['dynDate::min: Input arguments ' inputname(1) 'and ' inputname(2) ' have no common frequencies!'])
-end
-
-if a>=b
-    c = a;
-else
-    c = b;
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = 2000;
-%$ date_3 = '1950q2';
-%$ date_4 = '1950Q3';
-%$ date_5 = '1950m1';
-%$ date_6 = '1948M6';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ d6 = dynDate(date_6);
-%$ m1 = max(d1,d2);
-%$ i1 = (m1==d2);
-%$ m2 = max(d3,d4);
-%$ i2 = (m2==d4);
-%$ m3 = max(d5,d6);
-%$ i3 = (m3==d5);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(i1,1);
-%$ t(2) = dyn_assert(i2,1);
-%$ t(3) = dyn_assert(i3,1);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/min.m b/matlab/@dynDate/min.m
deleted file mode 100644
index 9b809f304368c568a233648cc671f962567858d6..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/min.m
+++ /dev/null
@@ -1,95 +0,0 @@
-function c = min(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} min (@var{a},@var{b})
-%! @anchor{@dynDate/gt}
-%! @sp 1
-%! Overloads the min function for the Dynare dates class (@ref{dynDate}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! Dynare date object instantiated by @ref{dynDate}. @var{c} is a copy of @var{a} if @var{a}<=@var{b}, a copy of @var{b} otherwise.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDate::min: I need exactly two input arguments!')
-end
-
-if ~( isa(a,'dynDate') && isa(b,'dynDate'))
-    error(['dynDate::min: Input arguments ' inputname(1) 'and ' inputname(2) ' have to be a dynDate objects!'])
-end
-
-if ~isequal(a.freq,b.freq)
-    error(['dynDate::min: Input arguments ' inputname(1) 'and ' inputname(2) ' have no common frequencies!'])
-end
-
-if a<=b
-    c = a;
-else
-    c = b;
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = 2000;
-%$ date_3 = '1950Q2';
-%$ date_4 = '1950Q3';
-%$ date_5 = '1950M1';
-%$ date_6 = '1948M6';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ d6 = dynDate(date_6);
-%$ m1 = min(d1,d2);
-%$ i1 = (m1==d1);
-%$ m2 = min(d3,d4);
-%$ i2 = (m2==d3);
-%$ m3 = min(d5,d6);
-%$ i3 = (m3==d6);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(i1,1);
-%$ t(2) = dyn_assert(i2,1);
-%$ t(3) = dyn_assert(i3,1);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/minus.m b/matlab/@dynDate/minus.m
deleted file mode 100644
index 6546a26766600d0d89b9e96009fa70163a826b73..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/minus.m
+++ /dev/null
@@ -1,110 +0,0 @@
-function c = minus(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} minus (@var{a},@var{b})
-%! @anchor{@dynDate/minus}
-%! @sp 1
-%! Overloads the minus (soustraction) operator for the Dynare dates class (@ref{dynDate}). Depending on the frequency, computes the number
-%! of years, quarters, months, weeks between two dates @var{a} and @var{b} (it is assumed that @var{a}>@var{B}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! Integer scalar, the number of years, quarters, months or weeks between @var{a} and @var{B}.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @ref{@@dynDate/eq},@ref{@@dynDate/lt}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if ~( isa(a,'dynDate') && isa(b,'dynDate') )
-    error(['dynDate::minus: Input arguments ' inputname(1) ' and ' inputname(2) ' must be dynDate objects!'])
-end
-
-if a.freq~=b.freq
-    error(['dynDate::minus: ' inputname(1) ' and ' inputname(2) ' must have common frequency!'])
-end
-
-if a<b
-    error(['dynDate::minus: ' inputname(1) ' must be posterior to ' inputname(2) '!'])
-end
-
-if a==b
-    c = 0;
-    return
-end
-
-switch a.freq
-  case 1
-    c = a.time(1)-b.time(1);
-  case {4,12,52}
-    c = a.time(2)-b.time(2) + (a.time(1)-b.time(1))*a.freq;
-  otherwise
-    error('dynDate::minus: Unknown frequency!')
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_0_1 = 1950;
-%$ date_0_2 = 1950;
-%$ date_0_3 = 1940;
-%$ date_1_1 = '1950Q4';
-%$ date_1_2 = '1950Q1';
-%$ date_1_3 = '1940Q3';
-%$ date_2_1 = '2000M3';
-%$ date_2_2 = '1998M8';
-%$
-%$ % Call the tested routine.
-%$ d_0_1 = dynDate(date_0_1);
-%$ d_0_2 = dynDate(date_0_2);
-%$ d_0_3 = dynDate(date_0_3);
-%$ d_1_1 = dynDate(date_1_1);
-%$ d_1_2 = dynDate(date_1_2);
-%$ d_1_3 = dynDate(date_1_3);
-%$ d_2_1 = dynDate(date_2_1);
-%$ d_2_2 = dynDate(date_2_2);
-%$ e1 = d_0_1-d_0_2;
-%$ e2 = d_0_1-d_0_3;
-%$ e3 = d_1_1-d_1_2;
-%$ e4 = d_1_1-d_1_3;
-%$ e5 = d_2_1-d_2_2;
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(e1,0);
-%$ t(2) = dyn_assert(e2,10);
-%$ t(3) = dyn_assert(e3,3);
-%$ t(4) = dyn_assert(e4,41);
-%$ t(4) = dyn_assert(e5,19);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/ne.m b/matlab/@dynDate/ne.m
deleted file mode 100644
index 9114e201c4e98b7f66e1f43537a1af9b7ac0385f..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/ne.m
+++ /dev/null
@@ -1,92 +0,0 @@
-function c = ne(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} ne (@var{a},@var{b})
-%! @anchor{@dynDate/ne}
-%! @sp 1
-%! Overloads the ne (not equal) operator for the Dynare dates class (@ref{dynDate}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! scalar integer equal to one if a~=b, 0 otherwise.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDate::ne: I need exactly two input arguments!')
-end
-
-if ~( isa(a,'dynDate') && isa(b,'dynDate'))
-    error(['dynDate::ne: Input arguments ' inputname(1) 'and ' inputname(2) ' have to be a dynDate objects!'])
-end
-
-if ~isequal(a.freq,b.freq)
-    error(['dynDate::ne: Input arguments ' inputname(1) 'and ' inputname(2) ' have no common frequencies!'])
-end
-
-c = ~isequal(a.time,b.time);
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = '1950q2';
-%$ date_3 = '1950M10';
-%$ date_4 = '1950W50';
-%$ date_5 = '1950W32';
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ try
-%$     What follows should fail because d1 and d2 do not have common frequency
-%$     d1~=d2;
-%$     t1 = 0;
-%$ catch
-%$     t1 = 1;
-%$ end
-%$ i2 = (d2~=d2);
-%$ i3 = (d4~=d5);
-%$
-%$ % Check the results.
-%$ t(1) = t1;
-%$ t(2) = dyn_assert(i2,0);
-%$ t(3) = dyn_assert(i3,1);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/plus.m b/matlab/@dynDate/plus.m
deleted file mode 100644
index 4e624c5d815905e903d8f3a6922901c847b82da8..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/plus.m
+++ /dev/null
@@ -1,107 +0,0 @@
-function c = plus(a,b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{c} =} plus (@var{a},@var{b})
-%! @anchor{@dynDate/plus}
-%! @sp 1
-%! Overloads the plus (addition) operator for the Dynare dates class (@ref{dynDate}). Given an initial date @var{a},
-%! computes a new date @var{c} by adding the number of periods @var{b}.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item b
-%! Positive scalar integer, the number of periods
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item c
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @ref{@@dynDate/eq}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if ~isa(a,'dynDate')
-    error(['dynDate::plus: Input argument ' inputname(1) ' must be a dynDate object!'])
-end
-
-if b<0 || ~isint(b)
-    error(['dynDate::plus: Input argument ' inputname(2) ' must be a positive integer'])
-end
-
-if b==0
-    c = a;
-    return
-end
-
-switch a.freq
-  case 1
-    c = a;
-    c.time(1) = a.time(1) + b - 1;
-  case {4,12,52}
-    c = a;
-    n1 = b + a.time(2);
-    n2 = floor((n1 - 1)/a.freq);
-    n3 = mod(n1 - 1,a.freq) + 1;
-    c.time(2) = n3;
-    c.time(1) = c.time(1)+n2;
-  otherwise
-    error('dynDate::plus: Unknown frequency!')
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = 1950;
-%$ date_2 = '1950Q4';
-%$ date_3 = '2000M3';
-%$
-%$ % Call the tested routine.
-%$ d_1 = dynDate(date_1);
-%$ d_2 = dynDate(date_2);
-%$ d_3 = dynDate(date_3);
-%$
-%$ d1 = d_1+3;
-%$ d2 = d_2+5;
-%$ d3 = d_3+15;
-%$ d4 = d_3+10;
-%$
-%$ % Expected results.
-%$ e1 = dynDate(1952);
-%$ e2 = dynDate('1952Q1');
-%$ e3 = dynDate('2001M6');
-%$ e4 = dynDate('2001M1');
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(e1.time,d1.time);
-%$ t(2) = dyn_assert(e2.time,d2.time);
-%$ t(3) = dyn_assert(e3.time,d3.time);
-%$ t(4) = dyn_assert(e4.time,d4.time);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/subsref.m b/matlab/@dynDate/subsref.m
deleted file mode 100644
index 3db6655973c563647a60b91c2a4caf69918cdd5b..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/subsref.m
+++ /dev/null
@@ -1,241 +0,0 @@
-function B = subsref(A,S) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} subsref (@var{ts},S)
-%! @anchor{@dynDate/subsref}
-%! @sp 1
-%! Overloads the subsref method for the Dynare dates class (@ref{dynDate}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item S
-%! Matlab's structure array S with two fields, type and subs. The type field is string containing '()', '@{@}', or '.', where '()' specifies
-%! integer subscripts, '@{@}' specifies cell array subscripts, and '.' specifies subscripted structure fields. The subs field is a cell array
-%! or a string containing the actual subscripts (see matlab's documentation).
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! A matlab object (public member of the @ref{dynDate} object).
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @sp2
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch S(1).type
-  case '.'
-    switch S(1).subs
-      case 'format'
-        B = format(A);
-      case {'time', 'freq'}
-        if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
-            error(['dynDate::subsref: ' S(1).subs ' is not a method but a member!'])
-        end
-        B = builtin('subsref', A, S(1));
-      otherwise
-        error('dynDate::subsref: Unknown public member of method!')
-    end
-  case '()'
-    switch length(S(1).subs)
-      case 1
-        if ischar(S(1).subs{1})
-            if numel(S(1).subs{1})==1 && isempty(strmatch(S(1).subs{1},{'W','M','Q','Y'},'exact'))
-                error(['dynDate::subsref: To set the frequency, the input argument of dynDate object ''' inputname(1) ''' should be ''W'', ''M'', ''Q'' or ''Y''.'])
-            end
-            % Set the frequency (if numel==1) of an empty dynDate object or set the date (if numel>1).
-            B = dynDate(S(1).subs{1});
-        elseif isnumeric(S(1).subs{1}) && isscalar(S(1).subs{1}) && isint(S(1).subs{1})
-            if (~isnan(A.freq) && A.freq==1) || isnan(A.freq)
-                B = dynDate(S(1).subs{1});
-            else
-                error(['dynDate::subsref: dynDate object ''' inputname(1) ''' was not instantiated for years.'])
-            end
-        else
-            error('dynDate::subsref: Something is wrong in your syntax!')
-        end
-      case 2% Populate an empty dynDate object
-        if isnan(A.freq)
-            error(['dynDate::subsref: I cannot interpret the two inputs of dynDate object ''' inputname(1) ''' because frequency is not set.'])
-        else
-            tmp = [];
-            switch A.freq
-              case 4
-                % Quaterly data
-                if isint(S(1).subs{2}) && isint(S(1).subs{1}) && S(1).subs{2}<5 && S(1).subs{2}>0
-                    tmp = [int2str(S(1).subs{1}), 'Q' int2str(S(1).subs{2})];
-                else
-                    if ~isint(S(1).subs{2}) || ~(S(1).subs{2}<5 && S(1).subs{2}>0)
-                        error(['dynDate::subsref: The second input argument of dynDate object ''' inputname(1) ''' (' num2str(S(1).subs{2})  ') should be a positive integer less than or equal to 4.'])
-                    end
-                    if ~isint(S(1).subs{2})
-                        error(['dynDate::subsref: The first input argument of dynDate object ''' inputname(1) ''' (' num2str(S(1).subs{1})  ') should be an integer.'])
-                    end
-                end
-              case 12
-                % Monthly data
-                if isint(S(1).subs{2}) && isint(S(1).subs{1}) && S(1).subs{2}<13 && S(1).subs{2}>0
-                    tmp = [num2str(S(1).subs{1}), 'M' num2str(S(1).subs{2})];
-                else
-                    if ~isint(S(1).subs{2}) || ~(S(1).subs{2}<13 && S(1).subs{2}>0)
-                        error(['dynDate::subsref: The second input argument of dynDate object ''' inputname(1) ''' (' num2str(S(1).subs{2})  ') should be a positive integer less than or equal to 12.'])
-                    end
-                    if ~isint(S(1).subs{2})
-                        error(['dynDate::subsref: The first input argument of dynDate object ''' inputname(1) ''' (' num2str(S(1).subs{1})  ') should be an integer.'])
-                    end
-                end
-              case 52
-                % Weekly data
-                if isint(S(1).subs{2}) && isint(S(1).subs{1}) && S(1).subs{2}<53 && S(1).subs{2}>0
-                    tmp = [num2str(S(1).subs{1}), 'W' num2str(S(1).subs{2})];
-                else
-                    if ~isint(S(1).subs{2}) || ~(S(1).subs{2}<53 && S(1).subs{2}>0)
-                        error(['dynDate::subsref: The second input argument of dynDate object ''' inputname(1) ''' (' num2str(S(1).subs{2})  ') should be a positive integer less than or equal to 52.'])
-                    end
-                    if ~isint(S(1).subs{2})
-                        error(['dynDate::subsref: The first input argument of dynDate object ''' inputname(1) ''' (' num2str(S(1).subs{1})  ') should be an integer.'])
-                    end                    
-                end
-              case 1
-                % Yearly data
-                error('dynDate::subsref: Frequency is set for years. You should not provide more than one integer input argument (to set the year)!')
-              otherwise
-                error('dynDate::subsref: Unknown frequency!')
-            end
-            if ~isempty(tmp)
-                B = dynDate(tmp);
-            end
-        end
-      otherwise
-        error(['dynDate::subsref: dynDate object ''' inputname(1) ''' cannot have more than two inputs.'])
-    end
-  otherwise
-    error('dynDate::subsref: Something is wrong in your syntax!')
-end
-
-S = shiftS(S);
-if ~isempty(S)
-    B = subsref(B, S);
-end
-
-%@test:1
-%$ t = zeros(3,1);
-%$
-%$ % Instantiate an empty dynDate object
-%$ a = dynDate();
-%$ if all(isnan(a.time)) && isnan(a.freq)
-%$     t(1) = 1;
-%$ end
-%$
-%$ % Populate the empty dynDate object
-%$ try
-%$     a = a('1950Q1');
-%$     if isequal(a.time,[1950 1]) && isequal(a.freq,4)
-%$         t(2) = 1;
-%$     end
-%$ catch
-%$     % Nothing to do here...
-%$ end
-%$
-%$ % "Overwrite" a dynDate object
-%$ try
-%$     a = a('1945Q3');
-%$     if isequal(a.time,[1945 3]) && isequal(a.freq,4)
-%$         t(3) = 1;
-%$     end
-%$ catch
-%$     % Nothing to do here...
-%$ end
-%$
-%$ % Check the results.
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Instantiate a dynDate object
-%$ a = dynDate('1938Q4');
-%$
-%$ % Try to access a non existent (or forbidden) property
-%$ try
-%$     a.Time;
-%$     t = 0;
-%$ catch
-%$     t = 1;
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Try more complex call to overloaded subsref
-%$ t = zeros(3,1);
-%$ try
-%$     a = dynDate('M');
-%$     time = a('1973M1').time;
-%$     t(1) = 1;
-%$     t(2) = dyn_assert(time,[1973,1]);
-%$     t(3) = dyn_assert(a.freq,12);
-%$ catch
-%$     % Nothing to do here.
-%$ end
-%$
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ t = NaN(3,1);
-%$ % Instantiate an empty object for quaterly date
-%$ qq = dynDate('Q');
-%$ % Populate this object
-%$ a = qq(1938,4);
-%$ try
-%$    a = dynDate(1938,11);
-%$    t(3) = 0;
-%$ catch
-%$    t(3) = 1;
-%$ end
-%$
-%$ % Check the results
-%$ t(1) = dyn_assert(a.freq,4);
-%$ t(2) = dyn_assert(a.time,[1938,4]);
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ t = NaN(2,1);
-%$ % Instantiate an empty object for quaterly date
-%$ qq = dynDate('Q');
-%$ % Populate this object and get the time member
-%$ time = qq(1938,4).time;
-%$ 
-%$ % Check the results
-%$ t(1) = dyn_assert(qq.freq,4);
-%$ t(2) = dyn_assert(time,[1938,4]);
-%$ T = all(t);
-%@eof:5
diff --git a/matlab/@dynDate/uminus.m b/matlab/@dynDate/uminus.m
deleted file mode 100644
index 8dc0fdc7c4f7caf642ccd1262e4cf6d846fe4376..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/uminus.m
+++ /dev/null
@@ -1,118 +0,0 @@
-function b = uminus(a) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{b} =} uminus (@var{a})
-%! @anchor{@dynDate/uplus}
-%! @sp 1
-%! Overloads the uminus (unary soustraction) operator for the Dynare dates class (@ref{dynDate}). Decrement the date by one year, quarter,
-%! month or week depending on the frequency.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @ref{dynDate}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if ~isa(a,'dynDate')
-    error(['dynDate::uminus: Input argument ' inputname(1) ' must be a dynDate object.'])
-end
-
-b = dynDate(a);
-
-switch b.freq
-  case 1
-    b.time(1) = b.time(1)-1;
-  case 4
-    if b.time(2)==1
-        b.time(1) = b.time(1)-1;
-        b.time(2) = 4;
-    else
-        b.time(2) = b.time(2)-1;
-    end
-  case 12
-    if b.time(2)==1
-        b.time(1) = b.time(1)-1;
-        b.time(2) = 12;
-    else
-        b.time(2) = b.time(2)-1;
-    end
-  case 52
-    if b.time(2)==1
-        b.time(1) = b.time(1)-1;
-        b.time(2) = 52;
-    else
-        b.time(2) = b.time(2)-1;
-    end
-  otherwise
-    error('dynDate::minus: Unknown frequency!')
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = '1950Q1';
-%$ date_2 = '1950Q4';
-%$ date_3 = '1950M1';
-%$ date_4 = '1950M12';
-%$ date_5 = '1950w1';
-%$ date_6 = '1950W52';
-%$ date_7 = 2000;
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ d6 = dynDate(date_6);
-%$ d7 = dynDate(date_7);
-%$ e1 = -d1;
-%$ e2 = -d2;
-%$ e3 = -d3;
-%$ e4 = -d4;
-%$ e5 = -d5;
-%$ e6 = -d6;
-%$ e7 = -d7;
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(e1.time,[1949 4]);
-%$ t(2) = dyn_assert(e2.time,[1950 3]);
-%$ t(3) = dyn_assert(e3.time,[1949 12]);
-%$ t(4) = dyn_assert(e4.time,[1950 11]);
-%$ t(5) = dyn_assert(e5.time,[1949 52]);
-%$ t(6) = dyn_assert(e6.time,[1950 51]);
-%$ t(7) = dyn_assert(e7.time,[1999 1]);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDate/uplus.m b/matlab/@dynDate/uplus.m
deleted file mode 100644
index c742d49ea98f476f0460f09fd36b4a6fc6b0c6a3..0000000000000000000000000000000000000000
--- a/matlab/@dynDate/uplus.m
+++ /dev/null
@@ -1,118 +0,0 @@
-function b = uplus(a) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{b} =} uplus (@var{a})
-%! @anchor{@dynDate/uplus}
-%! @sp 1
-%! Overloads the uplus (unary addition) operator for the Dynare dates class (@ref{dynDate}). Increment the date by one year, quarter,
-%! month or week depending on the frequency.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item b
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @ref{dynDate}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if ~isa(a,'dynDate')
-    error(['dynDate::uplus: Input argument ' inputname(1) ' must be a dynDate object.'])
-end
-
-b = dynDate(a);
-
-switch b.freq
-  case 1
-    b.time(1) = b.time(1)+1;
-  case 4
-    if b.time(2)==4% Happy new year!
-        b.time(1) = b.time(1)+1;
-        b.time(2) = 1;
-    else
-        b.time(2) = b.time(2)+1;
-    end
-  case 12
-    if b.time(2)==12% Happy new year!
-        b.time(1) = b.time(1)+1;
-        b.time(2) = 1;
-    else
-        b.time(2) = b.time(2)+1;
-    end
-  case 52
-    if b.time(2)==52% Happy new year!
-        b.time(1) = b.time(1)+1;
-        b.time(2) = 1;
-    else
-        b.time(2) = b.time(2)+1;
-    end
-  otherwise
-    error('dynDate::uplus: Unknown frequency!')
-end
-
-%@test:1
-%$ % Define some dates
-%$ date_1 = '1950Q3';
-%$ date_2 = '1950Q4';
-%$ date_3 = '1950M3';
-%$ date_4 = '1950m12';
-%$ date_5 = '1950W3';
-%$ date_6 = '1950W52';
-%$ date_7 = 2000;
-%$
-%$ % Call the tested routine.
-%$ d1 = dynDate(date_1);
-%$ d2 = dynDate(date_2);
-%$ d3 = dynDate(date_3);
-%$ d4 = dynDate(date_4);
-%$ d5 = dynDate(date_5);
-%$ d6 = dynDate(date_6);
-%$ d7 = dynDate(date_7);
-%$ e1 = +d1;
-%$ e2 = +d2;
-%$ e3 = +d3;
-%$ e4 = +d4;
-%$ e5 = +d5;
-%$ e6 = +d6;
-%$ e7 = +d7;
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(e1.time,[1950 4]);
-%$ t(2) = dyn_assert(e2.time,[1951 1]);
-%$ t(3) = dyn_assert(e3.time,[1950 4]);
-%$ t(4) = dyn_assert(e4.time,[1951 1]);
-%$ t(5) = dyn_assert(e5.time,[1950 4]);
-%$ t(6) = dyn_assert(e6.time,[1951 1]);
-%$ t(7) = dyn_assert(e7.time,[2001 1]);
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dynDates/eq.m b/matlab/@dynDates/eq.m
deleted file mode 100644
index e0d4f4d7ccccd3885e0f003503c10b91a1b8cfb3..0000000000000000000000000000000000000000
--- a/matlab/@dynDates/eq.m
+++ /dev/null
@@ -1,80 +0,0 @@
-function C = eq(A,B) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{C} =} eq (@var{A},@var{B})
-%! @anchor{@dynDates/eq}
-%! @sp 1
-%! Overloads the eq (equal) operator for the @ref{dynDates} class.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! @ref{dynDates} object.
-%! @item B
-%! @ref{dynDates} object.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item C
-%! scalar integer equal to one if a==b, 0 otherwise.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDates::eq: I need exactly two input arguments!')
-end
-
-if ~isa(A,'dynDates') || ~isa(B,'dynDates')
-    error(['dynDates::eq: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be a dynDates objects!'])
-end
-
-if ~isequal(A.freq,B.freq)
-    C = 0;
-    return
-end
-
-if ~isequal(A.ndat,B.ndat)
-    C = 0;
-    return
-end
-
-C = isequal(A.time,B.time);
-
-%@test:1
-%$ % Define some dynDates objects
-%$ d1 = dynDate('1950Q1'):dynDate('1959Q4') ;
-%$ d2 = dynDate('1960Q1'):dynDate('1979Q4') ;
-%$ d3 = dynDate('1970M1'):dynDate('1979M12') ;
-%$
-%$ % Call the tested routine.
-%$ t1 = d1==d1;
-%$ t2 = d1==d2;
-%$ t3 = d1==d3;
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(t1,1);
-%$ t(2) = dyn_assert(t2,0);
-%$ t(2) = dyn_assert(t3,0);
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDates/getDatesCellStringArray.m b/matlab/@dynDates/getDatesCellStringArray.m
deleted file mode 100644
index 4b7b16546f3481dac65a84020ec89ad6acfeb537..0000000000000000000000000000000000000000
--- a/matlab/@dynDates/getDatesCellStringArray.m
+++ /dev/null
@@ -1,53 +0,0 @@
-function m = getDatesCellStringArray(dd)
-%function m = getDatesCellStringArray(dd)
-% Returns a cell array of strings containing the dates
-%
-% INPUTS
-%   dd - dynDates object
-%
-% OUTPUTS
-%   m  - cell array of strings
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-dateSep = '';
-switch dd.freq
-    case 1
-    case 4
-        dateSep = 'q';
-    case 12
-        dateSep = 'm';
-    case 52
-        dateSep = 'w';
-    otherwise
-        error('Unknown frequency %d', dd.freq);
-end
-
-m = cell(0);
-for i = 1:dd.ndat
-    if isempty(dateSep)
-        newdate = num2str(dd.time(i,1));
-    else
-        newdate = [num2str(dd.time(i,1)) dateSep num2str(dd.time(i,2))];
-    end
-    m = { m{:} newdate };
-end
-end
\ No newline at end of file
diff --git a/matlab/@dynDates/plus.m b/matlab/@dynDates/plus.m
deleted file mode 100644
index 25a8f6e7858c10e516f7cb1e0ecaf2d5af2d6899..0000000000000000000000000000000000000000
--- a/matlab/@dynDates/plus.m
+++ /dev/null
@@ -1,87 +0,0 @@
-function C = plus(A,B) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{C} =} plus (@var{A},@var{B})
-%! @anchor{@dynDates/plus}
-%! @sp 1
-%! Overloads the plus (addition) operator for the @ref{dynDates} class. Combines two dynDates objects, A and B, without removing repetitions
-%! if A and B are not disjoints.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! @ref{dynDates} object.
-%! @item B
-%! @ref{dynDates} object.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item C
-%! @ref{dynDates} object.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if ~isa(A,'dynDates') || ~isa(B,'dynDates')
-    error(['dynDates::plus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' must be dynDates objects!'])
-end
-
-if isempty(B)
-    C = A;
-    return
-end
-
-if isempty(A)
-    C = B;
-    return
-end
-
-if ~isequal(A.freq,B.freq)
-    error(['dynDates::plus: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' must have common frequencies!'])
-end
-
-C = dynDates();
-
-C.freq = A.freq;
-C.time = [A.time; B.time];
-C.ndat = A.ndat+B.ndat;
-
-%@test:1
-%$ % Define some dynDates objects
-%$ d1 = dynDate('1950Q1'):dynDate('1959Q4') ;
-%$ d2 = dynDate('1960Q1'):dynDate('1969Q4') ;
-%$ d3 = dynDate('1970Q1'):dynDate('1979Q4') ;
-%$
-%$ % Call the tested routine.
-%$ e1 = d1+d2;
-%$ e2 = d1+d2+d3;
-%$
-%$ % Expected results.
-%$ f1 = dynDate('1950Q1'):dynDate('1969Q4');
-%$ f2 = dynDate('1950Q1'):dynDate('1979Q4');
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(e1==f1,1);
-%$ t(2) = dyn_assert(e2==f2,1);
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDates/pop.m b/matlab/@dynDates/pop.m
deleted file mode 100644
index 5c0885d8361746c209fd2942a752c0f1829d4c4d..0000000000000000000000000000000000000000
--- a/matlab/@dynDates/pop.m
+++ /dev/null
@@ -1,107 +0,0 @@
-function dd = pop(dd,a) % --*-- Unitary tests --*--
-
-% pop method for dynDates class (removes a date)).
-
-%@info:
-%! @deftypefn {Function File} {@var{dd} =} pop (@var{dd}, @var{a})
-%! @anchor{dynDates/pop}
-%! @sp 1
-%! Pop method for the Dynare dates class. Removes a date from a dynDates object, by default the laste date is removed.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item dd
-%! Object instantiated by @ref{dynDates}.
-%! @item a
-%! Object instantiated by @ref{dynDate}, date to be removed.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item dd
-%! Object instantiated by @ref{dynDates}, without date (@var{a}).
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
-
-if ~isa(dd,'dynDates')
-    error(['dynDates::pop: Input argument ' inputname(1) ' has to be a dynDates object.'])
-end
-
-if nargin<2
-    % Remove last date
-    dd.time = dd.time(1:end-1,:);
-    dd.ndat = dd.ndat-1;
-    return
-end
-
-if nargin>1 && ~(isa(a,'dynDate') || ischar(a))
-    error(['dynDates::pop: Input argument ' inputname(2) ' has to be a dynDate object or a string (formatted date).'])
-end
-
-if ~isa(a,'dynDate')
-    a = dynDate(a);
-end
-
-idx = find(~all(transpose(bsxfun(@eq,dd.time,a.time))));    
-dd.time = dd.time(idx,:);
-dd.ndat = size(dd.time,1);
-
-%@test:1
-%$ % Define some dates
-%$ B1 = '1953Q4';
-%$ B2 = '1950Q2';
-%$ B3 = '1950Q1';
-%$ B4 = '1945Q3';
-%$ B5 = '2009Q2';
-%$
-%$ % Define expected results
-%$ e.time = [1945 3; 1950 1; 1950 2; 1953 4; 2009 2];
-%$ e.freq = 4;
-%$ e.ndat = 5;
-%$
-%$ % Call the tested routine
-%$ d = dynDates(B4,B3,B2,B1);
-%$ d = d.append(dynDate(B5));
-%$ f = d.pop();
-%$ t(1) = dyn_assert(f.time,e.time(1:end-1,:));
-%$ t(2) = dyn_assert(f.freq,e.freq);
-%$ t(3) = dyn_assert(f.ndat,e.ndat-1);
-%$ f = d.pop(B1);
-%$ t(4) = dyn_assert(f.time,[1945 3; 1950 1; 1950 2; 2009 2]);
-%$ t(5) = dyn_assert(f.freq,e.freq);
-%$ t(6) = dyn_assert(f.ndat,e.ndat-1);
-%$ f = d.pop(dynDate(B1));
-%$ t(7) = dyn_assert(f.time,[1945 3; 1950 1; 1950 2; 2009 2]);
-%$ t(8) = dyn_assert(f.freq,e.freq);
-%$ t(9) = dyn_assert(f.ndat,e.ndat-1);
-%$
-%$ % Check the results.
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDates/subsasgn.m b/matlab/@dynDates/subsasgn.m
deleted file mode 100644
index 48390975692e2d136064b8a006442a2750b7150e..0000000000000000000000000000000000000000
--- a/matlab/@dynDates/subsasgn.m
+++ /dev/null
@@ -1,20 +0,0 @@
-function val = subsasgn(val, idx, rhs)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-error('dynDates::subsasgn: Members of dynDates class are private')
\ No newline at end of file
diff --git a/matlab/@dynDates/subsref.m b/matlab/@dynDates/subsref.m
deleted file mode 100644
index fab2cce0335b2e14d3636d9975322c1de88b288c..0000000000000000000000000000000000000000
--- a/matlab/@dynDates/subsref.m
+++ /dev/null
@@ -1,164 +0,0 @@
-function B = subsref(A,S) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} subsref (@var{ts},S)
-%! @anchor{dynDates/subsref}
-%! @sp 1
-%! Overloads the subsref method for the Dynare dates class (@ref{dynDates}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare date object instantiated by @ref{dynDate}.
-%! @item S
-%! Matlab's structure array S with two fields, type and subs. The type field is string containing '()', '@{@}', or '.', where '()' specifies
-%! integer subscripts, '@{@}' specifies cell array subscripts, and '.' specifies subscripted structure fields. The subs field is a cell array
-%! or a string containing the actual subscripts (see matlab's documentation).
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! A matlab object (public member of the @ref{dynDates} object).
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @sp 2
-%! @strong{This function calls:}
-%! @sp2
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch S(1).type
-  case '.'
-    switch S(1).subs
-      case {'time','freq','ndat'}% Access public members.
-        if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
-            error(['dynDates::subsref: ' S(1).subs ' is not a method but a member!'])
-        end
-        B = builtin('subsref', A, S(1));
-      case {'sort','unique'}% Public methods (without arguments)
-        B = feval(S(1).subs,A);
-        if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
-           S = shiftS(S);
-        end
-      case {'append','pop'}% Public methods (with arguments).
-        if isequal(S(2).type,'()')
-            B = feval(S(1).subs,A,S(2).subs{:});
-            S = shiftS(S);
-        else
-            error('dynDates::subsref: Something is wrong in your syntax!')
-        end
-      otherwise
-        error('dynDates::subsref: Unknown public member or method!')
-    end
-  case '()'
-    if isscalar(S(1).subs{1})
-        if isint(S(1).subs{1}) && S(1).subs{1}>0 && S(1).subs{1}<=A.ndat
-            B = dynDate(A.time(S(1).subs{1},:),A.freq);
-        else
-            error(['dynDates::subsref: the index has to be a positive integer less than or equal to ' int2str(A.ndat) '!'])
-        end
-    else
-        if isvector(S(1).subs{1}) && all(isint(S(1).subs{1})) && all(S(1).subs{1}>0) && all(S(1).subs{1}<=A.ndat)
-            B = dynDates();
-            B.freq = A.freq;
-            B.time = A.time(S(1).subs{1},:);
-            B.ndat = length(S(1).subs{1});
-        else
-            error(['dynDates::subsref: indices has to be a vector of positive integers less than or equal to ' int2str(A.ndat) '!'])
-        end
-    end
-  otherwise
-    error('dynDates::subsref: Something is wrong in your syntax!')
-end
-
-S = shiftS(S);
-if ~isempty(S)
-    B = subsref(B, S);
-end
-
-%@test:1
-%$ % Define a dynDates object
-%$ B = dynDate('1950Q1'):dynDate('1960Q3');
-%$
-%$ % Try to extract a sub-dynDates object.
-%$ d = B(2:3);
-%$
-%$ if isa(d,'dynDates')
-%$     t(1) = 1;
-%$ else
-%$     t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$     t(2) = dyn_assert(d.freq,B.freq);
-%$     t(3) = dyn_assert(d.time,[1950 2; 1950 3]);
-%$     t(4) = dyn_assert(d.ndat,2);
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a dynDates object
-%$ B = dynDate('1950Q1'):dynDate('1960Q3');
-%$
-%$ % Try to extract a sub-dynDates object and apply a method
-%$ 
-%$ d = B(2:3).sort ;
-%$
-%$ if isa(d,'dynDates')
-%$     t(1) = 1;
-%$ else
-%$     t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$     t(2) = dyn_assert(d.freq,B.freq);
-%$     t(3) = dyn_assert(d.time,[1950 2; 1950 3]);
-%$     t(4) = dyn_assert(d.ndat,2);
-%$ end
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Define a dynDates object
-%$ B = dynDate('1950Q1'):dynDate('1960Q3');
-%$
-%$ % Try to extract a sub-dynDates object and apply a method
-%$
-%$ d = B(2:3).sort() ;
-%$
-%$ if isa(d,'dynDates')
-%$     t(1) = 1;
-%$ else
-%$     t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$     t(2) = dyn_assert(d.freq,B.freq);
-%$     t(3) = dyn_assert(d.time,[1950 2; 1950 3]);
-%$     t(4) = dyn_assert(d.ndat,2);
-%$ end
-%$ T = all(t);
-%@eof:2
\ No newline at end of file
diff --git a/matlab/@dynDates/union.m b/matlab/@dynDates/union.m
deleted file mode 100644
index 59eab7e2832dd7eaa1060a256a5f43905433c6fd..0000000000000000000000000000000000000000
--- a/matlab/@dynDates/union.m
+++ /dev/null
@@ -1,84 +0,0 @@
-function C = union(A,varargin) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{C} =} union (@var{A},@var{B})
-%! @anchor{dynDates/union}
-%! @sp 1
-%! Union method for the Dynare dates class (removes repetitions if any). Dates in C are sorted in increasing order.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Object instantiated by @ref{dynDates}.
-%! @item B
-%! Object instantiated by @ref{dynDates}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item C
-%! Object instantiated by @ref{dynDates}.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if ~isa(A,'dynDates')  
-    error(['dynDates::union: Input argument ''' inputname(1) '''   has to be a dynDates object!'])
-end
-
-C = A;
-
-if ~length(varargin)
-    return;
-end
-
-for i=1:length(varargin)
-    if isa(varargin{i},'dynDates')
-        C = C + varargin{i};
-    else
-        error(['dynDates::union: Input argument ''' inputname(i) '''   has to be a dynDates object!'])
-    end
-end
-
-C = sort(unique(C));
-
-%@test:1
-%$ % Define some dynDates objects
-%$ d1 = dynDate('1950Q1'):dynDate('1959Q4') ;
-%$ d2 = dynDate('1960Q1'):dynDate('1969Q4') ;
-%$ d3 = dynDate('1970Q1'):dynDate('1979Q4') ;
-%$
-%$ % Call the tested routine.
-%$ e1 = union(d1);
-%$ e2 = union(d1,d2);
-%$ e3 = union(d1,d2,d3);
-%$ e4 = union(d1,d2,d3,d2+d3);
-%$ e5 = union(d1,d2,d3,d2);
-%$
-%$ % Check the results.
-%$ t(1) = dyn_assert(e1==d1,1);
-%$ t(2) = dyn_assert(e2==d1+d2,1);
-%$ t(3) = dyn_assert(e3==d1+d2+d3,1);
-%$ t(4) = dyn_assert(e4==d1+d2+d3,1);
-%$ t(5) = dyn_assert(e5==d1+d2+d3,1);
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynSeries/display.m b/matlab/@dynSeries/display.m
deleted file mode 100644
index 155755ed372c22804f21dc1e859e93bb8ecd7b77..0000000000000000000000000000000000000000
--- a/matlab/@dynSeries/display.m
+++ /dev/null
@@ -1,65 +0,0 @@
-function display(A)
-%@info:
-%! @deftypefn {Function File} display (@var{A})
-%! @anchor{@dynSeries/display}
-%! @sp 1
-%! Overloads the disp method for the Dynare time series class (@ref{dynSeries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object instantiated by @ref{dynSeries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! None
-%! @end deftypefn
-%@eod:
-
-vspace = ' ';
-TABLE = ' ';
-
-if A.nobs<=40
-    separator = repmat(' | ',A.nobs+1,1);
-    for t=1:A.nobs
-        TABLE = char(TABLE, format(A.time(t)));
-    end
-    for i = 1:A.vobs
-        TABLE = horzcat(TABLE,separator);
-        tmp = A.name{i};
-        for t=1:A.nobs
-            tmp = char(tmp,num2str(A.data(t,i)));
-        end
-        TABLE = horzcat(TABLE, tmp);
-    end
-else
-    n = 10;
-    separator = repmat(' | ',2*n+3,1);
-    for t=1:n
-        TABLE = char(TABLE, format(A.time(t)));
-    end
-    TABLE = char(TABLE,vspace);
-    for t = A.nobs-n:A.nobs
-        TABLE = char(TABLE, format(A.time(t)));
-    end
-    for i=1:A.vobs
-        TABLE = horzcat(TABLE,separator);
-        tmp = A.name{i};
-        for t=1:10
-            tmp = char(tmp,num2str(A.data(t,i)));
-        end
-        tmp = char(tmp,vspace);
-        for t=A.nobs-10:A.nobs
-            tmp = char(tmp,num2str(A.data(t,i)));
-        end
-        TABLE = horzcat(TABLE, tmp);
-    end
-end
-
-disp(vspace)
-disp([inputname(1) ' is a dynSeries object:'])
-disp(vspace);
-disp(TABLE);
-disp(vspace);
\ No newline at end of file
diff --git a/matlab/@dynSeries/eq.m b/matlab/@dynSeries/eq.m
deleted file mode 100644
index 2906f1c90d806c899fa30af2b388f4d24b1f19a2..0000000000000000000000000000000000000000
--- a/matlab/@dynSeries/eq.m
+++ /dev/null
@@ -1,74 +0,0 @@
-function C = eq(A,B) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{C} =} eq (@var{A},@var{B})
-%! @anchor{@dynSeries/eq}
-%! @sp 1
-%! Overloads the eq (equal) operator for the @ref{dynSeries} class.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! @ref{dynSeries} object.
-%! @item B
-%! @ref{dynSeries} object.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item C
-%! scalar integer equal to one if a==b, 0 otherwise.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if nargin~=2
-    error('dynDates::eq: I need exactly two input arguments!')
-end
-
-C = isequal(A,B);
-
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'A3'};
-%$
-%$ t = zeros(2,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$    ts1 = dynSeries(A,[],A_name,[]);
-%$    ts2 = ts1;
-%$    a = isequal(ts1,ts2);
-%$    t(1) = 1;
-%$ catch
-%$    t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$    t(2) = dyn_assert(a,1);
-%$ end
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynSeries/private/horzcat2.m b/matlab/@dynSeries/private/horzcat2.m
deleted file mode 100644
index b25728f486f1a79dd153d83f35e1137067e47dfe..0000000000000000000000000000000000000000
--- a/matlab/@dynSeries/private/horzcat2.m
+++ /dev/null
@@ -1,112 +0,0 @@
-function a = horzcat2(b,c)
-
-%@info:
-%! @deftypefn {Function file} {@var{a} =} horzcat2 (@var{b},@var{c}, ...)
-%! @anchor{private/horzcat2}
-%! @sp 1
-%! Private method of the dynSeries class.
-%! @sp 1
-%! Merge two Dynare time series objects. This method overloads the horizontal concatenation operator, so that
-%! two time series objects can be merged using the following syntax
-%!
-%!     a = [b, c];
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item b
-%! Dynare time series object, instantiated by @ref{dynSeries}.
-%! @item c
-%! Dynare time series object, instantiated by @ref{dynSeries}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item a
-%! Dynare time series object.
-%! @end table
-%! @sp 2
-%! @strong{This function is called by:}
-%! @ref{descriptive_statistics}
-%!
-%! @strong{This function calls:}
-%! @ref{dynSeries}
-%!
-%! @strong{Remark 1.} It is assumed that the two time series objects have the same frequencies. The two time series objects can cover
-%! different time ranges.
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-[n,message] = common_strings_in_cell_arrays(b.name,c.name);
-if n
-    error(['dynSeries::horzcat: I cannot concatenate dynSeries objects with common variable names (' message ')!'])
-end
-    
-if b.freq ~= c.freq
-    error('dynSeries::horzcat: All time series objects must have common frequency!')
-else
-    a = dynSeries();
-    a.freq = b.freq;
-end
-
-d_nobs_flag = 0;
-if b.nobs ~= c.nobs
-    d_nobs_flag = 1;
-else
-    a.nobs = b.nobs;
-end
-
-d_init_flag = 0;
-if ~isequal(b.init,c.init)
-    d_init_flag = 1;
-end
-
-a.vobs = b.vobs+c.vobs;
-a.name = vertcat(b.name,c.name);
-a.tex  = vertcat(b.tex,c.tex);
-
-if ~( d_nobs_flag(1) || d_init_flag(1) )
-    a.init = b.init;
-    a.data = [b.data,c.data];
-    a.time = b.time;
-else
-    if b.init<=c.init
-        a.init = b.init;
-        if b.init<c.init
-            c.data = [NaN(c.init-b.init,c.vobs); c.data];
-        end
-    else
-        a.init = c.init;
-        b_first_lines = b.init-c.init;
-        b.data = [NaN(b.init-c.init,b.vobs); b.data];
-    end
-    b_last_date = b.init+b.nobs;
-    c_last_date = c.init+c.nobs;
-    if b_last_date<c_last_date
-        b.data = [b.data; NaN(c_last_date-b_last_date,b.vobs)];
-    elseif b_last_date>c_last_date
-        c.data = [c.data; NaN(b_last_date-c_last_date,c.vobs)];
-    end
-    a.data = [b.data, c.data];
-    a.time = unique(b.time.append(c.time));
-end
-a.nobs = size(a.data,1);
diff --git a/matlab/@dynTimeIndex/dynTimeIndex.m b/matlab/@dynTimeIndex/dynTimeIndex.m
index f310d96cb80f5cf0b34ac9869a097fa1d84d7acf..323122c4b50d519c33acfe9784335c9636696cdd 100644
--- a/matlab/@dynTimeIndex/dynTimeIndex.m
+++ b/matlab/@dynTimeIndex/dynTimeIndex.m
@@ -11,8 +11,8 @@ function t = dynTimeIndex() % --*-- Unitary tests --*--
 %  * t, dynTimeIndex object.
 %
 % DESCRIPTION:
-%  The dynTimeIndex object is used to shift backward or forward dynSeries objects. For instance, if ts
-%  is a dynSeries object and t is a dynTimeIndex object then the following expressions are equivalent:
+%  The dynTimeIndex object is used to shift backward or forward dseries objects. For instance, if ts
+%  is a dseries object and t is a dynTimeIndex object then the following expressions are equivalent:
 %
 %      us = ts.lag()
 %      us = ts.lag(1)
diff --git a/matlab/@dynTimeIndex/mpower.m b/matlab/@dynTimeIndex/mpower.m
index 81cfb3cfd9bed61d85552fc25fcb508a7b590f66..c4077caaa25059fe484f49b8b5fc8370705b3ddd 100644
--- a/matlab/@dynTimeIndex/mpower.m
+++ b/matlab/@dynTimeIndex/mpower.m
@@ -21,8 +21,8 @@ function C = mpower(A,B) % --*-- Unitary tests --*--
 %  >>
 %
 %  EXAMPLE 2 :
-%  This method can be used to apply the lead and lag methods an arbitrary number of times to a dynSeries object. For instance, if 
-%  ts is a dynSeries object, and if we define
+%  This method can be used to apply the lead and lag methods an arbitrary number of times to a dseries object. For instance, if 
+%  ts is a dseries object, and if we define
 % 
 %  >> B = dynTimeIndex()-1;
 %  >> F = dynTimeIndex()+1;
diff --git a/matlab/CheckPath.m b/matlab/CheckPath.m
index 7e6c89f811673a3cc9c3f5983085a097e38dfe67..c8300551307d7887bc118e9657bf2de7cde86ec8 100644
--- a/matlab/CheckPath.m
+++ b/matlab/CheckPath.m
@@ -1,4 +1,4 @@
-function DirectoryName = CheckPath(type,dname)
+function [DirectoryName, info] = CheckPath(type,dname)
 % Creates the subfolder "./M_.dname/type" if it does not exist yet.
 %
 % INPUTS
@@ -6,12 +6,13 @@ function DirectoryName = CheckPath(type,dname)
 %    dname  [string]    Name of the directory
 %
 % OUTPUTS
-%    none.
+%    DirectoryName      string, name of the directory (with path).
+%    info               integer scalar, equal to 1 if the routine creates directory dname/type, zero otherwise.
 %
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2005-2012 Dynare Team
+% Copyright (C) 2005-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,6 +29,8 @@ function DirectoryName = CheckPath(type,dname)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+info = 0;
+
 DirectoryName = [ dname '/' type ];
 
 if ~isdir(dname)
@@ -44,4 +47,5 @@ if ~isdir(DirectoryName)
         delete(DirectoryName)
     end
     mkdir('.',DirectoryName);
+    info = 1;
 end
diff --git a/matlab/CutSample.m b/matlab/CutSample.m
index e0a2b16ecb3170ca7b70a38c54e3c9cceb7521d5..55bad478e188c4cc7c0438041010fb8cc2606fb3 100644
--- a/matlab/CutSample.m
+++ b/matlab/CutSample.m
@@ -33,17 +33,22 @@ function CutSample(M_, options_, estim_params_)
 
 npar = estim_params_.np+estim_params_.nvn+estim_params_.ncx+estim_params_.ncn+estim_params_.nvx;
 
-DirectoryName = CheckPath('metropolis',M_.dname);
-file = dir([ DirectoryName ,filesep,  M_.fname '_mh_history.mat']);
-files = dir([ DirectoryName ,filesep, M_.fname '_mh*.mat' ]);
-if ~length(files)
-    error('MH:: FAILURE! there is no MH file to load here!')
-end
-if ~length(file)
-    error('MH:: FAILURE! there is no MH-history file!')
-else
-    load([ DirectoryName '/'  M_.fname '_mh_history.mat'])
+% Get the path to the metropolis files.
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+
+% Get the (base) name of the mod file.
+ModelName = M_.fname;
+
+% Load the last mh-history file.
+load_last_mh_history_file(MetropolisFolder, M_.fname);
+
+% Get the list of files where the mcmc draw are saved.
+mh_files = dir([ MetropolisFolder ,filesep, M_.fname '_mh*.mat' ]);
+
+if ~length(mh_files)
+    error('Estimation::mcmc: I can''t find MH file to load here!')
 end
+
 TotalNumberOfMhFiles = sum(record.MhDraws(:,2));
 TotalNumberOfMhDraws = sum(record.MhDraws(:,1));
 MAX_nruns = ceil(options_.MaxNumberOfBytes/(npar+2)/8);
@@ -61,10 +66,13 @@ elseif TotalNumberOfMhFiles == 1
 elseif TotalNumberOfMhFiles == 2 && FirstMhFile > 1
     record.KeepedDraws.Distribution = [MAX_nruns-FirstLine+1 ; record.MhDraws(end,3)];  
 end
-save([DirectoryName '/' M_.fname '_mh_history.mat'],'record');
-fprintf('MH: Total number of MH draws: %d.\n',TotalNumberOfMhDraws);
-fprintf('MH: Total number of generated MH files: %d.\n',TotalNumberOfMhFiles);
-fprintf('MH: I''ll use mh-files %d to %d.\n',FirstMhFile,TotalNumberOfMhFiles);
-fprintf('MH: In MH-file number %d I''ll start at line %d.\n',FirstMhFile,FirstLine);
-fprintf('MH: Finally I keep %d draws.\n',TotalNumberOfMhDraws-FirstDraw);
-skipline()
+
+% Save updated mh-history file.
+update_last_mh_history_file(MetropolisFolder, ModelName, record);
+
+fprintf('Estimation::mcmc: Total number of MH draws: %d.\n',TotalNumberOfMhDraws);
+fprintf('Estimation::mcmc: Total number of generated MH files: %d.\n',TotalNumberOfMhFiles);
+fprintf('Estimation::mcmc: I''ll use mh-files %d to %d.\n',FirstMhFile,TotalNumberOfMhFiles);
+fprintf('Estimation::mcmc: In MH-file number %d I''ll start at line %d.\n',FirstMhFile,FirstLine);
+fprintf('Estimation::mcmc: Finally I keep %d draws.\n',TotalNumberOfMhDraws-FirstDraw);
+skipline()
\ No newline at end of file
diff --git a/matlab/DsgeSmoother.m b/matlab/DsgeSmoother.m
index 2fc6146be5548c6b572c2e6b1653a7f89bea02c7..d66e77a69b60fa9380bd5d5a49e322aac66f001b 100644
--- a/matlab/DsgeSmoother.m
+++ b/matlab/DsgeSmoother.m
@@ -74,7 +74,7 @@ bayestopt_.mf = bayestopt_.smoother_mf;
 if options_.noconstant
     constant = zeros(nobs,1);
 else
-    if options_.loglinear == 1
+    if options_.loglinear
         constant = log(SteadyState(bayestopt_.mfys));
     else
         constant = SteadyState(bayestopt_.mfys);
@@ -116,7 +116,15 @@ if options_.lik_init == 1               % Kalman filter
     if kalman_algo ~= 2
         kalman_algo = 1;
     end
-    Pstar = lyapunov_symm(T,R*Q*transpose(R),options_.qz_criterium,options_.lyapunov_complex_threshold);
+	if options_.lyapunov_fp == 1
+        Pstar = lyapunov_symm(T,Q,options_.lyapunov_fixed_point_tol,options_.lyapunov_complex_threshold, 3, R);
+    elseif options_.lyapunov_db == 1
+        Pstar = disclyap_fast(T,R*Q*R',options_.lyapunov_doubling_tol);
+    elseif options_.lyapunov_srs == 1
+        Pstar = lyapunov_symm(T,Q,options_.lyapunov_fixed_point_tol,options_.lyapunov_complex_threshold, 4, R);
+    else
+        Pstar = lyapunov_symm(T,R*Q*R',options_.qz_criterium,options_.lyapunov_complex_threshold);
+    end;
     Pinf        = [];
 elseif options_.lik_init == 2           % Old Diffuse Kalman filter
     if kalman_algo ~= 2
diff --git a/matlab/GetPosteriorMeanVariance.m b/matlab/GetPosteriorMeanVariance.m
index b5a1f3439efa2893eab796150a6c1c25ba3e1104..e364180917773afc7730d116b748aeca6c7047f1 100644
--- a/matlab/GetPosteriorMeanVariance.m
+++ b/matlab/GetPosteriorMeanVariance.m
@@ -1,6 +1,6 @@
 function [mean,variance] = GetPosteriorMeanVariance(M,drop)
 
-% Copyright (C) 2012 Dynare Team
+% Copyright (C) 2012, 2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -17,27 +17,28 @@ function [mean,variance] = GetPosteriorMeanVariance(M,drop)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
     
-    DirectoryName = CheckPath('metropolis',M.dname);
-    o=load([ DirectoryName '/'  M.fname '_mh_history']);
-    NbrDraws = sum(o.record.MhDraws(:,1));
-    NbrFiles = sum(o.record.MhDraws(:,2));
-    NbrBlocks = o.record.Nblck;
+    MetropolisFolder = CheckPath('metropolis',M.dname);
+    FileName = M.fname;
+    BaseName = [MetropolisFolder filesep FileName];
+    load_last_mh_history_file(MetropolisFolder, FileName);
+    NbrDraws = sum(record.MhDraws(:,1));
+    NbrFiles = sum(record.MhDraws(:,2));
+    NbrBlocks = record.Nblck;
     mean = 0;
     variance = 0;
     z = [];
     
-    fname1 = [DirectoryName '/' M.fname];
     nkept = 0;
     for i=1:NbrBlocks
         n = 0;
         for j=1:NbrFiles
-            o = load([fname1 '_mh' int2str(j) '_blck' int2str(i)]);
+            o = load([BaseName '_mh' int2str(j) '_blck' int2str(i)]);
             m = size(o.x2,1);
             if n + m < drop*NbrDraws
                 n = n + m;
                 continue
             elseif n < drop*NbrDraws
-                k = drop*NbrDraws - n + 1;
+                k = ceil(drop*NbrDraws - n + 1);
                 x2 = o.x2(k:end,:);
             else
                 x2 = o.x2;
@@ -51,5 +52,3 @@ function [mean,variance] = GetPosteriorMeanVariance(M,drop)
             nkept = nkept + p;
         end
     end
-    
-    
\ No newline at end of file
diff --git a/matlab/GetPosteriorParametersStatistics.m b/matlab/GetPosteriorParametersStatistics.m
index 316d2c6594c95ecc38845bb5cf6d0ab02cb2893f..f92c2629ec4286316f796f1db242aab11eb25eef 100644
--- a/matlab/GetPosteriorParametersStatistics.m
+++ b/matlab/GetPosteriorParametersStatistics.m
@@ -45,10 +45,12 @@ ncn     = estim_params_.ncn;
 np      = estim_params_.np ;
 nx      = nvx+nvn+ncx+ncn+np;
 
-DirectoryName = CheckPath('metropolis',M_.dname);
-OutputDirectoryName = CheckPath('Output',M_.dname);
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+OutputFolder = CheckPath('Output',M_.dname);
+FileName = M_.fname;  
+
+load_last_mh_history_file(MetropolisFolder,FileName);
 
-load([ DirectoryName '/'  M_.fname '_mh_history'])
 FirstMhFile = record.KeepedDraws.FirstMhFile;
 FirstLine = record.KeepedDraws.FirstLine;
 TotalNumberOfMhFiles = sum(record.MhDraws(:,2));
@@ -76,7 +78,7 @@ end
 if np
     type = 'parameters';
     if TeX
-        fid = TeXBegin(OutputDirectoryName,M_.fname,1,type);
+        fid = TeXBegin(OutputFolder,M_.fname,1,type);
     end
     skipline()
     disp(type)
@@ -121,7 +123,7 @@ end
 if nvx
     type = 'shocks_std';
     if TeX
-        fid = TeXBegin(OutputDirectoryName,M_.fname,2,'standard deviation of structural shocks');
+        fid = TeXBegin(OutputFolder,FileName,2,'standard deviation of structural shocks');
     end
     ip = 1;
     skipline()
@@ -167,7 +169,7 @@ end
 if nvn
     type = 'measurement_errors_std';
     if TeX
-        fid = TeXBegin(OutputDirectoryName,M_.fname,3,'standard deviation of measurement errors');
+        fid = TeXBegin(OutputFolder,FileName,3,'standard deviation of measurement errors');
     end
     skipline()
     disp('standard deviation of measurement errors')
@@ -209,7 +211,7 @@ end
 if ncx
     type = 'shocks_corr';
     if TeX
-        fid = TeXBegin(OutputDirectoryName,M_.fname,4,'correlation of structural shocks');
+        fid = TeXBegin(OutputFolder,FileName,4,'correlation of structural shocks');
     end
     skipline()
     disp('correlation of shocks')
@@ -263,7 +265,7 @@ end
 if ncn
     type = 'measurement_errors_corr';
     if TeX
-        fid = TeXBegin(OutputDirectoryName,M_.fname,5,'correlation of measurement errors');
+        fid = TeXBegin(OutputFolder,FileName,5,'correlation of measurement errors');
     end
     skipline()
     disp('correlation of measurement errors')
diff --git a/matlab/MakeAllFigures.m b/matlab/MakeAllFigures.m
index a8902192135d48dd50aa88557f7e26b03a16f054..89f35dac6095ee8c9240381815fbc4138b76f696 100644
--- a/matlab/MakeAllFigures.m
+++ b/matlab/MakeAllFigures.m
@@ -153,14 +153,14 @@ if Info.SaveFormat.Eps
         eval(['print -depsc2 ' M_.fname Info.SaveFormat.GenericName Info.SaveFormat.Name '.eps']);  
     end
 end
-if Info.SaveFormat.Pdf && ~exist('OCTAVE_VERSION')
+if Info.SaveFormat.Pdf && ~isoctave
     if isempty(Info.SaveFormat.Name)
         eval(['print -dpdf ' M_.fname Info.SaveFormat.GenericName int2str(Info.SaveFormat.Number)]);
     else
         eval(['print -dpdf ' M_.fname Info.SaveFormat.GenericName Info.SaveFormat.Name]);  
     end
 end
-if Info.SaveFormat.Fig && ~exist('OCTAVE_VERSION')
+if Info.SaveFormat.Fig && ~isoctave
     if isempty(Info.SaveFormat.Name)
         saveas(FigHandle,[M_.fname Info.SaveFormat.GenericName int2str(Info.SaveFormat.Number) '.fig']);
     else
diff --git a/matlab/McMCDiagnostics.m b/matlab/McMCDiagnostics.m
index d4a26cb8c353e75a26758711e56294c8c8d7e9ad..ed719034cf5b59be6e972e0c883e5e9c69ceeebc 100644
--- a/matlab/McMCDiagnostics.m
+++ b/matlab/McMCDiagnostics.m
@@ -1,4 +1,4 @@
-function McMCDiagnostics(options_, estim_params_, M_)
+function oo_ = McMCDiagnostics(options_, estim_params_, M_, oo_)
 % function McMCDiagnostics
 % Computes convergence tests 
 % 
@@ -8,7 +8,7 @@ function McMCDiagnostics(options_, estim_params_, M_)
 %   M_               [structure]
 %
 % OUTPUTS 
-%   none  
+%   oo_              [structure] 
 %
 % SPECIAL REQUIREMENTS
 %   none
@@ -33,15 +33,12 @@ function McMCDiagnostics(options_, estim_params_, M_)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-DirectoryName = CheckPath('Output',M_.dname);
-MhDirectoryName = CheckPath('metropolis',M_.dname);
+OutputFolder = CheckPath('Output',M_.dname);
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+ModelName = M_.fname;
 
 TeX = options_.TeX;
 nblck = options_.mh_nblck;
-% Brooks and Gelman tests need more than one block 
-if nblck == 1
-    return;
-end
 npar = estim_params_.nvx;
 npar = npar + estim_params_.nvn;
 npar = npar + estim_params_.ncx;
@@ -49,22 +46,27 @@ npar = npar + estim_params_.ncn;
 npar = npar + estim_params_.np ;
 MAX_nruns = ceil(options_.MaxNumberOfBytes/(npar+2)/8);
 
-load([MhDirectoryName '/'  M_.fname '_mh_history.mat'])
+load_last_mh_history_file(MetropolisFolder, ModelName);
+NumberOfMcFilesPerBlock = record.LastFileNumber;
 
-NumberOfMcFilesPerBlock = size(dir([MhDirectoryName ,filesep, M_.fname '_mh*_blck1.mat']),1);
-
-% check if all previous files are there for block 1
-check_presence_consecutive_MC_files(MhDirectoryName,M_.fname,1)
+% Check that the declared number of blocks is consistent with informations saved in mh-history files.
+if ~isequal(nblck,record.Nblck)
+    disp(['Estimation::mcmc::diagnostics: The number of MCMC chains you declared (' num2str(nblck) ') is inconsistent with the information available in the mh-history files (' num2str(record.Nblck) ' chains)!'])
+    disp(['                               I reset the number of MCMC chains to ' num2str(record.Nblck) '.'])
+    nblck = record.Nblck;
+end
 
-for blck = 2:nblck
-    tmp = size(dir([MhDirectoryName ,filesep, M_.fname '_mh*_blck' int2str(blck) '.mat']),1);
-    if tmp~=NumberOfMcFilesPerBlock
-        disp(['McMCDiagnostics:: The number of mh files in chain ' int2str(blck) ' is ' int2str(tmp) ' while'])
-        disp(['                  the number of mh files in chain 1 is ' int2str(mcfiles) '!'])
-        error('The number of mh files has to be constant across chains!')
+% check if all the mh files are available.
+issue_an_error_message = 0;
+for b = 1:nblck
+    nfiles = length(dir([MetropolisFolder ,filesep, ModelName '_mh*_blck' num2str(b) '.mat']));
+    if ~isequal(NumberOfMcFilesPerBlock,nfiles)
+        issue_an_error_message = 1;
+        disp(['Estimation::mcmc::diagnostics: The number of MCMC files in chain ' num2str(b) ' is ' num2str(nfiles) ' while the mh-history files indicate that we should have ' num2str(NumberOfMcFilesPerBlock) ' MCMC files per chain!'])
     end
-    % check if all previous files are there for block blck
-    check_presence_consecutive_MC_files(MhDirectoryName,M_.fname,blck)
+end
+if issue_an_error_message
+    error('Estimation::mcmc::diagnostics: I cannot proceed because some MCMC files are missing. Check your MCMC files...')
 end
 
 PastDraws = sum(record.MhDraws,1);
@@ -72,6 +74,62 @@ LastFileNumber = PastDraws(2);
 LastLineNumber = record.MhDraws(end,3);
 NumberOfDraws  = PastDraws(1);
 
+if NumberOfDraws<=2000
+    warning(['estimation:: MCMC convergence diagnostics are not computed because the total number of iterations is less than 2000!'])
+    return
+end
+
+if nblck == 1 % Brooks and Gelman tests need more than one block
+    convergence_diagnostics_geweke=zeros(npar,4+2*length(options_.convergence.geweke.taper_steps));
+    if any(options_.convergence.geweke.geweke_interval<0) || any(options_.convergence.geweke.geweke_interval>1) || length(options_.convergence.geweke.geweke_interval)~=2 ...
+        || (options_.convergence.geweke.geweke_interval(2)-options_.convergence.geweke.geweke_interval(1)<0)
+        fprintf('\nCONVERGENCE DIAGNOSTICS: Invalid option for geweke_interval. Using the default of [0.2 0.5].\n')
+        options_.convergence.geweke.geweke_interval=[0.2 0.5];
+    end
+    first_obs_begin_sample = max(1,ceil(options_.mh_drop*options_.mh_replic));
+    last_obs_begin_sample = first_obs_begin_sample+round(options_.convergence.geweke.geweke_interval(1)*options_.mh_replic*(1-options_.mh_drop));
+    first_obs_end_sample = first_obs_begin_sample+round(options_.convergence.geweke.geweke_interval(2)*options_.mh_replic*(1-options_.mh_drop));
+    param_name=[];
+    for jj=1:npar
+        param_name = strvcat(param_name,get_the_name(jj,options_.TeX,M_,estim_params_,options_));
+    end
+    fprintf('\nGeweke (1992) Convergence Tests, based on means of draws %d to %d vs %d to %d.\n',first_obs_begin_sample,last_obs_begin_sample,first_obs_end_sample,options_.mh_replic);
+    fprintf('p-values are for Chi2-test for equality of means.\n');    
+    Geweke_header={'Parameter', 'Post. Mean', 'Post. Std', 'p-val No Taper'};
+    print_string=['%',num2str(size(param_name,2)+3),'s \t %12.3f \t %12.3f \t %12.3f'];
+    print_string_header=['%',num2str(size(param_name,2)+3),'s \t %12s \t %12s \t %12s'];    
+    for ii=1:length(options_.convergence.geweke.taper_steps)
+        Geweke_header=[Geweke_header, ['p-val ' num2str(options_.convergence.geweke.taper_steps(ii)),'% Taper']];
+        print_string=[print_string,'\t %12.3f'];
+        print_string_header=[print_string_header,'\t %12s'];
+    end
+    print_string=[print_string,'\n'];
+    print_string_header=[print_string_header,'\n'];
+    fprintf(print_string_header,Geweke_header{1,:});
+    for jj=1:npar
+        startline=0;
+        for n = 1:NumberOfMcFilesPerBlock
+            load([MetropolisFolder '/' ModelName '_mh',int2str(n),'_blck1.mat'],'x2');
+            nx2 = size(x2,1);
+            param_draws(startline+(1:nx2),1) = x2(:,jj);
+            startline = startline + nx2;
+        end
+        [results_vec, results_struct] = geweke_moments(param_draws,options_);
+        convergence_diagnostics_geweke(jj,:)=results_vec;
+    
+        param_draws1 = param_draws(first_obs_begin_sample:last_obs_begin_sample,:);
+        param_draws2 = param_draws(first_obs_end_sample:end,:);
+        [results_vec1] = geweke_moments(param_draws1,options_);
+        [results_vec2] = geweke_moments(param_draws2,options_);
+        
+        results_struct = geweke_chi2_test(results_vec1,results_vec2,results_struct,options_);
+        eval(['oo_.convergence.geweke.',param_name(jj,:),'=results_struct;'])
+        fprintf(print_string,param_name(jj,:),results_struct.posteriormean,results_struct.posteriorstd,results_struct.prob_chi2_test)
+    end
+    skipline(2);
+    return;
+end
+
 Origin = 1000;
 StepSize = ceil((NumberOfDraws-Origin)/100);% So that the computational time does not 
 ALPHA = 0.2;                                % increase too much with the number of simulations. 
@@ -82,23 +140,23 @@ tmp = zeros(NumberOfDraws*nblck,3);
 UDIAG = zeros(NumberOfLines,6,npar);
 
 if NumberOfDraws < Origin
-    disp('MCMC Diagnostics :: The number of simulations is to small to compute the MCMC convergence diagnostics.')
+    disp('Estimation::mcmc::diagnostics: The number of simulations is too small to compute the MCMC convergence diagnostics.')
     return
 end
 
 if TeX
-    fidTeX = fopen([DirectoryName '/' M_.fname '_UnivariateDiagnostics.TeX'],'w');
+    fidTeX = fopen([OutputFolder '/' ModelName '_UnivariateDiagnostics.TeX'],'w');
     fprintf(fidTeX,'%% TeX eps-loader file generated by McmcDiagnostics.m (Dynare).\n');
     fprintf(fidTeX,['%% ' datestr(now,0) '\n']);
     fprintf(fidTeX,' \n');
 end
 
-disp('MCMC Diagnostics: Univariate convergence diagnostic, Brooks and Gelman (1998):')
+disp('Estimation::mcmc::diagnostics: Univariate convergence diagnostic, Brooks and Gelman (1998):')
 
 % The mandatory variables for local/remote parallel
 % computing are stored in localVars struct.
 
-localVars.MhDirectoryName = MhDirectoryName;
+localVars.MetropolisFolder = MetropolisFolder;
 localVars.nblck = nblck;
 localVars.NumberOfMcFilesPerBlock = NumberOfMcFilesPerBlock;
 localVars.Origin = Origin;
@@ -117,9 +175,9 @@ if isnumeric(options_.parallel),
     clear fout
     % Parallel execution!
 else
-    ModelName = M_.fname;
+    ModelName = ModelName;
     if ~isempty(M_.bvar)
-        ModelName = [M_.fname '_bvar'];
+        ModelName = [ModelName '_bvar'];
     end
     NamFileInput={[M_.dname '/metropolis/'],[ModelName '_mh*_blck*.mat']};
     
@@ -174,14 +232,14 @@ for i = 1:pages
             boxplot = boxplot + 1;
         end
     end
-    dyn_saveas(h,[DirectoryName '/' M_.fname '_udiag' int2str(i)],options_);
+    dyn_saveas(h,[OutputFolder '/' ModelName '_udiag' int2str(i)],options_);
     if TeX
         fprintf(fidTeX,'\\begin{figure}[H]\n');
         for jj = 1:size(NAMES,1)
             fprintf(fidTeX,'\\psfrag{%s}[1][][0.5][0]{%s}\n',deblank(NAMES(jj,:)),deblank(TEXNAMES(jj,:)));
         end    
         fprintf(fidTeX,'\\centering \n');
-        fprintf(fidTeX,'\\includegraphics[scale=0.5]{%s_udiag%s}\n',[DirectoryName '/' M_.fname],int2str(i));
+        fprintf(fidTeX,'\\includegraphics[scale=0.5]{%s_udiag%s}\n',[OutputFolder '/' ModelName],int2str(i));
         fprintf(fidTeX,'\\caption{Univariate convergence diagnostics for the Metropolis-Hastings.\n');
         fprintf(fidTeX,'The first, second and third columns are respectively the criteria based on\n');
         fprintf(fidTeX,'the eighty percent interval, the second and third moments.}');
@@ -237,14 +295,14 @@ if reste
             boxplot = boxplot + 1;
         end
     end
-    dyn_saveas(h,[ DirectoryName '/' M_.fname '_udiag' int2str(pages+1)],options_);
+    dyn_saveas(h,[ OutputFolder '/' ModelName '_udiag' int2str(pages+1)],options_);
     if TeX
         fprintf(fidTeX,'\\begin{figure}[H]\n');
         for jj = 1:size(NAMES,1);
             fprintf(fidTeX,'\\psfrag{%s}[1][][0.5][0]{%s}\n',deblank(NAMES(jj,:)),deblank(TEXNAMES(jj,:)));
         end    
         fprintf(fidTeX,'\\centering \n');
-        fprintf(fidTeX,'\\includegraphics[scale=0.5]{%s_udiag%s}\n',[DirectoryName '/' M_.fname],int2str(pages+1));
+        fprintf(fidTeX,'\\includegraphics[scale=0.5]{%s_udiag%s}\n',[OutputFolder '/' ModelName],int2str(pages+1));
         if reste == 2
             fprintf(fidTeX,'\\caption{Univariate convergence diagnostics for the Metropolis-Hastings.\n');
             fprintf(fidTeX,'The first, second and third columns are respectively the criteria based on\n');
@@ -262,11 +320,11 @@ if reste
     end
 end % if reste > 0
 clear UDIAG;
-%%
-%% Multivariate diagnostic.
-%%
+%
+% Multivariate diagnostic.
+%
 if TeX
-    fidTeX = fopen([DirectoryName '/' M_.fname '_MultivariateDiagnostics.TeX'],'w');
+    fidTeX = fopen([OutputFolder '/' ModelName '_MultivariateDiagnostics.TeX'],'w');
     fprintf(fidTeX,'%% TeX eps-loader file generated by McmcDiagnostics.m (Dynare).\n');
     fprintf(fidTeX,['%% ' datestr(now,0) '\n']);
     fprintf(fidTeX,' \n');
@@ -276,15 +334,11 @@ MDIAG = zeros(NumberOfLines,6);
 for b = 1:nblck
     startline = 0;
     for n = 1:NumberOfMcFilesPerBlock
-        %load([MhDirectoryName '/' mcfiles(n,1,b).name],'logpo2');
-        load([MhDirectoryName '/' M_.fname '_mh',int2str(n),'_blck' int2str(b) '.mat'],'logpo2');
+        load([MetropolisFolder '/' ModelName '_mh',int2str(n),'_blck' int2str(b) '.mat'],'logpo2');
         nlogpo2 = size(logpo2,1);
         tmp((b-1)*NumberOfDraws+startline+(1:nlogpo2),1) = logpo2;
         startline = startline+nlogpo2;
     end
-% $$$   %load([MhDirectoryName '/' mcfiles(NumberOfMcFilesPerBlock,1,b).name],'logpo2');
-% $$$   load([MhDirectoryName '/' M_.fname '_mh',int2str(NumberOfMcFilesPerBlock),'_blck' int2str(b) '.mat'],'logpo2');
-% $$$   tmp((b-1)*NumberOfDraws+startline+1:(b-1)*NumberOfDraws+ MAX_nruns*(LastFileNumber-1)+LastLineNumber,1) = logpo2;
 end
 clear logpo2;
 tmp(:,2) = kron(transpose(1:nblck),ones(NumberOfDraws,1));
@@ -346,7 +400,7 @@ for crit = 1:3
     title(namnam,'Interpreter','none');
     boxplot = boxplot + 1;
 end
-dyn_saveas(h,[ DirectoryName '/' M_.fname '_mdiag'],options_);
+dyn_saveas(h,[ OutputFolder '/' ModelName '_mdiag'],options_);
 
 if TeX
     fprintf(fidTeX,'\\begin{figure}[H]\n');
@@ -354,7 +408,7 @@ if TeX
         fprintf(fidTeX,'\\psfrag{%s}[1][][0.5][0]{%s}\n',deblank(NAMES(jj,:)),' ');
     end    
     fprintf(fidTeX,'\\centering \n');
-    fprintf(fidTeX,'\\includegraphics[scale=0.5]{%s_mdiag}\n',[DirectoryName '/' M_.fname]);
+    fprintf(fidTeX,'\\includegraphics[scale=0.5]{%s_mdiag}\n',[OutputFolder '/' ModelName]);
     fprintf(fidTeX,'\\caption{Multivariate convergence diagnostics for the Metropolis-Hastings.\n');
     fprintf(fidTeX,'The first, second and third rows are respectively the criteria based on\n');
     fprintf(fidTeX,'the eighty percent interval, the second and third moments. The different \n');
@@ -364,17 +418,4 @@ if TeX
     fprintf(fidTeX,'\n');
     fprintf(fidTeX,'% End Of TeX file.');
     fclose(fidTeX);
-end
-
-function check_presence_consecutive_MC_files(MhDirectoryName,fname,blck)
-% check if all previous files are there
-files=ls([MhDirectoryName ,filesep, fname '_mh*_blck' int2str(blck) '.mat']); %list files
-right_string=files(:,length([fname '_mh'])+1:end); %cut off left part of filename
-k = cell2mat(strfind(cellstr(right_string),['_blck' int2str(blck) '.mat'])); %find index of position after number
-file_numbers=str2num(right_string(:,1:k-1)); %get file number
-if ~isempty(file_numbers) && ...
-        sum(sort(file_numbers)-(min(file_numbers):max(file_numbers))')~=0
-    error(['There are MH draw files missing within chain ', int2str(blck)]) 
-end
-
-
+end
\ No newline at end of file
diff --git a/matlab/McMCDiagnostics_core.m b/matlab/McMCDiagnostics_core.m
index 540c322e6f0cf7ac8673dd519b4261542428daef..83756f19b3617fb1d48e7fae27443d17a59b2662 100644
--- a/matlab/McMCDiagnostics_core.m
+++ b/matlab/McMCDiagnostics_core.m
@@ -41,7 +41,7 @@ end
 % Reshape 'myinputs' for local computation.
 % In order to avoid confusion in the name space, the instruction struct2local(myinputs) is replaced by:
 
-MhDirectoryName=myinputs.MhDirectoryName;
+MetropolisFolder=myinputs.MetropolisFolder;%myinputs.MetropolisFolder;
 nblck=myinputs.nblck;
 NumberOfMcFilesPerBlock=myinputs.NumberOfMcFilesPerBlock;
 Origin=myinputs.Origin;
@@ -55,8 +55,8 @@ M_=myinputs.M_;
 if whoiam
     Parallel=myinputs.Parallel;
 end
-if ~exist('MhDirectoryName'),
-    MhDirectoryName = CheckPath('metropolis',M_.dname);
+if ~exist('MetropolisFolder'),
+    MetropolisFolder = CheckPath('metropolis',M_.dname);
 end
 
 ALPHA = 0.2;                                % increase too much with the number of simulations.
@@ -73,7 +73,7 @@ if whoiam
     fMessageStatus(0,whoiam,waitbarString, waitbarTitle, Parallel(ThisMatlab));
 end
 for j=fpar:npar,
-    if exist('OCTAVE_VERSION'),
+    if isoctave
         if (whoiam==0),
             printf('    Parameter %d...  ',j);
         end
@@ -83,19 +83,11 @@ for j=fpar:npar,
     for b = 1:nblck
         startline = 0;
         for n = 1:NumberOfMcFilesPerBlock
-            %load([MhDirectoryName '/' mcfiles(n,1,b).name],'x2');
-            load([MhDirectoryName '/' M_.fname '_mh',int2str(n),'_blck' int2str(b) ...
-                  '.mat'],'x2');
+            load([MetropolisFolder '/' M_.fname '_mh',int2str(n),'_blck' int2str(b) '.mat'],'x2');
             nx2 = size(x2,1);
             tmp((b-1)*NumberOfDraws+startline+(1:nx2),1) = x2(:,j);
-            %      clear x2;
             startline = startline + nx2;
         end
-% $$$     %load([MhDirectoryName '/' mcfiles(NumberOfMcFilesPerBlock,1,b).name],'x2');
-% $$$     load([MhDirectoryName '/' M_.fname '_mh',int2str(NumberOfMcFilesPerBlock),'_blck' int2str(b) '.mat'],'x2');
-% $$$     tmp((b-1)*NumberOfDraws+startline+1:(b-1)*NumberOfDraws+MAX_nruns*(LastFileNumber-1)+LastLineNumber,1) = x2(:,j);
-% $$$     clear x2;
-% $$$     startline = startline + LastLineNumber;
     end
     tmp(:,2) = kron(transpose(1:nblck),ones(NumberOfDraws,1));
     tmp(:,3) = kron(ones(nblck,1),time');
@@ -122,7 +114,7 @@ for j=fpar:npar,
             UDIAG(ligne,6,j-fpar+1) = UDIAG(ligne,6,j-fpar+1) + sum(abs(pmet(:,1)-moyenne).^3)/(n-1);
         end
     end
-    if exist('OCTAVE_VERSION'),
+    if isoctave
         if (whoiam==0),
             printf('Done! \n');
         end
diff --git a/matlab/PosteriorFilterSmootherAndForecast.m b/matlab/PosteriorFilterSmootherAndForecast.m
index 841bc356f9b07eccdec4fa58c62e2e79750a1e00..b636565633d0c722330bd42bf132107d1eb8969a 100644
--- a/matlab/PosteriorFilterSmootherAndForecast.m
+++ b/matlab/PosteriorFilterSmootherAndForecast.m
@@ -43,7 +43,7 @@ np   = estim_params_.np ;
 npar = nvx+nvn+ncx+ncn+np;
 offset = npar-np;
 naK = length(options_.filter_step_ahead);
-%%
+
 MaxNumberOfPlotPerFigure = 4;% The square root must be an integer!
 MaxNumberOfBytes=options_.MaxNumberOfBytes;
 endo_nbr=M_.endo_nbr;
@@ -54,19 +54,23 @@ iendo = 1:endo_nbr;
 i_last_obs = gend+(1-M_.maximum_endo_lag:0);
 horizon = options_.forecast;
 maxlag = M_.maximum_endo_lag;
-%%
+
 CheckPath('Plots/',M_.dname);
-DirectoryName = CheckPath('metropolis',M_.dname);
-load([ DirectoryName '/'  M_.fname '_mh_history.mat'])
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+ModelName = M_.fname;
+BaseName = [MetropolisFolder filesep Model_name];
+
+load_last_mh_history_file(MetropolisFolder,ModelName);
+
 FirstMhFile = record.KeepedDraws.FirstMhFile;
 FirstLine = record.KeepedDraws.FirstLine;
 TotalNumberOfMhFiles = sum(record.MhDraws(:,2)); LastMhFile = TotalNumberOfMhFiles;
 TotalNumberOfMhDraws = sum(record.MhDraws(:,1));
 NumberOfDraws = TotalNumberOfMhDraws-floor(options_.mh_drop*TotalNumberOfMhDraws);
-clear record;
+
 B = min(1200, round(0.25*NumberOfDraws));
 B = 200;
-%%
+
 MAX_nruns = min(B,ceil(options_.MaxNumberOfBytes/(npar+2)/8));
 MAX_nsmoo = min(B,ceil(MaxNumberOfBytes/((endo_nbr)*gend)/8));
 MAX_ninno = min(B,ceil(MaxNumberOfBytes/(exo_nbr*gend)/8));
@@ -83,7 +87,6 @@ if horizon
 
 end
 
-%%
 varlist = options_.varlist;
 if isempty(varlist)
     varlist = M_.endo_names;
@@ -133,7 +136,6 @@ if options_.forecast
 end
 
 for b=1:B
-    %deep = GetOneDraw(NumberOfDraws,FirstMhFile,LastMhFile,FirstLine,MAX_nruns,DirectoryName);
     [deep, logpo] = GetOneDraw(type);
     M_ = set_all_parameters(deep,estim_params_,M_);
     [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
@@ -168,22 +170,20 @@ for b=1:B
                                              horizon+maxlag,1);
         end
         yf(:,IdObs) = yf(:,IdObs)+(gend+[1-maxlag:horizon]')*trend_coeff';
-        if options_.loglinear == 1
+        if options_.loglinear
             yf = yf+repmat(log(SteadyState'),horizon+maxlag,1);
-            %      yf = exp(yf);
         else
             yf = yf+repmat(SteadyState',horizon+maxlag,1);
         end
         yf1 = forcst2(yyyy,horizon,dr,1);
-        if options_.prefilter == 1
+        if options_.prefilter
             yf1(:,IdObs,:) = yf1(:,IdObs,:)+ ...
                 repmat(bayestopt_.mean_varobs',[horizon+maxlag,1,1]);
         end
         yf1(:,IdObs,:) = yf1(:,IdObs,:)+repmat((gend+[1-maxlag:horizon]')* ...
                                                trend_coeff',[1,1,1]);
-        if options_.loglinear == 1
+        if options_.loglinear
             yf1 = yf1 + repmat(log(SteadyState'),[horizon+maxlag,1,1]);
-            %      yf1 = exp(yf1);
         else
             yf1 = yf1 + repmat(SteadyState',[horizon+maxlag,1,1]);
         end
@@ -203,71 +203,73 @@ for b=1:B
     if irun1 > MAX_nsmoo || b == B
         stock = stock_smooth(:,:,1:irun1-1);
         ifil1 = ifil1 + 1;
-        save([DirectoryName '/' M_.fname '_smooth' int2str(ifil1) '.mat'],'stock');
+        save([BaseName '_smooth' int2str(ifil1) '.mat'],'stock');
         irun1 = 1;
     end
 
     if nvx && (irun2 > MAX_ninno || b == B)
         stock = stock_innov(:,:,1:irun2-1);
         ifil2 = ifil2 + 1;
-        save([DirectoryName '/' M_.fname '_inno' int2str(ifil2) '.mat'],'stock');
+        save([BaseName '_inno' int2str(ifil2) '.mat'],'stock');
         irun2 = 1;
     end
 
     if nvn && (irun3 > MAX_error || b == B)
         stock = stock_error(:,:,1:irun3-1);
         ifil3 = ifil3 + 1;
-        save([DirectoryName '/' M_.fname '_error' int2str(ifil3) '.mat'],'stock');
+        save([BaseName '_error' int2str(ifil3) '.mat'],'stock');
         irun3 = 1;
     end
 
     if naK && (irun4 > MAX_naK || b == B)
         stock = stock_filter(:,:,:,1:irun4-1);
         ifil4 = ifil4 + 1;
-        save([DirectoryName '/' M_.fname '_filter' int2str(ifil4) '.mat'],'stock');
+        save([BaseName '_filter' int2str(ifil4) '.mat'],'stock');
         irun4 = 1;
     end
 
     if irun5 > MAX_nruns || b == B
         stock = stock_param(1:irun5-1,:);
         ifil5 = ifil5 + 1;
-        save([DirectoryName '/' M_.fname '_param' int2str(ifil5) '.mat'],'stock','stock_logpo','stock_ys');
+        save([BaseName '_param' int2str(ifil5) '.mat'],'stock','stock_logpo','stock_ys');
         irun5 = 1;
     end
 
     if horizon && (irun6 > MAX_nforc1 || b == B)
         stock = stock_forcst_mean(:,:,1:irun6-1);
         ifil6 = ifil6 + 1;
-        save([DirectoryName '/' M_.fname '_forc_mean' int2str(ifil6) '.mat'],'stock');
+        save([BaseName '_forc_mean' int2str(ifil6) '.mat'],'stock');
         irun6 = 1;
     end
 
     if horizon && (irun7 > MAX_nforc2 ||  b == B)
         stock = stock_forcst_total(:,:,1:irun7-1);
         ifil7 = ifil7 + 1;
-        save([DirectoryName '/' M_.fname '_forc_total' int2str(ifil7) '.mat'],'stock');
+        save([BaseName '_forc_total' int2str(ifil7) '.mat'],'stock');
         irun7 = 1;
     end
 
     waitbar(b/B,h);
+
 end
 close(h)
 
+% ??????
 stock_gend=gend;
 stock_data=Y;
-save([DirectoryName '/' M_.fname '_data.mat'],'stock_gend','stock_data');
+save([BaseName '_data.mat'],'stock_gend','stock_data');
 
 if options_.smoother
     pm3(endo_nbr,gend,ifil1,B,'Smoothed variables',...
         M_.endo_names(SelecVariables),M_.endo_names,'tit_tex',M_.endo_names,...
-        'names2','smooth',[M_.fname '/metropolis'],'_smooth')
+        'names2','smooth',MetropolisFolder,'_smooth')
 end
 
 if options_.forecast
     pm3(endo_nbr,horizon+maxlag,ifil6,B,'Forecasted variables (mean)',...
         M_.endo_names(SelecVariables),M_.endo_names,'tit_tex',M_.endo_names,...
-        'names2','smooth',[M_.fname '/metropolis'],'_forc_mean')
+        'names2','smooth',MetropolisFolder,'_forc_mean')
     pm3(endo_nbr,horizon+maxlag,ifil6,B,'Forecasted variables (total)',...
         M_.endo_names(SelecVariables),M_.endo_names,'tit_tex',M_.endo_names,...
-        'names2','smooth',[M_.fname '/metropolis'],'_forc_total')
+        'names2','smooth',MetropolisFolder,'_forc_total')
 end
diff --git a/matlab/PosteriorIRF.m b/matlab/PosteriorIRF.m
index 3286330eda48b72d183bba24e628bae2853688ae..ac479c526cea3d607ff104e1a0917fdc0313e516 100644
--- a/matlab/PosteriorIRF.m
+++ b/matlab/PosteriorIRF.m
@@ -95,9 +95,8 @@ end
 delete([MhDirectoryName filesep M_.fname '_IRF_DSGEs*.mat']);
 delete([MhDirectoryName filesep M_.fname '_IRF_BVARDSGEs*.mat']);
 if strcmpi(type,'posterior')
-    load([ MhDirectoryName filesep  M_.fname '_mh_history.mat'])
-    TotalNumberOfMhDraws = sum(record.MhDraws(:,1));
-    NumberOfDraws = TotalNumberOfMhDraws-floor(options_.mh_drop*TotalNumberOfMhDraws);
+    B = options_.sub_draws;
+    options_.B = B;
 elseif strcmpi(type,'gsa')
     RootDirectoryName = CheckPath('gsa',M_.dname);
     if options_.opt_gsa.pprior
@@ -107,13 +106,10 @@ elseif strcmpi(type,'gsa')
     end
     x=[lpmat0(istable,:) lpmat(istable,:)];
     clear lpmat istable
-    NumberOfDraws=size(x,1);
-    B=NumberOfDraws; options_.B = B;
+    B=size(x,1); options_.B = B;
 else% type = 'prior'
-    NumberOfDraws = 500;
-end
-if ~strcmpi(type,'gsa')
-    B = min([round(.5*NumberOfDraws),500]); options_.B = B;
+    B = options_.prior_draws;
+    options_.B = B;
 end
 try 
     delete([MhDirectoryName filesep M_.fname '_irf_dsge*.mat'])
@@ -288,7 +284,7 @@ if options_.TeX
     end
 end
 
-fprintf('MH: Posterior (dsge) IRFs...\n');
+fprintf('Estimation::mcmc: Posterior (dsge) IRFs...\n');
 tit(M_.exo_names_orig_ord,:) = M_.exo_names;
 kdx = 0;
 
@@ -328,7 +324,7 @@ if MAX_nirfs_dsgevar
     VarIRFdsgevar = zeros(options_.irf,nvar,M_.exo_nbr);
     DistribIRFdsgevar = zeros(options_.irf,9,nvar,M_.exo_nbr);
     HPDIRFdsgevar = zeros(options_.irf,2,nvar,M_.exo_nbr);    
-    fprintf('MH: Posterior (bvar-dsge) IRFs...\n');
+    fprintf('Estimation::mcmc: Posterior (bvar-dsge) IRFs...\n');
     tit(M_.exo_names_orig_ord,:) = M_.exo_names;
     kdx = 0;
     for file = 1:NumberOfIRFfiles_dsgevar
@@ -358,9 +354,9 @@ if MAX_nirfs_dsgevar
         end
     end
 end
-%%
-%%      Finally I build the plots.
-%%
+%
+%      Finally I build the plots.
+%
 
 
 % Second block of code executed in parallel, with the exception of file
@@ -390,7 +386,7 @@ if options_.dsge_var
     localVars.MeanIRFdsgevar = MeanIRFdsgevar;
 end    
 
-%%% The files .TeX are genereted in sequential way always!
+% The files .TeX are genereted in sequential way always!
 
 if options_.TeX
     fidTeX = fopen([DirectoryName filesep M_.fname '_BayesianIRF.TeX'],'w');
@@ -404,7 +400,7 @@ if options_.TeX
         TEXNAMES = [];
         
         for j=1:nvar
-            if max(abs(MeanIRF(:,j,i))) > 10^(-6)  
+            if max(abs(MeanIRF(:,j,i))) > options_.impulse_responses.plot_threshold  
                 
                 name = deblank(varlist(j,:));
                 texname = deblank(varlist_TeX(j,:));
@@ -444,7 +440,7 @@ end
 
 
 % Comment for testing!
-if ~exist('OCTAVE_VERSION')
+if ~isoctave
     if isnumeric(options_.parallel)  || (M_.exo_nbr*ceil(size(varlist,1)/MaxNumberOfPlotPerFigure))<8,
         [fout] = PosteriorIRF_core2(localVars,1,M_.exo_nbr,0);
     else
@@ -467,4 +463,4 @@ end
 % END parallel code!
 
 
-fprintf('MH: Posterior IRFs, done!\n');
\ No newline at end of file
+fprintf('Estimation::mcmc: Posterior IRFs, done!\n');
diff --git a/matlab/PosteriorIRF_core1.m b/matlab/PosteriorIRF_core1.m
index 20294afa2ffe93251f9fd42ce317cd07143986ca..1eff387ad64115fcce0e12710c2136ebc612bbc5 100644
--- a/matlab/PosteriorIRF_core1.m
+++ b/matlab/PosteriorIRF_core1.m
@@ -1,6 +1,7 @@
 function myoutput=PosteriorIRF_core1(myinputs,fpar,B,whoiam, ThisMatlab)
+%   Generates and stores Posterior IRFs
 %   PARALLEL CONTEXT
-%   This function perfom in parallel a portion of  PosteriorIRF.m code.
+%   This function perfoms in parallel execution a portion of the PosteriorIRF.m code.
 %   This is a special kind of parallel function. Unlike of other parallel functions,
 %   that running in parallel a 'for' cycle, this function run in parallel a
 %   'while' loop! The parallelization of 'while' loop (when possible) is a more
@@ -188,7 +189,7 @@ while fpar<B
     end
     if MAX_nirfs_dsgevar
         IRUN = IRUN+1;
-        [fval,junk1,junk2,cost_flag,info,PHI,SIGMAu,iXX] =  DsgeVarLikelihood(deep',dataset_,options_,M_,estim_params_,bayestopt_,oo_);
+        [fval,junk1,junk2,cost_flag,info,PHI,SIGMAu,iXX] =  dsge_var_likelihood(deep',dataset_,options_,M_,estim_params_,bayestopt_,oo_);
         dsge_prior_weight = M_.params(strmatch('dsge_prior_weight',M_.param_names));
         DSGE_PRIOR_WEIGHT = floor(dataset_.info.ntobs*(1+dsge_prior_weight));
         SIGMA_inv_upper_chol = chol(inv(SIGMAu*dataset_.info.ntobs*(dsge_prior_weight+1)));
@@ -278,7 +279,7 @@ while fpar<B
         ifil2 = ifil2 + 1;
         irun2 = 0;
     end
-%     if exist('OCTAVE_VERSION'),
+%     if isoctave
 %         if (whoiam==0),
 %             printf(['Posterior IRF  %3.f%% done\r'],(fpar/B*100));
 %         end
@@ -286,7 +287,7 @@ while fpar<B
 %         waitbar(fpar/B,h);
 %     end
 %     if whoiam,
-%         if ~exist('OCTAVE_VERSION')
+%         if ~isoctave
 %             fprintf('Done! \n');
 %         end
 %         waitbarString = [ 'Subdraw ' int2str(fpar) '/' int2str(B) ' done.'];
diff --git a/matlab/PosteriorIRF_core2.m b/matlab/PosteriorIRF_core2.m
index 6a693a4a387d85d8bcdbe0d7acafa95e5f8e06ae..f33fbc2832ac0529a3146fe4bed8713adc552b90 100644
--- a/matlab/PosteriorIRF_core2.m
+++ b/matlab/PosteriorIRF_core2.m
@@ -1,6 +1,8 @@
 function myoutput=PosteriorIRF_core2(myinputs,fpar,npar,whoiam, ThisMatlab)
+% Generates the Posterior IRFs plot from the IRFs generated in
+% PosteriorIRF_core1
 % PARALLEL CONTEXT
-% Perfome in parallel a portion of  PosteriorIRF.m code.
+% Perform in parallel execution a portion of the PosteriorIRF.m code.
 % See also the comment in random_walk_metropolis_hastings_core.m funtion.
 %
 % INPUTS 
@@ -17,7 +19,7 @@ function myoutput=PosteriorIRF_core2(myinputs,fpar,npar,whoiam, ThisMatlab)
 % SPECIAL REQUIREMENTS.
 %   None.
 %
-% Copyright (C) 2006-2012 Dynare Team
+% Copyright (C) 2006-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -87,7 +89,7 @@ for i=fpar:npar,
     figunumber = 0;
     
     for j=1:nvar
-        if max(abs(MeanIRF(:,j,i))) > 10^(-6)
+        if max(abs(MeanIRF(:,j,i))) > options_.impulse_responses.plot_threshold
             subplotnum = subplotnum+1;
             if subplotnum == 1 && options_.relative_irf
                 hh = dyn_figure(options_,'Name',['Relative response to orthogonalized shock to ' tit(i,:)]);
@@ -131,6 +133,10 @@ for i=fpar:npar,
             end
             name = deblank(varlist(j,:));
             title(name,'Interpreter','none')
+        else
+            if options_.debug
+                fprintf('POSTERIOR_IRF: The IRF of %s to %s is smaller than the irf_plot_threshold of %4.3f and will not be displayed.\n',deblank(varlist(j,:)),tit(i,:),options_.impulse_responses.plot_threshold)
+            end                
         end
         
         if subplotnum == MaxNumberOfPlotPerFigure || (j == nvar  && subplotnum> 0)
diff --git a/matlab/UnivariateSpectralDensity.m b/matlab/UnivariateSpectralDensity.m
index f9760ef794f2ae0054bfcc293c1da52853160c5b..0303cd3064383ee359dc6bf85fc7a87476db1209 100644
--- a/matlab/UnivariateSpectralDensity.m
+++ b/matlab/UnivariateSpectralDensity.m
@@ -39,7 +39,7 @@ sdl      = options_.SpectralDensity.sdl;
 omega    = (0:sdl:pi)';
 GridSize = length(omega);
 exo_names_orig_ord  = M_.exo_names_orig_ord;
-if exist('OCTAVE_VERSION')
+if isoctave
     warning('off', 'Octave:divide-by-zero')
 else
     warning off MATLAB:dividebyzero
@@ -160,7 +160,7 @@ for i=1:nvar
     f(i,:) = Gamma(i,1)/(2*pi) + Gamma(i,H+1)*cos(H'*omega')/pi;
 end  
 
-if exist('OCTAVE_VERSION')
+if isoctave
     warning('on', 'Octave:divide-by-zero')
 else
     warning on MATLAB:dividebyzero
diff --git a/matlab/adaptive_metropolis_hastings.m b/matlab/adaptive_metropolis_hastings.m
index 08edbc1d4f8f17099e8614200d5721ea0e4fed12..3de414d45e614760b4eb6e06db52fdd22a6c0277 100644
--- a/matlab/adaptive_metropolis_hastings.m
+++ b/matlab/adaptive_metropolis_hastings.m
@@ -125,7 +125,7 @@ for i=1:maxit
     record = random_walk_metropolis_hastings(TargetFun,ProposalFun, ...
                                              xparam1,vv, ...
                                              mh_bounds,varargin{:});
-    AvRates(i) = mean(record.AcceptationRates);    
+    AvRates(i) = mean(record.AcceptanceRatio);
 
     if i < test_runs
         i_kept_runs = 1:i;
@@ -169,5 +169,5 @@ end
 error('AMH scale tuning: tuning didn''t converge')
 
 function y = total_draws(M_)
-load([M_.fname '/metropolis/' M_.fname '_mh_history'])
+load_last_mh_history_file([M_.dname filesep 'metropolis'],M_.fname);
 y = sum(record.MhDraws(:,1));
\ No newline at end of file
diff --git a/matlab/basic_plan.m b/matlab/basic_plan.m
new file mode 100644
index 0000000000000000000000000000000000000000..22ef0cb85dadece26cc66f755fee4fe66741cb6b
--- /dev/null
+++ b/matlab/basic_plan.m
@@ -0,0 +1,86 @@
+function plan = basic_plan(plan, exogenous, expectation_type, date, value)
+% Adds a simple shock to the forecast scenario plan
+%
+% INPUTS
+%  o plan                 [structure]       A structure describing the different shocks and the implied variables, the date of the shocks and the path of the shock (forecast scenario).
+%                                           The plan structure is created by the functions init_plan, basic_plan and flip_plan
+%  o exogenous            [string]          A string containing the name of the exognous shock.
+%  o expectation_type     [string]          A string indicating the type of expectation: 'surprise' for an unexpected shock, and 'perfect_foresight' for a perfectly anticpated shock.
+%  o date                 [dates]           The period of the shock
+%  o value                [array of double] A vector of double containing the values of the exogenous variable
+%
+%
+% OUTPUTS
+%  plan                   [structure]        Returns a structure containing the updated forecast scenario.
+%
+%
+% Copyright (C) 2013-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+  if ~ischar(expectation_type) || size(expectation_type,1) ~= 1
+      error(['in basic_plan the third argument should be a string containing the simulation type (''perfect_foresight'' or ''surprise'')']);
+  end
+  exogenous = strtrim(exogenous);
+  ix = find(strcmp(exogenous, plan.exo_names));
+  if  isempty(ix)
+      error(['in basic_plan the second argument ' exogenous ' is not an exogenous variable']);
+  end;
+  sdate = length(date);
+  if sdate > 1
+      if date(1) < plan.date(1) || date(end) > plan.date(end)
+          error(['in basic_plan the fourth argument (date='  date ') must lay inside the plan.date ' plan.date]);
+      end
+  else
+      if date < plan.date(1) || date > plan.date(end)
+          error(['in basic_plan the fourth argument (date='  date ') must lay iside the plan.date ' plan.date]);
+      end
+  end
+  if length(date) ~= length(value)
+      error(['in basic_plan the number of dates (' int2str(length(date)) ') is not equal to the numbers of shock (' int2str(length(value)) ') for exogenous variable ' exogenous]);
+  end
+  if ~isempty(plan.options_cond_fcst_.controlled_varexo)
+      common_var = find(ix == plan.options_cond_fcst_.controlled_varexo);
+      if ~isempty(common_var)
+          common_date = intersect(date, plan.constrained_date_{common_var});
+          if ~isempty(common_date)
+              date = setdiff(date, common_date);
+              if common_date.length > 1
+                  the_dates = [cell2mat(strings(common_date(1))) ':' cell2mat(strings(common_date(end)))];
+              else
+                  the_dates = cell2mat(strings(common_date));
+              end
+              warning(['Impossible case: ' plan.exo_names{plan.options_cond_fcst_.controlled_varexo(common_var)} ' is used both as a shock and as an endogenous variable to control the path of ' plan.endo_names{plan.constrained_vars_(common_var)} ' at the dates ' the_dates]);
+          end
+      end
+  end
+  if isempty(plan.shock_vars_)
+      plan.shock_vars_ = ix;
+      if strcmp(expectation_type, 'perfect_foresight')
+          plan.shock_perfect_foresight_ = 1;
+      else
+          plan.shock_perfect_foresight_ = 0;
+      end
+  else
+      plan.shock_vars_ = [plan.shock_vars_ ; ix];
+      if strcmp(expectation_type, 'perfect_foresight')
+          plan.shock_perfect_foresight_ = [plan.shock_perfect_foresight_ ; 1];
+      else
+          plan.shock_perfect_foresight_ = [plan.shock_perfect_foresight_ ; 0];
+      end
+  end
+  plan.shock_date_{length(plan.shock_date_) + 1} = date;
+  plan.shock_paths_{length(plan.shock_paths_) + 1} = value;
diff --git a/matlab/bvar_toolbox.m b/matlab/bvar_toolbox.m
index 1a218ab86c1b90c829f21d38b8746d829a01f7cb..76c95ef9de6964105a31c5db690a849022fcac04 100644
--- a/matlab/bvar_toolbox.m
+++ b/matlab/bvar_toolbox.m
@@ -65,6 +65,11 @@ global options_
 dataset = read_variables(options_.datafile, options_.varobs, [], options_.xls_sheet, options_.xls_range);
 options_ = set_default_option(options_, 'nobs', size(dataset,1)-options_.first_obs+1);
 
+if (options_.first_obs+options_.nobs-1)> size(dataset,1)
+    fprintf('Incorrect or missing specification of the number of observations. nobs can be at most %4u\n',size(dataset,1)-options_.first_obs+1);
+    error('Inconsistent number of observations.') 
+end
+
 % Parameters for prior
 if options_.first_obs + options_.presample <= nlags
     error('first_obs+presample should be > nlags (for initializing the VAR)')
diff --git a/matlab/check.m b/matlab/check.m
index a2afc7b9f02f07d7fb085c362ff535e0ee66f95f..a0e7aa1bb4d584e86f976d43794155abb79bdfca 100644
--- a/matlab/check.m
+++ b/matlab/check.m
@@ -73,7 +73,7 @@ oo.dr=set_state_space(oo.dr,M,options);
 [dr,info,M,options,oo] = resol(1,M,options,oo);
 
 if info(1) ~= 0 && info(1) ~= 3 && info(1) ~= 4
-    print_info(info, options.noprint, options);
+    print_info(info, 0, options);
 end
 
 eigenvalues_ = dr.eigval;
@@ -107,7 +107,7 @@ if options.noprint == 0
     if result
         disp('The rank condition is verified.')
     else
-        disp('The rank conditions ISN''T verified!')
+        disp('The rank condition ISN''T verified!')
     end
     skipline()
 end
diff --git a/matlab/reports/@elements/elements.m b/matlab/check_consistency_covariances.m
similarity index 50%
rename from matlab/reports/@elements/elements.m
rename to matlab/check_consistency_covariances.m
index 77c3f91d7f3a3594873a215720120036a23ed13c..e8245721de830926aa3255c9d72eff59ef5d3aee 100644
--- a/matlab/reports/@elements/elements.m
+++ b/matlab/check_consistency_covariances.m
@@ -1,15 +1,10 @@
-function e = elements(varargin)
-%function e = elements(varargin)
-% Elements Class Constructor
+function correct_flag=check_consistency_covariances(Covariance_matrix)
+% function check_consistency_covariances(Covariance_matrix)
+% checks consistency of covariance matrices by checking whether the
+% covariances imply correlations bigger than 1.
 %
-% INPUTS
-%   Optional elements object
-%
-% OUTPUTS
-%   elements object
-%
-% SPECIAL REQUIREMENTS
-%   none
+% Outputs: correct_flag         [scalar] 0 if not consistent, 1 otherwise
+% Inputs: Covariance_matrix     [matrix] covariance matrix to be checked
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -28,15 +23,9 @@ function e = elements(varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-switch nargin
-    case 0
-        e = class(struct, 'elements', objArray());
-    case 1
-        assert(isa(varargin{1}, 'elements'), ...
-            ['@elements.elements: with one arg, you must pass an elements ' ...
-             'object or a char.']);
-        e = varargin{1};
-    otherwise
-        error('@elements.elements: invalid number of arguments');
-end
+%compute theoretical bound by assuming correlation of 1
+bound=diag(sqrt(diag(Covariance_matrix)))*ones(size(Covariance_matrix))*diag(sqrt(diag(Covariance_matrix)));
+correct_flag=1;
+if any(any(tril(Covariance_matrix,-1)>bound)) || any(any(tril(Covariance_matrix,-1)<-bound))
+    correct_flag=0;
 end
\ No newline at end of file
diff --git a/matlab/check_dsge_var_model.m b/matlab/check_dsge_var_model.m
new file mode 100644
index 0000000000000000000000000000000000000000..b10815ac81617ae3c2b7ebebfd4c5782bd151640
--- /dev/null
+++ b/matlab/check_dsge_var_model.m
@@ -0,0 +1,44 @@
+function check_dsge_var_model(Model, EstimatedParameters, BayesInfo)
+
+% Check if the dsge model can be estimated with the DSGE-VAR approach.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if EstimatedParameters.nvn
+    error('DsgeVarLikelihood:: Measurement errors are not allowed!')
+end
+
+if EstimatedParameters.ncn
+    error('DsgeVarLikelihood:: Measurement errors are not allowed!')
+end
+
+if any(vec(Model.H))
+    error('DsgeVarLikelihood:: Measurement errors are not allowed!')
+end
+
+if EstimatedParameters.ncx
+    error('DsgeVarLikelihood:: Structural innovations cannot be correlated using Dynare''s interface! Introduce the correlations in the model block instead.')
+end
+
+if Model.exo_nbr>1 && any(vec(tril(Model.Sigma_e,-1)))
+    error('DsgeVarLikelihood:: Structural innovations cannot be correlated using Dynare''s interface! Introduce the correlations in the model block instead.')
+end
+
+if isequal(BayesInfo.with_trend,1)
+    error('DsgeVarLikelihood :: Linear trend is not yet implemented!')
+end
diff --git a/matlab/check_for_calibrated_covariances.m b/matlab/check_for_calibrated_covariances.m
new file mode 100644
index 0000000000000000000000000000000000000000..b6d960c2b6f66532c848de620f35a6fec201f6fc
--- /dev/null
+++ b/matlab/check_for_calibrated_covariances.m
@@ -0,0 +1,55 @@
+function estim_params=check_for_calibrated_covariances(xparam1,estim_params,M)
+% function check_for_calibrated_covariances(xparam1,estim_params,M)
+% find calibrated covariances to consider during estimation
+% Inputs
+%   -xparam1        [vector] parameters to be estimated
+%   -estim_params   [structure] describing parameters to be estimated
+%   -M              [structure] describing the model
+%
+% Outputs
+%   -estim_params   [structure] describing parameters to be estimated
+%
+% Notes: M is local to this function and not updated when calling
+% set_all_parameters
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+Sigma_e_calibrated=M.Sigma_e;
+H_calibrated=M.H;
+%check covariance for structural errors
+covariance_pos=find(tril(Sigma_e_calibrated,-1)); %off-diagonal elements set by covariances before updating correlation matrix to reflect estimated covariances
+covariance_pos_ME=find(tril(H_calibrated,-1)); %off-diagonal elements set by covariances before updating correlation matrix to reflect estimated covariances
+
+%locally updated M
+M = set_all_parameters(xparam1,estim_params,M);
+
+correlation_pos=find(tril(M.Correlation_matrix,-1)); %off-diagonal elements set by correlations after accounting for estimation
+calibrated_covariance_pos=covariance_pos(~ismember(covariance_pos,correlation_pos));
+if any(calibrated_covariance_pos)
+    [rows, columns]=ind2sub(size(M.Sigma_e),calibrated_covariance_pos); %find linear indices of lower triangular covariance entries
+    estim_params.calibrated_covariances.position=[calibrated_covariance_pos;sub2ind(size(M.Sigma_e),columns,rows)]; %get linear entries of upper triangular parts
+    estim_params.calibrated_covariances.cov_value=Sigma_e_calibrated(estim_params.calibrated_covariances.position);  
+end
+
+correlation_pos_ME=find(tril(M.Correlation_matrix_ME,-1)); %off-diagonal elements set by correlations after accounting for estimation
+calibrated_covariance_pos_ME=covariance_pos_ME(~ismember(covariance_pos_ME,correlation_pos_ME));
+if any(calibrated_covariance_pos_ME)
+    [rows, columns]=ind2sub(size(M.H),calibrated_covariance_pos_ME); %find linear indices of lower triangular covariance entries
+    estim_params.calibrated_covariances_ME.position=[calibrated_covariance_pos_ME;sub2ind(size(M.H),columns,rows)]; %get linear entries of upper triangular parts
+    estim_params.calibrated_covariances_ME.cov_value=H_calibrated(estim_params.calibrated_covariances_ME.position);  
+end
+
diff --git a/matlab/check_list_of_variables.m b/matlab/check_list_of_variables.m
index 60482193d050150d12a55eb61397029de5d40557..30805becb342bb327b1c7f0f6923d18042f09371 100644
--- a/matlab/check_list_of_variables.m
+++ b/matlab/check_list_of_variables.m
@@ -14,7 +14,7 @@ function varlist = check_list_of_variables(options_, M_, varlist)
 %        
 % SPECIAL REQUIREMENTS
 
-% Copyright (C) 2003-2012 Dynare Team
+% Copyright (C) 2003-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -31,6 +31,11 @@ function varlist = check_list_of_variables(options_, M_, varlist)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+%get uniques
+
+[junk1,junk2,index_uniqes] = varlist_indices(varlist,M_.endo_names);
+varlist=varlist(index_uniqes,:);
+
 msg = 0;
 if options_.dsge_var && options_.bayesian_irf
     if ~isempty(varlist)
@@ -54,7 +59,17 @@ if options_.dsge_var && options_.bayesian_irf
     return
 end
 
-if isempty(varlist)
+if ~isempty(varlist) && ~isempty(options_.endo_vars_for_moment_computations_in_estimation)
+    error('You cannot use the consider_all_endogenous or consider_all_observed options when listing variables after the estimation command')
+elseif isempty(varlist) && ~isempty(options_.endo_vars_for_moment_computations_in_estimation)
+    if strcmp(options_.endo_vars_for_moment_computations_in_estimation,'all_endogenous_variables')
+        varlist = M_.endo_names(1:M_.orig_endo_nbr, :);    
+    elseif strcmp(options_.endo_vars_for_moment_computations_in_estimation,'only_observed_variables')
+        varlist = options_.varobs;
+    else
+        error('Unknown option')
+    end
+elseif isempty(varlist) && isempty(options_.endo_vars_for_moment_computations_in_estimation)
     skipline()
     disp(['You did not declare endogenous variables after the estimation/calib_smoother command.'])
     cas = [];
@@ -86,7 +101,7 @@ if isempty(varlist)
         if isempty(cas)
             cas = 'Forecasts';
         else
-            cas = [ cas , ' and forecats'];
+            cas = [ cas , ' and forecasts'];
         end
     end
     if ~isempty(cas)
diff --git a/matlab/check_model.m b/matlab/check_model.m
index 3edf7b74627f4f214ea9d683ba0415a131a6f2f6..60cf7cba1e5472ce1a0a40d03665f076ec66c267 100644
--- a/matlab/check_model.m
+++ b/matlab/check_model.m
@@ -30,4 +30,13 @@ end
 if (DynareModel.exo_det_nbr > 0) && (DynareModel.maximum_lag > 1 || DynareModel.maximum_lead > 1)
     error(['Exogenous deterministic variables are currently only allowed in' ...
            ' models with leads and lags on only one period'])
+end
+
+if ~check_consistency_covariances(DynareModel.Sigma_e)
+    error('The specified covariances for the structural errors are not consistent with the variances as they imply a correlation larger than +-1')
+end
+if ~isequal(DynareModel.H,0)
+    if ~check_consistency_covariances(DynareModel.H)
+        error('The specified covariances for the measurement errors are not consistent with the variances as they imply a correlation larger than +-1')
+    end
 end
\ No newline at end of file
diff --git a/matlab/check_posterior_analysis_data.m b/matlab/check_posterior_analysis_data.m
index 96c9e78aeedb3afc824f6e8cf4082a12afc6ab45..243b2d48da4a4653f7c12e04b0a6c6eb2b578d81 100644
--- a/matlab/check_posterior_analysis_data.m
+++ b/matlab/check_posterior_analysis_data.m
@@ -22,16 +22,19 @@ if nargout>1
     description = '';
 end
 
-%% Get informations about mcmc files. 
-if ~exist([ M_.dname '/metropolis'],'dir')
+[MetropolisFolder, info] = CheckPath('metropolis',M_.dname);
+
+% Get informations about mcmc files.
+if info
     disp('check_posterior_analysis_data:: Can''t find any mcmc file!')
     return
 end
+
 mhname = get_name_of_the_last_mh_file(M_);
-mhdate = get_date_of_a_file(mhname);
+mhdate = get_date_of_a_file([MetropolisFolder filesep mhname]);
 
-%% Get informations about _posterior_draws files.
-drawsinfo = dir([ M_.dname '/metropolis/' M_.fname '_posterior_draws*.mat']);
+% Get informations about _posterior_draws files.
+drawsinfo = dir([ MetropolisFolder filesep M_.fname '_posterior_draws*.mat']);
 if isempty(drawsinfo)
     info = 1; % select_posterior_draws has to be called first.
     if nargout>1
@@ -40,8 +43,7 @@ if isempty(drawsinfo)
     return
 else
     number_of_last_posterior_draws_file = length(drawsinfo);
-    pddate = get_date_of_a_file([ M_.dname '/metropolis/' M_.fname '_posterior_draws'...
-                        int2str(number_of_last_posterior_draws_file) '.mat']);
+    pddate = get_date_of_a_file([ MetropolisFolder filesep M_.fname '_posterior_draws' int2str(number_of_last_posterior_draws_file) '.mat']);
     if pddate<mhdate
         info = 2; % _posterior_draws files have to be updated.
         if nargout>1
@@ -56,7 +58,7 @@ else
     end
 end
 
-%% Get informations about posterior data files.
+% Get informations about posterior data files.
 switch type
   case 'variance'
     generic_post_data_file_name = 'Posterior2ndOrderMoments';
@@ -69,7 +71,7 @@ switch type
   otherwise
     disp('This feature is not yest implemented!')
 end
-pdfinfo = dir([ M_.dname '/metropolis/' M_.fname '_' generic_post_data_file_name '*']);
+pdfinfo = dir([ MetropolisFolder filesep M_.fname '_' generic_post_data_file_name '*']);
 if isempty(pdfinfo)
     info = 4; % posterior draws have to be processed.
     if nargout>1
@@ -79,8 +81,7 @@ if isempty(pdfinfo)
 else
     number_of_the_last_post_data_file = length(pdfinfo);
     name_of_the_last_post_data_file = ...
-        [ pwd filesep M_.dname ...
-          filesep 'metropolis' filesep ...
+        [ pwd filesep MetropolisFolder filesep ...
           M_.fname '_' ... 
           generic_post_data_file_name ...
           int2str(number_of_the_last_post_data_file) ...
@@ -95,6 +96,6 @@ else
         info = 6; % Ok (nothing to do ;-)
         if nargout>1
             description = 'There is nothing to do';
-        end        
+        end
     end
 end
\ No newline at end of file
diff --git a/matlab/check_prior_bounds.m b/matlab/check_prior_bounds.m
new file mode 100644
index 0000000000000000000000000000000000000000..5e39fb2f0b8dce9575623677f9f19197b5780bbe
--- /dev/null
+++ b/matlab/check_prior_bounds.m
@@ -0,0 +1,51 @@
+function check_prior_bounds(xparam1,bounds,M_,estim_params_,options_,bayestopt_)
+% function check_prior_bounds(xparam1,bounds,M_,estim_params_,options_)
+% checks the parameter vector of violations of the prior bounds
+% Inputs:
+%   -xparam1        [double]    vector of parameters to be estimated (initial values)
+%   -bounds         [vector]    vector containing the lower and upper
+%   bounds
+%   -M_             [structure] characterizing the model. 
+%   -estim_params_  [structure] characterizing parameters to be estimated
+%   -options_       [structure] characterizing the options
+%   -bayestopt_     [structure] characterizing priors
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+outside_bound_pars=find(xparam1 < bounds(:,1) | xparam1 > bounds(:,2));
+if ~isempty(outside_bound_pars)
+    for ii=1:length(outside_bound_pars)
+        outside_bound_par_names{ii,1}=get_the_name(outside_bound_pars(ii),0,M_,estim_params_,options_);
+    end
+    disp_string=[outside_bound_par_names{1,:}];
+    for ii=2:size(outside_bound_par_names,1)
+        disp_string=[disp_string,', ',outside_bound_par_names{ii,:}];
+    end
+    error(['Initial value(s) of ', disp_string ,' are outside parameter bounds. Potentially, you should set prior_trunc=0. If you used the mode_file-option, check whether your mode-file is consistent with the priors.'])
+end
+inadmissible_inverse_gamma_values=find(bayestopt_.pshape==4 & xparam1 == 0);
+if ~isempty(inadmissible_inverse_gamma_values)
+    for ii=1:length(inadmissible_inverse_gamma_values)
+        inadmissible_inverse_gamma_par_names{ii,1}=get_the_name(inadmissible_inverse_gamma_values(ii),0,M_,estim_params_,options_);
+    end
+    disp_string=[inadmissible_inverse_gamma_par_names{1,:}];
+    for ii=2:size(inadmissible_inverse_gamma_par_names,1)
+        disp_string=[disp_string,', ',inadmissible_inverse_gamma_par_names{ii,:}];
+    end
+    error(['Initial value(s) of ', disp_string ,' is zero. This is not allowed when using an inverse gamma prior.\n'])
+end
\ No newline at end of file
diff --git a/matlab/compute_mh_covariance_matrix.m b/matlab/compute_mh_covariance_matrix.m
index 558c19d4c3056ba8f3d96b6195738a7b605eea2f..05b0a42620113714959036ecf0452fa88abd32b8 100644
--- a/matlab/compute_mh_covariance_matrix.m
+++ b/matlab/compute_mh_covariance_matrix.m
@@ -40,10 +40,14 @@ n = estim_params_.np + ...
     estim_params_.ncx+ ...
     estim_params_.ncn+ ...
     estim_params_.nvx;
+
 nblck = options_.mh_nblck;
 
-MhDirectoryName = CheckPath('metropolis',M_.dname);
-load([ MhDirectoryName '/'  M_.fname '_mh_history.mat'])
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+ModelName = M_.fname;
+BaseName = [MetropolisFolder filesep ModelName];
+
+load_last_mh_history_file(MetropolisFolder, ModelName);
 
 FirstMhFile = record.KeepedDraws.FirstMhFile;
 FirstLine   = record.KeepedDraws.FirstLine;
@@ -58,8 +62,7 @@ offset = 0;
 for b=1:nblck
     first_line = FirstLine;
     for n = FirstMhFile:TotalNumberOfMhFiles
-        %for b = 1:nblck
-        load([ MhDirectoryName '/' M_.fname '_mh' int2str(n) '_blck' int2str(b) '.mat'],'x2','logpo2'); 
+        load([ BaseName '_mh' int2str(n) '_blck' int2str(b) '.mat'],'x2','logpo2'); 
         [tmp,idx] = max(logpo2);
         if tmp>posterior_kernel_at_the_mode
             posterior_kernel_at_the_mode = tmp;
diff --git a/matlab/compute_overall_acceptance_ratio.m b/matlab/compute_overall_acceptance_ratio.m
new file mode 100644
index 0000000000000000000000000000000000000000..d3b323eb309659191033067caf984802170a5bf5
--- /dev/null
+++ b/matlab/compute_overall_acceptance_ratio.m
@@ -0,0 +1,35 @@
+function overallacceptanceratio = compute_overall_acceptance_ratio(MetropolisFolder, ModelName)
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+    
+BaseName = [MetropolisFolder filesep ModelName];
+mh_history_files = dir([BaseName '_mh_history_*.mat']);
+
+n = length(mh_history_files);
+
+load([BaseName '_mh_history_' num2str(0)]);
+TotalNumberOfDraws = record.MhDraws(end,1);
+TotalNumberOfAcceptedProposals = record.AcceptanceRatio*record.MhDraws(end,1);  
+
+for i=2:n
+    load([BaseName '_mh_history_' num2str(i-1)]);
+    TotalNumberOfDraws = TotalNumberOfDraws + record.MhDraws(end,1);
+    TotalNumberOfAcceptedProposals = TotalNumberOfAcceptedProposals + record.AcceptanceRatio*record.MhDraws(end,1);  
+end
+
+overallacceptanceratio = TotalNumberOfAcceptedProposals/TotalNumberOfDraws;
\ No newline at end of file
diff --git a/matlab/csminwel1.m b/matlab/csminwel1.m
index 403b9a58ed2a325cc7c22102f8c9b0f19ab95b4f..b6e38fedc0f6f0b9d61474e6a0a18b25cfd108d6 100644
--- a/matlab/csminwel1.m
+++ b/matlab/csminwel1.m
@@ -100,7 +100,7 @@ f=f0;
 H=H0;
 cliff=0;
 while ~done
-    % penalty for dsge_likelihood and DsgeVarLikelihood
+    % penalty for dsge_likelihood and dsge_var_likelihood
     objective_function_penalty_base = f;
 
     g1=[]; g2=[]; g3=[];
diff --git a/matlab/cubature_with_gaussian_weight.m b/matlab/cubature_with_gaussian_weight.m
index 032ed196fb6a289e9fc673cf074d28e86b66ef8a..1e011790813372668b212fb7b2b29636069dfcb0 100644
--- a/matlab/cubature_with_gaussian_weight.m
+++ b/matlab/cubature_with_gaussian_weight.m
@@ -137,7 +137,8 @@ function m = ee(n,i,j)
 %$ try
 %$     [nodes,weights] = cubature_with_gaussian_weight(d,3);
 %$     t(1) = 1;
-%$ catch exception
+%$ catch
+%$     exception = lasterror;
 %$     t = t(1);
 %$     T = all(t);
 %$     LOG = getReport(exception,'extended');
@@ -177,7 +178,8 @@ function m = ee(n,i,j)
 %$ try
 %$     [nodes,weights] = cubature_with_gaussian_weight(d,3);
 %$     t(1) = 1;
-%$ catch exception
+%$ catch
+%$     exception = lasterror;
 %$     t = t(1);
 %$     T = all(t);
 %$     LOG = getReport(exception,'extended');
@@ -218,7 +220,8 @@ function m = ee(n,i,j)
 %$ try
 %$     [nodes,weights] = cubature_with_gaussian_weight(d,3);
 %$     t(1) = 1;
-%$ catch exception
+%$ catch
+%$     exception = lasterror;
 %$     t = t(1);
 %$     T = all(t);
 %$     LOG = getReport(exception,'extended');
@@ -253,7 +256,8 @@ function m = ee(n,i,j)
 %$ try
 %$     [nodes,weights] = cubature_with_gaussian_weight(d,3);
 %$     t(1) = 1;
-%$ catch exception
+%$ catch
+%$     exception = lasterror;
 %$     t = t(1);
 %$     T = all(t);
 %$     LOG = getReport(exception,'extended');
@@ -292,7 +296,8 @@ function m = ee(n,i,j)
 %$ try
 %$     [nodes,weights] = cubature_with_gaussian_weight(d,5);
 %$     t(1) = 1;
-%$ catch exception
+%$ catch
+%$     exception = lasterror;
 %$     t = t(1);
 %$     T = all(t);
 %$     LOG = getReport(exception,'extended');
@@ -337,7 +342,8 @@ function m = ee(n,i,j)
 %$     nodes
 %$     weights
 %$     t(1) = 1;
-%$ catch exception
+%$ catch
+%$     exception = lasterror;
 %$     t = t(1);
 %$     T = all(t);
 %$     LOG = getReport(exception,'extended');
diff --git a/matlab/cycle_reduction.m b/matlab/cycle_reduction.m
index 90a24d34ea08a13b5c12c2744b6dadc01d847c3e..f9cb2c9b5dd43647d832895b718499cbf1ed2b70 100644
--- a/matlab/cycle_reduction.m
+++ b/matlab/cycle_reduction.m
@@ -116,7 +116,7 @@ end
 %$ t = zeros(3,1);
 %$
 %$ % Set the dimension of the problem to be solved.
-%$ n = 2000;
+%$ n = 500;
 %$
 %$ % Set the equation to be solved
 %$ A = eye(n);
diff --git a/matlab/reports/@objArray/subsasgn.m b/matlab/delete_mh_history_files.m
similarity index 60%
rename from matlab/reports/@objArray/subsasgn.m
rename to matlab/delete_mh_history_files.m
index 6cc07616db04ba403d85c1c93820e299f10160d9..64b720ec9ba9f7dd666f2f272b93de9df0240c61 100644
--- a/matlab/reports/@objArray/subsasgn.m
+++ b/matlab/delete_mh_history_files.m
@@ -1,6 +1,5 @@
-function B = subsasgn(A, S, V)
-% function B = subsasgn(A, S, V)
-
+function info = delete_mh_history_files(MetropolisFolder, ModelName)
+    
 % Copyright (C) 2013 Dynare Team
 %
 % This file is part of Dynare.
@@ -18,22 +17,16 @@ function B = subsasgn(A, S, V)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-B = A;
-if length(S) > 1
-    for i=1:(length(S)-1)
-        B = subsref(B, S(i));
-    end
-    B = subsasgn(B, S(end), V);
-    B = subsasgn(A, S(1:(end-1)), B);
-    return
-end
+BaseName = [MetropolisFolder filesep ModelName];
 
-switch S.type
-    case '()'
-        index = S.subs{:};
-        assert(isnumeric(index));
-        B.objs{index} = V;
-    otherwise
-        error('objArray.subsasgn: syntax error');
-end
+% Get the list of all the mh_history files.
+mh_history_files = dir([BaseName '_mh_history_*.mat']);
+
+% Delete the mh-history files (old or new format) if any.
+if isequal(length(mh_history_files),0)
+    if exist([BaseName '_mh_history.mat'])
+        delete([BaseName '_mh_history.mat'])
+    end
+else
+    delete([BaseName '_mh_history_*.mat'])
 end
\ No newline at end of file
diff --git a/matlab/det_cond_forecast.m b/matlab/det_cond_forecast.m
index 18ebb53f3006fe6aa875cc147be9e152f9062a4d..4cbbe125fe764ec249899559553b3d0015e21d29 100644
--- a/matlab/det_cond_forecast.m
+++ b/matlab/det_cond_forecast.m
@@ -1,357 +1,846 @@
-function det_cond_forecast(constrained_paths, constrained_vars, options_cond_fcst, constrained_perfect_foresight)
-% Computes conditional forecasts for a deterministic model.
-%
-% INPUTS
-%  o constrained_paths    [double]      m*p array, where m is the number of constrained endogenous variables and p is the number of constrained periods.
-%  o constrained_vars     [char]        m*x array holding the names of the controlled endogenous variables.
-%  o options_cond_fcst    [structure]   containing the options. The fields are:
-%                                                             + replic              [integer]   scalar, number of monte carlo simulations.
-%                                                             + parameter_set       [char]      values of the estimated parameters:
-%                                                                                               "posterior_mode",
-%                                                                                               "posterior_mean",
-%                                                                                               "posterior_median",
-%                                                                                               "prior_mode" or
-%                                                                                               "prior mean".
-%                                                                                   [double]     np*1 array, values of the estimated parameters.
-%                                                             + controlled_varexo   [char]       m*x array, list of controlled exogenous variables.
-%                                                             + conf_sig            [double]     scalar in [0,1], probability mass covered by the confidence bands.
-%  o constrained_perfect_foresight [double] m*1 array indicating if the endogenous variables path is perfectly foresight (1) or is a surprise (0)
-%
-%
-% OUTPUTS
-%  None.
-%
-% SPECIAL REQUIREMENTS
-%  This routine has to be called after an estimation statement or an estimated_params block.
-%
-% REMARKS
-%  [1] Results are stored in a structure which is saved in a mat file called conditional_forecasts.mat.
-%  [2] Use the function plot_icforecast to plot the results.
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-global options_ oo_ M_
-
-if ~isfield(options_cond_fcst,'periods') || isempty(options_cond_fcst.periods)
-    options_cond_fcst.periods = 100;
-end
-
-maximum_lag = M_.maximum_lag;
-maximum_lead = M_.maximum_lead;
-ys = oo_.steady_state;
-ny = size(ys,1);
-xs = [oo_.exo_steady_state ; oo_.exo_det_steady_state];
-nx = size(xs,1);
-
-constrained_periods = size(constrained_paths,2);
-n_endo_constrained = size(constrained_vars,1);
-if isfield(options_cond_fcst,'controlled_varexo')
-    n_control_exo = size(options_cond_fcst.controlled_varexo, 1);
-    if n_control_exo ~= n_endo_constrained
-        error(['det_cond_forecast:: the number of exogenous controlled variables (' int2str(n_control_exo) ') has to be equal to the number of constrained endogenous variabes (' int2str(n_endo_constrained) ')'])
-    end;
-else
-    error('det_cond_forecast:: to run a deterministic conditional forecast you have to specified the exogenous variables controlled using the option controlled_varex in forecast command');
-end;
-
-exo_names = M_.exo_names;
-controlled_varexo = zeros(1,n_control_exo);
-for i = 1:nx
-    for j=1:n_control_exo
-        if strcmp(deblank(exo_names(i,:)), deblank(options_cond_fcst.controlled_varexo(j,:)))
-            controlled_varexo(j) = i;
-        end
-    end
-end
-
-%todo check if zero => error message
-
-save_options_initval_file = options_.initval_file;
-options_.initval_file = '__';
-
-[pos_constrained_pf, junk] = find(constrained_perfect_foresight);
-indx_endo_solve_pf = constrained_vars(pos_constrained_pf);
-if isempty(indx_endo_solve_pf)
-    pf = 0;
-else
-    pf = length(indx_endo_solve_pf);
-end;
-indx_endo_solve_surprise = setdiff(constrained_vars, indx_endo_solve_pf);
-
-if isempty(indx_endo_solve_surprise)
-    surprise = 0;
-else
-    surprise = length(indx_endo_solve_surprise);
-end;
-
-eps = options_.solve_tolf;
-maxit = options_.solve_maxit;
-
-initial_conditions = oo_.steady_state;
-past_val = 0;
-save_options_periods = options_.periods;
-options_.periods = options_cond_fcst.periods;
-save_options_dynatol_f = options_.dynatol.f;
-options_.dynatol.f = 1e-8;
-eps1  = 1e-4;
-exo = zeros(maximum_lag + options_cond_fcst.periods, nx);
-endo = zeros(maximum_lag + options_cond_fcst.periods, ny);
-endo(1,:) = oo_.steady_state';
-% if all the endogenous paths are perfectly anticipated we do not need to
-% implement extended path
-if pf && ~surprise
-    time_index_constraint = maximum_lag + 1:maximum_lag + constrained_periods;
-    second_system_size = pf * constrained_periods;
-    J = zeros(second_system_size,second_system_size);
-    r = zeros(second_system_size,1);
-    indx_endo = zeros(second_system_size,1);
-    col_count = 1;
-    for j = 1:length(constrained_vars)
-        indx_endo(col_count : col_count + constrained_periods - 1) = constrained_vars(j) + (time_index_constraint - 1) * ny;
-        col_count = col_count + constrained_periods;
-    end;
-    make_ex_;
-    make_y_;
-    it = 1;
-    convg = 0;
-    while ~convg && it <= maxit
-        disp('---------------------------------------------------------------------------------------------');
-        disp(['iteration ' int2str(it)]);
-        not_achieved = 1;
-        alpha = 1;
-        while not_achieved
-            simul();
-            result = sum(sum(isfinite(oo_.endo_simul(:,time_index_constraint)))) == ny * constrained_periods;
-            if (~oo_.deterministic_simulation.status || ~result) && it > 1
-                not_achieved = 1;
-                alpha = alpha / 2;
-                col_count = 1;
-                for j = controlled_varexo
-                    oo_.exo_simul(time_index_constraint,j) = (old_exo(:,j) + alpha * D_exo(col_count: col_count + constrained_periods - 1));
-                    col_count = col_count + constrained_periods;
-                end;
-                disp(['Divergence in  Newton: reducing the path length alpha=' num2str(alpha)]);
-                oo_.endo_simul = repmat(oo_.steady_state, 1, options_cond_fcst.periods + 2);
-            else
-                not_achieved = 0;
-            end;
-        end;
-        
-        y = oo_.endo_simul(constrained_vars(j), time_index_constraint);
-        ys = oo_.endo_simul(indx_endo);
-        col_count = 1;
-        for j = 1:length(constrained_vars)
-            y = oo_.endo_simul(constrained_vars(j), time_index_constraint);
-            r(col_count:col_count+constrained_periods - 1) = (y - constrained_paths(j,1:constrained_periods))';
-            col_count = col_count + constrained_periods;
-        end;
-        col_count = 1;
-        for j = controlled_varexo
-            for time = time_index_constraint
-                saved = oo_.exo_simul(time,j);
-                oo_.exo_simul(time,j) = oo_.exo_simul(time,j) + eps1;
-                simul();
-                J(:,col_count) = (oo_.endo_simul(indx_endo) - ys) / eps1;
-                oo_.exo_simul(time,j) = saved;
-                col_count = col_count + 1;
-            end;
-        end;
-        normr = norm(r, 1);
-        
-        disp(['iteration ' int2str(it) ' error = ' num2str(normr)]);
-        
-        if normr <= eps
-            convg = 1;
-            disp('convergence achieved');
-        else
-            % Newton update on exogenous shocks
-            old_exo = oo_.exo_simul(time_index_constraint,:);
-            D_exo = - J \ r;
-            col_count = 1;
-            for j = controlled_varexo
-                oo_.exo_simul(time_index_constraint,j) = (oo_.exo_simul(time_index_constraint,j) + D_exo(col_count: col_count + constrained_periods - 1));
-                col_count = col_count + constrained_periods;
-            end;
-        end;
-        it = it + 1;
-    end;
-    endo(maximum_lag + 1 :maximum_lag + options_cond_fcst.periods ,:) = oo_.endo_simul(:,maximum_lag + 1:maximum_lag + options_cond_fcst.periods )';
-    exo = oo_.exo_simul;
-else
-    for t = 1:constrained_periods
-        disp('=============================================================================================');
-        disp(['t=' int2str(t) ' constrained_paths(:,t)=' num2str(constrained_paths(:,t)') ]);
-        disp('=============================================================================================');
-        if t == 1
-            make_ex_;
-            exo_init = oo_.exo_simul;
-            make_y_;
-        end;
-        oo_.exo_simul = exo_init;
-        oo_.endo_simul(:,1) = initial_conditions;
-        convg = 0;
-        it = 1;
-        
-        time_index_constraint = maximum_lag + 1:maximum_lag + constrained_periods - t + 1;
-        
-        second_system_size = surprise + pf * (constrained_periods - t + 1);
-        indx_endo = zeros(second_system_size,1);
-        col_count = 1;
-        for j = 1:length(constrained_vars)
-            if constrained_perfect_foresight(j)
-                indx_endo(col_count : col_count + constrained_periods - t) = constrained_vars(j) + (time_index_constraint - 1) * ny;
-                col_count = col_count + constrained_periods - t + 1;
-            else
-                indx_endo(col_count) = constrained_vars(j) + maximum_lag * ny;
-                col_count = col_count + 1;
-            end;
-        end;
-        
-        J = zeros(second_system_size,second_system_size);
-        
-        r = zeros(second_system_size,1);
-        
-        while ~convg && it <= maxit
-            disp('---------------------------------------------------------------------------------------------');
-            disp(['iteration ' int2str(it) ' time ' int2str(t)]);
-            not_achieved = 1;
-            alpha = 1;
-            while not_achieved
-                simul();
-                result = sum(sum(isfinite(oo_.endo_simul(:,time_index_constraint)))) == ny * length(time_index_constraint);
-                if (~oo_.deterministic_simulation.status || ~result) && it > 1
-                    not_achieved = 1;
-                    alpha = alpha / 2;
-                    col_count = 1;
-                    for j = controlled_varexo
-                        if constrained_perfect_foresight(j)
-                            oo_.exo_simul(time_index_constraint,j) = (old_exo(time_index_constraint,j) + alpha * D_exo(col_count: col_count + constrained_periods - t));
-                            col_count = col_count + constrained_periods - t + 1;
-                        else
-                            oo_.exo_simul(maximum_lag + 1,j) = old_exo(maximum_lag + 1,j) + alpha * D_exo(col_count);
-                            col_count = col_count + 1;
-                        end;
-                    end;
-                    disp(['Divergence in  Newton: reducing the path length alpha=' num2str(alpha) ' result=' num2str(result) ' sum(sum)=' num2str(sum(sum(isfinite(oo_.endo_simul(:,time_index_constraint))))) ' ny * length(time_index_constraint)=' num2str(ny * length(time_index_constraint)) ' oo_.deterministic_simulation.status=' num2str(oo_.deterministic_simulation.status)]);
-                    oo_.endo_simul = [initial_conditions repmat(oo_.steady_state, 1, options_cond_fcst.periods + 1)];
-                else
-                    not_achieved = 0;
-                end;
-            end;
-            if t==constrained_periods
-                ycc = oo_.endo_simul;
-            end;
-            yc = oo_.endo_simul(:,maximum_lag + 1);
-            ys = oo_.endo_simul(indx_endo);
-            
-            col_count = 1;
-            for j = 1:length(constrained_vars)
-                if constrained_perfect_foresight(j)
-                    y = oo_.endo_simul(constrained_vars(j), time_index_constraint);
-                    r(col_count:col_count+constrained_periods - t) = (y - constrained_paths(j,t:constrained_periods))';
-                    col_count = col_count + constrained_periods - t + 1;
-                else
-                    y = yc(constrained_vars(j));
-                    r(col_count) = y - constrained_paths(j,t);
-                    col_count = col_count + 1;
-                end;
-            end
-            
-            disp('computation of derivatives w.r. to exogenous shocks');
-            col_count = 1;
-            for j = 1:length(controlled_varexo)
-                j_pos = controlled_varexo(j);
-                if constrained_perfect_foresight(j)
-                    for time = time_index_constraint
-                        saved = oo_.exo_simul(time,j_pos);
-                        oo_.exo_simul(time,j_pos) = oo_.exo_simul(time,j_pos) + eps1;
-                        simul();
-                        J(:,col_count) = (oo_.endo_simul(indx_endo) - ys) / eps1;
-                        oo_.exo_simul(time,j_pos) = saved;
-                        col_count = col_count + 1;
-                    end;
-                else
-                    saved = oo_.exo_simul(maximum_lag+1,j_pos);
-                    oo_.exo_simul(maximum_lag+1,j_pos) = oo_.exo_simul(maximum_lag+1,j_pos) + eps1;
-                    simul();
-                    J(:,col_count) = (oo_.endo_simul(indx_endo) - ys) / eps1;
-                    oo_.exo_simul(maximum_lag+1,j_pos) = saved;
-                    col_count = col_count + 1;
-                end;
-            end;
-            
-            normr = norm(r, 1);
-            
-            disp(['iteration ' int2str(it) ' error = ' num2str(normr) ' at time ' int2str(t)]);
-            
-            if normr <= eps
-                convg = 1;
-                disp('convergence achieved');
-            else
-                % Newton update on exogenous shocks
-                D_exo = - J \ r;
-                old_exo = oo_.exo_simul;
-                col_count = 1;
-                for j = 1:length(controlled_varexo)
-                    j_pos=controlled_varexo(j);
-                    if constrained_perfect_foresight(j)
-                        oo_.exo_simul(time_index_constraint,j_pos) = (oo_.exo_simul(time_index_constraint,j_pos) + D_exo(col_count: col_count + constrained_periods - t));
-                        col_count = col_count + constrained_periods - t + 1;
-                    else
-                        oo_.exo_simul(maximum_lag + 1,j_pos) = oo_.exo_simul(maximum_lag + 1,j_pos) + D_exo(col_count);
-                        col_count = col_count + 1;
-                    end;
-                end;
-            end;
-            it = it + 1;
-        end;
-        if ~convg
-            error(['convergence not achived at time ' int2str(t) ' after ' int2str(it) ' iterations']);
-        end;
-        for j = 1:length(controlled_varexo)
-            j_pos=controlled_varexo(j);
-            if constrained_perfect_foresight(j)
-                % in case of mixed surprise and perfect foresight
-                % endogenous path at each date all the exogenous paths have to be
-                % stored. The paths are stacked in exo.
-                for time = time_index_constraint;
-                    exo(past_val + time,j_pos) = oo_.exo_simul(time,j_pos);
-                end
-            else
-                exo(maximum_lag + t,j_pos) = oo_.exo_simul(maximum_lag + 1,j_pos);
-            end;
-        end;
-        past_val = past_val + length(time_index_constraint);
-        if t < constrained_periods
-            endo(maximum_lag + t,:) = yc;
-        else
-            endo(maximum_lag + t :maximum_lag + options_cond_fcst.periods ,:) = ycc(:,maximum_lag + 1:maximum_lag + options_cond_fcst.periods - constrained_periods + 1)';
-        end;
-        initial_conditions = yc;
-    end;
-end;
-options_.periods = save_options_periods;
-options_.dynatol.f = save_options_dynatol_f;
-options_.initval_file = save_options_initval_file;
-% disp('endo');
-% disp(endo);
-% disp('exo');
-% disp(exo);
-
-oo_.endo_simul = endo';
-oo_.exo_simul = exo;
+function data_set = det_cond_forecast(varargin)
+% Computes conditional forecasts using the extended path method.
+%
+% INPUTS
+%  o plan                 [structure]   A structure describing the different shocks and the endogenous varibales, the date of the shocks and the path of the shock.
+%                                       The plan structure is created by the functions init_plan, basic_plan and flip_plan
+%  o [dataset]            [dseries]     A dserie containing the initial values of the shocks and the endogenous variables (usually the dseries generated by the smoother).
+%  o [starting_date]      [dates]       The first date of the forecast.
+%
+%
+% OUTPUTS
+%  dataset                [dseries]     Returns a dseries containing the forecasted endgenous variables and shocks
+%
+%
+% Copyright (C) 2013-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+global options_ oo_ M_
+pp = 2;
+initial_conditions = oo_.steady_state;
+
+%We have to get an initial guess for the conditional forecast 
+% and terminal conditions for the non-stationary variables, we
+% use the first order approximation of the rational expectation solution.
+dr = struct();
+oo_.dr=set_state_space(dr,M_,options_);
+options_.order = 1;
+[dr,Info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+b_surprise = 0;
+b_pf = 0;
+surprise = 0;
+pf = 0;
+is_shock = [];
+is_constraint = [];
+if length(varargin) > 3
+    % regular way to call
+    constrained_paths = varargin{1};
+    max_periods_simulation = size(constrained_paths, 2);
+    constrained_vars = varargin{2};
+    options_cond_fcst = varargin{3};
+    constrained_perfect_foresight = varargin{4};
+    constraint_index = cell(max_periods_simulation,1);
+    nvars = length(constrained_vars);
+    for i = 1:max_periods_simulation
+        constraint_index{i} = 1:nvars;
+    end;
+    direct_mode = 0;
+    shocks_present = 0;
+    controlled_varexo = options_cond_fcst.controlled_varexo;
+    nvarexo = size(controlled_varexo, 1);
+    options_cond_fcst.controlled_varexo = zeros(nvarexo,1);
+    exo_names = cell(M_.exo_nbr,1);
+    for i = 1:M_.exo_nbr
+        exo_names{i} = deblank(M_.exo_names(i,:));
+    end
+    for i = 1:nvarexo
+        j = find(strcmp(controlled_varexo(i,:), exo_names));
+        if ~isempty(j)
+            options_cond_fcst.controlled_varexo(i) = j;
+        else
+            error(['Unknown exogenous variable ' controlled_varexo(i,:)]);
+        end
+    end
+        
+else
+    % alternative way to call
+    plan = varargin{1};
+    if length(varargin) >= 2
+        dset = varargin{2};
+        if ~isa(dset,'dseries')
+            error('the second argmuent should be a dseries');
+        end
+        if length(varargin) >= 3
+            range = varargin{3};
+            if ~isa(range,'dates')
+                error('the third argmuent should be a dates');
+            end
+            %if (range(range.ndat) > dset.time(dset.nobs) )
+            if (range(range.ndat) > dset.dates(dset.nobs) )
+                s1 = strings(dset.dates(dset.nobs));
+                s2 = strings(range(range.ndat));
+                error(['the dseries ' inputname(2) ' finish at time ' s1{1} ' before the last period of forecast ' s2{1}]);
+            end
+            
+            sym_dset = dset(dates(-range(1)):dates(range(range.ndat)));
+            
+            oo_.exo_simul = repmat(oo_.exo_steady_state',max(range.ndat + 1, options_.periods),1);
+            oo_.endo_simul = repmat(oo_.steady_state, 1, max(range.ndat + 1, options_.periods));
+            
+            for i = 1:sym_dset.vobs
+                iy = find(strcmp(strtrim(sym_dset.name{i}), strtrim(plan.endo_names)));
+                if ~isempty(iy)
+                    oo_.endo_simul(iy,1:sym_dset.nobs) = sym_dset.data(:, i);
+                    initial_conditions(iy) = sym_dset.data(1, i);
+                 else
+                     ix = find(strcmp(strtrim(sym_dset.name{i}), strtrim(plan.exo_names)));
+                     if ~isempty(ix) 
+                         oo_.exo_simul(1, ix) = sym_dset.data(1, i)';
+                    else
+                        %warning(['The variable ' sym_dset.name{i} ' in the dataset ' inputname(2) ' is not a endogenous neither an exogenous variable!!']);
+                    end
+                 end
+            end
+            for i = 1:length(M_.aux_vars)
+                if M_.aux_vars(i).type == 1 %lag variable
+                    iy = find(strcmp(deblank(M_.endo_names(M_.aux_vars(i).orig_index,:)), sym_dset.name));
+                    if ~isempty(iy)
+                        oo_.endo_simul(M_.aux_vars(i).endo_index, 1:sym_dset.nobs) = dset(dates(range(1) + (M_.aux_vars(i).orig_lead_lag - 1)):dates(range(range.ndat) + M_.aux_vars(i).orig_lead_lag)).data(:,iy);
+                        initial_conditions(M_.aux_vars(i).endo_index) = dset(dates(range(1) + (M_.aux_vars(i).orig_lead_lag - 1))).data(:,iy);
+                    else
+                        warning(['The variable auxiliary ' M_.endo_names(M_.aux_vars(i).endo_index, :) ' associated to the variable ' M_.endo_names(M_.aux_vars(i).orig_index,:) ' do not appear in the dataset']);
+                    end
+                else
+                    oo_.endo_simul(M_.aux_vars(i).endo_index, 1:sym_dset.nobs) = repmat(oo_.steady_state(M_.aux_vars(i).endo_index), 1, range.ndat + 1);
+                end
+            end
+        else
+           error('impossible case'); 
+        end;
+            
+    else
+        oo_.exo_simul = repmat(oo_.exo_steady_state',options_.periods+2,1);
+        oo_.endo_simul = repmat(oo_.steady_state, 1, options_.periods+2);
+    end
+    
+    direct_mode = 1;
+    constrained_paths = plan.constrained_paths_;
+    constrained_vars = plan.constrained_vars_;
+    options_cond_fcst = plan.options_cond_fcst_;
+    constrained_perfect_foresight = plan.constrained_perfect_foresight_;
+    constrained_periods = plan.constrained_date_;
+    if ~isempty(plan.shock_paths_)
+        shock_paths = plan.shock_paths_;
+        shock_vars = plan.shock_vars_;
+        shock_perfect_foresight = plan.shock_perfect_foresight_;
+        shock_periods = plan.shock_date_;
+        shocks_present = 1;
+    else
+        shocks_present = 0;
+    end
+    
+    total_periods = plan.date;
+    
+end;
+
+if ~isfield(options_cond_fcst,'periods') || isempty(options_cond_fcst.periods)
+    options_cond_fcst.periods = 100;
+end
+
+options_.periods = 10;   
+
+if direct_mode == 1
+    n_periods = length(constrained_periods);
+    is_constraint = zeros(size(total_periods), n_periods);
+    constrained_paths_cell = constrained_paths;
+    clear constrained_paths;
+    constrained_paths = zeros(n_periods, size(total_periods));
+    max_periods_simulation = 0;
+    for i = 1:n_periods
+        period_i = constrained_periods{i};
+        %period_i
+        tp = total_periods(1);
+        if size(period_i) > 1
+            init_periods = period_i(1);
+            tp_end = period_i(end);
+        else
+            init_periods = period_i;
+            tp_end = period_i;
+        end;
+        tp0 = tp;
+        while tp < init_periods
+            tp = tp + 1;
+        end
+        j = 0;
+        while tp <= tp_end
+            is_constraint(tp - tp0 + 1, i) = 1;
+            constrained_paths(i, tp - tp0 + 1) = constrained_paths_cell{i}(j + 1);
+            tp = tp + 1;
+            j = j + 1;
+        end;
+        if tp - tp0 > max_periods_simulation 
+            max_periods_simulation = tp - tp0;
+        end;
+    end
+    n_nnz = length(sum(is_constraint,2));
+    if n_nnz > 0
+        constraint_index = cell(n_nnz,1);
+        for i= 1:n_nnz
+            constraint_index{i} = find(is_constraint(i,:));
+        end;
+    end;
+    if shocks_present
+        n_periods = length(shock_periods);
+        shock_paths_cell = shock_paths;
+        clear shock_paths;
+        shock_paths = zeros(n_periods, size(total_periods));
+        is_shock = zeros(size(total_periods), n_periods);
+        for i = 1:n_periods
+            period_i = shock_periods{i};
+            %period_i
+            tp = total_periods(1);
+            if size(period_i) > 1
+                init_periods = period_i(1);
+                tp_end = period_i(end);
+            else
+                init_periods = period_i;
+                tp_end = period_i;
+            end;
+            tp0 = tp;
+            while tp < init_periods
+                tp = tp + 1;
+            end
+            j = 0;
+            while tp <= tp_end
+                is_shock(tp - tp0 + 1, i) = 1;
+                shock_paths(i, tp - tp0 + 1) = shock_paths_cell{i}(j + 1);
+                tp = tp + 1;
+                j = j + 1;
+            end;
+            if tp - tp0 > max_periods_simulation 
+                max_periods_simulation = tp - tp0;
+            end;
+        end;
+        n_nnz = length(sum(is_shock,2));
+        if n_nnz > 0
+            shock_index = cell(n_nnz, 1);
+            for i= 1:n_nnz
+                shock_index{i} = find(is_shock(i,:));
+            end;
+        end
+    end
+else
+    is_constraint = ones(size(constrained_paths));
+end
+
+
+
+maximum_lag = M_.maximum_lag;
+
+ys = oo_.steady_state;
+ny = size(ys,1);
+xs = [oo_.exo_steady_state ; oo_.exo_det_steady_state];
+nx = size(xs,1);
+
+constrained_periods = max_periods_simulation;   
+n_endo_constrained = size(constrained_vars,1);
+if isfield(options_cond_fcst,'controlled_varexo')
+    n_control_exo = size(options_cond_fcst.controlled_varexo, 1);
+    if n_control_exo ~= n_endo_constrained
+        error(['det_cond_forecast: the number of exogenous controlled variables (' int2str(n_control_exo) ') has to be equal to the number of constrained endogenous variabes (' int2str(n_endo_constrained) ')'])
+    end;
+else
+    error('det_cond_forecast: to run a deterministic conditional forecast you have to specified the exogenous variables controlled using the option controlled_varexo in forecast command');
+end;
+
+% if n_endo_constrained == 0
+%     options_.ep.use_bytecode = options_.bytecode;
+%     data_set = extended_path(initial_conditions, max_periods_simulation);
+% end
+
+if length(varargin) >= 1
+    controlled_varexo = options_cond_fcst.controlled_varexo;
+else
+    exo_names = M_.exo_names;
+    controlled_varexo = zeros(1,n_control_exo);
+    for i = 1:nx
+        for j=1:n_control_exo
+            if strcmp(deblank(exo_names(i,:)), deblank(options_cond_fcst.controlled_varexo(j,:)))
+                controlled_varexo(j) = i;
+            end
+        end
+    end
+end
+
+%todo check if zero => error message
+
+save_options_initval_file = options_.initval_file;
+options_.initval_file = '__';
+
+[pos_constrained_pf, junk] = find(constrained_perfect_foresight);
+indx_endo_solve_pf = constrained_vars(pos_constrained_pf);
+if isempty(indx_endo_solve_pf)
+    pf = 0;
+else
+    pf = length(indx_endo_solve_pf);
+end;
+indx_endo_solve_surprise = setdiff(constrained_vars, indx_endo_solve_pf);
+
+if isempty(indx_endo_solve_surprise)
+    surprise = 0;
+else
+    surprise = length(indx_endo_solve_surprise);
+end;
+
+
+eps = options_.solve_tolf;
+maxit = options_.simul.maxit;
+
+
+past_val = 0;
+save_options_periods = options_.periods;
+options_.periods = options_cond_fcst.periods;
+save_options_dynatol_f = options_.dynatol.f;
+options_.dynatol.f = 1e-8;
+eps1  = 1e-7;%1e-4;
+exo = zeros(maximum_lag + options_cond_fcst.periods, nx);
+endo = zeros(maximum_lag + options_cond_fcst.periods, ny);
+endo(1,:) = oo_.steady_state';
+verbosity = options_.verbosity;
+options_.verbosity = 0;
+
+
+% if all the endogenous paths are perfectly anticipated we do not need to
+% implement the extended path
+if pf && ~surprise
+    time_index_constraint = maximum_lag + 1:maximum_lag + constrained_periods;
+    second_system_size = pf * constrained_periods;
+    J = zeros(second_system_size,second_system_size);
+    r = zeros(second_system_size,1);
+    indx_endo = zeros(second_system_size,1);
+    col_count = 1;
+    for j = 1:length(constrained_vars)
+        indx_endo(col_count : col_count + constrained_periods - 1) = constrained_vars(j) + (time_index_constraint - 1) * ny;
+        col_count = col_count + constrained_periods;
+    end;
+    make_ex_;
+    make_y_;
+    it = 1;
+    convg = 0;
+    normra = 1e+50;
+    while ~convg && it <= maxit
+        disp('---------------------------------------------------------------------------------------------');
+        disp(['iteration ' int2str(it)]);
+        not_achieved = 1;
+        alpha = 1;
+        while not_achieved
+            simul();
+            result = sum(sum(isfinite(oo_.endo_simul(:,time_index_constraint)))) == ny * constrained_periods;
+            if result
+                y = oo_.endo_simul(constrained_vars, time_index_constraint);
+                ys = oo_.endo_simul(indx_endo);
+                col_count = 1;
+                for j = 1:length(constrained_vars)
+                    y = oo_.endo_simul(constrained_vars(j), time_index_constraint);
+                    r(col_count:col_count+constrained_periods - 1) = (y - constrained_paths(j,1:constrained_periods))';
+                    col_count = col_count + constrained_periods;
+                end;
+                normr = norm(r, 1);
+            end;
+            if (~oo_.deterministic_simulation.status || ~result || normr > normra) && it > 1
+                not_achieved = 1;
+                alpha = alpha / 2;
+                col_count = 1;
+                for j = controlled_varexo'
+                    oo_.exo_simul(time_index_constraint,j) = (old_exo(:,j) + alpha * D_exo(col_count: (col_count + constrained_periods - 1)));
+                    col_count = col_count + constrained_periods;
+                end;
+                disp(['Divergence in  Newton: reducing the path length alpha=' num2str(alpha)]);
+                oo_.endo_simul = repmat(oo_.steady_state, 1, options_cond_fcst.periods + 2);
+            else
+                not_achieved = 0;
+            end;
+        end;
+        
+        per = 30;
+        z = oo_.endo_simul(:, 1 : per + 2 );
+        zx = oo_.exo_simul(1: per + 2,:);
+        g1 = spalloc(M_.endo_nbr * (per ), M_.endo_nbr * (per ), 3* M_.endo_nbr * per );
+        g1_x = spalloc(M_.endo_nbr * (per ), M_.exo_nbr, M_.endo_nbr * (per )* M_.exo_nbr );
+        lag_indx = find(M_.lead_lag_incidence(1,:));
+        cur_indx = M_.endo_nbr + find(M_.lead_lag_incidence(2,:));
+        lead_indx = 2 * M_.endo_nbr + find(M_.lead_lag_incidence(3,:));
+        cum_l1 = 0;
+        cum_index_d_y_x = [];
+        indx_x = [];
+        for k = 1 : per
+            if k == 1
+                if (isfield(M_,'block_structure'))
+                    data1 = M_.block_structure.block;
+                    Size = length(M_.block_structure.block);
+                else
+                    data1 = M_;
+                    Size = 1;
+                end;
+                data1 = M_;
+                if (options_.bytecode)
+                    [chck, zz, data1]= bytecode('dynamic','evaluate', z, zx, M_.params, oo_.steady_state, k, data1);
+                else
+                    [zz, g1b] = feval([M_.fname '_dynamic'], z', zx, M_.params, oo_.steady_state, k);
+                    data1.g1_x = g1b(:,end - M_.exo_nbr + 1:end);
+                    data1.g1 = g1b(:,1 : end - M_.exo_nbr);
+                    chck = 0;
+                end;
+                mexErrCheck('bytecode', chck);
+            end;
+            if k == 1 
+                g1(1:M_.endo_nbr,-M_.endo_nbr + [cur_indx lead_indx]) = data1.g1(:,M_.nspred + 1:end);
+            elseif k == per
+                g1(M_.endo_nbr * (k - 1) + 1 :M_.endo_nbr * k,M_.endo_nbr * (k -2) + [lag_indx cur_indx]) = data1.g1(:,1:M_.nspred + M_.endo_nbr);
+            else
+                g1(M_.endo_nbr * (k - 1) + 1 :M_.endo_nbr * k, M_.endo_nbr * (k -2) + [lag_indx cur_indx lead_indx]) = data1.g1;
+            end;
+            l2 = 1;
+            pf_c = 1;
+            if k <= constrained_periods
+                for l = constraint_index{k}
+                    l1 = controlled_varexo(l);
+                    g1_x(M_.endo_nbr * (k - 1) + 1:M_.endo_nbr * k,1 + cum_l1) = data1.g1_x(:,l1);
+                    if k == 1
+                        indx_x(l2) = l ;
+                        l2 = l2 + 1;
+                        for ii = 2:constrained_periods
+                            indx_x(l2) = length(controlled_varexo) + pf * (ii - 2) + constraint_index{k + ii - 1}(pf_c);
+                            l2 = l2 + 1;
+                        end;
+                        pf_c = pf_c + 1;
+                        cum_index_d_y_x = [cum_index_d_y_x; constrained_vars(l)];
+                    else
+                        cum_index_d_y_x = [cum_index_d_y_x; constrained_vars(l) + (k - 1) * M_.endo_nbr];
+                    end
+                    cum_l1 = cum_l1 + length(l1);
+                end;
+            end;
+        end;
+        
+        d_y_x = - g1 \ g1_x;
+
+        cum_l1 = 0;
+        count_col = 1;
+        cum_index_J  = 1:length(cum_index_d_y_x(indx_x));
+        J= zeros(length(cum_index_J));
+        for j1 = 1:length(controlled_varexo)
+            cum_l1 = 0;
+            for k = 1:(constrained_periods)
+                l1 = constraint_index{k};
+                l1 = find(constrained_perfect_foresight(l1) | (k == 1));
+                if constraint_index{k}( j1)
+                    J(cum_index_J,count_col) = d_y_x(cum_index_d_y_x(indx_x),indx_x(count_col));
+                    count_col = count_col + 1;
+                end
+                cum_l1 = cum_l1 + length(l1);
+            end
+            cum_l1 = cum_l1 + length(constrained_vars(j1));
+        end;
+        
+        
+%         col_count = 1;
+%         for j = controlled_varexo'
+%             for time = time_index_constraint
+%                 saved = oo_.exo_simul(time,j);
+%                 oo_.exo_simul(time,j) = oo_.exo_simul(time,j) + eps1;
+%                 simul();
+%                 J1(:,col_count) = (oo_.endo_simul(indx_endo) - ys) / eps1;
+%                 oo_.exo_simul(time,j) = saved;
+%                 col_count = col_count + 1;
+%             end;
+%         end;
+%         J1
+%         sdfmlksdf;
+        
+        disp(['iteration ' int2str(it) ' error = ' num2str(normr)]);
+        
+        if normr <= eps
+            convg = 1;
+            disp('convergence achieved');
+        else
+            % Newton update on exogenous shocks
+            old_exo = oo_.exo_simul(time_index_constraint,:);
+            D_exo = - J \ r;
+            col_count = 1;
+            %constrained_periods
+            for j = controlled_varexo'
+                oo_.exo_simul(time_index_constraint,j) = oo_.exo_simul(time_index_constraint,j) + D_exo(col_count: (col_count + constrained_periods - 1));
+                col_count = col_count + constrained_periods - 1;
+            end;
+        end;
+        it = it + 1;
+        normra = normr;
+    end;
+    endo = oo_.endo_simul';
+    exo = oo_.exo_simul;
+else
+    for t = 1:constrained_periods
+        
+        if direct_mode && ~isempty(is_constraint) 
+            [pos_constrained_pf, junk] = find(constrained_perfect_foresight .* is_constraint(t, :)');
+            indx_endo_solve_pf = constrained_vars(pos_constrained_pf);
+            if isempty(indx_endo_solve_pf)
+                pf = 0;
+            else
+                pf = length(indx_endo_solve_pf);
+            end;
+        
+            [pos_constrained_surprise, junk] = find((1-constrained_perfect_foresight) .* is_constraint(t, :)');
+            indx_endo_solve_surprise = constrained_vars(pos_constrained_surprise);
+
+            if isempty(indx_endo_solve_surprise)
+                surprise = 0;
+            else
+                surprise = length(indx_endo_solve_surprise);
+            end;
+        end;
+        
+        if direct_mode && ~isempty(is_shock) 
+            [pos_shock_pf, junk] = find(shock_perfect_foresight .* is_shock(t, :)');
+            indx_endo_solve_pf = shock_vars(pos_shock_pf);
+            if isempty(indx_endo_solve_pf)
+                b_pf = 0;
+            else
+                b_pf = length(indx_endo_solve_pf);
+            end;
+        
+            [pos_shock_surprise, junk] = find((1-shock_perfect_foresight) .* is_shock(t, :)');
+            indx_endo_solve_surprise = shock_vars(pos_shock_surprise);
+
+            if isempty(indx_endo_solve_surprise)
+                b_surprise = 0;
+            else
+                b_surprise = length(indx_endo_solve_surprise);
+            end;
+        end;
+        
+        disp('===============================================================================================');
+        disp(['t=' int2str(t) ' conditional (surprise=' int2str(surprise) ' perfect foresight=' int2str(pf) ') unconditional (surprise=' int2str(b_surprise) ' perfect foresight=' int2str(b_pf) ')']);
+        disp('===============================================================================================');
+        if t == 1
+            make_ex_;
+            if maximum_lag > 0
+                exo_init = oo_.exo_simul;
+            else
+                exo_init = zeros(size(oo_.exo_simul));
+            end
+            make_y_;
+        end;
+        %exo_init
+        oo_.exo_simul = exo_init;
+        oo_.endo_simul(:,1) = initial_conditions;
+        
+        time_index_constraint = maximum_lag + 1:maximum_lag + constrained_periods - t + 1;
+        
+        if direct_mode
+            nb_shocks = length(plan.shock_vars_);
+            if nb_shocks > 0
+                shock_index_t = shock_index{t};
+                shock_vars_t = shock_vars(shock_index_t);
+                for shock_indx = shock_index_t
+                    if shock_perfect_foresight(shock_indx) 
+                        oo_.exo_simul(time_index_constraint,shock_vars_t(shock_indx)) = shock_paths(shock_indx,t:constrained_periods);
+                    else
+                        oo_.exo_simul(maximum_lag + 1,shock_vars_t(shock_indx)) = shock_paths(shock_indx,t);
+                    end
+                end
+            end
+        end
+        %Compute the initial path using the first order solution around the
+        % steady-state
+        oo_.endo_simul(:, 1) = oo_.endo_simul(:, 1) - oo_.steady_state;
+        for jj = 2 : (options_.periods + 2)
+            oo_.endo_simul(:,jj) = oo_.dr.ghx(oo_.dr.inv_order_var,:) * oo_.endo_simul(oo_.dr.state_var, jj-1) + oo_.dr.ghu * oo_.exo_simul(jj,:)';
+        end
+        for jj = 1 : (options_.periods + 2)
+            oo_.endo_simul(:,jj) = oo_.steady_state + oo_.endo_simul(:,jj);
+        end
+        
+        constraint_index_t = constraint_index{t};
+        controlled_varexo_t = controlled_varexo(constraint_index_t);
+        constrained_vars_t = constrained_vars(constraint_index_t);
+        
+        second_system_size = surprise + pf * (constrained_periods - t + 1);
+        indx_endo = zeros(second_system_size,1);
+        col_count = 1;
+        for j = 1:length(constrained_vars_t)
+            if constrained_perfect_foresight(j)
+                indx_endo(col_count : col_count + constrained_periods - t) = constrained_vars(j) + (time_index_constraint - 1) * ny;
+                col_count = col_count + constrained_periods - t + 1;
+            else
+                indx_endo(col_count) = constrained_vars(j) + maximum_lag * ny;
+                col_count = col_count + 1;
+            end;
+        end;
+        
+        r = zeros(second_system_size,1);
+        
+        convg = 0;
+        it = 1;
+        while ~convg && it <= maxit
+            disp('-----------------------------------------------------------------------------------------------');
+            disp(['iteration ' int2str(it) ' time ' int2str(t)]);
+            not_achieved = 1;
+            alpha = 1;
+            while not_achieved
+                simul();
+                result = sum(sum(isfinite(oo_.endo_simul(:,time_index_constraint)))) == ny * length(time_index_constraint);
+                if (~oo_.deterministic_simulation.status || ~result) && it > 1
+                    not_achieved = 1;
+                    alpha = alpha / 2;
+                    col_count = 1;
+                    for j1 = constraint_index_t
+                        j = controlled_varexo(j1);
+                        if constrained_perfect_foresight(j1)
+                            oo_.exo_simul(time_index_constraint,j) = (old_exo(time_index_constraint,j) + alpha * D_exo(col_count: col_count + constrained_periods - t));
+                            col_count = col_count + constrained_periods - t + 1;
+                        else
+                            oo_.exo_simul(maximum_lag + 1,j) = old_exo(maximum_lag + 1,j) + alpha * D_exo(col_count);
+                            col_count = col_count + 1;
+                        end;
+                    end;
+                    disp(['Divergence in  Newton: reducing the path length alpha=' num2str(alpha) ' result=' num2str(result) ' sum(sum)=' num2str(sum(sum(isfinite(oo_.endo_simul(:,time_index_constraint))))) ' ny * length(time_index_constraint)=' num2str(ny * length(time_index_constraint)) ' oo_.deterministic_simulation.status=' num2str(oo_.deterministic_simulation.status)]);
+                    oo_.endo_simul = [initial_conditions repmat(oo_.steady_state, 1, options_cond_fcst.periods + 1)];
+                else
+                    not_achieved = 0;
+                end;
+            end;
+            if t==constrained_periods
+                ycc = oo_.endo_simul;
+            end;
+            yc = oo_.endo_simul(:,maximum_lag + 1);
+            ys = oo_.endo_simul(indx_endo);
+            
+            col_count = 1;
+            for j = constraint_index_t
+                if constrained_perfect_foresight(j)
+                    y = oo_.endo_simul(constrained_vars(j), time_index_constraint);
+                    r(col_count:col_count+constrained_periods - t) = (y - constrained_paths(j,t:constrained_periods))';
+                    col_count = col_count + constrained_periods - t + 1;
+                else
+                    y = yc(constrained_vars(j));
+                    r(col_count) = y - constrained_paths(j,t);
+                    col_count = col_count + 1;
+                end;
+            end
+            
+            disp('computation of derivatives w.r. to exogenous shocks');
+
+            per = 30;
+            z = oo_.endo_simul(:, 1 : per + 2 );
+            zx = oo_.exo_simul(1: per + 2,:);
+            g1 = spalloc(M_.endo_nbr * (per ), M_.endo_nbr * (per ), 3* M_.endo_nbr * per );
+            g1_x = spalloc(M_.endo_nbr * (per ), M_.exo_nbr, M_.endo_nbr * (per )* M_.exo_nbr );
+            lag_indx = find(M_.lead_lag_incidence(1,:));
+            cur_indx = M_.endo_nbr + find(M_.lead_lag_incidence(2,:));
+            lead_indx = 2 * M_.endo_nbr + find(M_.lead_lag_incidence(3,:));
+            cum_l1 = 0;
+            %indx_x = zeros(length(constraint_index_t)* constrained_periods, 1);
+            cum_index_d_y_x = [];
+            indx_x = [];
+            for k = 1 : per
+                if k == 1
+                    if (isfield(M_,'block_structure'))
+                        data1 = M_.block_structure.block;
+                        Size = length(M_.block_structure.block);
+                    else
+                        data1 = M_;
+                        Size = 1;
+                    end;
+                    data1 = M_;
+                    if (options_.bytecode)
+                        [chck, zz, data1]= bytecode('dynamic','evaluate', z, zx, M_.params, oo_.steady_state, k, data1);
+                    else
+                        [zz, g1b] = feval([M_.fname '_dynamic'], z', zx, M_.params, oo_.steady_state, k);
+                        data1.g1_x = g1b(:,end - M_.exo_nbr + 1:end);
+                        data1.g1 = g1b(:,1 : end - M_.exo_nbr);
+                        chck = 0;
+                    end;
+                    mexErrCheck('bytecode', chck);
+                end;
+                if k == 1 
+                    g1(1:M_.endo_nbr,-M_.endo_nbr + [cur_indx lead_indx]) = data1.g1(:,M_.nspred + 1:end);
+                elseif k == per
+                    g1(M_.endo_nbr * (k - 1) + 1 :M_.endo_nbr * k,M_.endo_nbr * (k -2) + [lag_indx cur_indx]) = data1.g1(:,1:M_.nspred + M_.endo_nbr);
+                else
+                    g1(M_.endo_nbr * (k - 1) + 1 :M_.endo_nbr * k, M_.endo_nbr * (k -2) + [lag_indx cur_indx lead_indx]) = data1.g1;
+                end;
+                
+                l2 = 1;
+                pf_c = 1;
+                if t + k - 1 <= constrained_periods
+                    for l = constraint_index{t + k - 1}
+                        l1 = controlled_varexo(l);
+                        if (k == 1) || ((k > 1) && constrained_perfect_foresight(l))
+                            g1_x(M_.endo_nbr * (k - 1) + 1:M_.endo_nbr * k,1 + cum_l1) = data1.g1_x(:,l1);
+                            if k == 1
+                                if constrained_perfect_foresight(l)
+                                    indx_x(l2) = l ;
+                                    l2 = l2 + 1;
+                                    for ii = 2:constrained_periods - t + 1
+                                        indx_x(l2) = length(controlled_varexo) + pf * (ii - 2) + constraint_index{k + ii - 1}(pf_c);
+                                        l2 = l2 + 1;
+                                    end;
+                                    pf_c = pf_c + 1;
+                                else
+                                    indx_x(l2) = l;
+                                    l2 = l2 + 1;
+                                end;
+                                cum_index_d_y_x = [cum_index_d_y_x; constrained_vars_t(l)];
+                            else
+                                cum_index_d_y_x = [cum_index_d_y_x; constrained_vars_t(l) + (k - 1) * M_.endo_nbr];
+                            end
+                            cum_l1 = cum_l1 + length(l1);
+                        end;
+                    end;
+                end;
+            end;
+            
+            d_y_x = - g1 \ g1_x;
+
+            
+            cum_l1 = 0;
+            count_col = 1;
+            cum_index_J  = 1:length(cum_index_d_y_x(indx_x));
+            J= zeros(length(cum_index_J));
+            for j1 = constraint_index_t
+                if constrained_perfect_foresight(j1)
+                    cum_l1 = 0;
+                    for k = 1:(constrained_periods - t + 1)
+                        l1 = constraint_index{k};
+                        l1 = find(constrained_perfect_foresight(l1) | (k == 1));
+                        if constraint_index{k}( j1)
+                            J(cum_index_J,count_col) = d_y_x(cum_index_d_y_x(indx_x),indx_x(count_col));
+                            count_col = count_col + 1;
+                        end
+                        cum_l1 = cum_l1 + length(l1);
+                    end
+                else
+                    J(cum_index_J,count_col) = d_y_x(cum_index_d_y_x(indx_x),indx_x(count_col));
+                    count_col = count_col + 1;
+                end
+                cum_l1 = cum_l1 + length(constrained_vars_t(j1));
+            end;
+
+            
+%             % Numerical computation of the derivatives in the second systme        
+%             J1 = [];
+%             col_count = 1;
+%             for j = constraint_index_t
+%                 j_pos = controlled_varexo(j);
+%                 if constrained_perfect_foresight(j)
+%                     for time = time_index_constraint
+%                         saved = oo_.exo_simul(time,j_pos);
+%                         oo_.exo_simul(time,j_pos) = oo_.exo_simul(time,j_pos) + eps1;
+%                         simul();
+%                         J1(:,col_count) = (oo_.endo_simul(indx_endo) - ys) / eps1;
+%                         oo_.exo_simul(time,j_pos) = saved;
+%                         col_count = col_count + 1;
+%                     end;
+%                 else
+%                     saved = oo_.exo_simul(maximum_lag+1,j_pos);
+%                     oo_.exo_simul(maximum_lag+1,j_pos) = oo_.exo_simul(maximum_lag+1,j_pos) + eps1;
+%                     simul();
+% %                    indx_endo
+%                     J1(:,col_count) = (oo_.endo_simul(indx_endo) - ys) / eps1;
+% %                    J(:,col_count) = (oo_.endo_simul((pp - 1) * M_.endo_nbr + 1: pp * M_.endo_nbr) - ys) / eps1;
+%                     oo_.exo_simul(maximum_lag+1,j_pos) = saved;
+%                     col_count = col_count + 1;
+%                 end;
+%             end;
+%             disp('J1');
+%             disp(full(J1));
+%             sdfmlk;
+            
+
+            normr = norm(r, 1);
+            
+            disp(['iteration ' int2str(it) ' error = ' num2str(normr) ' at time ' int2str(t)]);
+
+            if normr <= eps
+                convg = 1;
+                disp('convergence achieved');
+            else
+                % Newton update on exogenous shocks
+                try
+                   D_exo = - J \ r;
+                catch
+                    [V, D] = eig(full(J));
+                    ev = diag(D);
+                    [ev abs(ev)]
+                    z_root = find(abs(ev) < 1e-4);
+                    z_root
+                    disp(V(:,z_root));
+                end;
+                old_exo = oo_.exo_simul;
+                col_count = 1;
+                for j = constraint_index_t
+                    j_pos=controlled_varexo(j);
+                    if constrained_perfect_foresight(j)
+                        oo_.exo_simul(time_index_constraint,j_pos) = (oo_.exo_simul(time_index_constraint,j_pos) + D_exo(col_count:(col_count + constrained_periods - t) ));
+                        col_count = col_count + constrained_periods - t + 1;
+                    else
+                        oo_.exo_simul(maximum_lag + 1,j_pos) = oo_.exo_simul(maximum_lag + 1,j_pos) + D_exo(col_count);
+                        col_count = col_count + 1;
+                    end;
+                end;
+            end;
+            it = it + 1;
+        end;
+        if ~convg
+            error(['convergence not achived at time ' int2str(t) ' after ' int2str(it) ' iterations']);
+        end;
+        for j = constraint_index_t
+            j_pos=controlled_varexo(j);
+            if constrained_perfect_foresight(j)
+                % in case of mixed surprise and perfect foresight on the
+                % endogenous path, at each date all the exogenous paths have to be
+                % stored. The paths are stacked in exo.
+                for time = time_index_constraint;
+                    exo(past_val + time,j_pos) = oo_.exo_simul(time,j_pos);
+                end
+            else
+                exo(maximum_lag + t,j_pos) = oo_.exo_simul(maximum_lag + 1,j_pos);
+            end;
+        end;
+        past_val = past_val + length(time_index_constraint);
+        if t < constrained_periods
+            endo(maximum_lag + t,:) = yc;
+        else
+            endo(maximum_lag + t :maximum_lag + options_cond_fcst.periods ,:) = ycc(:,maximum_lag + 1:maximum_lag + options_cond_fcst.periods - constrained_periods + 1)';
+        end;
+        initial_conditions = yc;
+        if maximum_lag > 0
+            exo_init(1,:) = exo(maximum_lag + t,:);
+        end;
+    end;
+end;
+options_.periods = save_options_periods;
+options_.dynatol.f = save_options_dynatol_f;
+options_.initval_file = save_options_initval_file;
+options_.verbosity = verbosity;
+oo_.endo_simul = endo';
+oo_.exo_simul = exo;
+if direct_mode
+    data_set = dseries([endo(2:end,1:M_.orig_endo_nbr) exo(2:end,:)], total_periods(1), {plan.endo_names{:} plan.exo_names{:}}, {plan.endo_names{:} plan.exo_names{:}});
+end;
diff --git a/matlab/det_forecast.m b/matlab/det_forecast.m
index 9e24fdb808af5e48cde164af778ca18767eb803f..dceb694386243d47324cc660f6a5d5372a55e1f4 100644
--- a/matlab/det_forecast.m
+++ b/matlab/det_forecast.m
@@ -98,7 +98,7 @@ else
 end;
 
 eps = options_.solve_tolf;
-maxit = options_.solve_maxit;
+maxit = options_.simul.maxit;
 
 % Check the solution using a unconditional forecast (soft tune)
 
diff --git a/matlab/discretionary_policy_1.m b/matlab/discretionary_policy_1.m
index b2ad54003958aaeddafce0d35d5edd5fa1259727..4497bd0b352d2095718b8b268812d16d18d31468 100644
--- a/matlab/discretionary_policy_1.m
+++ b/matlab/discretionary_policy_1.m
@@ -113,7 +113,7 @@ B=jacobia_(:,nnz(iyv)+1:end);
 
 %%% MAIN ENGINE %%%
 qz_criterium = options_.qz_criterium;
-solve_maxit = options_.solve_maxit;
+solve_maxit = options_.dp.maxit;
 discretion_tol = options_.discretionary_tol;
 
 if ~isempty(Hold)
diff --git a/matlab/disp_moments.m b/matlab/disp_moments.m
index 058bebc97c7c248816c25728bc77da5547ec9cb5..478936e9659af94efb2337e66e94b8ec3859e1d0 100644
--- a/matlab/disp_moments.m
+++ b/matlab/disp_moments.m
@@ -80,6 +80,10 @@ if options_.nocorr == 0
     end
 end
 
+if options_.noprint == 0 && length(options_.conditional_variance_decomposition)
+   fprintf('\nSTOCH_SIMUL: conditional_variance_decomposition requires theoretical moments, i.e. periods=0.\n') 
+end
+
 ar = options_.ar;
 if ar > 0
     autocorr = [];
diff --git a/matlab/disp_th_moments.m b/matlab/disp_th_moments.m
index d1a4876a296cd575dbf51016093277acdcb45767..0c1a245a6db5874bd0d500ef703aa1fa72a2993f 100644
--- a/matlab/disp_th_moments.m
+++ b/matlab/disp_th_moments.m
@@ -50,43 +50,54 @@ z = [ m sd s2 ];
 oo_.mean = m;
 oo_.var = oo_.gamma_y{1};
 
-if ~options_.noprint %options_.nomoments == 0
-    if options_.order == 2
-        title='APROXIMATED THEORETICAL MOMENTS';
-    else
-        title='THEORETICAL MOMENTS';
-    end
-    if options_.hp_filter
-        title = [title ' (HP filter, lambda = ' num2str(options_.hp_filter) ')'];
-    end
-    headers=char('VARIABLE','MEAN','STD. DEV.','VARIANCE');
-    labels = deblank(M_.endo_names(ivar,:));
-    lh = size(labels,2)+2;
-    dyntable(title,headers,labels,z,lh,11,4);
-    if M_.exo_nbr > 1 && size(stationary_vars, 1) > 0
-        skipline()
+if M_.exo_nbr > 1 && size(stationary_vars, 1) > 0
+    oo_.variance_decomposition=100*oo_.gamma_y{options_.ar+2};
+    if ~options_.noprint %options_.nomoments == 0
         if options_.order == 2
-            title='APPROXIMATED VARIANCE DECOMPOSITION (in percent)';            
+            title='APROXIMATED THEORETICAL MOMENTS';
         else
-            title='VARIANCE DECOMPOSITION (in percent)';
+            title='THEORETICAL MOMENTS';
         end
         if options_.hp_filter
-            title = [title ' (HP filter, lambda = ' ...
-                     num2str(options_.hp_filter) ')'];
+            title = [title ' (HP filter, lambda = ' num2str(options_.hp_filter) ')'];
         end
-        headers = M_.exo_names;
-        headers(M_.exo_names_orig_ord,:) = headers;
-        headers = char(' ',headers);
-        lh = size(deblank(M_.endo_names(ivar(stationary_vars),:)),2)+2;
-        dyntable(title,headers,deblank(M_.endo_names(ivar(stationary_vars), ...
-                                                     :)),100*oo_.gamma_y{options_.ar+2}(stationary_vars,:),lh,8,2);
+        headers=char('VARIABLE','MEAN','STD. DEV.','VARIANCE');
+        labels = deblank(M_.endo_names(ivar,:));
+        lh = size(labels,2)+2;
+        dyntable(title,headers,labels,z,lh,11,4);
+
+        skipline()
+            if options_.order == 2
+                title='APPROXIMATED VARIANCE DECOMPOSITION (in percent)';            
+            else
+                title='VARIANCE DECOMPOSITION (in percent)';
+            end
+            if options_.hp_filter
+                title = [title ' (HP filter, lambda = ' ...
+                         num2str(options_.hp_filter) ')'];
+            end
+            headers = M_.exo_names;
+            headers(M_.exo_names_orig_ord,:) = headers;
+            headers = char(' ',headers);
+            lh = size(deblank(M_.endo_names(ivar(stationary_vars),:)),2)+2;
+            dyntable(title,headers,deblank(M_.endo_names(ivar(stationary_vars), ...
+                                                         :)),100*oo_.gamma_y{options_.ar+2}(stationary_vars,:),lh,8,2);
     end
     
     conditional_variance_steps = options_.conditional_variance_decomposition;
     if length(conditional_variance_steps)
-        oo_ = display_conditional_variance_decomposition(conditional_variance_steps,...
-                                                         ivar,dr,M_, ...
-                                                         options_,oo_);
+        StateSpaceModel.number_of_state_equations = M_.endo_nbr;
+        StateSpaceModel.number_of_state_innovations = M_.exo_nbr;
+        StateSpaceModel.sigma_e_is_diagonal = M_.sigma_e_is_diagonal;
+        [StateSpaceModel.transition_matrix,StateSpaceModel.impulse_matrix] = kalman_transition_matrix(dr,(1:M_.endo_nbr)',M_.nstatic+(1:M_.nspred)',M_.exo_nbr);
+        StateSpaceModel.state_innovations_covariance_matrix = M_.Sigma_e;
+        StateSpaceModel.order_var = dr.order_var;
+        oo_.conditional_variance_decomposition = conditional_variance_decomposition(StateSpaceModel,conditional_variance_steps,ivar);
+        
+        if options_.noprint == 0
+            display_conditional_variance_decomposition(oo_.conditional_variance_decomposition,conditional_variance_steps,...
+                                                         ivar,M_,options_);
+        end
     end
 end
 
diff --git a/matlab/display_conditional_variance_decomposition.m b/matlab/display_conditional_variance_decomposition.m
index 7ce71478c2fceb1a342e3fd41c84c1b860d1fdd6..2e15a1d9e08021fd14759b8586ea5193097c2220 100644
--- a/matlab/display_conditional_variance_decomposition.m
+++ b/matlab/display_conditional_variance_decomposition.m
@@ -1,22 +1,19 @@
-function oo_ = display_conditional_variance_decomposition(Steps, SubsetOfVariables, dr,M_,options_,oo_)
-% This function computes the conditional variance decomposition of a given state space model
+function display_conditional_variance_decomposition(conditional_decomposition_array,Steps,SubsetOfVariables,M_,options_)
+% This function displays the conditional variance decomposition of a given state space model
 % for a subset of endogenous variables.
 % 
 % INPUTS 
-%   StateSpaceModel     [structure]   Specification of the state space model.
+%   conditional_decomposition_array     [matrix]   Output matrix from compute_conditional_variance_decomposition
 %   Steps               [integer]     1*h vector of dates.
 %   SubsetOfVariables   [integer]     1*q vector of indices.
-%    
+%   M_                  [structure]   Dynare structure containing the
+%                                     Model description
+%   options_            [structure]   Dynare structure containing the
+%                                     options
 % OUTPUTS 
-%   PackedConditionalVarianceDecomposition  [double] n(n+1)/2*p matrix, where p is the number of state innovations and
-%                                                    n is equal to length(SubsetOfVariables).    
+%   none
 %
-% SPECIAL REQUIREMENTS
-%
-% [1] The covariance matrix of the state innovations needs to be diagonal.
-% [2] In this version, absence of measurement errors is assumed...
-
-% Copyright (C) 2010-2013 Dynare Team
+% Copyright (C) 2010-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -33,49 +30,28 @@ function oo_ = display_conditional_variance_decomposition(Steps, SubsetOfVariabl
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-endo_nbr = M_.endo_nbr;
-exo_nbr = M_.exo_nbr;
-StateSpaceModel.number_of_state_equations = M_.endo_nbr;
-StateSpaceModel.number_of_state_innovations = exo_nbr;
-StateSpaceModel.sigma_e_is_diagonal = M_.sigma_e_is_diagonal;
-
-iv = (1:endo_nbr)';
-ic = M_.nstatic+(1:M_.nspred)';
-
-[StateSpaceModel.transition_matrix,StateSpaceModel.impulse_matrix] = kalman_transition_matrix(dr,iv,ic,exo_nbr);
-StateSpaceModel.state_innovations_covariance_matrix = M_.Sigma_e;
-StateSpaceModel.order_var = dr.order_var;
-
-conditional_decomposition_array = conditional_variance_decomposition(StateSpaceModel,Steps,SubsetOfVariables );
-
-if options_.noprint == 0
-  if options_.order == 2
-    skipline()                
-    disp('APPROXIMATED CONDITIONAL VARIANCE DECOMPOSITION (in percent)')
-  else
-    skipline()               
-    disp('CONDITIONAL VARIANCE DECOMPOSITION (in percent)')
-  end
+if options_.order == 2
+skipline()                
+disp('APPROXIMATED CONDITIONAL VARIANCE DECOMPOSITION (in percent)')
+else
+skipline()               
+disp('CONDITIONAL VARIANCE DECOMPOSITION (in percent)')
 end
 
-vardec_i = zeros(length(SubsetOfVariables),exo_nbr);
+vardec_i = zeros(length(SubsetOfVariables),M_.exo_nbr);
 
 for i=1:length(Steps)
     disp(['Period ' int2str(Steps(i)) ':'])
-    
-    for j=1:exo_nbr
+
+    for j=1:M_.exo_nbr
         vardec_i(:,j) = 100*conditional_decomposition_array(:, ...
                                                           i,j);
     end
-    if options_.noprint == 0
-        headers = M_.exo_names;
-        headers(M_.exo_names_orig_ord,:) = headers;
-        headers = char(' ',headers);
-        lh = size(deblank(M_.endo_names(SubsetOfVariables,:)),2)+2;
-        dyntable('',headers,...
-                 deblank(M_.endo_names(SubsetOfVariables,:)),...
-                 vardec_i,lh,8,2);
-    end
-end
-
-oo_.conditional_variance_decomposition = conditional_decomposition_array;
+    headers = M_.exo_names;
+    headers(M_.exo_names_orig_ord,:) = headers;
+    headers = char(' ',headers);
+    lh = size(deblank(M_.endo_names(SubsetOfVariables,:)),2)+2;
+    dyntable('',headers,...
+             deblank(M_.endo_names(SubsetOfVariables,:)),...
+             vardec_i,lh,8,2);
+end
\ No newline at end of file
diff --git a/matlab/display_estimation_results_table.m b/matlab/display_estimation_results_table.m
index 91b97ddbd75e0e12a02312d34ba22917a8b3f68a..334182bcb37c2d32b9bfe1bc27b3b1aab40b335d 100644
--- a/matlab/display_estimation_results_table.m
+++ b/matlab/display_estimation_results_table.m
@@ -20,7 +20,7 @@ function oo_=display_estimation_results_table(xparam1,stdh,M_,options_,estim_par
 % SPECIAL REQUIREMENTS
 %   None.
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -169,6 +169,9 @@ if ncn
     end
     skipline()
 end
+if any(xparam1(1:nvx+nvn)<0)
+    warning('Some estimated standard deviations are negative. Dynare internally works with variances so that the sign does not matter. Nevertheless, it is recommended to impose either prior restrictions (Bayesian Estimation) or a lower bound (ML) to assure positive values.')
+end
 
 OutputDirectoryName = CheckPath('Output',M_.dname);
 
@@ -183,13 +186,12 @@ if any(bayestopt_.pshape > 0) && options_.TeX %% Bayesian estimation (posterior
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcccc} \n');
-        fprintf(fidTeX,'\\caption{Results from posterior maximization (parameters)}\n ');
+        fprintf(fidTeX,'\\caption{Results from posterior maximization (parameters)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:1}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. & Posterior mode & s.d. \\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
-        fprintf(fidTeX,'\\label{Table:Posterior:1}\\\\\n');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. & Posterior mode & s.d. \\\\ \n');
         fprintf(fidTeX,'\\hline \\endhead \n');
@@ -221,12 +223,12 @@ if any(bayestopt_.pshape > 0) && options_.TeX %% Bayesian estimation (posterior
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcccc} \n');
-        fprintf(fidTeX,'\\caption{Results from posterior maximization (standard deviation of structural shocks)}\n ');
+        fprintf(fidTeX,'\\caption{Results from posterior maximization (standard deviation of structural shocks)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:2}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. & Posterior mode & s.d. \\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:2}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. & Posterior mode & s.d. \\\\ \n');
@@ -260,12 +262,12 @@ if any(bayestopt_.pshape > 0) && options_.TeX %% Bayesian estimation (posterior
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcccc} \n');
-        fprintf(fidTeX,'\\caption{Results from posterior maximization (standard deviation of measurement errors)}\n ');
+        fprintf(fidTeX,'\\caption{Results from posterior maximization (standard deviation of measurement errors)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:3}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. &  Posterior mode & s.d. \\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:3}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. &  Posterior mode & s.d. \\\\ \n');
@@ -299,12 +301,12 @@ if any(bayestopt_.pshape > 0) && options_.TeX %% Bayesian estimation (posterior
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcccc} \n');
-        fprintf(fidTeX,'\\caption{Results from posterior parameters (correlation of structural shocks)}\n ');
+        fprintf(fidTeX,'\\caption{Results from posterior parameters (correlation of structural shocks)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:4}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. &  Posterior mode & s.d. \\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:4}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. &  Posterior mode & s.d. \\\\ \n');
@@ -339,12 +341,12 @@ if any(bayestopt_.pshape > 0) && options_.TeX %% Bayesian estimation (posterior
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcccc} \n');
-        fprintf(fidTeX,'\\caption{Results from posterior parameters (correlation of measurement errors)}\n ');
+        fprintf(fidTeX,'\\caption{Results from posterior parameters (correlation of measurement errors)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:5}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. &  Posterior mode & s.d. \\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,'\\label{Table:Posterior:5}\\\\\n');
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. &  Posterior mode & s.d. \\\\ \n');
@@ -380,12 +382,12 @@ elseif all(bayestopt_.pshape == 0) && options_.TeX %% MLE and GMM Latex output
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcc} \n');
-        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (parameters)}\n ']);
+        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (parameters)}\\\\\n ']);
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':1}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':1}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
@@ -416,12 +418,12 @@ elseif all(bayestopt_.pshape == 0) && options_.TeX %% MLE and GMM Latex output
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcc} \n');
-        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (standard deviation of structural shocks)}\n ']);
+        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (standard deviation of structural shocks)}\\\\\n ']);
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':2}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':2}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
@@ -453,12 +455,12 @@ elseif all(bayestopt_.pshape == 0) && options_.TeX %% MLE and GMM Latex output
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcc} \n');
-        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (standard deviation of measurement errors)}\n ']);
+        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (standard deviation of measurement errors)}\\\\\n ']);
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':3}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':3}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
@@ -490,12 +492,12 @@ elseif all(bayestopt_.pshape == 0) && options_.TeX %% MLE and GMM Latex output
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcc} \n');
-        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (correlation of structural shocks)}\n ']);
+        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (correlation of structural shocks)}\\\\\n ']);
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':4}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':4}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
@@ -528,12 +530,12 @@ elseif all(bayestopt_.pshape == 0) && options_.TeX %% MLE and GMM Latex output
         fprintf(fidTeX,' \n');
         fprintf(fidTeX,'\\begin{center}\n');
         fprintf(fidTeX,'\\begin{longtable}{l|lcc} \n');
-        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (correlation of measurement errors)}\n ']);
+        fprintf(fidTeX,['\\caption{Results from ' table_title ' maximization (correlation of measurement errors)}\\\\\n ']);
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':5}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
         fprintf(fidTeX,'\\hline \\endfirsthead \n');
-        fprintf(fidTeX,'\\caption{(continued)}\n ');
+        fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
         fprintf(fidTeX,['\\label{Table:' LaTeXtitle ':5}\\\\\n']);
         fprintf(fidTeX,'\\hline\\hline \\\\ \n');
         fprintf(fidTeX,'  & Mode & s.d. & t-stat\\\\ \n');
@@ -557,4 +559,4 @@ elseif all(bayestopt_.pshape == 0) && options_.TeX %% MLE and GMM Latex output
         fclose(fidTeX);
     end
 
-end
\ No newline at end of file
+end
diff --git a/matlab/display_problematic_vars_Jacobian.m b/matlab/display_problematic_vars_Jacobian.m
new file mode 100644
index 0000000000000000000000000000000000000000..0cb42b581a4edb613dbe911a1a94b0fe800f352e
--- /dev/null
+++ b/matlab/display_problematic_vars_Jacobian.m
@@ -0,0 +1,73 @@
+function []=display_problematic_vars_Jacobian(problemrow,problemcol,M_,x,type,caller_string)
+% []=display_problematic_vars_Jacobian(problemrow,problemcol,M_,ys,caller_string)
+% print the equation numbers and variables associated with problematic entries 
+% of the Jacobian 
+%
+% INPUTS
+%   problemrow      [vector] rows associated with problematic entries
+%   problemcol      [vector] columns associated with problematic entries
+%   M_              [matlab structure] Definition of the model.           
+%   x               [vector] point at which the Jacobian was evaluated
+%   type            [string] 'static' or 'dynamic' depending on the type of
+%                               Jacobian
+%   caller_string   [string] contains name of calling function for printing 
+%    
+% OUTPUTS
+%   none.
+%  
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if nargin<6
+    caller_string='';
+end
+if strcmp(type,'dynamic')
+    for ii=1:length(problemrow)
+        [var_row,var_index]=find(M_.lead_lag_incidence==problemcol(ii));
+        if var_row==2
+            type_string='';
+        elseif var_row==1
+            type_string='lag of';
+        elseif var_row==3;
+            type_string='lead of';
+        end
+        if var_index<=M_.orig_endo_nbr
+            fprintf('Derivative of Equation %d with respect to %s Variable %s  (initial value of %s: %g) \n',problemrow(ii),type_string,deblank(M_.endo_names(var_index,:)),deblank(M_.endo_names(var_index,:)),x(var_index))
+        else %auxiliary vars
+            orig_var_index=M_.aux_vars(1,var_index-M_.orig_endo_nbr).orig_index;
+            fprintf('Derivative of Equation %d with respect to %s Variable %s  (initial value of %s: %g) \n',problemrow(ii),type_string,deblank(M_.endo_names(orig_var_index,:)),deblank(M_.endo_names(orig_var_index,:)),x(orig_var_index))            
+        end    
+    end
+    fprintf('\n%s  The problem most often occurs, because a variable with\n',caller_string)
+    fprintf('%s  exponent smaller than 1 has been initialized to 0. Taking the derivative\n',caller_string)
+    fprintf('%s  and evaluating it at the steady state then results in a division by 0.\n',caller_string)
+elseif strcmp(type,'static')
+    for ii=1:length(problemrow)
+        if problemcol(ii)<=M_.orig_endo_nbr
+            fprintf('Derivative of Equation %d with respect to Variable %s  (initial value of %s: %g) \n',problemrow(ii),deblank(M_.endo_names(problemcol(ii),:)),deblank(M_.endo_names(problemcol(ii),:)),x(problemcol(ii)))
+        else %auxiliary vars
+            orig_var_index=M_.aux_vars(1,problemcol(ii)-M_.orig_endo_nbr).orig_index;
+            fprintf('Derivative of Equation %d with respect to Variable %s  (initial value of %s: %g) \n',problemrow(ii),deblank(M_.endo_names(orig_var_index,:)),deblank(M_.endo_names(orig_var_index,:)),x(problemcol(ii)))            
+        end
+    end
+    fprintf('\n%s  The problem most often occurs, because a variable with\n',caller_string)
+    fprintf('%s exponent smaller than 1 has been initialized to 0. Taking the derivative\n',caller_string)
+    fprintf('%s and evaluating it at the steady state then results in a division by 0.\n',caller_string)
+else
+    error('Unknown Type')    
+end
\ No newline at end of file
diff --git a/matlab/do_parameter_initialization.m b/matlab/do_parameter_initialization.m
new file mode 100644
index 0000000000000000000000000000000000000000..1f18c3f5663995224917fa4098bc4f6d2e03f813
--- /dev/null
+++ b/matlab/do_parameter_initialization.m
@@ -0,0 +1,143 @@
+function [xparam1,estim_params_,xparam1_explicitly_initialized,xparam1_properly_calibrated]=do_parameter_initialization(estim_params_,xparam1_calib,xparam1_NaN_set_to_prior_mean)
+% function [xparam1,estim_params_]=get_initialized_parameters(estim_params_,xparam1_calib)
+% gets explicitly initialized variables and properly calibrated parameters
+%
+% INPUTS
+%    o estim_params_    [structure] characterizing parameters to be estimated.
+%    o xparam1_calib    [double]    vector of parameters to be estimated, with parameters
+%                                   initialized from calibration using get_all_parameters
+%     
+%    o xparam1_NaN_set_to_prior_mean [double]    vector of parameters to be estimated, with parameters
+%                                                initialized using dynare_estimation_init; not explicitly initialized
+%                                                parameters are at prior mean
+% OUTPUTS
+%    o xparam1                           [double]    vector of initialized parameters; uses the hierarchy: 1) explicitly initialized parameters,
+%                                                    2) calibrated parameters, 3) prior mean
+%    o estim_params_    [structure] characterizing parameters to be estimated; it is 
+%                                   updated here to reflect calibrated parameters
+%    o xparam1_explicitly_initialized    [double]    vector of parameters to be estimated that
+%                                                    were explicitly initialized 
+%    o xparam1_properly_calibrated       [double]    vector of parameters to be estimated that
+%                                                    were properly calibrated 
+%    
+% SPECIAL REQUIREMENTS
+%    None
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+nvx = size(estim_params_.var_exo,1);
+nvn = size(estim_params_.var_endo,1);
+ncx = size(estim_params_.corrx,1);
+ncn = size(estim_params_.corrn,1);
+np = size(estim_params_.param_vals,1);
+
+estim_params_.nvx = nvx; %exogenous shock variances
+estim_params_.nvn = nvn; %endogenous variances, i.e. measurement error
+estim_params_.ncx = ncx; %exogenous shock correlations
+estim_params_.ncn = ncn; % correlation between endogenous variables, i.e. measurement error.
+estim_params_.np = np;   % other parameters of the model
+
+xparam1_explicitly_initialized = NaN(nvx+nvn+ncx+ncn+np,1);
+xparam1_properly_calibrated = NaN(nvx+nvn+ncx+ncn+np,1);
+
+offset=0;
+if nvx
+    initialized_par_index=find(~isnan(estim_params_.var_exo(:,2)));
+    calibrated_par_index=find(isnan(estim_params_.var_exo(:,2)) & ~isnan(xparam1_calib(offset+1:offset+nvx,1)));
+    uninitialized_par_index=find(isnan(estim_params_.var_exo(:,2)) & isnan(xparam1_calib(offset+1:offset+nvx,1)));    
+    xparam1_explicitly_initialized(offset+initialized_par_index,1) = estim_params_.var_exo(initialized_par_index,2);
+    %update estim_params_ with calibrated starting values
+    estim_params_.var_exo(calibrated_par_index,2)=xparam1_calib(offset+calibrated_par_index,1);
+    %find parameters that are calibrated and do not violate inverse gamma prior
+    xparam1_properly_calibrated(offset+calibrated_par_index,1) = xparam1_calib(offset+calibrated_par_index,1);
+    inv_gamma_violation=find(estim_params_.var_exo(calibrated_par_index,2)==0 & estim_params_.var_exo(calibrated_par_index,5)==4);
+    if inv_gamma_violation
+        estim_params_.var_exo(calibrated_par_index(inv_gamma_violation),2)=NaN;        
+        xparam1_properly_calibrated(offset+calibrated_par_index(inv_gamma_violation),1)=NaN;        
+        fprintf('PARAMETER INITIALIZATION: Some standard deviations of shocks of the calibrated model are 0 and\n') 
+        fprintf('PARAMETER INITIALIZATION: violate the inverse gamma prior. They will instead be initialized with the prior mean.\n')    
+    end
+    if uninitialized_par_index
+        fprintf('PARAMETER INITIALIZATION: Warning, some estimated standard deviations of shocks are not\n') 
+        fprintf('PARAMETER INITIALIZATION: initialized. They will be initialized with the prior mean.\n')
+    end
+end
+offset=offset+nvx;
+if nvn
+    initialized_par_index=find(~isnan(estim_params_.var_endo(:,2)));
+    calibrated_par_index=find(isnan(estim_params_.var_endo(:,2)) & ~isnan(xparam1_calib(offset+1:offset+nvn,1)));
+    uninitialized_par_index=find(isnan(estim_params_.var_endo(:,2)) & isnan(xparam1_calib(offset+1:offset+nvn,1)));
+    xparam1_explicitly_initialized(offset+initialized_par_index,1) = estim_params_.var_endo(initialized_par_index,2);
+    estim_params_.var_endo(calibrated_par_index,2)=xparam1_calib(offset+calibrated_par_index,1);
+    %find parameters that are calibrated and do not violate inverse gamma prior
+    xparam1_properly_calibrated(offset+calibrated_par_index,1) = xparam1_calib(offset+calibrated_par_index,1);
+    inv_gamma_violation=find(estim_params_.var_endo(calibrated_par_index,2)==0 & estim_params_.var_endo(calibrated_par_index,5)==4);
+    if inv_gamma_violation
+        estim_params_.var_endo(calibrated_par_index(inv_gamma_violation),2)=NaN;        
+        xparam1_properly_calibrated(offset+calibrated_par_index(inv_gamma_violation),1)=NaN;        
+        fprintf('PARAMETER INITIALIZATION: Some measurement errors of the calibrated model are 0 and violate the\n')
+        fprintf('PARAMETER INITIALIZATION: inverse gamma prior. They will instead be initialized with the prior mean.\n')    
+    end
+    if uninitialized_par_index
+        fprintf('PARAMETER INITIALIZATION: Warning, some measurement errors are not initialized. They will be initialized\n')
+        fprintf('PARAMETER INITIALIZATION: with the prior mean.\n')
+    end
+end
+offset=offset+nvn;
+if ncx
+    initialized_par_index=find(~isnan(estim_params_.corrx(:,3)));
+    calibrated_par_index=find(isnan(estim_params_.corrx(:,3)) & ~isnan(xparam1_calib(offset+1:offset+ncx,1)));
+    uninitialized_par_index=find(isnan(estim_params_.corrx(:,3)) & isnan(xparam1_calib(offset+1:offset+ncx,1)));
+    xparam1_explicitly_initialized(offset+initialized_par_index,1) = estim_params_.corrx(initialized_par_index,3);
+    estim_params_.corrx(calibrated_par_index,3)=xparam1_calib(offset+calibrated_par_index,1);
+    xparam1_properly_calibrated(offset+calibrated_par_index,1) = xparam1_calib(offset+calibrated_par_index,1);
+    if uninitialized_par_index
+        fprintf('PARAMETER INITIALIZATION: Warning, some correlations between structural shocks are not initialized.\n')
+        fprintf('PARAMETER INITIALIZATION: They will be initialized with the prior mean.\n')
+    end
+end
+offset=offset+ncx;
+if ncn
+    initialized_par_index=find(~isnan(estim_params_.corrn(:,3)));
+    calibrated_par_index=find(isnan(estim_params_.corrn(:,3)) & ~isnan(xparam1_calib(offset+1:offset+ncn,1)));
+    uninitialized_par_index=find(isnan(estim_params_.corrn(:,3)) & isnan(xparam1_calib(offset+1:offset+ncn,1)));
+    xparam1_explicitly_initialized(offset+initialized_par_index,1) = estim_params_.corrn(initialized_par_index,3);
+    estim_params_.corrn(calibrated_par_index,3)=xparam1_calib(offset+calibrated_par_index,1);
+    xparam1_properly_calibrated(offset+calibrated_par_index,1) = xparam1_calib(offset+calibrated_par_index,1);
+    if uninitialized_par_index
+        fprintf('PARAMETER INITIALIZATION: Warning, some correlations between measurement errors are not initialized.\n')
+        fprintf('PARAMETER INITIALIZATION: They will be initialized with the prior mean.\n')
+    end
+end
+offset=offset+ncn;
+if np
+    initialized_par_index=find(~isnan(estim_params_.param_vals(:,2)));
+    calibrated_par_index=find(isnan(estim_params_.param_vals(:,2)) & ~isnan(xparam1_calib(offset+1:offset+np,1)));
+    uninitialized_par_index=find(isnan(estim_params_.param_vals(:,2)) & isnan(xparam1_calib(offset+1:offset+np,1)));
+    xparam1_explicitly_initialized(offset+initialized_par_index,1) = estim_params_.param_vals(initialized_par_index,2);
+    estim_params_.param_vals(calibrated_par_index,2)=xparam1_calib(offset+calibrated_par_index,1);
+    xparam1_properly_calibrated(offset+calibrated_par_index,1) = xparam1_calib(offset+calibrated_par_index,1);
+    if uninitialized_par_index
+        fprintf('PARAMETER INITIALIZATION: Warning, some deep parameters are not initialized. They will be\n')
+        fprintf('PARAMETER INITIALIZATION: initialized with the prior mean.\n')
+    end
+end
+xparam1=xparam1_explicitly_initialized;
+xparam1(isnan(xparam1))=xparam1_properly_calibrated(isnan(xparam1)); %set not explicitly initialized parameters that do not obviously violate prior distribution to calibrated parameter values
+xparam1(isnan(xparam1))=xparam1_NaN_set_to_prior_mean(isnan(xparam1)); %set not yet initialized parameters to prior mean coming from dynare_estimation_init
+
diff --git a/matlab/dr_block.m b/matlab/dr_block.m
index 6a707f45b8c02e993658b44743d1e87d214f1790..1878d572cea27887fd110f942cd485b6acf8cdce 100644
--- a/matlab/dr_block.m
+++ b/matlab/dr_block.m
@@ -628,7 +628,7 @@ for i = 1:Size;
 
 
             
-            if options_.loglinear == 1
+            if options_.loglinear
                 error('log linear option is for the moment not supported in first order approximation for a block decomposed mode');
 %                 k = find(dr.kstate(:,2) <= M_.maximum_endo_lag+1);
 %                 klag = dr.kstate(k,[1 2]);
diff --git a/matlab/draw_prior_density.m b/matlab/draw_prior_density.m
index ec0fa3c7626dd1a7acd19ac7f6c9c7316d4b02d2..1d364eecfd4261dfd012926b7ddeefe26a7e6eba 100644
--- a/matlab/draw_prior_density.m
+++ b/matlab/draw_prior_density.m
@@ -54,7 +54,7 @@ switch pshape(indx)
         supbound = gaminv(1-truncprior,p6(indx),p7(indx))+p3(indx);
     catch
         % Workaround for ticket #161
-        if exist('OCTAVE_VERSION')
+        if isoctave
             error(['Due to a bug in Octave, you must choose other values for mean and/or variance of your prior on ' bayestopt_.name{indx} ', or use another shape'])
         else
             rethrow(lasterror)
@@ -73,7 +73,7 @@ switch pshape(indx)
         supbound = 1/sqrt(gaminv(10*truncprior, p7(indx)/2, 2/p6(indx)))+p3(indx);
     catch
         % Workaround for ticket #161
-        if exist('OCTAVE_VERSION')
+        if isoctave
             error(['Due to a bug in Octave, you must choose other values for mean and/or variance of your prior on ' bayestopt_.name{indx} ', or use another shape'])
         else
             rethrow(lasterror)
@@ -92,7 +92,7 @@ switch pshape(indx)
         supbound = 1/(gaminv(10*truncprior, p7(indx)/2, 2/p6(indx)))+p3(indx);
     catch
         % Workaround for ticket #161
-        if exist('OCTAVE_VERSION')
+        if isoctave
             error(['Due to a bug in Octave, you must choose other values for mean and/or variance of your prior on ' bayestopt_.name{indx} ', or use another shape'])
         else
             rethrow(lasterror)
diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index 62bf68c1fa4a5ffab0e7650cf75642556bf0cf5c..e3ffc7ceacfdf590397c4594b562f0f1c29e0979 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -1,5 +1,7 @@
 function [fval,DLIK,Hess,exit_flag,ys,trend_coeff,info,Model,DynareOptions,BayesInfo,DynareResults] = dsge_likelihood(xparam1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults,derivatives_info)
-% Evaluates the posterior kernel of a dsge model.
+% Evaluates the posterior kernel of a dsge model using the specified
+% kalman_algo; the resulting posterior includes the 2*pi constant of the
+% likelihood function
 
 %@info:
 %! @deftypefn {Function File} {[@var{fval},@var{exit_flag},@var{ys},@var{trend_coeff},@var{info},@var{Model},@var{DynareOptions},@var{BayesInfo},@var{DynareResults},@var{DLIK},@var{AHess}] =} dsge_likelihood (@var{xparam1},@var{DynareDataset},@var{DynareOptions},@var{Model},@var{EstimatedParameters},@var{BayesInfo},@var{DynareResults},@var{derivatives_flag})
@@ -206,7 +208,7 @@ Q = Model.Sigma_e;
 H = Model.H;
 
 % Test if Q is positive definite.
-if ~issquare(Q) && EstimatedParameters.ncx
+if ~issquare(Q) || EstimatedParameters.ncx || isfield(EstimatedParameters,'calibrated_covariances')
     [Q_is_positive_definite, penalty] = ispd(Q);
     if ~Q_is_positive_definite
         fval = objective_function_penalty_base+penalty;
@@ -214,10 +216,20 @@ if ~issquare(Q) && EstimatedParameters.ncx
         info = 43;
         return
     end
+    if isfield(EstimatedParameters,'calibrated_covariances')
+        correct_flag=check_consistency_covariances(Q);
+        if ~correct_flag
+            penalty = sum(Q(EstimatedParameters.calibrated_covariances.position).^2);
+            fval = objective_function_penalty_base+penalty;
+            exit_flag = 0;
+            info = 71;
+            return
+        end
+    end
 end
 
 % Test if H is positive definite.
-if ~issquare(H) && EstimatedParameters.ncn
+if ~issquare(H) || EstimatedParameters.ncn || isfield(EstimatedParameters,'calibrated_covariances_ME')
     [H_is_positive_definite, penalty] = ispd(H);
     if ~H_is_positive_definite
         fval = objective_function_penalty_base+penalty;
@@ -225,6 +237,16 @@ if ~issquare(H) && EstimatedParameters.ncn
         info = 44;
         return
     end
+    if isfield(EstimatedParameters,'calibrated_covariances_ME')
+        correct_flag=check_consistency_covariances(H);
+        if ~correct_flag
+            penalty = sum(H(EstimatedParameters.calibrated_covariances_ME.position).^2);
+            fval = objective_function_penalty_base+penalty;
+            exit_flag = 0;
+            info = 72;
+            return
+        end
+    end
 end
 
 
diff --git a/matlab/DsgeVarLikelihood.m b/matlab/dsge_var_likelihood.m
similarity index 90%
rename from matlab/DsgeVarLikelihood.m
rename to matlab/dsge_var_likelihood.m
index 9b57abcd21ba1e8ae60f0f061e29b16305527520..6c37fd1a468cc7ac4e586075e727ffbc059950fd 100644
--- a/matlab/DsgeVarLikelihood.m
+++ b/matlab/dsge_var_likelihood.m
@@ -1,4 +1,4 @@
-function [fval,grad,hess,exit_flag,info,PHI,SIGMAu,iXX,prior] = DsgeVarLikelihood(xparam1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults)
+function [fval,grad,hess,exit_flag,info,PHI,SIGMAu,iXX,prior] = dsge_var_likelihood(xparam1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults)
 % Evaluates the posterior kernel of the bvar-dsge model.
 %
 % INPUTS
@@ -35,7 +35,6 @@ function [fval,grad,hess,exit_flag,info,PHI,SIGMAu,iXX,prior] = DsgeVarLikelihoo
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 global objective_function_penalty_base
-% Declaration of the persistent variables.
 persistent dsge_prior_weight_idx
 
 grad=[];
@@ -53,11 +52,7 @@ if isempty(dsge_prior_weight_idx)
 end
 
 % Get the number of estimated (dsge) parameters.
-ns = EstimatedParameters.nvx + ...
-     EstimatedParameters.nvn + ...
-     EstimatedParameters.ncx + ...
-     EstimatedParameters.ncn;
-nx = ns + EstimatedParameters.np;
+nx = EstimatedParameters.nvx + EstimatedParameters.np;
 
 % Get the number of observed variables in the VAR model.
 NumberOfObservedVariables = DynareDataset.info.nvobs;
@@ -107,20 +102,6 @@ for i=1:EstimatedParameters.nvx
 end
 offset = EstimatedParameters.nvx;
 
-% Check that the user does not estimate measurment errors.
-% TODO Check that the user does not declare non estimated measurement errors...
-if EstimatedParameters.nvn
-    disp('DsgeVarLikelihood :: Measurement errors are not implemented!')
-    return
-end
-
-% Check that the user does not estimate off diagonal elements in the covariance matrix of the structural innovation.
-% TODO Check that Q is a diagonal matrix...
-if EstimatedParameters.ncx
-    disp('DsgeVarLikelihood :: Correlated structural innovations are not implemented!')
-    return
-end
-
 % Update Model.params and Model.Sigma_e.
 Model.params(EstimatedParameters.param_vals(:,1)) = xparam1(offset+1:end);
 Model.Sigma_e = Q;
@@ -169,10 +150,6 @@ else
     constant = zeros(1,NumberOfObservedVariables);
 end
 
-% Dsge-VAR with deterministic trends is not implemented
-if BayesInfo.with_trend == 1
-    error('DsgeVarLikelihood :: Linear trend is not yet implemented!')
-end
 
 %------------------------------------------------------------------------------
 % 3. theoretical moments (second order)
@@ -224,7 +201,7 @@ if ~isinf(dsge_prior_weight)% Evaluation of the likelihood of the dsge-var model
     tmp1 = dsge_prior_weight*DynareDataset.info.ntobs*GYX + mYX;
     tmp2 = inv(dsge_prior_weight*DynareDataset.info.ntobs*GXX+mXX);
     SIGMAu = tmp0 - tmp1*tmp2*tmp1'; clear('tmp0');
-    [SIGMAu_is_positive_definite, penalty] = ispd(SIGMAu)
+    [SIGMAu_is_positive_definite, penalty] = ispd(SIGMAu);
     if ~SIGMAu_is_positive_definite
         fval = objective_function_penalty_base + penalty;
         info = 52;
diff --git a/matlab/dsgevar_posterior_density.m b/matlab/dsgevar_posterior_density.m
index 1ea09d57104c37eeb8271cb583a9fed0efa3fb4b..16f593f0628f5caca2ea5093be81b8fe04603ef6 100644
--- a/matlab/dsgevar_posterior_density.m
+++ b/matlab/dsgevar_posterior_density.m
@@ -47,7 +47,7 @@ if ~options_.noconstant
         bvar.NumberOfVariables;
 end
 
-[fval,cost_flag,info,PHI,SIGMAu,iXX,prior] =  DsgeVarLikelihood(deep',DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults);
+[fval,cost_flag,info,PHI,SIGMAu,iXX,prior] =  dsge_var_likelihood(deep',DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults);
 
 % Conditionnal posterior density of the lagged matrices (given Sigma) ->
 % Matric-variate normal distribution.
diff --git a/matlab/dyn_ramsey_static.m b/matlab/dyn_ramsey_static.m
index 349d7511face64687e865a20dabb200a9366a307..33069c600c8c1ba94f7b006659b30e31321953e1 100644
--- a/matlab/dyn_ramsey_static.m
+++ b/matlab/dyn_ramsey_static.m
@@ -36,9 +36,14 @@ steady_state = [];
 params = M.params;
 check = 0;
 options_.steadystate.nocheck = 1;
+% dyn_ramsey_static_1 is a subfunction
 nl_func = @(x) dyn_ramsey_static_1(x,M,options_,oo);
 
-if options_.steadystate_flag
+% check_static_model is a subfunction
+if check_static_model(oo.steady_state,M,options_,oo)
+    steady_state = oo.steady_state;
+    return
+elseif options_.steadystate_flag
     k_inst = [];
     instruments = options_.instruments;
     inst_nbr = size(options_.instruments,1);
@@ -46,7 +51,6 @@ if options_.steadystate_flag
         k_inst = [k_inst; strmatch(options_.instruments(i,:), ...
                                    M.endo_names,'exact')];
     end
-    ys = oo.steady_state;
     if inst_nbr == 1
         inst_val = csolve(nl_func,oo.steady_state(k_inst),'',options_.solve_tolf,100);
     else
@@ -145,9 +149,9 @@ end
 aux_eq = [1:orig_endo_aux_nbr, orig_endo_aux_nbr+orig_eq_nbr+1:size(fJ,1)];
 A = fJ(aux_eq,orig_endo_aux_nbr+1:end);
 y = res(aux_eq);
-aux_vars = -A\y;
+mult = -A\y;
 
-resids1 = y+A*aux_vars;
+resids1 = y+A*mult;
 if inst_nbr == 1
     r1 = sqrt(resids1'*resids1);
 else
@@ -161,4 +165,22 @@ else
     resids = [res(orig_endo_nbr+(1:orig_endo_nbr-inst_nbr)); r1];
 end
 rJ = [];
-steady_state = [xx(1:orig_endo_aux_nbr); aux_vars];
\ No newline at end of file
+if needs_set_auxiliary_variables
+    steady_state = s_a_v_func([xx(1:orig_endo_aux_nbr); mult]);
+else
+    steady_state = [xx(1:orig_endo_aux_nbr); mult];
+end
+
+function result = check_static_model(ys,M,options_,oo)
+result = false;
+if (options_.bytecode)
+    [chck, res, junk] = bytecode('static',ys,[oo.exo_simul oo.exo_det_simul], ...
+                                 M.params, 'evaluate'); 
+else
+    res = feval([M.fname '_static'],ys,[oo.exo_simul oo.exo_det_simul], ...
+                M.params);
+end
+if norm(res) < options_.solve_tolf
+    result = true;
+end
+
diff --git a/matlab/dyn_risky_steadystate_solver.m b/matlab/dyn_risky_steadystate_solver.m
index 5557c98ad8d0bb7964084d02a6c06660a5006667..a7e09b1bd3ca4fc09221c83a3feb32e33089c0f3 100644
--- a/matlab/dyn_risky_steadystate_solver.m
+++ b/matlab/dyn_risky_steadystate_solver.m
@@ -109,9 +109,9 @@ function [dr,info] = dyn_risky_steadystate_solver(ys0,M, ...
         
         x0 = ys0(pm.v_p);
         n = length(x0);
-        [x, info] = solve1(@risky_residuals_ds,x0,1:n,1:n,0,1, options.gstep, ...
+        [x, info] = solve1(@risky_residuals_ds,x0,1:n,1:n,0,options.gstep, ...
                            options.solve_tolf,options.solve_tolx, ...
-                           options.solve_maxit,options.debug,pm,M,dr, ...
+                           options.steady.maxit,options.debug,pm,M,dr, ...
                            options,oo);
         if info
             error('DS approach can''t be computed')
@@ -124,9 +124,9 @@ function [dr,info] = dyn_risky_steadystate_solver(ys0,M, ...
         pm = model_structure(M,options);
     end
     
-    [ys, info] = solve1(func,ys0,1:endo_nbr,1:endo_nbr,0,1, options.gstep, ...
+    [ys, info] = solve1(func,ys0,1:endo_nbr,1:endo_nbr,0,options.gstep, ...
                         options.solve_tolf,options.solve_tolx, ...
-                        options.solve_maxit,options.debug,pm,M,dr,options,oo);
+                        options.steady.maxit,options.debug,pm,M,dr,options,oo);
     %    [ys, info] = csolve(func,ys0,[],1e-10,100,M,dr,options,oo);
     if info
         error('RSS approach can''t be computed')
diff --git a/matlab/dyn_saveas.m b/matlab/dyn_saveas.m
index 533f8a755872c86bddf78707593eb43487eba72c..2bd513cc8d9087718a3e4403f6b439d782fbf082 100644
--- a/matlab/dyn_saveas.m
+++ b/matlab/dyn_saveas.m
@@ -31,7 +31,7 @@ function dyn_saveas(h,fname,DynareOptions)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if any(strcmp('eps',cellstr(DynareOptions.graph_format)))
-    if exist('OCTAVE_VERSION')
+    if isoctave
         fname = strrep(fname,'/',filesep);
         fname = strrep(fname,'\',filesep);
         if DynareOptions.nodisplay && ispc,
@@ -41,14 +41,14 @@ if any(strcmp('eps',cellstr(DynareOptions.graph_format)))
     print(h,'-depsc2',[fname,'.eps']) 
 end
 if any(strcmp('pdf',cellstr(DynareOptions.graph_format)))
-    if exist('OCTAVE_VERSION')
+    if isoctave
         error('Octave cannot create pdf files!')
     else
         print(h,'-dpdf',[fname,'.pdf']) 
     end
 end
 if any(strcmp('fig',cellstr(DynareOptions.graph_format)))
-    if exist('OCTAVE_VERSION')
+    if isoctave
         error('Octave cannot create fig files!')
     else
         if DynareOptions.nodisplay
diff --git a/matlab/dyn_waitbar.m b/matlab/dyn_waitbar.m
index 73577c798c1cf4f101824900a97faf6476e633d2..f9665c950982b6cc879fc9af6c4489c5120be9b7 100644
--- a/matlab/dyn_waitbar.m
+++ b/matlab/dyn_waitbar.m
@@ -44,7 +44,7 @@ end
 
 if ~whoiam
     
-    if exist('OCTAVE_VERSION') || options_.console_mode,
+    if isoctave || options_.console_mode
                 
         if init,
             diary off;
@@ -55,7 +55,7 @@ if ~whoiam
             running_text =  varargin{2};
         end
         
-        if exist('OCTAVE_VERSION'),
+        if isoctave
             printf([running_text,' %3.f%% done\r'], prctdone*100);
         else
             s0=repmat('\b',1,length(newString));
diff --git a/matlab/dyn_waitbar_close.m b/matlab/dyn_waitbar_close.m
index 4dbb628e51af7eb8e895876e9ead62eaad9ab7ca..894e4c6fad6663652c0d2ec339e3d1dacfe49c18 100644
--- a/matlab/dyn_waitbar_close.m
+++ b/matlab/dyn_waitbar_close.m
@@ -22,7 +22,7 @@ function dyn_waitbar_close(h)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 global options_
 
-if exist('OCTAVE_VERSION') || options_.console_mode,
+if isoctave || options_.console_mode,
     clear dyn_waitbar;
     diary on,
     fprintf('\n');
diff --git a/matlab/dynare.m b/matlab/dynare.m
index 06d81f6995e7e2bec0d9613038d2e7cb06882fa5..d72d20787dcdc50583fe54a9eeb700b6785ae82e 100644
--- a/matlab/dynare.m
+++ b/matlab/dynare.m
@@ -16,7 +16,7 @@ function dynare(fname, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2001-2013 Dynare Team
+% Copyright (C) 2001-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -44,15 +44,18 @@ if strcmpi(fname,'help')
     return
 end
 
+% detect if MEX files are present; if not, use alternative M-files
+dynareroot = dynare_config;
+
 warning_config()
 
-if exist('OCTAVE_VERSION')
+if isoctave 
     if octave_ver_less_than('3.6.0')
         warning('This version of Dynare has only been tested on Octave 3.6.0 and above. Since your Octave version is older than that, Dynare may fail to run, or give unexpected results. Consider upgrading your Octave installation.');
     end
 else
-    if matlab_ver_less_than('7.3')
-        warning('This version of Dynare has only been tested on MATLAB 7.3 (R2006b) and above. Since your MATLAB version is older than that, Dynare may fail to run, or give unexpected results. Consider upgrading your MATLAB installation, or switch to Octave.');
+    if matlab_ver_less_than('7.5')
+        warning('This version of Dynare has only been tested on MATLAB 7.5 (R2007b) and above. Since your MATLAB version is older than that, Dynare may fail to run, or give unexpected results. Consider upgrading your MATLAB installation, or switch to Octave.');
     end
 end
 
@@ -60,13 +63,14 @@ end
 more off
 
 % sets default format for save() command
-if exist('OCTAVE_VERSION')
-    default_save_options('-mat')
+if isoctave
+    if octave_ver_less_than('3.8')
+        default_save_options('-mat')
+    else
+        save_default_options('-mat')
+    end
 end
 
-% detect if MEX files are present; if not, use alternative M-files
-dynareroot = dynare_config;
-
 if nargin < 1
     error('DYNARE: you must provide the name of the MOD file in argument')
 end
@@ -78,6 +82,7 @@ end
 % Testing if file have extension
 % If no extension default .mod is added
 if isempty(strfind(fname,'.'))
+    fnamelength = length(fname);
     fname1 = [fname '.dyn'];
     d = dir(fname1);
     if length(d) == 0
@@ -90,15 +95,54 @@ else
             && ~strcmp(upper(fname(size(fname,2)-3:size(fname,2))),'.DYN')
         error('DYNARE: argument must be a filename with .mod or .dyn extension')
     end;
+    fnamelength = length(fname) - 4;
 end;
-d = dir(fname);
-if length(d) == 0
-    error(['DYNARE: can''t open ' fname])
+
+if fnamelength + length('_set_auxiliary_variables') > namelengthmax()
+    error('The name of your MOD file is too long, please shorten it')
+end
+
+% Workaround for a strange bug with Octave: if there is any call to exist(fname)
+% before the call to the preprocessor, then Octave will use the old copy of
+% the .m instead of the newly generated one. Deleting the .m beforehand
+% fixes the problem.
+if isoctave && length(dir([fname(1:(end-4)) '.m'])) > 0
+    delete([fname(1:(end-4)) '.m'])
+end
+
+if ~isempty(strfind(fname,filesep))
+    fprintf('\nIt seems you are trying to call a mod-file not located in the "Current Folder". This is not possible (the %s symbol is not allowed in the name of the mod file).\n', filesep)
+    [pathtomodfile,basename,ext] = fileparts(fname);
+    if exist(pathtomodfile,'dir')
+        filesindirectory = dir(pathtomodfile);
+        filesindirectory = struct2cell(filesindirectory);
+        filesindirectory = filesindirectory(1,:);
+        if ~isempty(strmatch([basename '.mod'],filesindirectory)) || ~isempty(strmatch([basename '.dyn'],filesindirectory))
+            fprintf('Please set your "Current Folder" to the folder where the mod-file is located using the following command:\n')
+            fprintf('\n  >> cd %s\n\n',pathtomodfile)
+        else
+            fprintf('The file %s[.mod,.dyn] could not be located!\n\n',basename)
+        end
+    end
+    error(['dynare:: can''t open ' fname, '.'])
+end
+
+if ~exist(fname,'file') || isequal(fname,'dir')
+    fprintf('\nThe file %s could not be located in the "Current Folder". Check whether you typed in the correct filename\n',fname)
+    fprintf('and whether the file is really located in the "Current Folder".\n')
+    try
+        list_of_mod_files = ls('*.mod');
+        fprintf('\nCurrent folder is %s, and contains the following mod files:\n\n',pwd)
+        disp(list_of_mod_files)
+    catch
+        fprintf('\nCurrent folder is %s, and does not contain any mod files.\n\n',pwd)
+    end
+    error(['dynare:: can''t open ' fname])
 end
 
 % pre-dynare-preprocessor-hook
-if exist([fname(1:end-4) '_pre_dynare_preprocessor_hook.m'],'file')
-    eval([fname(1:end-4) '_pre_dynare_preprocessor_hook'])
+if exist(fname(1:end-4),'dir') && exist([fname(1:end-4) filesep 'hooks'],'dir') && exist([fname(1:end-4) filesep 'hooks/priorprocessing.m'],'file')
+    run([fname(1:end-4) filesep 'hooks/priorprocessing'])
 end
 
 command = ['"' dynareroot 'dynare_m" ' fname] ;
@@ -108,10 +152,14 @@ end
 
 [status, result] = system(command);
 disp(result)
+if ismember('onlymacro', varargin)
+    disp('Preprocesser stopped after macroprocessing step because of ''onlymacro'' option.');
+    return;
+end
 
 % post-dynare-prerocessor-hook
-if exist([fname(1:end-4) '_post_dynare_preprocessor_hook.m'],'file')
-    eval([fname(1:end-4) '_post_dynare_preprocessor_hook'])
+if exist(fname(1:end-4),'dir') && exist([fname(1:end-4) filesep 'hooks'],'dir') && exist([fname(1:end-4) filesep 'hooks/postprocessing.m'],'file')
+    run([fname(1:end-4) filesep 'hooks/postprocessing'])
 end
 
 % Save preprocessor result in logfile (if `no_log' option not present)
diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m
index 2cd7b74878da842c131de3ab6cdd91243c7d1729..2ca4a6794ae7a648cbdfda2dbe32a86117e45ff1 100644
--- a/matlab/dynare_config.m
+++ b/matlab/dynare_config.m
@@ -15,7 +15,7 @@ function dynareroot = dynare_config(path_to_dynare,verbose)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2001-2013 Dynare Team
+% Copyright (C) 2001-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -67,7 +67,7 @@ addpath([dynareroot '/reports/'])
 % For functions that exist only under some Octave versions
 % or some MATLAB versions, and for which we provide some replacement functions
 
-if ~exist('OCTAVE_VERSION')
+if ~isoctave
     % Replacements for rows(), columns() and issquare() (inexistent under MATLAB)
     addpath([dynareroot '/missing/rows_columns'])
     addpath([dynareroot '/missing/issquare'])
@@ -80,65 +80,49 @@ if ~exist('OCTAVE_VERSION')
 end
 
 % ordeig() doesn't exist in Octave
-if exist('OCTAVE_VERSION')
+if isoctave
     addpath([dynareroot '/missing/ordeig'])
 end
 
-% bsxfun is missing in old versions of MATLAB (and exists in Octave)
-if ~exist('OCTAVE_VERSION') && matlab_ver_less_than('7.4')
-    addpath([dynareroot '/missing/bsxfun'])
-end
-
-% ilu is missing in old versions of MATLAB and in Octave
-if exist('OCTAVE_VERSION') || matlab_ver_less_than('7.4')
+% ilu is missing in Octave
+if isoctave
     addpath([dynareroot '/missing/ilu'])
 end
 
-% strjoin is missing in older versions of MATLAB and in Octave
-if exist('OCTAVE_VERSION') || matlab_ver_less_than('8.1')
+% strjoin is missing in older versions of MATLAB and in Octave < 3.8
+if (isoctave && octave_ver_less_than('3.8')) || ...
+        (~isoctave && matlab_ver_less_than('8.1'))
     addpath([dynareroot '/missing/strjoin'])
 end
 
 % nanmean is in Octave Forge Statistics package and in MATLAB Statistics
 % toolbox
-if (exist('OCTAVE_VERSION') && ~user_has_octave_forge_package('statistics')) ...
-    || (~exist('OCTAVE_VERSION') && ~user_has_matlab_license('statistics_toolbox'))
+if (isoctave && ~user_has_octave_forge_package('statistics')) ...
+    || (~isoctave && ~user_has_matlab_license('statistics_toolbox'))
     addpath([dynareroot '/missing/nanmean'])
 end
 
 % Add path to MEX files
-if exist('OCTAVE_VERSION')
+if isoctave
     addpath([dynareroot '../mex/octave/']);
 else
     % Add win32 specific paths for Dynare Windows package
     if strcmp(computer, 'PCWIN')
-        if matlab_ver_less_than('7.5')
-            mexpath = [dynareroot '../mex/matlab/win32-7.3-7.4'];
-            if exist(mexpath, 'dir')
-                addpath(mexpath)
-            end
-        else
-            mexpath = [dynareroot '../mex/matlab/win32-7.5-8.1'];
-            if exist(mexpath, 'dir')
-                addpath(mexpath)
-            end
+        mexpath = [dynareroot '../mex/matlab/win32-7.5-8.3'];
+        if exist(mexpath, 'dir')
+            addpath(mexpath)
         end
     end
 
     % Add win64 specific paths for Dynare Windows package
     if strcmp(computer, 'PCWIN64')
-        if matlab_ver_less_than('7.5')
-            mexpath = [dynareroot '../mex/matlab/win64-7.3-7.4'];
-            if exist(mexpath, 'dir')
-                addpath(mexpath)
-            end
-        elseif matlab_ver_less_than('7.8')
+        if matlab_ver_less_than('7.8')
             mexpath = [dynareroot '../mex/matlab/win64-7.5-7.7'];
             if exist(mexpath, 'dir')
                 addpath(mexpath)
             end
         else
-            mexpath = [dynareroot '../mex/matlab/win64-7.8-8.1'];
+            mexpath = [dynareroot '../mex/matlab/win64-7.8-8.3'];
             if exist(mexpath, 'dir')
                 addpath(mexpath)
             end
@@ -146,16 +130,9 @@ else
     end
 
     if strcmp(computer, 'MACI')
-        if matlab_ver_less_than('7.5')
-            mexpath = [dynareroot '../mex/matlab/osx32-7.4'];
-            if exist(mexpath, 'dir')
-                addpath(mexpath)
-            end
-        else
-            mexpath = [dynareroot '../mex/matlab/osx32-7.5-7.11'];
-            if exist(mexpath, 'dir')
-                addpath(mexpath)
-            end
+        mexpath = [dynareroot '../mex/matlab/osx32-7.5-7.11'];
+        if exist(mexpath, 'dir')
+            addpath(mexpath)
         end
     end
 
@@ -170,23 +147,6 @@ else
     addpath([dynareroot '../mex/matlab/']);
 end
 
-% matlab2tikz
-if strncmp(computer, 'GLNX', 4) || ~isempty(regexpi(computer, '.*linux.*', 'once'))
-    if exist('matlab2tikz.m') == 0 && exist('/usr/share/matlab2tikz/matlab2tikz.m') == 2
-        addpath('/usr/share/matlab2tikz');
-    end
-elseif strncmp(computer, 'MACI', 4) || ~isempty(regexpi(computer, '.*apple.*', 'once'))
-    if exist([dynareroot '../contrib/matlab2tikz/matlab2tikz.m']) == 2
-        addpath([dynareroot '../contrib/matlab2tikz']);
-    elseif exist('/usr/local/share/matlab2tikz/matlab2tikz.m') == 2
-        addpath('/usr/local/share/matlab2tikz');
-    end
-else
-    if exist([dynareroot '../contrib/matlab2tikz/matlab2tikz.m']) == 2
-        addpath([dynareroot '../contrib/matlab2tikz']);
-    end
-end
-
 %% Set mex routine names
 mex_status = cell(1,3);
 mex_status(1,1) = {'mjdgges'};
diff --git a/matlab/dynare_estimation.m b/matlab/dynare_estimation.m
index 4eaec12fa2f9e2d8d3d963f3d82d3e5f5951dc55..ed2e3d84a4b2b81fc36eb0ce579d0c0ef2a56258 100644
--- a/matlab/dynare_estimation.m
+++ b/matlab/dynare_estimation.m
@@ -30,7 +30,12 @@ function dynare_estimation(var_list,dname)
 
 global options_ oo_ M_ oo_recursive_
 
-%% Decide if a DSGE or DSGE-VAR has to be estimated.
+% Test if the order of approximation is nonzero (the preprocessor tests if order is non negative).
+if isequal(options_.order,0)
+    error('Estimation:: The order of the Taylor approximation cannot be 0!')
+end
+
+% Decide if a DSGE or DSGE-VAR has to be estimated.
 if ~isempty(strmatch('dsge_prior_weight',M_.param_names))
     options_.dsge_var = 1;
 end
@@ -53,11 +58,17 @@ end
 
 M_.dname = dname;
 
-if options_.mode_compute && options_.analytic_derivation,
+if (isnumeric(options_.mode_compute) && options_.mode_compute && options_.analytic_derivation) ... %no user supplied function
+        || (~isnumeric(options_.mode_compute) && options_.analytic_derivation) % user supplied function
     analytic_derivation0=options_.analytic_derivation;
     options_.analytic_derivation=1;
 end
-    
+
+if options_.logged_steady_state
+    oo_.dr.ys=exp(oo_.dr.ys);
+    oo_.steady_state=exp(oo_.steady_state);
+end
+
 
 if nnobs > 1
     for i=1:nnobs
@@ -105,11 +116,9 @@ if nnobs > 1 && horizon > 0
         SelecVariables = [];
         for i=1:nvar
             if ~isempty(strmatch(var_list(i,:),endo_names,'exact'))
-                SelecVariables = [SelecVariables;strmatch(var_list(i,:),endo_names, ...
-                                                          'exact')];
+                SelecVariables = [SelecVariables;strmatch(var_list(i,:),endo_names, 'exact')];
             else
-                error(['Estimation: ' var_list(i,:) ' isn''t an endogenous' ...
-                       'variable'])
+                error(['Estimation:: ' var_list(i,:) ' isn''t an endogenous variable'])
             end
         end
     end
diff --git a/matlab/dynare_estimation_1.m b/matlab/dynare_estimation_1.m
index 2702d1134a419b6e0406a81e165b649967bf7980..d617bfbf569a176077d0042a7df31d2751076e70 100644
--- a/matlab/dynare_estimation_1.m
+++ b/matlab/dynare_estimation_1.m
@@ -75,43 +75,44 @@ if ~options_.dsge_var
         objective_function = str2func('dsge_likelihood');
     end
 else
-    objective_function = str2func('DsgeVarLikelihood');
+    objective_function = str2func('dsge_var_likelihood');
 end
 
 [dataset_,xparam1, hh, M_, options_, oo_, estim_params_,bayestopt_] = dynare_estimation_init(var_list_, dname, [], M_, options_, oo_, estim_params_, bayestopt_);
 
-% Set sigma_e_is_diagonal flag (needed if the shocks block is not declared in the mod file).
-M_.sigma_e_is_diagonal = 1;
-if estim_params_.ncx || any(nnz(tril(M_.Sigma_e,-1)))
-    M_.sigma_e_is_diagonal = 0;
+if options_.dsge_var
+    check_dsge_var_model(M_, estim_params_, bayestopt_);
 end
 
-% Set the correlation matrix if necessary.
-if ~isequal(estim_params_.ncx,nnz(tril(M_.Sigma_e,-1)))
-    M_.Correlation_matrix = diag(1./sqrt(diag(M_.Sigma_e)))*M_.Sigma_e*diag(1./sqrt(diag(M_.Sigma_e)));
-    % Remove NaNs appearing because of variances calibrated to zero.
-    if any(isnan(M_.Correlation_matrix))
-        zero_variance_idx = find(~diag(M_.Sigma_e));
-        for i=1:length(zero_variance_idx)
-            M_.Correlation_matrix(zero_variance_idx(i),:) = 0;
-            M_.Correlation_matrix(:,zero_variance_idx(i)) = 0;
-        end
-    end
+%check for calibrated covariances before updating parameters
+if ~isempty(estim_params_)
+    estim_params_=check_for_calibrated_covariances(xparam1,estim_params_,M_);
 end
 
-% Set the correlation matrix of measurement errors if necessary.
-if ~isequal(estim_params_.ncn,nnz(tril(M_.H,-1)))
-    M_.Correlation_matrix_ME = diag(1./sqrt(diag(M_.H)))*M_.H*diag(1./sqrt(diag(M_.H)));
-    % Remove NaNs appearing because of variances calibrated to zero.
-    if any(isnan(M_.Correlation_matrix_ME))
-        zero_variance_idx = find(~diag(M_.H));
-        for i=1:length(zero_variance_idx)
-            M_.Correlation_matrix_ME(zero_variance_idx(i),:) = 0;
-            M_.Correlation_matrix_ME(:,zero_variance_idx(i)) = 0;
-        end
+%%read out calibration that was set in mod-file and can be used for initialization
+xparam1_calib=get_all_parameters(estim_params_,M_); %get calibrated parameters
+if ~any(isnan(xparam1_calib)) %all estimated parameters are calibrated
+    full_calibration_detected=1;
+else
+    full_calibration_detected=0;
+end
+if options_.use_calibration_initialization %set calibration as starting values
+    [xparam1,estim_params_]=do_parameter_initialization(estim_params_,xparam1_calib,xparam1); %get explicitly initialized parameters that have precedence to calibrated values
+    try
+        check_prior_bounds(xparam1,[bayestopt_.lb bayestopt_.ub],M_,estim_params_,options_,bayestopt_); %check whether calibration satisfies prior bounds
+    catch
+        e = lasterror();
+        fprintf('Cannot use parameter values from calibration as they violate the prior bounds.')
+        rethrow(e);
     end
 end
 
+% Set sigma_e_is_diagonal flag (needed if the shocks block is not declared in the mod file).
+M_.sigma_e_is_diagonal = 1;
+if estim_params_.ncx || any(nnz(tril(M_.Correlation_matrix,-1))) || isfield(estim_params_,'calibrated_covariances')
+    M_.sigma_e_is_diagonal = 0;
+end
+
 data = dataset_.data;
 rawdata = dataset_.rawdata;
 data_index = dataset_.missing.aindex;
@@ -136,8 +137,7 @@ ub = bayestopt_.ub;
 
 dr = oo_.dr;
 
-%% load optimal_mh_scale parameter if previous run was with
-%% mode_compute=6
+% load optimal_mh_scale parameter if previous run was with mode_compute=6
 mh_scale_fname = [M_.fname '_optimal_mh_scale_parameter.mat'];
 if exist(mh_scale_fname)
     if options_.mode_compute == 0
@@ -146,12 +146,12 @@ if exist(mh_scale_fname)
         clear tmp;
     else
         % remove the file if mode_compute ~= 0
-        delete('mh_scale_fname')
+        delete(mh_scale_fname)
     end
 end
 
 if ~isempty(estim_params_)
-    set_parameters(xparam1);
+    M_ = set_all_parameters(xparam1,estim_params_,M_);
 end
 
 % compute sample moments if needed (bvar-dsge)
@@ -174,7 +174,21 @@ if options_.dsge_var
 end
 
 
-oo_ = initial_estimation_checks(objective_function,xparam1,dataset_,M_,estim_params_,options_,bayestopt_,oo_);
+%% perform initial estimation checks;
+try
+    oo_ = initial_estimation_checks(objective_function,xparam1,dataset_,M_,estim_params_,options_,bayestopt_,oo_);
+catch % if check fails, provide info on using calibration if present
+    e = lasterror();
+    if full_calibration_detected %calibrated model present and no explicit starting values
+        skipline(1);
+        fprintf('ESTIMATION_CHECKS: There was an error in computing the likelihood for initial parameter values.\n')
+        fprintf('ESTIMATION_CHECKS: You should try using the calibrated version of the model as starting values. To do\n')
+        fprintf('ESTIMATION_CHECKS: this, add an empty estimated_params_init-block with use_calibration option immediately before the estimation\n')    
+        fprintf('ESTIMATION_CHECKS: command (and after the estimated_params-block so that it does not get overwritten):\n');
+        skipline(2);
+    end
+    rethrow(e);
+end
 
 if isequal(options_.mode_compute,0) && isempty(options_.mode_file) && options_.mh_posterior_mode_estimation==0
     if options_.smoother == 1
@@ -214,36 +228,34 @@ if isequal(options_.mode_compute,0) && isempty(options_.mode_file) && options_.m
     return
 end
 
-
-%% Estimation of the posterior mode or likelihood mode
+% Estimation of the posterior mode or likelihood mode
 if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
     switch options_.mode_compute
       case 1
-        if exist('OCTAVE_VERSION')
+        if isoctave
             error('Option mode_compute=1 is not available under Octave')
         elseif ~user_has_matlab_license('optimization_toolbox')
             error('Option mode_compute=1 requires the Optimization Toolbox')
         end
-
-        optim_options = optimset('display','iter','LargeScale','off', ...
-                                 'MaxFunEvals',100000,'TolFun',1e-8,'TolX',1e-6);
+        % Set default optimization options for fmincon.
+        optim_options = optimset('display','iter', 'LargeScale','off', 'MaxFunEvals',100000, 'TolFun',1e-8, 'TolX',1e-6);
         if isfield(options_,'optim_opt')
             eval(['optim_options = optimset(optim_options,' options_.optim_opt ');']);
         end
         if options_.analytic_derivation,
             optim_options = optimset(optim_options,'GradObj','on','TolX',1e-7);
         end
-            [xparam1,fval,exitflag,output,lamdba,grad,hessian_fmincon] = ...
-                fmincon(objective_function,xparam1,[],[],[],[],lb,ub,[],optim_options,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
+        [xparam1,fval,exitflag,output,lamdba,grad,hessian_fmincon] = ...
+            fmincon(objective_function,xparam1,[],[],[],[],lb,ub,[],optim_options,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
       case 2
         error('ESTIMATION: mode_compute=2 option (Lester Ingber''s Adaptive Simulated Annealing) is no longer available')
       case 3
-        if exist('OCTAVE_VERSION') && ~user_has_octave_forge_package('optim')
+        if isoctave && ~user_has_octave_forge_package('optim')
             error('Option mode_compute=3 requires the optim package')
-        elseif ~exist('OCTAVE_VERSION') && ~user_has_matlab_license('optimization_toolbox')
+        elseif ~isoctave && ~user_has_matlab_license('optimization_toolbox')
             error('Option mode_compute=3 requires the Optimization Toolbox')
         end
-
+        % Set default optimization options for fminunc.
         optim_options = optimset('display','iter','MaxFunEvals',100000,'TolFun',1e-8,'TolX',1e-6);
         if isfield(options_,'optim_opt')
             eval(['optim_options = optimset(optim_options,' options_.optim_opt ');']);
@@ -251,28 +263,52 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
         if options_.analytic_derivation,
             optim_options = optimset(optim_options,'GradObj','on');
         end
-        if ~exist('OCTAVE_VERSION')
+        if ~isoctave
             [xparam1,fval,exitflag] = fminunc(objective_function,xparam1,optim_options,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
         else
             % Under Octave, use a wrapper, since fminunc() does not have a 4th arg
             func = @(x) objective_function(x, dataset_,options_,M_,estim_params_,bayestopt_,oo_);
             [xparam1,fval,exitflag] = fminunc(func,xparam1,optim_options);
         end
-
       case 4
+        % Set default options.
         H0 = 1e-4*eye(nx);
         crit = 1e-7;
         nit = 1000;
         verbose = 2;
-        if options_.analytic_derivation,
+        numgrad = options_.gradient_method;
+        epsilon = options_.gradient_epsilon;
+        % Change some options.
+        if isfield(options_,'optim_opt')
+            options_list = read_key_value_string(options_.optim_opt);
+            for i=1:rows(options_list)
+                switch options_list{i,1}
+                  case 'MaxIter'
+                    nit = options_list{i,2};
+                  case 'InitialInverseHessian'
+                    H0 = eval(options_list{i,2});
+                  case 'TolFun'
+                    crit = options_list{i,2};
+                  case 'NumgradAlgorithm'
+                    numgrad = options_list{i,2};
+                  case 'NumgradEpsilon'
+                    epsilon = options_list{i,2};
+                  otherwise
+                    warning(['csminwel: Unknown option (' options_list{i,1} ')!'])
+                end
+            end
+        end
+        % Set flag for analytical gradient.
+        if options_.analytic_derivation
             analytic_grad=1;
         else
             analytic_grad=[];
         end
-
-            [fval,xparam1,grad,hessian_csminwel,itct,fcount,retcodehat] = ...
-                csminwel1(objective_function,xparam1,H0,analytic_grad,crit,nit,options_.gradient_method,options_.gradient_epsilon,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
-            disp(sprintf('Objective function at mode: %f',fval))
+        % Call csminwell.
+        [fval,xparam1,grad,hessian_csminwel,itct,fcount,retcodehat] = ...
+            csminwel1(objective_function, xparam1, H0, analytic_grad, crit, nit, numgrad, epsilon, dataset_, options_, M_, estim_params_, bayestopt_, oo_);
+        % Disp value at the mode.
+        disp(sprintf('Objective function at mode: %f',fval))
       case 5
         if isfield(options_,'hess')
             flag = options_.hess;
@@ -305,41 +341,82 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
         parameter_names = bayestopt_.name;
         save([M_.fname '_mode.mat'],'xparam1','hh','gg','fval','invhess','parameter_names');
       case 6
+        % Set default options
+        gmhmaxlikOptions = options_.gmhmaxlik;
+        if ~isempty(hh);
+            gmhmaxlikOptions.varinit = 'previous';
+        else
+            gmhmaxlikOptions.varinit = 'prior';
+        end
+        if isfield(options_,'optim_opt')
+            options_list = read_key_value_string(options_.optim_opt);
+            for i=1:rows(options_list)
+                switch options_list{i,1}
+                  case 'NumberOfMh'
+                    gmhmaxlikOptions.iterations = options_list{i,2};
+                  case 'ncov-mh'
+                    gmhmaxlikOptions.number = options_list{i,2};
+                  case 'nscale'
+                    gmhmaxlikOptions.nscale = options_list{i,2};
+                  case 'nclimb'
+                    gmhmaxlikOptions.nclimb = options_list{i,2};
+                  case 'InitialCovarianceMatrix'
+                    switch options_list{i,2}
+                      case 'previous'
+                        if isempty(hh)
+                            error('gmhmaxlik: No previous estimate of the Hessian matrix available!')
+                        else
+                            gmhmaxlikOptions.varinit = 'previous'
+                        end
+                      case {'prior', 'identity'}
+                        gmhmaxlikOptions.varinit = options_list{i,2};
+                      otherwise
+                        error('gmhmaxlik: Unknown value for option ''InitialCovarianceMatrix''!')
+                    end
+                  case 'AcceptanceRateTarget'
+                    gmhmaxlikOptions.target = options_list{i,2};
+                    if gmhmaxlikOptions.target>1 || gmhmaxlikOptions.target<eps
+                        error('gmhmaxlik: The value of option AcceptanceRateTarget should be a double between 0 and 1!')
+                    end
+                  otherwise
+                    warning(['gmhmaxlik: Unknown option (' options_list{i,1}  ')!'])
+                end
+            end
+        end
+        % Evaluate the objective function.
         fval = feval(objective_function,xparam1,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
         OldMode = fval;
         if ~exist('MeanPar','var')
             MeanPar = xparam1;
         end
-        if ~isempty(hh)
+        switch gmhmaxlikOptions.varinit
+          case 'previous'
             CovJump = inv(hh);
-        else% The covariance matrix is initialized with the prior
+          case 'prior'
+            % The covariance matrix is initialized with the prior
             % covariance (a diagonal matrix) %%Except for infinite variances ;-)
-            varinit = 'prior';
-            if strcmpi(varinit,'prior')
-                stdev = bayestopt_.p2;
-                indx = find(isinf(stdev));
-                stdev(indx) = ones(length(indx),1)*sqrt(10);
-                vars = stdev.^2;
-                CovJump = diag(vars);
-            elseif strcmpi(varinit,'eye')
-                vars = ones(length(bayestopt_.p2),1)*0.1;
-                CovJump = diag(vars);
-            else
-                disp('gmhmaxlik :: Error!')
-                return
-            end
+            stdev = bayestopt_.p2;
+            indx = find(isinf(stdev));
+            stdev(indx) = ones(length(indx),1)*sqrt(10);
+            vars = stdev.^2;
+            CovJump = diag(vars);
+          case 'identity'
+            vars = ones(length(bayestopt_.p2),1)*0.1;
+            CovJump = diag(vars);
+          otherwise
+            error('gmhmaxlik: This is a bug! Please contact the developers.')
         end
         OldPostVar = CovJump;
         Scale = options_.mh_jscale;
-        for i=1:options_.gmhmaxlik.iterations
+        for i=1:gmhmaxlikOptions.iterations
             if i == 1
-                if options_.gmhmaxlik.iterations>1
+                if gmhmaxlikOptions.iterations>1
                     flag = '';
                 else
                     flag = 'LastCall';
                 end
                 [xparam1,PostVar,Scale,PostMean] = ...
-                    gmhmaxlik(objective_function,xparam1,[lb ub],options_.gmhmaxlik,Scale,flag,MeanPar,CovJump,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
+                    gmhmaxlik(objective_function,xparam1,[lb ub],gmhmaxlikOptions,Scale,flag,MeanPar,CovJump,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
                 fval = feval(objective_function,xparam1,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
                 options_.mh_jscale = Scale;
                 mouvement = max(max(abs(PostVar-OldPostVar)));
@@ -352,14 +429,14 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
                 OldMode = fval;
             else
                 OldPostVar = PostVar;
-                if i<options_.gmhmaxlik.iterations
+                if i<gmhmaxlikOptions.iterations
                     flag = '';
                 else
                     flag = 'LastCall';
                 end
                 [xparam1,PostVar,Scale,PostMean] = ...
                     gmhmaxlik(objective_function,xparam1,[lb ub],...
-                              options_.gmhmaxlik,Scale,flag,PostMean,PostVar,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
+                              gmhmaxlikOptions,Scale,flag,PostMean,PostVar,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
                 fval = feval(objective_function,xparam1,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
                 options_.mh_jscale = Scale;
                 mouvement = max(max(abs(PostVar-OldPostVar)));
@@ -373,7 +450,8 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
                 OldMode = fval;
             end
             hh = inv(PostVar);
-            save([M_.fname '_mode.mat'],'xparam1','hh');
+            parameter_names = bayestopt_.name;
+            save([M_.fname '_mode.mat'],'xparam1','hh','parameter_names');
             save([M_.fname '_optimal_mh_scale_parameter.mat'],'Scale');
             bayestopt_.jscale = ones(length(xparam1),1)*Scale;
         end
@@ -386,12 +464,11 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
         save([M_.fname '_mode.mat'],'xparam1','hh','parameter_names');
       case 7
         % Matlab's simplex (Optimization toolbox needed).
-        if exist('OCTAVE_VERSION') && ~user_has_octave_forge_package('optim')
+        if isoctave && ~user_has_octave_forge_package('optim')
             error('Option mode_compute=7 requires the optim package')
-        elseif ~exist('OCTAVE_VERSION') && ~user_has_matlab_license('optimization_toolbox')
+        elseif ~isoctave && ~user_has_matlab_license('optimization_toolbox')
             error('Option mode_compute=7 requires the Optimization Toolbox')
         end
-
         optim_options = optimset('display','iter','MaxFunEvals',1000000,'MaxIter',6000,'TolFun',1e-8,'TolX',1e-6);
         if isfield(options_,'optim_opt')
             eval(['optim_options = optimset(optim_options,' options_.optim_opt ');']);
@@ -399,15 +476,86 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
         [xparam1,fval,exitflag] = fminsearch(objective_function,xparam1,optim_options,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
       case 8
         % Dynare implementation of the simplex algorithm.
-        [xparam1,fval,exitflag] = simplex_optimization_routine(objective_function,xparam1,options_.simplex,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
+        simplexOptions = options_.simplex;
+        if isfield(options_,'optim_opt')
+            options_list = read_key_value_string(options_.optim_opt);
+            for i=1:rows(options_list)
+                switch options_list{i,1}
+                  case 'MaxIter'
+                    simplexOptions.maxiter = options_list{i,2};
+                  case 'TolFun'
+                    simplexOptions.tolerance.f = options_list{i,2};
+                  case 'TolX'
+                    simplexOptions.tolerance.x = options_list{i,2};
+                  case 'MaxFunEvals'
+                    simplexOptions.maxfcall = options_list{i,2};
+                  case 'MaxFunEvalFactor'
+                    simplexOptions.maxfcallfactor = options_list{i,2};
+                  case 'InitialSimplexSize'
+                    simplexOptions.delta_factor = options_list{i,2};
+                  otherwise
+                    warning(['simplex: Unknown option (' options_list{i,1} ')!'])
+                end
+            end
+        end
+        [xparam1,fval,exitflag] = simplex_optimization_routine(objective_function,xparam1,simplexOptions,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
       case 9
+        % Set defaults
         H0 = 1e-4*ones(nx,1);
+        cmaesOptions = options_.cmaes;
+        % Modify defaults
+        if isfield(options_,'optim_opt')
+            options_list = read_key_value_string(options_.optim_opt);
+            for i=1:rows(options_list)
+                switch options_list{i,1}
+                  case 'MaxIter'
+                    cmaesOptions.MaxIter = options_list{i,2};
+                  case 'TolFun'
+                    cmaesOptions.TolFun = options_list{i,2};
+                  case 'TolX'
+                    cmaesOptions.TolX = options_list{i,2};
+                  case 'MaxFunEvals'
+                    cmaesOptions.MaxFunEvals = options_list{i,2};
+                  otherwise
+                    warning(['cmaes: Unknown option (' options_list{i,1}  ')!'])
+                end
+            end
+        end
         warning('off','CMAES:NonfinitenessRange');
         warning('off','CMAES:InitialSigma');
-        [x, fval, COUNTEVAL, STOPFLAG, OUT, BESTEVER] = cmaes(func2str(objective_function),xparam1,H0,options_.cmaes,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
+        [x, fval, COUNTEVAL, STOPFLAG, OUT, BESTEVER] = cmaes(func2str(objective_function),xparam1,H0,cmaesOptions,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
         xparam1=BESTEVER.x;
         disp(sprintf('\n Objective function at mode: %f',fval))
-      case 10 
+      case 10
+        simpsaOptions = options_.simpsa;
+        if isfield(options_,'optim_opt')
+            options_list = read_key_value_string(options_.optim_opt);
+            for i=1:rows(options_list)
+                switch options_list{i,1}
+                  case 'MaxIter'
+                    simpsaOptions.MAX_ITER_TOTAL = options_list{i,2};
+                  case 'TolFun'
+                    simpsaOptions.TOLFUN = options_list{i,2};
+                  case 'TolX'
+                    tolx = options_list{i,2};
+                    if tolx<0
+                        simpsaOptions = rmfield(simpsaOptions,'TOLX'); % Let simpsa choose the default.
+                    else
+                        simpsaOptions.TOLX = tolx;
+                    end
+                  case 'EndTemparature'
+                    simpsaOptions.TEMP_END = options_list{i,2};
+                  case 'MaxFunEvals'
+                    simpsaOptions.MAX_FUN_EVALS = options_list{i,2};
+                  otherwise
+                    warning(['simpsa: Unknown option (' options_list{i,1}  ')!'])
+                end
+            end
+        end
+        simpsaOptionsList = options2cell(simpsaOptions);
+        simpsaOptions = simpsaset(simpsaOptionsList{:});
+        [xparam1, fval, exitflag] = simpsa(func2str(objective_function),xparam1,lb,ub,simpsaOptions,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
+      case 11
          options_.cova_compute = 0 ;
          [xparam1,stdh,lb_95,ub_95,med_param] = online_auxiliary_filter(xparam1,dataset_,options_,M_,estim_params_,bayestopt_,oo_) ;
       case 101
@@ -453,8 +601,6 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
 
         [xparam1, fval, nacc, nfcnev, nobds, ier, t, vm] = sa(objective_function,xparam1,maxy,rt_,epsilon,ns,nt ...
                                                               ,neps,maxevl,LB,UB,c,idisp ,t,vm,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
-      case 'prior'
-        hh = diag(bayestopt_.p2.^2);
       otherwise
         if ischar(options_.mode_compute)
             [xparam1, fval, retcode ] = feval(options_.mode_compute,objective_function,xparam1,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
@@ -462,15 +608,14 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
             error(['dynare_estimation:: mode_compute = ' int2str(options_.mode_compute) ' option is unknown!'])
         end
     end
-    if ~isequal(options_.mode_compute,6) && ~isequal(options_.mode_compute,'prior')
-        if options_.cova_compute == 1
+    if ~isequal(options_.mode_compute,6) %always already computes covariance matrix
+        if options_.cova_compute == 1 %user did not request covariance not to be computed
             if options_.analytic_derivation && strcmp(func2str(objective_function),'dsge_likelihood'),
                 ana_deriv = options_.analytic_derivation;
                 options_.analytic_derivation = 2;
                 [junk1, junk2, hh] = feval(objective_function,xparam1, ...
                     dataset_,options_,M_,estim_params_,bayestopt_,oo_);
                 options_.analytic_derivation = ana_deriv;
-                
             else
                 hh = reshape(hessian(objective_function,xparam1, ...
                     options_.gstep,dataset_,options_,M_,estim_params_,bayestopt_,oo_),nx,nx);
@@ -489,6 +634,35 @@ if options_.cova_compute == 0
     hh = [];%NaN(length(xparam1),length(xparam1));
 end
 
+switch options_.MCMC_jumping_covariance
+    case 'hessian' %Baseline
+        %do nothing and use hessian from mode_compute
+    case 'prior_variance' %Use prior variance
+        if any(isinf(bayestopt_.p2))
+            error('Infinite prior variances detected. You cannot use the prior variances as the proposal density, if some variances are Inf.')
+        else
+            hh = diag(1./(bayestopt_.p2.^2));
+        end
+    case 'identity_matrix' %Use identity
+        hh = eye(nx);
+    otherwise %user specified matrix in file
+        try
+            load(options_.MCMC_jumping_covariance,'jumping_covariance')
+            hh=jumping_covariance;
+        catch
+            error(['No matrix named ''jumping_covariance'' could be found in ',options_.MCMC_jumping_covariance,'.mat'])
+        end
+        [nrow, ncol]=size(hh);
+        if ~isequal(nrow,ncol) && ~isequal(nrow,nx) %check if square and right size
+            error(['jumping_covariance matrix must be square and have ',num2str(nx),' rows and columns'])
+        end
+        try %check for positive definiteness
+            chol(hh);
+        catch
+            error(['Specified jumping_covariance is not positive definite'])
+        end
+end
+
 if ~options_.mh_posterior_mode_estimation && options_.cova_compute
     try
         chol(hh);
@@ -497,12 +671,12 @@ if ~options_.mh_posterior_mode_estimation && options_.cova_compute
         disp('POSTERIOR KERNEL OPTIMIZATION PROBLEM!')
         disp(' (minus) the hessian matrix at the "mode" is not positive definite!')
         disp('=> posterior variance of the estimated parameters are not positive.')
-        disp('You should  try  to change the initial values of the parameters using')
+        disp('You should try to change the initial values of the parameters using')
         disp('the estimated_params_init block, or use another optimization routine.')
         params_at_bound=find(xparam1==ub | xparam1==lb);
         if ~isempty(params_at_bound)
             for ii=1:length(params_at_bound)
-            params_at_bound_name{ii,1}=get_the_name(ii,0,M_,estim_params_,options_);
+            params_at_bound_name{ii,1}=get_the_name(params_at_bound(ii),0,M_,estim_params_,options_);
             end
             disp_string=[params_at_bound_name{1,:}];
             for ii=2:size(params_at_bound_name,1)
@@ -591,7 +765,11 @@ if (any(bayestopt_.pshape  >0 ) && options_.mh_replic) || ...
         for ii=2:size(outside_bound_par_names,1)
             disp_string=[disp_string,', ',outside_bound_par_names{ii,:}];
         end
-        error(['Mode value(s) of ', disp_string ,' are outside parameter bounds. Potentially, you should set prior_trunc=0.'])
+        if options_.prior_trunc>0
+            error(['Estimation:: Mode value(s) of ', disp_string ,' are outside parameter bounds. Potentially, you should set prior_trunc=0.'])
+        else
+            error(['Estimation:: Mode value(s) of ', disp_string ,' are outside parameter bounds.'])
+        end
     end
     % runs MCMC
     if options_.mh_replic
@@ -601,7 +779,7 @@ if (any(bayestopt_.pshape  >0 ) && options_.mh_replic) || ...
         ana_deriv = options_.analytic_derivation;
         options_.analytic_derivation = 0;
         if options_.cova_compute
-            oo_.MC_record=feval(options_.posterior_sampling_method,objective_function,options_.proposal_distribution,xparam1,invhess,bounds,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
+            feval(options_.posterior_sampling_method,objective_function,options_.proposal_distribution,xparam1,invhess,bounds,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
         else
             error('I Cannot start the MCMC because the Hessian of the posterior kernel at the mode was not computed.')
         end
@@ -611,31 +789,44 @@ if (any(bayestopt_.pshape  >0 ) && options_.mh_replic) || ...
         CutSample(M_, options_, estim_params_);
         return
     else
-        if ~options_.nodiagnostic && options_.mh_replic > 2000 && options_.mh_nblck > 1
-            McMCDiagnostics(options_, estim_params_, M_);
+        if ~options_.nodiagnostic && options_.mh_replic>0
+            oo_= McMCDiagnostics(options_, estim_params_, M_,oo_);
         end
         %% Here i discard first half of the draws:
         CutSample(M_, options_, estim_params_);
         %% Estimation of the marginal density from the Mh draws:
         if options_.mh_replic
-            [marginal,oo_] = marginal_density(M_, options_, estim_params_, oo_);
+            [marginal,oo_] = marginal_density(M_, options_, estim_params_, ...
+                                              oo_);
+            % Store posterior statistics by parameter name
             oo_ = GetPosteriorParametersStatistics(estim_params_, M_, options_, bayestopt_, oo_);
             if ~options_.nograph
                 oo_ = PlotPosteriorDistributions(estim_params_, M_, options_, bayestopt_, oo_);
             end
+            % Store posterior mean in a vector and posterior variance in
+            % a matrix
             [oo_.posterior.metropolis.mean,oo_.posterior.metropolis.Variance] ...
                 = GetPosteriorMeanVariance(M_,options_.mh_drop);
         else
             load([M_.fname '_results'],'oo_');
         end
-        metropolis_draw(1);
+        error_flag = metropolis_draw(1);
         if options_.bayesian_irf
+            if error_flag
+                error('Estimation::mcmc: I cannot compute the posterior IRFs!')
+            end
             PosteriorIRF('posterior');
         end
         if options_.moments_varendo
+            if error_flag
+                error('Estimation::mcmc: I cannot compute the posterior moments for the endogenous variables!')
+            end
             oo_ = compute_moments_varendo('posterior',options_,M_,oo_,var_list_);
         end
         if options_.smoother || ~isempty(options_.filter_step_ahead) || options_.forecast
+            if error_flag
+                error('Estimation::mcmc: I cannot compute the posterior statistics!')
+            end
             prior_posterior_statistics('posterior',dataset_);
         end
         xparam = get_posterior_parameters('mean');
diff --git a/matlab/dynare_estimation_init.m b/matlab/dynare_estimation_init.m
index 190b733e28e1f673a18c2cbe31fb1767af61cc09..543d682aec880af36196e2f5557d10f0cb2b179f 100644
--- a/matlab/dynare_estimation_init.m
+++ b/matlab/dynare_estimation_init.m
@@ -98,8 +98,8 @@ end
 if isequal(options_.lik_init,1)
     if isempty(options_.qz_criterium)
         options_.qz_criterium = 1-1e-6;
-    elseif options_.qz_criterium>1-eps
-        error(['estimation: option qz_criterium is too large for estimating ' ...
+    elseif options_.qz_criterium > 1-eps
+        error(['Estimation: option qz_criterium is too large for estimating ' ...
                'a stationary model. If your model contains unit roots, use ' ...
                'option diffuse_filter'])
     end
@@ -107,12 +107,6 @@ elseif isempty(options_.qz_criterium)
     options_.qz_criterium = 1+1e-6;
 end
 
-% If the data are prefiltered then there must not be constants in the
-% measurement equation of the DSGE model or in the DSGE-VAR model.
-if isequal(options_.prefilter,1)
-    options_.noconstant = 1;
-end
-
 % Set options related to filtered variables.
 if ~isequal(options_.filtered_vars,0) && isempty(options_.filter_step_ahead)
     options_.filter_step_ahead = 1;
@@ -141,13 +135,18 @@ if ~isempty(estim_params_) && ~isempty(options_.mode_file) && ~options_.mh_poste
     number_of_estimated_parameters = length(xparam1);
     mode_file = load(options_.mode_file);
     if number_of_estimated_parameters>length(mode_file.xparam1)
+        % More estimated parameters than parameters in the mode file.
         skipline()
         disp(['The posterior mode file ' options_.mode_file ' has been generated using another specification of the model or another model!'])
         disp(['Your mode file contains estimates for ' int2str(length(mode_file.xparam1)) ' parameters, while you are attempting to estimate ' int2str(number_of_estimated_parameters) ' parameters:'])
+        md = []; xd = [];
         for i=1:number_of_estimated_parameters
             id = strmatch(deblank(bayestopt_.name(i,:)),mode_file.parameter_names,'exact');
             if isempty(id)
-                disp(['--> Estimated parameter ' bayestopt_.name{i} ' is not present in the loaded mod_file.'])
+                disp(['--> Estimated parameter ' bayestopt_.name{i} ' is not present in the loaded mode file (prior mean will be used, if possible).'])
+            else
+                xd = [xd; i];
+                md = [md; id];
             end
         end
         for i=1:length(mode_file.xparam1)
@@ -156,20 +155,30 @@ if ~isempty(estim_params_) && ~isempty(options_.mode_file) && ~options_.mh_poste
                 disp(['--> Parameter ' mode_file.parameter_names{i} ' is not estimated according to the current mod file.'])
             end
         end
-        error('Please change the mode_file option or the list of estimated parameters.')
+        if ~options_.mode_compute
+            % The posterior mode is not estimated.
+            error('Please change the mode_file option, the list of estimated parameters or set mode_compute>0.')
+        else
+            % The posterior mode is estimated, the Hessian evaluated at the mode is not needed so we set values for the parameters missing in the mode file using the prior mean. 
+            if ~isempty(xd)
+                xparam1(xd) = mode_file.xparam1(md);
+            else
+                error('Please remove the mode_file option.')
+            end
+        end
     elseif number_of_estimated_parameters<length(mode_file.xparam1)
+        % Less estimated parameters than parameters in the mode file.
         skipline()
         disp(['The posterior mode file ' options_.mode_file ' has been generated using another specification of the model or another model!'])
         disp(['Your mode file contains estimates for ' int2str(length(mode_file.xparam1)) ' parameters, while you are attempting to estimate only ' int2str(number_of_estimated_parameters) ' parameters:'])
-        Id = [];
+        md = []; xd = [];
         for i=1:number_of_estimated_parameters
             id = strmatch(deblank(bayestopt_.name(i,:)),mode_file.parameter_names,'exact');
             if isempty(id)
-                disp(['--> Estimated parameter ' deblank(bayestopt_.name(i,:)) ' is not present in the loaded mode file.'])
-                Id = [];
-                break
+                disp(['--> Estimated parameter ' deblank(bayestopt_.name(i,:)) ' is not present in the loaded mode file (prior mean will be used, if possible).'])
             else
-                Id = [Id; id];
+                xd = [xd; i];
+                md = [md; id];
             end
         end
         for i=1:length(mode_file.xparam1)
@@ -178,60 +187,73 @@ if ~isempty(estim_params_) && ~isempty(options_.mode_file) && ~options_.mh_poste
                 disp(['--> Parameter ' mode_file.parameter_names{i} ' is not estimated according to the current mod file.'])
             end
         end
-        if isempty(Id)
-            % None of the estimated parameters are present in the mode_file.
-            error('Please change the mode_file option or the list of estimated parameters.')
-        else
-            % If possible, fix the mode_file.
-            if isequal(length(Id),number_of_estimated_parameters)
+        if ~options_.mode_compute
+            % The posterior mode is not estimated. If possible, fix the mode_file.
+            if isequal(length(xd),number_of_estimated_parameters)
                 disp('==> Fix mode file (remove unused parameters).')
-                mode_file.parameter_names = mode_file.parameter_names(Id,:);
-                mode_file.xparam1 = mode_file.xparam1(Id);
+                xparam1 = mode_file.xparam1(md);
                 if isfield(mode_file,'hh')
-                    mode_file.hh = mode_file.hh(Id,Id);
+                    hh = mode_file.hh(md,md);
                 end
+            else
+                error('Please change the mode_file option, the list of estimated parameters or set mode_compute>0.')
+            end
+        else
+            % The posterior mode is estimated, the Hessian evaluated at the mode is not needed so we set values for the parameters missing in the mode file using the prior mean. 
+            if ~isempty(xd)
+                xparam1(xd) = mode_file.xparam1(md);
+            else
+                % None of the estimated parameters are present in the mode_file.
+                error('Please remove the mode_file option.')
             end
         end
     else
         % The number of declared estimated parameters match the number of parameters in the mode file. 
         % Check that the parameters in the mode file and according to the current mod file are identical.
         if isequal(mode_file.parameter_names, bayestopt_.name)
-            % Ok! Nothing to do here.
+            xparam1 = mode_file.xparam1;
+            if isfield(mode_file,'hh')
+                hh = mode_file.hh;
+            end
         else
             skipline()
             disp(['The posterior mode file ' options_.mode_file ' has been generated using another specification of the model or another model!'])
-            % Check if this only an ordering issue.
-            Id = [];
+            % Check if this only an ordering issue or if the missing parameters can be initialized with the prior mean.
+            md = []; xd = [];
             for i=1:number_of_estimated_parameters
-                id = strmatch(deblank(bayestopt_.name(i,:)),mode_file.parameter_names,'exact');
+                id = strmatch(deblank(bayestopt_.name(i,:)), mode_file.parameter_names,'exact');
                 if isempty(id)
                     disp(['--> Estimated parameter ' bayestopt_.name{i} ' is not present in the loaded mode file.'])
-                    Id = [];
-                    break
                 else
-                    Id = [Id; id];
+                    xd = [xd; i];
+                    md = [md; id];
                 end
             end
-            if isempty(Id)
-                % None of the estimated parameters are present in the mode_file.
-                error('Please change the mode_file option or the list of estimated parameters.')
+            if ~options_.mode_compute
+                % The posterior mode is not estimated
+                if isequal(length(xd), number_of_estimated_parameters)
+                    % This is an ordering issue.
+                    xparam1 = mode_file.xparam1(md);
+                    if isfield(mode_file,'hh')
+                        hh = mode_file.hh(md,md);
+                    end
+                else
+                    error('Please change the mode_file option, the list of estimated parameters or set mode_compute>0.')
+                end
             else
-                % If possible, fix the mode_file.
-                if isequal(length(Id),number_of_estimated_parameters)
-                    disp('==> Fix mode file (reorder the parameters).')
-                    mode_file.parameter_names = mode_file.parameter_names(Id,:);
-                    mode_file.xparam1 = mode_file.xparam1(Id);
+                % The posterior mode is estimated, the Hessian evaluated at the mode is not needed so we set values for the parameters missing in the mode file using the prior mean. 
+                if ~isempty(xd)
+                    xparam1(xd) = mode_file.xparam1(md);
                     if isfield(mode_file,'hh')
-                        mode_file.hh = mode_file.hh(Id,Id);
+                        hh(xd,xd) = mode_file.hh(md,md);
                     end
+                else
+                    % None of the estimated parameters are present in the mode_file.
+                    error('Please remove the mode_file option.')
                 end
             end
         end
     end
-    xparam1 = mode_file.xparam1;
-    if isfield(mode_file,'hh')
-        hh = mode_file.hh;
-    end
     skipline()
 end
 
@@ -253,17 +275,8 @@ if ~isempty(estim_params_)
         bounds(:,2) = ub;
     end
     % Test if initial values of the estimated parameters are all between the prior lower and upper bounds.
-    outside_bound_pars=find(xparam1 < bounds(:,1) | xparam1 > bounds(:,2));
-    if ~isempty(outside_bound_pars)
-        for ii=1:length(outside_bound_pars)
-            outside_bound_par_names{ii,1}=get_the_name(ii,0,M_,estim_params_,options_);
-        end
-        disp_string=[outside_bound_par_names{1,:}];
-        for ii=2:size(outside_bound_par_names,1)
-            disp_string=[disp_string,', ',outside_bound_par_names{ii,:}];
-        end
-        error(['Initial value(s) of ', disp_string ,' are outside parameter bounds. Potentially, you should set prior_trunc=0. If you used the mode_file-option, check whether your mode-file is consistent with the priors.'])
-    end
+    check_prior_bounds(xparam1,bounds,M_,estim_params_,options_,bayestopt_)
+
     lb = bounds(:,1);
     ub = bounds(:,2);
     bayestopt_.lb = lb;
@@ -272,7 +285,7 @@ end
 
 if isempty(estim_params_)% If estim_params_ is empty (e.g. when running the smoother on a calibrated model)
     if ~options_.smoother
-        error('ESTIMATION: the ''estimated_params'' block is mandatory (unless you are running a smoother)')
+        error('Estimation: the ''estimated_params'' block is mandatory (unless you are running a smoother)')
     end
     xparam1 = [];
     bayestopt_.lb = [];
@@ -512,7 +525,7 @@ dataset_ = initialize_dataset(options_.datafile,options_.varobs,options_.first_o
 
 options_.nobs = dataset_.info.ntobs;
 
-% setting noconstant option
+% setting steadystate_check_flag option
 if options_.diffuse_filter
     steadystate_check_flag = 0;
 else
@@ -532,4 +545,14 @@ if all(abs(oo_.steady_state(bayestopt_.mfys))<1e-9)
     options_.noconstant = 1;
 else
     options_.noconstant = 0;
-end
+    % If the data are prefiltered then there must not be constants in the
+    % measurement equation of the DSGE model or in the DSGE-VAR model.
+    if options_.prefilter
+        skipline()
+        disp('You have specified the option "prefilter" to demean your data but the')
+        disp('steady state of of the observed variables is non zero.')
+        disp('Either change the measurement equations, by centering the observed')
+        disp('variables in the model block, or drop the prefiltering.')
+        error('The option "prefilter" is inconsistent with the non-zero mean measurement equations in the model.')
+    end
+end
\ No newline at end of file
diff --git a/matlab/dynare_identification.m b/matlab/dynare_identification.m
index b4344d87a126bdb0624e8c5d799047dd6e7e9bc0..2a6272cd57b08713fb36a041d19e6262a0f1e50d 100644
--- a/matlab/dynare_identification.m
+++ b/matlab/dynare_identification.m
@@ -38,7 +38,7 @@ function [pdraws, TAU, GAM, LRE, gp, H, JJ] = dynare_identification(options_iden
 
 global M_ options_ oo_ bayestopt_ estim_params_
 
-if exist('OCTAVE_VERSION')
+if isoctave
     warning('off'),
 else
     warning off,
@@ -198,15 +198,23 @@ else
     name_tex = [cellstr(M_.exo_names_tex); cellstr(M_.param_names_tex)];
 end
 
+skipline()
+disp(['==== Identification analysis ====' ]),
+skipline()
+if nparam<2,
+    options_ident.advanced=0;
+    advanced = options_ident.advanced;
+    disp('There is only one parameter to study for identitification.')
+    disp('The advanced option is re-set to 0.')
+    skipline()
+end
+
 options_ident = set_default_option(options_ident,'max_dim_cova_group',min([2,nparam-1]));
 options_ident.max_dim_cova_group = min([options_ident.max_dim_cova_group,nparam-1]);
 
 
 MaxNumberOfBytes=options_.MaxNumberOfBytes;
 store_options_ident = options_ident;
-skipline()
-disp(['==== Identification analysis ====' ]),
-skipline()
 
 if iload <=0,
     
@@ -317,6 +325,8 @@ if iload <=0,
             disp('----------- ')
             skipline()
             return
+        else
+            parameters = 'Random_prior_params';
         end
     else
     idehess_point.params=params;
@@ -327,6 +337,7 @@ if iload <=0,
 %     normJ = max(abs(siJ)')';
 %     normLRE = max(abs(siLRE)')';
     save([IdentifDirectoryName '/' M_.fname '_identif.mat'], 'idehess_point', 'idemoments_point','idemodel_point', 'idelre_point','store_options_ident')
+    save([IdentifDirectoryName '/' M_.fname '_' parameters '_identif.mat'], 'idehess_point', 'idemoments_point','idemodel_point', 'idelre_point','store_options_ident')
     disp_identification(params, idemodel_point, idemoments_point, name, advanced);
     if ~options_.nograph,
         plot_identification(params,idemoments_point,idehess_point,idemodel_point,idelre_point,advanced,parameters,name,IdentifDirectoryName);
@@ -433,7 +444,7 @@ if iload <=0,
             end
             
             if SampleSize > 1,
-%                 if exist('OCTAVE_VERSION') || options_.console_mode,
+%                 if isoctave || options_.console_mode,
 %                     console_waitbar(0,iteration/SampleSize);
 %                 else
                     dyn_waitbar(iteration/SampleSize,h,['MC identification checks ',int2str(iteration),'/',int2str(SampleSize)])
@@ -445,7 +456,7 @@ if iload <=0,
     
     
     if SampleSize > 1,
-        if exist('OCTAVE_VERSION') || options_.console_mode,
+        if isoctave || options_.console_mode,
             fprintf('\n');
             diary on;
         else
@@ -513,7 +524,7 @@ if SampleSize > 1,
     disp('Testing MC sample')
     disp_identification(pdraws, idemodel, idemoments, name);
     if ~options_.nograph,
-        plot_identification(pdraws,idemoments,idehess_point,idemodel,idelre,advanced,'MC sample - ',name, IdentifDirectoryName);
+        plot_identification(pdraws,idemoments,idehess_point,idemodel,idelre,advanced,'MC sample ',name, IdentifDirectoryName);
     end
     if advanced,
         jcrit=find(idemoments.ino);
@@ -572,7 +583,7 @@ if SampleSize > 1,
     end
 end
 
-if exist('OCTAVE_VERSION')
+if isoctave
     warning('on'),
 else
     warning on,
diff --git a/matlab/dynare_sensitivity.m b/matlab/dynare_sensitivity.m
index 0221996511784c95bf8a9283f73675108b544dad..34a016062a4958fc8fd62e5b8501733c8db64d79 100644
--- a/matlab/dynare_sensitivity.m
+++ b/matlab/dynare_sensitivity.m
@@ -23,6 +23,10 @@ function x0=dynare_sensitivity(options_gsa)
 
 global M_ options_ oo_ bayestopt_ estim_params_
 
+if options_.dsge_var
+   error('Identification does not support DSGE-VARs at the current stage') 
+end
+
 fname_ = M_.fname;
 if ~isfield(M_,'dname'),
     M_.dname = M_.fname;
@@ -281,10 +285,12 @@ if options_gsa.redform && ~isempty(options_gsa.namendo),% ...
         % check existence of the SS_ANOVA toolbox
         if isempty(options_gsa.threshold_redform) && ...
          ~(exist('gsa_sdp','file')==6 || exist('gsa_sdp','file')==2),
-            disp('Download Mapping routines at:')
-            disp('http://eemc.jrc.ec.europa.eu/softwareDYNARE-Dowload.htm')
-            disp(' ' )
-            error('Mapping routines missing!')
+            fprintf('\nThe "SS-ANOVA-R: MATLAB Toolbox for the estimation of Smoothing Spline ANOVA models with Recursive algorithms" is missing.\n')
+            fprintf('To obtain it, go to:\n\n')
+            fprintf('http://ipsc.jrc.ec.europa.eu/?id=790 \n\n')
+            fprintf('and follow the instructions there.\n')
+            fprintf('After obtaining the files, you need to unpack them and set a Matlab Path to those files.\n')
+            error('SS-ANOVA-R Toolbox missing!')
         end
 
         redform_map(OutputDirectoryName,options_gsa);
@@ -300,7 +306,7 @@ if options_gsa.rmse,
         else
             a=whos('-file',[OutputDirectoryName,'/',fname_,'_mc'],'logpo2');
         end
-        if exist('OCTAVE_VERSION'),
+        if isoctave
             aflag=0;
             for ja=1:length(a),
                 aflag=aflag+strcmp('logpo2',a(ja).name);
@@ -386,7 +392,7 @@ if options_gsa.glue,
     gend = options_.nobs;
     rawdata = read_variables(options_.datafile,options_.varobs,[],options_.xls_sheet,options_.xls_range);
     rawdata = rawdata(options_.first_obs:options_.first_obs+gend-1,:);
-    if options_.loglinear == 1
+    if options_.loglinear
         rawdata = log(rawdata);
     end
     if options_.prefilter == 1
diff --git a/matlab/dynare_solve.m b/matlab/dynare_solve.m
index 744a4734e9f301fe3ff333c4760832070935f472..744d174e2cf019ed30bfc5b32a2e3d2fd022936e 100644
--- a/matlab/dynare_solve.m
+++ b/matlab/dynare_solve.m
@@ -46,20 +46,9 @@ if jacobian_flag
         [infrow,infcol]=find(isinf(fjac) | isnan(fjac));
         M=evalin('base','M_'); %get variable names from workspace
         fprintf('\nSTEADY:  The Jacobian contains Inf or NaN. The problem arises from: \n\n')
-        for ii=1:length(infrow)
-            if infcol(ii)<=M.orig_endo_nbr
-                fprintf('STEADY:  Derivative of Equation %d with respect to Variable %s  (initial value of %s: %g) \n',infrow(ii),deblank(M.endo_names(infcol(ii),:)),deblank(M.endo_names(infcol(ii),:)),x(infcol(ii)))
-            else %auxiliary vars
-                orig_var_index=M.aux_vars(1,infcol(ii)-M.orig_endo_nbr).orig_index;
-                fprintf('STEADY:  Derivative of Equation %d with respect to Variable %s  (initial value of %s: %g) \n',infrow(ii),deblank(M.endo_names(orig_var_index,:)),deblank(M.endo_names(orig_var_index,:)),x(infcol(ii)))            
-            end
-        end
-        fprintf('\nSTEADY:  The problem most often occurs, because a variable with\n')
-        fprintf('STEADY:  exponent smaller than 1 has been initialized to 0. Taking the derivative\n')
-        fprintf('STEADY:  and evaluating it at the steady state then results in a division by 0.\n')
+        display_problematic_vars_Jacobian(infrow,infcol,M,x,'static','STEADY: ')
         error('An element of the Jacobian is not finite or NaN') 
     end
-
 else
     fvec = feval(func,x,varargin{:});
     fjac = zeros(nn,nn) ;
@@ -84,7 +73,7 @@ if max(abs(fvec)) < tolf
 end
 
 if options_.solve_algo == 0
-    if ~exist('OCTAVE_VERSION')
+    if ~isoctave
         if ~user_has_matlab_license('optimization_toolbox')
             error('You can''t use solve_algo=0 since you don''t have MATLAB''s Optimization Toolbox')
         end
@@ -99,7 +88,7 @@ if options_.solve_algo == 0
     else
         options.Jacobian = 'off';
     end
-    if ~exist('OCTAVE_VERSION')
+    if ~isoctave
         [x,fval,exitval,output] = fsolve(func,x,options,varargin{:});
     else
         % Under Octave, use a wrapper, since fsolve() does not have a 4th arg
@@ -120,10 +109,17 @@ if options_.solve_algo == 0
         info = 1;
     end
 elseif options_.solve_algo == 1
-    [x,info]=solve1(func,x,1:nn,1:nn,jacobian_flag,1,options_.gstep, ...
+    [x,info]=solve1(func,x,1:nn,1:nn,jacobian_flag,options_.gstep, ...
                     tolf,options_.solve_tolx, ...
-                    options_.solve_maxit,options_.debug,varargin{:});
+                    options_.steady.maxit,options_.debug,varargin{:});
 elseif options_.solve_algo == 2 || options_.solve_algo == 4
+
+    if options_.solve_algo == 2
+        solver = @solve1;
+    else
+        solver = @trust_region;
+    end
+
     if ~jacobian_flag
         fjac = zeros(nn,nn) ;
         dh = max(abs(x),options_.gstep(1)*ones(nn,1))*eps^(1/3);
@@ -140,26 +136,23 @@ elseif options_.solve_algo == 2 || options_.solve_algo == 4
         disp(['DYNARE_SOLVE (solve_algo=2|4): number of blocks = ' num2str(length(r))]);
     end
 
-    % Activate bad conditioning flag for solve_algo = 2, but not for solve_algo = 4
-    bad_cond_flag = (options_.solve_algo == 2);
-    
     for i=length(r)-1:-1:1
         if options_.debug
             disp(['DYNARE_SOLVE (solve_algo=2|4): solving block ' num2str(i) ', of size ' num2str(r(i+1)-r(i)) ]);
         end
-        [x,info]=solve1(func,x,j1(r(i):r(i+1)-1),j2(r(i):r(i+1)-1),jacobian_flag, ...
-                        bad_cond_flag, options_.gstep, ...
+        [x,info]=solver(func,x,j1(r(i):r(i+1)-1),j2(r(i):r(i+1)-1),jacobian_flag, ...
+                        options_.gstep, ...
                         tolf,options_.solve_tolx, ...
-                        options_.solve_maxit,options_.debug,varargin{:});
+                        options_.steady.maxit,options_.debug,varargin{:});
         if info
             return
         end
     end
     fvec = feval(func,x,varargin{:});
     if max(abs(fvec)) > tolf
-        [x,info]=solve1(func,x,1:nn,1:nn,jacobian_flag, bad_cond_flag, ...
+        [x,info]=solver(func,x,1:nn,1:nn,jacobian_flag, ...
                         options_.gstep, tolf,options_.solve_tolx, ...
-                        options_.solve_maxit,options_.debug,varargin{:});
+                        options_.steady.maxit,options_.debug,varargin{:});
     end
 elseif options_.solve_algo == 3
     if jacobian_flag
diff --git a/matlab/dynare_solve_block_or_bytecode.m b/matlab/dynare_solve_block_or_bytecode.m
index 301d3aa26615a8e8dbb9617a19eefd38199d7ea8..ce82bc5dfd547748e854c0ce22598781bd27e62e 100644
--- a/matlab/dynare_solve_block_or_bytecode.m
+++ b/matlab/dynare_solve_block_or_bytecode.m
@@ -37,7 +37,7 @@ if options.block && ~options.bytecode
             else
                 n = length(M.block_structure_stat.block(b).variable);
                 [ss, check] = solve_one_boundary([M.fname '_static_' int2str(b)], ss, exo, ...
-                                                 params, [], M.block_structure_stat.block(b).variable, n, 1, 0, b, 0, options.maxit_, ...
+                                                 params, [], M.block_structure_stat.block(b).variable, n, 1, 0, b, 0, options.simul.maxit, ...
                                                  options.solve_tolf, ...
                                                  options.slowc, 0, options.solve_algo, 1, 0, 0,M,options);
                 if check
diff --git a/matlab/endogenous_prior_restrictions.m b/matlab/endogenous_prior_restrictions.m
index 981adbd6d0b91fa25c0db23713253e3816a4d060..e28a726ae5642123cf3b823d4c22433f89bf9c4c 100644
--- a/matlab/endogenous_prior_restrictions.m
+++ b/matlab/endogenous_prior_restrictions.m
@@ -42,11 +42,11 @@ end
 infos=[0 0];
 varlist=Model.endo_names(DynareResults.dr.order_var,:);
 varlist=varlist(DynareResults.dr.restrict_var_list,:);
-T=1;
+NT=1;
 for j=1:size(endo_prior_restrictions.irf,1),
-    T=max(T,endo_prior_restrictions.irf{j,3});
+    NT=max(NT,endo_prior_restrictions.irf{j,3});
 end
-for t=1:T,
+for t=1:NT,
     RR = T^(t-1)*R;
     for j=1:size(endo_prior_restrictions.irf,1),
 	    if endo_prior_restrictions.irf{j,3}~=t,
diff --git a/matlab/ep/extended_path.m b/matlab/ep/extended_path.m
index 981d84706871fab7521690f270ae942ba02cf04a..bc98ed25afad0132ffeb1d003f597e9e713b2e0a 100644
--- a/matlab/ep/extended_path.m
+++ b/matlab/ep/extended_path.m
@@ -1,4 +1,4 @@
-function time_series = extended_path(initial_conditions,sample_size)
+function ts = extended_path(initial_conditions,sample_size)
 % Stochastic simulation of a non linear DSGE model using the Extended Path method (Fair and Taylor 1983). A time
 % series of size T  is obtained by solving T perfect foresight models.
 %
@@ -46,11 +46,15 @@ dynatol = options_.dynatol;
 
 % Set default initial conditions.
 if isempty(initial_conditions)
-    initial_conditions = oo_.steady_state;
+    if isempty(M_.endo_histval)
+        initial_conditions = oo_.steady_state;
+    else
+        initial_conditions = M_.endo_histval;
+    end
 end
 
 % Set maximum number of iterations for the deterministic solver.
-options_.maxit_ = options_.ep.maxit;
+options_.simul.maxit = options_.ep.maxit;
 
 % Set the number of periods for the perfect foresight model
 periods = options_.ep.periods;
@@ -111,7 +115,7 @@ bytecode_flag = options_.ep.use_bytecode;
 % Simulate shocks.
 switch options_.ep.innovation_distribution
   case 'gaussian'
-      oo_.ep.shocks = randn(sample_size,effective_number_of_shocks)*covariance_matrix_upper_cholesky;
+      oo_.ep.shocks = transpose(transpose(covariance_matrix_upper_cholesky)*randn(effective_number_of_shocks,sample_size));
   otherwise
     error(['extended_path:: ' options_.ep.innovation_distribution ' distribution for the structural innovations is not (yet) implemented!'])
 end
@@ -350,4 +354,12 @@ end% (while) loop over t
 
 dyn_waitbar_close(hh);
 
-oo_.endo_simul = oo_.steady_state;
+if nargout
+    ts = dseries(transpose([initial_conditions, time_series]),options_.initial_period,cellstr(M_.endo_names));
+else
+    oo_.endo_simul = [initial_conditions, time_series];
+    ts = dseries(transpose(oo_.endo_simul),options_.initial_period,cellstr(M_.endo_names));
+    dyn2vec;
+end
+
+ assignin('base', 'Simulated_time_series', ts);
\ No newline at end of file
diff --git a/matlab/ep/homotopic_steps.m b/matlab/ep/homotopic_steps.m
index 80e455c664117c7ba355e4f7d9393ddd4ffcc612..21a88d76705972eb310e117bafa3e722943d1ed5 100644
--- a/matlab/ep/homotopic_steps.m
+++ b/matlab/ep/homotopic_steps.m
@@ -60,7 +60,18 @@ while weight<1
         flag = 1;
     end
     if flag
-        [flag,tmp] = solve_perfect_foresight_model(endo_simul0,exo_simul0,pfm);
+        if ~options_.ep.stochastic.order
+            [flag,tmp,err] = solve_perfect_foresight_model(endo_simul0,exo_simul0,pfm);
+        else
+            switch options_.ep.stochastic.algo
+              case 0
+                [flag,tmp] = ...
+                    solve_stochastic_perfect_foresight_model(endo_simul0,exo_simul0,pfm,options_.ep.stochastic.quadrature.nodes,options_.ep.stochastic.order);
+              case 1
+                [flag,tmp] = ...
+                    solve_stochastic_perfect_foresight_model_1(endo_simul0,exo_simul0,options_.ep,pfm,options_.ep.stochastic.order);
+            end
+        end
     end
     info.convergence = ~flag;% Equal to one if the perfect foresight solver converged for the current value of weight.
     if verbose
@@ -133,7 +144,18 @@ if weight<1
         flag = 1;
     end
     if flag
-        [flag,tmp] = solve_perfect_foresight_model(endo_simul0,exo_simul0,pfm);
+        if ~options_.ep.stochastic.order
+            [flag,tmp,err] = solve_perfect_foresight_model(endo_simul0,exo_simul0,pfm);
+        else
+            switch options_.ep.stochastic.algo
+              case 0
+                [flag,tmp] = ...
+                    solve_stochastic_perfect_foresight_model(endo_simul0,exo_simul0,pfm,options_.ep.stochastic.quadrature.nodes,options_.ep.stochastic.order);
+              case 1
+                [flag,tmp] = ...
+                    solve_stochastic_perfect_foresight_model_1(endo_simul0,exo_simul0,options_.ep,pfm,options_.ep.stochastic.order);
+            end
+        end
     end
     info.convergence = ~flag;
     if info.convergence
diff --git a/matlab/ep/solve_stochastic_perfect_foresight_model.m b/matlab/ep/solve_stochastic_perfect_foresight_model.m
index 12b8b37cf9d0f27772f5e4ddde39485d59a0b7fd..683a6cec6d216d295c7adce1c60713d3f2ec8ae2 100644
--- a/matlab/ep/solve_stochastic_perfect_foresight_model.m
+++ b/matlab/ep/solve_stochastic_perfect_foresight_model.m
@@ -224,7 +224,7 @@ function [flag,endo_simul,err] = solve_stochastic_perfect_foresight_model(endo_s
             fprintf('\n') ;
             disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
             fprintf('\n') ;
-            disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
+            disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ;
             fprintf('\n') ;
         end
         flag = 1;% more iterations are needed.
diff --git a/matlab/ep/solve_stochastic_perfect_foresight_model_1.m b/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
index f732792e5d3be1ed8a9bc93a62c3dde039daf9f6..01d7bcaccf4cf7ce8afb530055ba82ad1187ab83 100644
--- a/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
+++ b/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
@@ -274,7 +274,7 @@ function [flag,endo_simul,err] = solve_stochastic_perfect_foresight_model_1(endo
             fprintf('\n') ;
             disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
             fprintf('\n') ;
-            disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
+            disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ;
             fprintf('\n') ;
         end
         flag = 1;% more iterations are needed.
diff --git a/matlab/reports/@sections/subsasgn.m b/matlab/evaluate_max_dynamic_residual.m
similarity index 61%
rename from matlab/reports/@sections/subsasgn.m
rename to matlab/evaluate_max_dynamic_residual.m
index 2782f7e1c7670feb9e60a5c9775ae67522756cf0..41aa4ec249c2fae2dcfb9721832e2aee20bcedef 100644
--- a/matlab/reports/@sections/subsasgn.m
+++ b/matlab/evaluate_max_dynamic_residual.m
@@ -1,5 +1,4 @@
-function B = subsasgn(A, S, V)
-% function B = subsasgn(A, S, V)
+function err = evaluate_max_dynamic_residual(model_dynamic, Y, exogenous_variables, params, steady_state, periods, ny, max_lag, lead_lag_incidence)
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -17,23 +16,18 @@ function B = subsasgn(A, S, V)
 %
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+    
+i_rows = 1:ny;
+i_cols = find(lead_lag_incidence');
 
-B = A;
-if length(S) > 1
-    for i=1:(length(S)-1)
-        B = subsref(B, S(i));
-    end
-    B = subsasgn(B, S(end), V);
-    B = subsasgn(A, S(1:(end-1)), B);
-    return
-end
+err = 0;
 
-switch S.type
-    case '()'
-        index = S.subs{:};
-        assert(isnumeric(index));
-        B.objArray(index) = V;
-    otherwise
-        error('@sections.subsasgn: syntax error')
-end
+for it = (max_lag+1):(max_lag+periods)
+    d = model_dynamic(Y(i_cols), exogenous_variables, params, steady_state, it);
+    i_rows = i_rows + ny;
+    i_cols = i_cols + ny;
+    r = max(abs(d));
+    if r>err
+        err = r;
+    end
 end
\ No newline at end of file
diff --git a/matlab/evaluate_planner_objective.m b/matlab/evaluate_planner_objective.m
index 3067414af2e8c206f46688a56d7f4e2bb4f461e4..32db62625a24b864182b722003d718e0fd13077f 100644
--- a/matlab/evaluate_planner_objective.m
+++ b/matlab/evaluate_planner_objective.m
@@ -42,27 +42,12 @@ else
 end
 ipred = find(lead_lag_incidence(M.maximum_lag,:))';
 order_var = dr.order_var;
-LQ = true;
-
+    
 Gy = dr.ghx(nstatic+(1:nspred),:);
 Gu = dr.ghu(nstatic+(1:nspred),:);
 gy(dr.order_var,:) = dr.ghx;
 gu(dr.order_var,:) = dr.ghu;
 
-if options.ramsey_policy && options.order == 1 && ~options.linear
-    options.order = 2;
-    options.qz_criterium = 1+1e-6;
-    [dr,info] = stochastic_solvers(oo.dr,0,M,options,oo);
-    Gyy = dr.ghxx(nstatic+(1:nspred),:);
-    Guu = dr.ghuu(nstatic+(1:nspred),:);
-    Gyu = dr.ghxu(nstatic+(1:nspred),:);
-    Gss = dr.ghs2(nstatic+(1:nspred),:);
-    gyy(dr.order_var,:) = dr.ghxx;
-    guu(dr.order_var,:) = dr.ghuu;
-    gyu(dr.order_var,:) = dr.ghxu;
-    gss(dr.order_var,:) = dr.ghs2;
-    LQ = false;
-end
 
 ys = oo.dr.ys;
 
@@ -83,24 +68,15 @@ mexErrCheck('A_times_B_kronecker_C', err);
 Wbar =U/(1-beta);
 Wy = Uy*gy/(eye(nspred)-beta*Gy);
 Wu = Uy*gu+beta*Wy*Gu;
-if LQ
-    Wyy = Uyygygy/(eye(nspred*nspred)-beta*kron(Gy,Gy));
-else
-    Wyy = (Uy*gyy+Uyygygy+beta*Wy*Gyy)/(eye(nspred*nspred)-beta*kron(Gy,Gy));
-end
+Wyy = Uyygygy/(eye(nspred*nspred)-beta*kron(Gy,Gy));
 [Wyygugu, err] = A_times_B_kronecker_C(Wyy,Gu,Gu,options.threads.kronecker.A_times_B_kronecker_C);
 mexErrCheck('A_times_B_kronecker_C', err);
 [Wyygygu,err] = A_times_B_kronecker_C(Wyy,Gy,Gu,options.threads.kronecker.A_times_B_kronecker_C);
 mexErrCheck('A_times_B_kronecker_C', err);
-if LQ
-    Wuu = Uyygugu+beta*Wyygugu;
-    Wyu = Uyygygu+beta*Wyygygu;
-    Wss = beta*Wuu*M.Sigma_e(:)/(1-beta);
-else
-    Wuu = Uy*guu+Uyygugu+beta*(Wy*Guu+Wyygugu);
-    Wyu = Uy*gyu+Uyygygu+beta*(Wy*Gyu+Wyygygu);
-    Wss = (Uy*gss+beta*(Wuu*M.Sigma_e(:)+Wy*Gss))/(1-beta);
-end
+Wuu = Uyygugu+beta*Wyygugu;
+Wyu = Uyygygu+beta*Wyygygu;
+Wss = beta*Wuu*M.Sigma_e(:)/(1-beta);
+
 % initialize yhat1 at the steady state
 yhat1 = oo.steady_state;
 if options.ramsey_policy
diff --git a/matlab/evaluate_steady_state_file.m b/matlab/evaluate_steady_state_file.m
index 0035bd7feeae9f199f71594f05990b1a4b943eee..0ad19bee95695c4aa706ab0868764948c314baa4 100644
--- a/matlab/evaluate_steady_state_file.m
+++ b/matlab/evaluate_steady_state_file.m
@@ -59,7 +59,12 @@ function [ys,params,info] = evaluate_steady_state_file(ys_init,exo_ss,M,options)
         info(2) = NaN;
     end
     
-    updated_params_flag = max(abs(params1-params)) > 1e-12 || ~isequal(isnan(params1),isnan(params)); %checks whether numbers or NaN changed
+    if M.param_nbr > 0
+        updated_params_flag = max(abs(params1-params)) > 1e-12 ...
+            || ~isequal(isnan(params1),isnan(params)); %checks whether numbers or NaN changed
+    else
+        updated_params_flag = 0
+    end
 
     h_set_auxiliary_variables = str2func([M.fname '_set_auxiliary_variables']);
     if  isnan(updated_params_flag) || (updated_params_flag  && any(isnan(params(~isnan(params))-params1(~isnan(params))))) %checks if new NaNs were added
@@ -99,6 +104,10 @@ function [ys,params,info] = evaluate_steady_state_file(ys_init,exo_ss,M,options)
             info(2) = residuals'*residuals;
             return
         end
+        if any(isnan(residuals))
+            info(1) = 22;
+            return
+        end
     elseif ~isempty(options.steadystate_partial)
         ssvar = options.steadystate_partial.ssvar;
         nov   = length(ssvar);
diff --git a/matlab/flip_plan.m b/matlab/flip_plan.m
new file mode 100644
index 0000000000000000000000000000000000000000..6859e76a8504db362529cbf4fea8aaa1a79ef22a
--- /dev/null
+++ b/matlab/flip_plan.m
@@ -0,0 +1,89 @@
+function plan = flip_plan(plan, exogenous, endogenous, expectation_type, date, value)
+% Adds to the forecast scenario a conditional forecast shock (the path of an endogenous variable is constrained and the values compatible values of the related exogenous variable will be compued)
+%
+% INPUTS
+%  o plan                 [structure]       A structure describing the different shocks and the implied variables, the date of the shocks and the path of the shock (forecast scenario).
+%                                           The plan structure is created by the functions init_plan, basic_plan and flip_plan
+%  o exogenous            [string]          A string containing the name of the endogenous variable with a constrained path.
+%  o endogenous           [string]          A string containing the name of the exogenous. This exogenous variable will be en endogenous variable when the conditional forecast will be perform.
+%  o expectation_type     [string]          A string indicating the type of expectation: 'surprise' for an unexpected shock, and 'perfect_foresight' for a perfectly anticpated shock.
+%  o date                 [dates]           The period of the shock
+%  o value                [array of double] A vector of double containing the constrined path on the endogenous variable
+%
+%
+% OUTPUTS
+%  plan                   [structure]        Returns a structure containing the updated forecast scenario.
+%
+%
+% Copyright (C) 2013-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+  if ~ischar(expectation_type) || size(expectation_type,1) ~= 1
+      error(['in flip_plan the fourth argument should be a string containing the simulation type (''perfect_foresight'' or ''surprise'')']);
+  end
+  exogenous = strtrim(exogenous);
+  ix = find(strcmp(exogenous, plan.endo_names));
+  if  isempty(ix)
+      error(['in flip_plan the second argument ' exogenous ' is not an endogenous variable']);
+  end;
+  endogenous = strtrim(endogenous);
+  iy = find(strcmp(endogenous, plan.exo_names));
+  if  isempty(iy)
+      error(['in flip_plan the third argument ' endogenous ' is not an exogenous variable']);
+  end;
+  sdate = length(date);
+  if sdate > 1
+      if date(1) < plan.date(1) || date(end) > plan.date(end)
+          error(['in flip_plan the fifth argument (date='  date ') must lay inside the plan.date ' plan.date]);
+      end
+  else
+      if date < plan.date(1) || date > plan.date(end)
+          error(['in flip_plan the fifth argument (date='  date ') must lay iside the plan.date ' plan.date]);
+      end
+  end
+  if ~isempty(plan.shock_vars_)
+      common_var = find(iy == plan.shock_vars_);
+      if ~isempty(common_var)
+          common_date = intersect(date, plan.shock_date_{common_var});
+          if ~isempty(common_date)
+              if common_date.length > 1
+                  the_dates = [cell2mat(strings(common_date(1))) ':' cell2mat(strings(common_date(end)))];
+              else
+                  the_dates = cell2mat(strings(common_date));
+              end
+              error(['Impossible case: ' plan.exo_names{plan.shock_vars_(common_var)} ' is used both as a shock and as an endogenous variable to control the path of ' plan.endo_names{ix} ' at the dates ' the_dates]);
+          end
+      end
+  end
+  if isempty(plan.constrained_vars_)
+      plan.constrained_vars_ = ix;
+      plan.options_cond_fcst_.controlled_varexo  = iy;
+      if strcmp(expectation_type, 'perfect_foresight')
+          plan.constrained_perfect_foresight_ = 1;
+      else
+          plan.constrained_perfect_foresight_ = 0;
+      end
+  else
+      plan.constrained_vars_ = [plan.constrained_vars_ ; ix];
+      plan.options_cond_fcst_.controlled_varexo  = [plan.options_cond_fcst_.controlled_varexo ; iy];
+      if strcmp(expectation_type, 'perfect_foresight')
+          plan.constrained_perfect_foresight_ = [plan.constrained_perfect_foresight_ ; 1];
+      else
+          plan.constrained_perfect_foresight_ = [plan.constrained_perfect_foresight_ ; 0];
+      end
+  end
+  plan.constrained_date_{length(plan.constrained_date_) + 1} = date;
+  plan.constrained_paths_{length(plan.constrained_paths_) + 1} = value;
diff --git a/matlab/gensylv/sylvester3.m b/matlab/gensylv/sylvester3.m
index 38465d6c4cb39c491ad36ddfaf8edcf66925bc93..aabdc6650c447c4a18422d03435b336d48000006 100644
--- a/matlab/gensylv/sylvester3.m
+++ b/matlab/gensylv/sylvester3.m
@@ -35,7 +35,7 @@ if m == 1
     return;
 end
 [u,t]=schur(c);
-if exist('OCTAVE_VERSION')
+if isoctave
     [aa,bb,qq,zz]=qz(full(a),full(b));
     for j=1:p,
         if octave_ver_less_than('3.4.0')
diff --git a/matlab/getIrfShocksIndx.m b/matlab/getIrfShocksIndx.m
index 715a530bcbe7e5b3633d4ea2bf9c96199c544bb6..737bfcfb1db036b9655afcb01f5069e3c22209e5 100644
--- a/matlab/getIrfShocksIndx.m
+++ b/matlab/getIrfShocksIndx.m
@@ -1,6 +1,14 @@
 function irf_shocks_indx=getIrfShocksIndx()
-
-% Copyright (C) 2011 Dynare Team
+% irf_shocks_indx=getIrfShocksIndx()
+% returns the unique indices of the exogenous shocks specified for IRF
+% generation using the irf_shocks-command
+%
+% Inputs:
+%   none
+% Outputs:
+%   irf_shocks_indx: [1 by n_irf_shocks] vector storing the indices
+%
+% Copyright (C) 2011-13 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -26,4 +34,10 @@ else
     for i=1:size(options_.irf_shocks,1)
         irf_shocks_indx(i) = find(strcmp(deblank(options_.irf_shocks(i,:)), cellstr(M_.exo_names)));
     end
+    irf_shocks_indx_unique=unique(irf_shocks_indx);    
+    if options_.debug && (length(irf_shocks_indx_unique) ~= length(irf_shocks_indx))
+        fprintf('\nSTOCH_SIMUL: Warning: The IRFs for some shocks have been requested twice.\n')
+        fprintf('STOCH_SIMUL: The redundant entries will be ignored.\n')
+    end
+    irf_shocks_indx=irf_shocks_indx_unique;
 end
diff --git a/matlab/get_all_parameters.m b/matlab/get_all_parameters.m
new file mode 100644
index 0000000000000000000000000000000000000000..f030d14fe61ab271b748da792fb10175ec089991
--- /dev/null
+++ b/matlab/get_all_parameters.m
@@ -0,0 +1,96 @@
+function xparam1=get_all_parameters(estim_params_,M_)
+
+% function xparam1=get_parameters
+% gets parameters values from M_.params into xparam1 (inverse mapping to set_all_parameters)
+% This is called if a model was calibrated before estimation to back out
+% parameter values
+% 
+% INPUTS
+%	 estim_params_:  Dynare structure describing the estimated parameters.
+%    M_:             Dynare structure describing the model. 
+%
+% OUTPUTS
+%    xparam1:       N*1 double vector of parameters from calibrated model that are to be estimated
+%        
+% SPECIAL REQUIREMENTS
+%    none
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+nvx = estim_params_.nvx;
+ncx = estim_params_.ncx;
+nvn = estim_params_.nvn;
+ncn = estim_params_.ncn;
+np = estim_params_.np;
+Sigma_e = M_.Sigma_e;
+Correlation_matrix = M_.Correlation_matrix;
+H = M_.H;
+Correlation_matrix_ME = M_.Correlation_matrix_ME;
+
+xparam1=NaN(nvx+ncx+nvn+ncn+np,1);
+% stderrs of the exogenous shocks
+if nvx
+    var_exo = estim_params_.var_exo;
+    for i=1:nvx
+        k = var_exo(i,1);
+        xparam1(i)=sqrt(Sigma_e(k,k));
+    end
+end
+% update offset
+offset = nvx;
+
+% setting measument error variance
+if nvn
+    for i=1:nvn
+        k = estim_params_.nvn_observable_correspondence(i,1);
+        xparam1(offset+i)=sqrt(H(k,k));
+    end
+end
+
+% update offset
+offset = nvx+nvn;
+
+% correlations among shocks (ncx)
+if ncx
+    corrx = estim_params_.corrx;
+    for i=1:ncx
+        k1 = corrx(i,1);
+        k2 = corrx(i,2);
+        xparam1(i+offset)=Correlation_matrix(k1,k2);
+    end
+end
+% update offset
+offset = nvx+nvn+ncx;
+
+if ncn
+    corrn_observable_correspondence = estim_params_.corrn_observable_correspondence;
+    for i=1:ncn
+        k1 = corrn_observable_correspondence(i,1);
+        k2 = corrn_observable_correspondence(i,2);
+        xparam1(i+offset)=Correlation_matrix_ME(k1,k2);
+    end
+end
+
+% update offset
+offset = nvx+ncx+nvn+ncn;
+
+
+% structural parameters
+if np
+     xparam1(offset+1:end)=M_.params(estim_params_.param_vals(:,1));
+end
\ No newline at end of file
diff --git a/matlab/get_dynare_random_generator_state.m b/matlab/get_dynare_random_generator_state.m
index 42cf80a38ae196dbb35de62f3a049b6c102f4c86..513919c220ff7de3f5a3d364cefd6637381d08e0 100644
--- a/matlab/get_dynare_random_generator_state.m
+++ b/matlab/get_dynare_random_generator_state.m
@@ -23,7 +23,7 @@ function [state_u,state_n] = get_dynare_random_generator_state()
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-    matlab_random_streams = ~(exist('OCTAVE_VERSION') || matlab_ver_less_than('7.7'));
+    matlab_random_streams = ~(isoctave || matlab_ver_less_than('7.7'));
 
     if matlab_random_streams% Use new matlab interface.
         if matlab_ver_less_than('7.12')
diff --git a/matlab/get_name_of_the_last_mh_file.m b/matlab/get_name_of_the_last_mh_file.m
index cd198f8169c65a522d216018a269b3bb50a4279b..7634351251eb65c36fee1a16438fe2d8e1273c0b 100644
--- a/matlab/get_name_of_the_last_mh_file.m
+++ b/matlab/get_name_of_the_last_mh_file.m
@@ -9,9 +9,9 @@ function [mhname,info] = get_name_of_the_last_mh_file(M_)
 %  info      [integer]     Scalar. If info is equal to 1 then the predicted name of the last
 %                          metropolis hastings matches the name of the name of the last mh 
 %                          file. Otherwise info is equal to zero (a likely reason for this is 
-%                          that the mcmc simulations were not completed).      
+%                          that the mcmc simulations were not completed).
 
-% Copyright (C) 2008-2011 Dynare Team
+% Copyright (C) 2008-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -31,24 +31,20 @@ function [mhname,info] = get_name_of_the_last_mh_file(M_)
 mhname = [];
 info = 1;
 
-MhDirectoryName = CheckPath('metropolis',M_.dname);
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+ModelName = M_.fname;
+BaseName = [MetropolisFolder filesep ModelName];
+
+load_last_mh_history_file(MetropolisFolder, ModelName);
 
-load([ MhDirectoryName '/' M_.fname '_mh_history.mat']) ;
 mh_number = record.LastFileNumber ;
 bk_number = record.Nblck ;
-clear('record') ;
-predicted_mhname = [ MhDirectoryName  '/' M_.fname '_mh' int2str(mh_number) '_blck' int2str(bk_number) '.mat' ] ;
-
-AllMhFiles = dir([MhDirectoryName  '/' M_.fname '_mh*_blck*' ]);
-idx = 1;
-latest_date = 0;
-for i=2:size(AllMhFiles)
-    if AllMhFiles(i).datenum > latest_date
-        idx = i;
-        latest_date = AllMhFiles(i).datenum;
-    end
-end
-mhname = [ MhDirectoryName  '/'  AllMhFiles(idx).name];
+
+predicted_mhname = [ BaseName '_mh' int2str(mh_number) '_blck' int2str(bk_number) '.mat' ] ;
+
+all_mh_files = dir([BaseName '_mh*_blck*' ]);
+[junk,idx] = sort([all_mh_files.datenum]);
+mhname = all_mh_files(idx(end)).name;
 
 if ~strcmpi(mhname,predicted_mhname)
     info = 0;
diff --git a/matlab/get_prior_info.m b/matlab/get_prior_info.m
index cbae72ed13914f4be1ce885947b706200c0d8674..d2ec1810e1bf3a60336c7df6ce59229f3c219c45 100644
--- a/matlab/get_prior_info.m
+++ b/matlab/get_prior_info.m
@@ -54,13 +54,32 @@ options_.order = 1;
 
 [xparam1,estim_params_,bayestopt_,lb,ub,M_] = set_prior(estim_params_,M_,options_);
 if plt_flag
-    plot_priors(bayestopt_,M_,options_);
+    plot_priors(bayestopt_,M_,estim_params_,options_)
 end
 
 PriorNames = { 'Beta' , 'Gamma' , 'Gaussian' , 'Inverted Gamma' , 'Uniform' , 'Inverted Gamma -- 2' };
 
 if size(M_.param_names,1)==size(M_.param_names_tex,1)% All the parameters have a TeX name.
     fidTeX = fopen('priors_data.tex','w+');
+    fprintf(fidTeX,'%% TeX-table generated by get_prior_info (Dynare).\n');
+    fprintf(fidTeX,'%% Prior Information\n');
+    fprintf(fidTeX,['%% ' datestr(now,0)]);
+    fprintf(fidTeX,' \n');
+    fprintf(fidTeX,' \n');
+    fprintf(fidTeX,'\\begin{center}\n');
+    fprintf(fidTeX,'\\begin{longtable}{l|ccccccc} \n');
+    fprintf(fidTeX,'\\caption{Prior information (parameters)}\\\\\n ');
+    fprintf(fidTeX,'\\label{Table:Prior}\\\\\n');
+    fprintf(fidTeX,'\\hline\\hline \\\\ \n');
+    fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. & Lower Bound & Upper Bound & LB Untrunc. 80\\%% HPDI & UB Untrunc. 80\\%% HPDI  \\\\ \n');
+    fprintf(fidTeX,'\\hline \\endfirsthead \n');
+    fprintf(fidTeX,'\\caption{(continued)}\\\\\n ');
+    fprintf(fidTeX,'\\hline\\hline \\\\ \n');
+    fprintf(fidTeX,'  & Prior distribution & Prior mean  & Prior s.d. & Lower Bound & Upper Bound & LB Untrunc.  80\\%% HPDI & UB Untrunc. 80\\%% HPDI  \\\\ \n');
+    fprintf(fidTeX,'\\hline \\endhead \n');
+    fprintf(fidTeX,'\\hline \\multicolumn{8}{r}{(Continued on next page)} \\\\ \\hline \\endfoot \n');
+    fprintf(fidTeX,'\\hline \\hline \\endlastfoot \n');
+
     % Column 1: a string for the name of the prior distribution.
     % Column 2: the prior mean.
     % Column 3: the prior standard deviation.
@@ -81,24 +100,43 @@ if size(M_.param_names,1)==size(M_.param_names_tex,1)% All the parameters have a
           case { 1 , 5 }
             LowerBound = bayestopt_.p3(i);
             UpperBound = bayestopt_.p4(i);
-          case { 2 , 4 , 6 }
+            if ~isinf(bayestopt_.lb(i))
+                LowerBound=max(LowerBound,bayestopt_.lb(i));
+            end
+            if ~isinf(bayestopt_.ub(i))
+                UpperBound=min(UpperBound,bayestopt_.ub(i));
+            end
+            case { 2 , 4 , 6 }
             LowerBound = bayestopt_.p3(i);
-            UpperBound = '$\infty$';
+            if ~isinf(bayestopt_.lb(i))
+                LowerBound=max(LowerBound,bayestopt_.lb(i));
+            end
+            if ~isinf(bayestopt_.ub(i))
+                UpperBound=bayestopt_.ub(i);
+            else
+                UpperBound = '$\infty$';
+            end
           case 3
-            if isinf(bayestopt_.p3(i))
+            if isinf(bayestopt_.p3(i)) && isinf(bayestopt_.lb(i))
                 LowerBound = '$-\infty$';
             else
                 LowerBound = bayestopt_.p3(i);
+                if ~isinf(bayestopt_.lb(i))
+                    LowerBound=max(LowerBound,bayestopt_.lb(i));
+                end
             end
-            if isinf(bayestopt_.p4(i))
+            if isinf(bayestopt_.p4(i)) && isinf(bayestopt_.ub(i))
                 UpperBound = '$\infty$';
             else
                 UpperBound = bayestopt_.p4(i);
+                if ~isinf(bayestopt_.ub(i))
+                    UpperBound=min(UpperBound,bayestopt_.ub(i));
+                end
             end
           otherwise
             error('get_prior_info:: Dynare bug!')
         end
-        format_string = build_format_string(bayestopt_,i);
+        format_string = build_format_string(PriorStandardDeviation,LowerBound,UpperBound);
         fprintf(fidTeX,format_string, ...
                 TexName, ...
                 PriorShape, ...
@@ -109,6 +147,9 @@ if size(M_.param_names,1)==size(M_.param_names_tex,1)% All the parameters have a
                 PriorIntervals(i,1), ...
                 PriorIntervals(i,2) );
     end
+    fprintf(fidTeX,'\\end{longtable}\n ');    
+    fprintf(fidTeX,'\\end{center}\n');
+    fprintf(fidTeX,'%% End of TeX file.\n');
     fclose(fidTeX);
 end
 
@@ -191,19 +232,19 @@ end
 
 options_.order = order;
 
-function format_string = build_format_string(bayestopt,i)
+function format_string = build_format_string(PriorStandardDeviation,LowerBound,UpperBound)
 format_string = ['%s & %s & %6.4f &'];
-if isinf(bayestopt.p2(i))
+if ~isnumeric(PriorStandardDeviation)
     format_string = [ format_string , ' %s &'];
 else
     format_string = [ format_string , ' %6.4f &'];
 end
-if isinf(bayestopt.p3(i))
+if ~isnumeric(LowerBound)
     format_string = [ format_string , ' %s &'];
 else
     format_string = [ format_string , ' %6.4f &'];
 end
-if isinf(bayestopt.p4(i))
+if ~isnumeric(UpperBound)
     format_string = [ format_string , ' %s &'];
 else
     format_string = [ format_string , ' %6.4f &'];
diff --git a/matlab/geweke_chi2_test.m b/matlab/geweke_chi2_test.m
new file mode 100644
index 0000000000000000000000000000000000000000..7ed38313981fbfaabe39ddcd76f434021236054e
--- /dev/null
+++ b/matlab/geweke_chi2_test.m
@@ -0,0 +1,74 @@
+function results_struct = geweke_chi2_test(results1,results2,results_struct,options)
+% results_struct = geweke_chi2_test(results1,results2,results_struct,options)
+% PURPOSE: computes Geweke's chi-squared test for two sets of MCMC sample draws
+%
+% INPUTS 
+%   results1         [1 by (4+n_taper*2) vector] vector with post. mean,
+%                           std, NSE_iid, RNE_iid, and tapered NSE and RNE
+%                           for chain part 1
+%   results2         [1 by (4+n_taper*2) vector] vector with post. mean,
+%                           std, NSE_iid, RNE_iid, and tapered NSE and RNE
+%                           for chain part 2
+%   results_struct   [structure] results structure generated by geweke_moments
+%   Dynareoptions    [structure]
+%
+% OUTPUTS 
+%   results_struct   [structure]  containing the following fields:
+%       pooled_mean               Pooled mean of the chain parts, weighted
+%                                   with precision
+%       rpooled_nse               Pooled NSE of the chain parts, weighted
+%                                   with precision
+%       prob_chi2_test            p-value of Chi2-test for equality of
+%                                   means in both chain parts
+% -----------------------------------------------------------------
+
+%
+% SPECIAL REQUIREMENTS
+%   None.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+%
+% ------------------------------------------------
+% REFERENCES: Geweke (1992), `Evaluating the accuracy of sampling-based
+% approaches to the calculation of posterior moments', in J.O. Berger,
+% J.M. Bernardo, A.P. Dawid, and A.F.M. Smith (eds.) Proceedings of
+% the Fourth Valencia International Meeting on Bayesian Statistics,
+% pp. 169-194, Oxford University Press
+% Geweke (1999): `Using simulation methods for Bayesian econometric models: 
+% Inference, development and communication', Econometric Reviews, 18(1),
+% 1-73
+
+% written by: Johannes Pfeifer, 
+% based on code by James P. LeSage, who in turn 
+% drew on MATLAB programs written by Siddartha Chib 
+
+for k=1:length(options.convergence.geweke.taper_steps)+1;
+  NSE=[results1(:,3+(k-1)*2) results2(:,3+(k-1)*2)];
+  means=[results1(:,1) results2(:,1)];
+  diff_Means=means(:,1)-means(:,2);
+  sum_of_weights=sum(1./(NSE.^2),2);
+  pooled_mean=sum(means./(NSE.^2),2)./sum_of_weights;
+  pooled_NSE=1./sqrt(sum_of_weights);
+
+  test_stat=diff_Means.^2./sum(NSE.^2,2); 
+  p = 1-chi2cdf(test_stat,1);
+  results_struct.pooled_mean(:,k) = pooled_mean;
+  results_struct.pooled_nse(:,k) = pooled_NSE;
+  results_struct.prob_chi2_test(:,k) = p;
+end;
+
diff --git a/matlab/geweke_moments.m b/matlab/geweke_moments.m
new file mode 100644
index 0000000000000000000000000000000000000000..242a9d55016796ca844792e31fa87acda779be87
--- /dev/null
+++ b/matlab/geweke_moments.m
@@ -0,0 +1,109 @@
+function [results_vec, results_struct] = geweke_moments(draws,Dynareoptions)
+%[results_vec, results_struct] = geweke_moments(draws,Dynareoptions)
+% PURPOSE: computes Gewke's convergence diagnostics NSE and RNE 
+%          (numerical std error and relative numerical efficiencies)
+
+% INPUTS 
+%   draws            [ndraws by 1 vector] 
+%   Dynareoptions    [structure]
+%  
+% OUTPUTS 
+%   results_vec
+%   results_struct   [structure]  containing the following fields:
+%          posteriormean= posterior parameter mean
+%          posteriorstd = posterior standard deviation
+%          nse_iid      = nse assuming no serial correlation for variable i
+%          rne_iid      = rne assuming no serial correlation for variable i
+%          nse_x        = nse using x% autocovariance tapered estimate
+%          rne_x        = rne using x% autocovariance taper
+% -----------------------------------------------------------------
+
+%
+% SPECIAL REQUIREMENTS
+%   None.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+% REFERENCES: Geweke (1992), `Evaluating the accuracy of sampling-based
+% approaches to the calculation of posterior moments', in J.O. Berger,
+% J.M. Bernardo, A.P. Dawid, and A.F.M. Smith (eds.) Proceedings of
+% the Fourth Valencia International Meeting on Bayesian Statistics,
+% pp. 169-194, Oxford University Press
+% Geweke (1999): `Using simulation methods for Bayesian econometric models: 
+% Inference, development and communication', Econometric Reviews, 18(1),
+% 1-73
+% -----------------------------------------------------------------
+
+% written by: Johannes Pfeifer, 
+% based on code by James P. LeSage, who in turn 
+% drew on MATLAB programs written by Siddartha Chib 
+
+  
+ndraw = size(draws,1);
+n_groups=100;
+taper_steps=Dynareoptions.convergence.geweke.taper_steps;
+results_vec=zeros(1,4+2*length(taper_steps));
+
+ns = floor(ndraw/n_groups); %step_size
+n_draws_used = ns*n_groups; %effective number of draws used after rounding down
+
+window_means= zeros(n_groups,1);
+window_uncentered_variances= zeros(n_groups,1);
+for ig=1:n_groups;
+    window_means(ig,1)=sum(draws((ig-1)*ns+1:ig*ns,1))/ns;
+    window_uncentered_variances(ig,1)=sum(draws((ig-1)*ns+1:ig*ns,1).^2)/ns;        
+end; %for ig
+total_mean=mean(window_means);
+total_variance=mean(window_uncentered_variances)-total_mean^2;
+
+% save posterior means and std deviations to results_struct structure
+results_vec(1,1)=total_mean;
+results_vec(1,2)=sqrt(total_variance);
+results_struct.posteriormean = total_mean;
+results_struct.posteriorstd = results_vec(1,2);
+
+% numerical standard error assuming no serial correlation
+NSE=std(draws(1:n_draws_used,1),1)/sqrt(n_draws_used);
+% save to results_struct structure
+results_vec(1,3)=NSE;
+results_vec(1,4)=total_variance/(n_draws_used*NSE^2);
+results_struct.nse_iid = NSE;
+results_struct.rne_iid = results_vec(1,4);
+
+%get autocovariance of grouped means
+centered_window_means=window_means-total_mean;
+autocov_grouped_means=zeros(n_groups,1);
+for lag=0:n_groups-1;
+    autocov_grouped_means(lag+1)=centered_window_means(lag+1:n_groups,1)'*centered_window_means(1:n_groups-lag,1)/100;
+end;
+
+% numerical standard error with tapered autocovariance functions
+for taper_index=1:length(taper_steps)
+    taper=taper_steps(taper_index);
+    taper_lags=(1:taper-1)';
+    taper_lag_weight=1-taper_lags/taper;
+    tapered_sum_of_covariances=autocov_grouped_means(1)+sum(2*taper_lag_weight.*autocov_grouped_means(1+taper_lags));
+    NSE_taper=sqrt(tapered_sum_of_covariances/n_groups);
+    % save results_struct in structure
+    results_vec(1,4+taper_index*2-1)=NSE_taper;
+    results_vec(1,4+taper_index*2)=total_variance/(n_draws_used*NSE_taper^2);
+
+    eval(['results_struct.nse_taper_',num2str(taper),'= NSE_taper;']);
+    eval(['results_struct.rne_taper_',num2str(taper),'= total_variance/(n_draws_used*NSE_taper^2);']);
+end; % end of for mm loop
+
diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index a91a1462a666c294a2bdeccebf889c83d161624e..61a20bada04314b6b8f6bb7cd4b510408e2fdd64 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -11,7 +11,7 @@ function global_initialization()
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2003-2013 Dynare Team
+% Copyright (C) 2003-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,7 +28,7 @@ function global_initialization()
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-global oo_ M_ options_ estim_params_ bayestopt_ estimation_info ex0_ ys0_  ex_det0_
+global oo_ M_ options_ estim_params_ bayestopt_ estimation_info ex0_ ys0_
 
 estim_params_ = [];
 bayestopt_ = [];
@@ -40,7 +40,6 @@ options_.rplottype = 0;
 options_.smpl = 0;
 options_.dynatol.f = 1e-5;
 options_.dynatol.x = 1e-5;
-options_.maxit_ = 10;
 options_.slowc = 1;
 options_.timing = 0;
 options_.gstep = ones(2,1);
@@ -56,7 +55,10 @@ options_.qz_zero_threshold = 1e-6;
 options_.lyapunov_complex_threshold = 1e-15;
 options_.solve_tolf = eps^(1/3);
 options_.solve_tolx = eps^(2/3);
-options_.solve_maxit = 500;
+
+options_.dp.maxit = 3000;
+options_.steady.maxit = 10;
+options_.simul.maxit = 10;
 
 options_.mode_check.status = 0;
 options_.mode_check.neighbourhood_size = .5;
@@ -106,6 +108,7 @@ gmhmaxlik.iterations = 3;
 gmhmaxlik.number = 20000;
 gmhmaxlik.nclimb = 200000;
 gmhmaxlik.nscale = 200000;
+gmhmaxlik.target = 1/3; % Target for the acceptance rate.
 options_.gmhmaxlik = gmhmaxlik;
 
 % Request user input.
@@ -122,15 +125,13 @@ options_.nograph = 0;
 options_.XTick = [];
 options_.XTickLabel = [];
 options_.console_mode = 0;
-if exist('OCTAVE_VERSION')
+if isoctave
     if sum(get(0,'screensize'))==4
         options_.console_mode = 1;
         options_.nodisplay = 1;
     end
 else
-    if isunix && (~usejava('jvm') || ...
-            ((matlab_ver_less_than('7.5') && sum(get(0,'ScreenSize'))==4) || ...
-            (~matlab_ver_less_than('7.5') && ~feature('ShowFigureWindows'))))
+    if isunix && (~usejava('jvm') || ~feature('ShowFigureWindows'))
         options_.console_mode = 1;
         options_.nodisplay = 1;
     end
@@ -138,6 +139,7 @@ end
 
 % IRFs & other stoch_simul output
 options_.irf = 40;
+options_.impulse_responses.plot_threshold=1e-10;
 options_.relative_irf = 0;
 options_.ar = 5;
 options_.hp_filter = 0;
@@ -259,6 +261,8 @@ options_.xls_sheet = 1; % Octave does not support the empty string, rather use f
 options_.xls_range = '';
 
 % Prior draws
+options_.prior_draws = 10000;
+
 options_.forecast = 0;
 
 % Model
@@ -268,11 +272,13 @@ options_.linear = 0;
 options_.stack_solve_algo = 0;
 options_.markowitz = 0.5;
 options_.minimal_solving_periods = 1;
+options_.endogenous_terminal_period = 0;
+options_.no_homotopy = 0;
 
 % Solution
 options_.order = 2;
 options_.pruning = 0;
-options_.solve_algo = 2;
+options_.solve_algo = 4;
 options_.linear = 0;
 options_.replic = 50;
 options_.simul_replic = 1;
@@ -341,16 +347,15 @@ estimation_info.measurement_error_corr.range_index = {};
 estimation_info.structural_innovation_corr_prior_index = {};
 estimation_info.structural_innovation_corr_options_index = {};
 estimation_info.structural_innovation_corr.range_index = {};
-options_.initial_period = dynDate(1);
-options_.old_dataset.firstobs = options_.initial_period;
-options_.old_dataset.lastobs = NaN;
-options_.old_dataset.nobs = NaN;
-options_.old_dataset.xls_sheet = NaN;
-options_.old_dataset.xls_range = NaN;
+options_.initial_period = dates(1,1);
+options_.dataset.firstobs = options_.initial_period;
+options_.dataset.lastobs = NaN;
+options_.dataset.nobs = NaN;
+options_.dataset.xls_sheet = NaN;
+options_.dataset.xls_range = NaN;
 options_.Harvey_scale_factor = 10;
 options_.MaxNumberOfBytes = 1e6;
 options_.MaximumNumberOfMegaBytes = 111;
-options_.PosteriorSampleSize = 1000;
 options_.analytic_derivation = 0;
 options_.analytic_derivation_mode = 0;
 options_.bayesian_irf = 0;
@@ -369,6 +374,7 @@ options_.lik_init = 1;
 options_.load_mh_file = 0;
 options_.logdata = 0;
 options_.loglinear = 0;
+options_.logged_steady_state = 0;
 options_.mh_conf_sig = 0.90;
 options_.prior_interval = 0.90;
 options_.mh_drop = 0.5;
@@ -379,6 +385,9 @@ options_.mh_nblck = 2;
 options_.mh_recover = 0;
 options_.mh_replic = 20000;
 options_.recursive_estimation_restart = 0;
+options_.MCMC_jumping_covariance='hessian';
+options_.use_calibration_initialization = 0;
+options_.endo_vars_for_moment_computations_in_estimation=[];
 
 options_.mode_compute = 4;
 options_.mode_file = '';
@@ -392,6 +401,7 @@ options_.presample = 0;
 options_.prior_trunc = 1e-10;
 options_.smoother = 0;
 options_.student_degrees_of_freedom = 3;
+options_.posterior_max_subsample_draws = 1200;
 options_.sub_draws = [];
 options_.use_mh_covariance_matrix = 0;
 options_.gradient_method = 2;
@@ -426,7 +436,6 @@ oo_.exo_simul = [];
 oo_.endo_simul = [];
 ys0_ = [];
 ex0_ = [];
-ex_det0_ = [];
 oo_.dr = [];
 oo_.exo_steady_state = [];
 oo_.exo_det_steady_state = [];
@@ -437,13 +446,18 @@ M_.endo_histval = [];
 M_.Correlation_matrix = [];
 M_.Correlation_matrix_ME = [];
 
-% homotopy
+% homotopy for steady state
 options_.homotopy_mode = 0;
 options_.homotopy_steps = 1;
 options_.homotopy_force_continue = 0;
 
 % Simplex optimization routine (variation on Nelder Mead algorithm).
-options_.simplex = [];
+simplex.tolerance.x = 1e-4;
+simplex.tolerance.f = 1e-4;
+simplex.maxiter = 5000;
+simplex.maxfcallfactor = 500;
+simplex.maxfcall = [];
+options_.simplex = simplex;
 
 % CMAES optimization routine.
 cmaes.SaveVariables='off';
@@ -452,8 +466,25 @@ cmaes.WarnOnEqualFunctionValues='no';
 cmaes.DispModulo='10';
 cmaes.LogModulo='0';
 cmaes.LogTime='0';
+cmaes.TolFun = 1e-7;
+cmaes.TolX = 1e-7;
 options_.cmaes = cmaes;
 
+% simpsa optimization routine.
+simpsa.TOLFUN = 1e-4;
+simpsa.TOLX = 1e-4;
+simpsa.TEMP_END = .1;
+simpsa.COOL_RATE = 10;
+simpsa.INITIAL_ACCEPTANCE_RATIO = .95;
+simpsa.MIN_COOLING_FACTOR = .9;
+simpsa.MAX_ITER_TEMP_FIRST = 50;
+simpsa.MAX_ITER_TEMP_LAST = 2000;
+simpsa.MAX_ITER_TEMP = 10;
+simpsa.MAX_ITER_TOTAL = 5000;
+simpsa.MAX_TIME = 2500;
+simpsa.MAX_FUN_EVALS = 20000;
+simpsa.DISPLAY = 'iter';
+options_.simpsa = simpsa;
 
 % prior analysis
 options_.prior_mc = 20000;
@@ -578,6 +609,10 @@ options_.osr.verbose=2;
 % use GPU
 options_.gpu = 0;
 
+%Geweke convergence diagnostics
+options_.convergence.geweke.taper_steps=[4 8 15];
+options_.convergence.geweke.geweke_interval=[0.2 0.5];
+
 % initialize persistent variables in priordens()
 priordens([],[],[],[],[],[],1);
 % initialize persistent variables in dyn_first_order_solver()
diff --git a/matlab/gmhmaxlik.m b/matlab/gmhmaxlik.m
index b57f0593bf546fe20fa887a232c9e019c77cd1ff..b5789d230b844674846e7cf78d3479a73ff98f3e 100644
--- a/matlab/gmhmaxlik.m
+++ b/matlab/gmhmaxlik.m
@@ -84,7 +84,7 @@ npar = length(xparam1);
 NumberOfIterations = options.number;
 MaxNumberOfTuningSimulations   = options.nscale;
 MaxNumberOfClimbingSimulations = options.nclimb;
-AcceptanceTarget               = 1/3;
+AcceptanceTarget               = options.target;
 
 CovJump = VarCov;
 ModePar = xparam1;
@@ -122,7 +122,7 @@ while j<=MaxNumberOfTuningSimulations
     end% ... otherwise I don't move.
     prtfrc = j/MaxNumberOfTuningSimulations;
     if mod(j, 10)==0
-        dyn_waitbar(prtfrc,hh,sprintf('Acceptance rates: %f [%f]',isux/j,jsux/jj));
+        dyn_waitbar(prtfrc,hh,sprintf('Acceptance ratio [during last 500]: %f [%f]',isux/j,jsux/jj));
     end
     if  j/500 == round(j/500)
         test1 = jsux/jj;
@@ -171,7 +171,7 @@ while j<= NumberOfIterations
     end% ... otherwise I don't move.    
     prtfrc = j/NumberOfIterations;
     if mod(j, 10)==0
-        dyn_waitbar(prtfrc,hh,sprintf('Acceptance rate: %f',isux/j));
+        dyn_waitbar(prtfrc,hh,sprintf('Acceptance ratio: %f',isux/j));
     end
     % I update the covariance matrix and the mean:
     oldMeanPar = MeanPar;
@@ -215,7 +215,7 @@ if strcmpi(info,'LastCall')
         end% ... otherwise I don't move.
         prtfrc = j/MaxNumberOfTuningSimulations;
         if mod(j, 10)==0
-            dyn_waitbar(prtfrc,hh,sprintf('Acceptance rates: %f [%f]',isux/j,jsux/jj));
+            dyn_waitbar(prtfrc,hh,sprintf('Acceptance ratio [during last 1000]: %f [%f]',isux/j,jsux/jj));
         end
         if j/1000 == round(j/1000) 
             test1 = jsux/jj;  
diff --git a/matlab/gsa/filt_mc_.m b/matlab/gsa/filt_mc_.m
index 5e09b0b72eaefce820c6d9859b6e4fad5e16017a..ed6729362b5f194544a0ef4d7f84d5834ff07fe8 100644
--- a/matlab/gsa/filt_mc_.m
+++ b/matlab/gsa/filt_mc_.m
@@ -524,17 +524,17 @@ else
     % plot trade-offs
     if ~options_.nograph
     a00=jet(size(vvarvecm,1));
-    for ix=1:ceil(length(nsnam)/5),
-        if options_.opt_gsa.ppost
-            temp_name='RMSE Posterior Tradeoffs: Log Posterior';
+    if options_.opt_gsa.ppost
+        temp_name='RMSE Posterior Tradeoffs:';
+    else
+        if options_.opt_gsa.pprior
+            temp_name='RMSE Prior Tradeoffs:';
         else
-            if options_.opt_gsa.pprior
-                temp_name='RMSE Prior Tradeoffs: Log Posterior';
-            else
-                temp_name='RMSE MC Tradeoffs: Log Posterior';
-            end
-        end        
-        hh = dyn_figure(options_,'name',[temp_name,' ',int2str(ix)]);
+            temp_name='RMSE MC Tradeoffs;';
+        end
+    end
+    for ix=1:ceil(length(nsnam)/5),
+        hh = dyn_figure(options_,'name',[temp_name,' observed variables ',int2str(ix)]);
         for j=1+5*(ix-1):min(size(snam2,1),5*ix),
             subplot(2,3,j-5*(ix-1))
             %h0=cumplot(x(:,nsnam(j)+nshock));
@@ -565,7 +565,7 @@ else
             title([pnam{nsnam(j)}],'interpreter','none')
         end
         %subplot(3,2,6)
-        if exist('OCTAVE_VERSION'),
+        if isoctave
             legend(char('base',vvarvecm),'location','eastoutside');
         else
             h0=legend(char('base',vvarvecm),0);
@@ -617,7 +617,7 @@ else
                 fnam = ['rmse_mc_',deblank(vvarvecm(i,:))];
             end
         end
-        stab_map_2(x(ixx(1:nfilt0(i),i),:),alpha2,pvalue,fnam, OutDir);
+        stab_map_2(x(ixx(1:nfilt0(i),i),:),alpha2,pvalue,fnam, OutDir,[],[temp_name ' observed variable ' deblank(vvarvecm(i,:))]);
         
         %     [pc,latent,explained] = pcacov(c0);
         %     %figure, bar([explained cumsum(explained)])
diff --git a/matlab/gsa/map_ident_.m b/matlab/gsa/map_ident_.m
index 591c547c2c57eb2c539c248c06fcb52234e166ac..867dfcfd63e133bf6319fe6e34f85c1c966627a0 100644
--- a/matlab/gsa/map_ident_.m
+++ b/matlab/gsa/map_ident_.m
@@ -209,7 +209,7 @@ if opt_gsa.morris==1,
     load([OutputDirectoryName,'/',fname_,'_morris_IDE'],'SAvdec','vdec','ir_vdec','ic_vdec')
   end
   
-  hh = dyn_figure(options_);
+  hh = dyn_figure(options_,'name','Screening identification: variance decomposition');
 %   boxplot(SAvdec,'whis',10,'symbol','r.')
   myboxplot(SAvdec,[],'.',[],10)
   set(gca,'xticklabel',' ','fontsize',10,'xtick',[1:npT])
@@ -221,7 +221,7 @@ if opt_gsa.morris==1,
     text(ip,-2,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
   end
   xlabel(' ')
-  title('All variance decomposition')
+  title('Elementary effects variance decomposition')
   dyn_saveas(hh,[OutputDirectoryName,'/',fname_,'_morris_vdec'],options_);
   else
   save([OutputDirectoryName,'/',fname_,'_morris_IDE'],'vdec')
@@ -314,7 +314,7 @@ if opt_gsa.morris==1,
     load([OutputDirectoryName,'/',fname_,'_morris_IDE'],'ac','ir_ac','ic_ac')
   end
   
-  hh=dyn_figure(options_);
+  hh=dyn_figure(options_,'name','Screening identification: theoretical moments');
 %   boxplot(SAcc,'whis',10,'symbol','r.')
   myboxplot(SAcc,[],'.',[],10)
   set(gca,'xticklabel',' ','fontsize',10,'xtick',[1:npT])
@@ -326,7 +326,7 @@ if opt_gsa.morris==1,
     text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
   end
   xlabel(' ')
-  title('EET All moments')
+  title('Elementary effects in the moments')
   dyn_saveas(hh,[OutputDirectoryName,'/',fname_,'_morris_moments'],options_);
 %   close(gcf),
 
@@ -709,7 +709,7 @@ if opt_gsa.morris==1,
   else
     load([OutputDirectoryName,'/',fname_,'_morris_IDE'],'SAnorm','SAmunorm','SAsignorm')
   end
-  hh=dyn_figure(options_); %bar(SAnorm(:,irel))
+  hh=dyn_figure(options_,'name','Screening identification: model'); %bar(SAnorm(:,irel))
 %   boxplot(SAnorm','whis',10,'symbol','r.')
   myboxplot(SAnorm',[],'.',[],10)
   set(gca,'xticklabel',' ','fontsize',10,'xtick',[1:npT])
@@ -725,35 +725,35 @@ if opt_gsa.morris==1,
   title('Elementary effects in the model')
   dyn_saveas(hh,[OutputDirectoryName,'/',fname_,'_morris_par'],options_);
 
-  hh=dyn_figure(options_); %bar(SAmunorm(:,irel))
-%   boxplot(SAmunorm','whis',10,'symbol','r.')
-  myboxplot(SAmunorm',[],'.',[],10)
-  set(gca,'xticklabel',' ','fontsize',10,'xtick',[1:npT])
-  set(gca,'xlim',[0.5 npT+0.5])
-  set(gca,'ylim',[-1 1])
-  set(gca,'position',[0.13 0.2 0.775 0.7])
-  xlabel(' ')
-  for ip=1:npT,
-    text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
-  end
-  xlabel(' ')
-  title('\mu in the model')
-  dyn_saveas(hh,[OutputDirectoryName,'/',fname_,'_morrismu_par'],options_);
-
-  hh=dyn_figure(options_); %bar(SAsignorm(:,irel))
-%   boxplot(SAsignorm','whis',10,'symbol','r.')
-  myboxplot(SAsignorm',[],'.',[],10)
-  set(gca,'xticklabel',' ','fontsize',10,'xtick',[1:npT])
-  set(gca,'xlim',[0.5 npT+0.5])
-  set(gca,'ylim',[0 1])
-  set(gca,'position',[0.13 0.2 0.775 0.7])
-  xlabel(' ')
-  for ip=1:npT,
-    text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
-  end
-  xlabel(' ')
-  title('\sigma in the model')
-  dyn_saveas(hh,[OutputDirectoryName,'/',fname_,'_morrissig_par'],options_);
+%   hh=dyn_figure(options_); %bar(SAmunorm(:,irel))
+% %   boxplot(SAmunorm','whis',10,'symbol','r.')
+%   myboxplot(SAmunorm',[],'.',[],10)
+%   set(gca,'xticklabel',' ','fontsize',10,'xtick',[1:npT])
+%   set(gca,'xlim',[0.5 npT+0.5])
+%   set(gca,'ylim',[-1 1])
+%   set(gca,'position',[0.13 0.2 0.775 0.7])
+%   xlabel(' ')
+%   for ip=1:npT,
+%     text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
+%   end
+%   xlabel(' ')
+%   title('\mu in the model')
+%   dyn_saveas(hh,[OutputDirectoryName,'/',fname_,'_morrismu_par'],options_);
+% 
+%   hh=dyn_figure(options_); %bar(SAsignorm(:,irel))
+% %   boxplot(SAsignorm','whis',10,'symbol','r.')
+%   myboxplot(SAsignorm',[],'.',[],10)
+%   set(gca,'xticklabel',' ','fontsize',10,'xtick',[1:npT])
+%   set(gca,'xlim',[0.5 npT+0.5])
+%   set(gca,'ylim',[0 1])
+%   set(gca,'position',[0.13 0.2 0.775 0.7])
+%   xlabel(' ')
+%   for ip=1:npT,
+%     text(ip,-0.02,bayestopt_.name{ip},'rotation',90,'HorizontalAlignment','right','interpreter','none')
+%   end
+%   xlabel(' ')
+%   title('\sigma in the model')
+%   dyn_saveas(hh,[OutputDirectoryName,'/',fname_,'_morrissig_par'],options_);
 
   %     figure, bar(SAnorm(:,irel)')
   %     set(gca,'xtick',[1:j0])
diff --git a/matlab/gsa/mc_moments.m b/matlab/gsa/mc_moments.m
index 31fd3bce65f95430f56311effb176b42f849ce21..5c2cd034abc202e3d72218457c88391e069b2982 100644
--- a/matlab/gsa/mc_moments.m
+++ b/matlab/gsa/mc_moments.m
@@ -17,19 +17,23 @@ function [vdec, cc, ac] = mc_moments(mm, ss, dr)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-global options_ M_
+global options_ M_ estim_params_ oo_
 
   [nr1, nc1, nsam] = size(mm);
+  nobs=size(options_.varobs,1);
   disp('Computing theoretical moments ...')
   h = dyn_waitbar(0,'Theoretical moments ...');
+  vdec = zeros(nobs,M_.exo_nbr,nsam);
+  cc = zeros(nobs,nobs,nsam);
+  ac = zeros(nobs,nobs*options_.ar,nsam);
   
   for j=1:nsam,
-    dr.ghx = mm(:, [1:(nc1-M_.exo_nbr)],j);
-    dr.ghu = mm(:, [(nc1-M_.exo_nbr+1):end], j);
+    oo_.dr.ghx = mm(:, [1:(nc1-M_.exo_nbr)],j);
+    oo_.dr.ghu = mm(:, [(nc1-M_.exo_nbr+1):end], j);
     if ~isempty(ss),
       set_shocks_param(ss(j,:));
     end
-    [vdec(:,:,j), corr, autocorr, z, zz] = th_moments(dr,options_.varobs);
+    [vdec(:,:,j), corr, autocorr, z, zz] = th_moments(oo_.dr,options_.varobs);
     cc(:,:,j)=triu(corr);
     dum=[];
     for i=1:options_.ar
diff --git a/matlab/gsa/redform_map.m b/matlab/gsa/redform_map.m
index 94c56a41dd54c98f0bc01081f4f74acfc030591f..2a2e9b02791ef75f3d5ab07fff31f962509b1e3e 100644
--- a/matlab/gsa/redform_map.m
+++ b/matlab/gsa/redform_map.m
@@ -132,7 +132,7 @@ for j=1:size(anamendo,1)
                 iplo=iplo+1;
                 js=js+1;
                 xdir0 = [adir,filesep,namendo,'_vs_', namexo];
-                if ilog==0,
+                if ilog==0 || ~isempty(threshold),
                     if isempty(threshold)
                         if isempty(dir(xdir0))
                             mkdir(xdir0)
@@ -233,7 +233,7 @@ for j=1:size(anamendo,1)
                 iplo=iplo+1;
                 js=js+1;
                 xdir0 = [adir,filesep,namendo,'_vs_', namlagendo];
-                if ilog==0,
+                if ilog==0 || ~isempty(threshold),
                     if isempty(threshold)
                         if isempty(dir(xdir0))
                             mkdir(xdir0)
diff --git a/matlab/gsa/stab_map_.m b/matlab/gsa/stab_map_.m
index ca8a54f7fd402529c6114d6b6dceb6a9b35b3c8c..c184c20aa9e9ba3102582493bbed8d1e711a802c 100644
--- a/matlab/gsa/stab_map_.m
+++ b/matlab/gsa/stab_map_.m
@@ -257,13 +257,17 @@ if fload==0,
         %try stoch_simul([]);
         try
             [Tt,Rr,SteadyState,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,'restrict');
+            if info(1)==0,
+                info=endogenous_prior_restrictions(Tt,Rr,M_,options_,oo_);
+            end
             infox(j,1)=info(1);
             if infox(j,1)==0 && ~exist('T'),
                 dr_=oo_.dr;
                 if prepSA,
                     try
                         T=zeros(size(dr_.ghx,1),size(dr_.ghx,2)+size(dr_.ghu,2),Nsam);
-                    catch ME
+                    catch
+                        ME = lasterror();
                         if strcmp('MATLAB:nomem',ME.identifier),
                             prepSA=0;
                             disp('The model is too large for storing state space matrices ...')
@@ -467,23 +471,23 @@ if pprior
     aunstablename=[aname, '_unst'];  aunstabletitle='Prior StabMap: Parameter driving explosiveness of solution';
     awronguniname=[aname, '_wrong']; awrongunititle='Prior StabMap: Parameter driving inability to find solution';
     % bivariate
-    auname='prior_unacceptable'; autitle='Prior Unacceptable';
-    aunstname='prior_unstable'; aunsttitle='Prior Unstable';
-    aindname='prior_indeterm'; aindtitle='Prior Indeterminacy';
-    awrongname='prior_wrong'; awrongtitle='Prior No Solution Found';
-    asname='prior_stable'; astitle='Prior Stable';
+    auname='prior_unacceptable'; autitle='Prior StabMap: non-existence of unique stable solution (Unacceptable)';
+    aunstname='prior_unstable'; aunsttitle='Prior StabMap: explosiveness of solution';
+    aindname='prior_indeterm'; aindtitle='Prior StabMap: Indeterminacy';
+    awrongname='prior_wrong'; awrongtitle='Prior StabMap: inability to find solution';
+    asname='prior_stable'; astitle='Prior StabMap: unique Stable Saddle-Path';
 else
     % univariate
-    aname='mc_stab'; atitle='Posterior StabMap: Parameter driving non-existence of unique stable solution (Unacceptable)';
-    aindetname=[aname, '_indet']; aindettitle='Posterior StabMap: Parameter driving indeterminacy';
-    aunstablename=[aname, '_unst'];  aunstabletitle='Posterior StabMap: Parameter driving explosiveness of solution';
-    awronguniname=[aname, '_wrong']; awrongunititle='Posterior StabMap: Parameter driving inability to find solution';
+    aname='mc_stab'; atitle='MC (around posterior mode) StabMap: Parameter driving non-existence of unique stable solution (Unacceptable)';
+    aindetname=[aname, '_indet']; aindettitle='MC (around posterior mode) StabMap: Parameter driving indeterminacy';
+    aunstablename=[aname, '_unst'];  aunstabletitle='MC (around posterior mode) StabMap: Parameter driving explosiveness of solution';
+    awronguniname=[aname, '_wrong']; awrongunititle='MC (around posterior mode) StabMap: Parameter driving inability to find solution';
     % bivariate
-    auname='mc_unacceptable'; autitle='Posterior Unacceptable';
-    aunstname='mc_unstable'; aunsttitle='Posterior Unstable';
-    aindname='mc_indeterm';  aindtitle='Posterior Indeterminacy';
-    awrongname='mc_wrong'; awrongtitle='Posterior No Solution Found';
-    asname='mc_stable'; astitle='Posterior Stable';
+    auname='mc_unacceptable'; autitle='MC (around posterior mode) StabMap: non-existence of unique stable solution (Unacceptable)';
+    aunstname='mc_unstable'; aunsttitle='MC (around posterior mode) StabMap: explosiveness of solution';
+    aindname='mc_indeterm';  aindtitle='MC (around posterior mode) StabMap: Indeterminacy';
+    awrongname='mc_wrong'; awrongtitle='MC (around posterior mode) StabMap: inability to find solution';
+    asname='mc_stable'; astitle='MC (around posterior mode) StabMap: Unique Stable Saddle-Path';
 end
 delete([OutputDirectoryName,filesep,fname_,'_',aname,'_*.*']);
 %delete([OutputDirectoryName,filesep,fname_,'_',aname,'_SA_*.*']);
@@ -532,6 +536,9 @@ if length(iunstable)>0 && length(iunstable)<Nsam,
         if any(infox==30),
             disp(['    For ',num2str(length(find(infox==30))/Nsam*100,'%1.3f'),'\% Ergodic variance can''t be computed.'])
         end
+        if any(infox==49),
+            disp(['    For ',num2str(length(find(infox==49))/Nsam*100,'%1.3f'),'\% The model violates one (many) endogenous prior restriction(s).'])
+        end
 
     end
     skipline()
@@ -596,7 +603,9 @@ if length(iunstable)>0 && length(iunstable)<Nsam,
     c0=corrcoef(lpmat(istable,:));
     c00=tril(c0,-1);
 
-    stab_map_2(lpmat(istable,:),alpha2, pvalue_corr, asname, OutputDirectoryName,xparam1,astitle);
+    if length(istable)>10,
+        stab_map_2(lpmat(istable,:),alpha2, pvalue_corr, asname, OutputDirectoryName,xparam1,astitle);
+    end
     if length(iunstable)>10,
         stab_map_2(lpmat(iunstable,:),alpha2, pvalue_corr, auname, OutputDirectoryName,xparam1,autitle);
     end
diff --git a/matlab/gsa/stab_map_2.m b/matlab/gsa/stab_map_2.m
index dcb4bb6411d820a57cbc6c4f5ac2bbf91ddc04d9..d4e94f02e82221e4a5d4338f1dfb213e0af31a31 100644
--- a/matlab/gsa/stab_map_2.m
+++ b/matlab/gsa/stab_map_2.m
@@ -86,10 +86,9 @@ for j=1:npar,
                 fprintf(1,'%20s: corrcoef = %7.3f\n',tmp_name,c0(i2(jx),j));
                     
                 if ~options_.nograph,
-                    
                 if mod(j2,12)==1,
                     ifig=ifig+1;
-                    hh=dyn_figure(options_,'name',['Correlations in the ',figtitle,' sample ', num2str(ifig)]);
+                    hh=dyn_figure(options_,'name',[figtitle,' sample bivariate projection ', num2str(ifig)]);
                 end
                 subplot(3,4,j2-(ifig-1)*12)
                 %             bar(c0(i2,j)),
diff --git a/matlab/gsa/th_moments.m b/matlab/gsa/th_moments.m
index 2837fb696e314c47dc0f443a3a8dc6c213291219..9dbe7f8f68a4d6f632566403a472dce8a41bb50d 100644
--- a/matlab/gsa/th_moments.m
+++ b/matlab/gsa/th_moments.m
@@ -35,11 +35,12 @@ function [vdec, corr, autocorr, z, zz] = th_moments(dr,var_list)
     end
   end
   
-  [gamma_y,ivar] = th_autocovariances(dr,ivar,M_, options_);
-  m = dr.ys(ivar);
+  [gamma_y,stationary_vars] = th_autocovariances(dr,ivar,M_, options_);
+  m = dr.ys(ivar(stationary_vars));
 
   
-  i1 = find(abs(diag(gamma_y{1})) > 1e-12);
+%   i1 = find(abs(diag(gamma_y{1})) > 1e-12);
+  i1 = [1:length(ivar)];
   s2 = diag(gamma_y{1});
   sd = sqrt(s2);
 
diff --git a/matlab/histvalf.m b/matlab/histvalf.m
new file mode 100644
index 0000000000000000000000000000000000000000..576f5ff635150a793e3b1f5081955a23e882665a
--- /dev/null
+++ b/matlab/histvalf.m
@@ -0,0 +1,89 @@
+function histvalf(fname)
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+global M_ oo_
+
+if ~exist(fname)
+    error(['Can''t find datafile: ' fname ]);
+end
+
+M_.endo_histval = repmat(oo_.steady_state, 1, M_.maximum_endo_lag);
+
+% Also fill in oo_.exo_simul: necessary if we are in deterministic context,
+% since aux vars for lagged exo are not created in this case
+if isempty(oo_.exo_simul)
+    if isempty(ex0_)
+        oo_.exo_simul = repmat(oo_.exo_steady_state',M_.maximum_lag,1);
+    else
+        oo_.exo_simul = repmat(ex0_',M_.maximum_lag,1);
+    end
+end
+
+S = load(fname);
+
+outvars = fieldnames(S);
+
+for i = 1:length(outvars)
+    ov_ = outvars{i};
+    if ov_(end) == '_'
+        ov = ov_(1:end-1);
+        j = strmatch(ov, M_.endo_names, 'exact');
+        if isempty(j)
+            warning(['smoother2histval: output variable ' ov ' does not exist.'])
+        end
+    else
+        % Lagged endogenous or exogenous, search through aux vars
+        undidx = find(ov_ == '_', 1, 'last'); % Index of last underscore in name
+        ov = ov_(1:(undidx-1));
+        lead_lag = ov_((undidx+1):end);
+        lead_lag = regexprep(lead_lag,'l','-');
+        lead_lag = str2num(lead_lag);
+        j = [];
+        for i = 1:length(M_.aux_vars)
+            if M_.aux_vars(i).type ~= 1 && M_.aux_vars(i).type ~= 3
+                continue
+            end
+            if M_.aux_vars(i).type == 1
+                % Endogenous
+                orig_var = deblank(M_.endo_names(M_.aux_vars(i).orig_index, :));
+            else
+                % Exogenous
+                orig_var = deblank(M_.exo_names(M_.aux_vars(i).orig_index, :));
+            end
+            if strcmp(orig_var, ov) && M_.aux_vars(i).orig_lead_lag == lead_lag
+                j = M_.aux_vars(i).endo_index;
+            end
+        end
+        if isempty(j)
+            % There is no aux var corresponding to (orig_var, lead_lag).
+            % If this is an exogenous variable, then it means we should put
+            % the value in oo_.exo_simul (we are probably in deterministic
+            % context).
+            k = strmatch(ov, M_.exo_names);
+            if isempty(k)
+                warning(['smoother2histval: output variable ' ov '(' lead_lag ') does not exist.'])
+            else
+                oo_.exo_simul((M_.maximum_lag-M_.maximum_endo_lag+1):M_.maximum_lag, k) = getfield(S, ov_);
+            end
+            continue
+        end
+    end
+    M_.endo_histval(j, :) = getfield(S, ov_);
+end
+
diff --git a/matlab/homotopic_steps.m b/matlab/homotopic_steps.m
deleted file mode 100644
index 501eea289b97ad2161f31bdf71ec9914eb99acb6..0000000000000000000000000000000000000000
--- a/matlab/homotopic_steps.m
+++ /dev/null
@@ -1,83 +0,0 @@
-function [info,number_of_calls] = homotopic_steps(tdx,positive_var_indx,shocks,init_weight,step,init,number_of_calls)
-
-% Copyright (C) 2010 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-global oo_
-number_of_calls = number_of_calls + 1;
-max_number_of_calls = 50;
-if number_of_calls>max_number_of_calls
-    info = NaN;
-    return
-end
-max_iter = 100;
-weight   = init_weight;
-verbose  = 0;
-iter     = 0;
-time     = 0;
-reduce_step = 0;
-while iter<=max_iter &&  weight<=1
-    iter = iter+1;
-    old_weight = weight;
-    weight = weight+step;
-    oo_.exo_simul(tdx,positive_var_indx) = weight*shocks+(1-weight);
-    if init
-        info = perfect_foresight_simulation(oo_.dr,oo_.steady_state);
-    else
-        info = perfect_foresight_simulation;
-    end
-    time = time+info.time;
-    if verbose
-        [iter,step]
-        [info.iterations.time,info.iterations.error]
-    end
-    if ~info.convergence
-        if verbose
-            disp('Reduce step size!')
-        end
-        reduce_step = 1;
-        break
-    else
-        if length(info.iterations.error)<5
-            if verbose
-                disp('Increase step size!')
-            end
-            step = step*1.5;
-        end
-    end
-end
-if reduce_step
-    step=step/1.5;
-    [info,number_of_calls] = homotopic_steps(tdx,positive_var_indx,shocks,old_weight,step,init,number_of_calls);
-    if isstruct(info) && ~isnan(info.error)
-        time = time+info.time;
-        return
-    else
-        return
-    end
-end
-if weight<1 && iter<max_iter
-    oo_.exo_simul(tdx,positive_var_indx) = shocks;
-    if init
-        info = perfect_foresight_simulation(oo_.dr,oo_.steady_state);
-    else
-        info = perfect_foresight_simulation;
-    end
-    info.time = info.time+time;
-else
-    info.time = time;
-end
\ No newline at end of file
diff --git a/matlab/identification_analysis.m b/matlab/identification_analysis.m
index 61d732aa410a4babf97b095d431539a3d6e07554..ebfcaf2d9349c64710b04ac65f481ee685922935 100644
--- a/matlab/identification_analysis.m
+++ b/matlab/identification_analysis.m
@@ -225,7 +225,11 @@ if info(1)==0,
         deltaM = deltaM.*abs(params');
         deltaM(params==0)=deltaM_prior(params==0);
         quant = siJ./repmat(sqrt(diag(cmm)),1,nparam);
-        siJnorm = vnorm(quant).*normaliz1;
+        if size(quant,1)==1,
+            siJnorm = abs(quant).*normaliz1;
+        else
+            siJnorm = vnorm(quant).*normaliz1;
+        end
         %                 siJnorm = vnorm(siJ(inok,:)).*normaliz;
         quant=[];
 %         inok = find((abs(TAU)<1.e-8));
@@ -238,7 +242,11 @@ if info(1)==0,
         siH=siH(iy,:);
         if ~isempty(iy),
             quant = siH./repmat(sqrt(diag_chh(iy)),1,nparam);
-            siHnorm = vnorm(quant).*normaliz1;
+            if size(quant,1)==1,
+                siHnorm = abs(quant).*normaliz1;
+            else
+                siHnorm = vnorm(quant).*normaliz1;
+            end
         else
             siHnorm = [];
         end
@@ -254,7 +262,11 @@ if info(1)==0,
         siLRE=siLRE(iy,:);
         if ~isempty(iy),
             quant = siLRE./repmat(sqrt(diag_clre(iy)),1,np);
-            siLREnorm = vnorm(quant).*normaliz1(offset+1:end);
+            if size(quant,1)==1,
+                siLREnorm = abs(quant).*normaliz1(offset+1:end);
+            else
+                siLREnorm = vnorm(quant).*normaliz1(offset+1:end);
+            end
         else
             siLREnorm=[];
         end
diff --git a/matlab/identification_checks.m b/matlab/identification_checks.m
index 3546b0146b984cad2e5f88305caee591c4a3407b..78b12e1744b7564f8bc06bb9a6cda8eac19711f2 100644
--- a/matlab/identification_checks.m
+++ b/matlab/identification_checks.m
@@ -45,7 +45,11 @@ function [condJ, ind0, indnoJ, ixnoJ, McoJ, PcoJ, jweak, jweak_pair] = identific
 npar = size(JJ,2);
 indnoJ = zeros(1,npar);
 
-ind1 = find(vnorm(JJ)>=eps); % take non-zero columns
+if size(JJ,1)>1,
+    ind1 = find(vnorm(JJ)>=eps); % take non-zero columns
+else
+    ind1 = find(abs(JJ)>=eps); % take non-zero columns
+end    
 JJ1 = JJ(:,ind1);
 [eu,ee2,ee1] = svd( JJ1, 0 );
 condJ= cond(JJ1);
diff --git a/matlab/imcforecast.m b/matlab/imcforecast.m
index 6592c9cc071447b4d670f2772769ed5f18ed798f..2fa56a2bac68b75b37021d179883b1e6f044f748 100644
--- a/matlab/imcforecast.m
+++ b/matlab/imcforecast.m
@@ -1,4 +1,4 @@
-function imcforecast(constrained_paths, constrained_vars, options_cond_fcst, constrained_perfect_foresight)
+function imcforecast(constrained_paths, constrained_vars, options_cond_fcst)
 % Computes conditional forecasts.
 %
 % INPUTS
@@ -26,7 +26,7 @@ function imcforecast(constrained_paths, constrained_vars, options_cond_fcst, con
 %  [1] Results are stored in a structure which is saved in a mat file called conditional_forecasts.mat.
 %  [2] Use the function plot_icforecast to plot the results. 
 
-% Copyright (C) 2006-2013 Dynare Team
+% Copyright (C) 2006-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -46,14 +46,6 @@ function imcforecast(constrained_paths, constrained_vars, options_cond_fcst, con
 global options_ oo_ M_ bayestopt_
 
 
-if isfield(options_cond_fcst, 'simulation_type')
-    if strcmp(options_cond_fcst.simulation_type, 'deterministic')
-        disp('deterministic condtional forecast');
-        det_cond_forecast(constrained_paths, constrained_vars, options_cond_fcst, constrained_perfect_foresight);
-        return;
-    end
-end
-    
 if ~isfield(options_cond_fcst,'parameter_set') || isempty(options_cond_fcst.parameter_set)
     options_cond_fcst.parameter_set = 'posterior_mode';
 end
@@ -205,7 +197,7 @@ tt = (1-options_cond_fcst.conf_sig)/2;
 t1 = round(options_cond_fcst.replic*tt);
 t2 = round(options_cond_fcst.replic*(1-tt));
 
-forecasts.controled_variables = constrained_vars;
+forecasts.controlled_variables = constrained_vars;
 forecasts.instruments = options_cond_fcst.controlled_varexo;
 
 for i = 1:EndoSize
diff --git a/matlab/independent_metropolis_hastings.m b/matlab/independent_metropolis_hastings.m
index 577c4000566c609e5dfc1e74b93156d74eb45f74..d78e50ab7d65a83c65209ba5e5beb73bbed424e7 100644
--- a/matlab/independent_metropolis_hastings.m
+++ b/matlab/independent_metropolis_hastings.m
@@ -1,4 +1,4 @@
-function record=independent_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv,mh_bounds,varargin)
+function independent_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv,mh_bounds,varargin)
 
 % Independent Metropolis-Hastings algorithm. 
 % 
@@ -10,9 +10,6 @@ function record=independent_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv
 %   o mh_bounds  [double]   (p*2) matrix defining lower and upper bounds for the parameters. 
 %   o varargin              list of argument following mh_bounds
 %  
-% OUTPUTS 
-%   o record     [struct]   structure describing the iterations
-%
 % ALGORITHM 
 %   Metropolis-Hastings.       
 %
@@ -40,16 +37,17 @@ function record=independent_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 global M_ options_ bayestopt_ estim_params_ oo_
-%%%%
-%%%% Initialization of the independent metropolis-hastings chains.
-%%%%
-[ ix2, ilogpo2, ModelName, MhDirectoryName, fblck, fline, npar, nblck, nruns, NewFile, MAX_nruns, d ] = ...
+
+% Initialization of the independent metropolis-hastings chains.
+
+[ ix2, ilogpo2, ModelName, MetropolisFolder, fblck, fline, npar, nblck, nruns, NewFile, MAX_nruns, d ] = ...
     metropolis_hastings_initialization(TargetFun, xparam1, vv, mh_bounds, varargin{:});
 
-xparam1 = transpose(xparam1);      
+xparam1 = transpose(xparam1);
 InitSizeArray = min([repmat(MAX_nruns,nblck,1) fline+nruns-1],[],2);
 
-load([MhDirectoryName '/' ModelName '_mh_history.mat'],'record');
+% Load last mh history file
+load_last_mh_history_file(MetropolisFolder, ModelName);
 
 %The mandatory variables for local/remote parallel computing are stored in localVars struct.
 
@@ -83,7 +81,6 @@ else
                         'bayestopt_', bayestopt_, ...
                         'estim_params_', estim_params_, ...
                         'oo_', oo_);
-    
     % which files have to be copied to run remotely
     NamFileInput(1,:) = {'',[ModelName '_static.m']};
     NamFileInput(2,:) = {'',[ModelName '_dynamic.m']};
@@ -91,35 +88,32 @@ else
         NamFileInput(length(NamFileInput)+1,:)={'',[ModelName '_steadystate.m']};
     end
     if (options_.load_mh_file~=0) && any(fline>1) ,
-        NamFileInput(length(NamFileInput)+1,:)={[M_.dname '/metropolis/'],[ModelName '_mh' int2str(NewFile(1)) '_blck*.mat']};
+        NamFileInput(length(NamFileInput)+1,:)={[MetropolisFolder filesesep],[ModelName '_mh' int2str(NewFile(1)) '_blck*.mat']};
     end
     if exist([ModelName '_optimal_mh_scale_parameter.mat'])
         NamFileInput(length(NamFileInput)+1,:)={'',[ModelName '_optimal_mh_scale_parameter.mat']};
     end
-    
     % from where to get back results
     %     NamFileOutput(1,:) = {[M_.dname,'/metropolis/'],'*.*'};
-    
     [fout, nBlockPerCPU, totCPU] = masterParallel(options_.parallel, fblck, nblck,NamFileInput,'independent_metropolis_hastings_core', localVars, globalVars, options_.parallel_info);
     for j=1:totCPU,
         offset = sum(nBlockPerCPU(1:j-1))+fblck-1;
         record.LastLogPost(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.LastLogPost(offset+1:sum(nBlockPerCPU(1:j)));
         record.LastParameters(offset+1:sum(nBlockPerCPU(1:j)),:)=fout(j).record.LastParameters(offset+1:sum(nBlockPerCPU(1:j)),:);
-        record.AcceptationRates(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.AcceptationRates(offset+1:sum(nBlockPerCPU(1:j)));
-        record.Seeds(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.Seeds(offset+1:sum(nBlockPerCPU(1:j)));
+        record.AcceptanceRatio(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.AcceptationRates(offset+1:sum(nBlockPerCPU(1:j)));
+        record.LastSeeds(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.LastSeeds(offset+1:sum(nBlockPerCPU(1:j)));
     end
-
 end
 
 irun = fout(1).irun;
 NewFile = fout(1).NewFile;
 
-% record.Seeds.Normal = randn('state');
-% record.Seeds.Unifor = rand('state');
-save([MhDirectoryName '/' ModelName '_mh_history.mat'],'record');
-disp(['MH: Number of mh files                   : ' int2str(NewFile(1)) ' per block.'])
-disp(['MH: Total number of generated files      : ' int2str(NewFile(1)*nblck) '.'])
-disp(['MH: Total number of iterations           : ' int2str((NewFile(1)-1)*MAX_nruns+irun-1) '.'])
-disp('MH: average acceptation rate per chain   : ')
-disp(record.AcceptationRates);
+update_last_mh_history_file(MetropolisFolder, ModelName, record);
+
+skipline()
+disp(['Estimation::mcmc: Number of mh files                   : ' int2str(NewFile(1)) ' per block.'])
+disp(['Estimation::mcmc: Total number of generated files      : ' int2str(NewFile(1)*nblck) '.'])
+disp(['Estimation::mcmc: Total number of iterations           : ' int2str((NewFile(1)-1)*MAX_nruns+irun-1) '.'])
+disp('Estimation::mcmc: Current acceptance ratio per chain   : ')
+disp(record.AcceptanceRatio);
 skipline()
\ No newline at end of file
diff --git a/matlab/independent_metropolis_hastings_core.m b/matlab/independent_metropolis_hastings_core.m
index 3162bd402ea6d2fa057fc32ad80a3cdbe0a8677f..7a9a25c7998de36b7e361afc0b2c2d55f8362554 100644
--- a/matlab/independent_metropolis_hastings_core.m
+++ b/matlab/independent_metropolis_hastings_core.m
@@ -37,7 +37,6 @@ if nargin<4,
     whoiam=0;
 end
 
-
 global bayestopt_ estim_params_ options_  M_ oo_ objective_function_penalty_base
 
 % Reshape 'myinputs' for local computation.
@@ -71,7 +70,8 @@ end
 % (re)Set the penalty.
 objective_function_penalty_base = Inf;
 
-MhDirectoryName = CheckPath('metropolis',M_.dname);
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+BaseName = [MetropolisFolder filesep ModelName];
 
 OpenOldFile = ones(nblck,1);
 if strcmpi(ProposalFun,'rand_multivariate_normal')
@@ -81,10 +81,9 @@ elseif strcmpi(ProposalFun,'rand_multivariate_student')
     n = options_.student_degrees_of_freedom;
     ProposalDensity = 'multivariate_student_pdf';
 end
-% load([MhDirectoryName '/' ModelName '_mh_history.mat'],'record');
-%%%%
-%%%% NOW i run the (nblck-fblck+1) metropolis-hastings chains
-%%%%
+
+
+% Now I run the (nblck-fblck+1) metropolis-hastings chains
 
 if any(isnan(bayestopt_.jscale))
     if exist([ModelName '_optimal_mh_scale_parameter.mat'])% This file is created by mode_compute=6.
@@ -111,16 +110,15 @@ for b = fblck:nblck,
         set_dynare_seed(options_.DynareRandomStreams.algo,...
                         options_.DynareRandomStreams.seed);
         % this set the state 
-        set_dynare_random_generator_state(record.Seeds(b).Unifor, ...
-                                          record.Seeds(b).Normal);
+        set_dynare_random_generator_state(record.InitialSeeds(b).Unifor, ...
+                                          record.InitialSeeds(b).Normal);
     catch
         % if the state set by master is incompatible with the slave, we
         % only reseed 
         set_dynare_seed(options_.DynareRandomStreams.seed+b);
     end
     if (options_.load_mh_file~=0)  && (fline(b)>1) && OpenOldFile(b)
-        load([pwd filesep MhDirectoryName filesep ModelName '_mh' int2str(NewFile(b)) ...
-              '_blck' int2str(b) '.mat'])
+        load([BaseName '_mh' int2str(NewFile(b)) '_blck' int2str(b) '.mat'])
         x2 = [x2;zeros(InitSizeArray(b)-fline(b)+1,npar)];
         logpo2 = [logpo2;zeros(InitSizeArray(b)-fline(b)+1,1)];
         OpenOldFile(b) = 0;
@@ -128,7 +126,7 @@ for b = fblck:nblck,
         x2 = zeros(InitSizeArray(b),npar);
         logpo2 = zeros(InitSizeArray(b),1);
     end
-    if exist('OCTAVE_VERSION') || options_.console_mode
+    if isoctave || options_.console_mode
         diary off
         skipline()
     elseif whoiam
@@ -176,14 +174,14 @@ for b = fblck:nblck,
             logpo2(irun) = ilogpo2(b);
         end
         prtfrc = j/nruns(b);
-        if exist('OCTAVE_VERSION') || options_.console_mode
+        if isoctave || options_.console_mode
             if mod(j, 10) == 0
-                if exist('OCTAVE_VERSION')
+                if isoctave
                     if (whoiam==0),
-                        printf('MH: Computing Metropolis-Hastings (chain %d/%d): %3.f%% done, acception rate: %3.f%%\r', b, nblck, 100 * prtfrc, 100 * isux / j);
+                        printf('Estimation::mcmc: Computing Metropolis-Hastings (chain %d/%d): %3.f%% done, Current acceptance ratio: %3.f%%\r', b, nblck, 100 * prtfrc, 100 * isux / j);
                     end
                 else
-                    fprintf('   MH: Computing Metropolis-Hastings (chain %d/%d): %3.f \b%% done, acception rate: %3.f \b%%\r', b, nblck, 100 * prtfrc, 100 * isux / j);
+                    fprintf('Estimation::mcmc: Computing Metropolis-Hastings (chain %d/%d): %3.f \b%% done, Current acceptance ratio: %3.f \b%%\r', b, nblck, 100 * prtfrc, 100 * isux / j);
                 end
             end
             if mod(j,50)==0 && whoiam,
@@ -193,22 +191,22 @@ for b = fblck:nblck,
             end
         else
             if mod(j, 3)==0 && ~whoiam
-                waitbar(prtfrc,hh,[ '(' int2str(b) '/' int2str(options_.mh_nblck) ') ' sprintf('%f done, acceptation rate %f',prtfrc,isux/j)]);
+                waitbar(prtfrc,hh,[ '(' int2str(b) '/' int2str(options_.mh_nblck) ') ' sprintf('%f done, Current acceptance ratio %f',prtfrc,isux/j)]);
             elseif mod(j,50)==0 && whoiam,
                 %             keyboard;
-                waitbarString = [ '(' int2str(b) '/' int2str(options_.mh_nblck) ') ' sprintf('%f done, acceptation rate %f',prtfrc,isux/j)];
+                waitbarString = [ '(' int2str(b) '/' int2str(options_.mh_nblck) ') ' sprintf('%f done, Current acceptance ratio %f',prtfrc,isux/j)];
                 fMessageStatus(prtfrc,whoiam,waitbarString, waitbarTitle, options_.parallel(ThisMatlab))
             end
         end
 
         if (irun == InitSizeArray(b)) || (j == nruns(b)) % Now I save the simulations
-            save([MhDirectoryName '/' ModelName '_mh' int2str(NewFile(b)) '_blck' int2str(b) '.mat'],'x2','logpo2');
-            fidlog = fopen([MhDirectoryName '/metropolis.log'],'a');
+            save([BaseName '_mh' int2str(NewFile(b)) '_blck' int2str(b) '.mat'],'x2','logpo2');
+            fidlog = fopen([MetropolisFolder '/metropolis.log'],'a');
             fprintf(fidlog,['\n']);
             fprintf(fidlog,['%% Mh' int2str(NewFile(b)) 'Blck' int2str(b) ' (' datestr(now,0) ')\n']);
             fprintf(fidlog,' \n');
             fprintf(fidlog,['  Number of simulations.: ' int2str(length(logpo2)) '\n']);
-            fprintf(fidlog,['  Acceptation rate......: ' num2str(jsux/length(logpo2)) '\n']);
+            fprintf(fidlog,['  Acceptance ratio......: ' num2str(jsux/length(logpo2)) '\n']);
             fprintf(fidlog,['  Posterior mean........:\n']);
             for i=1:length(x2(1,:))
                 fprintf(fidlog,['    params:' int2str(i) ': ' num2str(mean(x2(:,i))) '\n']);
@@ -244,21 +242,19 @@ for b = fblck:nblck,
         j=j+1;
         irun = irun + 1;
     end% End of the simulations for one mh-block.
-    record.AcceptationRates(b) = isux/j;
-    if exist('OCTAVE_VERSION') || options_.console_mode
+    record.AcceptanceRatio(b) = isux/j;
+    if isoctave || options_.console_mode
         printf('\n');
         diary on
     elseif ~whoiam
         close(hh);
     end
-    [record.Seeds(b).Unifor, record.Seeds(b).Normal] = get_dynare_random_generator_state();
-    OutputFileName(jloop,:) = {[MhDirectoryName,filesep], [ModelName '_mh*_blck' int2str(b) '.mat']};
+    [record.LastSeeds(b).Unifor, record.LastSeeds(b).Normal] = get_dynare_random_generator_state();
+    OutputFileName(jloop,:) = {[MetropolisFolder,filesep], [ModelName '_mh*_blck' int2str(b) '.mat']};
 end% End of the loop over the mh-blocks.
 
 
 myoutput.record = record;
 myoutput.irun = irun;
 myoutput.NewFile = NewFile;
-myoutput.OutputFileName = OutputFileName;
-
-
+myoutput.OutputFileName = OutputFileName;
\ No newline at end of file
diff --git a/matlab/init_plan.m b/matlab/init_plan.m
new file mode 100644
index 0000000000000000000000000000000000000000..45be92d460b14a34c9bce5da91f724493320fc2d
--- /dev/null
+++ b/matlab/init_plan.m
@@ -0,0 +1,47 @@
+function plan = init_plan(date) 
+% Creates and initializes a new forecast scenario
+%
+% INPUTS
+%  o date                 [dates]           The period of the forecast
+%
+%
+% OUTPUTS
+%  plan                   [structure]       Returns a structure containing a new forecast scenario
+%
+%
+% Copyright (C) 2013-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ global M_
+  plan = struct();
+  plan.date = date;
+  endo_names_length = size(M_.endo_names,2);
+  plan.endo_names = deblank(mat2cell(M_.endo_names(1:M_.orig_endo_nbr,:),ones(1,M_.orig_endo_nbr),endo_names_length));
+  exo_names_length = size(M_.exo_names,2);
+  plan.exo_names = deblank(mat2cell(M_.exo_names(1:M_.exo_nbr,:),ones(1,M_.exo_nbr),exo_names_length));
+  plan.constrained_vars_ = [];
+  plan.constrained_paths_ = [];
+  plan.constrained_date_ = [];
+  plan.constrained_perfect_foresight_ = [];
+  plan.shock_vars_ = [];
+  plan.shock_paths_ = [];
+  plan.shock_date_ = [];
+  plan.shock_perfect_foresight_ = [];
+  plan.options_cond_fcst_ = struct();
+  plan.options_cond_fcst_.parameter_set = 'calibration';
+  plan.options_cond_fcst_.simulation_type = 'deterministic';
+  plan.options_cond_fcst_.controlled_varexo = [];
+  
diff --git a/matlab/initial_estimation_checks.m b/matlab/initial_estimation_checks.m
index 80c499789f580f5c800984c61e9cbd9104cb9dff..9dee5461e9047eb67e73beb29ee1fce5d2d88744 100644
--- a/matlab/initial_estimation_checks.m
+++ b/matlab/initial_estimation_checks.m
@@ -3,9 +3,14 @@ function DynareResults = initial_estimation_checks(objective_function,xparam1,Dy
 % Checks data (complex values, ML evaluation, initial values, BK conditions,..)
 %
 % INPUTS
-%    xparam1:          vector of parameters to be estimated
-%    gend:             scalar specifying the number of observations
-%    data:             matrix of data
+%   objective_function  [function handle] of the objective function
+%   xparam1:            [vector] of parameters to be estimated
+%   DynareDataset:      [structure] storing the dataset information
+%   Model:              [structure] decribing the model
+%   EstimatedParameters [structure] characterizing parameters to be estimated
+%   DynareOptions       [structure] describing the options
+%   BayesInfo           [structure] describing the priors
+%   DynareResults       [structure] storing the results
 %
 % OUTPUTS
 %    DynareResults     structure of temporary results
@@ -13,7 +18,7 @@ function DynareResults = initial_estimation_checks(objective_function,xparam1,Dy
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2003-2012 Dynare Team
+% Copyright (C) 2003-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -41,6 +46,29 @@ end
 % check if steady state solves static model (except if diffuse_filter == 1)
 [DynareResults.steady_state] = evaluate_steady_state(DynareResults.steady_state,Model,DynareOptions,DynareResults,DynareOptions.diffuse_filter==0);
 
+if any(BayesInfo.pshape) % if Bayesian estimation
+    nvx=EstimatedParameters.nvx;
+    if nvx && any(BayesInfo.p3(1:nvx)<0) 
+        warning('Your prior allows for negative standard deviations for structural shocks. Due to working with variances, Dynare will be able to continue, but it is recommended to change your prior.')
+    end
+    offset=nvx;
+    nvn=EstimatedParameters.nvn;
+    if nvn && any(BayesInfo.p3(1+offset:offset+nvn)<0) 
+        warning('Your prior allows for negative standard deviations for measurement error. Due to working with variances, Dynare will be able to continue, but it is recommended to change your prior.')
+    end
+    offset = nvx+nvn;
+    ncx=EstimatedParameters.ncx; 
+    if ncx && (any(BayesInfo.p3(1+offset:offset+ncx)<-1) || any(BayesInfo.p4(1+offset:offset+ncx)>1)) 
+        warning('Your prior allows for correlations between measurement errors larger than +-1 and will not integrate to 1 due to truncation. Please change your prior')
+    end
+    offset = nvx+nvn+ncx;
+    ncn=EstimatedParameters.ncn; 
+    if ncn && (any(BayesInfo.p3(1+offset:offset+ncn)<-1) || any(BayesInfo.p4(1+offset:offset+ncn)>1)) 
+        warning('Your prior allows for correlations between structural shocks larger than +-1 and will not integrate to 1 due to truncation. Please change your prior')
+    end
+end
+
+    
 % Evaluate the likelihood.
 ana_deriv = DynareOptions.analytic_derivation;
 DynareOptions.analytic_derivation=0;
diff --git a/matlab/insert_column_vector_in_a_matrix.m b/matlab/insert_column_vector_in_a_matrix.m
index e12de7fa501783278450689101d08c350064e1ed..6ab517e3f81fd4389607dc1f482ceff595ae4d38 100644
--- a/matlab/insert_column_vector_in_a_matrix.m
+++ b/matlab/insert_column_vector_in_a_matrix.m
@@ -1,4 +1,4 @@
-function matrix = insert_column_vector_in_a_matrix(matrix, vector, i)
+function matrix = insert_column_vector_in_a_matrix(matrix, vector, i)  % --*-- Unitary tests --*--
 
 % Copyright (C) 2013 Dynare Team
 %
diff --git a/matlab/insert_object_in_a_one_dimensional_cell_array.m b/matlab/insert_object_in_a_one_dimensional_cell_array.m
index cb6a273bd2f5fa3919db233884b1eaa8bedfe880..3eb82e0ba0caed883b9537f2a8565e5b91ec5cce 100644
--- a/matlab/insert_object_in_a_one_dimensional_cell_array.m
+++ b/matlab/insert_object_in_a_one_dimensional_cell_array.m
@@ -1,4 +1,4 @@
-function one_dimensional_cell_array = insert_object_in_a_one_dimensional_cell_array(one_dimensional_cell_array, object, i)
+function one_dimensional_cell_array = insert_object_in_a_one_dimensional_cell_array(one_dimensional_cell_array, object, i) % --*-- Unitary tests --*--
 
 % Copyright (C) 2013 Dynare Team
 %
diff --git a/matlab/internals.m b/matlab/internals.m
index 98225669ddd85a9b8325f1775e096ce5f123f5a7..273f1401ecf0f7d3a354123a2168cc26f3d4274b 100644
--- a/matlab/internals.m
+++ b/matlab/internals.m
@@ -90,6 +90,89 @@ if strcmpi(flag,'--test')
     return
 end
 
+if strcmpi(flag,'--load-mh-history') || strcmpi(flag,'--display-mh-history')
+    switch length(varargin)
+      case 3
+        fname = varargin{1};
+        if ~isequal(varargin{2},'in')
+            error('internals:: Calling sequence must be of the form: internals --load-mh-history fname in dname')
+        end
+        dname = varargin{3};
+      case 1
+        fname = varargin{1};
+        dname = varargin{1};
+      otherwise
+        error('internals:: Wrong calling sequence! You should read the manual...')
+    end
+    o = load_last_mh_history_file([dname filesep 'metropolis'],fname);
+    if strcmpi(flag,'--load-mh-history')
+        assignin('caller','mcmc_informations',o);
+    else
+        oo = load_first_mh_history_file([dname filesep 'metropolis'],fname);
+        local = load([fname '_results'],'bayestopt_');
+        names = local.bayestopt_.name; %evalin('base','bayestopt_.name');
+        str = ['MCMC set-up for ' fname ' mod file'];
+        ltr = length(str);
+        skipline()
+        disp(repmat('=',1,ltr))
+        disp(str)
+        disp(repmat('=',1,ltr))
+        skipline(2)
+        oar = compute_overall_acceptance_ratio([dname filesep 'metropolis'],fname);
+        for b=1:o.Nblck
+            str = ['MCMC chain number ' num2str(b) ':'];
+            ltr = length(str);
+            disp(str);
+            disp(repmat('-',1,ltr));
+            skipline()
+            disp([' o Number of MCMC files is ' num2str(sum(o.MhDraws(:,2)))]);
+            disp([' o Number of draws is ' num2str(sum(o.MhDraws(:,1)))]);
+            disp([' o Overall acceptance ratio is ' num2str(oar(b)*100,'%5.2f') '%']);
+            disp([' o Initial value of the posterior kernel is: ' num2str(oo.InitialLogPost(b),'%10.5f')])
+            disp([' o Last value of the posterior kernel is: ' num2str(o.LastLogPost(b),'%10.5f')])
+            disp([' o State of the chain:'])
+            skipline()
+            d1 = num2str(transpose(oo.InitialParameters(b,:)),'%10.5f\n');
+            d2 = num2str(transpose(o.LastParameters(b,:)),'%10.5f\n');
+            d1s = size(d1,2);
+            d2s = size(d2,2);
+            c0 = repmat('   ',length(names)+2,1);
+            c1 = char(' ', repmat('+',1,size(cell2mat(names),2)), cell2mat(names));
+            s1 = char(' || ','++++',repmat(' || ', length(names),1));
+            t1 = repmat(' ',1,d1s);
+            if d1s<=7
+                t1 = 'Initial';
+            else
+                diff = d1s-7;
+                if isequal(mod(diff,2),0)
+                    start = diff/2+1;
+                else
+                    start = (diff-1)/2+1;
+                end
+                t1(start:start+6) = 'Initial';
+            end
+            c2 = char(t1,repmat('+',1,size(d1,2)),d1);
+            s2 = char(' | ','+++',repmat(' | ', length(names),1));
+            t2 = repmat(' ',1,d2s);
+            if d2s<=7
+                t2 = 'Current';
+            else
+                diff = d2s-7;
+                if isequal(mod(diff,2),0)
+                    start = diff/2+1;
+                else
+                    start = (diff-1)/2+1;
+                end
+                t2(start:start+6) = 'Current';
+            end
+            c3 = char(t2,repmat('+',1,size(d2,2)), d2);
+            disp([c0, c1, s1, c2, s2, c3]);
+            skipline()
+        end
+    end
+    return
+end
+
 if strcmpi(flag,'--info')
     if nargin==2
         dynare_config([],0);
diff --git a/matlab/reports/@sections/numSections.m b/matlab/isdseries.m
similarity index 84%
rename from matlab/reports/@sections/numSections.m
rename to matlab/isdseries.m
index 2eb27007730fb996249d30b57bc42fed3f1e931c..9d2c7d2497887f75a8b336f097fedc07a2791ce3 100644
--- a/matlab/reports/@sections/numSections.m
+++ b/matlab/isdseries.m
@@ -1,7 +1,6 @@
-function n = numSections(o)
-% function n = numSections(o)
+function B = isdseries(A)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2011-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -18,5 +17,4 @@ function n = numSections(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-n = o.objArray.numObjArray();
-end
\ No newline at end of file
+B = isa(A,'dseries');
\ No newline at end of file
diff --git a/matlab/@dynDate/disp.m b/matlab/isglobalinbase.m
similarity index 85%
rename from matlab/@dynDate/disp.m
rename to matlab/isglobalinbase.m
index 03d09bf0ddbe4ffda79cc4b2a937faa6ebc9cbc2..6c93d3dd24e8dfdb802da8a57fc47d15aab57e38 100644
--- a/matlab/@dynDate/disp.m
+++ b/matlab/isglobalinbase.m
@@ -1,4 +1,4 @@
-function disp(d)
+function a = isglobalinbase(var)
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -17,8 +17,9 @@ function disp(d)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if isempty(d)
-    fprintf('Empty dynDate object.\n');
+tmp = whos('global');
+if isempty(strmatch(var,{tmp.name}))
+    a = 0;
 else
-    fprintf('<dynDate: %s>\n', format(d));
+    a = 1;
 end
\ No newline at end of file
diff --git a/matlab/isint.m b/matlab/isint.m
index 111fc21e40adf43ae24c43133a8a5b1e8c3434db..9f59a5e9164494945b3d22b020039531fbb5eb80 100644
--- a/matlab/isint.m
+++ b/matlab/isint.m
@@ -32,7 +32,17 @@ function [b,c,d] = isint(a)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+if ~isnumeric(a)
+    b = 0;
+    if nargout>1
+        c = [];
+        d = [];
+    end
+    return
+end
+
 [m,n] = size(a);
+
 b = abs(fix(a)-a)<1e-15;
 
 if nargout>1
diff --git a/matlab/k_order_pert.m b/matlab/k_order_pert.m
index 315c4494a8d999fc9c3b4c1d8b1a41706862edfc..db1ef91f48587ba727b132f73f37c53128f49c8d 100644
--- a/matlab/k_order_pert.m
+++ b/matlab/k_order_pert.m
@@ -97,11 +97,10 @@ else
     dr.ghx = dr.g_1(:,1:nspred);
     dr.ghu = dr.g_1(:,nspred+1:end);
 
-    if options.loglinear == 1
+    if options.loglinear
         k = find(dr.kstate(:,2) <= M.maximum_endo_lag+1);
         klag = dr.kstate(k,[1 2]);
         k1 = dr.order_var;
-    
         dr.ghx = repmat(1./dr.ys(k1),1,size(dr.ghx,2)).*dr.ghx.* ...
                  repmat(dr.ys(k1(klag(:,1)))',size(dr.ghx,1),1);
         dr.ghu = repmat(1./dr.ys(k1),1,size(dr.ghu,2)).*dr.ghu;
diff --git a/matlab/load_csv_file_data.m b/matlab/load_csv_file_data.m
index 21ff83267cad9bcb3f14a3e8d4a114de8f18325d..7317ca33084f35d0c54c7cb566eb8dc7e8f2bf80 100644
--- a/matlab/load_csv_file_data.m
+++ b/matlab/load_csv_file_data.m
@@ -1,42 +1,20 @@
-function [freq, init, data, varlist] = load_csv_file_data(file, withtime, withnames, noemptycell)
+function [freq, init, data, varlist] = load_csv_file_data(file)
 
-%@info:
-%! @deftypefn {Function File} {@var{freq}, @var{init}, @var{data}, @var{varlist} =} load_m_file_data (@var{file}, @var{withtime}, @var{withnames}, @var{noemptycell})
-%! @anchor{load_csv_file_data}
-%! @sp 1
-%! Loads data in a csv file.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item file
-%! string, name of the csv file
-%! @item withtime
-%! Scalar integer, non zero iff the first column is for the dates of the observations.
-%! @item withnames
-%! Scalar integer, non zero iff the first row is for the names of the variables.
-%! @item noemptycell
-%! Scalar integer, non zero iff the csv file does not have empty cells.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item freq
-%! Scalar integer (1, 4, 12, 52).
-%! @item init
-%! dynDate object, initial date.
-%! @item data
-%! Matrix of doubles, data.
-%! @item varlist
-%! Cell of strings (names of the variables in the database).
-%! @end table
-%! @sp 2
-%! @strong{Remarks}
-%! @sp 1
-%! The frequency and initial date can be specified with variables FREQ__ and INIT__ in the matlab/octave script. FREQ__ must be a scalar integer and INIT__ a string like '1938M11', '1945Q3', '1973W3' or '2009'. If these variables are not specified default values for freq and init are 1 and dynDate(1).
-%! @end deftypefn
-%@eod:
+% Loads data in a csv file.
+%
+% INPUTS 
+%  o file        string, name of the csv file (with path).
+%
+% OUTPUTS 
+%  o freq        integer scalar equal to 1, 4, 12 or 52 (for annual, quaterly, monthly or weekly frequencies).
+%  o init        dates object, initial date in the dataset.
+%  o data        matrix of doubles, the data.
+%  o varlist     cell of strings, names of the variables.
+%
+% REMARKS
+%  The varlist output will be set only if the first line contains variable
+%  names. Similarly, if the first column does not contain dates, then
+%  freq will be 1 and init will be year 1.
 
 % Copyright (C) 2012-2013 Dynare Team
 %
@@ -55,177 +33,45 @@ function [freq, init, data, varlist] = load_csv_file_data(file, withtime, withna
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
-
-% Set defaults.
-if nargin<4
-    noemptycell = 1;
-    if nargin<3
-        withnames = 1;
-        if nargin <2
-            withtime = 1;
-            if nargin<1
-                error('load_csv_file_data:: I need at least one input (name of the csv file)!')
-            end
-        end
-    end
-end
-
-if ~withtime && ~withnames && noemptycell
-    % Use matlab builtin routine!
-    data = csvread(file);
-end
-
-if ~( isequal(withtime,0) || isequal(withtime,1) )
-    error('load_csv_file_data:: Second input argument has to be equal to 1 or 0!')
-end
-
-if ~( isequal(withnames,0) || isequal(withnames,1) )
-    error('load_csv_file_data:: Third input argument has to be equal to 1 or 0!')
-end
-
 % Output initialization
-freq = 1;
-init = dynDate(1);
+freq = 1;                  % Default frequency is annual.
+init = dates(1,1);         % Default initial date is year one.
 varlist = [];
-if ~exist('OCTAVE_VERSION')
-    % Under Matlab, save time by using importdata
-    assert(exist(file, 'file') == 2, ['load_csv_file_data: I can''t find file ' file '!']);
-    A = importdata(file, ',', withnames);
-    if withnames && withtime
-        if size(A.textdata, 1) == 1
-            % year dates confused for data
-            varlist = A.textdata(1, 2:end);
-            init = dynDate(A.data(1, 1));
-            data = A.data(:, 2:end);
-        else
-            varlist = A.textdata(1, 2:end);
-            init = dynDate(strrep(A.textdata{2, 1}, 'Y', ''));
-            data = A.data;
-        end
-    elseif withnames && ~withtime
-        varlist = A.textdata;
-        data = A.data;
-    elseif ~withnames && withtime
-        if ~isstruct(A)
-            % year dates confused for data
-            init = dynDate(A(1, 1));
-            data = A(:, 2:end);
-        else
-            init = dynDate(strrep(A.textdata{1, 1}, 'Y', ''));
-            data = A.data;
-        end
-    else
-        error('load_csv_file_data:: Shouldn''t arrive here');
-    end
-    freq = init.freq;
-    varlist = transpose(varlist);
-    return
-end
-
-% Check if file exists.
-if check_file_extension(file,'csv')
-    try
-        fid = fopen(file,'r');
-    catch
-        error(['load_csv_file_data: I can''t find file ' file '!'])
-    end
-else
-    error('load_csv_file_data: Wrong file extension!')
-end
 
-% bfile contains a vector of ascii codes.
-bfile = fread(fid);
+assert(exist(file, 'file') == 2, ['load_csv_file_data: I can''t find file ' file '!']);
 
-% Close (csv) file. 
-fclose(fid);
-
-% Set newline code (ok for *nix, check for mac and windows)
-if isunix
-    newline_code = 10;
-elseif ispc
-    newline_code = 13;
-elseif ismac
-    newline_code = 10;
-else
-    error('load_csv_file_data:: Not implemented for your OS!')
-end
-
-% Get the positions of the end-of-line code;
-end_of_line_locations = find(bfile==newline_code);
-if ispc && isempty(end_of_line_locations)
-    newline_code=10;
-    end_of_line_locations = find(bfile==newline_code);
-end;
-tmp = find(bfile==newline_code);
-
-% Get the number of lines in the file.
-ndx = length(tmp);                       
-
-% Create a cell of indices for each line.
-b = [1; end_of_line_locations+1];
-c = [end_of_line_locations-1; length(bfile)+1];
-b = b(1:end-1);
-c = c(1:end-1);
-
-linea = 1;
-
-if withnames
-    % Get the first line of the csv file (names of the variables).
-    linee = char(transpose(bfile(b(linea):c(linea))));
-    % Get the content of the first line and determine the number of variables and their names.
-    [B,C] = get_cells_id(linee,',');
-    if withtime
-        B = B(2:end);
-        C = C(2:end);
+if isoctave
+    if ~user_has_octave_forge_package('io')
+        error('The io package is required to read CSV files from Octave')
     end
-    varlist = cell(length(B),1);
-    number_of_variables = length(varlist);
-    for i=1:number_of_variables
-        varlist(i) = {linee(B(i):C(i))};
+    A = csv2cell(file);
+    [data, T, L] = parsecell(A);
+    withvars = L.numlimits(2,1) > L.txtlimits(2,1);
+    withtime = L.numlimits(1,1) > L.txtlimits(1,1);
+else
+    A = importdata(file);
+    if ~isstruct(A)
+        data = A;
+        T = {};
+        withvars = 0;
+        withtime = 0;
+    else
+        data = A.data;
+        T = A.textdata;
+        % importdata() allows text only at the top and the left, so the following
+        %  tests are sufficient.
+        withvars = size(T, 2) >= size(data, 2);
+        withtime = size(T, 1) >= size(data, 1);
     end
-    varlist = strtrim(varlist);
-    linea = linea+1;
 end
 
-% Get following line (number 1 or 2 depending on withnames flag)
-linee = char(transpose(bfile(b(linea):c(linea))));
-comma_locations = transpose(strfind(linee,','));
-B = 1;
-C = comma_locations(1)-1;
-
+if withvars
+    varlist = T(1, 2:end);
+    T = T(2:end, :);
+end
 if withtime
-    tmp = linee(B:C);
-    % Check the dates formatting
-    if ~(isyearly(tmp) || isquaterly(tmp) || ismonthly(tmp) || isweekly(tmp))
-        error('load_csv_file_data:: Formatting error. I can''t read the dates!')
-    end
-    if isyearly(tmp)==2
-        % Remove the Y (gpm/iris date format) if necessary
-        tmp = tmp(1:end-1);
-    end
-    init = dynDate(tmp);
+    init = dates(T{1, 1});
     freq = init.freq;
-    first = 2;
-else
-    first = 1;
-end
-
-if ~withnames
-    number_of_variables = length(tmp)-withtime;
-end
-
-% Initialization of matrix data.
-data = zeros(ndx,number_of_variables);
-
-% Populate data.
-for linea = 1+withnames:ndx
-    linee = char(transpose(bfile(b(linea):c(linea))));
-    [B,C] = get_cells_id(linee,',');
-    for i=first:length(B)
-        data(linea,i-withtime) = str2double(linee(B(i):C(i)));
-    end
 end
 
-% Remove first line if withnames
-data = data(1+withnames:ndx,:);
\ No newline at end of file
+varlist = transpose(varlist);
diff --git a/matlab/load_first_mh_history_file.m b/matlab/load_first_mh_history_file.m
new file mode 100644
index 0000000000000000000000000000000000000000..3177fafe4590b3c74d645c749de1acd72a2de261
--- /dev/null
+++ b/matlab/load_first_mh_history_file.m
@@ -0,0 +1,39 @@
+function info = load_first_mh_history_file(MetropolisFolder, ModelName)
+
+% This routine requires that the MCMC draws were obtained with a dynare version greater than 4.3.3.
+ 
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+% record is also a Matlab function.
+record = 0;
+
+% Get the list of all the mh_history files.
+BaseName = [MetropolisFolder filesep ModelName];
+mh_history_files = dir([BaseName '_mh_history_*.mat']);
+
+if isequal(length(mh_history_files),0)
+    error(['Estimation::load_mh_file: I cannot find any mh-history file in ' MetropolisFolder '!'])
+end
+
+load([BaseName '_mh_history_0.mat']);
+
+if isequal(nargout,0)
+    assignin('caller', 'record', record);
+else
+    info = record;
+end
\ No newline at end of file
diff --git a/matlab/load_last_mh_history_file.m b/matlab/load_last_mh_history_file.m
new file mode 100644
index 0000000000000000000000000000000000000000..1455861ea7028f12ef6fc92d835156728e63538c
--- /dev/null
+++ b/matlab/load_last_mh_history_file.m
@@ -0,0 +1,58 @@
+function info = load_last_mh_history_file(MetropolisFolder, ModelName)
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+% record is also a Matlab function.
+record = 0;
+
+% Get the list of all the mh_history files.
+BaseName = [MetropolisFolder filesep ModelName];
+mh_history_files = dir([BaseName '_mh_history_*.mat']);
+
+% Consistency with older versions of Dynare.
+if isequal(length(mh_history_files),0)
+    if exist([BaseName '_mh_history.mat'])
+        format_mh_history_file = 1;
+    else
+        error(['Estimation::load_mh_file: I cannot find any mh-history file in ' MetropolisFolder '!'])
+    end
+else
+    format_mh_history_file = 0;
+end
+
+if format_mh_history_file
+    load([BaseName '_mh_history.mat']);
+    record.LastLogPost = record.LastLogLiK;
+    record.InitialLogPost = record.InitialLogLiK;
+    record.LastSeeds = record.Seeds;
+    record.AcceptanceRatio = record.AcceptationRates;
+    record.InitialSeeds = NaN; % This information is forever lost...
+    record = rmfield(record,'LastLogLiK');
+    record = rmfield(record,'InitialLogLiK');
+    record = rmfield(record,'Seeds');
+    record = rmfield(record,'AcceptationRates');
+    save([BaseName '_mh_history_0.mat'],'record');
+else
+    load([BaseName '_mh_history_' num2str(length(mh_history_files)-1) '.mat']);
+end
+
+if isequal(nargout,0)
+    assignin('caller', 'record', record);
+else
+    info = record;
+end
\ No newline at end of file
diff --git a/matlab/load_m_file_data.m b/matlab/load_m_file_data.m
index 31526f98618c9587bfbc952e3a71fd8c4cee3892..b692585834f0ff937a0400abf375ed57ad7dddde 100644
--- a/matlab/load_m_file_data.m
+++ b/matlab/load_m_file_data.m
@@ -1,36 +1,20 @@
 function [freq,init,data,varlist,tex] = load_m_file_data(file)
 
-%@info:
-%! @deftypefn {Function File} {@var{freq}, @var{init}, @var{data}, @var{varlist} =} load_m_file_data (@var{file})
-%! @anchor{load_m_file_data}
-%! @sp 1
-%! Loads data in a matlab/octave m-file.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item file
-%! string, name of the m file (matlab/octave script).
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item freq
-%! Scalar integer (1, 4, 12, 52).
-%! @item init
-%! dynDate object, initial date.
-%! @item data
-%! Matrix of doubles, data.
-%! @item varlist
-%! Cell of strings (names of the variables in the database).
-%! @end table
-%! @sp 2
-%! @strong{Remarks}
-%! @sp 1
-%! The frequency and initial date can be specified with variables FREQ__ and INIT__ in the matlab/octave script. FREQ__ must be a scalar integer and INIT__ a string like '1938M11', '1945Q3', '1973W3' or '2009'. If these variables are not specified default values for freq and init are 1 and dynDate(1).
-%! @end deftypefn
-%@eod:
+% Loads data in a matlab/octave script.
+%
+% INPUTS 
+%  o file         string, name of the matlab/octave script (with path)
+%
+% OUTPUTS 
+%  o freq        integer scalar equal to 1, 4, 12 or 52 (for annual, quaterly, monthly or weekly frequencies).
+%  o init        dates object, initial date in the dataset.
+%  o data        matrix of doubles, the data.
+%  o varlist     cell of strings, names of the variables.
+%
+% REMARKS 
+% The frequency and initial date can be specified with variables FREQ__ and INIT__ in the matlab/octave script. FREQ__ must 
+% be a scalar integer and INIT__ a string like '1938M11', '1945Q3', '1973W3' or '2009A'. If these variables are not specified 
+% default values for freq and init are 1 and dates(1,1).
 
 % Copyright (C) 2012-2013 Dynare Team
 %
@@ -49,22 +33,33 @@ function [freq,init,data,varlist,tex] = load_m_file_data(file)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-[basename, ext] = strtok(file,'.');
-    
-run(basename);
+if isoctave
+    run(file);
+else
+    [basename, ext] = strtok(file,'.');
+    run(basename);
+end
 
 if exist('INIT__','var')
-    init = dynDate(INIT__);
-    clear('INIT__')
+    if isdate(INIT__)
+        init = dates(INIT__);
+        clear('INIT__')
+    else
+        error('load_m_file_data: INIT__ cannot be interpreted as a date.')
+    end
 else
-    init = dynDate(1);
+    init = dates(1,1); % Default initial date is year one.
 end
 
 if exist('FREQ__','var')
     freq = FREQ__;
     clear('FREQ__');
 else
-    freq = 1;
+    freq = init.freq;
+end
+
+if ~isequal(freq,init.freq)
+    error('load_m_file_data: INIT__ and FREQ__ are not consistent!')
 end
 
 if exist('NAMES__','var')
@@ -144,7 +139,7 @@ end
 %$
 %$ % Check the results.
 %$ t(2) = dyn_assert(freq,4);
-%$ t(3) = dyn_assert(isa(init,'dynDate'),1);
+%$ t(3) = dyn_assert(isa(init,'dates'),1);
 %$ t(4) = dyn_assert(init.freq,4);
 %$ t(5) = dyn_assert(init.time,[1938 4]);
 %$ t(6) = dyn_assert(varlist,{'azert';'yuiop'});
diff --git a/matlab/load_mat_file_data.m b/matlab/load_mat_file_data.m
index 876cb293d8347b143e3612bf9f5a146f98e32de9..fc00a8e688247b4170eba2e13ff62bce415ca57e 100644
--- a/matlab/load_mat_file_data.m
+++ b/matlab/load_mat_file_data.m
@@ -1,36 +1,20 @@
 function [freq,init,data,varlist,tex] = load_mat_file_data(file)
- 
-%@info:
-%! @deftypefn {Function File} {@var{freq}, @var{init}, @var{data}, @var{varlist} =} load_m_file_data (@var{file})
-%! @anchor{load_m_file_data}
-%! @sp 1
-%! Loads data in a matlab/octave mat-file.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item file
-%! string, name of the mat file.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item freq
-%! Scalar integer (1, 4, 12, 52).
-%! @item init
-%! dynDate object, initial date.
-%! @item data
-%! Matrix of doubles, data.
-%! @item varlist
-%! Cell of strings (names of the variables in the database).
-%! @end table
-%! @sp 2
-%! @strong{Remarks}
-%! @sp 1
-%! The frequency and initial date can be specified with variables FREQ__ and INIT__ in the matlab/octave mat file. FREQ__ must be a scalar integer and INIT__ a string like '1938M11', '1945Q3', '1973W3' or '2009'. If these variables are not specified, default values for freq and init are 1 and dynDate(1).
-%! @end deftypefn
-%@eod:
+
+% Loads data in a matlab/octave mat-file.
+%
+% INPUTS 
+%  o file         string, name of the matlab/octave mat file (with path)
+%
+% OUTPUTS 
+%  o freq        integer scalar equal to 1, 4, 12 or 52 (for annual, quaterly, monthly or weekly frequencies).
+%  o init        dates object, initial date in the dataset.
+%  o data        matrix of doubles, the data.
+%  o varlist     cell of strings, names of the variables.
+%
+% REMARKS 
+% The frequency and initial date can be specified with variables FREQ__ and INIT__ in the matlab/octave binary file. FREQ__ must 
+% be a scalar integer and INIT__ a string like '1938M11', '1945Q3', '1973W3' or '2009A'. If these variables are not specified 
+% default values for freq and init are 1 and dates(1,1).
 
 % Copyright (C) 2012-2013 Dynare Team
 %
@@ -52,17 +36,25 @@ function [freq,init,data,varlist,tex] = load_mat_file_data(file)
 datafile = load(file);
 
 if isfield(datafile,'INIT__')
-    init = dynDate(datafile.INIT__);
-    datafile = rmfield(datafile, 'INIT__');
+    if isdate(datafile.INIT__)
+        init = dates(datafile.INIT__);
+        datafile = rmfield(datafile, 'INIT__');
+    else
+        error('load_mat_file_data: INIT__ cannot be interpreted as a date.')
+    end
 else
-    init = dynDate(1);
+    init = dates(1,1);
 end
 
 if isfield(datafile,'FREQ__')
     freq = datafile.FREQ__;
     datafile = rmfield(datafile, 'FREQ__');
 else
-    freq = 1;
+    freq = init.freq;
+end
+
+if ~isequal(freq,init.freq)
+    error('load_mat_file_data: INIT__ and FREQ__ are not consistent!')
 end
 
 if isfield(datafile,'NAMES__')
@@ -116,7 +108,7 @@ end
 %$
 %$ % Check the results.
 %$ t(2) = dyn_assert(freq,12);
-%$ t(3) = dyn_assert(isa(init,'dynDate'),1);
+%$ t(3) = dyn_assert(isa(init,'dates'),1);
 %$ t(4) = dyn_assert(init.freq,12);
 %$ t(5) = dyn_assert(init.time,[1938 11]);
 %$ t(6) = dyn_assert(varlist,{'hagop';'bedros'});
diff --git a/matlab/load_xls_file_data.m b/matlab/load_xls_file_data.m
index 622ac2283fe9e31688b037f9852e94bb0c147bec..0dd11000f15cf0f0a4f69e24ccb2fecc700664a5 100644
--- a/matlab/load_xls_file_data.m
+++ b/matlab/load_xls_file_data.m
@@ -9,7 +9,7 @@ function [freq, init, data, varlist] = load_xls_file_data(file, sheet, range)
 %
 % OUTPUTS 
 %  o freq       integer scalar (1, 4, 12 or 52), code for frequency.
-%  o init       dynDate object, initial date of the sample.
+%  o init       dates object, initial date of the sample.
 %  o data       matrix of doubles, the raw data.
 %  o varlist    cell of strings (column), names of the variables in the database.
 %
@@ -61,6 +61,9 @@ if ~(check_file_extension(file,'xls') || check_file_extension(file,'xlsx'))
 end
 
 % load excel file.
+if isoctave && ~user_has_octave_forge_package('io')
+    error('The io package is required to read XLS/XLSX files from Octave')
+end
 [num,txt,raw] = xlsread(file, sheet, range);
 
 % Get dimensions of num, txt and raw
@@ -89,7 +92,7 @@ end
 
 % Output initialization.
 freq = 1;
-init = dynDate(1);
+init = dates(1,1);
 varlist = [];
 data = num;
 
@@ -100,8 +103,15 @@ if ~notime
     else
         first_date = txt{1,1};
     end
-    init = dynDate(first_date);
-    freq = init.freq;
+    if isnumeric(first_date) && isint(first_date)
+        first_date = [num2str(first_date) 'Y'];
+    end
+    if isdate(first_date)
+        init = dates(first_date);
+        freq = init.freq;
+    else
+        error('load_xls_file_data: I am not able to read the dates!')
+    end
 end
 
 % Update varlist.
diff --git a/matlab/lpdfgbeta.m b/matlab/lpdfgbeta.m
index cb6967f6bcd3ccfcd098524e6e99e542cb35f7fb..e8d8af521d78f7b681675359b1e3ea36cef113f3 100644
--- a/matlab/lpdfgbeta.m
+++ b/matlab/lpdfgbeta.m
@@ -5,8 +5,8 @@ function [ldens,Dldens,D2ldens] = lpdfgbeta(x,a,b,aa,bb);
 %    x     [double]  m*n matrix of loactions,
 %    a     [double]  m*n matrix of First BETA distribution parameters, 
 %    b     [double]  m*n matrix of Second BETA distribution parameters, 
-%    aa    [double]  m*n matrix of lower bounds, 
-%    bb    [double]  m*n matrix of upper bounds. 
+%    aa    [double]  m*n matrix of lower bounds for (generalized) distribution, 
+%    bb    [double]  m*n matrix of upper bounds for (generalized) distribution
 %
 % OUTPUTS 
 %    ldens [double]  m*n matrix of logged (generalized) BETA densities.
diff --git a/matlab/lyapunov_symm.m b/matlab/lyapunov_symm.m
index e23323f77b7634fce692e3004a5e5520d668520f..bb78d3932a64f8586c719c76d828af31232841ce 100644
--- a/matlab/lyapunov_symm.m
+++ b/matlab/lyapunov_symm.m
@@ -85,7 +85,7 @@ if method == 3
     end;
 elseif method == 4
     % works only with Matlab System Control toolbox or octave the control package,
-    if exist('OCTAVE_VERSION')
+    if isoctave
         if ~user_has_octave_forge_package('control')
             error('lyapunov=square_root_solver not available; you must install the control package from Octave Forge')
         end
@@ -104,9 +104,9 @@ qz_criterium = third_argument;
 if method
     persistent U T k n
 else
-    if exist('U','var')
-        clear('U','T','k','n')
-    end
+    %    if exist('U','var')
+    %        clear('U','T','k','n')
+    %    end
 end
 
 u = [];
diff --git a/matlab/make_ex_.m b/matlab/make_ex_.m
index 9665b2a0cb2939ffee8ce6e427441ee4c2a42e8b..ea269c81bfa57498972160a9a6e79ab612f564b0 100644
--- a/matlab/make_ex_.m
+++ b/matlab/make_ex_.m
@@ -12,7 +12,7 @@ function make_ex_()
 % SPECIAL REQUIREMENTS
 %  
 
-% Copyright (C) 1996-2012 Dynare Team
+% Copyright (C) 1996-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,7 +29,7 @@ function make_ex_()
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-global M_ options_ oo_ ex0_ ex_det0_
+global M_ options_ oo_ ex0_
 
 if isempty(oo_.exo_steady_state)
     oo_.exo_steady_state = zeros(M_.exo_nbr,1);
@@ -37,24 +37,37 @@ end
 if M_.exo_det_nbr > 1 && isempty(oo_.exo_det_steady_state)
     oo_.exo_det_steady_state = zeros(M_.exo_det_nbr,1);
 end
-if isempty(oo_.exo_simul)
-    if isempty(ex0_)
-        oo_.exo_simul = repmat(oo_.exo_steady_state',M_.maximum_lag+options_.periods+M_.maximum_lead,1);
-    else
-        oo_.exo_simul = [ repmat(ex0_',M_.maximum_lag,1) ; repmat(oo_.exo_steady_state',options_.periods+M_.maximum_lead,1) ];
-    end
-elseif size(oo_.exo_simul,1) < M_.maximum_lag+M_.maximum_lead+options_.periods
-    oo_.exo_simul = [ oo_.exo_simul ; repmat(oo_.exo_steady_state',M_.maximum_lag+options_.periods+M_.maximum_lead-size(oo_.exo_simul,1),1) ];
+
+% Initialize oo_.exo_simul
+if isempty(ex0_)
+    oo_.exo_simul = repmat(oo_.exo_steady_state',M_.maximum_lag+options_.periods+M_.maximum_lead,1);
+else
+    oo_.exo_simul = [ repmat(ex0_',M_.maximum_lag,1) ; repmat(oo_.exo_steady_state',options_.periods+M_.maximum_lead,1) ];
 end
 
+% Initialize oo_.exo_det_simul
 if M_.exo_det_nbr > 0
-    if isempty(oo_.exo_det_simul)
-        if isempty(ex_det0_)
-            oo_.exo_det_simul = [ones(M_.maximum_lag+options_.periods+M_.maximum_lead,1)*oo_.exo_det_steady_state'];
+    oo_.exo_det_simul = [ones(M_.maximum_lag+options_.periods+M_.maximum_lead,1)*oo_.exo_det_steady_state'];
+end
+
+% Add temporary shocks
+if isfield(M_, 'det_shocks')
+    for i = 1:length(M_.det_shocks)
+        k = M_.det_shocks(i).periods + M_.maximum_lag;
+        ivar = M_.det_shocks(i).exo_id;
+        v = M_.det_shocks(i).value;
+        if ~M_.det_shocks(i).exo_det
+            if ~M_.det_shocks(i).multiplicative
+                oo_.exo_simul(k,ivar) = v;
+            else
+                oo_.exo_simul(k,ivar) = oo_.exo_simul(k,ivar) * v;
+            end
         else
-            oo_.exo_det_simul = [ones(M_.maximum_lag,1)*ex_det0_';ones(options_.periods+M_.maximum_lead,1)*oo_.exo_det_steady_state'];
+            if ~M_.det_shocks(i).multiplicative
+                oo_.exo_det_simul(k,ivar) = v;
+            else
+                oo_.exo_det_simul(k,ivar) = oo_.exo_det_simul(k,ivar) * v;
+            end
         end
-    elseif size(oo_.exo_det_simul,1) < M_.maximum_lag+M_.maximum_lead+options_.periods
-        oo_.exo_det_simul = [oo_.exo_det_simul; ones(M_.maximum_lag+options_.periods+M_.maximum_lead-size(oo_.exo_det_simul,1),1)*oo_.exo_det_steady_state'];
     end
-end
\ No newline at end of file
+end
diff --git a/matlab/make_y_.m b/matlab/make_y_.m
index f7f3a88380f9d7384ea046a264dc5d1ae74747ff..ae8928693a112d4cc1c2dfaf6a66b09a8235595d 100644
--- a/matlab/make_y_.m
+++ b/matlab/make_y_.m
@@ -12,7 +12,7 @@ function make_y_()
 %   none
 %  
 
-% Copyright (C) 1996-2012 Dynare Team
+% Copyright (C) 1996-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -43,14 +43,14 @@ end
 
 if isempty(M_.endo_histval)
     if isempty(ys0_)
-        oo_.endo_simul = [oo_.steady_state*ones(1,M_.maximum_lag+options_.periods+M_.maximum_lead)];
+        oo_.endo_simul = [oo_.steady_state*ones(1,M_.maximum_endo_lag+options_.periods+M_.maximum_endo_lead)];
     else
-        oo_.endo_simul = [ys0_*ones(1,M_.maximum_lag) oo_.steady_state*ones(1,options_.periods+M_.maximum_lead)];
+        oo_.endo_simul = [ys0_*ones(1,M_.maximum_endo_lag) oo_.steady_state*ones(1,options_.periods+M_.maximum_endo_lead)];
     end
 else
     if ~isempty(ys0_)
         error('histval and endval cannot be used simultaneously')
     end
     oo_.endo_simul = [M_.endo_histval ...
-                      oo_.steady_state*ones(1,options_.periods+M_.maximum_lead)];
+                      oo_.steady_state*ones(1,options_.periods+M_.maximum_endo_lead)];
 end
diff --git a/matlab/marginal_density.m b/matlab/marginal_density.m
index 5b30f8298e8e166b3b9211ccc59e298e4d297815..a45fa8eeef4adb24b5d501121e82c5ae613f9c0e 100644
--- a/matlab/marginal_density.m
+++ b/matlab/marginal_density.m
@@ -36,8 +36,11 @@ function [marginal,oo_] = marginal_density(M_, options_, estim_params_, oo_)
 npar = estim_params_.np+estim_params_.nvn+estim_params_.ncx+estim_params_.ncn+estim_params_.nvx;
 nblck = options_.mh_nblck;
 
-MhDirectoryName = CheckPath('metropolis',M_.dname);
-load([ MhDirectoryName '/'  M_.fname '_mh_history.mat'])
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+ModelName = M_.fname;
+BaseName = [MetropolisFolder filesep ModelName];
+
+load_last_mh_history_file(MetropolisFolder, ModelName);
 
 FirstMhFile = record.KeepedDraws.FirstMhFile;
 FirstLine = record.KeepedDraws.FirstLine; ifil = FirstLine;
@@ -46,7 +49,7 @@ TotalNumberOfMhDraws = sum(record.MhDraws(:,1));
 MAX_nruns = ceil(options_.MaxNumberOfBytes/(npar+2)/8);
 TODROP = floor(options_.mh_drop*TotalNumberOfMhDraws);
 
-fprintf('MH: I''m computing the posterior mean and covariance... ');
+fprintf('Estimation::marginal density: I''m computing the posterior mean and covariance... ');
 [posterior_mean,posterior_covariance,posterior_mode,posterior_kernel_at_the_mode] = compute_mh_covariance_matrix();
 
 MU = transpose(posterior_mean);
@@ -56,12 +59,12 @@ xparam1 = posterior_mean;
 hh = inv(SIGMA);
 fprintf(' Done!\n');
 
-%% save the posterior mean and the inverse of the covariance matrix
-%% (usefull if the user wants to perform some computations using
-%% the posterior mean instead of the posterior mode ==> ). 
+% save the posterior mean and the inverse of the covariance matrix
+% (usefull if the user wants to perform some computations using
+% the posterior mean instead of the posterior mode ==> ). 
 save([M_.fname '_mean.mat'],'xparam1','hh','SIGMA');
-skipline()
-disp('MH: I''m computing the posterior log marginal density (modified harmonic mean)... ');
+
+fprintf('Estimation::marginal density: I''m computing the posterior log marginal density (modified harmonic mean)... ');
 detSIGMA = det(SIGMA);
 invSIGMA = inv(SIGMA);
 marginal = zeros(9,2);
@@ -75,7 +78,7 @@ while check_coverage
         tmp = 0;
         for n = FirstMhFile:TotalNumberOfMhFiles
             for b=1:nblck
-                load([ MhDirectoryName '/' M_.fname '_mh' int2str(n) '_blck' int2str(b) '.mat'],'x2','logpo2');
+                load([ BaseName '_mh' int2str(n) '_blck' int2str(b) '.mat'],'x2','logpo2');
                 EndOfFile = size(x2,1);
                 for i = ifil:EndOfFile
                     deviation  = (x2(i,:)-MU)*invSIGMA*(x2(i,:)-MU)';
@@ -94,15 +97,16 @@ while check_coverage
         warning(warning_old_state);
     end
     if abs((marginal(9,2)-marginal(1,2))/marginal(9,2)) > 0.01 || isinf(marginal(1,2))
+        fprintf('\n')
         if increase == 1
-            disp('MH: The support of the weighting density function is not large enough...')
-            disp('MH: I increase the variance of this distribution.')
+            disp('Estimation::marginal density: The support of the weighting density function is not large enough...')
+            disp('Estimation::marginal density: I increase the variance of this distribution.')
             increase = 1.2*increase;
             invSIGMA = inv(SIGMA*increase);
             detSIGMA = det(SIGMA*increase);
             linee    = 0;   
         else
-            disp('MH: Let me try again.')
+            disp('Estimation::marginal density: Let me try again.')
             increase = 1.2*increase;
             invSIGMA = inv(SIGMA*increase);
             detSIGMA = det(SIGMA*increase);
@@ -110,13 +114,13 @@ while check_coverage
             if increase > 20
                 check_coverage = 0;
                 clear invSIGMA detSIGMA increase;
-                disp('MH: There''s probably a problem with the modified harmonic mean estimator.')    
+                disp('Estimation::marginal density: There''s probably a problem with the modified harmonic mean estimator.')    
             end
         end  
     else
         check_coverage = 0;
         clear invSIGMA detSIGMA increase;
-        disp('MH: Modified harmonic mean estimator, done!')
+        fprintf('Done!\n')
     end
 end
 
diff --git a/matlab/matlab_ver_less_than.m b/matlab/matlab_ver_less_than.m
index faec3a5c6f0e17ac0afe30391049f6cfff137907..53dd8d7ef5f6a0b92d0155d4d2b7df903790cee5 100644
--- a/matlab/matlab_ver_less_than.m
+++ b/matlab/matlab_ver_less_than.m
@@ -4,9 +4,6 @@ function r = matlab_ver_less_than(verstr)
 % Returns 1 if current Matlab version is strictly older than
 % the one given in argument.
 %
-% It basically does the same job than verLessThan(), which is
-% only available since Matlab 7.4.
-%
 % Note that this function will fail under Octave.
 %
 % INPUTS
@@ -18,7 +15,7 @@ function r = matlab_ver_less_than(verstr)
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2008-2009 Dynare Team
+% Copyright (C) 2008-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -35,15 +32,4 @@ function r = matlab_ver_less_than(verstr)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-ver_struct = ver('matlab');
-cur_verstr = ver_struct.Version;
-
-r = get_ver_numeric(cur_verstr) < get_ver_numeric(verstr);
-
-
-function x = get_ver_numeric(verstr)
-nums = sscanf(verstr, '%d.%d.%d')';
-if length(nums) < 3
-    nums(3) = 0;
-end
-x = nums * [1; 0.01; 0.0001 ];
+r = verLessThan('matlab', verstr);
diff --git a/matlab/metropolis_draw.m b/matlab/metropolis_draw.m
index 9165047f1199fefe530bee884c3e7a444183ced3..771ba0a43310ddb2542ea04ccd6f005e44425efc 100644
--- a/matlab/metropolis_draw.m
+++ b/matlab/metropolis_draw.m
@@ -30,7 +30,10 @@ function [xparams, logpost]=metropolis_draw(init)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 global options_ estim_params_ M_
-persistent mh_nblck NumberOfDraws fname FirstLine FirstMhFile MAX_nruns
+persistent mh_nblck NumberOfDraws BaseName FirstLine FirstMhFile MAX_nruns
+
+xparams = 0;
+logpost = 0;
 
 if init
     nvx  = estim_params_.nvx;
@@ -39,9 +42,10 @@ if init
     ncn  = estim_params_.ncn;
     np   = estim_params_.np ;
     npar = nvx+nvn+ncx+ncn+np;
-    MhDirectoryName = CheckPath('metropolis',M_.dname);
-    fname = [ MhDirectoryName '/' M_.fname];
-    load([ fname '_mh_history']);
+    MetropolisFolder = CheckPath('metropolis',M_.dname);
+    FileName = M_.fname;
+    BaseName = [MetropolisFolder filesep FileName];
+    load_last_mh_history_file(MetropolisFolder, FileName);
     FirstMhFile = record.KeepedDraws.FirstMhFile;
     FirstLine = record.KeepedDraws.FirstLine; 
     TotalNumberOfMhFiles = sum(record.MhDraws(:,2)); 
@@ -50,6 +54,18 @@ if init
     NumberOfDraws = TotalNumberOfMhDraws-floor(options_.mh_drop*TotalNumberOfMhDraws);
     MAX_nruns = ceil(options_.MaxNumberOfBytes/(npar+2)/8);
     mh_nblck = options_.mh_nblck;
+    % set sub_draws option if empty
+    if isempty(options_.sub_draws)
+        options_.sub_draws = min(options_.posterior_max_subsample_draws, round(.25*NumberOfDraws));
+    else
+        if options_.sub_draws>NumberOfDraws
+            skipline()
+            disp(['Estimation::mcmc: The value of option sub_draws (' num2str(options_.sub_draws) ') is greater than the number of available draws in the MCMC (' num2str(NumberOfDraws) ')!'])
+            disp('Estimation::mcmc: You can either change the value of sub_draws, reduce the value of mh_drop, or run another mcmc (with the load_mh_file option).')
+            skipline()
+            xparams = 1; % xparams is interpreted as an error flag
+        end
+    end
     return
 end
 
@@ -65,6 +81,6 @@ else
     MhLine = DrawNumber-(MhFilNumber-FirstMhFile-1)*MAX_nruns;
 end
 
-load( [ fname '_mh' int2str(MhFilNumber) '_blck' int2str(ChainNumber) '.mat' ],'x2','logpo2');
+load( [ BaseName '_mh' int2str(MhFilNumber) '_blck' int2str(ChainNumber) '.mat' ],'x2','logpo2');
 xparams = x2(MhLine,:);
 logpost= logpo2(MhLine);
\ No newline at end of file
diff --git a/matlab/metropolis_hastings_initialization.m b/matlab/metropolis_hastings_initialization.m
index b90f72130961a4d43f49edd96d22ef644f81634f..8c6ed5a9f6cefcca4c2f5da15304560cf55dc24e 100644
--- a/matlab/metropolis_hastings_initialization.m
+++ b/matlab/metropolis_hastings_initialization.m
@@ -1,4 +1,4 @@
-function [ ix2, ilogpo2, ModelName, MhDirectoryName, fblck, fline, npar, nblck, nruns, NewFile, MAX_nruns, d ] = ...
+function [ ix2, ilogpo2, ModelName, MetropolisFolder, fblck, fline, npar, nblck, nruns, NewFile, MAX_nruns, d ] = ...
     metropolis_hastings_initialization(TargetFun, xparam1, vv, mh_bounds,dataset_,options_,M_,estim_params_,bayestopt_,oo_)
 %function [ ix2, ilogpo2, ModelName, MhDirectoryName, fblck, fline, npar, nblck, nruns, NewFile, MAX_nruns, d ] = 
 %    metropolis_hastings_initialization(TargetFun, xparam1, vv, mh_bounds, dataset_,options_,M_,estim_params_,bayestopt_,oo_)
@@ -43,7 +43,7 @@ function [ ix2, ilogpo2, ModelName, MhDirectoryName, fblck, fline, npar, nblck,
 ix2 = [];
 ilogpo2 = [];
 ModelName = []; 
-MhDirectoryName = [];
+MetropolisFolder = [];
 fblck = [];
 fline = [];
 npar = [];
@@ -54,12 +54,12 @@ MAX_nruns = [];
 d = [];
 
 ModelName = M_.fname;
-
 if ~isempty(M_.bvar)
-    ModelName = [M_.fname '_bvar'];
+    ModelName = [ModelName '_bvar'];
 end
 
-MhDirectoryName = CheckPath('metropolis',M_.dname);
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+BaseName = [MetropolisFolder filesep ModelName];
 
 nblck = options_.mh_nblck;
 nruns = ones(nblck,1)*options_.mh_replic;
@@ -68,26 +68,26 @@ MAX_nruns = ceil(options_.MaxNumberOfBytes/(npar+2)/8);
 d = chol(vv);
 
 if ~options_.load_mh_file && ~options_.mh_recover
-    %% Here we start a new metropolis-hastings, previous draws are not
-    %% considered.
+    % Here we start a new metropolis-hastings, previous draws are discarded.
     if nblck > 1
-        disp('MH: Multiple chains mode.')
+        disp('Estimation::mcmc: Multiple chains mode.')
     else
-        disp('MH: One Chain mode.')
+        disp('Etimation::mcmc: One Chain mode.')
     end
-    %% Delete old mh files...
-    files = dir([ MhDirectoryName '/' ModelName '_mh*_blck*.mat']);
+    % Delete old mh files if any...
+    files = dir([BaseName '_mh*_blck*.mat']);
     if length(files)
-        delete([ MhDirectoryName '/' ModelName '_mh*_blck*.mat']);
-        disp('MH: Old _mh files successfully erased!')
+        delete([BaseName '_mh*_blck*.mat']);
+        disp('Estimation::mcmc: Old mh-files successfully erased!')
     end
-    file = dir([ MhDirectoryName '/metropolis.log']);
+    % Delete old metropolis log file.
+    file = dir([ MetropolisFolder '/metropolis.log']);
     if length(file)
-        delete([ MhDirectoryName '/metropolis.log']);
-        disp('MH: Old metropolis.log file successfully erased!')
-        disp('MH: Creation of a new metropolis.log file.')
+        delete([ MetropolisFolder '/metropolis.log']);
+        disp('Estimation::mcmc: Old metropolis.log file successfully erased!')
+        disp('Estimation::mcmc: Creation of a new metropolis.log file.')
     end
-    fidlog = fopen([MhDirectoryName '/metropolis.log'],'w');
+    fidlog = fopen([MetropolisFolder '/metropolis.log'],'w');
     fprintf(fidlog,'%% MH log file (Dynare).\n');
     fprintf(fidlog,['%% ' datestr(now,0) '.\n']);
     fprintf(fidlog,' \n\n');
@@ -96,10 +96,10 @@ if ~options_.load_mh_file && ~options_.mh_recover
     fprintf(fidlog,['  Number of blocks...............: ' int2str(nblck) '\n']);
     fprintf(fidlog,['  Number of simulations per block: ' int2str(nruns(1)) '\n']);
     fprintf(fidlog,' \n');
-    %% Initial values...
+    % Find initial values for the nblck chains...
     if nblck > 1% Case 1: multiple chains
         fprintf(fidlog,['  Initial values of the parameters:\n']);
-        disp('MH: Searching for initial values...')
+        disp('Estimation::mcmc: Searching for initial values...')
         ix2 = zeros(nblck,npar);
         ilogpo2 = zeros(nblck,1);
         for j=1:nblck
@@ -126,26 +126,26 @@ if ~options_.load_mh_file && ~options_.mh_recover
                 end
                 init_iter = init_iter + 1;
                 if init_iter > 100 && validate == 0
-                    disp(['MH: I couldn''t get a valid initial value in 100 trials.'])
+                    disp(['Estimation::mcmc: I couldn''t get a valid initial value in 100 trials.'])
                     if options_.nointeractive
-                        disp(['MH: I reduce mh_init_scale by ten percent:'])
+                        disp(['Estimation::mcmc: I reduce mh_init_scale by ten percent:'])
                         options_.mh_init_scale = .9*options_.mh_init_scale;
-                        disp(sprintf('MH: Parameter mh_init_scale is now equal to %f.',options_.mh_init_scale))
+                        disp(sprintf('Estimation::mcmc: Parameter mh_init_scale is now equal to %f.',options_.mh_init_scale))
                     else
-                        disp(['MH: You should Reduce mh_init_scale...'])
-                        disp(sprintf('MH: Parameter mh_init_scale is equal to %f.',options_.mh_init_scale))
-                        options_.mh_init_scale = input('MH: Enter a new value...  ');
+                        disp(['Estimation::mcmc: You should Reduce mh_init_scale...'])
+                        disp(sprintf('Estimation::mcmc: Parameter mh_init_scale is equal to %f.',options_.mh_init_scale))
+                        options_.mh_init_scale = input('Estimation::mcmc: Enter a new value...  ');
                     end
                     trial = trial+1;
                 end
             end
             if trial > 10 && ~validate
-                disp(['MH: I''m unable to find a starting value for block ' int2str(j)])
+                disp(['Estimation::mcmc: I''m unable to find a starting value for block ' int2str(j)])
                 return
             end
         end
         fprintf(fidlog,' \n');
-        disp('MH: Initial values found!')
+        disp('Estimation::mcmc: Initial values found!')
         skipline()
     else% Case 2: one chain (we start from the posterior mode)
         fprintf(fidlog,['  Initial values of the parameters:\n']);
@@ -153,7 +153,7 @@ if ~options_.load_mh_file && ~options_.mh_recover
         if all(candidate(:) > mh_bounds(:,1)) && all(candidate(:) < mh_bounds(:,2)) 
             ix2 = candidate;
             ilogpo2 = - feval(TargetFun,ix2',dataset_,options_,M_,estim_params_,bayestopt_,oo_);
-            disp('MH: Initialization at the posterior mode.')
+            disp('Estimation::mcmc: Initialization at the posterior mode.')
             skipline()
             fprintf(fidlog,['    Blck ' int2str(1) 'params:\n']);
             for i=1:length(ix2(1,:))
@@ -161,8 +161,8 @@ if ~options_.load_mh_file && ~options_.mh_recover
             end
             fprintf(fidlog,['    Blck ' int2str(1) 'logpo2:' num2str(ilogpo2) '\n']);
         else
-            disp('MH: Initialization failed...')
-            disp('MH: The posterior mode lies outside the prior bounds.')
+            disp('Estimation::mcmc: Initialization failed...')
+            disp('Estimation::mcmc: The posterior mode lies outside the prior bounds.')
             return
         end
         fprintf(fidlog,' \n');
@@ -171,14 +171,10 @@ if ~options_.load_mh_file && ~options_.mh_recover
     fblck = 1;
     fline = ones(nblck,1);
     NewFile = ones(nblck,1);
-    %%
-    %% Creation of the mh-history file:
-    %%
-    file = dir([MhDirectoryName '/'  ModelName '_mh_history.mat']);
-    if length(file)
-        delete([ MhDirectoryName '/' ModelName '_mh_history.mat']);
-        disp('MH: Old mh_history file successfully erased!')
-    end
+    % Delete the mh-history files
+    delete_mh_history_files(MetropolisFolder, ModelName);
+    %  Create a new record structure
+    fprintf(['Estimation::mcmc: Write details about the MCMC... ']);
     AnticipatedNumberOfFiles = ceil(nruns(1)/MAX_nruns);
     AnticipatedNumberOfLinesInTheLastFile = nruns(1) - (AnticipatedNumberOfFiles-1)*MAX_nruns;
     record.Nblck = nblck;
@@ -186,55 +182,48 @@ if ~options_.load_mh_file && ~options_.mh_recover
     record.MhDraws(1,1) = nruns(1);
     record.MhDraws(1,2) = AnticipatedNumberOfFiles;
     record.MhDraws(1,3) = AnticipatedNumberOfLinesInTheLastFile;
-    record.AcceptationRates = zeros(1,nblck);
-    % separate initializaton for each chain
-    JSUM = 0;
-    for j=1:nblck,
-        % we set a different seed for the random generator for each block
-        % then we record the corresponding random generator state (vector)
+    record.AcceptanceRatio = zeros(1,nblck);
+    for j=1:nblck
+        % we set a different seed for the random generator for each block then we record the corresponding random generator state (vector)
         set_dynare_seed(options_.DynareRandomStreams.seed+j);
-        % record.Seeds keeps a vector of the random generator state and
-        % not the scalar seed despite its name
-        [record.Seeds(j).Unifor,record.Seeds(j).Normal] = get_dynare_random_generator_state();
+        % record.Seeds keeps a vector of the random generator state and not the scalar seed despite its name
+        [record.InitialSeeds(j).Unifor,record.InitialSeeds(j).Normal] = get_dynare_random_generator_state();
     end
     record.InitialParameters = ix2;
-    record.InitialLogLiK = ilogpo2;
+    record.InitialLogPost = ilogpo2;
     record.LastParameters = zeros(nblck,npar);
     record.LastLogPost = zeros(nblck,1);
     record.LastFileNumber = AnticipatedNumberOfFiles ;
     record.LastLineNumber = AnticipatedNumberOfLinesInTheLastFile;
-    save([MhDirectoryName '/' ModelName '_mh_history.mat'],'record');  
+    fprintf('Ok!\n');
+    id = write_mh_history_file(MetropolisFolder, ModelName, record);
+    disp(['Estimation::mcmc: Details about the MCMC are available in ' BaseName '_mh_history_' num2str(id) '.mat'])
+    skipline()
     fprintf(fidlog,['  CREATION OF THE MH HISTORY FILE!\n\n']);
     fprintf(fidlog,['    Expected number of files per block.......: ' int2str(AnticipatedNumberOfFiles) '.\n']);
-    fprintf(fidlog,['    Expected number of lines in the last file: ' ...
-                    int2str(AnticipatedNumberOfLinesInTheLastFile) '.\n']);
+    fprintf(fidlog,['    Expected number of lines in the last file: ' int2str(AnticipatedNumberOfLinesInTheLastFile) '.\n']);
     fprintf(fidlog,['\n']);
     for j = 1:nblck,
-        fprintf(fidlog,['    Initial seed (randn) for chain number ',int2str(j),':\n']);
-        for i=1:length(record.Seeds(j).Normal)
-            fprintf(fidlog,['      ' num2str(record.Seeds(j).Normal(i)') '\n']);
+        fprintf(fidlog,['    Initial state of the Gaussian random number generator for chain number ',int2str(j),':\n']);
+        for i=1:length(record.InitialSeeds(j).Normal)
+            fprintf(fidlog,['      ' num2str(record.InitialSeeds(j).Normal(i)') '\n']);
         end
-        fprintf(fidlog,['    Initial seed (rand) for chain number ',int2str(j),':\n']);
-        for i=1:length(record.Seeds(j).Unifor)
-            fprintf(fidlog,['      ' num2str(record.Seeds(j).Unifor(i)') '\n']);
+        fprintf(fidlog,['    Initial state of the Uniform random number generator for chain number ',int2str(j),':\n']);
+        for i=1:length(record.InitialSeeds(j).Unifor)
+            fprintf(fidlog,['      ' num2str(record.InitialSeeds(j).Unifor(i)') '\n']);
         end
     end,
     fprintf(fidlog,' \n');
     fclose(fidlog);
 elseif options_.load_mh_file && ~options_.mh_recover
-    %% Here we consider previous mh files (previous mh did not crash).
-    disp('MH: I''m loading past metropolis-hastings simulations...')
-    file = dir([ MhDirectoryName '/'  ModelName '_mh_history.mat' ]);
-    files = dir([ MhDirectoryName filesep ModelName '_mh*.mat']);
-    if ~length(files)
-        error('MH:: FAILURE! there is no MH file to load here!')
-    end
-    if ~length(file)
-        error('MH:: FAILURE! there is no MH-history file!')
-    else
-        load([ MhDirectoryName '/'  ModelName '_mh_history.mat'])
+    % Here we consider previous mh files (previous mh did not crash).
+    disp('Estimation::mcmc: I am loading past metropolis-hastings simulations...')
+    load_last_mh_history_file(MetropolisFolder, ModelName);
+    mh_files = dir([ MetropolisFolder filesep ModelName '_mh*.mat']);
+    if ~length(mh_files)
+        error('Estimation::mcmc: I cannot find any MH file to load here!')
     end
-    fidlog = fopen([MhDirectoryName '/metropolis.log'],'a');
+    fidlog = fopen([MetropolisFolder '/metropolis.log'],'a');
     fprintf(fidlog,'\n');
     fprintf(fidlog,['%% Session ' int2str(length(record.MhDraws(:,1))+1) '.\n']);
     fprintf(fidlog,' \n');
@@ -243,27 +232,27 @@ elseif options_.load_mh_file && ~options_.mh_recover
     fprintf(fidlog,' \n');
     past_number_of_blocks = record.Nblck;
     if past_number_of_blocks ~= nblck
-        disp('MH:: The specified number of blocks doesn''t match with the previous number of blocks!')
-        disp(['MH:: You declared ' int2str(nblck) ' blocks, but the previous number of blocks was ' ...
-              int2str(past_number_of_blocks) '.'])
-        disp(['MH:: I will run the Metropolis-Hastings with ' int2str(past_number_of_blocks) ' blocks.' ])
+        disp('Estimation::mcmc: The specified number of blocks doesn''t match with the previous number of blocks!')
+        disp(['Estimation::mcmc: You declared ' int2str(nblck) ' blocks, but the previous number of blocks was ' int2str(past_number_of_blocks) '.'])
+        disp(['Estimation::mcmc: I will run the Metropolis-Hastings with ' int2str(past_number_of_blocks) ' blocks.' ])
         nblck = past_number_of_blocks;
         options_.mh_nblck = nblck;
     end
-    % I read the last line of the last mh-file for initialization 
-    % of the new metropolis-hastings simulations:
+    % I read the last line of the last mh-file for initialization of the new metropolis-hastings simulations:
     LastFileNumber = record.LastFileNumber;
     LastLineNumber = record.LastLineNumber;
     if LastLineNumber < MAX_nruns
         NewFile = ones(nblck,1)*LastFileNumber;
+        fline = ones(nblck,1)*(LastLineNumber+1);
     else
         NewFile = ones(nblck,1)*(LastFileNumber+1);
+        fline = ones(nblck,1);
     end
     ilogpo2 = record.LastLogPost;
     ix2 = record.LastParameters;
     fblck = 1;
-    fline = ones(nblck,1)*(LastLineNumber+1);
     NumberOfPreviousSimulations = sum(record.MhDraws(:,1),1);
+    fprintf('Estimation::mcmc: I am writting a new mh-history file... ');
     record.MhDraws = [record.MhDraws;zeros(1,3)];
     NumberOfDrawsWrittenInThePastLastFile = MAX_nruns - LastLineNumber;
     NumberOfDrawsToBeSaved = nruns(1) - NumberOfDrawsWrittenInThePastLastFile;
@@ -274,21 +263,16 @@ elseif options_.load_mh_file && ~options_.mh_recover
     record.MhDraws(end,1) = nruns(1);
     record.MhDraws(end,2) = AnticipatedNumberOfFiles;
     record.MhDraws(end,3) = AnticipatedNumberOfLinesInTheLastFile;
-    save([MhDirectoryName '/' ModelName '_mh_history.mat'],'record');
-    disp(['MH: ... It''s done. I''ve loaded ' int2str(NumberOfPreviousSimulations) ' simulations.'])
+    record.InitialSeeds = record.LastSeeds;
+    write_mh_history_file(MetropolisFolder, ModelName, record);
+    fprintf('Done.\n')
+    disp(['Estimation::mcmc: Ok. I have loaded ' int2str(NumberOfPreviousSimulations) ' simulations.'])
     skipline()
     fclose(fidlog);
 elseif options_.mh_recover
-    %% The previous metropolis-hastings crashed before the end! I try to
-    %% recover the saved draws...
-    disp('MH: Recover mode!')
-    skipline()
-    file = dir([MhDirectoryName '/'  ModelName '_mh_history.mat']);
-    if ~length(file)
-        error('MH:: FAILURE! there is no MH-history file!')
-    else
-        load([ MhDirectoryName '/'  ModelName '_mh_history.mat'])
-    end
+    % The previous metropolis-hastings crashed before the end! I try to recover the saved draws...
+    disp('Estimation::mcmc: Recover mode!')
+    load_last_mh_history_file(MetropolisFolder, ModelName);
     nblck = record.Nblck;% Number of "parallel" mcmc chains.
     options_.mh_nblck = nblck;
     if size(record.MhDraws,1) == 1
@@ -296,15 +280,15 @@ elseif options_.mh_recover
     else
         OldMh = 1;% The crashed metropolis wasn't the first session.
     end
-    %% Default initialization:
+    % Default initialization:
     if OldMh
         ilogpo2 = record.LastLogPost;
         ix2 = record.LastParameters;
     else
-        ilogpo2 = record.InitialLogLiK;
+        ilogpo2 = record.InitialLogPost;
         ix2 = record.InitialParameters;
     end
-    %% Set NewFile, a nblck*1 vector of integers, and fline (first line), a nblck*1 vector of integers.
+    % Set NewFile, a nblck*1 vector of integers, and fline (first line), a nblck*1 vector of integers.
     if OldMh
         LastLineNumberInThePreviousMh = record.MhDraws(end-1,3);% Number of lines in the last mh files of the previous session.
         LastFileNumberInThePreviousMh = sum(record.MhDraws(1:end-1,2),1);% Number of mh files in the the previous sessions.
@@ -321,50 +305,50 @@ elseif options_.mh_recover
         NewFile = ones(nblck,1);
         fline = ones(nblck,1);
     end
-    %% Set fblck (First block), an integer targeting the crashed mcmc chain.
+    % Set fblck (First block), an integer targeting the crashed mcmc chain.
     fblck = 1;
-    %% How many mh files should we have ?
+    % How many mh files should we have ?
     ExpectedNumberOfMhFilesPerBlock = sum(record.MhDraws(:,2),1);
     ExpectedNumberOfMhFiles = ExpectedNumberOfMhFilesPerBlock*nblck;
-    %% I count the total number of saved mh files...
-    AllMhFiles = dir([MhDirectoryName '/' ModelName '_mh*_blck*.mat']);
+    % I count the total number of saved mh files...
+    AllMhFiles = dir([BaseName '_mh*_blck*.mat']);
     TotalNumberOfMhFiles = length(AllMhFiles);
-    %% And I quit if I can't find a crashed mcmc chain. 
+    % And I quit if I can't find a crashed mcmc chain. 
     if (TotalNumberOfMhFiles==ExpectedNumberOfMhFiles)
-        disp('MH: It appears that you don''t need to use the mh_recover option!')
-        disp('    You have to edit the mod file and remove the mh_recover') 
-        disp('    in the estimation command')
-        error
+        disp('Estimation::mcmc: It appears that you don''t need to use the mh_recover option!')
+        disp('                  You have to edit the mod file and remove the mh_recover option') 
+        disp('                  in the estimation command')
+        error()
     end
-    %% I count the number of saved mh files per block.
+    % I count the number of saved mh files per block.
     NumberOfMhFilesPerBlock = zeros(nblck,1);
     for b = 1:nblck
-        BlckMhFiles = dir([ MhDirectoryName '/' ModelName '_mh*_blck' int2str(b) '.mat']);
+        BlckMhFiles = dir([BaseName '_mh*_blck' int2str(b) '.mat']);
         NumberOfMhFilesPerBlock(b) = length(BlckMhFiles);
     end
-    %% Is there a chain with less mh files than expected ? 
+    % Is there a chain with less mh files than expected ? 
     while fblck <= nblck
         if  NumberOfMhFilesPerBlock(fblck) < ExpectedNumberOfMhFilesPerBlock
-            disp(['MH: Chain ' int2str(fblck) ' is not complete!'])
+            disp(['Estimation::mcmc: Chain ' int2str(fblck) ' is not complete!'])
             break
             % The mh_recover session will start from chain fblck.
         else
-            disp(['MH: Chain ' int2str(fblck) ' is complete!'])
+            disp(['Estimation::mcmc: Chain ' int2str(fblck) ' is complete!'])
         end
         fblck = fblck+1;
     end
-    %% How many mh-files are saved in this block?
+    % How many mh-files are saved in this block?
     NumberOfSavedMhFilesInTheCrashedBlck = NumberOfMhFilesPerBlock(fblck);
-    %% Correct the number of saved mh files if the crashed metropolis was not the first session (so
-    %% that NumberOfSavedMhFilesInTheCrashedBlck is the number of saved mh files in the crashed chain 
-    %% of the current session).  
+    % Correct the number of saved mh files if the crashed metropolis was not the first session (so
+    % that NumberOfSavedMhFilesInTheCrashedBlck is the number of saved mh files in the crashed chain 
+    % of the current session).  
     if OldMh
         NumberOfSavedMhFilesInTheCrashedBlck = NumberOfSavedMhFilesInTheCrashedBlck - LastFileNumberInThePreviousMh;
     end
     NumberOfSavedMhFiles = NumberOfSavedMhFilesInTheCrashedBlck+LastFileNumberInThePreviousMh;
-    %% Correct initial conditions.
+    % Correct initial conditions.
     if NumberOfSavedMhFiles
-        load([MhDirectoryName '/' ModelName '_mh' int2str(NumberOfSavedMhFiles) '_blck' int2str(fblck) '.mat']);
+        load([BaseName '_mh' int2str(NumberOfSavedMhFiles) '_blck' int2str(fblck) '.mat']);
         ilogpo2(fblck) = logpo2(end);
         ix2(fblck,:) = x2(end,:);
     end
diff --git a/matlab/mh_autocorrelation_function.m b/matlab/mh_autocorrelation_function.m
index ff71f38dcd3b4802687bdd1e91ce469a19ee594b..96b4c5875f3b76b824d02fc2edc85647e7ead450 100644
--- a/matlab/mh_autocorrelation_function.m
+++ b/matlab/mh_autocorrelation_function.m
@@ -47,14 +47,8 @@ if isempty(column)
 end
 
 % Get informations about the posterior draws:
-DirectoryName = CheckPath('metropolis',M_.dname);
-try
-    load([DirectoryName '/' M_.fname '_mh_history.mat']); 
-catch
-    disp(['trace_plot:: I can''t find ' M_.fname '_results.mat !'])
-    disp(['trace_plot:: Did you run a metropolis?'])
-    return
-end
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+load_last_mh_history_file(MetropolisFolder, M_.fname);
 
 FirstMhFile = record.KeepedDraws.FirstMhFile;
 FirstLine = record.KeepedDraws.FirstLine; ifil = FirstLine;
diff --git a/matlab/minus_logged_prior_density.m b/matlab/minus_logged_prior_density.m
index 2697a474b9844371bd5493b0a861c59d2e18e68e..0b965b5f93bdef21febafed00939ef03c851fdf3 100644
--- a/matlab/minus_logged_prior_density.m
+++ b/matlab/minus_logged_prior_density.m
@@ -66,34 +66,46 @@ Q = DynareModel.Sigma_e;
 H = DynareModel.H;
 
 % Test if Q is positive definite.
-if EstimatedParams.ncx
+if ~issquare(Q) || EstimatedParams.ncx || isfield(EstimatedParams,'calibrated_covariances')
     % Try to compute the cholesky decomposition of Q (possible iff Q is positive definite)
-    [CholQ,testQ] = chol(Q);
-    if testQ
+    [Q_is_positive_definite, penalty] = ispd(Q);
+    if ~Q_is_positive_definite
         % The variance-covariance matrix of the structural innovations is not definite positive. We have to compute the eigenvalues of this matrix in order to build the endogenous penalty.
-        a = diag(eig(Q));
-        k = find(a < 0);
-        if k > 0
-            fval = objective_function_penalty_base+sum(-a(k));
+        fval = objective_function_penalty_base+penalty;
+        exit_flag = 0;
+        info = 43;
+        return
+    end
+    if isfield(EstimatedParams,'calibrated_covariances')
+        correct_flag=check_consistency_covariances(Q);
+        if ~correct_flag
+            penalty = sum(Q(EstimatedParams.calibrated_covariances.position).^2);
+            fval = objective_function_penalty_base+penalty;
             exit_flag = 0;
-            info = 43;
+            info = 71;
             return
         end
     end
+
 end
 
 % Test if H is positive definite.
-if EstimatedParams.ncn
-    % Try to compute the cholesky decomposition of H (possible iff H is positive definite)
-    [CholH,testH] = chol(H);
-    if testH
+if ~issquare(H) || EstimatedParams.ncn || isfield(EstimatedParams,'calibrated_covariances_ME')
+    [H_is_positive_definite, penalty] = ispd(H);
+    if ~H_is_positive_definite
         % The variance-covariance matrix of the measurement errors is not definite positive. We have to compute the eigenvalues of this matrix in order to build the endogenous penalty.
-        a = diag(eig(H));
-        k = find(a < 0);
-        if k > 0
-            fval = objective_function_penalty_base+sum(-a(k));
+        fval = objective_function_penalty_base+penalty;
+        exit_flag = 0;
+        info = 44;
+        return
+    end
+    if isfield(EstimatedParams,'calibrated_covariances_ME')
+        correct_flag=check_consistency_covariances(H);
+        if ~correct_flag
+            penalty = sum(H(EstimatedParams.calibrated_covariances_ME.position).^2);
+            fval = objective_function_penalty_base+penalty;
             exit_flag = 0;
-            info = 44;
+            info = 72;
             return
         end
     end
diff --git a/matlab/missing/bsxfun/bsxfun.m b/matlab/missing/bsxfun/bsxfun.m
deleted file mode 100644
index ed2f5f2cd1284ba5c4ab500f1b942af253e26028..0000000000000000000000000000000000000000
--- a/matlab/missing/bsxfun/bsxfun.m
+++ /dev/null
@@ -1,53 +0,0 @@
-function C = bsxfun(fun,A,B)
-% (Imperfect) Clone of matlab's bsxfun built-in function.
-
-% Copyright (C) 2010-2011 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-dA = size(A);
-dB = size(B);
-
-dim_correction = length(dA)-length(dB);
-if dim_correction>0
-    dB = [dB,ones(1,dim_correction)];
-elseif dim_correction<0
-    dA = [dA,ones(1,-dim_correction)];
-end
-
-if all(dA==dB)
-    C = fun(A,B);
-else
-    tB = dB<dA;
-    tA = dA<dB;
-    if any(tB)
-        iB = find(tB);
-        if all(dB(iB)==1)
-            B = repmat(B,tB.*dA+~tB);
-        else
-            error('Non-singleton dimensions of the two input arrays must match each other.')
-        end
-    end
-    if any(tA)
-        iA = find(tA);
-        if all(dA(iA)==1)
-            A = repmat(A,tA.*dB+~tA);
-        else
-            error('Non-singleton dimensions of the two input arrays must match each other.')
-        end
-    end
-    C = fun(A,B);
-end
\ No newline at end of file
diff --git a/matlab/reports/@pages/subsasgn.m b/matlab/missing/stats/chi2cdf.m
similarity index 58%
rename from matlab/reports/@pages/subsasgn.m
rename to matlab/missing/stats/chi2cdf.m
index 318b0bd826cfe8bcbc4ab4a2a81dffce2aa6dc01..0a5db98827bbf11c3b6aef6a0244f4911cb1660a 100644
--- a/matlab/reports/@pages/subsasgn.m
+++ b/matlab/missing/stats/chi2cdf.m
@@ -1,5 +1,8 @@
-function B = subsasgn(A, S, V)
-% function B = subsasgn(A, S, V)
+function CDF = chi2cdf(x, n)
+% chi2cdf  CDF of the Chi2 distribution
+%  CDF = chi2cdf(x, n) computes, for each element of X, the
+%  CDF at X of the chi-square distribution with N degrees of freedom.
+% Original file: statistics/distributions/chi2inv.m
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -18,22 +21,17 @@ function B = subsasgn(A, S, V)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-B = A;
-if length(S) > 1
-    for i=1:(length(S)-1)
-        B = subsref(B, S(i));
+if (nargin ~= 2)
+    error ('chi2cdf: you must give two arguments');
+end
+
+if (~isscalar (n))
+    [retval, x, n] = common_size (x, n);
+    if (retval > 0)
+        error ('chi2cdf: x and n must be of common size or scalar');
     end
-    B = subsasgn(B, S(end), V);
-    B = subsasgn(A, S(1:(end-1)), B);
-    return
 end
 
-switch S.type
-    case '()'
-        index = S.subs{:};
-        assert(isnumeric(index));
-        B.objArray(index) = V;
-    otherwise
-        error('@pages.subsasgn: syntax error');
+CDF = gamcdf (x, n / 2, 2);
+
 end
-end
\ No newline at end of file
diff --git a/matlab/missing_DiffuseKalmanSmootherH1_Z.m b/matlab/missing_DiffuseKalmanSmootherH1_Z.m
index ff8c99a0b103fc95693fbbab93229b7d0b49f436..4b501477129347051923fd752f35d45eecc9b75a 100644
--- a/matlab/missing_DiffuseKalmanSmootherH1_Z.m
+++ b/matlab/missing_DiffuseKalmanSmootherH1_Z.m
@@ -177,7 +177,7 @@ while notsteady && t<smpl
         atilde(:,t) = a(:,t) + PZI*v(di,t);
         K(:,di,t)    = T*PZI;
         L(:,:,t)    = T-K(:,di,t)*ZZ;
-        P(:,:,t+1)  = T*P(:,:,t)*T'-T*P(:,:,t)*ZZ'*K(:,di,t)' + QQ;
+		P(:,:,t+1)  = T*P(:,:,t)*L(:,:,t)' + QQ;
     end
     a(:,t+1)    = T*atilde(:,t);
     Pf          = P(:,:,t);
diff --git a/matlab/mode_check.m b/matlab/mode_check.m
index a8e06a32d67c3da03a072f370794f6ed3a79bd9e..786acb7daba832115ce983ca09c089b1b40cf92f 100644
--- a/matlab/mode_check.m
+++ b/matlab/mode_check.m
@@ -168,7 +168,7 @@ for plt = 1:nbplt,
         drawnow
     end
     if DynareOptions.mode_check.nolik==0,
-        if exist('OCTAVE_VERSION'),
+        if isoctave
             axes('outerposition',[0.3 0.93 0.42 0.07],'box','on'),
         else
             axes('position',[0.3 0.01 0.42 0.05],'box','on'),
diff --git a/matlab/model_diagnostics.m b/matlab/model_diagnostics.m
index 06eaf2badd790fce20c4bbe0ad1f22e5ccf18c9f..92122514f145d69ce8774803cb1af13c5cdaa40d 100644
--- a/matlab/model_diagnostics.m
+++ b/matlab/model_diagnostics.m
@@ -40,12 +40,14 @@ endo_names = M.endo_names;
 lead_lag_incidence = M.lead_lag_incidence;
 maximum_endo_lag = M.maximum_endo_lag;
 
+problem_dummy=0;
 %
 % missing variables at the current period
 %
 k = find(lead_lag_incidence(maximum_endo_lag+1,:)==0);
 if ~isempty(k)
-    disp(['The following endogenous variables aren''t present at ' ...
+    problem_dummy=1;
+    disp(['MODEL_DIAGNOSTICS: The following endogenous variables aren''t present at ' ...
           'the current period in the model:'])
     for i=1:length(k)
         disp(endo_names(k(i),:))
@@ -62,22 +64,25 @@ if M.exo_nbr == 0
 end
 
 % check if ys is steady state
+options.debug=1; %locally set debug option to 1
 [dr.ys,params,check1]=evaluate_steady_state(oo.steady_state,M,options,oo,1);
 
 % testing for problem
 if check1(1)
-    disp('model diagnostic can''t obtain the steady state')
+    problem_dummy=1;
+    disp('MODEL_DIAGNOSTICS: The steady state cannot be computed')
     if any(isnan(dr.ys))
-        disp(['model diagnostic obtains a steady state with NaNs'])
+        disp(['MODEL_DIAGNOSTICS: Steady state contains NaNs'])
     end
     if any(isinf(dr.ys))
-        disp(['model diagnostic obtains a steady state with Inf'])
+        disp(['MODEL_DIAGNOSTICS: Steady state contains Inf'])
     end
     return;
 end
 
 if ~isreal(dr.ys)
-    disp(['model diagnostic obtains a steady state with complex ' ...
+    problem_dummy=1;
+    disp(['MODEL_DIAGNOSTICS: Steady state contains complex ' ...
           'numbers'])
     return
 end
@@ -85,6 +90,7 @@ end
 %
 % singular Jacobian of static model
 %
+singularity_problem = 0;
 if ~isfield(M,'block_structure_stat')
     nb = 1;
 else
@@ -105,11 +111,23 @@ for b=1:nb
     else
         [res,jacob]=feval([M.fname '_static'],dr.ys,exo,M.params);
     end
-    rank_jacob = rank(jacob);
+    if any(any(isinf(jacob) | isnan(jacob)))
+        problem_dummy=1;
+        [infrow,infcol]=find(isinf(jacob) | isnan(jacob));
+        fprintf('\nMODEL_DIAGNOSTICS: The Jacobian of the static model contains Inf or NaN. The problem arises from: \n\n')
+        display_problematic_vars_Jacobian(infrow,infcol,M,dr.ys,'static','MODEL_DIAGNOSTICS: ')
+    end
+    try
+        rank_jacob = rank(jacob); %can sometimes fail
+    catch
+        rank_jacob=size(jacob,1);
+    end
     if rank_jacob < size(jacob,1)
-        disp(['model_diagnostic: the Jacobian of the static model is ' ...
+        problem_dummy=1;
+        singularity_problem = 1;
+        disp(['MODEL_DIAGNOSTICS:  The Jacobian of the static model is ' ...
               'singular'])
-        disp(['there is ' num2str(endo_nbr-rank_jacob) ...
+        disp(['MODEL_DIAGNOSTICS:  there is ' num2str(endo_nbr-rank_jacob) ...
               ' colinear relationships between the variables and the equations'])
         ncol = null(jacob);
         n_rel = size(ncol,2);
@@ -143,4 +161,61 @@ for b=1:nb
         end
     end
 end
+    
+if singularity_problem 
+    fprintf('MODEL_DIAGNOSTICS:  The presence of a singularity problem typically indicates that there is one\n')
+    fprintf('MODEL_DIAGNOSTICS:  redundant equation entered in the model block, while another non-redundant equation\n')
+    fprintf('MODEL_DIAGNOSTICS:  is missing. The problem often derives from Walras Law.\n')
+end
+
+%%check dynamic Jacobian
+klen = M.maximum_lag + M.maximum_lead + 1;
+exo_simul = [repmat(oo.exo_steady_state',klen,1) repmat(oo.exo_det_steady_state',klen,1)];
+iyv = M.lead_lag_incidence';
+iyv = iyv(:);
+iyr0 = find(iyv) ;
+it_ = M.maximum_lag + 1;
+z = repmat(dr.ys,1,klen);
+
+if options.order == 1
+    if (options.bytecode)
+        [chck, junk, loc_dr] = bytecode('dynamic','evaluate', z,exo_simul, ...
+                                        M.params, dr.ys, 1);
+        jacobia_ = [loc_dr.g1 loc_dr.g1_x loc_dr.g1_xd];
+    else
+        [junk,jacobia_] = feval([M.fname '_dynamic'],z(iyr0),exo_simul, ...
+                            M.params, dr.ys, it_);
+    end;
+elseif options.order == 2
+    if (options.bytecode)
+        [chck, junk, loc_dr] = bytecode('dynamic','evaluate', z,exo_simul, ...
+                            M.params, dr.ys, 1);
+        jacobia_ = [loc_dr.g1 loc_dr.g1_x];
+    else
+        [junk,jacobia_,hessian1] = feval([M.fname '_dynamic'],z(iyr0),...
+                                         exo_simul, ...
+                                         M.params, dr.ys, it_);
+    end;
+    if options.use_dll
+        % In USE_DLL mode, the hessian is in the 3-column sparse representation
+        hessian1 = sparse(hessian1(:,1), hessian1(:,2), hessian1(:,3), ...
+                          size(jacobia_, 1), size(jacobia_, 2)*size(jacobia_, 2));
+    end
+end
+
+if any(any(isinf(jacobia_) | isnan(jacobia_)))
+    problem_dummy=1;
+    [infrow,infcol]=find(isinf(jacobia_) | isnan(jacobia_));
+    fprintf('\nMODEL_DIAGNOSTICS: The Jacobian of the dynamic model contains Inf or NaN. The problem arises from: \n\n')
+    display_problematic_vars_Jacobian(infrow,infcol,M,dr.ys,'dynamic','MODEL_DIAGNOSTICS: ')
+end
+if exist('hessian1','var')
+    if any(any(isinf(hessian1) | isnan(hessian1)))
+        problem_dummy=1;
+        fprintf('\nMODEL_DIAGNOSTICS: The Hessian of the dynamic model contains Inf or NaN.\n')
+    end
+end
+if problem_dummy==0
+    fprintf('MODEL_DIAGNOSTICS:  No obvious problems with this mod-file were detected.\n')
+end
 
diff --git a/matlab/mr_hessian.m b/matlab/mr_hessian.m
index 9fe04ddad9e2f51b540a4f074a51bd49086bb242..a428a3c92369e62f5d00b2ccf685100cd64f32b5 100644
--- a/matlab/mr_hessian.m
+++ b/matlab/mr_hessian.m
@@ -101,6 +101,7 @@ while i<n
                 h1(i)=2.1*h1(i);
             end
             h1(i) = min(h1(i),0.5*hmax(i));
+            h1(i) = max(h1(i),1.e-10);
             xh1(i)=x(i)+h1(i);
             try
                 [fx, ffx]=feval(func,xh1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults);
diff --git a/matlab/ms-sbvar/check_datafile_years_assigned.m b/matlab/ms-sbvar/check_datafile_years_assigned.m
index 98daa0685728c521431d0bfb56383431c7ff401c..7df9611dc909217610987b5fbde0490856b24481 100644
--- a/matlab/ms-sbvar/check_datafile_years_assigned.m
+++ b/matlab/ms-sbvar/check_datafile_years_assigned.m
@@ -25,18 +25,20 @@ function [final_year,final_subperiod]=check_datafile_years_assigned(options_)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-final_year = [];
-final_subperiod = [];
+final_year = options_.ms.final_year;
+final_subperiod = options_.ms.final_subperiod;
 
 if isempty(options_.ms.initial_year)
     error('Must set initial_year option');
 end
 
-if isempty(options_.ms.final_year)
+if isempty(final_year)
     n = size(options_.data,1);
     freq = options_.ms.freq;
     final_subperiod = mod(options_.ms.initial_subperiod+n-2,freq)+1;
     final_year = options_.ms.initial_year + floor((n-1)/freq);
+elseif isempty(final_subperiod)
+    final_subperiod = options_.ms.freq;
 end
 
 if isempty(options_.datafile)
diff --git a/matlab/ms-sbvar/clean_ms_simulation_files.m b/matlab/ms-sbvar/clean_ms_simulation_files.m
index cccbf3e6dc25cd97a0917ea835771e0b0fd038ed..b6a8078597b37971081ea6eb4c072cd77833995b 100644
--- a/matlab/ms-sbvar/clean_ms_simulation_files.m
+++ b/matlab/ms-sbvar/clean_ms_simulation_files.m
@@ -30,4 +30,6 @@ function clean_ms_simulation_files(file_tag)
 
 delete_if_exists(['simulation_' file_tag '.out']);
 delete_if_exists(['simulation_info_' file_tag '.out']);
+delete_if_exists(['draws_test_' file_tag '.out']);
+delete_if_exists(['draws_header_' file_tag '.out']);
 end
diff --git a/matlab/ms-sbvar/delete_dir_if_exists.m b/matlab/ms-sbvar/delete_dir_if_exists.m
index 89f74085ea31902e8e59d6057a73ccde3f86515a..f24780595421e937b88e0ddc7a5068cfe4a7a591 100644
--- a/matlab/ms-sbvar/delete_dir_if_exists.m
+++ b/matlab/ms-sbvar/delete_dir_if_exists.m
@@ -11,7 +11,7 @@ function delete_dir_if_exists(dirname)
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2011 Dynare Team
+% Copyright (C) 2011-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,6 +29,6 @@ function delete_dir_if_exists(dirname)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if exist(dirname, 'dir')
-    rmdir(dirname,'s');
+    rmdir(dirname, 's');
 end
 end
diff --git a/matlab/ms-sbvar/dyn_save_graph.m b/matlab/ms-sbvar/dyn_save_graph.m
index 355b7f13e7f48dc5a008c7a51417bb2d92cf8aea..612be4960c9b583721c0439922ebfd72b6eafd82 100644
--- a/matlab/ms-sbvar/dyn_save_graph.m
+++ b/matlab/ms-sbvar/dyn_save_graph.m
@@ -44,10 +44,10 @@ function dyn_save_graph(dirname,graph_name,graph_formats,TeX,names,texnames,capt
     if graph_formats.eps || TeX
         print([ graph_name '.eps' ],'-depsc2');
     end
-    if graph_formats.pdf && ~exist(OCTAVE_VERSION)
+    if graph_formats.pdf && ~isoctave
         print(graph_name,'-dpdf');
     end
-    if graph_formats.fig && ~exist(OCTAVE_VERSION)
+    if graph_formats.fig && ~isoctave
         print(graph_name,'-dfig');
     end
     
diff --git a/matlab/ms-sbvar/initialize_ms_sbvar_options.m b/matlab/ms-sbvar/initialize_ms_sbvar_options.m
index 369cbfead92a1e9deebd729341736cd3d88c11ad..61255652b5cc9434bc7e08c25cbb188c6aec11b3 100644
--- a/matlab/ms-sbvar/initialize_ms_sbvar_options.m
+++ b/matlab/ms-sbvar/initialize_ms_sbvar_options.m
@@ -41,7 +41,7 @@ options_.ms.create_init = 1;
 options_.ms.coefficients_prior_hyperparameters = [1.0 1.0 0.1 1.2 1.0 1.0];
 options_.ms.freq = 4;
 options_.ms.initial_subperiod = 1;
-options_.ms.final_subperiod=4;
+options_.ms.final_subperiod = '';
 options_.ms.nlags = 1;
 options_.ms.cross_restrictions = 0;
 options_.ms.contemp_reduced_form = 0;
@@ -73,6 +73,7 @@ options_.ms.mh_replic = 10000; % default differs from Dan's code
 options_.ms.thinning_factor = 1;
 options_.ms.drop = 0.1*options_.ms.mh_replic*options_.ms.thinning_factor;
 options_.ms.adaptive_mh_draws = 30000;
+options_.ms.save_draws = 0;
 % mdd
 options_.ms.proposal_draws = 100000;
 options_.ms.use_mean_center = 0;
diff --git a/matlab/ms-sbvar/load_flat_file.m b/matlab/ms-sbvar/load_flat_file.m
new file mode 100644
index 0000000000000000000000000000000000000000..b9c7f65c78de56b7228ed151a7c3e002f29c38c1
--- /dev/null
+++ b/matlab/ms-sbvar/load_flat_file.m
@@ -0,0 +1,71 @@
+function [Q, A0, Aplus, Zeta] = load_flat_file(file_tag)
+%function [Q, A0, Aplus, Zeta] = load_flat_file(file_tag)
+% Loads file saved by save_draws option of ms_simulation.
+%
+% INPUTS
+%   file_tag:    the file tag used with ms_simulation
+%
+% OUTPUTS
+%   Q:           Q matrix
+%   A0:          A0 matrix
+%   Aplus:       A+ matrix
+%   Zeta:        Zeta matrx
+%
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+Q = [];
+A0 = [];
+Aplus = [];
+Zeta = [];
+
+try
+    headerfid = fopen(['est_flat_header_' file_tag '.out'], 'r');
+catch
+    error(['Can''t find est_flat_header_' file_tag '.out'])
+end
+headerfile=textscan(headerfid, '%s');
+fclose(headerfid);
+flatfile = dlmread(['est_flat_' file_tag '.out'], ' ');
+
+headerfile = headerfile{:};
+for i=1:length(headerfile)
+    line = char(headerfile{i});
+    indob = strfind(line, '[');
+    indcb = strfind(line, ']');
+    indop = strfind(line, '(');
+    indcp = strfind(line, ')');
+    indc  = strfind(line, ',');
+    if isempty(indob)
+        name = line(1:indop-1);
+        dim3 = [];
+    else
+        name = line(1:indob-1);
+        dim3 = line(indob+1:indcb-1);
+    end
+    row = line(indop+1:indc-1);
+    col = line(indc+1:indcp-1);
+
+    if isempty(dim3)
+        eval([name '(' row ',' col ') = ' num2str(flatfile(i)) ';']);
+    else
+        eval([name '(' row ',' col ',' dim3 ') = ' num2str(flatfile(i)) ';']);
+    end
+end
diff --git a/matlab/ms-sbvar/ms_compute_mdd.m b/matlab/ms-sbvar/ms_compute_mdd.m
index ed931a3362a644b88da0d823f9fe04f20e8ff1e1..499baf6a525b7495b6a3d6dd6e4116337d0d1dcc 100644
--- a/matlab/ms-sbvar/ms_compute_mdd.m
+++ b/matlab/ms-sbvar/ms_compute_mdd.m
@@ -14,7 +14,7 @@ function [options_, oo_]=ms_compute_mdd(M_, options_, oo_)
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2011 Dynare Team
+% Copyright (C) 2011-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -75,5 +75,6 @@ if exist(mdd_filename,'file')
     end
     oo_.ms.mueller_log_mdd = muller_mdd;
     oo_.ms.bridged_log_mdd = bridge_mdd;
+    fclose(mdd_fid);
 end
 end
diff --git a/matlab/ms-sbvar/ms_sbvar_setup.m b/matlab/ms-sbvar/ms_sbvar_setup.m
index 1deaa44ebabe46c43e19fcef45767aad4cc7df8f..2d6375a2c920ff9af869eef35ec2057db7041c35 100644
--- a/matlab/ms-sbvar/ms_sbvar_setup.m
+++ b/matlab/ms-sbvar/ms_sbvar_setup.m
@@ -30,11 +30,7 @@ function ms_sbvar_setup(options_)
 
 options_.data = read_variables(options_.datafile, ...
     options_.varobs, [], options_.xls_sheet, options_.xls_range);
-[final_year,final_subperiod] = check_datafile_years_assigned(options_);
-if ~isempty(final_year)
-    options_.ms.final_year = final_year;
-    opions_.ms.final_subperiod = final_subperiod;
-end
+[options_.ms.final_year,options_.ms.final_subperiod] = check_datafile_years_assigned(options_);
 
 if options_.ms.upper_cholesky
     if options_.ms.lower_cholesky
diff --git a/matlab/ms-sbvar/ms_simulation.m b/matlab/ms-sbvar/ms_simulation.m
index a5ffe36cba77b95426135b02079601c06bfe4ffe..04a2e1eea15f2e84ce94ff336a5855b82bc7ba2e 100644
--- a/matlab/ms-sbvar/ms_simulation.m
+++ b/matlab/ms-sbvar/ms_simulation.m
@@ -45,6 +45,10 @@ opt = [opt ' -burnin ' num2str(options_.ms.drop)];
 opt = [opt ' -thin ' num2str(options_.ms.thinning_factor)];
 opt = [opt ' -mh ' num2str(options_.ms.adaptive_mh_draws)];
 
+if options_.ms.save_draws
+    opt = [opt ' -flat '];
+end
+
 % simulation
 [err] = ms_sbvar_command_line(opt);
 mexErrCheck('ms_simulation',err);
diff --git a/matlab/ms-sbvar/plot_ms_variance_decomposition.m b/matlab/ms-sbvar/plot_ms_variance_decomposition.m
index 0188af2ccdbe63cb5236c69b21141ca9b5557f55..7cd30dca84cd97a42f0057343ff9bd7e1b42b955 100644
--- a/matlab/ms-sbvar/plot_ms_variance_decomposition.m
+++ b/matlab/ms-sbvar/plot_ms_variance_decomposition.m
@@ -150,7 +150,7 @@ end
             plot(x(2:end)',steady(:,k), '--k','LineWidth',2.25);
         end
         if k==K
-            if exist('OCTAVE_VERSION')
+            if isoctave
                 legend(shock_names,'Location','SouthOutside');
             else
                 legend(shock_names,'Location','BestOutside','Orientation','horizontal');
diff --git a/matlab/ms-sbvar/sbvar.m b/matlab/ms-sbvar/sbvar.m
index 00762085d5048584efaa049c4675e229d0a3da82..d92d7a6781c8449afd6e91594f7a6ff9ca03937b 100644
--- a/matlab/ms-sbvar/sbvar.m
+++ b/matlab/ms-sbvar/sbvar.m
@@ -34,11 +34,7 @@ function sbvar(M, options)
 
 clean_sbvar_files();
 options.data = read_variables(options.datafile,options.varobs,[],options.xls_sheet,options.xls_range);
-[final_year,final_subperiod] = check_datafile_years_assigned(options);
-if ~isempty(final_year)
-    options.ms.final_year = final_year;
-    opions.ms.final_subperiod = final_subperiod;
-end
+[options.ms.final_year,options.ms.final_subperiod] = check_datafile_years_assigned(options);
 
 if options.forecast == 0
     options.forecast = 4;
diff --git a/matlab/newrat.m b/matlab/newrat.m
index 5b2c7e7d9ecc51cc7c4a4d71ac8ef4395ed13c2f..1df015776643ad76b136b0bc98861c57b9b4d979 100644
--- a/matlab/newrat.m
+++ b/matlab/newrat.m
@@ -122,7 +122,7 @@ while norm(gg)>gtol && check==0 && jit<nit
         fval=fval1;
         x0=x01;
     end
-    if icount==1 || (icount>1 && (fval0(icount-1)-fval0(icount))>1) || ((fval0(icount)-fval)<1.e-2*(gg'*(H*gg))/2 && igibbs),
+%     if icount==1 || (icount>1 && (fval0(icount-1)-fval0(icount))>1) || ((fval0(icount)-fval)<1.e-2*(gg'*(H*gg))/2 && igibbs),
         if length(find(ig))<nx
             ggx=ggx*0;
             ggx(find(ig))=gg(find(ig));
@@ -139,7 +139,7 @@ while norm(gg)>gtol && check==0 && jit<nit
         nig=[nig ig];
         disp('Sequence of univariate steps!!')
         fval=fvala;
-    end
+%     end
     if (fval0(icount)-fval)<ftol && flagit==0
         disp('Try diagonal Hessian')
         ihh=diag(1./(diag(hhg)));
diff --git a/matlab/non_linear_dsge_likelihood.m b/matlab/non_linear_dsge_likelihood.m
index 41ba13fdadd3030982c374d4a0ec59a9be8fb81d..a76d7307524abcb563babe84145be3d69469e179 100644
--- a/matlab/non_linear_dsge_likelihood.m
+++ b/matlab/non_linear_dsge_likelihood.m
@@ -133,6 +133,11 @@ ys              = [];
 trend_coeff     = [];
 exit_flag       = 1;
 
+% Issue an error if loglinear option is used.
+if DynareOptions.loglinear
+    error('non_linear_dsge_likelihood: It is not possible to use a non linear filter with the option loglinear!')
+end
+
 % Set the number of observed variables
 nvobs = DynareDataset.info.nvobs;
 
@@ -163,7 +168,7 @@ Model = set_all_parameters(xparam1,EstimatedParameters,Model);
 Q = Model.Sigma_e;
 H = Model.H;
 
-if ~isscalar(Q) &&  EstimatedParameters.ncx
+if ~issquare(Q) || EstimatedParameters.ncx || isfield(EstimatedParameters,'calibrated_covariances')
     [Q_is_positive_definite, penalty] = ispd(Q);
     if ~Q_is_positive_definite
         fval = objective_function_penalty_base+penalty;
@@ -171,9 +176,20 @@ if ~isscalar(Q) &&  EstimatedParameters.ncx
         info = 43;
         return
     end
+    if isfield(EstimatedParameters,'calibrated_covariances')
+        correct_flag=check_consistency_covariances(Q);
+        if ~correct_flag
+            penalty = sum(Q(EstimatedParameters.calibrated_covariances.position).^2);
+            fval = objective_function_penalty_base+penalty;
+            exit_flag = 0;
+            info = 71;
+            return
+        end
+    end
+
 end
 
-if ~isscalar(H) && EstimatedParameters.ncn
+if ~issquare(H) || EstimatedParameters.ncn || isfield(EstimatedParameters,'calibrated_covariances_ME')
     [H_is_positive_definite, penalty] = ispd(H);
     if ~H_is_positive_definite
         fval = objective_function_penalty_base+penalty;
@@ -181,6 +197,17 @@ if ~isscalar(H) && EstimatedParameters.ncn
         info = 44;
         return
     end
+    if isfield(EstimatedParameters,'calibrated_covariances_ME')
+        correct_flag=check_consistency_covariances(H);
+        if ~correct_flag
+            penalty = sum(H(EstimatedParameters.calibrated_covariances_ME.position).^2);
+            fval = objective_function_penalty_base+penalty;
+            exit_flag = 0;
+            info = 72;
+            return
+        end
+    end
+
 end
 
 %------------------------------------------------------------------------------
@@ -207,11 +234,7 @@ BayesInfo.mf = BayesInfo.mf1;
 if DynareOptions.noconstant
     constant = zeros(nvobs,1);
 else
-    if DynareOptions.loglinear
-        constant = log(SteadyState(BayesInfo.mfys));
-    else
-        constant = SteadyState(BayesInfo.mfys);
-    end
+    constant = SteadyState(BayesInfo.mfys);
 end
 
 % Define the deterministic linear trend of the measurement equation.
diff --git a/matlab/numgrad2.m b/matlab/numgrad2.m
index dc2413cb737a7f8734a24c35c387d10bb6574743..f8057bb94e807e259dfd1cfedf8da538c715c5a5 100644
--- a/matlab/numgrad2.m
+++ b/matlab/numgrad2.m
@@ -1,11 +1,10 @@
 function [g, badg] = numgrad2(fcn,f0,x,epsilon,varargin)
-% function [g badg] = numgrad2(fcn,xvarargin)
 
 % Original file downloaded from:
 % http://sims.princeton.edu/yftp/optimize/mfiles/numgrad.m
 
 % Copyright (C) 1993-2007 Christopher Sims
-% Copyright (C) 2008-2013 Dynare Team
+% Copyright (C) 2008-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
diff --git a/matlab/numgrad3.m b/matlab/numgrad3.m
index f68f99fe342c9740e35c6397e09c939c0dae78cc..b11c1b03936d718f5eea63f2a54fa532b50b9bd5 100644
--- a/matlab/numgrad3.m
+++ b/matlab/numgrad3.m
@@ -1,17 +1,17 @@
-function [g, badg, f0, f1, f2] = numgrad3(fcn,f0,x,epsilon,varargin)
+function [g, badg] = numgrad3(fcn,f0,x,epsilon,varargin)
 % Computes the gradient of the objective function fcn using a three points
 % formula if possible.
 %
 % Adapted from Sims' numgrad routine.
 %
 % See section 25.3.4 in Abramovitz and Stegun (1972, Tenth Printing, December) Handbook of Mathematical Functions.
-% http://www.math.sfu.ca/~cbm/aands/ 
+% http://www.math.sfu.ca/~cbm/aands/
 
 % Original file downloaded from:
 % http://sims.princeton.edu/yftp/optimize/mfiles/numgrad.m
 
 % Copyright (C) 1993-2007 Christopher Sims
-% Copyright (C) 2008-2012 Dynare Team
+% Copyright (C) 2008-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -37,12 +37,12 @@ badg=0;
 
 for i=1:n
     xiold = x(i);
-    x(i) = xiold+h; 
+    x(i) = xiold+h;
     f1 = feval(fcn, x, varargin{:});
     x(i) = xiold-h;
     f2 = feval(fcn, x, varargin{:});
     g0 = (f1-f2)/H;
-    if abs(g0)< 1e15 
+    if abs(g0)< 1e15
         g(i)=g0;
     else
         g(i)=0;
diff --git a/matlab/numgrad3_.m b/matlab/numgrad3_.m
index a4b4e56a6bd60fcbd109efc41b251249eca009a6..61e8710c3bf4fb4bd54a8ac97141c38a07f37c7d 100644
--- a/matlab/numgrad3_.m
+++ b/matlab/numgrad3_.m
@@ -1,17 +1,17 @@
-function [g, badg, f0, f1, f2] = numgrad3_(fcn,f0,x,epsilon,varargin)
+function [g, badg] = numgrad3_(fcn,f0,x,epsilon,varargin)
 % Computes the gradient of the objective function fcn using a three points
 % formula if possible.
 %
 % Adapted from Sims' numgrad routine.
 %
 % See section 25.3.4 in Abramovitz and Stegun (1972, Tenth Printing, December) Handbook of Mathematical Functions.
-% http://www.math.sfu.ca/~cbm/aands/ 
+% http://www.math.sfu.ca/~cbm/aands/
 
 % Original file downloaded from:
 % http://sims.princeton.edu/yftp/optimize/mfiles/numgrad.m
 
 % Copyright (C) 1993-2007 Christopher Sims
-% Copyright (C) 2008-2012 Dynare Team
+% Copyright (C) 2008-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,13 +28,19 @@ function [g, badg, f0, f1, f2] = numgrad3_(fcn,f0,x,epsilon,varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+rescale_step_length = 0;
+
 delta = epsilon;
 n = length(x);
 g = zeros(n,1);
 
 badg = 0;
 
-scale = []; % one(n,1);
+if rescale_step_length
+    scale = [];
+else
+    scale = ones(n,1);
+end
 
 for i=1:n
     xiold = x(i);
@@ -55,7 +61,7 @@ for i=1:n
     else
         g0 = (f1 - f2) / (2*h);
     end
-    if abs(g0)< 1e15 
+    if abs(g0)< 1e15
         g(i) = g0;
     else
         disp('Bad gradient -----------------------------------')
diff --git a/matlab/numgrad5.m b/matlab/numgrad5.m
index a2288fa58efd09fa544d1fc9789db9dbe48e6a68..c31936790b43f52a8027c761591a75a1f6a3c4ee 100644
--- a/matlab/numgrad5.m
+++ b/matlab/numgrad5.m
@@ -1,11 +1,11 @@
-function [g, badg, f0, f1, f2, f3, f4] = numgrad5(fcn,f0,x,epsilon,varargin)
+function [g, badg] = numgrad5(fcn,f0,x,epsilon,varargin)
 % Computes the gradient of the objective function fcn using a five points
 % formula if possible.
 %
 % Adapted from Sims' numgrad.m routine.
 %
 % See section 25.3.6 Abramovitz and Stegun (1972, Tenth Printing, December) Handbook of Mathematical Functions.
-% http://www.math.sfu.ca/~cbm/aands/ 
+% http://www.math.sfu.ca/~cbm/aands/
 %
 % TODO Try Four points formula when cost_flag3=0 or cost_flag4=0.
 
@@ -13,7 +13,7 @@ function [g, badg, f0, f1, f2, f3, f4] = numgrad5(fcn,f0,x,epsilon,varargin)
 % http://sims.princeton.edu/yftp/optimize/mfiles/numgrad.m
 
 % Copyright (C) 1993-2007 Christopher Sims
-% Copyright (C) 2008-2012 Dynare Team
+% Copyright (C) 2008-2014 Dynare Team
 
 % This file is part of Dynare.
 %
@@ -48,7 +48,7 @@ for i=1:n
     x(i) = xiold-2*h;
     f4 = feval(fcn, x, varargin{:});
     g0 = (8*(f1-f2)+f4-f3)/H;
-    if abs(g0)< 1e15 
+    if abs(g0)< 1e15
         g(i) = g0;
     else
         g(i) = 0;
diff --git a/matlab/numgrad5_.m b/matlab/numgrad5_.m
index d64b26232fd776fd2ee982e15aae1bc5906fc9f0..d8395092e12a0f14f615c82da7482294f623f030 100644
--- a/matlab/numgrad5_.m
+++ b/matlab/numgrad5_.m
@@ -1,11 +1,11 @@
-function [g, badg, f0, f1, f2, f3, f4] = numgrad5(fcn,f0,x,epsilon,varargin)
+function [g, badg] = numgrad5(fcn,f0,x,epsilon,varargin)
 % Computes the gradient of the objective function fcn using a five points
 % formula if possible.
 %
 % Adapted from Sims' numgrad.m routine.
 %
 % See section 25.3.6 Abramovitz and Stegun (1972, Tenth Printing, December) Handbook of Mathematical Functions.
-% http://www.math.sfu.ca/~cbm/aands/ 
+% http://www.math.sfu.ca/~cbm/aands/
 %
 % TODO Try Four points formula when cost_flag3=0 or cost_flag4=0.
 
@@ -13,7 +13,7 @@ function [g, badg, f0, f1, f2, f3, f4] = numgrad5(fcn,f0,x,epsilon,varargin)
 % http://sims.princeton.edu/yftp/optimize/mfiles/numgrad.m
 
 % Copyright (C) 1993-2007 Christopher Sims
-% Copyright (C) 2008-2012 Dynare Team
+% Copyright (C) 2008-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -30,12 +30,19 @@ function [g, badg, f0, f1, f2, f3, f4] = numgrad5(fcn,f0,x,epsilon,varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+rescale_step_length = 0;
+
 delta = epsilon;
 n = length(x);
 g = zeros(n,1);
 
 badg = 0;
-scale = []; % ones(n,1);
+
+if rescale_step_length
+    scale = [];
+else
+    scale = ones(n,1);
+end
 
 for i=1:n
     xiold = x(i);
diff --git a/matlab/reports/@elements/end.m b/matlab/options2cell.m
similarity index 55%
rename from matlab/reports/@elements/end.m
rename to matlab/options2cell.m
index c2c136eeb2639a915fafcf7a071ea90a11e6eab6..3ff8ef22741e7e39030dd162f9afde04acd8c8b5 100644
--- a/matlab/reports/@elements/end.m
+++ b/matlab/options2cell.m
@@ -1,19 +1,14 @@
-function lastIndex = end(o, k, n)
-% function lastIndex = end(o, k, n)
-% End keyword
-%
-% INPUTS
-%   o              [elements]  elements object
-%   k              [integer]   index where end appears
-%   n              [integer]   number of indices
+function c = options2cell(o)
+
+% Converts an option structure as a cell of NAME and VALUE pairs.
 %
-% OUTPUTS
-%   lastIndex      [integer]   last elements index
+% INPUTS 
+%  o o       matlab's structure holding a set of options (each field name is the name of an option and the associated content is the value of the option).
 %
-% SPECIAL REQUIREMENTS
-%   none
+% OUTPUTS 
+%  o c       matlab's cell row array of the form {NAME1, VALUE1, NAME2, VALUE2, NAME3, VALUE3, ...}.
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013 Dynare Team.
 %
 % This file is part of Dynare.
 %
@@ -30,6 +25,12 @@ function lastIndex = end(o, k, n)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-assert(k==1 && n==1, '@elements/end: elements only has one dimension');
-lastIndex = numElements(o);
+s = fieldnames(o);
+c = {};
+j = 1; 
+ 
+for i=1:length(s)
+    c(j) = {s{i}}; 
+    c(j+1) = {o.(s{i})}; 
+    j = j+2; 
 end
\ No newline at end of file
diff --git a/matlab/osr.m b/matlab/osr.m
index 325ab943b78525e14106361b1d7cb48cf8b00e1d..d48cd3e679e032ca62931387ea1d44ceca58d0f5 100644
--- a/matlab/osr.m
+++ b/matlab/osr.m
@@ -1,5 +1,26 @@
-function osr(var_list,params,i_var,W)
-
+function osr_res = osr(var_list,params,i_var,W)
+% osr_res = osr(var_list,params,i_var,W)
+%   Wrapper function computing the solution to the optimal simple
+%   rule-problem; calls osr1 for actual computation
+% INPUTS
+%   var_list    [character array]           list of endogenous variables specified
+%                                           after osr1-command (deprecated and not used anymore)
+%   params      [character array]           list of parameter to be chosen in
+%                                           optimal simple rule
+%   i_var       [n_osr_vars by 1 double]    indices of osr-variable in
+%                                           specified in optim_weights in declaration order
+%   W           [M_.endo_nbr by M_.endo_nbr sparse matrix] Weighting matrix for variance of endogenous variables             
+%    
+% OUTPUTS
+%   osr_res:    [structure] results structure containing:
+%    - objective_function [scalar double]   value of the objective
+%                                               function at the optimum
+%    - optim_params       [structure]       parameter values at the optimum 
+% 
+%       
+% SPECIAL REQUIREMENTS
+%   none.
+%  
 % Copyright (C) 2001-2012 Dynare Team
 %
 % This file is part of Dynare.
@@ -37,6 +58,6 @@ end
 skipline()
 disp('OPTIMAL SIMPLE RULE')
 skipline()
-osr1(i_params,i_var,W);
+osr_res = osr1(i_params,i_var,W);
 
 stoch_simul(var_list);
\ No newline at end of file
diff --git a/matlab/osr1.m b/matlab/osr1.m
index 385d0c095907d505e10d8882b4597ab09bb98a22..a8d3931488fec6d9404d0ad59da51dbd1068ea81 100644
--- a/matlab/osr1.m
+++ b/matlab/osr1.m
@@ -1,11 +1,22 @@
-function osr1(i_params,i_var,weights)
+function osr_res = osr1(i_params,i_var,weights)
 % Compute the Optimal Simple Rules
 % INPUTS
 %   i_params                  vector           index of optimizing parameters in M_.params
-%   i_var                     vector           variables indices
+%   i_var                     vector           variables indices in declaration order
 %   weights                   vector           weights in the OSRs
 %
-% Copyright (C) 2005-2013 Dynare Team
+% OUTPUTS
+%   osr_res:    [structure] results structure containing:
+%    - objective_function [scalar double]   value of the objective
+%                                               function at the optimum
+%    - optim_params       [structure]       parameter values at the optimum 
+% 
+% Algorithm:
+% 
+%   Uses Newton-type optimizer csminwel to directly solve quadratic
+%   osr-problem
+% 
+% Copyright (C) 2005-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -40,7 +51,15 @@ if ~ M_.lead_lag_incidence(M_.maximum_lag+1,:) > 0
 end
 
 if M_.maximum_lead == 0
-    error ('Backward or static model: no point in using OSR') ;
+    error ('OSR: Backward or static model: no point in using OSR') ;
+end
+
+if any(any(isinf(weights)))
+    error ('OSR: At least one of the optim_weights is infinite.') ;
+end
+
+if any(isnan(M_.params(i_params)))
+    error ('OSR: At least one of the initial parameter values for osr_params is NaN') ;
 end
 
 exe =zeros(M_.exo_nbr,1);
@@ -50,6 +69,8 @@ oo_.dr = set_state_space(oo_.dr,M_,options_);
 
 np = size(i_params,1);
 t0 = M_.params(i_params);
+
+
 inv_order_var = oo_.dr.inv_order_var;
 
 H0 = 1e-4*eye(np);
@@ -64,19 +85,26 @@ if info~=0
 else
    fprintf('\nOSR: Initial value of the objective function: %g \n\n',loss);
 end
+if isinf(loss)
+   fprintf('\nOSR: The initial value of the objective function is infinite.\n');
+   fprintf('\nOSR: Check whether the unconditional variance of a target variable is infinite\n');
+   fprintf('\nOSR: due to the presence of a unit root.\n');
+   error('OSR: Initial likelihood is infinite')
+end
 
 %%do actual optimization
 [f,p]=csminwel1('osr_obj',t0,H0,[],crit,nit,options_.gradient_method,options_.gradient_epsilon,i_params,...
                 inv_order_var(i_var),weights(i_var,i_var));
-oo_.osr.objective_function = f;
+osr_res.objective_function = f;
+for i=1:length(i_params)
+    osr_res.optim_params.(deblank(M_.param_names(i_params(i),:))) = p(i);
+end
 
 %  options = optimset('fminunc');
 %  options = optimset('display','iter');
 %  [p,f]=fminunc(@osr_obj,t0,options,i_params,...
 %               inv_order_var(i_var),weights(i_var,i_var));
 
-
-
 skipline()
 disp('OPTIMAL VALUE OF THE PARAMETERS:')
 skipline()
@@ -85,6 +113,4 @@ for i=1:np
 end
 disp(sprintf('Objective function : %16.6g\n',f));
 skipline()
-[oo_.dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
-
-% 05/10/03 MJ modified to work with osr.m and give full report
\ No newline at end of file
+[oo_.dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
\ No newline at end of file
diff --git a/matlab/osr_obj.m b/matlab/osr_obj.m
index 0b9ee73a8a46d1b847755a5b72e2d10ce2171720..431a941f7fb9030b9acb6b90bd8c2d328139bf2c 100644
--- a/matlab/osr_obj.m
+++ b/matlab/osr_obj.m
@@ -78,11 +78,11 @@ switch info(1)
   case 20
     loss = 1e8*min(1e3,info(2));
     return
-    otherwise
-  if info(1)~=0
-    loss = 1e8;
-    return;
-  end  
+  otherwise
+    if info(1)~=0
+      loss = 1e8;
+      return;
+    end  
 end
 
 vx = get_variance_of_endogenous_variables(dr,i_var);
diff --git a/matlab/parallel/AnalyseComputationalEnvironment.m b/matlab/parallel/AnalyseComputationalEnvironment.m
index f6dd9e970a436fffac5c5ca5241b6c0310a98bea..8ca50428854359e85df397c0d4e455b52ee84158 100644
--- a/matlab/parallel/AnalyseComputationalEnvironment.m
+++ b/matlab/parallel/AnalyseComputationalEnvironment.m
@@ -366,7 +366,7 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
         StrCommand=([s1,s2,s3,s4,s41,s42,s5,s51,s52,send]);
         
         % Mettere controllo su NbW ...
-        % if exist('OCTAVE_VERSION')
+        % if isoctave
         %     NbW = fprintf(fid,StrCommand, '%s');
         % else
         NbW = fprintf(fid,StrCommand, '%s');
diff --git a/matlab/parallel/GiveCPUnumber.m b/matlab/parallel/GiveCPUnumber.m
index 3176bb1a54df191b20331571858acfde6e6cbd42..2666d97634c4eef4ed6eef738ae24a3d0a1dac71 100644
--- a/matlab/parallel/GiveCPUnumber.m
+++ b/matlab/parallel/GiveCPUnumber.m
@@ -36,7 +36,7 @@ nCPU='';
 if nargin < 2,
 % Determine a specific operating system or software version when necessary
 % for different command (sintax, name, ...).
-Environment=~ispc; %isunix || (~matlab_ver_less_than('7.4') && ismac);
+Environment=~ispc;
 end
 
 switch Environment
diff --git a/matlab/parallel/InitializeComputationalEnvironment.m b/matlab/parallel/InitializeComputationalEnvironment.m
index 22cc49c8303fc0972c72aa74a99fd2029ed68559..02df7aad432c08f154ef490c287b1fcf35cb4f61 100644
--- a/matlab/parallel/InitializeComputationalEnvironment.m
+++ b/matlab/parallel/InitializeComputationalEnvironment.m
@@ -37,7 +37,7 @@ function InitializeComputationalEnvironment()
 % Comment the line 'warning('off');' in order to view the warning message
 % in Octave!
 
-if exist('OCTAVE_VERSION'), 
+if isoctave 
     warning('off');
 end
 
@@ -48,7 +48,7 @@ global options_
 isHybridMatlabOctave = false;
 for j=1:length(options_.parallel),
     if isempty(options_.parallel(j).MatlabOctavePath),
-        if exist('OCTAVE_VERSION')
+        if isoctave
             options_.parallel(j).MatlabOctavePath = 'octave';
         else
             options_.parallel(j).MatlabOctavePath = 'matlab';
@@ -60,7 +60,7 @@ for j=1:length(options_.parallel),
     end
     isHybridMatlabOctave = isHybridMatlabOctave || any(regexpi([options_.parallel(j).MatlabOctavePath], 'octave'));
 end
-isHybridMatlabOctave = isHybridMatlabOctave && ~exist('OCTAVE_VERSION');
+isHybridMatlabOctave = isHybridMatlabOctave && ~isoctave;
 options_.parallel_info.isHybridMatlabOctave = isHybridMatlabOctave;
 if isHybridMatlabOctave,
     % Reset dynare random generator and seed.
diff --git a/matlab/parallel/dynareParallelDir.m b/matlab/parallel/dynareParallelDir.m
index ba31dafe0aeacd3ec9e6367ec8662fcac6fe46dd..daecfe6cd49707b955f7fc1d25ca55987d4d3423 100644
--- a/matlab/parallel/dynareParallelDir.m
+++ b/matlab/parallel/dynareParallelDir.m
@@ -29,14 +29,14 @@ function dirlist = dynareParallelDir(filename,PRCDir,Parallel)
 
 dirlist=[];
 for indPC=1:length(Parallel),
-    if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem), %isunix || (~matlab_ver_less_than('7.4') && ismac),
+    if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem),
         if Parallel(indPC).Local==0,
             if ~isempty(Parallel(indPC).Port),
                 ssh_token = ['-p ',Parallel(indPC).Port];
             else
                 ssh_token = '';
             end
-            if exist('OCTAVE_VERSION') % Patch for peculiar behaviour of ssh-ls under Linux.
+            if isoctave % Patch for peculiar behaviour of ssh-ls under Linux.
                 % It is necessary to capture the ls warning message.
                 % To do it under the ssh protocol it is necessary to redirect the ls message in a text file.
                 % The file is 'OctaveStandardOutputMessage.txt' and it is
@@ -56,7 +56,7 @@ for indPC=1:length(Parallel),
             end
         else
 
-            if exist('OCTAVE_VERSION') % Patch for peculiar behaviour of ls under Linux.
+            if isoctave % Patch for peculiar behaviour of ls under Linux.
                 
                 % It is necessary to capture the ls warning message and properly manage the jolly char '*'!
                 [check ax]=system(['ls ' ,filename, ' 2> OctaveStandardOutputMessage.txt']);
@@ -74,7 +74,7 @@ for indPC=1:length(Parallel),
 
         end
     else
-        if exist('OCTAVE_VERSION'),     % Patch for peculiar behaviour of ls under Windows.
+        if isoctave     % Patch for peculiar behaviour of ls under Windows.
             if Parallel(indPC).Local==0,
                 ax0=dir(['\\',Parallel(indPC).ComputerName,'\',Parallel(indPC).RemoteDrive,'$\',Parallel(indPC).RemoteDirectory,'\',PRCDir,'\',filename]);
             else
diff --git a/matlab/parallel/dynareParallelGetFiles.m b/matlab/parallel/dynareParallelGetFiles.m
index bfffaf97286fb8eec2c03a50efa00a8d09de32ce..bdb6d0143be9ffef0aecf0713e0aa363b9c0f737 100644
--- a/matlab/parallel/dynareParallelGetFiles.m
+++ b/matlab/parallel/dynareParallelGetFiles.m
@@ -35,7 +35,7 @@ NamFileInput0=NamFileInput;
 
 for indPC=1:length(Parallel),
     if Parallel(indPC).Local==0,
-        if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem), %isunix || (~matlab_ver_less_than('7.4') && ismac),
+        if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem),
             if ~isempty(Parallel(indPC).Port),
                 ssh_token = ['-p ',Parallel(indPC).Port];
             else
@@ -54,7 +54,7 @@ for indPC=1:length(Parallel),
             end
             for jfil=1:size(NamFileInput,1),
 
-                if exist('OCTAVE_VERSION') % Patch for peculiar behaviour of ls under Linux.
+                if isoctave % Patch for peculiar behaviour of ls under Linux.
                     % It is necessary to manage the jolly char '*'!
 
                     FindAst=strfind(NamFileInput{jfil,2},'comp_status_random_walk_metropolis_hastings_core*');
diff --git a/matlab/parallel/dynareParallelMkDir.m b/matlab/parallel/dynareParallelMkDir.m
index 7ebde3819ccd531372ffdf26e116a41af182fad0..9e8d7b7de75573706fc875d9a72a64ec3c7cad33 100644
--- a/matlab/parallel/dynareParallelMkDir.m
+++ b/matlab/parallel/dynareParallelMkDir.m
@@ -36,7 +36,7 @@ end
 
 for indPC=1:length(Parallel)
     if Parallel(indPC).Local==0,
-        if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem), %isunix || (~matlab_ver_less_than('7.4') && ismac),
+        if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem),
             if ~isempty(Parallel(indPC).Port),
                 ssh_token = ['-p ',Parallel(indPC).Port];
             else
diff --git a/matlab/parallel/dynareParallelRmDir.m b/matlab/parallel/dynareParallelRmDir.m
index 6322f9b8adce038679128562a1288d0c50d79eb6..fbf7b7790182732813e70f41dcce2d488652593f 100644
--- a/matlab/parallel/dynareParallelRmDir.m
+++ b/matlab/parallel/dynareParallelRmDir.m
@@ -49,6 +49,10 @@ if sum(ok)<7,
     error('The name of the remote tmp folder does not comply the security standards!'),
 end
 
+if isoctave
+    confirm_recursive_rmdir(false, 'local');
+end
+
 for indPC=1:length(Parallel),
     ok(1)=isempty(strfind(Parallel(indPC).RemoteDirectory,'..'));
     if sum(ok)<7,
@@ -64,17 +68,8 @@ for indPC=1:length(Parallel),
             [stat NonServe] = system(['ssh ',ssh_token,' ',Parallel(indPC).UserName,'@',Parallel(indPC).ComputerName,' rm -fr ',Parallel(indPC).RemoteDirectory,'/',PRCDir,]);
             break;
         else
-            if exist('OCTAVE_VERSION'), % Patch for peculiar behaviour of rmdir under Windows.
-                                        % It is necessary because the command rmdir always ask at the user to confirm your decision before
-                                        % deleting a directory: this stops the computation! The Octave native function 'confirm_recursive_rmdir'
-                                        % disable this mechanism.
-                val = confirm_recursive_rmdir (false);
-                [stat, mess, id] = rmdir(['\\',Parallel(indPC).ComputerName,'\',Parallel(indPC).RemoteDrive,'$\',Parallel(indPC).RemoteDirectory,'\',PRCDir],'s');
-                
-            else
-                [stat, mess, id] = rmdir(['\\',Parallel(indPC).ComputerName,'\',Parallel(indPC).RemoteDrive,'$\',Parallel(indPC).RemoteDirectory,'\',PRCDir],'s');
-            end
-            
+            [stat, mess, id] = rmdir(['\\',Parallel(indPC).ComputerName,'\',Parallel(indPC).RemoteDrive,'$\',Parallel(indPC).RemoteDirectory,'\',PRCDir],'s');
+
             if stat==1,
                 break,
             else
diff --git a/matlab/parallel/dynareParallelSendFiles.m b/matlab/parallel/dynareParallelSendFiles.m
index b1dc9cc2896113d95d5aa80e4391e5957d3e953a..6f7e645f55fa916888713603587c8b44f1a627a6 100644
--- a/matlab/parallel/dynareParallelSendFiles.m
+++ b/matlab/parallel/dynareParallelSendFiles.m
@@ -41,7 +41,7 @@ end
 
 for indPC=1:length(Parallel),
     if Parallel(indPC).Local==0,
-        if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem), %isunix || (~matlab_ver_less_than('7.4') && ismac),
+        if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem),
             if ~isempty(Parallel(indPC).Port),
                 ssh_token = ['-p ',Parallel(indPC).Port];
             else
@@ -63,7 +63,7 @@ for indPC=1:length(Parallel),
                 if ~isempty(NamFileInput{jfil,1})
                     if isempty(dynareParallelDir(NamFileInput{jfil,1},PRCDir,Parallel(indPC)))
                         
-                        if exist('OCTAVE_VERSION') % Patch for peculiar behaviour of mkdir under Windows.
+                        if isoctave % Patch for peculiar behaviour of mkdir under Windows.
                             
                             % It is Necessary because Octave is not able to
                             % create two nested directory at the same time.
@@ -89,7 +89,7 @@ for indPC=1:length(Parallel),
                     end
                 end
                 
-                if exist('OCTAVE_VERSION') % Patch for peculiar behaviour copyfile ls under Windows.
+                if isoctave % Patch for peculiar behaviour copyfile ls under Windows.
                     
                     % It is Necessary because Octave is not able to
                     % use the jolly char '*' with copyfile.
diff --git a/matlab/parallel/masterParallel.m b/matlab/parallel/masterParallel.m
index 1b64b5ba1ec33a02b767cc24fc41054860584298..6b218310ec72116eb23ea91e2d125303bc981097 100644
--- a/matlab/parallel/masterParallel.m
+++ b/matlab/parallel/masterParallel.m
@@ -110,13 +110,13 @@ end
 % Comment the line 'warning('off');' in order to view the warning messages
 % in Octave!
 
-if exist('OCTAVE_VERSION'),
+if isoctave
     warning('off');
 end
 
 % check if there are function_handles in the input or global vars when
 % octave is used
-if isHybridMatlabOctave || exist('OCTAVE_VERSION'),
+if isHybridMatlabOctave || isoctave
     fInputNames = fieldnames(fInputVar);
     for j=1:length(fInputNames),
         TargetVar = fInputVar.(fInputNames{j});
@@ -147,7 +147,7 @@ end
 
 DyMo=pwd;
 % fInputVar.DyMo=DyMo;
-if ispc, % ~(isunix || (~matlab_ver_less_than('7.4') && ismac)) ,
+if ispc,
     [tempo, MasterName]=system('hostname');
     MasterName=deblank(MasterName);
 end
@@ -499,12 +499,12 @@ if Strategy==0 || newInstance, % See above.
     PRCDirSnapshotInit = PRCDirSnapshot;
     
     % Run the slaves.
-    if  ~ispc, %isunix || (~matlab_ver_less_than('7.4') && ismac),
+    if  ~ispc,
         system('sh ConcurrentCommand1.bat &');
         pause(1)
     else
         
-        if exist('OCTAVE_VERSION')
+        if isoctave
             % Redirect the standard output to the file 'OctaveStandardOutputMessage.txt'!
             % This file is saved in the Model directory.
             system('ConcurrentCommand1.bat > OctaveStandardOutputMessage.txt');
@@ -523,9 +523,9 @@ global options_
 
 % Create a parallel (local/remote) specialized computational status bars!
 
-if exist('OCTAVE_VERSION') || (options_.console_mode == 1),
+if isoctave || options_.console_mode
     diary off;
-    if exist('OCTAVE_VERSION')
+    if isoctave
         printf('\n');
     else
         fprintf('\n');
@@ -575,9 +575,9 @@ idCPU = NaN(1,totCPU);
 
 % Caption for console mode computing ...
 
-if (options_.console_mode == 1) ||  exist('OCTAVE_VERSION')
+if options_.console_mode ||  isoctave
     
-    if ~exist('OCTAVE_VERSION')
+    if ~isoctave
         if strcmpi([Parallel(indPC).MatlabOctavePath], 'octave')
             RjInformation='Hybrid Computing Is Active: Remote jobs are computed by Octave!';
             fprintf([RjInformation,'\n\n']);
@@ -607,7 +607,7 @@ if (options_.console_mode == 1) ||  exist('OCTAVE_VERSION')
     fnameTemp(L)='';
     
     Information=['Parallel ' fnameTemp ' Computing ...'];
-    if exist('OCTAVE_VERSION')
+    if isoctave
         if (~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem)) && (Strategy==0)
             printf('\n');
             pause(2);
@@ -660,7 +660,7 @@ while (ForEver)
             end
             pcerdone(j) = prtfrc;
             idCPU(j) = njob;
-            if exist('OCTAVE_VERSION') || (options_.console_mode == 1),
+            if isoctave || options_.console_mode
                 if (~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem))
                     statusString = [statusString, int2str(j), ' %3.f%% done! '];
                 else
@@ -672,7 +672,7 @@ while (ForEver)
             end
         catch % ME
             % To define!
-            if exist('OCTAVE_VERSION') || (options_.console_mode == 1),
+            if isoctave || options_.console_mode
                 if (~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem))
                     statusString = [statusString, int2str(j), ' %3.f%% done! '];
                 else
@@ -681,15 +681,14 @@ while (ForEver)
             end
         end
     end
-    if exist('OCTAVE_VERSION') || (options_.console_mode == 1),
-        if exist('OCTAVE_VERSION')
+    if isoctave || options_.console_mode
+        if isoctave
             printf([statusString,'\r'], 100 .* pcerdone);
         else
             if ~isempty(statusString)
                 fprintf([statusString0,statusString], 100 .* pcerdone);
             end
         end
-        
     else
         for j=1:totCPU,
             try
@@ -705,7 +704,7 @@ while (ForEver)
     % 1. The files .log and .txt are not copied.
     % 2. The comp_status_*.mat files are managed separately.
     
-    if exist('OCTAVE_VERSION'), % to avoid synchronism problems
+    if isoctave % to avoid synchronism problems
         try
             PRCDirSnapshot=dynareParallelGetNewFiles(PRCDir,Parallel(1:totSlaves),PRCDirSnapshot);
         catch
@@ -729,8 +728,8 @@ while (ForEver)
         
         if HoTuttiGliOutput==totCPU,
             mydelete(['comp_status_',fname,'*.mat']);
-            if exist('OCTAVE_VERSION')|| (options_.console_mode == 1),
-                if exist('OCTAVE_VERSION')
+            if isoctave || options_.console_mode
+                if isoctave
                     printf('\n');
                     printf(['End Parallel Session ....','\n\n']);
                 else
diff --git a/matlab/partial_information/PI_gensys.m b/matlab/partial_information/PI_gensys.m
index de63ba9a0e59fa4825b2ff9a9103091811b6f081..c46d45d0729af627efd2ffbc1ffac8728cd6c480 100644
--- a/matlab/partial_information/PI_gensys.m
+++ b/matlab/partial_information/PI_gensys.m
@@ -180,7 +180,7 @@ try
     % In Octave: [aa bb q z v w] = qz(a,b) s.t. q'az = aa, q'bz=bb %
     % and qzcomplex() extension based on lapack zgges produces same 
     % qz output for Octave as Matlab qz() does for Matlab thus:
-    if exist('OCTAVE_VERSION')
+    if isoctave
         [a b q z]=qzcomplex(G0pi,G1pi);
         q=q';
     else
diff --git a/matlab/add_auxiliary_variables_to_steadystate.m b/matlab/partial_information/add_auxiliary_variables_to_steadystate.m
similarity index 100%
rename from matlab/add_auxiliary_variables_to_steadystate.m
rename to matlab/partial_information/add_auxiliary_variables_to_steadystate.m
diff --git a/matlab/perfect_foresight_setup.m b/matlab/perfect_foresight_setup.m
new file mode 100644
index 0000000000000000000000000000000000000000..da03d46a68cf949e19f3ab7b3c32253d12ab5ae2
--- /dev/null
+++ b/matlab/perfect_foresight_setup.m
@@ -0,0 +1,53 @@
+function perfect_foresight_setup()
+% Prepares a deterministic simulation, by filling oo_.exo_simul and oo_.endo_simul
+%  
+% INPUTS
+%   None
+%  
+% OUTPUTS
+%   none
+%    
+% ALGORITHM
+%   
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 1996-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+global M_ options_ oo_
+
+test_for_deep_parameters_calibration(M_);
+
+if size(M_.lead_lag_incidence,2)-nnz(M_.lead_lag_incidence(M_.maximum_endo_lag+1,:)) > 0
+    mess = ['PERFECT_FORESIGHT_SETUP: error in model specification : variable ' M_.endo_names(find(M_.lead_lag_incidence(M_.maximum_lag+1,:)==0),:)];
+    mess = [mess ' doesn''t appear as current variable.'];
+    error(mess)
+end
+
+if options_.periods == 0
+    error('PERFECT_FORESIGHT_SETUP: number of periods for the simulation isn''t specified')
+end
+
+if ~options_.initval_file
+    if isempty(options_.datafile)
+        make_ex_;
+        make_y_;
+    else
+        read_data_;
+    end
+end
diff --git a/matlab/perfect_foresight_simulation.m b/matlab/perfect_foresight_simulation.m
index 17d253a91901cb474a508e9410eddd33e3db1086..ffef743edff31a71a08448c6025eab55086b76b3 100644
--- a/matlab/perfect_foresight_simulation.m
+++ b/matlab/perfect_foresight_simulation.m
@@ -93,14 +93,14 @@ it_init = M_.maximum_lag+1;
 info.convergence = 1;
 info.time  = 0;
 info.error = 0;
-info.iterations.time  = zeros(options_.maxit_,1);
+info.iterations.time  = zeros(options_.simul.maxit,1);
 info.iterations.error = info.iterations.time;
 
-last_line = options_.maxit_;
+last_line = options_.simul.maxit;
 error_growth = 0;
 
 h1 = clock;
-for iter = 1:options_.maxit_
+for iter = 1:options_.simul.maxit
     h2 = clock;
     if options_.terminal_condition
         c = zeros(ny*(periods+1),nrc);
diff --git a/matlab/perfect_foresight_solver.m b/matlab/perfect_foresight_solver.m
new file mode 100644
index 0000000000000000000000000000000000000000..9c80f0e91a74246eb9cf9dceb28e8d3c5fc4667c
--- /dev/null
+++ b/matlab/perfect_foresight_solver.m
@@ -0,0 +1,195 @@
+function perfect_foresight_solver()
+% Computes deterministic simulations
+%  
+% INPUTS
+%   None
+%  
+% OUTPUTS
+%   none
+%    
+% ALGORITHM
+%   
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 1996-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+global M_ options_ oo_
+
+if options_.stack_solve_algo < 0 || options_.stack_solve_algo > 6
+    error('PERFECT_FORESIGHT_SOLVER: stack_solve_algo must be between 0 and 6')
+end
+
+if ~options_.block && ~options_.bytecode && options_.stack_solve_algo ~= 0 ...
+        && options_.stack_solve_algo ~= 6
+    error('PERFECT_FORESIGHT_SOLVER: you must use stack_solve_algo=0 or stack_solve_algo=6 when not using block nor bytecode option')
+end
+
+if options_.block && ~options_.bytecode && options_.stack_solve_algo == 5
+    error('PERFECT_FORESIGHT_SOLVER: you can''t use stack_solve_algo = 5 without bytecode option')
+end
+
+if (options_.block || options_.bytecode) && options_.stack_solve_algo == 6
+    error('PERFECT_FORESIGHT_SOLVER: you can''t use stack_solve_algo = 6 with block or bytecode option')
+end
+
+if isoctave && options_.stack_solve_algo == 2
+    error('PERFECT_FORESIGHT_SOLVER: you can''t use stack_solve_algo = 2 under Octave')
+end
+
+
+if isempty(oo_.endo_simul) || any(size(oo_.endo_simul) ~= [ M_.endo_nbr, M_.maximum_endo_lag+options_.periods+M_.maximum_endo_lead ])
+    error('PERFECT_FORESIGHT_SOLVER: ''oo_.endo_simul'' has wrong size. Did you run ''perfect_foresight_setup'' ?')
+end
+
+if isempty(oo_.exo_simul) || any(size(oo_.exo_simul) ~= [ M_.maximum_lag+options_.periods+M_.maximum_lead, M_.exo_nbr ])
+    error('PERFECT_FORESIGHT_SOLVER: ''oo_.exo_simul'' has wrong size. Did you run ''perfect_foresight_setup'' ?')
+end
+
+
+if isempty(options_.scalv) || options_.scalv == 0
+    options_.scalv = oo_.steady_state;
+end
+
+options_.scalv= 1;
+
+if options_.debug
+    model_static = str2func([M_.fname,'_static']);
+    for ii=1:size(oo_.exo_simul,1)
+        [residual(:,ii)] = model_static(oo_.steady_state, oo_.exo_simul(ii,:),M_.params);
+    end
+    problematic_periods=find(any(isinf(residual)) | any(isnan(residual)))-M_.maximum_endo_lag;
+    if ~isempty(problematic_periods) 
+        period_string=num2str(problematic_periods(1));
+        for ii=2:length(problematic_periods)
+            period_string=[period_string, ', ', num2str(problematic_periods(ii))];
+        end
+        fprintf('\n\nWARNING: Value for the exogenous variable(s) in period(s) %s inconsistent with the static model.\n',period_string);   
+        fprintf('WARNING: Check for division by 0.\n')
+    end
+end
+
+% Effectively compute simulation, possibly with homotopy
+if options_.no_homotopy
+    simulation_core;
+else
+    exosim = oo_.exo_simul;
+    exoinit = repmat(oo_.exo_steady_state',M_.maximum_lag+options_.periods+M_.maximum_lead,1);
+    endosim = oo_.endo_simul;
+    endoinit = repmat(oo_.steady_state, 1,M_.maximum_endo_lag+options_.periods+M_.maximum_endo_lead);
+
+    current_weight = 0; % Current weight of target point in convex combination
+    step = 1;
+    success_counter = 0;
+
+    while (step > options_.dynatol.x)
+
+        new_weight = current_weight + step; % Try this weight, and see if it succeeds
+        if new_weight >= 1
+            new_weight = 1; % Don't go beyond target point
+            step = new_weight - current_weight;
+        end
+
+        % Compute convex combination for exo path and initial/terminal endo conditions
+        % But take care of not overwriting the computed part of oo_.endo_simul
+        oo_.exo_simul = exosim*new_weight + exoinit*(1-new_weight);
+        endocombi = endosim*new_weight + endoinit*(1-new_weight);
+        oo_.endo_simul(:,1:M_.maximum_endo_lag) = endocombi(:,1:M_.maximum_endo_lag);
+        oo_.endo_simul(:,(end-M_.maximum_endo_lead):end) = endocombi(:,(end-M_.maximum_endo_lead):end);
+
+        saved_endo_simul = oo_.endo_simul;
+
+        simulation_core;
+
+        if oo_.deterministic_simulation.status == 1
+            current_weight = new_weight;
+            if current_weight >= 1
+                break
+            end
+            success_counter = success_counter + 1;
+            if success_counter >= 3
+                success_counter = 0;
+                step = step * 2;
+                disp([ 'Homotopy step succeeded, doubling step size (completed ' sprintf('%.1f', current_weight*100) '%, step size ' sprintf('%.3g', step) ')' ])
+            else
+                disp([ 'Homotopy step succeeded (completed ' sprintf('%.1f', current_weight*100) '%, step size ' sprintf('%.3g', step) ')' ])
+            end
+        else
+            oo_.endo_simul = saved_endo_simul;
+            success_counter = 0;
+            step = step / 2;
+            disp([ 'Homotopy step failed, halving step size (completed ' sprintf('%.1f', current_weight*100) '%, step size ' sprintf('%.3g', step) ')' ])
+        end
+    end
+end
+
+if oo_.deterministic_simulation.status == 1
+    disp('Perfect foresight solution found.')
+else
+    disp('Failed to solve perfect foresight model')
+end
+
+dyn2vec;
+
+ts = dseries(transpose(oo_.endo_simul),options_.initial_period,cellstr(M_.endo_names));
+assignin('base', 'Simulated_time_series', ts);
+
+end
+
+
+function simulation_core()
+
+global M_ oo_ options_
+
+if(options_.block)
+    if(options_.bytecode)
+        [info, oo_.endo_simul] = bytecode('dynamic');
+        if info == 1
+            oo_.deterministic_simulation.status = 0;
+        else
+            oo_.deterministic_simulation.status = 1;
+        end
+        mexErrCheck('bytecode', info);
+    else
+        eval([M_.fname '_dynamic']);
+    end
+else
+    if(options_.bytecode)
+        [info, oo_.endo_simul]=bytecode('dynamic');
+        if info == 1
+            oo_.deterministic_simulation.status = 0;
+        else
+            oo_.deterministic_simulation.status = 1;
+        end;
+        mexErrCheck('bytecode', info);
+    else
+        if M_.maximum_endo_lead == 0 % Purely backward model
+            sim1_purely_backward;
+        elseif M_.maximum_endo_lag == 0 % Purely forward model
+            sim1_purely_forward;
+        else % General case
+            if options_.stack_solve_algo == 0
+                sim1;
+            else % stack_solve_algo = 6
+                sim1_lbj;
+            end
+        end
+    end
+end
+
+end
diff --git a/matlab/plot_icforecast.m b/matlab/plot_icforecast.m
index 6284769fa684a13c5b7c52d2c28c407c5970b2fe..84db7297b1e21c7f243cf7ebc956b81fb97c953c 100644
--- a/matlab/plot_icforecast.m
+++ b/matlab/plot_icforecast.m
@@ -27,7 +27,7 @@ function plot_icforecast(Variables,periods,options_)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if exist('OCTAVE_VERSION') && octave_ver_less_than('3.4.0')
+if isoctave && octave_ver_less_than('3.4.0')
     % The set() command on the handle returned by area() crashes in Octave 3.2
     error('plot_conditional_forecast: you need Octave >= 3.4 (because of a bug in older versions)')
 end
diff --git a/matlab/plot_identification.m b/matlab/plot_identification.m
index 278133ce76c5988cab30976164c65e3f0cf27ec3..4f9fcf98ac362410d2abc9157c68853aa7705276 100644
--- a/matlab/plot_identification.m
+++ b/matlab/plot_identification.m
@@ -153,9 +153,9 @@ if SampleSize == 1,
             dyn_saveas(hh,[ IdentifDirectoryName '/' M_.fname '_ident_collinearity_' tittxt1 '_' int2str(j) ],options_);
         end
         skipline()
+        [U,S,V]=svd(idehess.AHess,0);
+        S=diag(S);
         if idehess.flag_score,
-            [U,S,V]=svd(idehess.AHess,0);
-            S=diag(S);
             if nparam<5,
                 f1 = dyn_figure(options_,'Name',[tittxt,' - Identification patterns (Information matrix)']);
             else
@@ -163,13 +163,13 @@ if SampleSize == 1,
                 f2 = dyn_figure(options_,'Name',[tittxt,' - Identification patterns (Information matrix): HIGHEST SV']);
             end
         else
-            S = idemoments.S;
-            V = idemoments.V;
+%             S = idemoments.S;
+%             V = idemoments.V;
             if nparam<5,
-                f1 = dyn_figure(options_,'Name',[tittxt,' - Identification patterns (moments)']);
+                f1 = dyn_figure(options_,'Name',[tittxt,' - Identification patterns (moments Information matrix)']);
             else
-                f1 = dyn_figure(options_,'Name',[tittxt,' - Identification patterns (moments): SMALLEST SV']);
-                f2 = dyn_figure(options_,'Name',[tittxt,' - Identification patterns (moments): HIGHEST SV']);
+                f1 = dyn_figure(options_,'Name',[tittxt,' - Identification patterns (moments Information matrix): SMALLEST SV']);
+                f2 = dyn_figure(options_,'Name',[tittxt,' - Identification patterns (moments Information matrix): HIGHEST SV']);
             end
         end
         for j=1:min(nparam,8),
@@ -249,11 +249,11 @@ else
         dyn_saveas(hh,[IdentifDirectoryName '/' M_.fname '_ident_COND' ],options_);
         ncut=floor(SampleSize/10*9);
         [dum,is]=sort(idelre.cond);
-        [proba, dproba] = stab_map_1(params, is(1:ncut), is(ncut+1:end), 'MC_HighestCondNumberLRE', 1, [], IdentifDirectoryName, 0.1);
+        [proba, dproba] = stab_map_1(params, is(1:ncut), is(ncut+1:end), 'MC_HighestCondNumberLRE', 1, [], IdentifDirectoryName, 0.1,'MC Highest Condition Number LRE Model');
         [dum,is]=sort(idemodel.cond);
-        [proba, dproba] = stab_map_1(params, is(1:ncut), is(ncut+1:end), 'MC_HighestCondNumberModel', 1, [], IdentifDirectoryName, 0.1);
+        [proba, dproba] = stab_map_1(params, is(1:ncut), is(ncut+1:end), 'MC_HighestCondNumberModel', 1, [], IdentifDirectoryName, 0.1,'MC Highest Condition Number Model Solution');
         [dum,is]=sort(idemoments.cond);
-        [proba, dproba] = stab_map_1(params, is(1:ncut), is(ncut+1:end), 'MC_HighestCondNumberMoments', 1, [], IdentifDirectoryName, 0.1);
+        [proba, dproba] = stab_map_1(params, is(1:ncut), is(ncut+1:end), 'MC_HighestCondNumberMoments', 1, [], IdentifDirectoryName, 0.1,'MC Highest Condition Number Model Moments');
 %         [proba, dproba] = stab_map_1(idemoments.Mco', is(1:ncut), is(ncut+1:end), 'HighestCondNumberMoments_vs_Mco', 1, [], IdentifDirectoryName);
 %         for j=1:nparam,
 % %             ibeh=find(idemoments.Mco(j,:)<0.9);
diff --git a/matlab/pm3.m b/matlab/pm3.m
index 09488aa5e31afe74c49b3a599f7793d4a9ea6dd7..9e34bf1c045538a3f2d2839ad4918d22c768455b 100644
--- a/matlab/pm3.m
+++ b/matlab/pm3.m
@@ -56,29 +56,70 @@ if options_.TeX
 end
 Mean = zeros(n2,nvar);
 Median = zeros(n2,nvar);
-Std = zeros(n2,nvar);
+Var = zeros(n2,nvar);
 Distrib = zeros(9,n2,nvar);
 HPD = zeros(2,n2,nvar);
-fprintf(['MH: ' tit1 '\n']);
+fprintf(['Estimation::mcmc: ' tit1 '\n']);
 stock1 = zeros(n1,n2,B);
 k = 0;
+filter_step_ahead_indicator=0;
 for file = 1:ifil
     load([DirectoryName '/' M_.fname var_type int2str(file)]);
     if size(size(stock),2) == 4
-        stock = squeeze(stock(1,:,1:n2,:));
+        if file==1 %on first run, initialize variable for storing filter_step_ahead
+            stock1_filter_step_ahead=NaN(n1,n2,B,length(options_.filter_step_ahead)); 
+        end
+        filter_step_ahead_indicator=1;
+        stock_filter_step_ahead=zeros(n1,n2,size(stock,4),length(options_.filter_step_ahead));
+        for ii=1:length(options_.filter_step_ahead)
+            K_step_ahead=options_.filter_step_ahead(ii);
+            stock_filter_step_ahead(:,:,:,ii)=stock(ii,:,1+K_step_ahead:n2+K_step_ahead,:);
+        end
+        stock = squeeze(stock(1,:,1+1:1+n2,:)); %1 step ahead starts at entry 2
     end
     k = k(end)+(1:size(stock,3));
     stock1(:,:,k) = stock;
+    if filter_step_ahead_indicator
+        stock1_filter_step_ahead(:,:,k,:) = stock_filter_step_ahead;
+    end
 end
 clear stock
+if filter_step_ahead_indicator
+    clear stock_filter_step_ahead
+    filter_steps=length(options_.filter_step_ahead);
+    Mean_filter_step_ahead = zeros(filter_steps,nvar,n2);
+    Median_filter_step_ahead = zeros(filter_steps,nvar,n2);
+    Var_filter_step_ahead = zeros(filter_steps,nvar,n2);
+    Distrib_filter_step_ahead = zeros(9,filter_steps,nvar,n2);
+    HPD_filter_step_ahead = zeros(2,filter_steps,nvar,n2);
+end
+
 tmp =zeros(B,1);
 for i = 1:nvar
     for j = 1:n2
         [Mean(j,i),Median(j,i),Var(j,i),HPD(:,j,i),Distrib(:,j,i)] = ...
             posterior_moments(squeeze(stock1(SelecVariables(i),j,:)),0,options_.mh_conf_sig);
+        if filter_step_ahead_indicator
+            for K_step = 1:length(options_.filter_step_ahead)
+                [Mean_filter_step_ahead(K_step,i,j),Median_filter_step_ahead(K_step,i,j),Var_filter_step_ahead(K_step,i,j),HPD_filter_step_ahead(:,K_step,i,j),Distrib_filter_step_ahead(:,K_step,i,j)] = ...
+                    posterior_moments(squeeze(stock1_filter_step_ahead(SelecVariables(i),j,:,K_step)),0,options_.mh_conf_sig);
+            end    
+        end
     end
 end
 clear stock1
+if filter_step_ahead_indicator %write matrices corresponding to ML
+    clear stock1_filter_step_ahead
+    FilteredVariablesKStepAhead=zeros(length(options_.filter_step_ahead),nvar,n2+max(options_.filter_step_ahead));
+    FilteredVariablesKStepAheadVariances=zeros(length(options_.filter_step_ahead),nvar,n2+max(options_.filter_step_ahead));
+    for K_step = 1:length(options_.filter_step_ahead)
+        FilteredVariablesKStepAhead(K_step,:,1+options_.filter_step_ahead(K_step):n2+options_.filter_step_ahead(K_step))=Mean_filter_step_ahead(K_step,:,:);
+        FilteredVariablesKStepAheadVariances(K_step,:,1+options_.filter_step_ahead(K_step):n2+options_.filter_step_ahead(K_step))=Mean_filter_step_ahead(K_step,:,:);
+    end
+    oo_.FilteredVariablesKStepAhead=FilteredVariablesKStepAhead;
+    oo_.FilteredVariablesKStepAheadVariances=FilteredVariablesKStepAheadVariances;
+end
+
 for i = 1:nvar
     name = deblank(names1(SelecVariables(i),:));
     eval(['oo_.' name3 '.Mean.' name ' = Mean(:,i);']);
@@ -87,6 +128,17 @@ for i = 1:nvar
     eval(['oo_.' name3 '.deciles.' name ' = Distrib(:,:,i);']);
     eval(['oo_.' name3 '.HPDinf.' name ' = HPD(1,:,i);']);
     eval(['oo_.' name3 '.HPDsup.' name ' = HPD(2,:,i);']);
+    if filter_step_ahead_indicator
+        for K_step = 1:length(options_.filter_step_ahead)
+            name4=['Filtered_Variables_',num2str(K_step),'_step_ahead'];
+            eval(['oo_.' name4 '.Mean.' name ' = squeeze(Mean_filter_step_ahead(K_step,i,:));']);
+            eval(['oo_.' name4 '.Median.' name ' = squeeze(Median_filter_step_ahead(K_step,i,:));']);
+            eval(['oo_.' name4 '.Var.' name ' = squeeze(Var_filter_step_ahead(K_step,i,:));']);
+            eval(['oo_.' name4 '.deciles.' name ' = squeeze(Distrib_filter_step_ahead(:,K_step,i,:));']);
+            eval(['oo_.' name4 '.HPDinf.' name ' = squeeze(HPD_filter_step_ahead(1,K_step,i,:));']);
+            eval(['oo_.' name4 '.HPDsup.' name ' = squeeze(HPD_filter_step_ahead(2,K_step,i,:));']);
+        end
+    end    
 end
 %%
 %% 	Finally I build the plots.
@@ -118,7 +170,7 @@ localVars.Mean=Mean;
 % Like sequential execution!
 nvar0=nvar;
 
-if ~exist('OCTAVE_VERSION')
+if ~isoctave
     % Commenting for testing!
     if isnumeric(options_.parallel) || ceil(size(varlist,1)/MaxNumberOfPlotsPerFigure)<4,
         fout = pm3_core(localVars,1,nvar,0);
@@ -194,7 +246,7 @@ if options_.TeX,
     fclose(fidTeX);
 end
 
-fprintf(['MH: ' tit1 ', done!\n']);
+fprintf(['Estimation::mcmc: ' tit1 ', done!\n']);
 
 
 
diff --git a/matlab/posterior_analysis.m b/matlab/posterior_analysis.m
index df978c64766fdbaf33783ccbdef9e9d4a30d0084..0382f923fa93a7cc84696ad42be0f771fff99c39 100644
--- a/matlab/posterior_analysis.m
+++ b/matlab/posterior_analysis.m
@@ -17,7 +17,7 @@ function oo_ = posterior_analysis(type,arg1,arg2,arg3,options_,M_,oo_)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 info = check_posterior_analysis_data(type,M_);
-SampleSize = options_.PosteriorSampleSize;
+SampleSize = options_.sub_draws;
 switch info
   case 0
     disp('check_posterior_analysis_data:: Can''t find any mcmc file!')
diff --git a/matlab/print_info.m b/matlab/print_info.m
index 157275fb4b86f087d89a0ae5f9327f9e7e9863a2..34017e513f67f1fbb1e23a5824b40b420c03dde1 100644
--- a/matlab/print_info.m
+++ b/matlab/print_info.m
@@ -36,7 +36,8 @@ if ~noprint
       case 2
         error(['The generalized Schur (QZ) decomposition failed. ' ...
                'For more information, see the documentation for Lapack function dgges: info=' ...
-               int2str(info(2)) ', n=' int2str(info(3))])
+               int2str(info(2)) ', n=' int2str(info(3)) ...
+               '. You can also run model_diagnostics to get more information on what may cause this problem.'])
       case 3
         error(['Blanchard Kahn conditions are not satisfied: no stable' ...
                ' equilibrium'])
@@ -61,7 +62,7 @@ if ~noprint
           error(['The Jacobian contains NaNs because the following parameters are NaN: '...
               disp_string])
         else
-          error(['The Jacobian contains NaNs'])
+          error(['The Jacobian contains NaNs. For more information, use options_.debug.'])
         end
       case 9
         error(['k_order_pert was unable to compute the solution']) 
@@ -105,14 +106,18 @@ if ~noprint
         error('The model violates one (many) endogenous prior restriction(s)')
       case 51
         error('You are estimating a DSGE-VAR model, but the value of the dsge prior weight is too low!')
-      case 52 %DsgeVarLikelihood
-        error('');
+      case 52 %dsge_var_likelihood
+        error('You are estimating a DSGE-VAR model, but the implied covariance matrix of the VAR''s innovations is not positive definite!');
       case 61 %Discretionary policy
         error(['Discretionary policy: maximum number of iterations has been reached. Procedure failed. ']);
       case 62
         error(['Discretionary policy: some eigenvalues greater than options_.qz_criterium. Model potentially unstable.']);
       case 63
         error(['Discretionary policy: NaN elements are present in the solution. Procedure failed.']);
+      case 71
+        error(['Calibrated covariance of the structural errors implies correlation larger than  +-1.']);
+      case 72
+        error(['Calibrated covariance of the measurement errors implies correlation larger than  +-1.']);
         % Aim Code Conversions by convertAimCodeToInfo.m
       case 102
         error('Aim: roots not correctly computed by real_schur');
diff --git a/matlab/prior_bounds.m b/matlab/prior_bounds.m
index 2d187c9a5f9632bd1ba17554b9664c5cd1d66018..4eb290e57ddcd9597d34f2360542eef6f22d5970 100644
--- a/matlab/prior_bounds.m
+++ b/matlab/prior_bounds.m
@@ -95,7 +95,7 @@ for i=1:length(p6)
                 bounds(i,2) = gaminv(1-prior_trunc,p6(i),p7(i))+p3(i);
             catch
                 % Workaround for ticket #161
-                if exist('OCTAVE_VERSION')
+                if isoctave
                     error(['Due to a bug in Octave, you must choose other values for mean and/or variance of your prior on ' bayestopt.name{i} ', or use another shape'])
                 else
                     rethrow(lasterror)
@@ -121,7 +121,7 @@ for i=1:length(p6)
                                             2/p6(i)))+p3(i);
             catch
                 % Workaround for ticket #161
-                if exist('OCTAVE_VERSION')
+                if isoctave
                     error(['Due to a bug in Octave, you must choose other values for mean and/or variance of your prior on ' bayestopt.name{i} ', or use another shape'])
                 else
                     rethrow(lasterror)
@@ -146,7 +146,7 @@ for i=1:length(p6)
                 bounds(i,2) = 1/gaminv(prior_trunc, p7(i)/2, 2/p6(i))+ p3(i);
             catch
                 % Workaround for ticket #161
-                if exist('OCTAVE_VERSION')
+                if isoctave
                     error(['Due to a bug in Octave, you must choose other values for mean and/or variance of your prior on ' bayestopt.name{i} ', or use another shape'])
                 else
                     rethrow(lasterror)
diff --git a/matlab/prior_posterior_statistics.m b/matlab/prior_posterior_statistics.m
index 936b307ad85f1a69c4211267878249bd1f39d1c1..7fc8778786d7f072b54f7be9a820bdee22fcbf1d 100644
--- a/matlab/prior_posterior_statistics.m
+++ b/matlab/prior_posterior_statistics.m
@@ -54,37 +54,22 @@ np   = estim_params_.np ;
 npar = nvx+nvn+ncx+ncn+np;
 offset = npar-np;
 naK = length(options_.filter_step_ahead);
-%%
+
 MaxNumberOfBytes=options_.MaxNumberOfBytes;
 endo_nbr=M_.endo_nbr;
 exo_nbr=M_.exo_nbr;
 nvobs     = length(options_.varobs);
 iendo = 1:endo_nbr;
 horizon = options_.forecast;
-% moments_varendo = options_.moments_varendo;
 filtered_vars = options_.filtered_vars;
 if horizon
     i_last_obs = gend+(1-M_.maximum_endo_lag:0);
 end
 maxlag = M_.maximum_endo_lag;
-%%
+
 if strcmpi(type,'posterior')
     DirectoryName = CheckPath('metropolis',M_.dname);
-    load([ DirectoryName '/'  M_.fname '_mh_history'])
-    FirstMhFile = record.KeepedDraws.FirstMhFile;
-    FirstLine = record.KeepedDraws.FirstLine;
-    TotalNumberOfMhFiles = sum(record.MhDraws(:,2)); LastMhFile = TotalNumberOfMhFiles;
-    TotalNumberOfMhDraws = sum(record.MhDraws(:,1));
-    NumberOfDraws = TotalNumberOfMhDraws-floor(options_.mh_drop*TotalNumberOfMhDraws);
-    clear record;
-    if ~isempty(options_.sub_draws)
-        B = options_.sub_draws;
-        if B > NumberOfDraws
-            B = NumberOfDraws;
-        end
-    else
-        B = min(1200, round(0.25*NumberOfDraws));
-    end
+    B = options_.sub_draws;
 elseif strcmpi(type,'gsa')
     RootDirectoryName = CheckPath('gsa',M_.dname);
     if options_.opt_gsa.pprior
@@ -100,25 +85,22 @@ elseif strcmpi(type,'gsa')
         x=lpmat(istable,:);
     end
     clear lpmat lpmat0 istable
-    NumberOfDraws=size(x,1);
-    B=NumberOfDraws; 
+    B = size(x,1);
 elseif strcmpi(type,'prior')
     DirectoryName = CheckPath('prior',M_.dname);
-    if ~isempty(options_.subdraws)
-        B = options_.subdraws;
-    else
-        B = 1200;
-    end
+    B = options_.prior_draws;
 end
-%%
+
 MAX_nruns = min(B,ceil(MaxNumberOfBytes/(npar+2)/8));
 MAX_nsmoo = min(B,ceil(MaxNumberOfBytes/((endo_nbr)*gend)/8));
 MAX_ninno = min(B,ceil(MaxNumberOfBytes/(exo_nbr*gend)/8));
-MAX_nerro = min(B,ceil(MaxNumberOfBytes/(length(options_.varobs)*gend)/8));
+MAX_nerro = min(B,ceil(MaxNumberOfBytes/(size(options_.varobs,1)*gend)/8));
+
 if naK
     MAX_naK   = min(B,ceil(MaxNumberOfBytes/(length(options_.varobs)* ...
                                              length(options_.filter_step_ahead)*gend)/8));
 end
+
 if horizon
     MAX_nforc1 = min(B,ceil(MaxNumberOfBytes/((endo_nbr)*(horizon+maxlag))/8));
     MAX_nforc2 = min(B,ceil(MaxNumberOfBytes/((endo_nbr)*(horizon+maxlag))/ ...
@@ -127,7 +109,7 @@ if horizon
     
 end
 MAX_momentsno = min(B,ceil(MaxNumberOfBytes/(get_moments_size(options_)*8)));
-%%
+
 varlist = options_.varlist;
 if isempty(varlist)
     varlist = M_.endo_names(1:M_.orig_endo_nbr, :);
@@ -166,9 +148,6 @@ if options_.forecast
     stock_forcst_point = zeros(endo_nbr,horizon+maxlag,MAX_nforc2);
     run_smoother = 1;
 end
-%if moments_varendo
-%    stock_moments = cell(MAX_momentsno,1);
-%end
 
 
 
@@ -247,16 +226,13 @@ else
             nfiles = ceil(nBlockPerCPU(j)/MAX_nforc2);
             ifil(7,j+1) =ifil(7,j)+nfiles;
         end
-        %       nfiles = ceil(nBlockPerCPU(j)/MAX_momentsno);
-        %       ifil(8,j+1) =ifil(8,j)+nfiles;
     end
     localVars.ifil = ifil;
     globalVars = struct('M_',M_, ...
                         'options_', options_, ...
                         'bayestopt_', bayestopt_, ...
                         'estim_params_', estim_params_, ...
-                        'oo_', oo_);
-    
+                        'oo_', oo_);    
     % which files have to be copied to run remotely
     NamFileInput(1,:) = {'',[M_.fname '_static.m']};
     NamFileInput(2,:) = {'',[M_.fname '_dynamic.m']};
@@ -268,7 +244,7 @@ else
 end
 ifil = fout(end).ifil;
 
-
+% ??????????
 stock_gend=gend;
 stock_data=Y;
 save([DirectoryName '/' M_.fname '_data.mat'],'stock_gend','stock_data');
@@ -305,7 +281,7 @@ if options_.filtered_vars
         '',varlist,M_.endo_names_tex,M_.endo_names,...
         varlist,'UpdatedVariables',DirectoryName, ...
         '_update');
-    pm3(endo_nbr,gend+1,ifil(4),B,'One step ahead forecast (filtered variables)',...
+    pm3(endo_nbr,gend,ifil(4),B,'One step ahead forecast (filtered variables)',...
         '',varlist,M_.endo_names_tex,M_.endo_names,...
         varlist,'FilteredVariables',DirectoryName,'_filter_step_ahead');
 end
diff --git a/matlab/prior_posterior_statistics_core.m b/matlab/prior_posterior_statistics_core.m
index f7eaa6f28ee2eb1d1e8cb06ec32d8ec9e6f7e980..41b5b6d33f579d4d8b342999e162083e371b2076 100644
--- a/matlab/prior_posterior_statistics_core.m
+++ b/matlab/prior_posterior_statistics_core.m
@@ -195,12 +195,12 @@ for b=fpar:B
         if horizon
             yyyy = alphahat(iendo,i_last_obs);
             yf = forcst2a(yyyy,dr,zeros(horizon,exo_nbr));
-            if options_.prefilter == 1
+            if options_.prefilter
                 yf(:,IdObs) = yf(:,IdObs)+repmat(bayestopt_.mean_varobs', ...
                                                  horizon+maxlag,1);
             end
             yf(:,IdObs) = yf(:,IdObs)+(gend+[1-maxlag:horizon]')*trend_coeff';
-            if options_.loglinear == 1
+            if options_.loglinear
                 yf = yf+repmat(log(SteadyState'),horizon+maxlag,1);
             else
                 yf = yf+repmat(SteadyState',horizon+maxlag,1);
@@ -212,7 +212,7 @@ for b=fpar:B
             end
             yf1(:,IdObs,:) = yf1(:,IdObs,:)+repmat((gend+[1-maxlag:horizon]')* ...
                                                    trend_coeff',[1,1,1]);
-            if options_.loglinear == 1
+            if options_.loglinear
                 yf1 = yf1 + repmat(log(SteadyState'),[horizon+maxlag,1,1]);
             else
                 yf1 = yf1 + repmat(SteadyState',[horizon+maxlag,1,1]);
diff --git a/matlab/priordens.m b/matlab/priordens.m
index ddc6fa92f73bfbfcaa71e4a42e3a8ec920044dc5..02ba5c698719d613409a3d520a5b75cc22f1e05f 100644
--- a/matlab/priordens.m
+++ b/matlab/priordens.m
@@ -6,8 +6,8 @@ function [logged_prior_density, dlprior, d2lprior] = priordens(x, pshape, p6, p7
 %    pshape         [integer]     vector with n elements (bayestopt_.pshape).
 %    p6:            [double]      vector with n elements, first  parameter of the prior distribution (bayestopt_.p6).
 %    p7:            [double]      vector with n elements, second parameter of the prior distribution (bayestopt_.p7).
-%    p3:            [double]      vector with n elements, lower bounds.
-%    p4:            [double]      vector with n elements, upper bound.
+%    p3:            [double]      vector with n elements, lower bounds of the untruncated standard or generalized distribution
+%    p4:            [double]      vector with n elements, upper bound of the untruncated standard or generalized distribution
 %    initialization [integer]     if 1: initialize persistent variables
 %    
 % OUTPUTS 
diff --git a/matlab/qz/mjdgges.m b/matlab/qz/mjdgges.m
index fea90931fd504f7dae1b79e9f39876b7efc3c524..2225e257b0cea14bb272d1382e40535f80c376af 100644
--- a/matlab/qz/mjdgges.m
+++ b/matlab/qz/mjdgges.m
@@ -63,7 +63,7 @@ info = 0;
 %   as an option
 % - under Octave, only real decomposition available, but grouping of
 %   eigenvalues <= 1 is implemented as an option (criterium can't be changed)
-if exist('OCTAVE_VERSION')
+if isoctave
     [ss,tt,w,eigval] = qz(e,d,'S');
     sdim = sum(abs(eigval) <= 1.0);
     if any(abs(eigval) > 1.0 & abs(eigval) <= qz_criterium)
diff --git a/matlab/random_walk_metropolis_hastings.m b/matlab/random_walk_metropolis_hastings.m
index 91cd6953479ed0a0218144d1eade0217d701791b..f524b44c13095a93b22b3a2bde06ac681c8d2b6c 100644
--- a/matlab/random_walk_metropolis_hastings.m
+++ b/matlab/random_walk_metropolis_hastings.m
@@ -1,4 +1,4 @@
-function record=random_walk_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv,mh_bounds,dataset_,options_,M_,estim_params_,bayestopt_,oo_)
+function random_walk_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv,mh_bounds,dataset_,options_,M_,estim_params_,bayestopt_,oo_)
 %function record=random_walk_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv,mh_bounds,dataset_,options_,M_,estim_params_,bayestopt_,oo_)
 % Random walk Metropolis-Hastings algorithm. 
 % 
@@ -14,9 +14,6 @@ function record=random_walk_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv
 %   o estim_params_         estimated parameters structure
 %   o bayestopt_            estimation options structure
 %   o oo_                   outputs structure
-%  
-% OUTPUTS 
-%   o record     [struct]   structure describing the iterations
 %
 % ALGORITHM 
 %   Metropolis-Hastings.       
@@ -57,22 +54,18 @@ function record=random_walk_metropolis_hastings(TargetFun,ProposalFun,xparam1,vv
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 
-% In Metropolis, we set penalty to Inf to as to reject all parameter sets
-% triggering error in target density computation
-
+% In Metropolis, we set penalty to Inf to as to reject all parameter sets triggering error in target density computation
 global objective_function_penalty_base
 objective_function_penalty_base = Inf;
 
-%%%%
-%%%% Initialization of the random walk metropolis-hastings chains.
-%%%%
-[ ix2, ilogpo2, ModelName, MhDirectoryName, fblck, fline, npar, nblck, nruns, NewFile, MAX_nruns, d ] = ...
+% Initialization of the random walk metropolis-hastings chains.
+[ ix2, ilogpo2, ModelName, MetropolisFolder, fblck, fline, npar, nblck, nruns, NewFile, MAX_nruns, d ] = ...
     metropolis_hastings_initialization(TargetFun, xparam1, vv, mh_bounds,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
 
 InitSizeArray = min([repmat(MAX_nruns,nblck,1) fline+nruns-1],[],2);
 
-load([MhDirectoryName '/' ModelName '_mh_history.mat'],'record');
-
+% Load last mh history file
+load_last_mh_history_file(MetropolisFolder, ModelName);
 
 % Only for test parallel results!!!
 
@@ -128,7 +121,6 @@ if isnumeric(options_.parallel) || (nblck-fblck)==0,
 else 
     % Global variables for parallel routines.
     globalVars = struct();
-    
     % which files have to be copied to run remotely
     NamFileInput(1,:) = {'',[ModelName '_static.m']};
     NamFileInput(2,:) = {'',[ModelName '_dynamic.m']};
@@ -141,17 +133,15 @@ else
     if exist([ModelName '_optimal_mh_scale_parameter.mat'])
         NamFileInput(length(NamFileInput)+1,:)={'',[ModelName '_optimal_mh_scale_parameter.mat']};
     end
-    
     % from where to get back results
     %     NamFileOutput(1,:) = {[M_.dname,'/metropolis/'],'*.*'};
-    
     [fout, nBlockPerCPU, totCPU] = masterParallel(options_.parallel, fblck, nblck,NamFileInput,'random_walk_metropolis_hastings_core', localVars, globalVars, options_.parallel_info);
     for j=1:totCPU,
         offset = sum(nBlockPerCPU(1:j-1))+fblck-1;
         record.LastLogPost(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.LastLogPost(offset+1:sum(nBlockPerCPU(1:j)));
         record.LastParameters(offset+1:sum(nBlockPerCPU(1:j)),:)=fout(j).record.LastParameters(offset+1:sum(nBlockPerCPU(1:j)),:);
-        record.AcceptationRates(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.AcceptationRates(offset+1:sum(nBlockPerCPU(1:j)));
-        record.Seeds(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.Seeds(offset+1:sum(nBlockPerCPU(1:j)));
+        record.AcceptanceRatio(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.AcceptanceRatio(offset+1:sum(nBlockPerCPU(1:j)));
+        record.LastSeeds(offset+1:sum(nBlockPerCPU(1:j)))=fout(j).record.LastSeeds(offset+1:sum(nBlockPerCPU(1:j)));
     end
 
 end
@@ -159,13 +149,17 @@ end
 irun = fout(1).irun;
 NewFile = fout(1).NewFile;
 
+update_last_mh_history_file(MetropolisFolder, ModelName, record);
 
-% record.Seeds.Normal = randn('state');
-% record.Seeds.Unifor = rand('state');
-save([MhDirectoryName '/' ModelName '_mh_history.mat'],'record');
-disp(['MH: Number of mh files                   : ' int2str(NewFile(1)) ' per block.'])
-disp(['MH: Total number of generated files      : ' int2str(NewFile(1)*nblck) '.'])
-disp(['MH: Total number of iterations           : ' int2str((NewFile(1)-1)*MAX_nruns+irun-1) '.'])
-disp('MH: average acceptation rate per chain   : ')
-disp(record.AcceptationRates);
 skipline()
+disp(['Estimation::mcmc: Number of mh files: ' int2str(NewFile(1)) ' per block.'])
+disp(['Estimation::mcmc: Total number of generated files: ' int2str(NewFile(1)*nblck) '.'])
+disp(['Estimation::mcmc: Total number of iterations: ' int2str((NewFile(1)-1)*MAX_nruns+irun-1) '.'])
+disp(['Estimation::mcmc: Current acceptance ratio per chain: '])
+for i=1:nblck
+    if i<10
+        disp(['                                                       Chain  ' num2str(i) ': ' num2str(100*record.AcceptanceRatio(i)) '%'])
+    else
+        disp(['                                                       Chain ' num2str(i) ': ' num2str(100*record.AcceptanceRatio(i)) '%'])
+    end
+end
\ No newline at end of file
diff --git a/matlab/random_walk_metropolis_hastings_core.m b/matlab/random_walk_metropolis_hastings_core.m
index fa1b771d212c0d7623c346dc5321aa340ee60f45..481e92b77a32235bdf9c5bd01a8c1006fb951875 100644
--- a/matlab/random_walk_metropolis_hastings_core.m
+++ b/matlab/random_walk_metropolis_hastings_core.m
@@ -99,11 +99,12 @@ varargin=myinputs.varargin;
 if whoiam
     Parallel=myinputs.Parallel;
     % initialize persistent variables in priordens()
-    priordens(xparam1,bayestopt_.pshape,bayestopt_.p6,bayestopt_.p7, ...
-        bayestopt_.p3,bayestopt_.p4,1);
+    priordens(xparam1,bayestopt_.pshape,bayestopt_.p6,bayestopt_.p7, bayestopt_.p3,bayestopt_.p4,1);
 end
 
-MhDirectoryName = CheckPath('metropolis',M_.dname);
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+ModelName = M_.fname;
+BaseName = [MetropolisFolder filesep ModelName];
 
 options_.lik_algo = 1;
 OpenOldFile = ones(nblck,1);
@@ -113,9 +114,9 @@ elseif strcmpi(ProposalFun,'rand_multivariate_student')
     n = options_.student_degrees_of_freedom;
 end
 
-%%%%
-%%%% NOW i run the (nblck-fblck+1) metropolis-hastings chains
-%%%%
+%
+% NOW i run the (nblck-fblck+1) metropolis-hastings chains
+%
 
 proposal_covariance_Cholesky_decomposition = d*diag(bayestopt_.jscale);
 
@@ -125,25 +126,22 @@ JSUM = 0;
 for b = fblck:nblck,
     jloop=jloop+1;
     try
-        % this will not work if the master uses a random generator not
+        % This will not work if the master uses a random generator not
         % available in the slave (different Matlab version or
         % Matlab/Octave cluster). Therefor the trap.
-        
-        % this set the random generator type (the seed is useless but
+        %
+        % This set the random generator type (the seed is useless but
         % needed by the function)
-        set_dynare_seed(options_.DynareRandomStreams.algo,...
-                        options_.DynareRandomStreams.seed);
-        % this set the state 
-        set_dynare_random_generator_state(record.Seeds(b).Unifor, ...
-                                          record.Seeds(b).Normal);
+        set_dynare_seed(options_.DynareRandomStreams.algo, options_.DynareRandomStreams.seed);
+        % This set the state 
+        set_dynare_random_generator_state(record.InitialSeeds(b).Unifor, record.InitialSeeds(b).Normal);
     catch
-        % if the state set by master is incompatible with the slave, we
+        % If the state set by master is incompatible with the slave, we
         % only reseed 
         set_dynare_seed(options_.DynareRandomStreams.seed+b);
     end
     if (options_.load_mh_file~=0) && (fline(b)>1) && OpenOldFile(b)
-        load([pwd filesep MhDirectoryName filesep ModelName '_mh' int2str(NewFile(b)) ...
-            '_blck' int2str(b) '.mat'])
+        load([BaseName '_mh' int2str(NewFile(b)) '_blck' int2str(b) '.mat'])
         x2 = [x2;zeros(InitSizeArray(b)-fline(b)+1,npar)];
         logpo2 = [logpo2;zeros(InitSizeArray(b)-fline(b)+1,1)];
         OpenOldFile(b) = 0;
@@ -152,7 +150,7 @@ for b = fblck:nblck,
         logpo2 = zeros(InitSizeArray(b),1);
     end
     if whoiam
-        prc0=(b-fblck)/(nblck-fblck+1)*(exist('OCTAVE_VERSION') || options_.console_mode);
+        prc0=(b-fblck)/(nblck-fblck+1)*(isoctave || options_.console_mode);
         hh = dyn_waitbar({prc0,whoiam,options_.parallel(ThisMatlab)},['MH (' int2str(b) '/' int2str(options_.mh_nblck) ')...']);
     else
         hh = dyn_waitbar(0,['Metropolis-Hastings (' int2str(b) '/' int2str(options_.mh_nblck) ')...']);
@@ -185,48 +183,17 @@ for b = fblck:nblck,
             logpo2(irun) = ilogpo2(b);
         end
         prtfrc = j/nruns(b);
-%         if exist('OCTAVE_VERSION') || options_.console_mode
-%             if mod(j, 10) == 0
-%                 if exist('OCTAVE_VERSION')
-%                     if (whoiam==0)
-%                         printf('MH: Computing Metropolis-Hastings (chain %d/%d): %3.f%% done, acception rate: %3.f%%\r', b, nblck, 100 * prtfrc, 100 * isux / j);
-%                     end
-%                 else
-%                     s0=repmat('\b',1,length(newString));
-%                     newString=sprintf('MH: Computing Metropolis-Hastings (chain %d/%d): %3.f%% done, acceptance rate: %3.f%%', b, nblck, 100 * prtfrc, 100 * isux / j);
-%                     fprintf([s0,'%s'],newString);
-%                 end
-%             end
-%             if mod(j,50)==0 && whoiam
-%                 %             keyboard;
-%                 if (strcmp([options_.parallel(ThisMatlab).MatlabOctavePath], 'octave'))
-%                     waitbarString = [ '(' int2str(b) '/' int2str(options_.mh_nblck) '), ' sprintf('accept. %3.f%%',100 * isux / j)];
-%                     fMessageStatus(prtfrc,whoiam,waitbarString, waitbarTitle, options_.parallel(ThisMatlab));
-%                 else
-%                     waitbarString = [ '(' int2str(b) '/' int2str(options_.mh_nblck) '), ' sprintf('accept. %3.f%%', 100 * isux/j)];
-%                     fMessageStatus((b-fblck)/(nblck-fblck+1)+prtfrc/(nblck-fblck+1),whoiam,waitbarString, '', options_.parallel(ThisMatlab));
-%                 end
-%             end
-%         else
-%             if mod(j, 3)==0 && ~whoiam
-%                 waitbar(prtfrc,hh,[ '(' int2str(b) '/' int2str(options_.mh_nblck) ') ' sprintf('%f done, acceptation rate %f',prtfrc,isux/j)]);
-%             elseif mod(j,50)==0 && whoiam,
-%                 %             keyboard;
-%                 waitbarString = [ '(' int2str(b) '/' int2str(options_.mh_nblck) ') ' sprintf('%f done, acceptation rate %f',prtfrc,isux/j)];
-%                 fMessageStatus(prtfrc,whoiam,waitbarString, waitbarTitle, options_.parallel(ThisMatlab));
-%             end
-%         end
         if (mod(j, 3)==0 && ~whoiam) || (mod(j,50)==0 && whoiam)
-            dyn_waitbar(prtfrc,hh,[ 'MH (' int2str(b) '/' int2str(options_.mh_nblck) ') ' sprintf('acceptation rate %4.3f', isux/j)]);
+            dyn_waitbar(prtfrc,hh,[ 'MH (' int2str(b) '/' int2str(options_.mh_nblck) ') ' sprintf('Current acceptance ratio %4.3f', isux/j)]);
         end
         if (irun == InitSizeArray(b)) || (j == nruns(b)) % Now I save the simulations
-            save([MhDirectoryName '/' ModelName '_mh' int2str(NewFile(b)) '_blck' int2str(b) '.mat'],'x2','logpo2');
-            fidlog = fopen([MhDirectoryName '/metropolis.log'],'a');
+            save([BaseName '_mh' int2str(NewFile(b)) '_blck' int2str(b) '.mat'],'x2','logpo2');
+            fidlog = fopen([MetropolisFolder '/metropolis.log'],'a');
             fprintf(fidlog,['\n']);
             fprintf(fidlog,['%% Mh' int2str(NewFile(b)) 'Blck' int2str(b) ' (' datestr(now,0) ')\n']);
             fprintf(fidlog,' \n');
             fprintf(fidlog,['  Number of simulations.: ' int2str(length(logpo2)) '\n']);
-            fprintf(fidlog,['  Acceptation rate......: ' num2str(jsux/length(logpo2)) '\n']);
+            fprintf(fidlog,['  Acceptance ratio......: ' num2str(jsux/length(logpo2)) '\n']);
             fprintf(fidlog,['  Posterior mean........:\n']);
             for i=1:length(x2(1,:))
                 fprintf(fidlog,['    params:' int2str(i) ': ' num2str(mean(x2(:,i))) '\n']);
@@ -262,20 +229,10 @@ for b = fblck:nblck,
         j=j+1;
         irun = irun + 1;
     end% End of the simulations for one mh-block.
-    record.AcceptationRates(b) = isux/j;
-%     if exist('OCTAVE_VERSION') || options_.console_mode || whoiam
-%         if exist('OCTAVE_VERSION')
-%             printf('\n');
-%         else
-%             fprintf('\n');
-%         end
-%         diary on;
-%     else %if ~whoiam
-%         close(hh);
-%     end
+    record.AcceptanceRatio(b) = isux/j;
     dyn_waitbar_close(hh);
-    [record.Seeds(b).Unifor, record.Seeds(b).Normal] = get_dynare_random_generator_state();
-    OutputFileName(jloop,:) = {[MhDirectoryName,filesep], [ModelName '_mh*_blck' int2str(b) '.mat']};
+    [record.LastSeeds(b).Unifor, record.LastSeeds(b).Normal] = get_dynare_random_generator_state();
+    OutputFileName(jloop,:) = {[MetropolisFolder,filesep], [ModelName '_mh*_blck' int2str(b) '.mat']};
 end% End of the loop over the mh-blocks.
 
 
diff --git a/matlab/read_key_value_string.m b/matlab/read_key_value_string.m
new file mode 100644
index 0000000000000000000000000000000000000000..a3b7243b67fc30e9d623834b0e796a0d711ebf9c
--- /dev/null
+++ b/matlab/read_key_value_string.m
@@ -0,0 +1,67 @@
+function c = read_key_value_string(s)
+
+% Transforms a string of Key-Value options as returned by the preprocessor (for optim option in the
+% estimation command) into a cell (first column for the option name ans second column for the
+% option value).
+
+% Copyright (C) 2011-2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+iComma = strfind(s,',');
+nComma = length(iComma);
+
+if iseven(nComma)
+    error('read_key_value_string: Wrong number of Key-Value pairs!')
+end
+
+c = cell((nComma+1)/2,2);
+
+for i = 1:nComma
+    j = comma2opt(i);
+    if j>0, continue, end
+    if isequal(i,1)
+        i1 = 1;
+        i2 = iComma(i)-1;
+    else
+        i1 = iComma(i-1)+1;
+        i2 = iComma(i)-1;
+    end
+    if isequal(i,nComma)
+        i3 = iComma(i)+1;
+        i4 = length(s);
+    else
+        i3 = iComma(i)+1;
+        i4 = iComma(i+1)-1;
+    end
+    c(-j,1) = {s(i1+1:i2-1)};
+    tmp = str2num(s(i3:i4));
+    if isempty(tmp)
+        c(-j,2) = {s(i3+1:i4-1)};
+    else
+        c(-j,2) = {tmp};
+    end
+end
+
+
+function j = comma2opt(i)
+    if isodd(i)
+        % The comma is a separator between a Key and a Value (returned j is minus the option number).
+        j = - (i+1)/2;
+    else
+        % The comma is a separator between two options (returned j is the option number).
+        j = i/2;
+    end
\ No newline at end of file
diff --git a/matlab/read_variables.m b/matlab/read_variables.m
index cc0979307d17cfca092b014faac5a2c8af6d5e6e..6859a679574c2c557934ac7ab37c7f42e58db9a0 100644
--- a/matlab/read_variables.m
+++ b/matlab/read_variables.m
@@ -89,27 +89,27 @@ switch (extension)
             dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
         end
     case { '.xls', '.xlsx' }
-        [num,txt,raw] = xlsread(fullname,xls_sheet,xls_range); % Octave needs the extension explicitly
-        for i=1:size(raw,2)
-            if isnan(raw{1,i})
-                raw{1,i} = ' ';
-            end
-        end
+        [freq,init,data,varlist] = load_xls_file_data(fullname,xls_sheet,xls_range);
         for dyn_i_01=1:var_size_01
-            iv = strmatch(var_names_01{dyn_i_01},raw(1,:),'exact');
-            dyn_tmp_01 = [raw{2:end,iv}]';
-            if length(dyn_tmp_01) > dyn_size_01 && dyn_size_01 > 0
+            iv = strmatch(strtrim(var_names_01(dyn_i_01,:)),varlist,'exact');
+            if ~isempty(iv)
+                dyn_tmp_01 = [data(:,iv)]';
+                if length(dyn_tmp_01) > dyn_size_01 && dyn_size_01 > 0
+                    cd(old_pwd)
+                    error('data size is too large')
+                end
+                dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
+            else
                 cd(old_pwd)
-                error('data size is too large')
+                error([strtrim(var_names_01(dyn_i_01,:)) ' not found in ' fullname])
             end
-            dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
         end
     case '.csv'
         [freq,init,data,varlist] = load_csv_file_data(fullname);
         for dyn_i_01=1:var_size_01
             iv = strmatch(var_names_01{dyn_i_01},varlist,'exact');
             if ~isempty(iv)
-                dyn_tmp_01 = [data(2:end,iv)]';
+                dyn_tmp_01 = [data(:,iv)]';
                 if length(dyn_tmp_01) > dyn_size_01 && dyn_size_01 > 0
                     cd(old_pwd)
                     error('data size is too large')
diff --git a/matlab/reports/@elements/addTable.m b/matlab/reports/@elements/addTable.m
deleted file mode 100644
index afcc8e05239c6ad690f37f443e110514032d646a..0000000000000000000000000000000000000000
--- a/matlab/reports/@elements/addTable.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function e = addTable(e, varargin)
-% function e = addTable(e, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-e.objArray = e.objArray.addObj(table(varargin{:}));
-end
\ No newline at end of file
diff --git a/matlab/reports/@elements/addVspace.m b/matlab/reports/@elements/addVspace.m
deleted file mode 100644
index 748ac35ce0cdc14dec8d630a917cb2e287a522dc..0000000000000000000000000000000000000000
--- a/matlab/reports/@elements/addVspace.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function e = addVspace(e, varargin)
-% function e = addVspace(e, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-e.objArray = e.objArray.addObj(vspace(varargin{:}));
-end
\ No newline at end of file
diff --git a/matlab/reports/@elements/getElements.m b/matlab/reports/@elements/getElements.m
deleted file mode 100644
index 550c1af696f2f9531631bb49d01481fbb9e663ab..0000000000000000000000000000000000000000
--- a/matlab/reports/@elements/getElements.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function e = getElements(ps, varargin)
-% function e = getElements(ps, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-e = ps.objArray.getObjs(varargin{:});
-end
\ No newline at end of file
diff --git a/matlab/reports/@elements/numVspace.m b/matlab/reports/@elements/numVspace.m
deleted file mode 100644
index 266063c9873b2c149feb0dfca306cbee23ed722e..0000000000000000000000000000000000000000
--- a/matlab/reports/@elements/numVspace.m
+++ /dev/null
@@ -1,28 +0,0 @@
-function n = numVspace(o)
-% function n = numVspace(o)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-objs = o.objArray.getObjs();
-n = 0;
-for i=1:length(objs)
-    if isa(objs{i}, 'vspace')
-        n = n+1;
-    end
-end
-end
\ No newline at end of file
diff --git a/matlab/reports/@elements/subsref.m b/matlab/reports/@elements/subsref.m
deleted file mode 100644
index 0562000bc424363dd2f8dbd20dfbc987503be720..0000000000000000000000000000000000000000
--- a/matlab/reports/@elements/subsref.m
+++ /dev/null
@@ -1,48 +0,0 @@
-function A = subsref(A, S)
-%function A = subsref(A, S)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch S(1).type
-    case '.'
-        switch S(1).subs
-            case fieldnames(A)
-                A = A.(S(1).subs);
-            case methods(A)
-                if areParensNext(S)
-                    A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
-                else
-                    A = feval(S(1).subs, A);
-                end
-            otherwise
-                error(['@elements.subsref: unknown field or method: ' S(1).subs]);
-        end
-    case '()'
-        A = getElements(A, S(1).subs{:});
-    case '{}'
-        error(['@elements.subsref: ' S(1).type ' indexing not supported.']);
-    otherwise
-        error('@elements.subsref: impossible case');
-end
-
-S = shiftS(S);
-if length(S) >= 1
-    A = subsref(A, S);
-end
-end
diff --git a/matlab/reports/@graph/addSeries.m b/matlab/reports/@graph/addSeries.m
index ddfcb413253610a857c86ccc6b77162e5ad7daa2..6a0f6d23e5f9be920d63bad549fc38c9f6d14762 100644
--- a/matlab/reports/@graph/addSeries.m
+++ b/matlab/reports/@graph/addSeries.m
@@ -1,7 +1,7 @@
 function o = addSeries(o, varargin)
 % function o = addSeries(o, varargin)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -18,5 +18,5 @@ function o = addSeries(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-o.seriesElements = o.seriesElements.addSeries(varargin{:});
+o.series{end+1} = report_series(varargin{:});
 end
\ No newline at end of file
diff --git a/matlab/reports/@graph/createGraph.m b/matlab/reports/@graph/createGraph.m
deleted file mode 100755
index 48f1c3771260b87d84b30f8d2d4454f3a2443f72..0000000000000000000000000000000000000000
--- a/matlab/reports/@graph/createGraph.m
+++ /dev/null
@@ -1,159 +0,0 @@
-function o = createGraph(o)
-%function o = createGraph(o)
-% Create the graph
-%
-% INPUTS
-%   o   [graph] graph object
-%
-% OUTPUTS
-%   o   [graph] graph object
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-if ~isempty(o.figname)
-    warning('@graph.createGraph: will overwrite %s with new graph\n', ...
-            o.figname);
-end
-
-if ~o.seriesElements.numSeriesElements()
-    warning('@graph.crepateGraph: no series to plot, returning');
-    return;
-end
-
-if isempty(o.graphSize)
-    h = figure('visible','off');
-else
-    h = figure('visible','off','position',[1, 1, o.graphSize(1), o.graphSize(2)]);
-end
-hold on;
-box on;
-if o.showGrid
-    grid on;
-    set(gca, 'GridLineStyle', '--');
-end
-
-if isempty(o.xrange)
-    dd = o.seriesElements.getMaxRange();
-else
-    dd = o.xrange;
-end
-
-ne = o.seriesElements.numSeriesElements();
-line_handles = zeros(ne, 1);
-for i=1:ne
-    line_handles(i) = o.seriesElements(i).getLine(dd);
-end
-
-x = 1:1:dd.ndat;
-xlim([1 dd.ndat]);
-xlabels = getDatesCellStringArray(dd);
-
-if ~isempty(o.yrange)
-    ylim(o.yrange);
-end
-
-if o.showZeroline
-    a = ylim;
-    if 0 > a(1) && 0 < a(2)
-        lh = line(xlim, [0 0], 'color', 'k', 'LineWidth', 0.25);
-        children =get(gca(), 'children');
-        children = [children(2:end); lh];
-        set(gca(), 'children', children);
-    end
-end
-
-if ~isempty(o.shade)
-    x1 = find(strcmpi(o.shade(1).format(), xlabels));
-    x2 = find(strcmpi(o.shade(o.shade.ndat).format(), xlabels));
-    assert(~isempty(x1) && ~isempty(x2), ['@graph.createGraph: either ' ...
-                        o.shade(1).format() ' or ' o.shade(o.shade.ndat).format() ' is not in the date ' ...
-                        'range of data selected.']);
-    yrange = get(gca, 'YLim');
-
-    % From ShadePlotForEmpahsis (Matlab Exchange)
-    % use patch bc area doesn't work with matlab2tikz
-    sh = patch([repmat(x1, 1, 2) repmat(x2, 1, 2)], ...
-               [yrange fliplr(yrange)], o.shadeColor, ...
-               'facealpha', o.shadeOpacity);
-    children = get(gca, 'children');
-    children = [children(2:end); sh];
-    set(gca, 'children', children);
-end
-
-if isempty(o.xTickLabels)
-    xticks = get(gca, 'XTick');
-    xTickLabels = cell(1, length(xticks));
-    for i=1:length(xticks)
-        if xticks(i) >= x(1) && ...
-                xticks(i) <= x(end)
-            xTickLabels{i} = xlabels{xticks(i)};
-        else
-            xTickLabels{i} = '';
-        end
-    end
-else
-    xTickLabels = o.xTickLabels;
-end
-set(gca, 'XTickLabel', xTickLabels);
-
-if o.showLegend
-    lh = legend(line_handles, o.seriesElements.getTexNames(), ...
-                'orientation', o.legendOrientation, ...
-                'location', o.legendLocation);
-    set(lh, 'FontSize', o.legendFontSize);
-    set(lh, 'interpreter', 'latex');
-    if ~o.showLegendBox
-        legend('boxoff');
-    end
-end
-
-if ~isempty(o.xlabel)
-    xlabel(['$\textbf{\footnotesize ' o.xlabel '}$'], 'Interpreter', 'LaTex');
-end
-
-if ~isempty(o.ylabel)
-    ylabel(['$\textbf{\footnotesize ' o.ylabel '}$'], 'Interpreter', 'LaTex');
-end
-drawnow;
-
-if isempty(o.figname)
-    tn = tempname;
-    if strcmp(computer, 'PCWIN') || strcmp(computer, 'PCWIN64')
-        tn = strrep(tn, '\', '/');
-    end
-    o.figname = [tn '.tex'];
-end
-disp('  converting to tex....');
-if exist('OCTAVE_VERSION') && isempty(regexpi(computer, '.*apple.*', 'once'))
-    print(o.figname, '-dtikz');
-else
-    matlab2tikz('filename', o.figname, ...
-                'showInfo', false, ...
-                'showWarnings', false, ...
-                'checkForUpdates', false);
-end
-
-grid off;
-box off;
-hold off;
-close(h);
-clear h;
-end
diff --git a/matlab/reports/@graph/display.m b/matlab/reports/@graph/display.m
index 9ddf4a08a9c9903dc3f62fec94dddee162f908c3..02ad369e4539678585dab9be8af1a511ed0bb123 100644
--- a/matlab/reports/@graph/display.m
+++ b/matlab/reports/@graph/display.m
@@ -11,7 +11,7 @@ function display(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+display_reporting_object(o);
 end
\ No newline at end of file
diff --git a/matlab/reports/@graph/end.m b/matlab/reports/@graph/end.m
index a766b97c46cf82cf872d2fbbefb0fcff824ecb78..9fd4da3a16e38a6681c80573f3ffdb00ba27cee7 100644
--- a/matlab/reports/@graph/end.m
+++ b/matlab/reports/@graph/end.m
@@ -13,7 +13,7 @@ function lastIndex = end(o, k, n)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -31,5 +31,5 @@ function lastIndex = end(o, k, n)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 assert(k==1 && n==1, '@graph/end: graph only has one dimension');
-lastIndex = o.seriesElements.numSeriesElements();
+lastIndex = length(o.series);
 end
\ No newline at end of file
diff --git a/matlab/reports/@graph/graph.m b/matlab/reports/@graph/graph.m
index 72273c7f9e7ccb8591a8b947a640e4702aaa7f1f..e79b402f6049b0e4b6b49787174b7f78b8451b49 100644
--- a/matlab/reports/@graph/graph.m
+++ b/matlab/reports/@graph/graph.m
@@ -14,7 +14,7 @@ function o = graph(varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -33,34 +33,44 @@ function o = graph(varargin)
 
 o = struct;
 
-o.seriesElements = seriesElements();
+o.series = {};
 
 o.title = '';
+o.titleFormat = '';
 o.ylabel = '';
 o.xlabel = '';
 
-o.figname = '';
+o.graphDirName = 'tmpRepDir';
+o.graphName = '';
 o.data = '';
 o.seriesToUse = '';
 o.xrange = '';
+o.xAxisTight = true;
 o.yrange = '';
+o.yAxisTight = false;
 
 o.shade = '';
 o.shadeColor = 'green';
-o.shadeOpacity = .2;
+o.shadeOpacity = 20;
 
 o.showGrid = true;
 
 o.showLegend = false;
 o.showLegendBox = false;
-o.legendLocation = 'SouthEast';
+o.legendLocation = 'south east';
 o.legendOrientation = 'horizontal';
-o.legendFontSize = 8;
+o.legendFontSize = 'tiny';
 
 o.showZeroline = false;
 
 o.graphSize = [];
+o.xTicks = [];
 o.xTickLabels = {};
+o.xTickLabelRotation = 0;
+o.xTickLabelAnchor = 'east';
+
+o.width = 6;
+o.height = 4.5;
 
 if nargin == 1
     assert(isa(varargin{1}, 'graph'),['@graph.graph: with one arg you ' ...
@@ -88,68 +98,100 @@ elseif nargin > 1
 end
 
 % Check options provided by user
-assert(ischar(o.title), '@graph.graph: title must be a string');
+if ischar(o.title)
+    o.title = {o.title};
+end
+assert(iscellstr(o.title), '@graph.graph: title must be a cell array of string(s)');
+assert(ischar(o.titleFormat), '@graph.graph: titleFormat file must be a string');
 assert(ischar(o.xlabel), '@graph.graph: xlabel file must be a string');
 assert(ischar(o.ylabel), '@graph.graph: ylabel file must be a string');
-assert(ischar(o.figname), '@graph.graph: figname must be a string');
+assert(ischar(o.graphName), '@graph.graph: graphName must be a string');
+assert(ischar(o.graphDirName), '@graph.graph: graphDirName must be a string');
 assert(islogical(o.showGrid), '@graph.graph: showGrid must be either true or false');
+assert(islogical(o.xAxisTight), '@graph.graph: xAxisTight must be either true or false');
+assert(islogical(o.yAxisTight), '@graph.graph: yAxisTight must be either true or false');
 assert(islogical(o.showLegend), '@graph.graph: showLegend must be either true or false');
 assert(islogical(o.showLegendBox), '@graph.graph: showLegendBox must be either true or false');
-assert(isint(o.legendFontSize), '@graph.graph: legendFontSize must be an integer');
 assert(islogical(o.showZeroline), '@graph.graph: showZeroline must be either true or false');
-assert(ischar(o.shadeColor), '@graph.graph: shadeColor must be a string');
 assert(isfloat(o.shadeOpacity) && length(o.shadeOpacity)==1 && ...
-       o.shadeOpacity >= 0 && o.shadeOpacity <= 1, ...
-       '@graph.graph: o.shadeOpacity must be a real in [0 1]');
+       o.shadeOpacity >= 0 && o.shadeOpacity <= 100, ...
+       '@graph.graph: o.shadeOpacity must be a real in [0 100]');
+assert(isfloat(o.width), '@graph.graph: o.width must be a real number');
+assert(isfloat(o.height), '@graph.graph: o.height must be a real number');
+assert(isfloat(o.xTickLabelRotation), '@graph.graph: o.xTickLabelRotation must be a real number');
+assert(ischar(o.xTickLabelAnchor), '@graph.graph: xTickLabelAnchor must be a string');
+
+valid_shadeColor = {'red', 'green', 'blue', 'cyan ', 'magenta', 'yellow', ...
+                    'black', 'gray', 'darkgray', 'lightgray', 'brown', ...
+                    'lime', 'olive', 'orange', 'pink', 'purple', 'teal', 'violet', 'white'};
+assert(any(strcmp(o.shadeColor, valid_shadeColor)), ['@graph.graph: shadeColor must be one of ' ...
+        strjoin(valid_shadeColor)]);
+
 valid_legend_locations = ...
-    {'North', 'South', 'East', 'West', ...
-     'NorthEast', 'SouthEast', 'NorthWest', 'SouthWest', ...
-     'NorthOutside', 'SouthOutside', 'EastOutside', 'WestOutside', ...
-     'NorthEastOutside', 'SouthEastOutside', 'NorthWestOutside', 'SouthWestOutside', ...
-     'Best', 'BestOutside', ...
-    };
+    {'south west','south east','north west','north east','outer north east'};
 assert(any(strcmp(o.legendLocation, valid_legend_locations)), ...
        ['@graph.graph: legendLocation must be one of ' strjoin(valid_legend_locations, ' ')]);
 
+valid_legend_font_sizes = {'tiny', 'scriptsize', 'footnotesize', 'small', ...
+                    'normalsize', 'large', 'Large', 'LARGE', 'huge', 'Huge'};
+assert(any(strcmp(o.legendFontSize, valid_legend_font_sizes)), ...
+       ['@graph.graph: legendFontSize must be one of ' strjoin(valid_legend_font_sizes)]);
+
 valid_legend_orientations = {'vertical', 'horizontal'};
 assert(any(strcmp(o.legendOrientation, valid_legend_orientations)), ...
        ['@graph.graph: legendOrientation must be one of ' strjoin(valid_legend_orientations, ' ')]);
 
-assert(isempty(o.shade) || (isa(o.shade, 'dynDates') && o.shade.ndat >= 2), ...
-       ['@graph.graph: shade is specified as a dynDates range, e.g. ' ...
-        '''dynDates(''1999q1''):dynDates(''1999q3'')''.']);
-assert(isempty(o.xrange) || (isa(o.xrange, 'dynDates') && o.xrange.ndat >= 2), ...
-       ['@graph.graph: xrange is specified as a dynDates range, e.g. ' ...
-        '''dynDates(''1999q1''):dynDates(''1999q3'')''.']);
+assert(isempty(o.shade) || (isa(o.shade, 'dates') && o.shade.ndat >= 2), ...
+       ['@graph.graph: shade is specified as a dates range, e.g. ' ...
+        '''dates(''1999q1''):dates(''1999q3'')''.']);
+assert(isempty(o.xrange) || (isa(o.xrange, 'dates') && o.xrange.ndat >= 2), ...
+       ['@graph.graph: xrange is specified as a dates range, e.g. ' ...
+        '''dates(''1999q1''):dates(''1999q3'')''.']);
 assert(isempty(o.yrange) || (isfloat(o.yrange) && length(o.yrange) == 2 && ...
                              o.yrange(1) < o.yrange(2)), ...
        ['@graph.graph: yrange is specified an array with two float entries, ' ...
         'the lower bound and upper bound.']);
-assert(isempty(o.data) || isa(o.data, 'dynSeries'), ['@graph.graph: data must ' ...
-                    'be a dynSeries']);
+assert(isempty(o.data) || isa(o.data, 'dseries'), ['@graph.graph: data must ' ...
+                    'be a dseries']);
 assert(isempty(o.seriesToUse) || iscellstr(o.seriesToUse), ['@graph.graph: ' ...
-                    'series to use must be a cell array of string(s)']);
+                    'seriesToUse must be a cell array of string(s)']);
 
 assert(isempty(o.graphSize) || ((isfloat(o.graphSize) && length(o.graphSize) == 2)),...
        ['@graph.graph: graphSize is specified as an array with two float ' ...
         'entries, [width height]']);
-assert(iscellstr(o.xTickLabels), ...
-       '@graph.graph: xTickLabels must be a cell array of strings');
-% using o.seriesToUse, create series objects and put them in o.seriesElements
+assert(isempty(o.xTicks) || isfloat(o.xTicks),...
+       '@graph.graph: xTicks must be a numerical array');
+assert(iscellstr(o.xTickLabels) || (ischar(o.xTickLabels) && strcmpi(o.xTickLabels, 'ALL')), ...
+       ['@graph.graph: xTickLabels must be a cell array of strings or ' ...
+        'equivalent to the string ''ALL''']);
+if ~isempty(o.xTickLabels)
+    assert((ischar(o.xTickLabels) && strcmpi(o.xTickLabels, 'ALL')) || ...
+            ~isempty(o.xTicks), ['@graph.graph: if you set xTickLabels and ' ...
+                        'it''s not equal to ''ALL'', you must set xTicks']);
+end
+if ~isempty(o.xTicks)
+    assert(~isempty(o.xTickLabels), '@graph.graph: if you set xTicks, you must set xTickLabels');
+end
+
+% using o.seriesToUse, create series objects and put them in o.series
 if ~isempty(o.data)
     if isempty(o.seriesToUse)
         for i=1:o.data.vobs
-            o.seriesElements = o.seriesElements.addSeries('data', o.data{o.data.name{i}});
+            o = o.addSeries('data', o.data{o.data.name{i}});
         end
     else
         for i=1:length(o.seriesToUse)
-            o.seriesElements = o.seriesElements.addSeries('data', o.data{o.seriesToUse{i}});
+            o = o.addSeries('data', o.data{o.seriesToUse{i}});
         end
     end
 end
 o = rmfield(o, 'seriesToUse');
 o = rmfield(o, 'data');
 
+if ~exist(o.graphDirName, 'file')
+    mkdir(o.graphDirName);
+end
+
 % Create graph object
 o = class(o, 'graph');
 end
\ No newline at end of file
diff --git a/matlab/reports/@graph/subsasgn.m b/matlab/reports/@graph/subsasgn.m
index fb645de5b6546f88bae1d518118001357859bb2a..2048ab408cd5ec53f47add2acf95c770c76ff7d8 100644
--- a/matlab/reports/@graph/subsasgn.m
+++ b/matlab/reports/@graph/subsasgn.m
@@ -1,7 +1,7 @@
 function B = subsasgn(A, S, V)
 % function B = subsasgn(A, S, V)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -32,7 +32,7 @@ switch S.type
     case '()'
         index = S.subs{:};
         assert(isnumeric(index));
-        B.seriesElements(index) = V;
+        B.series{index} = V;
     case '.'
         switch S.subs
             case fieldnames(A)
@@ -40,6 +40,9 @@ switch S.type
             otherwise
                 error(['@graph.subsasgn: field ' S.subs 'does not exist']);
         end
+    case '{}'
+        assert(isint(S.subs{1}));
+        B{S.subs{1}} = V;
     otherwise
         error('@graph.subsasgn: syntax error');
 end
diff --git a/matlab/reports/@graph/subsref.m b/matlab/reports/@graph/subsref.m
index d25f47fa3b6de27cde686ce55ed9e151af8e40a2..6643f3f56e9461d789be65475efdf3eb2bef4652 100644
--- a/matlab/reports/@graph/subsref.m
+++ b/matlab/reports/@graph/subsref.m
@@ -1,7 +1,7 @@
 function A = subsref(A, S)
 %function A = subsref(A, S)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -26,7 +26,7 @@ switch S(1).type
             case methods(A)
                 if areParensNext(S)
                     A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
+                    S = shiftS(S,1);
                 else
                     A = feval(S(1).subs, A);
                 end
@@ -34,14 +34,19 @@ switch S(1).type
                 error(['@graph.subsref: unknown field or method: ' S(1).subs]);
         end
     case '()'
-        A = A.seriesElements.getSeriesElements(S(1).subs{:});
+        if isempty(S(1).subs{:})
+            A = A.series;
+        else
+            assert(isnumeric(S(1).subs{:}));
+            A = A.series{S(1).subs{:}};
+        end
     case '{}'
-        error(['@graph.subsref: ' S(1).type ' indexing not supported.']);
+        A = A.series{S(1).subs{:}};
     otherwise
         error('@graph.subsref: impossible case')
 end
 
-S = shiftS(S);
+S = shiftS(S,1);
 if length(S) >= 1
     A = subsref(A, S);
 end
diff --git a/matlab/reports/@graph/write.m b/matlab/reports/@graph/write.m
index 9078b0283b99d43455383c4660f13fad52e3fac5..bdb91a117866e88d54cf0539e5ec330bd1ce9eff 100644
--- a/matlab/reports/@graph/write.m
+++ b/matlab/reports/@graph/write.m
@@ -1,10 +1,14 @@
-function o = write(o, fid)
-%function o = write(o, fid)
+function o = write(o, fid, pg, sec, row, col)
+%function o = write(o, fid, pg, sec, row, col)
 % Write a Graph object
 %
 % INPUTS
 %   o   [graph]   graph object
 %   fid [integer] file id
+%   pg  [integer] this page number
+%   sec [integer] this section number
+%   row [integer] this row number
+%   col [integer] this col number
 %
 % OUTPUTS
 %   o   [graph] graph object
@@ -12,7 +16,7 @@ function o = write(o, fid)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -30,19 +34,6 @@ function o = write(o, fid)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 assert(fid ~= -1);
-if isempty(o.figname)
-    o = createGraph(o);
-end
-
-if ~isempty(o.title)
-    fprintf(fid,'\\begin{tabular}[x]{@{}c@{}}%s\\\\',o.title);
-end
-
-if ~isempty(o.figname)
-    fprintf(fid, '\\input{%s}', o.figname);
-end
-
-if ~isempty(o.title)
-    fprintf(fid,'\\end{tabular}',o.title);
-end
+o = writeGraphFile(o, pg, sec, row, col);
+fprintf(fid, '\\input{%s}', o.graphName);
 end
\ No newline at end of file
diff --git a/matlab/reports/@graph/writeGraphFile.m b/matlab/reports/@graph/writeGraphFile.m
new file mode 100644
index 0000000000000000000000000000000000000000..4fa888ce447b01841bcc688caff185e558151989
--- /dev/null
+++ b/matlab/reports/@graph/writeGraphFile.m
@@ -0,0 +1,211 @@
+function o = writeGraphFile(o, pg, sec, row, col)
+%function o = writeGraphFile(o, pg, sec, row, col)
+% Write the tikz file that contains the graph
+%
+% INPUTS
+%   o   [graph]   graph object
+%   pg  [integer] this page number
+%   sec [integer] this section number
+%   row [integer] this row number
+%   col [integer] this col number
+%
+% OUTPUTS
+%   o   [graph] graph object
+%
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 2013-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+ne = length(o.series);
+if ne < 1
+    warning('@graph.writeGraphFile: no series to plot, returning');
+    return;
+end
+
+if isempty(o.graphName)
+    o.graphName = sprintf('%s/graph_pg%d_sec%d_row%d_col%d.tex', o.graphDirName, pg, sec, row, col);
+else
+    o.graphName = [o.graphDirName '/' o.graphName];
+end
+
+[fid, msg] = fopen(o.graphName, 'w');
+if fid == -1
+    error(['@graph.writeGraphFile: ' msg]);
+end
+
+fprintf(fid, '\\begin{tikzpicture}[baseline]');
+
+if isempty(o.xrange)
+    dd = getMaxRange(o.series);
+else
+    dd = o.xrange;
+end
+
+fprintf(fid, '\\begin{axis}[%%\n');
+% set tick labels
+if isempty(o.xTickLabels)
+    stringsdd = strings(dd);
+    if ~isempty(o.shade)
+        x1 = find(strcmpi(date2string(o.shade(1)), stringsdd));
+        x2 = find(strcmpi(date2string(o.shade(end)), stringsdd));
+        if x1 == 1
+            x = [1 x2 dd.ndat];
+            xTickLabels = [stringsdd(1) stringsdd(x2) stringsdd(end)];
+        elseif x2 == dd.ndat
+            x = [1 x1 dd.ndat];
+            xTickLabels = [stringsdd(1) stringsdd(x1) stringsdd(end)];
+        else
+            x = [1 x1 x2 dd.ndat];
+            xTickLabels = [stringsdd(1) stringsdd(x1) stringsdd(x2) stringsdd(end)];
+        end
+    else
+        x = [1 dd.ndat];
+        xTickLabels = [stringsdd(1) stringsdd(end)];
+    end
+    fprintf(fid, 'xminorticks=true,\nyminorticks=true,\n');
+elseif iscell(o.xTickLabels)
+    fprintf(fid,'minor xtick,\n');
+    x = o.xTicks;
+    xTickLabels = o.xTickLabels;
+else
+    x = [1:dd.ndat];
+    xTickLabels = strings(dd);
+end
+fprintf(fid, 'xticklabels={');
+xlen = length(x);
+for i = 1:xlen
+    fprintf(fid,'%s,',lower(xTickLabels{i}));
+end
+fprintf(fid, '},\nxtick={');
+for i = 1:xlen
+    fprintf(fid, '%d',x(i));
+    if i ~= length(x)
+        fprintf(fid,',');
+    end
+end
+fprintf(fid, '},\nx tick label style={rotate=%f', o.xTickLabelRotation);
+if o.xTickLabelRotation ~= 0
+    fprintf(fid, ',anchor=%s', o.xTickLabelAnchor);
+end
+fprintf(fid, ['},\n',...
+              'width=%fin,\n'...
+              'height=%fin,\n'...
+              'scale only axis,\n'...
+              'axis lines=box,\n'...
+              'unbounded coords=jump,\n'], o.width, o.height);
+
+if ~isempty(o.title{1})
+    fprintf(fid, 'title style={align=center');
+    if ~isempty(o.titleFormat)
+        fprintf(fid, ',font=%s', o.titleFormat);
+    end
+    fprintf(fid, '},\ntitle=');
+    nt = length(o.title);
+    for i=1:nt
+        fprintf(fid, '%s', o.title{i});
+        if i ~= nt
+            fprintf(fid, '\\\\');
+        end
+    end
+    fprintf(fid, ',\n');
+end
+
+if o.xAxisTight
+    fprintf(fid, 'enlarge x limits=false,\n');
+else
+    fprintf(fid, 'enlarge x limits=true,\n');
+end
+
+if isempty(o.yrange)
+    if o.yAxisTight
+        fprintf(fid, 'enlarge y limits=false,\n');
+    else
+        fprintf(fid, 'enlarge y limits=true,\n');
+    end
+else
+    fprintf(fid, 'ymin=%f,\nymax=%f,\n',o.yrange(1),o.yrange(2));
+end
+
+if o.showLegend
+    fprintf(fid, 'legend style={');
+    if ~o.showLegendBox
+        fprintf(fid, 'draw=none,');
+    end
+    fprintf(fid, 'font=\\%s,', o.legendFontSize);
+    if strcmp(o.legendOrientation, 'horizontal')
+        fprintf(fid,'legend columns=-1,');
+    end
+    fprintf(fid, '},\nlegend pos=%s,\n', o.legendLocation);
+end
+
+if o.showGrid
+    fprintf(fid, 'xmajorgrids=true,\nymajorgrids=true,\n');
+end
+
+if ~isempty(o.xlabel)
+    fprintf(fid, 'xlabel=%s,\n', o.xlabel);
+end
+
+if ~isempty(o.ylabel)
+    fprintf(fid, 'ylabel=%s,\n', o.ylabel);
+end
+fprintf(fid, ']\n');
+
+if o.showZeroline
+    fprintf(fid, '%%zeroline\n\\addplot[black,line width=.5,forget plot] coordinates {(1,0)(%d,0)};\n',dd.ndat);
+end
+
+for i=1:ne
+    o.series{i}.writeSeriesForGraph(fid, dd);
+    if o.showLegend
+        fprintf(fid, '\\addlegendentry{%s}\n', o.series{i}.getTexName());
+    end
+end
+
+if ~isempty(o.shade)
+    stringsdd = strings(dd);
+    x1 = find(strcmpi(date2string(o.shade(1)), stringsdd));
+    x2 = find(strcmpi(date2string(o.shade(end)), stringsdd));
+    assert(~isempty(x1) && ~isempty(x2), ['@graph.writeGraphFile: either ' ...
+                        date2string(o.shade(1)) ' or ' date2string(o.shade(end)) ' is not in the date ' ...
+                        'range of data selected.']);
+    if x1 == 1
+        fprintf(fid,['\\begin{pgfonlayer}{background}\n\\fill[%s!%f]\n(axis ' ...
+                     'cs:\\pgfkeysvalueof{/pgfplots/xmin},\\pgfkeysvalueof{/pgfplots/ymin})\nrectangle (axis ' ...
+                     'cs:%f,\\pgfkeysvalueof{/pgfplots/ymax});\n\\end{pgfonlayer}\n'], ...
+                o.shadeColor, o.shadeOpacity, x2);
+    elseif x2 == dd.ndat
+        fprintf(fid,['\\begin{pgfonlayer}{background}\n\\fill[%s!%f]\n(axis ' ...
+                     'cs:%f,\\pgfkeysvalueof{/pgfplots/ymin})\nrectangle (axis ' ...
+                     'cs:\\pgfkeysvalueof{/pgfplots/xmax},\\pgfkeysvalueof{/' ...
+                     'pgfplots/ymax});\n\\end{pgfonlayer}\n'], ...
+                o.shadeColor, o.shadeOpacity, x1);
+    else
+        fprintf(fid,['\\begin{pgfonlayer}{background}\n\\fill[%s!%f]\n(axis ' ...
+                     'cs:%f,\\pgfkeysvalueof{/pgfplots/ymin})\nrectangle (axis ' ...
+                     'cs:%f,\\pgfkeysvalueof{/pgfplots/ymax});\n\\end{pgfonlayer}\n'], ...
+                o.shadeColor, o.shadeOpacity, x1, x2);
+    end
+end
+
+fprintf(fid, '\\end{axis}\n\\end{tikzpicture}%%');
+if fclose(fid) == -1
+    error('@graph.writeGraphFile: closing %s\n', o.filename);
+end
+end
\ No newline at end of file
diff --git a/matlab/reports/@objArray/objArray.m b/matlab/reports/@objArray/objArray.m
deleted file mode 100644
index 4f0dff92f5726e33e8e3b44d1882844cf57c1aa0..0000000000000000000000000000000000000000
--- a/matlab/reports/@objArray/objArray.m
+++ /dev/null
@@ -1,43 +0,0 @@
-function oa = objArray(varargin)
-%function oa = objArray(varargin)
-% ObjArray Class Constructor
-%
-% INPUTS
-%   none
-%
-% OUTPUTS
-%   none
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch nargin
-  case 0
-    oa = struct;
-    oa.objs = cell(0);
-    oa = class(oa, 'objArray');
-  case 1
-    assert(isa(varargin{1}, 'objArray'), ['@objArray.objArray: the only ' ...
-                        'valid arguments are objArray objects']);
-    oa = varargin{1};
-  otherwise
-    error('@objArray.objArray: invalid number of arguments');
-end
-end
\ No newline at end of file
diff --git a/matlab/reports/@objArray/subsref.m b/matlab/reports/@objArray/subsref.m
deleted file mode 100644
index 81d75b09c9810015e8e10b4fc0b4e1285f524f0b..0000000000000000000000000000000000000000
--- a/matlab/reports/@objArray/subsref.m
+++ /dev/null
@@ -1,48 +0,0 @@
-function A = subsref(A, S)
-%function A = subsref(A, S)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch S(1).type
-    case '.'
-        switch S(1).subs
-            case fieldnames(A)
-                A = A.(S(1).subs);
-            case methods(A)
-                if areParensNext(S)
-                    A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
-                else
-                    A = feval(S(1).subs, A);
-                end
-            otherwise
-                error(['objArray.subsref: unknown field or method: ' S(1).subs]);
-        end
-    case '()'
-        A = getObjs(A, S(1).subs{:});
-    case '{}'
-        error(['objArray.subsref: ' S(1).type ' indexing not supported.']);
-    otherwise
-        error('objArray.subsref: impossible case')
-end
-
-S = shiftS(S);
-if length(S) >= 1
-    A = subsref(A, S);
-end
-end
diff --git a/matlab/reports/@page/addSection.m b/matlab/reports/@page/addSection.m
index b24c16b89e3e9c574eca8fd8c27226f23f7f1e4f..a99ffc22a95117b1a9def0b3feb69c929b2d6c51 100644
--- a/matlab/reports/@page/addSection.m
+++ b/matlab/reports/@page/addSection.m
@@ -13,7 +13,7 @@ function p = addSection(p, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -30,5 +30,5 @@ function p = addSection(p, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-p.sections = p.sections.addSection(varargin{:});
+p.sections{end+1} = section(varargin{:});
 end
diff --git a/matlab/reports/@page/display.m b/matlab/reports/@page/display.m
index ebdcc9e0c03390b6464617eb35ce0cde2f82ce5a..19595ba5e30da89e430ce3e9e78357c167715250 100644
--- a/matlab/reports/@page/display.m
+++ b/matlab/reports/@page/display.m
@@ -11,7 +11,7 @@ function display(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+display_reporting_object(o);
 end
\ No newline at end of file
diff --git a/matlab/reports/@page/numSections.m b/matlab/reports/@page/numSections.m
index faa61e7b72e3945d06ac7fa510763df2fc5520fc..aa0b0a1bed8052a87079e6bdfbd825041affa82e 100644
--- a/matlab/reports/@page/numSections.m
+++ b/matlab/reports/@page/numSections.m
@@ -11,7 +11,7 @@ function ns = numSections(p)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function ns = numSections(p)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-ns = p.sections.numSections();
+ns = length(p.sections);
 end
\ No newline at end of file
diff --git a/matlab/reports/@page/page.m b/matlab/reports/@page/page.m
index b36adb1c5f5a128c27e693bbddc62cf77615c181..7bcc26c5d748f75c7c28ef732676394d97088d30 100644
--- a/matlab/reports/@page/page.m
+++ b/matlab/reports/@page/page.m
@@ -12,7 +12,7 @@ function o = page(varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -31,11 +31,12 @@ function o = page(varargin)
 
 o = struct;
 o.paper = '';
-o.title = {};
-o.titleFormat = {};
+o.title = {''};
+titleFormatDefalut = {'\large\bfseries'};
+o.titleFormat = titleFormatDefalut;
 o.orientation = '';
 o.footnote = {};
-o.sections = sections();
+o.sections = {};
 
 if nargin == 1
     assert(isa(varargin{1}, 'page'), ['@page.page: with one arg to Page ' ...
@@ -69,12 +70,13 @@ end
 if ischar(o.titleFormat)
     o.titleFormat = {o.titleFormat};
 end
+if length(o.title) ~= length(o.titleFormat)
+    o.titleFormat = repmat(titleFormatDefalut, 1, length(o.title));
+end
 assert(iscellstr(o.title), ...
        '@page.page: title must be a cell array of strings');
 assert(iscellstr(o.titleFormat), ...
        '@page.page: titleFormat must be a cell array of strings');
-assert(length(o.title)==length(o.titleFormat), ...
-       '@page.page: title and titleFormat must be of the same length');
 
 valid_paper = {'a4', 'letter'};
 assert(any(strcmp(o.paper, valid_paper)), ...
diff --git a/matlab/reports/@page/subsref.m b/matlab/reports/@page/subsref.m
index 3b58fddc806758210c28cabbbe93b4a4a60e83e8..7ad0befc87629eabcd1497e7ab79ce9f6b23027d 100644
--- a/matlab/reports/@page/subsref.m
+++ b/matlab/reports/@page/subsref.m
@@ -1,7 +1,7 @@
 function A = subsref(A, S)
 %function A = subsref(A, S)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -26,7 +26,7 @@ switch S(1).type
             case methods(A)
                 if areParensNext(S)
                     A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
+                    S = shiftS(S,1);
                 else
                     A = feval(S(1).subs, A);
                 end
@@ -41,7 +41,7 @@ switch S(1).type
         error('@page.subsref: impossible case')
 end
 
-S = shiftS(S);
+S = shiftS(S,1);
 if length(S) >= 1
     A = subsref(A, S);
 end
diff --git a/matlab/reports/@page/write.m b/matlab/reports/@page/write.m
index 09a7f62184836a5ed57fca9d68201026b02abc4c..274cf3c2c05ac7f493e99036ea2aa6f580c3c993 100644
--- a/matlab/reports/@page/write.m
+++ b/matlab/reports/@page/write.m
@@ -1,10 +1,11 @@
-function o = write(o, fid)
-%function o = write(o, fid)
+function o = write(o, fid, pg)
+%function o = write(o, fid, pg)
 % Write a Page object
 %
 % INPUTS
 %   o              [page]     page object
 %   fid            [integer]  file id
+%   pg             [integer]  this page number
 %
 % OUTPUTS
 %   o              [page]     page object
@@ -12,7 +13,7 @@ function o = write(o, fid)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -33,7 +34,7 @@ assert(fid ~= -1);
 
 fprintf(fid, '\n%% Page Object\n');
 if strcmpi(o.orientation, 'landscape')
-    fprintf(fid, '\\begin{landscape}\n')
+    fprintf(fid, '\\begin{landscape}\n');
 end
 
 for i=1:length(o.footnote)
@@ -46,7 +47,10 @@ for i=1:length(o.title)
     fprintf(fid,'\\multicolumn{1}{c}{%s %s}\\\\\n', o.titleFormat{i}, o.title{i});
 end
 
-o.sections.write(fid);
+nps = length(o.sections);
+for i=1:nps
+    o.sections{i}.write(fid, pg, i);
+end
 
 if strcmpi(o.orientation, 'landscape')
     fprintf(fid, '\\end{landscape}\n');
diff --git a/matlab/reports/@pages/end.m b/matlab/reports/@pages/end.m
deleted file mode 100644
index 02754f4c2714e82bbd28deb34e9d4b1fdafb99ff..0000000000000000000000000000000000000000
--- a/matlab/reports/@pages/end.m
+++ /dev/null
@@ -1,35 +0,0 @@
-function lastIndex = end(o, k, n)
-% function lastIndex = end(o, k, n)
-% End keyword
-%
-% INPUTS
-%   o              [pages]   pages object
-%   k              [integer] index where end appears
-%   n              [integer] number of indices
-%
-% OUTPUTS
-%   lastIndex      [integer] last pages index
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-assert(k==1 && n==1, '@pages/end: pages only has one dimension');
-lastIndex = numPages(o);
-end
\ No newline at end of file
diff --git a/matlab/reports/@pages/getPages.m b/matlab/reports/@pages/getPages.m
deleted file mode 100644
index 4075f6f2cb38874583c5dc4434a07ec05a02a24f..0000000000000000000000000000000000000000
--- a/matlab/reports/@pages/getPages.m
+++ /dev/null
@@ -1,33 +0,0 @@
-function e = getPages(ps, varargin)
-% function e = getPages(ps, varargin)
-% Sections Class Constructor
-%
-% INPUTS
-%   ps              [pages]  pages object
-%   varargin                 options to @objArray.getObjs
-%
-% OUTPUTS
-%   ps              [pages] array of page objects
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-e = ps.objArray.getObjs(varargin{:});
-end
\ No newline at end of file
diff --git a/matlab/reports/@pages/pages.m b/matlab/reports/@pages/pages.m
deleted file mode 100644
index 78003bde60d318f33e74c34e070b429069f667c0..0000000000000000000000000000000000000000
--- a/matlab/reports/@pages/pages.m
+++ /dev/null
@@ -1,43 +0,0 @@
-function ps = pages(varargin)
-%function ps = pages(varargin)
-% Pages Class Constructor
-%
-% INPUTS
-%   varargin        0 args  : empty pages object
-%                   1 arg   : must be pages object (return a copy of arg)
-%
-% OUTPUTS
-%   ps     [pages] pages object
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch nargin
-    case 0
-        ps = class(struct, 'pages', objArray());
-    case 1
-        assert(isa(varargin{1}, 'pages'), ...
-               ['@pages.pages: With one arg to pages constructor, you must ' ...
-                'pass an pages object or a char.']);
-        ps = varargin{1};
-    otherwise
-        error('@pages.pages: invalid number of arguments');
-end
-end
\ No newline at end of file
diff --git a/matlab/reports/@pages/subsref.m b/matlab/reports/@pages/subsref.m
deleted file mode 100644
index 643f218c190fd94dedcfc5891ae7c2063255f753..0000000000000000000000000000000000000000
--- a/matlab/reports/@pages/subsref.m
+++ /dev/null
@@ -1,48 +0,0 @@
-function A = subsref(A, S)
-%function A = subsref(A, S)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch S(1).type
-    case '.'
-        switch S(1).subs
-            case fieldnames(A)
-                A = A.(S(1).subs);
-            case methods(A)
-                if areParensNext(S)
-                    A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
-                else
-                    A = feval(S(1).subs, A);
-                end
-            otherwise
-                error(['@pages.subsref: unknown field or method: ' S(1).subs]);
-        end
-    case '()'
-        A = getPages(A, S(1).subs{:});
-    case '{}'
-        error(['@pages.subsref: ' S(1).type ' indexing not supported.']);
-    otherwise
-        error('@pages.subsref: impossible case')
-end
-
-S = shiftS(S);
-if length(S) >= 1
-    A = subsref(A, S);
-end
-end
diff --git a/matlab/reports/@report/addGraph.m b/matlab/reports/@report/addGraph.m
index f5f48a7aa19ecb95667c2b2af62c828889cb1956..9e0e691e88cad9e5adcb238c5c946388c7cb7520 100644
--- a/matlab/reports/@report/addGraph.m
+++ b/matlab/reports/@report/addGraph.m
@@ -12,7 +12,7 @@ function o = addGraph(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,6 +29,6 @@ function o = addGraph(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-o.pages(end).sections(end) = ...
-    o.pages(end).sections(end).addGraph(varargin{:});
+o.pages{end}.sections{end} = ...
+    o.pages{end}.sections{end}.addGraph(varargin{:});
 end
diff --git a/matlab/reports/@report/addPage.m b/matlab/reports/@report/addPage.m
index 0f65bead4f1932ec4698a63c03ed9f8865e77e2c..c44cbf2333d644769c0f449e86a52d5c79b15713 100644
--- a/matlab/reports/@report/addPage.m
+++ b/matlab/reports/@report/addPage.m
@@ -12,7 +12,7 @@ function o = addPage(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,6 +29,7 @@ function o = addPage(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-o.pages = o.pages.addPage('orientation', o.orientation, 'paper', o.paper, ...
-                          varargin{:});
+np = length(o.pages) + 1;
+fprintf(1, 'Adding Page: %d\n', np);
+o.pages{np} = page('orientation', o.orientation, 'paper', o.paper, varargin{:});
 end
diff --git a/matlab/reports/@report/addSection.m b/matlab/reports/@report/addSection.m
index 47d2861f565639fe6cfecbbc44f98868c668343a..3387b9466662585443e01420a974d8932e535956 100644
--- a/matlab/reports/@report/addSection.m
+++ b/matlab/reports/@report/addSection.m
@@ -12,7 +12,7 @@ function o = addSection(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,5 +29,5 @@ function o = addSection(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-o.pages(end) = o.pages(end).addSection(varargin{:});
+o.pages{end} = o.pages{end}.addSection(varargin{:});
 end
diff --git a/matlab/reports/@report/addSeries.m b/matlab/reports/@report/addSeries.m
index 95f90e4d0fec95132124e6009229431271a52f00..459230bfe0c45cb07d89ce5174e38f58655389e1 100644
--- a/matlab/reports/@report/addSeries.m
+++ b/matlab/reports/@report/addSeries.m
@@ -12,7 +12,7 @@ function o = addSeries(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,10 +29,10 @@ function o = addSeries(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-assert(isa(o.pages(end).sections(end).elements(end), 'graph') || ...
-       isa(o.pages(end).sections(end).elements(end), 'table'), ...
-       '@report.addSeries: you can only add a series to a table or graph object');
+assert(isa(o.pages{end}.sections{end}.elements{end}, 'graph') || ...
+       isa(o.pages{end}.sections{end}.elements{end}, 'report_table'), ...
+       '@report.addSeries: you can only add a series to a report_table or graph object');
 
-o.pages(end).sections(end).elements(end) = ...
-    o.pages(end).sections(end).elements(end).addSeries(varargin{:});
+o.pages{end}.sections{end}.elements{end} = ...
+    o.pages{end}.sections{end}.elements{end}.addSeries(varargin{:});
 end
diff --git a/matlab/reports/@report/addTable.m b/matlab/reports/@report/addTable.m
index 3de9ddb3961de1765462f13e9013637c168bbece..4b1f8c0d4d7812f9faa2c1787d931e31b058650b 100644
--- a/matlab/reports/@report/addTable.m
+++ b/matlab/reports/@report/addTable.m
@@ -12,7 +12,7 @@ function o = addTable(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,6 +29,6 @@ function o = addTable(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-o.pages(end).sections(end) = ...
-    o.pages(end).sections(end).addTable(varargin{:});
+o.pages{end}.sections{end} = ...
+    o.pages{end}.sections{end}.addTable(varargin{:});
 end
diff --git a/matlab/reports/@report/addVspace.m b/matlab/reports/@report/addVspace.m
index d74e654d47b10c63e1aed9656402459e1f1aac80..f4ca186d6c6296d6c92356a0c28b630a6d6c99fb 100644
--- a/matlab/reports/@report/addVspace.m
+++ b/matlab/reports/@report/addVspace.m
@@ -12,7 +12,7 @@ function o = addVspace(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,6 +29,6 @@ function o = addVspace(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-o.pages(end).sections(end) = ...
-    o.pages(end).sections(end).addVspace(varargin{:});
+o.pages{end}.sections{end} = ...
+    o.pages{end}.sections{end}.addVspace(varargin{:});
 end
diff --git a/matlab/reports/@report/compile.m b/matlab/reports/@report/compile.m
old mode 100755
new mode 100644
index 06b48db8f9dfc4f279df080e42ea4d79fac0e4b9..10d08bda56cf4a521ad4fb568cb34bd3eee55b05
--- a/matlab/reports/@report/compile.m
+++ b/matlab/reports/@report/compile.m
@@ -13,7 +13,7 @@ function o = compile(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -42,12 +42,13 @@ else
     compiler = o.compiler;
 end
 
-if ~exist(o.filename, 'file')
+if ~exist(o.fileName, 'file')
     o.write();
 end
 
 middle = ' ./';
-if exist('OCTAVE_VERSION')
+options = '-synctex=1';
+if isoctave
     echo = 1;
 else
     echo = '-echo';
@@ -71,8 +72,8 @@ if isempty(compiler)
     o.compiler = compiler;
 end
 
-status = system([compiler middle o.filename], echo);
-[junk, rfn, junk] = fileparts(o.filename);
+status = system([compiler ' ' options middle o.fileName], echo);
+[junk, rfn, junk] = fileparts(o.fileName);
 
 if status ~= 0
     error(['@report.compile: There was an error in compiling ' rfn '.pdf.' ...
@@ -82,7 +83,7 @@ fprintf(1, '\n\nDone.\n')
 disp('Your compiled report is located here:');
 disp(['     ' pwd filesep rfn '.pdf']);
 
-if ~exist('OCTAVE_VERSION')
+if ~isoctave
     open([pwd filesep rfn '.pdf']);
 end
 end
\ No newline at end of file
diff --git a/matlab/reports/@report/display.m b/matlab/reports/@report/display.m
index 92fe85a24026557952c5cab78db5f08615e395ba..1f4a535c53278602edd8893d04195702f90830f0 100644
--- a/matlab/reports/@report/display.m
+++ b/matlab/reports/@report/display.m
@@ -11,7 +11,7 @@ function display(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+display_reporting_object(o);
 end
\ No newline at end of file
diff --git a/matlab/reports/@report/numPages.m b/matlab/reports/@report/numPages.m
index 5863c55e1d0846a5fe8183d793c1835d07208c4a..98f4b8900da4d6cd0a6b6f6308352d2939bc7305 100644
--- a/matlab/reports/@report/numPages.m
+++ b/matlab/reports/@report/numPages.m
@@ -11,7 +11,7 @@ function n = numPages(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function n = numPages(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-n = o.pages.numPages();
+n = length(o.pages);
 end
\ No newline at end of file
diff --git a/matlab/reports/@report/report.m b/matlab/reports/@report/report.m
index 19b399dcf5904df56a8808cdaa7da8b8d6d094ad..4aabeb5a8b322de798ab967687332605bde2e2d7 100644
--- a/matlab/reports/@report/report.m
+++ b/matlab/reports/@report/report.m
@@ -13,7 +13,7 @@ function o = report(varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -37,8 +37,8 @@ o.orientation = 'portrait';
 o.paper = 'a4';
 o.margin = 2.5;
 o.marginUnit = 'cm';
-o.pages = pages();
-o.filename = 'report.tex';
+o.pages = {};
+o.fileName = 'report.tex';
 o.showDate = true;
 o.compiler = '';
 
@@ -69,7 +69,7 @@ end
 
 % Check options provided by user
 assert(ischar(o.title), '@report.report: title must be a string');
-assert(ischar(o.filename), '@report.report: filename must be a string');
+assert(ischar(o.fileName), '@report.report: fileName must be a string');
 assert(ischar(o.compiler), '@report.report: compiler file must be a string');
 assert(islogical(o.showDate), '@report.report: showDate must be either true or false');
 assert(isfloat(o.margin) && o.margin > 0, '@report.report: margin must be a float > 0.');
diff --git a/matlab/reports/@report/subsasgn.m b/matlab/reports/@report/subsasgn.m
index 60c7d969c2902c9c9856e8eb48110addecccd683..515a1ded927c1df646277315a7e9793908fbec79 100644
--- a/matlab/reports/@report/subsasgn.m
+++ b/matlab/reports/@report/subsasgn.m
@@ -1,7 +1,7 @@
 function B = subsasgn(A, S, V)
 % function B = subsasgn(A, S, V)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -32,7 +32,7 @@ switch S.type
     case '()'
         index = S.subs{:};
         assert(isnumeric(index));
-        B.pages(index) = V;
+        B.pages{index} = V;
     case '.'
         switch S.subs
             case fieldnames(A)
diff --git a/matlab/reports/@report/subsref.m b/matlab/reports/@report/subsref.m
index f8714054d74958bfc27775325b470cd280597f0c..29b7156bebbdfe4c39559363191b0a1babbd57e6 100644
--- a/matlab/reports/@report/subsref.m
+++ b/matlab/reports/@report/subsref.m
@@ -1,7 +1,7 @@
 function A = subsref(A, S)
 %function A = subsref(A, S)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -26,7 +26,7 @@ switch S(1).type
             case methods(A)
                 if areParensNext(S)
                     A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
+                    S = shiftS(S,1);
                 else
                     A = feval(S(1).subs, A);
                 end
@@ -34,14 +34,14 @@ switch S(1).type
                 error(['@report.subsasgn: unknown field or method: ' S(1).subs]);
         end
     case '()'
-        A = A.pages.getPages(S(1).subs{:});
+        A = A.pages{S(1).subs{:}};
     case '{}'
         error(['@report.subsasgn: ' S(1).type ' indexing not supported.']);
     otherwise
         error('@report.subsasgn: impossible case');
 end
 
-S = shiftS(S);
+S = shiftS(S,1);
 if length(S) >= 1
     A = subsref(A, S);
 end
diff --git a/matlab/reports/@report/write.m b/matlab/reports/@report/write.m
index 03b0dfc9a8e79227c075dc9745652aff1021394e..060f8ccda6a696f03205054c93538abc430e2876 100644
--- a/matlab/reports/@report/write.m
+++ b/matlab/reports/@report/write.m
@@ -11,7 +11,7 @@ function o = write(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,9 +28,9 @@ function o = write(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-[fid, msg] = fopen(o.filename, 'w');
+[fid, msg] = fopen(o.fileName, 'w');
 if fid == -1
-    error(['@report.subsasgn: ' msg]);
+    error(['@report.write: ' msg]);
 end
 
 fprintf(fid, '%% Report Object\n');
@@ -41,19 +41,20 @@ if strcmpi(o.orientation, 'landscape')
     fprintf(fid, ',landscape');
 end
 fprintf(fid, ']{geometry}\n');
-fprintf(fid, '\\usepackage{pdflscape, pgf, booktabs}\n');
+fprintf(fid, '\\usepackage{pdflscape, booktabs, pgfplots, colortbl, adjustbox}\n');
+fprintf(fid, '\\pgfplotsset{compat=1.5.1}');
 fprintf(fid, ['\\makeatletter\n' ...
               '\\def\\blfootnote{\\gdef\\@thefnmark{}\\@footnotetext}\n' ...
               '\\makeatother\n']);
 
-if exist('OCTAVE_VERSION') && isempty(regexpi(computer, '.*apple.*', 'once'))
+if isoctave && isempty(regexpi(computer, '.*apple.*', 'once'))
     fprintf(fid, '\\usepackage[T1]{fontenc}\n');
     fprintf(fid, '\\usepackage[utf8x]{inputenc}\n');
     fprintf(fid, '\\usepackage{gnuplot-lua-tikz}\n');
-else
-    fprintf(fid, '\\usepackage{pgfplots}\n');
 end
 
+fprintf(fid, '\\definecolor{LightCyan}{rgb}{0.88,1,1}\n');
+fprintf(fid, '\\definecolor{Gray}{gray}{0.9}\n');
 if o.showDate
     fprintf(fid, '\\usepackage{fancyhdr, datetime}\n');
     fprintf(fid, '\\newdateformat{reportdate}{\\THEDAY\\ \\shortmonthname\\ \\THEYEAR}\n');
@@ -67,19 +68,25 @@ end
 fprintf(fid, '\\renewcommand{\\textfraction}{0.05}\n');
 fprintf(fid, '\\renewcommand{\\topfraction}{0.8}\n');
 fprintf(fid, '\\renewcommand{\\bottomfraction}{0.8}\n');
-fprintf(fid, '\\usepackage[Export,PGF]{adjustbox}\n');
 fprintf(fid, '\\setlength{\\parindent}{0in}\n');
 fprintf(fid, '\\newlength\\sectionheight\n');
 fprintf(fid, '\\begin{document}\n');
+fprintf(fid, '\\pgfdeclarelayer{background}\n');
+fprintf(fid, '\\pgfdeclarelayer{foreground}\n');
+fprintf(fid, '\\pgfsetlayers{background,main,foreground}\n');
 fprintf(fid, '\\centering\n');
 
-o.pages.write(fid);
+nps = length(o.pages);
+for i=1:nps
+    fprintf(1, 'Writing Page: %d\n', i);
+    o.pages{i}.write(fid, i);
+end
 
 fprintf(fid, '\\end{document}\n');
 fprintf(fid, '%% End Report Object\n');
 status = fclose(fid);
 if status == -1
-    error('@report.wrie: closing %s\n', o.filename);
+    error('@report.write: closing %s\n', o.fileName);
 end
 disp('Finished Writing Report!');
 end
diff --git a/matlab/reports/@series/display.m b/matlab/reports/@report_series/display.m
similarity index 84%
rename from matlab/reports/@series/display.m
rename to matlab/reports/@report_series/display.m
index 5ad241bee513fc40d4f4d4099db93922e2ea95b5..d4e0ba5e64d8460fb4da89d862d7a21a2c98463d 100644
--- a/matlab/reports/@series/display.m
+++ b/matlab/reports/@report_series/display.m
@@ -1,9 +1,9 @@
 function display(o)
 %function display(o)
-% Display a Series object
+% Display a Report_Series object
 %
 % INPUTS
-%   o   [series] series object
+%   o   [report_series] report_series object
 %
 % OUTPUTS
 %   none
@@ -11,7 +11,7 @@ function display(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+display_reporting_object(o);
 end
\ No newline at end of file
diff --git a/matlab/reports/@series/getRange.m b/matlab/reports/@report_series/getRange.m
similarity index 97%
rename from matlab/reports/@series/getRange.m
rename to matlab/reports/@report_series/getRange.m
index 0b941c4e7d71cc00144653965cdfc3f28c24bab4..bf5b816bd8c2c1e4b4cf590fb149b4dab78d115d 100644
--- a/matlab/reports/@series/getRange.m
+++ b/matlab/reports/@report_series/getRange.m
@@ -19,5 +19,5 @@ function dd = getRange(o)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 assert(~isempty(o.data) && size(o.data, 2) == 1);
-dd = o.data.time;
+dd = o.data.dates;
 end
\ No newline at end of file
diff --git a/matlab/reports/@series/getTexName.m b/matlab/reports/@report_series/getTexName.m
similarity index 97%
rename from matlab/reports/@series/getTexName.m
rename to matlab/reports/@report_series/getTexName.m
index e79660836288717595209ff93b39690da3aeb906..90e6ba23358cd0fbc33b76f85a9da58f7c763fcd 100644
--- a/matlab/reports/@series/getTexName.m
+++ b/matlab/reports/@report_series/getTexName.m
@@ -19,5 +19,5 @@ function s = getTexName(o)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 assert(~isempty(o.data) && size(o.data, 2) == 1);
-s = o.data(1).tex();
+s = o.data.tex{:};
 end
\ No newline at end of file
diff --git a/matlab/reports/@report_series/printSeries.m b/matlab/reports/@report_series/printSeries.m
new file mode 100644
index 0000000000000000000000000000000000000000..15867a06817f85d446716af0c21c9eb1108cf160
--- /dev/null
+++ b/matlab/reports/@report_series/printSeries.m
@@ -0,0 +1,57 @@
+function o = printSeries(o, fid, dser, dates, precision)
+%function printSeries(o, fid, dser, dates, precision)
+% function to print a row of data, contained in dser
+%
+% INPUTS
+%   fid          [int]              file id
+%   dser         [string]           name of data series to be printed
+%   dates        [dates]            dates for report_series slice
+%   precision    [float]            precision with which to print the data
+%
+%
+% OUTPUTS
+%   o            [report_series]    report_series object
+%
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+dataString = sprintf('%%.%df', precision);
+precision  = 10^precision;
+
+data = dser(dates);
+data = data.data;
+for i=1:size(data,1)
+    fprintf(fid, '&');
+    if o.tableShowMarkers
+        if data(i) < -o.tableMarkerLimit
+            fprintf(fid, '\\color{%s}', o.tableNegColor);
+        elseif data(i) > o.tableMarkerLimit
+            fprintf(fid, '\\color{%s}', o.tablePosColor);
+        end
+        fprintf(fid, '[');
+    end
+
+    fprintf(fid, dataString, round(data(i)*precision)/precision);
+
+    if o.tableShowMarkers
+        fprintf(fid, ']');
+    end
+end
+end
\ No newline at end of file
diff --git a/matlab/reports/@series/series.m b/matlab/reports/@report_series/report_series.m
similarity index 59%
rename from matlab/reports/@series/series.m
rename to matlab/reports/@report_series/report_series.m
index 6493dced7ce6ac6f7c43b63e06bc99ef503126c8..41d6286b0cd9a7dd23e1c9aae018b0afb7db63b8 100644
--- a/matlab/reports/@series/series.m
+++ b/matlab/reports/@report_series/report_series.m
@@ -1,20 +1,20 @@
-function o = series(varargin)
-%function o = series(varargin)
-% Series Class Constructor
+function o = report_series(varargin)
+%function o = report_series(varargin)
+% Report_Series Class Constructor
 %
 % INPUTS
-%   varargin        0 args  : empty series object
-%                   1 arg   : must be series object (return a copy of arg)
+%   varargin        0 args  : empty report_series object
+%                   1 arg   : must be report_series object (return a copy of arg)
 %                   > 1 args: option/value pairs (see structure below for
 %                   options)
 %
 % OUTPUTS
-%   o   [series] series object
+%   o   [report_series] report_series object
 %
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -35,32 +35,38 @@ o = struct;
 
 o.data = '';
 
-o.graphLineColor = 'k';
-o.graphLineStyle = '-';
+o.graphLineColor = 'black';
+o.graphLineStyle = 'solid';
 o.graphLineWidth = 0.5;
 
 o.graphMarker = '';
-o.graphMarkerEdgeColor = 'auto';
-o.graphMarkerFaceColor = 'auto';
-o.graphMarkerSize = 6;
+o.graphMarkerEdgeColor = '';
+o.graphMarkerFaceColor = '';
+o.graphMarkerSize = 1;
 
 o.tableShowMarkers = false;
 o.tableNegColor = 'red';
 o.tablePosColor = 'blue';
 o.tableMarkerLimit = 1e-4;
 
+o.tableSubSectionHeader = '';
 o.tableAlignRight = false;
 
-o.zerotol = 1e-6;
+o.tableRowColor = 'white';
+o.tableRowIndent = 0;
+
+o.tableDataRhs = '';
+
+o.zeroTol = 1e-6;
 
 if nargin == 1
-    assert(isa(varargin{1}, 'series'),['@series.series: with one arg you ' ...
-                        'must pass a series object']);
+    assert(isa(varargin{1}, 'report_series'),['@report_series.report_series: with one arg you ' ...
+                        'must pass a report_series object']);
     o = varargin{1};
     return;
 elseif nargin > 1
     if round(nargin/2) ~= nargin/2
-        error(['@series.series: options must be supplied in name/value ' ...
+        error(['@report_series.report_series: options must be supplied in name/value ' ...
                'pairs.']);
     end
 
@@ -73,11 +79,11 @@ elseif nargin > 1
         if ~isempty(ind)
             o.(optNames{ind}) = pair{2};
         else
-            error('@series.series: %s is not a recognized option.', pair{1});
+            error('@report_series.report_series: %s is not a recognized option.', pair{1});
         end
     end
 end
 
-% Create series object
-o = class(o, 'series');
+% Create report_series object
+o = class(o, 'report_series');
 end
\ No newline at end of file
diff --git a/matlab/reports/@series/subsasgn.m b/matlab/reports/@report_series/subsasgn.m
similarity index 88%
rename from matlab/reports/@series/subsasgn.m
rename to matlab/reports/@report_series/subsasgn.m
index cb14b1e4eb93404ca4d5d17394a9be4c33853b4e..fdf0f7db57df94f63bbeb81723cb2bcd896d9450 100644
--- a/matlab/reports/@series/subsasgn.m
+++ b/matlab/reports/@report_series/subsasgn.m
@@ -34,9 +34,9 @@ switch S.type
             case fieldnames(A)
                 B.(S.subs) = V;
             otherwise
-                error(['@series.subsasgn: field ' S.subs 'does not exist']);
+                error(['@report_series.subsasgn: field ' S.subs 'does not exist']);
         end
     otherwise
-        error('@series.subsasgn: syntax error');
+        error('@report_series.subsasgn: syntax error');
 end
 end
\ No newline at end of file
diff --git a/matlab/reports/@series/subsref.m b/matlab/reports/@report_series/subsref.m
similarity index 78%
rename from matlab/reports/@series/subsref.m
rename to matlab/reports/@report_series/subsref.m
index 5fb142fcfe68361c898a88b45bf377df81c5ed64..938b9f4b78723d31a8b934e6fa9c4dfe0af67704 100644
--- a/matlab/reports/@series/subsref.m
+++ b/matlab/reports/@report_series/subsref.m
@@ -1,7 +1,7 @@
 function A = subsref(A, S)
 %function A = subsref(A, S)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -26,20 +26,20 @@ switch S(1).type
             case methods(A)
                 if areParensNext(S)
                     A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
+                    S = shiftS(S,1);
                 else
                     A = feval(S(1).subs, A);
                 end
             otherwise
-                error(['@series.subsref: unknown field or method: ' S(1).subs]);
+                error(['@report_series.subsref: unknown field or method: ' S(1).subs]);
         end
     case {'()', '{}'}
-        error(['@series.subsref: ' S(1).type ' indexing not supported.']);
+        error(['@report_series.subsref: ' S(1).type ' indexing not supported.']);
     otherwise
-        error('@series.subsref: impossible case')
+        error('@report_series.subsref: impossible case')
 end
 
-S = shiftS(S);
+S = shiftS(S,1);
 if length(S) >= 1
     A = subsref(A, S);
 end
diff --git a/matlab/reports/@report_series/writeSeriesForGraph.m b/matlab/reports/@report_series/writeSeriesForGraph.m
new file mode 100644
index 0000000000000000000000000000000000000000..45f98f507f412fe0defd9f3ab9735517cfcd4291
--- /dev/null
+++ b/matlab/reports/@report_series/writeSeriesForGraph.m
@@ -0,0 +1,104 @@
+function o = writeSeriesForGraph(o, fid, xrange)
+%function o = writeSeriesForGraph(o, fid, xrange)
+% Print a TikZ line
+%
+% INPUTS
+%   o       [report_series]    series object
+%   xrange  [dates]            range of x values for line
+%
+% OUTPUTS
+%   NONE
+%
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+%% Validate options provided by user
+assert(~isempty(o.data) && isa(o.data, 'dseries'), ['@report_series.writeSeriesForGraph: must ' ...
+                    'provide data as a dseries']);
+
+% Line
+valid_graphLineColor = {'red', 'green', 'blue', 'cyan ', 'magenta', 'yellow', ...
+                    'black', 'gray', 'darkgray', 'lightgray', 'brown', ...
+                    'lime', 'olive', 'orange', 'pink', 'purple', 'teal', 'violet', 'white'};
+assert(any(strcmp(o.graphLineColor, valid_graphLineColor)), ...
+       ['@report_series.writeSeriesForGraph: graphLineColor must be one of ' strjoin(valid_graphLineColor)]);
+assert(ischar(o.graphLineStyle), '@report_series.writeSeriesForGraph: graphLineStyle must be a string');
+assert(isfloat(o.graphLineWidth) && o.graphLineWidth > 0, ...
+                    '@report_series.writeSeriesForGraph: graphLineWidth must be a positive number');
+
+% GraphMarker
+valid_graphMarker = {'x', '+', '-', '|', 'o', 'asterisk', 'star', '10-pointed star', 'oplus', ...
+                    'oplus*', 'otimes', 'otimes*', 'square', 'square*', 'triangle', 'triangle*', 'diamond', ...
+                    'diamond*', 'halfdiamond*', 'halfsquare*', 'halfsquare right*', ...
+                    'halfsquare left*','Mercedes star','Mercedes star flipped','halfcircle',...
+                    'halfcircle*','pentagon','pentagon star'};
+assert(isempty(o.graphMarker) || any(strcmp(o.graphMarker, valid_graphMarker)), ...
+       ['@report_series.writeSeriesForGraph: graphMarker must be one of ' strjoin(valid_graphMarker)]);
+
+assert(ischar(o.graphMarkerEdgeColor), '@report_series.writeSeriesForGraph: graphMarkerEdgeColor must be a string');
+assert(ischar(o.graphMarkerFaceColor), '@report_series.writeSeriesForGraph: graphMarkerFaceColor must be a string');
+assert(isfloat(o.graphMarkerSize) && o.graphMarkerSize > 0, ...
+                    '@report_series.writeSeriesForGraph: graphMarkerSize must be a positive number');
+
+% Marker & Line
+assert(~(strcmp(o.graphLineStyle, 'none') && isempty(o.graphMarker)), ['@report_series.writeSeriesForGraph: ' ...
+                    'you must provide at least one of graphLineStyle and graphMarker']);
+
+% Validate xrange
+
+
+% Zero tolerance
+assert(isfloat(o.zeroTol), '@report_series.write: zeroTol must be a float');
+
+%%
+if isempty(xrange) || all(xrange == o.data.dates)
+    ds = o.data;
+else
+    ds = o.data(xrange);
+end
+
+% if graphing data that is within zeroTol, set to zero, create report_series and
+% get line:
+thedata = ds.data;
+stz = bsxfun(@and, ...
+             bsxfun(@lt, thedata, o.zeroTol), ...
+             bsxfun(@gt, thedata, -o.zeroTol));
+if any(stz)
+    thedata(stz) = 0;
+end
+
+fprintf(fid, '%%series %s\n\\addplot[color=%s,%s,line width=%fpt,line join=round',...
+        o.data.name{:}, o.graphLineColor, o.graphLineStyle, o.graphLineWidth);
+if ~isempty(o.graphMarker)
+    if isempty(o.graphMarkerEdgeColor)
+        o.graphMarkerEdgeColor = o.graphLineColor;
+    end
+    if isempty(o.graphMarkerFaceColor)
+        o.graphMarkerFaceColor = o.graphLineColor;
+    end
+    fprintf(fid, ',mark=%s,mark size=%f,every mark/.append style={draw=%s,fill=%s}',...
+            o.graphMarker,o.graphMarkerSize,o.graphMarkerEdgeColor,o.graphMarkerFaceColor);
+end
+fprintf(fid,']\ntable[row sep=crcr]{\nx y\\\\\n');
+for i=1:ds.dates.ndat
+    fprintf(fid, '%d %f\\\\\n', i, thedata(i));
+end
+fprintf(fid,'};\n');
+end
diff --git a/matlab/reports/@report_series/writeSeriesForTable.m b/matlab/reports/@report_series/writeSeriesForTable.m
new file mode 100644
index 0000000000000000000000000000000000000000..a35d0531a93748ed71509be15ef17f4abfec6559
--- /dev/null
+++ b/matlab/reports/@report_series/writeSeriesForTable.m
@@ -0,0 +1,95 @@
+function o = writeSeriesForTable(o, fid, dates, precision)
+%function o = writeSeriesForTable(o, fid, dates, precision)
+% Write Table Row
+%
+% INPUTS
+%   o            [report_series]    report_series object
+%   fid          [int]              file id
+%   dates        [dates]            dates for report_series slice
+%   precision    [float]            precision with which to print the data
+%
+%
+% OUTPUTS
+%   o            [report_series]    report_series object
+%
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 2013-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+%% Validate options passed to function
+assert(fid ~= -1);
+for i=1:length(dates)
+    assert(isa(dates{i}, 'dates'));
+end
+assert(isint(precision));
+
+%% Validate options provided by user
+assert(ischar(o.tableSubSectionHeader), '@report_series.writeSeriesForTable: tableSubSectionHeader must be a string');
+if isempty(o.tableSubSectionHeader)
+    assert(~isempty(o.data) && isa(o.data, 'dseries'), ...
+           '@report_series.writeSeriesForTable: must provide data as a dseries');
+
+    if ~isempty(o.tableDataRhs)
+        assert(~isempty(o.tableDataRhs) && isa(o.tableDataRhs, 'dseries'), ...
+               '@report_series.writeSeriesForTable: must provide tableDataRhs as a dseries');
+        assert(iscell(dates) && length(dates) == 2, ...
+               '@report_series.writeSeriesForTable: must provide second range with tableDataRhs');
+    end
+end
+
+assert(ischar(o.tableNegColor), '@report_series.writeSeriesForTable: tableNegColor must be a string');
+assert(ischar(o.tablePosColor), '@report_series.writeSeriesForTable: tablePosColor must be a string');
+assert(ischar(o.tableRowColor), '@report_series.writeSeriesForTable: tableRowColor must be a string');
+assert(isint(o.tableRowIndent), '@report_series.writeSeriesForTable: tableRowIndent must be an integer');
+assert(islogical(o.tableShowMarkers), '@report_series.writeSeriesForTable: tableShowMarkers must be true or false');
+assert(islogical(o.tableAlignRight), '@report_series.writeSeriesForTable: tableAlignRight must be true or false');
+assert(isfloat(o.tableMarkerLimit), '@report_series.writeSeriesForTable: tableMarkerLimit must be a float');
+
+%% Write Output
+fprintf(fid, '%% Table Row (report_series)\n');
+if ~isempty(o.tableRowColor)
+    fprintf(fid, '\\rowcolor{%s}', o.tableRowColor);
+end
+if ~isempty(o.tableSubSectionHeader)
+    fprintf(fid, '%s', o.tableSubSectionHeader);
+    fprintf(fid, '\\\\%%\n');
+    return;
+end
+if o.tableAlignRight
+    fprintf(fid, '\\multicolumn{1}{r}{');
+end
+if o.tableRowIndent == 0
+    fprintf(fid, '\\noindent');
+else
+    for i=1:o.tableRowIndent
+        fprintf(fid,'\\indent');
+    end
+end
+fprintf(fid, ' %s', o.data.tex{:});
+if o.tableAlignRight
+    fprintf(fid, '}');
+end
+
+printSeries(o, fid, o.data, dates{1}, precision);
+if ~isempty(o.tableDataRhs)
+    printSeries(o, fid, o.tableDataRhs, dates{2}, precision);
+end
+
+fprintf(fid, '\\\\%%\n');
+end
diff --git a/matlab/reports/@series/getName.m b/matlab/reports/@report_series/ymax.m
similarity index 85%
rename from matlab/reports/@series/getName.m
rename to matlab/reports/@report_series/ymax.m
index 9340359631dda4c6f8c0f8cd689d0927fc420630..eac0aaad15afc263b6b72eca8a7eb54afe319633 100644
--- a/matlab/reports/@series/getName.m
+++ b/matlab/reports/@report_series/ymax.m
@@ -1,7 +1,7 @@
-function s = getName(o)
-%function s = getName(o)
+function ymax = ymax(o, dd)
+%function ymax = ymax(o, dd)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -19,5 +19,5 @@ function s = getName(o)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 assert(~isempty(o.data) && size(o.data, 2) == 1);
-s = o.data(1).name();
+ymax = max(o.data(dd).data);
 end
\ No newline at end of file
diff --git a/matlab/reports/@elements/addGraph.m b/matlab/reports/@report_series/ymin.m
similarity index 79%
rename from matlab/reports/@elements/addGraph.m
rename to matlab/reports/@report_series/ymin.m
index ace48fc87c42739a78338e4fb17b161124620e81..21754604777c9d10f7f5cb57a1b7804d92fa5ca6 100644
--- a/matlab/reports/@elements/addGraph.m
+++ b/matlab/reports/@report_series/ymin.m
@@ -1,7 +1,7 @@
-function e = addGraph(e, varargin)
-% function e = addGraph(e, varargin)
+function ymin = ymin(o, dd)
+%function ymin = ymin(o, dd)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -18,5 +18,6 @@ function e = addGraph(e, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-e.objArray = e.objArray.addObj(graph(varargin{:}));
+assert(~isempty(o.data) && size(o.data, 2) == 1);
+ymin = min(o.data(dd).data);
 end
\ No newline at end of file
diff --git a/matlab/reports/@seriesElements/addSeries.m b/matlab/reports/@report_table/addSeries.m
similarity index 89%
rename from matlab/reports/@seriesElements/addSeries.m
rename to matlab/reports/@report_table/addSeries.m
index 3c683576cec0f78ff962f5843e44d25ba9d2a784..6a0f6d23e5f9be920d63bad549fc38c9f6d14762 100644
--- a/matlab/reports/@seriesElements/addSeries.m
+++ b/matlab/reports/@report_table/addSeries.m
@@ -1,7 +1,7 @@
 function o = addSeries(o, varargin)
 % function o = addSeries(o, varargin)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -18,5 +18,5 @@ function o = addSeries(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-o.objArray = o.objArray.addObj(series(varargin{:}));
+o.series{end+1} = report_series(varargin{:});
 end
\ No newline at end of file
diff --git a/matlab/reports/@elements/display.m b/matlab/reports/@report_table/display.m
similarity index 84%
rename from matlab/reports/@elements/display.m
rename to matlab/reports/@report_table/display.m
index 1c13a194f1728b05fc8be8cb99958b820a224502..f5bcf888c677f66e17889b6931554bb58a21fdef 100644
--- a/matlab/reports/@elements/display.m
+++ b/matlab/reports/@report_table/display.m
@@ -1,9 +1,9 @@
 function display(o)
 %function display(o)
-% Display a Elements object
+% Display a Report_Table object
 %
 % INPUTS
-%   o   [elements] elements object
+%   o   [report_table] report_table object
 %
 % OUTPUTS
 %   none
@@ -11,7 +11,7 @@ function display(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+display_reporting_object(o);
 end
\ No newline at end of file
diff --git a/matlab/reports/@report_table/report_table.m b/matlab/reports/@report_table/report_table.m
new file mode 100644
index 0000000000000000000000000000000000000000..c49ca5fb6678c43fb92130e89e50ddfd26a78a41
--- /dev/null
+++ b/matlab/reports/@report_table/report_table.m
@@ -0,0 +1,136 @@
+function o = report_table(varargin)
+%function o = report_table(varargin)
+% Report_Table Class Constructor
+%
+% INPUTS
+%   0 args => empty report_table
+%   1 arg (report_table class) => copy object
+%
+% OUTPUTS
+%   none
+%
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 2013-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+o = struct;
+
+o.tableDirName = 'tmpRepDir';
+o.tableName = '';
+
+o.series = {};
+
+o.title = {''};
+titleFormatDefalut = {'\large'};
+o.titleFormat = titleFormatDefalut;
+
+o.showHlines = false;
+o.showVlines = false;
+o.vlineAfter = '';
+o.vlineAfterEndOfPeriod = false;
+
+o.data = '';
+o.seriesToUse = '';
+o.range = {};
+o.precision = 1;
+
+if nargin == 1
+    assert(isa(varargin{1}, 'report_table'),['With one arg to Report_Table constructor, ' ...
+                        'you must pass a report_table object']);
+    o = varargin{1};
+    return;
+elseif nargin > 1
+    if round(nargin/2) ~= nargin/2
+        error(['Options to Report_Table constructor must be supplied in name/value ' ...
+               'pairs.']);
+    end
+
+    optNames = fieldnames(o);
+
+    % overwrite default values
+    for pair = reshape(varargin, 2, [])
+        ind = strmatch(lower(pair{1}), lower(optNames), 'exact');
+        assert(isempty(ind) || length(ind) == 1);
+        if ~isempty(ind)
+            o.(optNames{ind}) = pair{2};
+        else
+            error('%s is not a recognized option to the Report_Table constructor.', pair{1});
+        end
+    end
+end
+if ~iscell(o.range)
+    o.range = {o.range};
+end
+
+if isa(o.vlineAfter, 'dates')
+    o.vlineAfter = {o.vlineAfter};
+end
+
+% Check options provided by user
+if ischar(o.title)
+    o.title = {o.title};
+end
+if ischar(o.titleFormat)
+    o.titleFormat = {o.titleFormat};
+end
+if length(o.title) ~= length(o.titleFormat)
+    o.titleFormat = repmat(titleFormatDefalut, 1, length(o.title));
+end
+assert(islogical(o.showHlines), '@report_table.report_table: showHlines must be true or false');
+assert(islogical(o.showVlines), '@report_table.report_table: showVlines must be true or false');
+assert(isint(o.precision), '@report_table.report_table: precision must be an int');
+assert(isempty(o.range) || length(o.range) <=2 && allCellsAreDatesRange(o.range), ...
+       ['@report_table.report_table: range is specified as a dates range, e.g. ' ...
+        '''dates(''1999q1''):dates(''1999q3'')''.']);
+assert(isempty(o.data) || isa(o.data, 'dseries'), ...
+       '@report_table.report_table: data must be a dseries');
+assert(isempty(o.seriesToUse) || iscellstr(o.seriesToUse), ...
+       '@report_table.report_table: seriesToUse must be a cell array of string(s)');
+assert(isempty(o.vlineAfter) || allCellsAreDates(o.vlineAfter), ...
+       '@report_table.report_table: vlineAfter must be a dates');
+if o.showVlines
+    o.vlineAfter = '';
+end
+assert(islogical(o.vlineAfterEndOfPeriod), ...
+       '@report_table.report_table: vlineAfterEndOfPeriod must be true or false');
+assert(iscellstr(o.title), ...
+       '@report_table.report_table: title must be a cell array of string(s)');
+assert(iscellstr(o.titleFormat), ...
+       '@report_table.report_table: titleFormat must be a cell array of string(s)');
+assert(ischar(o.tableName), '@report_table.report_table: tableName must be a string');
+assert(ischar(o.tableDirName), '@report_table.report_table: tableDirName must be a string');
+
+% using o.seriesToUse, create series objects and put them in o.series
+if ~isempty(o.data)
+    if isempty(o.seriesToUse)
+        for i=1:o.data.vobs
+            o = o.addSeries('data', o.data{o.data.name{i}});
+        end
+    else
+        for i=1:length(o.seriesToUse)
+            o = o.addSeries('data', o.data{o.seriesToUse{i}});
+        end
+    end
+end
+o = rmfield(o, 'seriesToUse');
+o = rmfield(o, 'data');
+
+% Create report_table object
+o = class(o, 'report_table');
+end
\ No newline at end of file
diff --git a/matlab/reports/@table/subsasgn.m b/matlab/reports/@report_table/subsasgn.m
similarity index 82%
rename from matlab/reports/@table/subsasgn.m
rename to matlab/reports/@report_table/subsasgn.m
index 1b903e6ccc80dcde168fbab4e5a43572898bb389..9ea3b0b76d5a13eab9ec13952986cde38b833ed6 100644
--- a/matlab/reports/@table/subsasgn.m
+++ b/matlab/reports/@report_table/subsasgn.m
@@ -34,9 +34,12 @@ switch S.type
             case fieldnames(A)
                 B.(S.subs) = V;
             otherwise
-                error(['@table.subsasgn: field ' S.subs 'does not exist in the table class'])
+                error(['@report_table.subsasgn: field ' S.subs 'does not exist in the report_table class'])
         end
+    case '{}'
+        assert(isint(S.subs{1}));
+        B{S.subs{1}} = V;
     otherwise
-        error('@table.subsasgn: syntax error')
+        error('@report_table.subsasgn: syntax error')
 end
 end
\ No newline at end of file
diff --git a/matlab/reports/@table/subsref.m b/matlab/reports/@report_table/subsref.m
similarity index 78%
rename from matlab/reports/@table/subsref.m
rename to matlab/reports/@report_table/subsref.m
index 7062d72ff026c9478c57dde82522d85ca1159762..97962ec41607396ebec30c7adc0f1c821c923d1c 100644
--- a/matlab/reports/@table/subsref.m
+++ b/matlab/reports/@report_table/subsref.m
@@ -1,7 +1,7 @@
 function A = subsref(A, S)
 %function A = subsref(A, S)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -26,20 +26,20 @@ switch S(1).type
             case methods(A)
                 if areParensNext(S)
                     A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
+                    S = shiftS(S,1);
                 else
                     A = feval(S(1).subs, A);
                 end
             otherwise
-                error(['@table.subsref: unknown field or method: ' S(1).subs]);
+                error(['@report_table.subsref: unknown field or method: ' S(1).subs]);
         end
     case {'()', '{}'}
-        error(['@table.subsref: ' S(1).type ' indexing not supported.']);
+        error(['@report_table.subsref: ' S(1).type ' indexing not supported.']);
     otherwise
-        error('@table.subsref: subsref.m impossible case')
+        error('@report_table.subsref: subsref.m impossible case')
 end
 
-S = shiftS(S);
+S = shiftS(S,1);
 if length(S) >= 1
     A = subsref(A, S);
 end
diff --git a/matlab/reports/@table/display.m b/matlab/reports/@report_table/write.m
similarity index 61%
rename from matlab/reports/@table/display.m
rename to matlab/reports/@report_table/write.m
index 658722079f6ba694722a18a08f67eefc2b2826e9..adc6dd9686ebb5294762f0d50c65646277b36027 100644
--- a/matlab/reports/@table/display.m
+++ b/matlab/reports/@report_table/write.m
@@ -1,17 +1,22 @@
-function display(o)
-%function display(o)
-% Display a Table object
+function o = write(o, fid, pg, sec, row, col)
+%function o = write(o, fid, pg, sec, row, col)
+% Write a Table object
 %
 % INPUTS
-%   o   [table] table object
+%   o   [table]   table object
+%   fid [integer] file id
+%   pg  [integer] this page number
+%   sec [integer] this section number
+%   row [integer] this row number
+%   col [integer] this col number
 %
 % OUTPUTS
-%   none
+%   o   [table] table object
 %
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +33,7 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
-end
\ No newline at end of file
+assert(fid ~= -1);
+o = writeTableFile(o, pg, sec, row, col);
+fprintf(fid, '\\input{%s}', o.tableName);
+end
diff --git a/matlab/reports/@report_table/writeTableFile.m b/matlab/reports/@report_table/writeTableFile.m
new file mode 100644
index 0000000000000000000000000000000000000000..ca6c46aacec3e3a3e70f5b3f3d8d80ab6b16ca11
--- /dev/null
+++ b/matlab/reports/@report_table/writeTableFile.m
@@ -0,0 +1,178 @@
+function o = writeTableFile(o, pg, sec, row, col)
+%function o = writeTableFile(o, pg, sec, row, col)
+% Write a Report_Table object
+%
+% INPUTS
+%   o   [report_table]    report_table object
+%   pg  [integer] this page number
+%   sec [integer] this section number
+%   row [integer] this row number
+%   col [integer] this col number
+%
+% OUTPUTS
+%   o   [report_table]    report_table object
+%
+% SPECIAL REQUIREMENTS
+%   none
+
+% Copyright (C) 2013-2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+ne = length(o.series);
+if length(o.series) == 0
+    warning('@report_table.write: no series to plot, returning');
+    return;
+end
+
+if isempty(o.tableName)
+    o.tableName = sprintf('%s/table_pg%d_sec%d_row%d_col%d.tex', o.tableDirName, pg, sec, row, col);
+end
+
+[fid, msg] = fopen(o.tableName, 'w');
+if fid == -1
+    error(['@report_table.writeTableFile: ' msg]);
+end
+
+%number of left-hand columns, 1 until we allow the user to group data,
+% e.g.: GDP Europe
+%         GDP France
+%         GDP Germany
+% this example would be two lh columns, with GDP Europe spanning both
+nlhc = 1;
+
+if isempty(o.range)
+    dates = getMaxRange(o.series);
+else
+    dates = o.range{1};
+end
+ndates = dates.ndat;
+
+fprintf(fid, '%% Report_Table Object\n');
+fprintf(fid, '\\setlength{\\parindent}{6pt}\n');
+fprintf(fid, '\\setlength{\\tabcolsep}{4pt}\n');
+fprintf(fid, '\\begin{tabular}{@{}l');
+
+for i=1:ndates
+    if o.showVlines
+        fprintf(fid, 'r|');
+    else
+        fprintf(fid, 'r');
+        if o.vlineAfterEndOfPeriod
+            if dates(i).time(2) == dates(i).freq
+                fprintf(fid, '|');
+            end
+        end
+        if ~isempty(o.vlineAfter)
+            for j=1:length(o.vlineAfter)
+                if dates(i) == o.vlineAfter{j}
+                    if ~(o.vlineAfterEndOfPeriod && dates(i).time(2) == dates(i).freq)
+                        fprintf(fid, '|');
+                    end
+                end
+            end
+        end
+    end
+end
+datedata = dates.time;
+years = unique(datedata(:, 1));
+if length(o.range) > 1
+    rhscols = strings(o.range{2});
+    if o.range{2}.freq == 1
+        rhscols = strrep(rhscols, 'Y', '');
+    end
+else
+    rhscols = {};
+end
+for i=1:length(rhscols)
+    fprintf(fid, 'r');
+    if o.showVlines
+        fprintf(fid, '|');
+    end
+end
+nrhc = length(rhscols);
+ncols = ndates+nlhc+nrhc;
+fprintf(fid, '@{}}%%\n');
+for i=1:length(o.title)
+    if ~isempty(o.title{i})
+        fprintf(fid, '\\multicolumn{%d}{c}{%s %s}\\\\\n', ...
+                ncols, o.titleFormat{i}, o.title{i});
+    end
+end
+fprintf(fid, '\\toprule%%\n');
+
+% Column Headers
+thdr = num2cell(years, size(years, 1));
+if dates.freq == 1
+    for i=1:size(thdr, 1)
+        fprintf(fid, ' & %d', thdr{i, 1});
+    end
+    for i=1:length(rhscols)
+        fprintf(fid, ' & %s', rhscols{i});
+    end
+else
+    thdr{1, 2} = datedata(:, 2)';
+    if size(thdr, 1) > 1
+        for i=2:size(thdr, 1)
+            split = find(thdr{i-1, 2} == dates.freq, 1, 'first');
+            assert(~isempty(split), '@report_table.writeTableFile: Shouldn''t arrive here');
+            thdr{i, 2} = thdr{i-1, 2}(split+1:end);
+            thdr{i-1, 2} = thdr{i-1, 2}(1:split);
+        end
+    end
+    for i=1:size(thdr, 1)
+        fprintf(fid, ' & \\multicolumn{%d}{c}{%d}', size(thdr{i,2}, 2), thdr{i,1});
+    end
+    for i=1:length(rhscols)
+        fprintf(fid, ' & %s', rhscols{i});
+    end
+    fprintf(fid, '\\\\\\cline{%d-%d}%%\n', nlhc+1, ncols);
+    switch dates.freq
+        case 4
+            sep = 'Q';
+        case 12
+            sep = 'M';
+        case 52
+            sep = 'W';
+        otherwise
+            error('@report_table.writeTableFile: Invalid frequency.');
+    end
+    for i=1:size(thdr, 1)
+        period = thdr{i, 2};
+        for j=1:size(period, 2)
+            fprintf(fid, ' & \\multicolumn{1}{c}{%s%d}', sep, period(j));
+        end
+    end
+end
+fprintf(fid, '\\\\[-2pt]%%\n');
+fprintf(fid, '\\hline%%\n');
+fprintf(fid, '%%\n');
+
+% Write Report_Table Data
+for i=1:ne
+    o.series{i}.writeSeriesForTable(fid, o.range, o.precision);
+    if o.showHlines
+        fprintf(fid, '\\hline\n');
+    end
+end
+
+fprintf(fid, '\\bottomrule\n');
+fprintf(fid, '\\end{tabular}\\setlength{\\parindent}{0pt}\n \\par \\medskip\n\n');
+fprintf(fid, '%% End Report_Table Object\n');
+if fclose(fid) == -1
+    error('@report_table.writeTableFile: closing %s\n', o.filename);
+end
+end
diff --git a/matlab/reports/@section/addGraph.m b/matlab/reports/@section/addGraph.m
index b8e3c03f2aac2a41cc2399b11f3bb8450a3679ed..cebfd9b6f9b5c407ccd1b25ff4c8729fde95f97c 100644
--- a/matlab/reports/@section/addGraph.m
+++ b/matlab/reports/@section/addGraph.m
@@ -13,7 +13,7 @@ function o = addGraph(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -30,6 +30,5 @@ function o = addGraph(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-disp(['Processing Section Element: ' num2str(numElements(o)+1)]);
-o.elements = o.elements.addGraph(varargin{:});
+o.elements{end+1} = graph(varargin{:});
 end
diff --git a/matlab/reports/@section/addTable.m b/matlab/reports/@section/addTable.m
index 1668793ccc05d660dd711d76472be9dac8bf84b2..e941e8d92ee4fe9493300eac0fa68560875843e5 100644
--- a/matlab/reports/@section/addTable.m
+++ b/matlab/reports/@section/addTable.m
@@ -1,11 +1,11 @@
 function o = addTable(o, varargin)
 %function o = addTable(o, varargin)
-% Add a table to the Cell Array of tables in the report
+% Add a report_table to the Cell Array of report_tables in the report
 %
 % INPUTS
-%   1 args => add empty table
-%   2 args => add given table
-%   3 args => add table at index
+%   1 args => add empty report_table
+%   2 args => add given report_table
+%   3 args => add report_table at index
 %
 % OUTPUTS
 %   updated section object
@@ -13,7 +13,7 @@ function o = addTable(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -30,6 +30,5 @@ function o = addTable(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-disp(['Processing Section Element: ' num2str(numElements(o)+1)]);
-o.elements = o.elements.addTable(varargin{:});
+o.elements{end+1} = report_table(varargin{:});
 end
diff --git a/matlab/reports/@section/addVspace.m b/matlab/reports/@section/addVspace.m
index 43ca6ac671aa0057b5b20e6a46f1b555467a8dae..374e4642b3a7a9270e411133a1ed5142ee439edb 100644
--- a/matlab/reports/@section/addVspace.m
+++ b/matlab/reports/@section/addVspace.m
@@ -12,7 +12,7 @@ function o = addVspace(o, varargin)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,6 +29,5 @@ function o = addVspace(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-disp(['Processing Section Element: ' num2str(numElements(o)+1)]);
-o.elements = o.elements.addVspace(varargin{:});
+o.elements{end+1} = vspace(varargin{:});
 end
diff --git a/matlab/reports/@section/display.m b/matlab/reports/@section/display.m
index 8729efe66f892129301c85000e024c818a11b9a7..476d6a1195d2ed23c49d577e854459cde35a639a 100644
--- a/matlab/reports/@section/display.m
+++ b/matlab/reports/@section/display.m
@@ -11,7 +11,7 @@ function display(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+display_reporting_object(o);
 end
\ No newline at end of file
diff --git a/matlab/reports/@section/element.m b/matlab/reports/@section/element.m
deleted file mode 100644
index 7aab80960f0d3e794a8ba691506b661fd9d3f744..0000000000000000000000000000000000000000
--- a/matlab/reports/@section/element.m
+++ /dev/null
@@ -1,23 +0,0 @@
-function o = element(o, index)
-% function o = element(o, index)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-assert(isint(index));
-o = o.elements(index);
-end
\ No newline at end of file
diff --git a/matlab/reports/@section/numElements.m b/matlab/reports/@section/numElements.m
index c1c54b952d773c55a31502a26aadef8b49ff97a7..b72393015440edf0b07a3eeb9cc3b513643e9d83 100644
--- a/matlab/reports/@section/numElements.m
+++ b/matlab/reports/@section/numElements.m
@@ -1,7 +1,7 @@
 function n = numElements(o)
 % function n = numElements(o)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -18,5 +18,5 @@ function n = numElements(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-n = o.elements.numElements();
+n = length(o.elements);
 end
\ No newline at end of file
diff --git a/matlab/reports/@section/section.m b/matlab/reports/@section/section.m
index 7e6bb08249e831ae4c8273a619c2cd1c12287d6e..4b756de7f36f86b4ac657d46347786074b155cad 100644
--- a/matlab/reports/@section/section.m
+++ b/matlab/reports/@section/section.m
@@ -3,7 +3,7 @@ function o = section(varargin)
 
 % Section produces a latex minipage
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -21,7 +21,7 @@ function o = section(varargin)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 o = struct;
-o.elements = elements();
+o.elements = {};
 o.cols = 1;
 o.height = '';
 
diff --git a/matlab/reports/@section/subsasgn.m b/matlab/reports/@section/subsasgn.m
index a0a7a1164e655abdf32379cc9fafca5fe75a858f..24dc92fbc07ea727dd3e6db43662f16ee69c777b 100644
--- a/matlab/reports/@section/subsasgn.m
+++ b/matlab/reports/@section/subsasgn.m
@@ -1,7 +1,7 @@
 function B = subsasgn(A, S, V)
 % function B = subsasgn(A, S, V)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -32,7 +32,11 @@ switch S.type
     case '()'
         index = S.subs{:};
         assert(isnumeric(index));
-        B.elements(index) = V;
+        B.elements{index} = V;
+    case '{}'
+        index = S.subs{:};
+        assert(isnumeric(index));
+        B{index} = V;
     case '.'
         switch S.subs
             case fieldnames(A)
diff --git a/matlab/reports/@section/subsref.m b/matlab/reports/@section/subsref.m
index 82994b82a789235490d882a5396db1721d43483e..74573e564ead116bb11f27b4b872f6377355af2e 100644
--- a/matlab/reports/@section/subsref.m
+++ b/matlab/reports/@section/subsref.m
@@ -1,7 +1,7 @@
 function A = subsref(A, S)
 %function A = subsref(A, S)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -26,7 +26,7 @@ switch S(1).type
             case methods(A)
                 if areParensNext(S)
                     A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
+                    S = shiftS(S,1);
                 else
                     A = feval(S(1).subs, A);
                 end
@@ -34,14 +34,14 @@ switch S(1).type
                 error(['@section.subsref: unknown field or method: ' S(1).subs]);
         end
     case '()'
-        A = A.elements.getElements(S(1).subs{:});
+        A = A.elements{S(1).subs{:}};
     case '{}'
         error(['@section.subsref: ' S(1).type ' indexing not supported.']);
     otherwise
         error('@section.subsref: impossible case')
 end
 
-S = shiftS(S);
+S = shiftS(S,1);
 if length(S) >= 1
     A = subsref(A, S);
 end
diff --git a/matlab/reports/@section/write.m b/matlab/reports/@section/write.m
index b80a5fd0cb6754391fcf4f5cd2955e18364cf16b..888e7a9f0233addc7cdd4b03893abe1832a894e8 100644
--- a/matlab/reports/@section/write.m
+++ b/matlab/reports/@section/write.m
@@ -1,10 +1,12 @@
-function o = write(o, fid)
-%function o = write(o, fid)
+function o = write(o, fid, pg, sec)
+%function o = write(o, fid, pg, sec)
 % Write Section object
 %
 % INPUTS
 %   o         [section] section object
 %   fid       [integer] file id
+%   pg        [integer] this page number
+%   sec       [integer] this section number
 %
 % OUTPUTS
 %   o         [section] section object
@@ -12,7 +14,7 @@ function o = write(o, fid)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -30,7 +32,6 @@ function o = write(o, fid)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 assert(fid ~= -1);
-
 fprintf(fid, '%% Section Object\n');
 if ~isempty(o.height)
     fprintf(fid, '\\setlength\\sectionheight{%s}%%\n', o.height);
@@ -48,23 +49,25 @@ for i=1:o.cols
 end
 fprintf(fid, '}\n');
 ne = numElements(o);
-nvspace = numVspace(o);
 nlcounter = 0;
+row = 1;
+col = 1;
 for i=1:ne
-    disp(['Writing Section Element: ' num2str(i)]);
-    if isa(o.elements(i), 'vspace')
-        assert(rem(nlcounter, o.cols) == 0, ['@section.write: must place ' ...
+    if isa(o.elements{i}, 'vspace')
+        assert(col == o.cols, ['@section.write: must place ' ...
                             'vspace command after a linebreak in the table ' ...
                             'or series of charts']);
-        o.elements(i).write(fid);
+        o.elements{i}.write(fid);
         fprintf(fid, '\\\\\n');
     else
-        o.elements(i).write(fid);
-        nlcounter = nlcounter + 1;
-        if rem(nlcounter, o.cols)
+        o.elements{i}.write(fid, pg, sec, row, col);
+        if col ~= o.cols
             fprintf(fid, ' & ');
+            col = col + 1;
         else
             fprintf(fid, '\\\\\n');
+            row = row + 1;
+            col = 1;
         end
     end
 end
diff --git a/matlab/reports/@sections/addSection.m b/matlab/reports/@sections/addSection.m
deleted file mode 100644
index d2190ae84845d83203999ab8741e2d514d677668..0000000000000000000000000000000000000000
--- a/matlab/reports/@sections/addSection.m
+++ /dev/null
@@ -1,23 +0,0 @@
-function o = addSection(o, varargin)
-% function o = addSection(o, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-disp(['Processing Section: ' num2str(numSections(o)+1)]);
-o.objArray = o.objArray.addObj(section(varargin{:}));
-end
\ No newline at end of file
diff --git a/matlab/reports/@sections/display.m b/matlab/reports/@sections/display.m
deleted file mode 100644
index 0e344d000051dd07c1431a92e3be756d95773046..0000000000000000000000000000000000000000
--- a/matlab/reports/@sections/display.m
+++ /dev/null
@@ -1,32 +0,0 @@
-function display(o)
-%function display(o)
-% Display a Sections object
-%
-% INPUTS
-%   o   [sections] sections object
-%
-% OUTPUTS
-%   none
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-reporting_object_display(o);
-end
\ No newline at end of file
diff --git a/matlab/reports/@sections/end.m b/matlab/reports/@sections/end.m
deleted file mode 100644
index c9fc0cd92edc60d08d09a2f8aed508cf9779e4d8..0000000000000000000000000000000000000000
--- a/matlab/reports/@sections/end.m
+++ /dev/null
@@ -1,35 +0,0 @@
-function lastIndex = end(o, k, n)
-% function lastIndex = end(o, k, n)
-% End keyword
-%
-% INPUTS
-%   o              [sections] sections object
-%   k              [integer] index where end appears
-%   n              [integer] number of indices
-%
-% OUTPUTS
-%   lastIndex      [integer]  last sections index
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-assert(k==1 && n==1, '@sections/end: sections only has one dimension');
-lastIndex = numSections(o);
-end
\ No newline at end of file
diff --git a/matlab/reports/@sections/getSections.m b/matlab/reports/@sections/getSections.m
deleted file mode 100644
index e60f2270d22b11cbb1773bea47783de38c58012f..0000000000000000000000000000000000000000
--- a/matlab/reports/@sections/getSections.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function e = getSections(ss, varargin)
-% function e = getSections(ss, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-e = ss.objArray.getObjs(varargin{:});
-end
\ No newline at end of file
diff --git a/matlab/reports/@sections/sections.m b/matlab/reports/@sections/sections.m
deleted file mode 100644
index 00110fb6406fbbb2d28c7e783a5ba1c720f9d097..0000000000000000000000000000000000000000
--- a/matlab/reports/@sections/sections.m
+++ /dev/null
@@ -1,43 +0,0 @@
-function s = sections(varargin)
-%function s = sections(varargin)
-% Sections Class Constructor
-%
-% INPUTS
-%   varargin        0 args  : empty sections object
-%                   1 arg   : must be sections object (return a copy of arg)
-%
-% OUTPUTS
-%   ps     [sections] sections object
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch nargin
-    case 0
-        s = class(struct, 'sections', objArray());
-    case 1
-        assert(isa(varargin{1}, 'sections'), ['@sections.sections: the ' ...
-                            'only valid arguments are sections objects']);
-        s = varargin{1};
-    otherwise
-        error('@sections.sections: invalid number of arguments');
-end
-end
-
diff --git a/matlab/reports/@sections/subsref.m b/matlab/reports/@sections/subsref.m
deleted file mode 100644
index 8661809acff8fe0df4c5c86df7639968c73790d7..0000000000000000000000000000000000000000
--- a/matlab/reports/@sections/subsref.m
+++ /dev/null
@@ -1,48 +0,0 @@
-function A = subsref(A, S)
-%function A = subsref(A, S)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch S(1).type
-    case '.'
-        switch S(1).subs
-            case fieldnames(A)
-                A = A.(S(1).subs);
-            case methods(A)
-                if areParensNext(S)
-                    A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
-                else
-                    A = feval(S(1).subs, A);
-                end
-            otherwise
-                error(['@sections.subsref unknown field or method: ' S(1).subs]);
-        end
-    case '()'
-        A = getSections(A, S(1).subs{:});
-    case '{}'
-        error(['@sections.subsref ' S(1).type ' indexing not supported.']);
-    otherwise
-        error('@sections.subsref subsref.m impossible case')
-end
-
-S = shiftS(S);
-if length(S) >= 1
-    A = subsref(A, S);
-end
-end
diff --git a/matlab/reports/@sections/write.m b/matlab/reports/@sections/write.m
deleted file mode 100644
index d354d331f983092eb187e54a8480326206d998fc..0000000000000000000000000000000000000000
--- a/matlab/reports/@sections/write.m
+++ /dev/null
@@ -1,40 +0,0 @@
-function o = write(o, fid)
-%function o = write(o, fid)
-% Write Sections object
-%
-% INPUTS
-%   o           [sections] sections object
-%   fid         [integer]  file id
-%
-% OUTPUTS
-%   o           [sections] sections object
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-assert(fid ~= -1);
-fprintf(fid, '\n%% Sections Object\n');
-nps = numSections(o);
-for i=1:nps
-    disp(['Writing Section: ' num2str(i)]);
-    o.objArray(i).write(fid);
-end
-fprintf(fid, '%% End Sections Object\n\n');
-end
\ No newline at end of file
diff --git a/matlab/reports/@series/getData.m b/matlab/reports/@series/getData.m
deleted file mode 100644
index 7323f075689045d1df52c50b1504cabeb08c7aa4..0000000000000000000000000000000000000000
--- a/matlab/reports/@series/getData.m
+++ /dev/null
@@ -1,23 +0,0 @@
-function ds = getData(o, dates)
-%function ds = getData(o, dates)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-assert(~isempty(o.data) && size(o.data, 2) == 1 && isa(dates, 'dynDates'));
-ds = o.data(dates);
-end
\ No newline at end of file
diff --git a/matlab/reports/@series/getLine.m b/matlab/reports/@series/getLine.m
deleted file mode 100644
index 829bf8222c359a7913c4758da22acd124a0793d0..0000000000000000000000000000000000000000
--- a/matlab/reports/@series/getLine.m
+++ /dev/null
@@ -1,98 +0,0 @@
-function h = getLine(o, xrange)
-%function h = getLine(o, xrange)
-% Create the series
-%
-% INPUTS
-%   o       [series]    series object
-%   xrange  [dynDates]  range of x values for line
-%
-% OUTPUTS
-%   h       [handle]    handle to line
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-%% Validate options provided by user
-assert(~isempty(o.data) && isa(o.data, 'dynSeries'), ['@series.getLine: must ' ...
-                    'provide data as a dynSeries']);
-
-% Line
-assert(ischar(o.graphLineColor), '@series.getLine: graphLineColor must be a string');
-valid_line_style = {'none', '-', '--', ':', '-.'};
-assert(any(strcmp(o.graphLineStyle, valid_line_style)), ...
-       ['@series.getLine: graphLineStyle must be one of ' strjoin(valid_line_style, ' ')]);
-assert(isfloat(o.graphLineWidth), ['@series.getLine: graphLineWidth must be a ' ...
-                    'positive number']);
-
-% GraphMarker
-valid_graphMarker = {'+', 'o', '*', '.', 'x', 's', 'square', 'd', 'diamond', ...
-                '^', 'v', '>', '<', 'p', 'pentagram', 'h', 'hexagram', ...
-                'none'};
-assert(isempty(o.graphMarker) || any(strcmp(o.graphMarker, valid_graphMarker)), ...
-       ['@series.getLine: graphMarker must be one of ' strjoin(valid_graphMarker)]);
-
-assert(ischar(o.graphMarkerEdgeColor), '@series.getLine: graphMarkerEdgeColor must be a string');
-assert(ischar(o.graphMarkerFaceColor), '@series.getLine: graphMarkerFaceColor must be a string');
-assert(isfloat(o.graphMarkerSize), ['@series.getLine: graphMarkerSize must be a ' ...
-                    'positive number']);
-
-% Marker & Line
-assert(~(strcmp(o.graphLineStyle, 'none') && isempty(o.graphMarker)), ['@series.getLine: ' ...
-                    'you must provide at least one of graphLineStyle and graphMarker']);
-
-% Validate xrange
-assert(isempty(xrange) || isa(xrange, 'dynDates'));
-
-% Zero tolerance
-assert(isfloat(o.zerotol), '@series.write: zerotol must be a float');
-
-%%
-if isempty(xrange) || xrange == o.data.time
-    ds = o.data;
-else
-    ds = o.data(xrange);
-end
-
-% if graphing data that is within zerotol, set to zero, create series and
-% get line:
-thedata = ds.data;
-stz = bsxfun(@and, ...
-             bsxfun(@lt, thedata, o.zerotol), ...
-             bsxfun(@gt, thedata, -o.zerotol));
-if any(stz)
-    thedata(stz) = 0;
-end
-
-opt = {'XData', 1:length(thedata)};
-opt = {opt{:}, 'YData', thedata};
-
-opt = {opt{:}, 'Color', o.graphLineColor};
-opt = {opt{:}, 'LineStyle', o.graphLineStyle};
-opt = {opt{:}, 'LineWidth', o.graphLineWidth};
-
-if ~isempty(o.graphMarker)
-    opt = {opt{:}, 'Marker', o.graphMarker};
-    opt = {opt{:}, 'MarkerSize', o.graphMarkerSize};
-    opt = {opt{:}, 'MarkerEdgeColor', o.graphMarkerEdgeColor};
-    opt = {opt{:}, 'MarkerFaceColor', o.graphMarkerFaceColor};
-end
-
-h = line(opt{:});
-end
diff --git a/matlab/reports/@series/write.m b/matlab/reports/@series/write.m
deleted file mode 100644
index e0f0ffcae5226dcfc66c8d8fb87c595a18f3a7e4..0000000000000000000000000000000000000000
--- a/matlab/reports/@series/write.m
+++ /dev/null
@@ -1,81 +0,0 @@
-function o = write(o, fid, dates, precision)
-%function o = write(o, fid, dates, precision)
-% Write Table Row
-%
-% INPUTS
-%   o            [series]    series object
-%   fid          [int]       file id
-%   dates        [dynDates]  dates for series slice
-%   precision    [float]     precision with which to print the data
-%
-% OUTPUTS
-%   o            [series]    series object
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-%% Validate options passed to function
-assert(fid ~= -1);
-assert(isa(dates, 'dynDates'));
-assert(isint(precision));
-
-%% Validate options provided by user
-assert(~isempty(o.data) && isa(o.data, 'dynSeries'), ...
-       '@series.write: must provide data as a dynSeries');
-
-assert(ischar(o.tableNegColor), '@series.write: tableNegColor must be a string');
-assert(ischar(o.tablePosColor), '@series.write: tablePosColor must be a string');
-assert(islogical(o.tableShowMarkers), '@series.write: tableShowMarkers must be true or false');
-assert(islogical(o.tableAlignRight), '@series.write: tableAlignRight must be true or false');
-assert(isfloat(o.tableMarkerLimit), '@series,write: tableMarkerLimit must be a float');
-
-%% Write Output
-dataString = ['%.' num2str(precision) 'f'];
-precision  = 10^precision;
-
-fprintf(fid, '%% Table Row (series)\n');
-if o.tableAlignRight
-    fprintf(fid, '\\multicolumn{1}{r}{');
-end
-fprintf(fid, '%s', o.data.tex{:});
-if o.tableAlignRight
-    fprintf(fid, '}');
-end
-data = o.data(dates);
-data = data.data;
-for i=1:size(data,1)
-    fprintf(fid, ' &');
-    if o.tableShowMarkers
-        if data(i) < -o.tableMarkerLimit
-            fprintf(fid, '\\color{%s}', o.tableNegColor);
-        elseif data(i) > o.tableMarkerLimit
-            fprintf(fid, '\\color{%s}', o.tablePosColor);
-        end
-        fprintf(fid, '[');
-    end
-
-    fprintf(fid, dataString, round(data(i)*precision)/precision);
-
-    if o.tableShowMarkers
-        fprintf(fid, ']');
-    end
-end
-fprintf(fid, ' \\\\\n\n');
-end
diff --git a/matlab/reports/@seriesElements/display.m b/matlab/reports/@seriesElements/display.m
deleted file mode 100644
index ed1b330d165831d9056542fd35cb34601e17324c..0000000000000000000000000000000000000000
--- a/matlab/reports/@seriesElements/display.m
+++ /dev/null
@@ -1,32 +0,0 @@
-function display(o)
-%function display(o)
-% Display a seriesElements object
-%
-% INPUTS
-%   o   [seriesElements] seriesElements object
-%
-% OUTPUTS
-%   none
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-reporting_object_display(o);
-end
\ No newline at end of file
diff --git a/matlab/reports/@seriesElements/getNames.m b/matlab/reports/@seriesElements/getNames.m
deleted file mode 100644
index cbb29b3edb61400765da305ef31d1f474de6e53d..0000000000000000000000000000000000000000
--- a/matlab/reports/@seriesElements/getNames.m
+++ /dev/null
@@ -1,26 +0,0 @@
-function names = getNames(o, varargin)
-% function names = getNames(o, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-se = o.objArray.getObjs(varargin{:});
-names = {};
-for i=1:length(se)
-    names(i) = se{i}.getName();
-end
-end
\ No newline at end of file
diff --git a/matlab/reports/@seriesElements/getSeriesElements.m b/matlab/reports/@seriesElements/getSeriesElements.m
deleted file mode 100644
index 1a9dcd2ab89d9d717e1c42c8494f79a5566b5b95..0000000000000000000000000000000000000000
--- a/matlab/reports/@seriesElements/getSeriesElements.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function o = getSeriesElements(o, varargin)
-% function o = getSeriesElements(o, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-o = o.objArray.getObjs(varargin{:});
-end
\ No newline at end of file
diff --git a/matlab/reports/@seriesElements/getTexNames.m b/matlab/reports/@seriesElements/getTexNames.m
deleted file mode 100644
index 7c247b9263523e141a4690545b487d7521029093..0000000000000000000000000000000000000000
--- a/matlab/reports/@seriesElements/getTexNames.m
+++ /dev/null
@@ -1,26 +0,0 @@
-function names = getTexNames(o, varargin)
-%function names = getTexNames(o, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-se = o.objArray.getObjs(varargin{:});
-names = {};
-for i=1:length(se)
-    names(i) = se{i}.getTexName();
-end
-end
\ No newline at end of file
diff --git a/matlab/reports/@seriesElements/numSeriesElements.m b/matlab/reports/@seriesElements/numSeriesElements.m
deleted file mode 100644
index fad1c52e2b1fd464ff09cfcb12899b6a6baa9757..0000000000000000000000000000000000000000
--- a/matlab/reports/@seriesElements/numSeriesElements.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function n = numSeriesElements(o)
-% function n = numSeriesElements(o)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-n = o.objArray.numObjArray();
-end
\ No newline at end of file
diff --git a/matlab/reports/@seriesElements/seriesElements.m b/matlab/reports/@seriesElements/seriesElements.m
deleted file mode 100644
index a6bd3ebced784f779676fcd9dc9e922675b21fd6..0000000000000000000000000000000000000000
--- a/matlab/reports/@seriesElements/seriesElements.m
+++ /dev/null
@@ -1,42 +0,0 @@
-function o = seriesElements(varargin)
-%function o = seriesElements(varargin)
-% SeriesElements Class Constructor
-%
-% INPUTS
-%   Optional seriesElements object
-%
-% OUTPUTS
-%   seriesElements object
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch nargin
-    case 0
-        o = class(struct, 'seriesElements', objArray());
-    case 1
-        assert(isa(varargin{1}, 'seriesElements'), ...
-            ['@seriesElements.seriesElements: with one arg, you must pass an seriesElements ' ...
-             'object or a char.']);
-        o = varargin{1};
-    otherwise
-        error('@seriesElements.seriesElements: invalid number of arguments');
-end
-end
\ No newline at end of file
diff --git a/matlab/reports/@seriesElements/subsasgn.m b/matlab/reports/@seriesElements/subsasgn.m
deleted file mode 100644
index fab53a73c4ac014f54e393aac72ac462512f94ce..0000000000000000000000000000000000000000
--- a/matlab/reports/@seriesElements/subsasgn.m
+++ /dev/null
@@ -1,39 +0,0 @@
-function B = subsasgn(A, S, V)
-% function B = subsasgn(A, S, V)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-B = A;
-if length(S) > 1
-    for i=1:(length(S)-1)
-        B = subsref(B, S(i));
-    end
-    B = subsasgn(B, S(end), V);
-    B = subsasgn(A, S(1:(end-1)), B);
-    return
-end
-
-switch S.type
-    case '()'
-        index = S.subs{:};
-        assert(isnumeric(index));
-        B.objArray(index) = V;
-    otherwise
-        error('@seriesElements.subsasign: syntax error');
-end
-end
\ No newline at end of file
diff --git a/matlab/reports/@seriesElements/subsref.m b/matlab/reports/@seriesElements/subsref.m
deleted file mode 100644
index f4c171abdc6f36303d58cf91fa5ed72269962752..0000000000000000000000000000000000000000
--- a/matlab/reports/@seriesElements/subsref.m
+++ /dev/null
@@ -1,48 +0,0 @@
-function A = subsref(A, S)
-%function A = subsref(A, S)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-switch S(1).type
-    case '.'
-        switch S(1).subs
-            case fieldnames(A)
-                A = A.(S(1).subs);
-            case methods(A)
-                if areParensNext(S)
-                    A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
-                else
-                    A = feval(S(1).subs, A);
-                end
-            otherwise
-                error(['@seriesElements.subsref: unknown field or method: ' S(1).subs]);
-        end
-    case '()'
-        A = getSeriesElements(A, S(1).subs{:});
-    case '{}'
-        error(['@seriesElements.subsref: ' S(1).type ' indexing not supported.']);
-    otherwise
-        error('@seriesElements.subsref: impossible case');
-end
-
-S = shiftS(S);
-if length(S) >= 1
-    A = subsref(A, S);
-end
-end
diff --git a/matlab/reports/@table/addSeries.m b/matlab/reports/@table/addSeries.m
deleted file mode 100644
index ddfcb413253610a857c86ccc6b77162e5ad7daa2..0000000000000000000000000000000000000000
--- a/matlab/reports/@table/addSeries.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function o = addSeries(o, varargin)
-% function o = addSeries(o, varargin)
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-o.seriesElements = o.seriesElements.addSeries(varargin{:});
-end
\ No newline at end of file
diff --git a/matlab/reports/@table/table.m b/matlab/reports/@table/table.m
deleted file mode 100644
index 55cdde174d3bc8e55b0437048a534c5c0b956438..0000000000000000000000000000000000000000
--- a/matlab/reports/@table/table.m
+++ /dev/null
@@ -1,112 +0,0 @@
-function o = table(varargin)
-%function o = table(varargin)
-% Table Class Constructor
-%
-% INPUTS
-%   0 args => empty table
-%   1 arg (table class) => copy object
-%
-% OUTPUTS
-%   none
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-o = struct;
-
-o.seriesElements = seriesElements();
-
-o.title = '';
-o.titleSize = 'large';
-
-o.showHlines = false;
-o.showVlines = false;
-o.vlineAfter = '';
-
-o.data = '';
-o.seriesToUse = '';
-o.range = {};
-o.precision = 1;
-
-if nargin == 1
-    assert(isa(varargin{1}, 'table'),['With one arg to Table constructor, ' ...
-                        'you must pass a table object']);
-    o = varargin{1};
-    return;
-elseif nargin > 1
-    if round(nargin/2) ~= nargin/2
-        error(['Options to Table constructor must be supplied in name/value ' ...
-               'pairs.']);
-    end
-
-    optNames = fieldnames(o);
-
-    % overwrite default values
-    for pair = reshape(varargin, 2, [])
-        ind = strmatch(lower(pair{1}), lower(optNames), 'exact');
-        assert(isempty(ind) || length(ind) == 1);
-        if ~isempty(ind)
-            o.(optNames{ind}) = pair{2};
-        else
-            error('%s is not a recognized option to the Table constructor.', pair{1});
-        end
-    end
-end
-
-% Check options provided by user
-assert(ischar(o.title), '@table.table: title must be a string');
-assert(islogical(o.showHlines), '@table.table: showHlines must be true or false');
-assert(islogical(o.showVlines), '@table.table: showVlines must be true or false');
-assert(isint(o.precision), '@table.table: precision must be an int');
-assert(isempty(o.range) || (isa(o.range, 'dynDates') && o.range.ndat >= 2), ...
-       ['@table.table: range is specified as a dynDates range, e.g. ' ...
-        '''dynDates(''1999q1''):dynDates(''1999q3'')''.']);
-assert(isempty(o.data) || isa(o.data, 'dynSeries'), ...
-       '@table.table: data must be a dynSeries');
-assert(isempty(o.seriesToUse) || iscellstr(o.seriesToUse), ...
-       '@table.table: seriesToUse must be a cell array of string(s)');
-assert(isempty(o.vlineAfter) || isa(o.vlineAfter, 'dynDate'), ...
-       '@table.table: vlineAfter must be a dynDate');
-if o.showVlines
-    o.vlineAfter = '';
-end
-valid_title_sizes = {'Huge', 'huge', 'LARGE', 'Large', 'large', 'normalsize', ...
-                    'small', 'footnotesize', 'scriptsize', 'tiny'};
-assert(any(strcmp(o.titleSize, valid_title_sizes)), ...
-       ['@table.table: titleSize must be one of ' strjoin(valid_title_sizes, ' ')]);
-
-% using o.seriesToUse, create series objects and put them in o.seriesElements
-if ~isempty(o.data)
-    if isempty(o.seriesToUse)
-        for i=1:o.data.vobs
-            o.seriesElements = o.seriesElements.addSeries('data', o.data{o.data.name{i}});
-        end
-    else
-        for i=1:length(o.seriesToUse)
-            o.seriesElements = o.seriesElements.addSeries('data', o.data{o.seriesToUse{i}});
-        end
-    end
-end
-o = rmfield(o, 'seriesToUse');
-o = rmfield(o, 'data');
-
-% Create table object
-o = class(o, 'table');
-end
\ No newline at end of file
diff --git a/matlab/reports/@table/write.m b/matlab/reports/@table/write.m
deleted file mode 100644
index afb47f16b9fed074bd1e8859cda3f468be3164eb..0000000000000000000000000000000000000000
--- a/matlab/reports/@table/write.m
+++ /dev/null
@@ -1,136 +0,0 @@
-function o = write(o, fid)
-%function o = write(o, fid)
-% Write a Table object
-%
-% INPUTS
-%   o           [table]    table object
-%   fid         [integer]  file id
-%
-% OUTPUTS
-%   o           [table]    table object
-%
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-assert(fid ~= -1);
-if ~o.seriesElements.numSeriesElements()
-    warning('@table.write: no series to plot, returning');
-    return;
-end
-
-%number of left-hand columns, 1 until we allow the user to group data,
-% e.g.: GDP Europe
-%         GDP France
-%         GDP Germany
-% this example would be two lh columns, with GDP Europe spanning both
-nlhc = 1;
-
-if isempty(o.range)
-    dates = o.seriesElements.getMaxRange();
-else
-    dates = o.range;
-end
-ndates = dates.ndat;
-
-fprintf(fid, '%% Table Object\n');
-fprintf(fid, '\\setlength{\\tabcolsep}{4pt}\n');
-fprintf(fid, '\\begin{tabular}{@{}l');
-
-for i=1:ndates
-    if o.showVlines
-        fprintf(fid, '|');
-    end
-    fprintf(fid, 'r');
-    if ~isempty(o.vlineAfter)
-        if dates(i) == o.vlineAfter
-            fprintf(fid, '|');
-        end
-    end
-end
-fprintf(fid, '@{}}%%\n');
-if ~isempty(o.title)
-    fprintf(fid, '\\multicolumn{%d}{c}{\\%s %s}\\\\\n', ...
-            ndates+nlhc, o.titleSize, o.title);
-end
-fprintf(fid, '\\toprule%%\n');
-
-% Column Headers
-datedata = dates.time;
-years = unique(datedata(:, 1));
-thdr = num2cell(years, size(years, 1));
-lind = nlhc;
-switch dates.freq
-    case 1
-        for i=1:size(thdr, 1)
-            fprintf(fid, ' & %d', thdr{i, 1});
-        end
-    case 4
-        thdr{1, 2} = datedata(:, 2)';
-        if size(thdr, 1) > 1
-            for i=2:size(thdr, 1)
-                split = find(thdr{i-1, 2} == 4, 1, 'first');
-                if isempty(split)
-                    error('@table.write: Shouldn''t arrive here');
-                else
-                    thdr{i, 2} = thdr{i-1, 2}(split+1:end);
-                    thdr{i-1, 2} = thdr{i-1, 2}(1:split);
-                end
-            end
-        end
-
-        for i=1:size(thdr, 1)
-            fprintf(fid, ' & \\multicolumn{%d}{c}{%d}', size(thdr{i,2}, 2), thdr{i,1});
-        end
-        fprintf(fid, '\\\\[-10pt]%%\n');
-        for i=1:size(thdr, 1)
-            fprintf(fid, ' & \\multicolumn{%d}{c}{\\hrulefill}', size(thdr{i,2}, 2));
-        end
-        fprintf(fid, '\\\\%%\n');
-        for i=1:size(thdr, 1)
-            quarters = thdr{i, 2};
-            for j=1:size(quarters, 2)
-                fprintf(fid, ' & \\multicolumn{1}{c}{Q%d}', quarters(j));
-            end
-        end
-    case 12
-        error('@table.write: weekly dates not yet implemented');
-    otherwise
-        error('@table.write: invalid dynSeries frequency');
-end
-fprintf(fid, '\\\\[-10pt]%%\n');
-for i=1:ndates
-    fprintf(fid, ' & \\hrulefill');
-end
-fprintf(fid, '\\\\%%\n');
-fprintf(fid, '%%\n');
-
-% Write Table Data
-ne = o.seriesElements.numSeriesElements();
-for i=1:ne
-    o.seriesElements(i).write(fid, dates, o.precision);
-    if o.showHlines
-        fprintf(fid, '\\hline\n');
-    end
-end
-
-fprintf(fid, '\\bottomrule\n');
-fprintf(fid, '\\end{tabular} \\par \\medskip\n\n');
-fprintf(fid, '%% End Table Object\n');
-end
diff --git a/matlab/reports/@vspace/display.m b/matlab/reports/@vspace/display.m
index 9d8e0097c8253dad048610a6385dc18e42ed5a0f..9d22a5f41ffb73dab606455c2f0c01e902e53852 100644
--- a/matlab/reports/@vspace/display.m
+++ b/matlab/reports/@vspace/display.m
@@ -11,7 +11,7 @@ function display(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -28,5 +28,5 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+display_reporting_object(o);
 end
\ No newline at end of file
diff --git a/matlab/reports/@vspace/subsasgn.m b/matlab/reports/@vspace/subsasgn.m
index 82c444722e939aa2b697cb1237368613a175506f..3b9cbe82fc5c17f39b2eff1e26fc1f9f51e4bb4f 100644
--- a/matlab/reports/@vspace/subsasgn.m
+++ b/matlab/reports/@vspace/subsasgn.m
@@ -40,6 +40,9 @@ switch S.type
             otherwise
                 error(['@vspace.subsasgn: field ' S.subs 'does not exist']);
         end
+    case '{}'
+        assert(isint(S.subs{1}));
+        B{S.subs{1}} = V;
     otherwise
         error('@vspace.subsasgn: syntax error');
 end
diff --git a/matlab/reports/@vspace/subsref.m b/matlab/reports/@vspace/subsref.m
index fafc63adedf06d7ea7c2f05ed147fa881db6d04d..618b985ffc08431cec9f781aaa0454024a53285b 100644
--- a/matlab/reports/@vspace/subsref.m
+++ b/matlab/reports/@vspace/subsref.m
@@ -1,7 +1,7 @@
 function A = subsref(A, S)
 %function A = subsref(A, S)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -26,7 +26,7 @@ switch S(1).type
             case methods(A)
                 if areParensNext(S)
                     A = feval(S(1).subs, A, S(2).subs{:});
-                    S = shiftS(S);
+                    S = shiftS(S,1);
                 else
                     A = feval(S(1).subs, A);
                 end
@@ -41,7 +41,7 @@ switch S(1).type
         error('@vspace.subsref: impossible case')
 end
 
-S = shiftS(S);
+S = shiftS(S,1);
 if length(S) >= 1
     A = subsref(A, S);
 end
diff --git a/matlab/reports/@vspace/write.m b/matlab/reports/@vspace/write.m
index b3d2fb2bb13fc9a990271d3bd30d5432c4c7f915..4ea1d2e23568efbb4edcdddba9da41410372357b 100644
--- a/matlab/reports/@vspace/write.m
+++ b/matlab/reports/@vspace/write.m
@@ -12,7 +12,7 @@ function o = write(o, fid)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
diff --git a/matlab/reports/@pages/addPage.m b/matlab/reports/allCellsAreDates.m
similarity index 63%
rename from matlab/reports/@pages/addPage.m
rename to matlab/reports/allCellsAreDates.m
index 00d154a1f164af70adad5792ccd1c451444d8685..533ff49e4e6d50ae84c9595e7ca8ae71cd4a4c33 100644
--- a/matlab/reports/@pages/addPage.m
+++ b/matlab/reports/allCellsAreDates.m
@@ -1,18 +1,17 @@
-function o = addPage(o, varargin)
-% function o = addPage(o, varargin)
-% Sections Class Constructor
+function tf = allCellsAreDates(dcell)
+%function tf = allCellsAreDates(dcell)
+% Determines if all the elements of dcell are dates objects
 %
 % INPUTS
-%   o              [pages]  pages object
-%   varargin                options to @page.page
+%   dcell     cell of dates objects
 %
 % OUTPUTS
-%   o              [pages] pages object
+%   tf        true if every entry of dcell is a dates object
 %
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,6 +28,12 @@ function o = addPage(o, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-disp(['Processing Page: ' num2str(numPages(o)+1)]);
-o.objArray = o.objArray.addObj(page(varargin{:}));
+assert(iscell(dcell));
+tf = true;
+for i=1:length(dcell)
+    if ~isa(dcell{i}, 'dates')
+        tf = false;
+        return;
+    end
+end
 end
\ No newline at end of file
diff --git a/matlab/reports/@pages/write.m b/matlab/reports/allCellsAreDatesRange.m
similarity index 62%
rename from matlab/reports/@pages/write.m
rename to matlab/reports/allCellsAreDatesRange.m
index 203060495ed5d8dc00135f13398344af89b700fb..4a12ac573acfc17077f4a45b5cf95f09fc1496bd 100644
--- a/matlab/reports/@pages/write.m
+++ b/matlab/reports/allCellsAreDatesRange.m
@@ -1,18 +1,17 @@
-function o = write(o, fid)
-%function o = write(o, fid)
-% Write Pages object
+function tf = allCellsAreDatesRange(dcell)
+%function tf = allCellsAreDatesRange(dcell)
+% Determines if all the elements of dcell are a range of dates
 %
 % INPUTS
-%   o              [pages]    pages object
-%   fid            [integer]  file id
+%   dcell     cell of dates
 %
 % OUTPUTS
-%   o              [pages]    pages object
+%   tf        true if every entry of dcell is a range of dates
 %
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,12 +28,12 @@ function o = write(o, fid)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-assert(fid ~= -1);
-fprintf(fid, '\n%% Pages Object\n');
-nps = numPages(o);
-for i=1:nps
-    disp(['Writing Page: ' num2str(i)]);
-    o.objArray(i).write(fid);
+assert(iscell(dcell));
+tf = true;
+for i=1:length(dcell)
+    if ~(isa(dcell{i}, 'dates') && dcell{i}.ndat >= 2)
+        tf = false;
+        return;
+    end
 end
-fprintf(fid, '%% End Pages Object\n\n');
 end
\ No newline at end of file
diff --git a/matlab/reports/reporting_object_display.m b/matlab/reports/display_reporting_object.m
similarity index 67%
rename from matlab/reports/reporting_object_display.m
rename to matlab/reports/display_reporting_object.m
index a69b749c5c57e5fe5362df14f17159a1064b7564..e0c52d8e6ee03fec886d105b0e13c094cd0df15f 100644
--- a/matlab/reports/reporting_object_display.m
+++ b/matlab/reports/display_reporting_object.m
@@ -1,17 +1,12 @@
-function reporting_object_display(o)
-%function reporting_object_display(o)
+function display_reporting_object(o)
+%function display_reporting_object(o)
 % Display a Reporting Object
-%   i.e., one of: elements
-%                 graph
-%                 objArray
+%   i.e., one of: graph
 %                 page
-%                 pages
 %                 report
+%                 report_series
+%                 report_table
 %                 section
-%                 sections
-%                 series
-%                 seriesElements
-%                 table
 %                 vspace
 %
 % INPUTS
@@ -23,7 +18,7 @@ function reporting_object_display(o)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -48,10 +43,18 @@ for i=1:length(fields)
     if iscell(val)
         fprintf('{');
         for j=1:length(val)
-            assert(ischar(val{j}));
-            fprintf('''%s''', val{j});
-            if j~=length(val)
-                fprintf(', ');
+            if ischar(val{j});
+                fprintf('''%s''', val{j});
+                if j~=length(val)
+                    fprintf(', ');
+                end
+            else
+                if strcmp(fields{i}, 'pages') || strcmp(fields{i}, 'sections')
+                    fprintf('%d', length(val));
+                    break;
+                else
+                    fprintf('fix this');
+                end
             end
         end
         fprintf('}');
@@ -66,12 +69,12 @@ for i=1:length(fields)
             fprintf('false');
         end
     elseif isobject(val)
-        if isa(val, 'dynDates')
-            fprintf('<dynDates: %s, ..., %s>', ...
-                    val(1).format, val(end).format);
-        elseif isa(val, 'dynSeries')
+        if isa(val, 'dates')
+            fprintf('<dates: %s, ..., %s>', ...
+                    date2string(val(1)), date2string(val(end)));
+        elseif isa(val, 'dseries')
             if numel(val) == 1
-                fprintf('<dynSeries: %s>', val.name{1});
+                fprintf('<dseries: %s>', val.name{1});
             else
                 fprintf('%s', class(val));
             end
@@ -80,7 +83,6 @@ for i=1:length(fields)
             fprintf('%d', val.(['num' upper(cl(1)) cl(2:end)]));
         end
     else
-        keyboard
         fprintf('fix this');
     end
     fprintf('\n');
diff --git a/matlab/reports/@seriesElements/getMaxRange.m b/matlab/reports/getMaxRange.m
similarity index 79%
rename from matlab/reports/@seriesElements/getMaxRange.m
rename to matlab/reports/getMaxRange.m
index 35eeebde2d441790de1899f6f6588cd142b444aa..59a3ac643d644766973538c8d397462cb0790fac 100644
--- a/matlab/reports/@seriesElements/getMaxRange.m
+++ b/matlab/reports/getMaxRange.m
@@ -1,7 +1,7 @@
-function dd = getMaxRange(o)
-% function dd = getMaxRange(o)
+function dd = getMaxRange(cellser)
+% function dd = getMaxRange(cellser)
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -18,12 +18,11 @@ function dd = getMaxRange(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-ne = numSeriesElements(o);
-ddmin = dynDate();
-ddmax = dynDate();
+ddmin = dates();
+ddmax = dates();
+ne = length(cellser);
 for i=1:ne
-    a = getSeriesElements(o, i);
-    ddt = a.getRange();
+    ddt = cellser{i}.getRange();
     if isempty(ddmin)
         ddmin = ddt(1);
         ddmax = ddt(end);
diff --git a/matlab/resid.m b/matlab/resid.m
index a69ba8fe3cfc71932689b46236df3802456e697c..e6d5594d99f33c075318adf81b44874127a48fec 100644
--- a/matlab/resid.m
+++ b/matlab/resid.m
@@ -52,7 +52,7 @@ M_.Sigma_e = zeros(size(Sigma_e));
 
 info = 0;
 if options_.steadystate_flag
-    [oo_.steady_state,M.params,info] = ...
+    [oo_.steady_state,M_.params,info] = ...
         evaluate_steady_state(oo_.steady_state,M_,options_,oo_,0);
 end
 
diff --git a/matlab/resol.m b/matlab/resol.m
index 31795ce1ad0391194a1ffc33f2b74b3e187a52e6..851fe86f35e64467499b6b8362a8960ab28bf935 100644
--- a/matlab/resol.m
+++ b/matlab/resol.m
@@ -107,6 +107,30 @@ if info(1)
     return
 end
 
+if options.loglinear
+    % Find variables with non positive steady state.
+    idx = find(dr.ys<1e-9);
+    if length(idx)
+        variables_with_non_positive_steady_state = M.endo_names(idx,:);
+        skipline()
+        fprintf('You are attempting to simulate/estimate a loglinear approximation of a model, but\n')
+        fprintf('the steady state level of the following variables is not strictly positive:\n')
+        for i=1:length(idx)
+            fprintf(' - %s (%s)\n',deblank(variables_with_non_positive_steady_state(idx,:)), num2str(dr.ys(idx)))
+        end
+        if isestimation()
+            fprintf('You should check that the priors and/or bounds over the deep parameters are such')
+            frpintf('the steady state levels of all the variables are strictly positive, or consider')
+            fprintf('a linearization of the model instead of a log linearization.')
+        else
+            fprintf('You should check that the calibration of the deep parameters is such that the')
+            fprintf('steady state levels of all the variables are strictly positive, or consider')
+            fprintf('a linearization of the model instead of a log linearization.')
+        end
+        error('stoch_simul::resol: The loglinearization of the model cannot be performed because the steady state is not strictly positive!')
+    end
+end
+
 if options.block
     [dr,info,M,options,oo] = dr_block(dr,check_flag,M,options,oo);
 else
diff --git a/matlab/rplot.m b/matlab/rplot.m
index 50cda1bca13d4531094aff634313686f4512c4c1..df7712535fed2406d8bc3dee9b0ca2ccbf3c77c8 100644
--- a/matlab/rplot.m
+++ b/matlab/rplot.m
@@ -63,7 +63,7 @@ if rplottype == 0
     title (t,'Interpreter','none') ;
     xlabel('Periods') ;
     if size(s1,1) > 1
-        if exist('OCTAVE_VERSION')
+        if isoctave
             legend(s1, 0);
         else
             h = legend(s1,0);
diff --git a/matlab/selec_posterior_draws.m b/matlab/selec_posterior_draws.m
index 59f0fe07a7ae8df83f1563fbc3f4f54b0a669d86..d89baf6cf21cf7da9b73185611047357225882d9 100644
--- a/matlab/selec_posterior_draws.m
+++ b/matlab/selec_posterior_draws.m
@@ -62,10 +62,12 @@ switch nargin
     error(['selec_posterior_draws:: Unexpected number of input arguments!'])
 end
 
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+ModelName = M_.fname;
+BaseName = [MetropolisFolder filesep ModelName];
+
 % Get informations about the mcmc:
-MhDirectoryName = CheckPath('metropolis',M_.dname);
-fname = [ MhDirectoryName '/' M_.fname];
-load([ fname '_mh_history.mat']);
+load_last_mh_history_file(MetropolisFolder, ModelName);
 FirstMhFile = record.KeepedDraws.FirstMhFile;
 FirstLine = record.KeepedDraws.FirstLine;
 TotalNumberOfMhFiles = sum(record.MhDraws(:,2));
@@ -106,7 +108,7 @@ if info
             mhfile = SampleAddress(i,3);
             mhblck = SampleAddress(i,2);
             if (mhfile ~= old_mhfile) || (mhblck ~= old_mhblck)
-                load([fname '_mh' num2str(mhfile) '_blck' num2str(mhblck) '.mat'],'x2')
+                load([BaseName '_mh' num2str(mhfile) '_blck' num2str(mhblck) '.mat'],'x2')
             end
             pdraws(i,1) = {x2(SampleAddress(i,4),:)};
             if info-1
@@ -118,7 +120,7 @@ if info
             old_mhblck = mhblck;
         end
         clear('x2')
-        save([fname '_posterior_draws1.mat'],'pdraws')
+        save([BaseName '_posterior_draws1.mat'],'pdraws')
     else% The posterior draws are saved in xx files.
         NumberOfDrawsPerFile = fix(MAX_mega_bytes/drawsize);
         NumberOfFiles = ceil(SampleSize*drawsize/MAX_mega_bytes);
@@ -133,7 +135,7 @@ if info
             mhfile = SampleAddress(i,3);
             mhblck = SampleAddress(i,2);
             if (mhfile ~= old_mhfile) || (mhblck ~= old_mhblck)
-                load([fname '_mh' num2str(mhfile) '_blck' num2str(mhblck) '.mat'],'x2')
+                load([BaseName '_mh' num2str(mhfile) '_blck' num2str(mhblck) '.mat'],'x2')
             end
             pdraws(linee,1) = {x2(SampleAddress(i,4),:)};
             if info-1
@@ -145,7 +147,7 @@ if info
             old_mhblck = mhblck;
             if fnum < NumberOfFiles && linee == NumberOfDrawsPerFile
                 linee = 0;
-                save([fname '_posterior_draws' num2str(fnum) '.mat'],'pdraws')
+                save([BaseName '_posterior_draws' num2str(fnum) '.mat'],'pdraws')
                 fnum = fnum+1;
                 if fnum < NumberOfFiles
                     pdraws = cell(NumberOfDrawsPerFile,info);
@@ -154,6 +156,6 @@ if info
                 end
             end
         end
-        save([fname '_posterior_draws' num2str(fnum) '.mat'],'pdraws')
+        save([BaseName '_posterior_draws' num2str(fnum) '.mat'],'pdraws')
     end
 end
\ No newline at end of file
diff --git a/matlab/set_all_parameters.m b/matlab/set_all_parameters.m
index 656ac34edfcc6524bfe00ea775ada69b556adc86..687259fc5d09abd4351304572d39f91b7d45bee9 100644
--- a/matlab/set_all_parameters.m
+++ b/matlab/set_all_parameters.m
@@ -1,7 +1,7 @@
 function M = set_all_parameters(xparam1,estim_params,M)
 
 %@info:
-%! @deftypefn {Function File} {@var{M} =} dynSeries (@var{xparams1},@var{estim_params},@var{M})
+%! @deftypefn {Function File} {@var{M} =} dseries (@var{xparams1},@var{estim_params},@var{M})
 %! @anchor{set_all_parameters}
 %! @sp 1
 %! Update parameter values (deep parameters and covariance matrices).
@@ -56,9 +56,11 @@ nvn = estim_params.nvn;
 ncn = estim_params.ncn;
 np = estim_params.np;
 Sigma_e = M.Sigma_e;
+Correlation_matrix = M.Correlation_matrix;
 H = M.H;
-
-% setting shocks variance
+Correlation_matrix_ME = M.Correlation_matrix_ME;
+% setting shocks variance on the diagonal of Covariance matrix; used later
+% for updating covariances
 if nvx
     var_exo = estim_params.var_exo;
     for i=1:nvx
@@ -69,7 +71,8 @@ end
 % update offset
 offset = nvx;
 
-% setting measument error variance
+% setting measument error variance; on the diagonal of Covariance matrix; used later
+% for updating covariances
 if nvn
     for i=1:nvn
         k = estim_params.nvn_observable_correspondence(i,1);
@@ -81,38 +84,42 @@ end
 offset = nvx+nvn;
 
 % setting shocks covariances
-if ~isempty(M.Correlation_matrix)
-    Sigma_e = diag(sqrt(diag(Sigma_e)))*M.Correlation_matrix*diag(sqrt(diag(Sigma_e))); % use of old correlation matrix is correct due to the diagonal structure and later only using the hence correctly updated diagonal entries of Sigma_e
-end
 if ncx
     corrx = estim_params.corrx;
     for i=1:ncx
         k1 = corrx(i,1);
         k2 = corrx(i,2);
-        M.Correlation_matrix(k1,k2) = xparam1(i+offset);
-        M.Correlation_matrix(k2,k1) = M.Correlation_matrix(k1,k2);
-        Sigma_e(k1,k2) = xparam1(i+offset)*sqrt(Sigma_e(k1,k1)*Sigma_e(k2,k2));
-        Sigma_e(k2,k1) = Sigma_e(k1,k2);
+        Correlation_matrix(k1,k2) = xparam1(i+offset);
+        Correlation_matrix(k2,k1) = Correlation_matrix(k1,k2);
     end
 end
-
+%build covariance matrix from correlation matrix and variances already on
+%diagonal
+Sigma_e = diag(sqrt(diag(Sigma_e)))*Correlation_matrix*diag(sqrt(diag(Sigma_e))); 
+%if calibrated covariances, set them now to their stored value
+if isfield(estim_params,'calibrated_covariances')
+    Sigma_e(estim_params.calibrated_covariances.position)=estim_params.calibrated_covariances.cov_value;
+end
 % update offset
 offset = nvx+nvn+ncx;
+
 % setting measurement error covariances
-if ~isempty(M.Correlation_matrix_ME)
-    H = diag(sqrt(diag(H)))*M.Correlation_matrix_ME*diag(sqrt(diag(H)));
-end
 if ncn
     corrn_observable_correspondence = estim_params.corrn_observable_correspondence;
     for i=1:ncn
         k1 = corrn_observable_correspondence(i,1);
         k2 = corrn_observable_correspondence(i,2);
-        M.Correlation_matrix_ME(k1,k2) = xparam1(i+offset);
-        M.Correlation_matrix_ME(k2,k1) = M.Correlation_matrix_ME(k1,k2);
-        H(k1,k2) = xparam1(i+offset)*sqrt(H(k1,k1)*H(k2,k2));
-        H(k2,k1) = H(k1,k2);
+        Correlation_matrix_ME(k1,k2) = xparam1(i+offset);
+        Correlation_matrix_ME(k2,k1) = Correlation_matrix_ME(k1,k2);
     end
 end
+%build covariance matrix from correlation matrix and variances already on
+%diagonal
+H = diag(sqrt(diag(H)))*Correlation_matrix_ME*diag(sqrt(diag(H)));
+%if calibrated covariances, set them now to their stored value
+if isfield(estim_params,'calibrated_covariances_ME')
+    H(estim_params.calibrated_covariances_ME.position)=estim_params.calibrated_covariances_ME.cov_value;
+end
 
 % update offset
 offset = nvx+ncx+nvn+ncn;
@@ -125,7 +132,9 @@ end
 % updating matrices in M
 if nvx || ncx
     M.Sigma_e = Sigma_e;
+    M.Correlation_matrix=Correlation_matrix;
 end
 if nvn || ncn
     M.H = H;
+    M.Correlation_matrix_ME=Correlation_matrix_ME;    
 end
\ No newline at end of file
diff --git a/matlab/set_dynare_random_generator_state.m b/matlab/set_dynare_random_generator_state.m
index dccc6d16f8413d9c911665093590d7972d577f07..f16ce13aed7eb52402aa00a635add310bca09326 100644
--- a/matlab/set_dynare_random_generator_state.m
+++ b/matlab/set_dynare_random_generator_state.m
@@ -23,7 +23,7 @@ function [state_u,state_n] = set_dynare_random_generator_state(state_u,state_n)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-    matlab_random_streams = ~(exist('OCTAVE_VERSION') || matlab_ver_less_than('7.7'));
+    matlab_random_streams = ~(isoctave || matlab_ver_less_than('7.7'));
 
     if matlab_random_streams% Use new matlab interface.
         if matlab_ver_less_than('7.12')
diff --git a/matlab/set_dynare_seed.m b/matlab/set_dynare_seed.m
index 991b8ed57bb19408b0684108d3bc9940e972bae6..3a71d7236c03ff64feeaff862cdd5b0bbac681e7 100644
--- a/matlab/set_dynare_seed.m
+++ b/matlab/set_dynare_seed.m
@@ -2,7 +2,7 @@ function set_dynare_seed(a,b)
 % Set seeds depending on matlab (octave) version. This routine is called in dynare_config and can be called by the 
 % user in the mod file.
 %    
-% Copyright (C) 2010-2013 Dynare Team
+% Copyright (C) 2010-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -24,7 +24,7 @@ if ~nargin
     error('set_dynare_seed:: I need at least one input argument!')
 end
 
-matlab_random_streams = ~(exist('OCTAVE_VERSION') || matlab_ver_less_than('7.7') || options_.parallel_info.isHybridMatlabOctave);
+matlab_random_streams = ~(isoctave || matlab_ver_less_than('7.7') || options_.parallel_info.isHybridMatlabOctave);
 
 if matlab_random_streams% Use new matlab interface.
     if nargin==1
@@ -93,10 +93,9 @@ if matlab_random_streams% Use new matlab interface.
 else% Use old matlab interface.
     if nargin==1
         if ischar(a) && strcmpi(a,'default')
-            if exist('OCTAVE_VERSION') || matlab_ver_less_than('7.4')
+            if isoctave
                 options_.DynareRandomStreams.algo = 'state';
             else
-                % Twister was introduced in MATLAB 7.4
                 options_.DynareRandomStreams.algo = 'twister';
             end
             options_.DynareRandomStreams.seed = 0;
diff --git a/matlab/set_parameters.m b/matlab/set_parameters.m
index d1e81afd81e9a841723ecbc72223c3f6d2666ce5..c183bb3d311bdf7d9247df18a75fb63721e85d36 100644
--- a/matlab/set_parameters.m
+++ b/matlab/set_parameters.m
@@ -14,7 +14,7 @@ function set_parameters(xparam1)
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2003-2009 Dynare Team
+% Copyright (C) 2003-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -39,9 +39,11 @@ nvn = estim_params_.nvn;
 ncn = estim_params_.ncn;
 np = estim_params_.np;
 Sigma_e = M_.Sigma_e;
+Correlation_matrix = M_.Correlation_matrix;
 offset = 0;
 
-% stderrs of the exogenous shocks
+% setting shocks variance on the diagonal of Covariance matrix; used later
+% for updating covariances
 if nvx
     var_exo = estim_params_.var_exo;
     for i=1:nvx
@@ -58,10 +60,17 @@ if ncx
     for i=1:ncx
         k1 = corrx(i,1);
         k2 = corrx(i,2);
-        Sigma_e(k1,k2) = xparam1(i+offset)*sqrt(Sigma_e(k1,k1)*Sigma_e(k2,k2));
-        Sigma_e(k2,k1) = Sigma_e(k1,k2);
+        Correlation_matrix(k1,k2) = xparam1(i+offset);
+        Correlation_matrix(k2,k1) = Correlation_matrix(k1,k2);
     end
 end
+%build covariance matrix from correlation matrix and variances already on
+%diagonal
+Sigma_e = diag(sqrt(diag(Sigma_e)))*Correlation_matrix*diag(sqrt(diag(Sigma_e))); 
+if isfield(estim_params_,'calibrated_covariances')
+    Sigma_e(estim_params_.calibrated_covariances.position)=estim_params_.calibrated_covariances.cov_value;
+end
+
 % and update offset
 offset = offset + ncx + ncn;
 
@@ -70,4 +79,5 @@ if np
     M_.params(estim_params_.param_vals(:,1)) = xparam1(offset+1:end);
 end
 
-M_.Sigma_e = Sigma_e;
\ No newline at end of file
+M_.Sigma_e = Sigma_e;
+M_.Correlation_matrix=Correlation_matrix;
diff --git a/matlab/set_prior.m b/matlab/set_prior.m
index 2c5c0cf302aa9b90c5b38ef5ad2f752a629bdf39..6b2bc90a1d4ad05ea091902de224b4923a4a8689 100644
--- a/matlab/set_prior.m
+++ b/matlab/set_prior.m
@@ -53,8 +53,8 @@ lb = [];
 bayestopt_.pshape = [];
 bayestopt_.p1 = []; % prior mean
 bayestopt_.p2 = []; % prior standard deviation
-bayestopt_.p3 = []; % lower bound
-bayestopt_.p4 = []; % upper bound
+bayestopt_.p3 = []; % lower bound of the distribution, only considering whether a generalized distribution is used, not when the prior is truncated
+bayestopt_.p4 = []; % upper bound of the distribution, only considering whether a generalized distribution is used, not when the prior is truncated
 bayestopt_.p5 = zeros(nvx+nvn+ncx+ncn+np,1); % prior mode
 bayestopt_.p6 = []; % first hyper-parameter (\alpha for the BETA and GAMMA distributions, s for the INVERSE GAMMAs, expectation for the GAUSSIAN distribution, lower bound for the UNIFORM distribution).
 bayestopt_.p7 = []; % second hyper-parameter (\beta for the BETA and GAMMA distributions, \nu for the INVERSE GAMMAs, standard deviation for the GAUSSIAN distribution, upper bound for the UNIFORM distribution).
@@ -68,16 +68,17 @@ if nvx
     bayestopt_.pshape =  estim_params_.var_exo(:,5);
     bayestopt_.p1 =  estim_params_.var_exo(:,6);
     bayestopt_.p2 =  estim_params_.var_exo(:,7);
-    bayestopt_.p3 =  estim_params_.var_exo(:,8);
-    bayestopt_.p4 =  estim_params_.var_exo(:,9);
+    bayestopt_.p3 =  estim_params_.var_exo(:,8); %take generalized distribution into account
+    bayestopt_.p4 =  estim_params_.var_exo(:,9); %take generalized distribution into account
     bayestopt_.jscale =  estim_params_.var_exo(:,10);
     bayestopt_.name = cellstr(M_.exo_names(estim_params_.var_exo(:,1),:));
 end
 if nvn
     estim_params_.nvn_observable_correspondence=NaN(nvn,1); % stores number of corresponding observable
-    if isequal(M_.H,0)
-        nvarobs = length(options_.varobs);
+    if isequal(M_.H,0) %if no previously set measurement error, initialize H
+        nvarobs = size(options_.varobs,1);
         M_.H = zeros(nvarobs,nvarobs);
+        M_.Correlation_matrix_ME = eye(nvarobs);
     end
     for i=1:nvn
         obsi_ = strmatch(deblank(M_.endo_names(estim_params_.var_endo(i,1),:)),options_.varobs,'exact');
@@ -92,8 +93,8 @@ if nvn
     bayestopt_.pshape = [ bayestopt_.pshape; estim_params_.var_endo(:,5)];
     bayestopt_.p1 = [ bayestopt_.p1; estim_params_.var_endo(:,6)];
     bayestopt_.p2 = [ bayestopt_.p2; estim_params_.var_endo(:,7)];
-    bayestopt_.p3 = [ bayestopt_.p3; estim_params_.var_endo(:,8)];
-    bayestopt_.p4 = [ bayestopt_.p4; estim_params_.var_endo(:,9)];
+    bayestopt_.p3 = [ bayestopt_.p3; estim_params_.var_endo(:,8)]; %take generalized distribution into account
+    bayestopt_.p4 = [ bayestopt_.p4; estim_params_.var_endo(:,9)]; %take generalized distribution into account
     bayestopt_.jscale = [ bayestopt_.jscale; estim_params_.var_endo(:,10)];
     bayestopt_.name = [ bayestopt_.name; options_.varobs{estim_params_.nvn_observable_correspondence}];
 end
@@ -104,8 +105,8 @@ if ncx
     bayestopt_.pshape = [ bayestopt_.pshape; estim_params_.corrx(:,6)];
     bayestopt_.p1 = [ bayestopt_.p1; estim_params_.corrx(:,7)];
     bayestopt_.p2 = [ bayestopt_.p2; estim_params_.corrx(:,8)];
-    bayestopt_.p3 = [ bayestopt_.p3; estim_params_.corrx(:,9)];
-    bayestopt_.p4 = [ bayestopt_.p4; estim_params_.corrx(:,10)];
+    bayestopt_.p3 = [ bayestopt_.p3; estim_params_.corrx(:,9)]; %take generalized distribution into account
+    bayestopt_.p4 = [ bayestopt_.p4; estim_params_.corrx(:,10)]; %take generalized distribution into account
     bayestopt_.jscale = [ bayestopt_.jscale; estim_params_.corrx(:,11)];
     bayestopt_.name = [bayestopt_.name; cellstr([repmat('corr ',ncx,1)...
                         deblank(M_.exo_names(estim_params_.corrx(:,1),:)) ...
@@ -116,6 +117,7 @@ if ncn
     if isequal(M_.H,0)
         nvarobs = length(options_.varobs);
         M_.H = zeros(nvarobs,nvarobs);
+        M_.Correlation_matrix_ME = eye(nvarobs);
     end
     xparam1 = [xparam1; estim_params_.corrn(:,3)];
     ub = [ub; max(min(estim_params_.corrn(:,5),1),-1)];
@@ -123,8 +125,8 @@ if ncn
     bayestopt_.pshape = [ bayestopt_.pshape; estim_params_.corrn(:,6)];
     bayestopt_.p1 = [ bayestopt_.p1; estim_params_.corrn(:,7)];
     bayestopt_.p2 = [ bayestopt_.p2; estim_params_.corrn(:,8)];
-    bayestopt_.p3 = [ bayestopt_.p3; estim_params_.corrn(:,9)];
-    bayestopt_.p4 = [ bayestopt_.p4; estim_params_.corrn(:,10)];
+    bayestopt_.p3 = [ bayestopt_.p3; estim_params_.corrn(:,9)]; %take generalized distribution into account
+    bayestopt_.p4 = [ bayestopt_.p4; estim_params_.corrn(:,10)]; %take generalized distribution into account
     bayestopt_.jscale = [ bayestopt_.jscale; estim_params_.corrn(:,11)];
     bayestopt_.name = [bayestopt_.name; cellstr([repmat('corr ',ncn,1) ...
                         deblank(M_.endo_names(estim_params_.corrn(:,1),:)) ...
@@ -144,8 +146,8 @@ if np
     bayestopt_.pshape = [ bayestopt_.pshape; estim_params_.param_vals(:,5)];
     bayestopt_.p1 = [ bayestopt_.p1; estim_params_.param_vals(:,6)];
     bayestopt_.p2 = [ bayestopt_.p2; estim_params_.param_vals(:,7)];
-    bayestopt_.p3 = [ bayestopt_.p3; estim_params_.param_vals(:,8)];
-    bayestopt_.p4 = [ bayestopt_.p4; estim_params_.param_vals(:,9)];
+    bayestopt_.p3 = [ bayestopt_.p3; estim_params_.param_vals(:,8)]; %take generalized distribution into account
+    bayestopt_.p4 = [ bayestopt_.p4; estim_params_.param_vals(:,9)]; %take generalized distribution into account
     bayestopt_.jscale = [ bayestopt_.jscale; estim_params_.param_vals(:,10)];
     bayestopt_.name = [bayestopt_.name; cellstr(M_.param_names(estim_params_.param_vals(:,1),:))];
 end
@@ -257,8 +259,7 @@ if options_.initialize_estimated_parameters_with_the_prior_mode
     if ~isempty(k)
         xparam1(k) = bayestopt_.p1(k);
     end
-    xparam1 = transpose(xparam1);
-end 
+end
 
 % I create subfolder M_.dname/prior if needed.
 CheckPath('prior',M_.dname);
diff --git a/matlab/set_shocks.m b/matlab/set_shocks.m
deleted file mode 100644
index d6fead20aeb53607d3d4e7f4cd8f36f9fc651285..0000000000000000000000000000000000000000
--- a/matlab/set_shocks.m
+++ /dev/null
@@ -1,67 +0,0 @@
-function set_shocks(flag,k,ivar,values)
-
-% function set_shocks(flag,k,ivar,values)
-% writes a deterministic shock into exo_simul or exo_det_simul
-%
-% INPUTS
-%    flag=0:    replaces exo_simul  
-%    flag=1:    multiplicative shock into exo_simul
-%    flag=2:    replaces exo_det_simul
-%    flag=3:    multipliczative shock into exo_det_simul
-%    k:         period
-%    ivar:      indice of exogenous variables
-%    values:    shock values
-%
-% OUTPUTS
-%    none
-%        
-% SPECIAL REQUIREMENTS
-%    none
-
-% Copyright (C) 2003-2011 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-global oo_ M_
-
-k = k + M_.maximum_lag;
-n1 = size(oo_.exo_simul,1);
-n2 = size(oo_.exo_det_simul,1);
-if k(end) > n1 && flag <= 1
-    oo_.exo_simul = [oo_.exo_simul; repmat(oo_.exo_steady_state',k(end)-n1,1)];
-elseif k(end) > n2 && flag > 1
-    oo_.exo_det_simul = [oo_.exo_det_simul; repmat(oo_.exo_det_steady_state',k(end)-n2,1)];
-end
-
-switch flag
-  case 0
-    if size(values,1) == 1
-        oo_.exo_simul(k,ivar) = repmat(values,length(k),1);
-    else
-        oo_.exo_simul(k,ivar) = values;
-    end
-  case 1
-    oo_.exo_simul(k,ivar) = oo_.exo_simul(k,ivar).*values;
-  case 2
-    if size(values,1) == 1
-        oo_.exo_det_simul(k,ivar) = repmat(values,length(k),1);
-    else
-        oo_.exo_det_simul(k,ivar) = values;
-    end
-  case 3
-    oo_.exo_det_simul(k,ivar) = oo_.exo_det_simul(k,ivar).*values;
-end
-
diff --git a/matlab/set_state_space.m b/matlab/set_state_space.m
index 44602212bd40314e27e57a1d768aa55aa7137bfe..a7d108165f212d0190cfc6e749bfa5e223cc4121 100644
--- a/matlab/set_state_space.m
+++ b/matlab/set_state_space.m
@@ -34,7 +34,7 @@ function dr=set_state_space(dr,DynareModel,DynareOptions)
 %! @end deftypefn
 %@eod:
 
-% Copyright (C) 1996-2012 Dynare Team
+% Copyright (C) 1996-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -84,6 +84,9 @@ if max_lag > 0
     end
     kmask = [kmask; lead_lag_incidence(1,order_var)] ;
 else
+    if max_lead==0 %%in this case lead_lag_incidence has no entry max_lag+2
+        error('Dynare currently does not allow to solve purely static models in a stochastic context.')
+    end
     kmask = lead_lag_incidence(max_lag+2,order_var) ;
 end
 
diff --git a/matlab/setup_stochastic_perfect_foresight_model_solver.m b/matlab/setup_stochastic_perfect_foresight_model_solver.m
index 616281783afb5df12f4d2b0435835c85b6880dd9..42cba7c8a8f50392b44963c5b937ee701ac02268 100644
--- a/matlab/setup_stochastic_perfect_foresight_model_solver.m
+++ b/matlab/setup_stochastic_perfect_foresight_model_solver.m
@@ -66,7 +66,7 @@ pfm.i_cols_j = 1:pfm.nd;
 pfm.i_upd = pfm.ny+(1:pfm.periods*pfm.ny);
 pfm.dynamic_model = str2func([DynareModel.fname,'_dynamic']);
 pfm.verbose = DynareOptions.ep.verbosity;
-pfm.maxit_ = DynareOptions.maxit_;
+pfm.maxit_ = DynareOptions.simul.maxit;
 pfm.tolerance = DynareOptions.dynatol.f;
 
 if nargin>3 && DynareOptions.ep.stochastic.order
diff --git a/matlab/shiftS.m b/matlab/shiftS.m
index 01440f13d8f22d2e7176c54e47bacc374ae7597e..56f7c1642e7b586bb67b99db18ba9b9a9afdbe72 100644
--- a/matlab/shiftS.m
+++ b/matlab/shiftS.m
@@ -1,9 +1,9 @@
 function S = shiftS(S,n)
-%function S = shiftS(S)
+%function S = shiftS(S,n)
 %
-% Removes the first element of a one dimensional cell array.
+% Removes the first n elements of a one dimensional cell array.
 
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -20,18 +20,9 @@ function S = shiftS(S,n)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if nargin<2
-    n = 1;
-end
-    
-if length(S) > 1
-    S = S(2:end);
-    n = n-1;
+if length(S) >= n+1
+    S = S(n+1:end);
 else
     S = {};
-    n = 0;
 end
-
-if n
-    S = shiftS(S,n);
 end
\ No newline at end of file
diff --git a/matlab/shock_decomposition.m b/matlab/shock_decomposition.m
index 34a3b4acf06d7b3847f3dab0772ed03020879cca..bdfed236e41ab4035f85f0c6402816aa8e547c38 100644
--- a/matlab/shock_decomposition.m
+++ b/matlab/shock_decomposition.m
@@ -1,6 +1,10 @@
 function oo_ = shock_decomposition(M_,oo_,options_,varlist)
 % function z = shock_decomposition(M_,oo_,options_,varlist)
-% Computes shocks contribution to a simulated trajectory
+% Computes shocks contribution to a simulated trajectory. The field set is
+% oo_.shock_decomposition. It is a n_var by nshock+2 by nperiods array. The
+% first nshock columns store the respective shock contributions, column n+1
+% stores the role of the initial conditions, while column n+2 stores the
+% value of the smoothed variables.
 %
 % INPUTS
 %    M_:          [structure]  Definition of the model
@@ -72,10 +76,11 @@ A = dr.ghx;
 B = dr.ghu;
 
 % initialization
+gend = eval(['size(oo.SmoothedShocks.' M_.exo_names(1,:),',1)']);
+epsilon=NaN(nshocks,gend);
 for i=1:nshocks
     epsilon(i,:) = eval(['oo.SmoothedShocks.' M_.exo_names(i,:)]);
 end
-gend = size(epsilon,2);
 
 z = zeros(endo_nbr,nshocks+2,gend);
 for i=1:endo_nbr
diff --git a/matlab/sim1.m b/matlab/sim1.m
index ffe622eb63dea816aa7ecae01d603107ac6c41d9..e08f57a172faedf1a1ff9a385f5518baa353d8b6 100644
--- a/matlab/sim1.m
+++ b/matlab/sim1.m
@@ -32,6 +32,10 @@ function sim1()
 
 global M_ options_ oo_
 
+endogenous_terminal_period = options_.endogenous_terminal_period;
+vperiods = options_.periods*ones(1,options_.simul.maxit);
+azero = options_.dynatol.f/1e7;
+
 lead_lag_incidence = M_.lead_lag_incidence;
 
 ny = M_.endo_nbr;
@@ -69,10 +73,9 @@ i_upd = ny+(1:periods*ny);
 
 Y = endo_simul(:);
 
+skipline()
 disp (['-----------------------------------------------------']) ;
-disp (['MODEL SIMULATION :']) ;
-fprintf('\n') ;
-
+fprintf('MODEL SIMULATION:\n');
 
 model_dynamic = str2func([M_.fname,'_dynamic']);
 z = Y(find(lead_lag_incidence'));
@@ -82,19 +85,21 @@ z = Y(find(lead_lag_incidence'));
 A = sparse([],[],[],periods*ny,periods*ny,periods*nnz(jacobian));
 res = zeros(periods*ny,1);
 
-    
+o_periods = periods;
+
+ZERO = zeros(length(i_upd),1);
+
 h1 = clock ;
-for iter = 1:options_.maxit_
+for iter = 1:options_.simul.maxit
     h2 = clock ;
     
     i_rows = 1:ny;
     i_cols = find(lead_lag_incidence');
     i_cols_A = i_cols;
-    
+
     for it = (M_.maximum_lag+1):(M_.maximum_lag+periods)
 
-        [d1,jacobian] = model_dynamic(Y(i_cols),exo_simul, params, ...
-                                      steady_state,it);
+        [d1,jacobian] = model_dynamic(Y(i_cols), exo_simul, params, steady_state,it);
         if it == M_.maximum_lag+periods && it == M_.maximum_lag+1
             A(i_rows,i_cols_A0) = jacobian(:,i_cols_0);
         elseif it == M_.maximum_lag+periods
@@ -107,8 +112,18 @@ for iter = 1:options_.maxit_
 
         res(i_rows) = d1;
         
+        if endogenous_terminal_period && iter>1
+            dr = max(abs(d1));
+            if dr<azero
+                vperiods(iter) = it;
+                periods = it-M_.maximum_lag;
+                break
+            end
+        end
+    
         i_rows = i_rows + ny;
         i_cols = i_cols + ny;
+        
         if it > M_.maximum_lag+1
             i_cols_A = i_cols_A + ny;
         end
@@ -116,37 +131,69 @@ for iter = 1:options_.maxit_
         
     err = max(abs(res));
     
+    if options_.debug
+        fprintf('\nLargest absolute residual at iteration %d: %10.3f\n',iter,err);    
+        if any(isnan(res)) || any(isinf(res)) || any(isnan(Y)) || any(isinf(Y))
+            fprintf('\nWARNING: NaN or Inf detected in the residuals or endogenous variables.\n');    
+        end
+        skipline()
+    end
+    
     if err < options_.dynatol.f
         stop = 1 ;
-        fprintf('\n') ;
-        disp([' Total time of simulation        :' num2str(etime(clock,h1))]) ;
-        fprintf('\n') ;
-        disp([' Convergency obtained.']) ;
-        fprintf('\n') ;
-        oo_.deterministic_simulation.status = 1;% Convergency obtained.
-        oo_.deterministic_simulation.error = err;
-        oo_.deterministic_simulation.iterations = iter;
-        oo_.endo_simul = reshape(Y,ny,periods+2);
         break
     end
 
-    dy = -A\res;
+    if endogenous_terminal_period && iter>1
+        dy = ZERO;
+        dy(1:i_rows(end)) = -A(1:i_rows(end),1:i_rows(end))\res(1:i_rows(end));
+    else
+        dy = -A\res;
+    end
     
     Y(i_upd) =   Y(i_upd) + dy;
 
 end
 
+if endogenous_terminal_period
+    err = evaluate_max_dynamic_residual(model_dynamic, Y, oo_.exo_simul, params, steady_state, o_periods, ny, max_lag, lead_lag_incidence);
+    periods = o_periods;
+end
 
-if ~stop
-    fprintf('\n') ;
-    disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
-    fprintf('\n') ;
-    disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
-    fprintf('\n') ;
+
+if stop
+    if any(isnan(res)) || any(isinf(res)) || any(isnan(Y)) || any(isinf(Y))
+        oo_.deterministic_simulation.status = 0;% NaN or Inf occurred
+        oo_.deterministic_simulation.error = err;
+        oo_.deterministic_simulation.iterations = iter;
+        oo_.deterministic_simulation.periods = vperiods(1:iter);
+        oo_.endo_simul = reshape(Y,ny,periods+2);
+        skipline();
+        fprintf('\nSimulation terminated after %d iterations.\n',iter);
+        fprintf('Total time of simulation: %16.13f\n',etime(clock,h1));
+        error('Simulation terminated with NaN or Inf in the residuals or endogenous variables. There is most likely something wrong with your model.');
+    else
+        skipline();
+        fprintf('\nSimulation concluded successfully after %d iterations.\n',iter);
+        fprintf('Total time of simulation: %16.13f\n',etime(clock,h1));
+        fprintf('Max. Abs. Error         : %16.13f\n',err);
+        fprintf('Convergency obtained!\n');
+        oo_.deterministic_simulation.status = 1;% Convergency obtained.
+        oo_.deterministic_simulation.error = err;
+        oo_.deterministic_simulation.iterations = iter;
+        oo_.deterministic_simulation.periods = vperiods(1:iter);
+        oo_.endo_simul = reshape(Y,ny,periods+2);
+    end
+elseif ~stop
+    skipline();
+    fprintf('\nSimulation terminated after %d iterations.\n',iter);
+    fprintf('Total time of simulation: %16.13f\n',etime(clock,h1));
+    fprintf('Max. Abs. Error         : %16.13f\n',err);
+    fprintf('WARNING : maximum number of iterations is reached (modify option maxit).\n') ;
     oo_.deterministic_simulation.status = 0;% more iterations are needed.
     oo_.deterministic_simulation.error = err;
-    %oo_.deterministic_simulation.errors = c/abs(err)    
-    oo_.deterministic_simulation.iterations = options_.maxit_;
+    oo_.deterministic_simulation.periods = vperiods(1:iter);
+    oo_.deterministic_simulation.iterations = options_.simul.maxit;
 end
 disp (['-----------------------------------------------------']) ;
-
+skipline();
\ No newline at end of file
diff --git a/matlab/sim1_lbj.m b/matlab/sim1_lbj.m
index 8222ae4de6ddd00fad537fcc6de1ccbae926f4d6..e2039cc1a9fba9b17774a0e3caf17f26d6c51e4a 100644
--- a/matlab/sim1_lbj.m
+++ b/matlab/sim1_lbj.m
@@ -58,7 +58,7 @@ fprintf('\n') ;
 it_init = M_.maximum_lag+1 ;
 
 h1 = clock ;
-for iter = 1:options_.maxit_
+for iter = 1:options_.simul.maxit
     h2 = clock ;
     
     if options_.terminal_condition == 0
@@ -121,12 +121,12 @@ if ~stop
     fprintf('\n') ;
     disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
     fprintf('\n') ;
-    disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
+    disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ;
     fprintf('\n') ;
     oo_.deterministic_simulation.status = 0;% more iterations are needed.
     oo_.deterministic_simulation.error = err;
     oo_.deterministic_simulation.errors = c/abs(err);    
-    oo_.deterministic_simulation.iterations = options_.maxit_;
+    oo_.deterministic_simulation.iterations = options_.simul.maxit;
 end
 disp (['-----------------------------------------------------']) ;
 
diff --git a/matlab/sim1_purely_backward.m b/matlab/sim1_purely_backward.m
index 30e6409717d83b98cc46546e4488b626370a277b..f5a47dfc7b74e3c68d3f53a00c259552b365fd2e 100644
--- a/matlab/sim1_purely_backward.m
+++ b/matlab/sim1_purely_backward.m
@@ -1,7 +1,7 @@
 function sim1_purely_backward()
 % Performs deterministic simulation of a purely backward model
 
-% Copyright (C) 2012-2013 Dynare Team
+% Copyright (C) 2012-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -36,15 +36,22 @@ function sim1_purely_backward()
     
     model_dynamic = str2func([M_.fname,'_dynamic']);
 
+    oo_.deterministic_simulation.status = 1;
+
     for it = 2:options_.periods+1
         yb = oo_.endo_simul(:,it-1); % Values at previous period, also used as guess value for current period
         yb1 = yb(iyb);
        
-        tmp = solve1(model_dynamic, [yb1; yb], 1:M_.endo_nbr, nyb+1:nyb+ ...
-                     M_.endo_nbr, 1, 1, options_.gstep, ...
-                     options_.solve_tolf,options_.solve_tolx, ...
-                     options_.solve_maxit,options_.debug,oo_.exo_simul, ...
-                     M_.params, oo_.steady_state, it);
+        [tmp, check] = solve1(model_dynamic, [yb1; yb], 1:M_.endo_nbr, nyb+1:nyb+ ...
+                              M_.endo_nbr, 1, options_.gstep, ...
+                              options_.solve_tolf,options_.solve_tolx, ...
+                              options_.simul.maxit,options_.debug,oo_.exo_simul, ...
+                              M_.params, oo_.steady_state, it);
+
+        if check
+            oo_.deterministic_simulation.status = 0;
+        end
+
         oo_.endo_simul(:,it) = tmp(nyb+1:nyb+M_.endo_nbr);
     end
     
\ No newline at end of file
diff --git a/matlab/sim1_purely_forward.m b/matlab/sim1_purely_forward.m
index 795cb25e281c305f242ea56cf21ffc3467bc795c..e4ba8a7094c7da1066f97b50ee55851f8c484256 100644
--- a/matlab/sim1_purely_forward.m
+++ b/matlab/sim1_purely_forward.m
@@ -1,7 +1,7 @@
 function sim1_purely_forward()
 % Performs deterministic simulation of a purely forward model
 
-% Copyright (C) 2012 Dynare Team
+% Copyright (C) 2012-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,15 +29,22 @@ function sim1_purely_forward()
     
     model_dynamic = str2func([M_.fname,'_dynamic']);
 
+    oo_.deterministic_simulation.status = 1;
+
     for it = options_.periods:-1:1
         yf = oo_.endo_simul(:,it+1); % Values at next period, also used as guess value for current period
         yf1 = yf(iyf);
        
-        tmp = solve1(model_dynamic, [yf; yf1], 1:M_.endo_nbr, 1:M_.endo_nbr, ...
-                     1, 1, options_.gstep, options_.solve_tolf, ...
-                     options_.solve_tolx, options_.solve_maxit, ...
-                     options_.debug,oo_.exo_simul, M_.params, oo_.steady_state, ...
-                     it);
+        [tmp, info] = solve1(model_dynamic, [yf; yf1], 1:M_.endo_nbr, 1:M_.endo_nbr, ...
+                             1, options_.gstep, options_.solve_tolf, ...
+                             options_.solve_tolx, options_.simul.maxit, ...
+                             options_.debug,oo_.exo_simul, M_.params, oo_.steady_state, ...
+                             it);
+
+        if info
+            oo_.deterministic_simulation.status = 0;
+        end
+
         oo_.endo_simul(:,it) = tmp(1:M_.endo_nbr);
     end
     
\ No newline at end of file
diff --git a/matlab/simplex_optimization_routine.m b/matlab/simplex_optimization_routine.m
index b06135c62ec9ab9fdbd10d5784c8d2a6a97c5994..da073cb19a2595fc64a1ed6f34494b4001eec6be 100644
--- a/matlab/simplex_optimization_routine.m
+++ b/matlab/simplex_optimization_routine.m
@@ -1,21 +1,24 @@
 function [x,fval,exitflag] = simplex_optimization_routine(objective_function,x,options,varargin)
-% Nelder-Mead like optimization routine.
-% By default, we use standard values for the reflection, the expansion, the contraction and the shrink coefficients (alpha = 1, chi = 2, psi = 1 / 2 and σ = 1 / 2).
-% See http://en.wikipedia.org/wiki/Nelder-Mead_method
-%
-% This routine uses the Nelder-Mead simplex (direct search) method.
-% As chaining could reveal interesting to reach the solution neighborhood,
-% the function automatically restarts from the current solution while
-% amelioration is possible.
+
+% Nelder-Mead like optimization routine (see http://en.wikipedia.org/wiki/Nelder-Mead_method)
 %
-% INPUTS
-% objective_function     [string]       Name of the objective function to be minimized.
-% x                      [double]       n*1 vector, starting guess of the optimization routine.
-% options                [structure]
+% By default the standard values for the reflection, the expansion, the contraction
+% and the shrink coefficients are used (alpha = 1, chi = 2, psi = 1 / 2 and σ = 1 / 2).
 %
-% OUTPUTS
+% The routine automatically restarts from the current solution while amelioration is possible.
 %
+% INPUTS 
+%  o objective_function     [string]                  Name of the objective function to be minimized.
+%  o x                      [double]                  n*1 vector, starting guess of the optimization routine.
+%  o options                [structure]               Options of this implementation of the simplex algorithm.
+%  o varargin               [cell of structures]      Structures to be passed to the objective function: dataset_,
+%                                                     options_, M_, estim_params_, bayestopt_, and oo_.
 %
+% OUTPUTS 
+%  o x                      [double]                  n*1 vector, estimate of the optimal inputs.
+%  o fval                   [double]                  scalar, value of the objective at the optimum.
+%  o exitflag               [integer]                 scalar equal to 0 or 1 (0 if the algorithm did not converge to
+%                                                     a minimum).
 
 % Copyright (C) 2010-2013 Dynare Team
 %
@@ -33,7 +36,6 @@ function [x,fval,exitflag] = simplex_optimization_routine(objective_function,x,o
 %
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
-global bayestopt_
 
 % Set verbose mode
 verbose = 2;
@@ -41,6 +43,11 @@ verbose = 2;
 % Set number of control variables.
 number_of_variables = length(x);
 
+% get options.
+if isempty(options.maxfcall)
+    max_func_calls = options.maxfcallfactor*number_of_variables
+end
+
 % Set tolerance parameter.
 if isfield(options,'tolerance') && isfield(options.tolerance,'x')
     x_tolerance = options.tolerance.x;
@@ -59,13 +66,7 @@ end
 if isfield(options,'maxiter')
     max_iterations = options.maxiter;
 else
-    max_iterations = 1000;
-end
-% Set maximum number of iterations.
-if isfield(options,'maxfcall')
-    max_func_calls = options.maxfcall;
-else
-    max_func_calls = 500*number_of_variables;
+    max_iterations = 5000;
 end
 
 % Set reflection parameter.
@@ -145,7 +146,7 @@ else
 end
 
 % Set delta parameter.
-if isfield(options,'delta_parameter')
+if isfield(options,'delta_parameter')% Size of the simplex
     delta = options.delta_parameter;
 else
     delta = 0.05;
@@ -186,7 +187,7 @@ else
         disp(['Current parameter values: '])
         fprintf(1,'%s: \t\t\t %s \t\t\t %s \t\t\t %s \t\t\t %s \t\t\t %s \n','Names','Best point', 'Worst point', 'Mean values', 'Min values', 'Max values');
         for i=1:number_of_variables
-            fprintf(1,'%s: \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \n',bayestopt_.name{i},v(i,1), v(i,end), mean(v(i,:),2), min(v(i,:),[],2), max(v(i,:),[],2));
+            fprintf(1,'%s: \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \n',varargin{5}.name{i},v(i,1), v(i,end), mean(v(i,:),2), min(v(i,:),[],2), max(v(i,:),[],2));
         end
         skipline()
     end
@@ -398,7 +399,7 @@ while (func_count < max_func_calls) && (iter_count < max_iterations) && (simplex
         disp(['Current parameter values: '])
         fprintf(1,'%s: \t\t\t %s \t\t\t %s \t\t\t %s \t\t\t %s \t\t\t %s \n','Names','Best point', 'Worst point', 'Mean values', 'Min values', 'Max values');
         for i=1:number_of_variables
-            fprintf(1,'%s: \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \n',bayestopt_.name{i}, v(i,1), v(i,end), mean(v(i,:),2), min(v(i,:),[],2), max(v(i,:),[],2));
+            fprintf(1,'%s: \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \n',varargin{5}.name{i}, v(i,1), v(i,end), mean(v(i,:),2), min(v(i,:),[],2), max(v(i,:),[],2));
         end
         skipline()
     end
@@ -424,7 +425,7 @@ while (func_count < max_func_calls) && (iter_count < max_iterations) && (simplex
                 disp(['values for the control variables. '])
                 disp(['New value of delta (size of the new simplex) is: '])
                 for i=1:number_of_variables
-                    fprintf(1,'%s: \t\t\t %+8.6f \n',bayestopt_.name{i}, delta(i));
+                    fprintf(1,'%s: \t\t\t %+8.6f \n',varargin{5}.name{i}, delta(i));
                 end
             end
             % Reset counters
@@ -471,7 +472,7 @@ while (func_count < max_func_calls) && (iter_count < max_iterations) && (simplex
                 disp(['values for the control variables. '])
                 disp(['New value of delta (size of the new simplex) is: '])
                 for i=1:number_of_variables
-                    fprintf(1,'%s: \t\t\t %+8.6f \n',bayestopt_.name{i}, delta(i));
+                    fprintf(1,'%s: \t\t\t %+8.6f \n',varargin{5}.name{i}, delta(i));
                 end
             end
             % Reset counters
diff --git a/matlab/simpsa.m b/matlab/simpsa.m
new file mode 100644
index 0000000000000000000000000000000000000000..260607a24097cbf598990a1d3b8dd141a15d6f2e
--- /dev/null
+++ b/matlab/simpsa.m
@@ -0,0 +1,530 @@
+function [X,FVAL,EXITFLAG,OUTPUT] = simpsa(FUN,X0,LB,UB,OPTIONS,varargin)
+
+% Finds a minimum of a function of several variables using an algorithm 
+% that is based on the combination of the non-linear smplex and the simulated 
+% annealing algorithm (the SIMPSA algorithm, Cardoso et al., 1996). 
+% In this paper, the algorithm is shown to be adequate for the global optimi-
+% zation of an example set of unconstrained and constrained NLP functions.
+%
+%   SIMPSA attempts to solve problems of the form:
+%       min F(X) subject to: LB <= X <= UB
+%        X
+%
+% Algorithm partly is based on paper of Cardoso et al, 1996.
+%                                                                             
+%   X=SIMPSA(FUN,X0) start at X0 and finds a minimum X to the function FUN. 
+%   FUN accepts input X and returns a scalar function value F evaluated at X.
+%   X0 may be a scalar, vector, or matrix.
+%   
+%   X=SIMPSA(FUN,X0,LB,UB) defines a set of lower and upper bounds on the 
+%   design variables, X, so that a solution is found in the range 
+%   LB <= X <= UB. Use empty matrices for LB and UB if no bounds exist. 
+%   Set LB(i) = -Inf if X(i) is unbounded below; set UB(i) = Inf if X(i) is 
+%   unbounded above.
+%   
+%   X=SIMPSA(FUN,X0,LB,UB,OPTIONS) minimizes with the default optimization
+%   parameters replaced by values in the structure OPTIONS, an argument 
+%   created with the SIMPSASET function. See SIMPSASET for details. 
+%   Used options are TEMP_START, TEMP_END, COOL_RATE, INITIAL_ACCEPTANCE_RATIO,
+%   MIN_COOLING_FACTOR, MAX_ITER_TEMP_FIRST, MAX_ITER_TEMP_LAST, MAX_ITER_TEMP,
+%   MAX_ITER_TOTAL, MAX_TIME, MAX_FUN_EVALS, TOLX, TOLFUN, DISPLAY and OUTPUT_FCN.
+%   Use OPTIONS = [] as a place holder if no options are set.
+%   
+%   X=SIMPSA(FUN,X0,LB,UB,OPTIONS,varargin) is used to supply a variable 
+%   number of input arguments to the objective function FUN.
+%   
+%   [X,FVAL]=SIMPSA(FUN,X0,...) returns the value of the objective 
+%   function FUN at the solution X.
+%   
+%   [X,FVAL,EXITFLAG]=SIMPSA(FUN,X0,...) returns an EXITFLAG that describes the 
+%   exit condition of SIMPSA. Possible values of EXITFLAG and the corresponding 
+%   exit conditions are:
+%   
+%     1  Change in the objective function value less than the specified tolerance.
+%     2  Change in X less than the specified tolerance.
+%     0  Maximum number of function evaluations or iterations reached.
+%    -1  Maximum time exceeded.
+%   
+%   [X,FVAL,EXITFLAG,OUTPUT]=SIMPSA(FUN,X0,...) returns a structure OUTPUT with 
+%   the number of iterations taken in OUTPUT.nITERATIONS, the number of function
+%   evaluations in OUTPUT.nFUN_EVALS, the temperature profile in OUTPUT.TEMPERATURE,
+%   the simplexes that were evaluated in OUTPUT.SIMPLEX and the best one in 
+%   OUTPUT.SIMPLEX_BEST, the costs associated with each simplex in OUTPUT.COSTS and 
+%   from the best simplex at that iteration in OUTPUT.COST_BEST, the amount of time 
+%   needed in OUTPUT.TIME and the options used in OUTPUT.OPTIONS.
+% 
+%   See also SIMPSASET, SIMPSAGET
+
+
+% Copyright (C) 2005 Henning Schmidt, FCC, henning@fcc.chalmers.se
+% Copyright (C) 2006 Brecht Donckels, BIOMATH, brecht.donckels@ugent.be
+% Copyright (C) 2013 Dynare Team.
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+% handle variable input arguments
+
+if nargin < 5,
+    OPTIONS = [];
+    if nargin < 4,
+        UB = 1e5;
+        if nargin < 3,
+            LB = -1e5;
+        end
+    end
+end
+
+% check input arguments
+
+if ~ischar(FUN),
+    error('''FUN'' incorrectly specified in ''SIMPSA''');
+end
+if ~isfloat(X0),
+    error('''X0'' incorrectly specified in ''SIMPSA''');
+end
+if ~isfloat(LB),
+    error('''LB'' incorrectly specified in ''SIMPSA''');
+end
+if ~isfloat(UB),
+    error('''UB'' incorrectly specified in ''SIMPSA''');
+end
+if length(X0) ~= length(LB),
+    error('''LB'' and ''X0'' have incompatible dimensions in ''SIMPSA''');
+end
+if length(X0) ~= length(UB),
+    error('''UB'' and ''X0'' have incompatible dimensions in ''SIMPSA''');
+end
+
+% declaration of global variables
+
+global NDIM nFUN_EVALS TEMP YBEST PBEST
+
+% set EXITFLAG to default value
+
+EXITFLAG = -2;
+
+% determine number of variables to be optimized
+
+NDIM = length(X0);
+
+% set default options
+DEFAULT_OPTIONS = simpsaset('TEMP_START',[],...  % starting temperature (if none provided, an optimal one will be estimated)
+             'TEMP_END',.1,...                    % end temperature
+             'COOL_RATE',10,...                  % small values (<1) means slow convergence,large values (>1) means fast convergence
+             'INITIAL_ACCEPTANCE_RATIO',0.95,... % when initial temperature is estimated, this will be the initial acceptance ratio in the first round
+             'MIN_COOLING_FACTOR',0.9,...        % minimum cooling factor (<1)
+             'MAX_ITER_TEMP_FIRST',50,...        % number of iterations in the preliminary temperature loop
+             'MAX_ITER_TEMP_LAST',2000,...         % number of iterations in the last temperature loop (pure simplex)
+             'MAX_ITER_TEMP',10,...              % number of iterations in the remaining temperature loops
+             'MAX_ITER_TOTAL',2500,...           % maximum number of iterations tout court
+             'MAX_TIME',2500,...                 % maximum duration of optimization
+             'MAX_FUN_EVALS',20000,...            % maximum number of function evaluations
+             'TOLX',1e-6,...                     % maximum difference between best and worst function evaluation in simplex
+             'TOLFUN',1e-6,...                   % maximum difference between the coordinates of the vertices
+             'DISPLAY','iter',...                % 'iter' or 'none' indicating whether user wants feedback
+             'OUTPUT_FCN',[]);                   % string with output function name
+
+% update default options with supplied options
+
+OPTIONS = simpsaset(DEFAULT_OPTIONS,OPTIONS);
+
+% store options in OUTPUT
+
+OUTPUT.OPTIONS = OPTIONS;
+
+% initialize simplex
+% ------------------
+
+% create empty simplex matrix p (location of vertex i in row i)
+P = zeros(NDIM+1,NDIM);
+% create empty cost vector (cost of vertex i in row i)
+Y = zeros(NDIM+1,1);
+% set best vertex of initial simplex equal to initial parameter guess
+PBEST = X0(:)';
+% calculate cost with best vertex of initial simplex
+YBEST = CALCULATE_COST(FUN,PBEST,LB,UB,varargin{:});
+
+% initialize temperature loop
+% ---------------------------
+
+% set temperature loop number to one
+TEMP_LOOP_NUMBER = 1;
+
+% if no TEMP_START is supplied, the initial temperature is estimated in the first
+% loop as described by Cardoso et al., 1996 (recommended)
+
+% therefore, the temperature is set to YBEST*1e5 in the first loop
+if isempty(OPTIONS.TEMP_START),
+    TEMP = abs(YBEST)*1e5;
+else
+    TEMP = OPTIONS.TEMP_START;
+end
+
+% initialize OUTPUT structure
+% ---------------------------
+
+OUTPUT.TEMPERATURE = zeros(OPTIONS.MAX_ITER_TOTAL,1);
+OUTPUT.SIMPLEX = zeros(NDIM+1,NDIM,OPTIONS.MAX_ITER_TOTAL);
+OUTPUT.SIMPLEX_BEST = zeros(OPTIONS.MAX_ITER_TOTAL,NDIM);
+OUTPUT.COSTS = zeros(OPTIONS.MAX_ITER_TOTAL,NDIM+1);
+OUTPUT.COST_BEST = zeros(OPTIONS.MAX_ITER_TOTAL,1);
+
+% initialize iteration data
+% -------------------------
+
+% start timer
+tic
+% set number of function evaluations to one
+nFUN_EVALS = 1;
+% set number of iterations to zero
+nITERATIONS = 0;
+
+% temperature loop: run SIMPSA till stopping criterion is met
+% -----------------------------------------------------------
+
+while 1,
+    
+    % detect if termination criterium was met
+    % ---------------------------------------
+    
+    % if a termination criterium was met, the value of EXITFLAG should have changed
+    % from its default value of -2 to -1, 0, 1 or 2
+    
+    if EXITFLAG ~= -2,
+        break
+    end
+    
+    % set MAXITERTEMP: maximum number of iterations at current temperature
+    % --------------------------------------------------------------------
+    
+    if TEMP_LOOP_NUMBER == 1,
+        MAXITERTEMP = OPTIONS.MAX_ITER_TEMP_FIRST*NDIM;
+        % The initial temperature is estimated (is requested) as described in 
+        % Cardoso et al. (1996). Therefore, we need to store the number of 
+        % successful and unsuccessful moves, as well as the increase in cost 
+        % for the unsuccessful moves.
+        if isempty(OPTIONS.TEMP_START),
+            [SUCCESSFUL_MOVES,UNSUCCESSFUL_MOVES,UNSUCCESSFUL_COSTS] = deal(0);
+        end
+    elseif TEMP < OPTIONS.TEMP_END,
+        TEMP = 0;
+        MAXITERTEMP = OPTIONS.MAX_ITER_TEMP_LAST*NDIM;
+    else
+        MAXITERTEMP = OPTIONS.MAX_ITER_TEMP*NDIM;
+    end
+    
+    % construct initial simplex
+    % -------------------------
+    
+    % 1st vertex of initial simplex
+    P(1,:) = PBEST;
+    Y(1) = CALCULATE_COST(FUN,P(1,:),LB,UB,varargin{:});
+    
+    % if output function given then run output function to plot intermediate result
+    if ~isempty(OPTIONS.OUTPUT_FCN),
+        feval(OPTIONS.OUTPUT_FCN,transpose(P(1,:)),Y(1));
+    end
+    
+    % remaining vertices of simplex
+    for k = 1:NDIM,
+        % copy first vertex in new vertex
+        P(k+1,:) = P(1,:);
+        % alter new vertex
+        P(k+1,k) = LB(k)+rand*(UB(k)-LB(k));
+        % calculate value of objective function at new vertex
+        Y(k+1) = CALCULATE_COST(FUN,P(k+1,:),LB,UB,varargin{:});
+    end
+    
+    % store information on what step the algorithm just did
+    ALGOSTEP = 'initial simplex';
+    
+    % add NDIM+1 to number of function evaluations
+    nFUN_EVALS = nFUN_EVALS + NDIM;
+    
+    % note:
+    %  dimensions of matrix P: (NDIM+1) x NDIM
+    %  dimensions of vector Y: (NDIM+1) x 1
+    
+    % give user feedback if requested
+    if strcmp(OPTIONS.DISPLAY,'iter'),
+        if nITERATIONS == 0,
+            disp(' Nr Iter  Nr Fun Eval    Min function       Best function        TEMP           Algorithm Step');
+        else
+            disp(sprintf('%5.0f      %5.0f       %12.6g     %15.6g      %12.6g       %s',nITERATIONS,nFUN_EVALS,Y(1),YBEST,TEMP,'best point'));
+        end
+    end
+
+    % run full metropolis cycle at current temperature
+    % ------------------------------------------------
+    
+    % initialize vector COSTS, needed to calculate new temperature using cooling
+    % schedule as described by Cardoso et al. (1996)
+    COSTS = zeros((NDIM+1)*MAXITERTEMP,1);
+    
+    % initialize ITERTEMP to zero
+    
+    ITERTEMP = 0;
+    
+    % start
+
+    for ITERTEMP = 1:MAXITERTEMP,
+        
+        % add one to number of iterations
+        nITERATIONS = nITERATIONS + 1;
+        
+        % Press and Teukolsky (1991) add a positive logarithmic distributed variable,
+        % proportional to the control temperature T to the function value associated with 
+        % every vertex of the simplex. Likewise,they subtract a similar random variable 
+        % from the function value at every new replacement point.
+        % Thus, if the replacement point corresponds to a lower cost, this method always
+        % accepts a true down hill step. If, on the other hand, the replacement point 
+        % corresponds to a higher cost, an uphill move may be accepted, depending on the
+        % relative COSTS of the perturbed values.
+        % (taken from Cardoso et al.,1996)
+        
+        % add random fluctuations to function values of current vertices
+        YFLUCT = Y+TEMP*abs(log(rand(NDIM+1,1)));
+        
+        % reorder YFLUCT, Y and P so that the first row corresponds to the lowest YFLUCT value
+        help = sortrows([YFLUCT,Y,P],1);
+        YFLUCT = help(:,1);
+        Y = help(:,2);
+        P = help(:,3:end);
+        
+        % store temperature at current iteration
+        OUTPUT.TEMPERATURE(nITERATIONS) = TEMP;
+
+        % store information about simplex at the current iteration
+        OUTPUT.SIMPLEX(:,:,nITERATIONS) = P;
+        OUTPUT.SIMPLEX_BEST(nITERATIONS,:) = PBEST;
+        
+        % store cost function value of best vertex in current iteration
+        OUTPUT.COSTS(nITERATIONS,:) = Y;
+        OUTPUT.COST_BEST(nITERATIONS) = YBEST;
+        
+        if strcmp(OPTIONS.DISPLAY,'iter'),
+            disp(sprintf('%5.0f      %5.0f       %12.6g     %15.6g      %12.6g       %s',nITERATIONS,nFUN_EVALS,Y(1),YBEST,TEMP,ALGOSTEP));
+        end
+        
+        % if output function given then run output function to plot intermediate result
+        if ~isempty(OPTIONS.OUTPUT_FCN),
+            feval(OPTIONS.OUTPUT_FCN,transpose(P(1,:)),Y(1));
+        end
+        
+        % end the optimization if one of the stopping criteria is met
+        %% 1. difference between best and worst function evaluation in simplex is smaller than TOLFUN 
+        %% 2. maximum difference between the coordinates of the vertices in simplex is less than TOLX
+        %% 3. no convergence,but maximum number of iterations has been reached
+        %% 4. no convergence,but maximum time has been reached
+            
+        if (abs(max(Y)-min(Y)) < OPTIONS.TOLFUN) && (TEMP_LOOP_NUMBER ~= 1),
+            if strcmp(OPTIONS.DISPLAY,'iter'),
+                disp('Change in the objective function value less than the specified tolerance (TOLFUN).')
+            end
+            EXITFLAG = 1;
+            break;
+        end
+        
+        if (max(max(abs(P(2:NDIM+1,:)-P(1:NDIM,:)))) < OPTIONS.TOLX) && (TEMP_LOOP_NUMBER ~= 1),
+            if strcmp(OPTIONS.DISPLAY,'iter'),
+                disp('Change in X less than the specified tolerance (TOLX).')
+            end
+            EXITFLAG = 2;
+            break;
+        end
+        
+        if (nITERATIONS >= OPTIONS.MAX_ITER_TOTAL*NDIM) || (nFUN_EVALS >= OPTIONS.MAX_FUN_EVALS*NDIM*(NDIM+1)),
+            if strcmp(OPTIONS.DISPLAY,'iter'),
+                disp('Maximum number of function evaluations or iterations reached.');
+            end
+            EXITFLAG = 0;
+            break;
+        end
+        
+        if toc/60 > OPTIONS.MAX_TIME,
+            if strcmp(OPTIONS.DISPLAY,'iter'),
+                disp('Exceeded maximum time.');
+            end
+            EXITFLAG = -1;
+            break;
+        end
+        
+        % begin a new iteration
+        
+        %% first extrapolate by a factor -1 through the face of the simplex
+        %% across from the high point,i.e.,reflect the simplex from the high point
+        [YFTRY,YTRY,PTRY] = AMOTRY(FUN,P,-1,LB,UB,varargin{:});
+        
+        %% check the result
+        if YFTRY <= YFLUCT(1),
+            %% gives a result better than the best point,so try an additional
+            %% extrapolation by a factor 2
+            [YFTRYEXP,YTRYEXP,PTRYEXP] = AMOTRY(FUN,P,-2,LB,UB,varargin{:});
+            if YFTRYEXP < YFTRY,
+                P(end,:) = PTRYEXP;
+                Y(end) = YTRYEXP;
+                ALGOSTEP = 'reflection and expansion';
+            else
+                P(end,:) = PTRY;
+                Y(end) = YTRY;
+                ALGOSTEP = 'reflection';
+            end
+        elseif YFTRY >= YFLUCT(NDIM),
+            %% the reflected point is worse than the second-highest, so look
+            %% for an intermediate lower point, i.e., do a one-dimensional
+            %% contraction
+            [YFTRYCONTR,YTRYCONTR,PTRYCONTR] = AMOTRY(FUN,P,-0.5,LB,UB,varargin{:});
+            if YFTRYCONTR < YFLUCT(end),
+                P(end,:) = PTRYCONTR;
+                Y(end) = YTRYCONTR;
+                ALGOSTEP = 'one dimensional contraction';
+            else
+                %% can't seem to get rid of that high point, so better contract
+                %% around the lowest (best) point
+                X = ones(NDIM,NDIM)*diag(P(1,:));
+                P(2:end,:) = 0.5*(P(2:end,:)+X);
+                for k=2:NDIM,
+                    Y(k) = CALCULATE_COST(FUN,P(k,:),LB,UB,varargin{:});
+                end
+                ALGOSTEP = 'multiple contraction';
+            end
+        else
+            %% if YTRY better than second-highest point, use this point
+            P(end,:) = PTRY;
+            Y(end) = YTRY;
+            ALGOSTEP = 'reflection';
+        end
+        
+        % the initial temperature is estimated in the first loop from 
+        % the number of successfull and unsuccesfull moves, and the average 
+        % increase in cost associated with the unsuccessful moves
+        
+        if TEMP_LOOP_NUMBER == 1 && isempty(OPTIONS.TEMP_START),
+            if Y(1) > Y(end),
+                SUCCESSFUL_MOVES = SUCCESSFUL_MOVES+1;
+            elseif Y(1) <= Y(end),
+                UNSUCCESSFUL_MOVES = UNSUCCESSFUL_MOVES+1;
+                UNSUCCESSFUL_COSTS = UNSUCCESSFUL_COSTS+(Y(end)-Y(1));
+            end
+        end
+
+    end
+
+    % stop if previous for loop was broken due to some stop criterion
+    if ITERTEMP < MAXITERTEMP,
+        break;
+    end
+    
+    % store cost function values in COSTS vector
+    COSTS((ITERTEMP-1)*NDIM+1:ITERTEMP*NDIM+1) = Y;
+    
+    % calculated initial temperature or recalculate temperature 
+    % using cooling schedule as proposed by Cardoso et al. (1996)
+    % -----------------------------------------------------------
+    
+    if TEMP_LOOP_NUMBER == 1 && isempty(OPTIONS.TEMP_START),
+        TEMP = -(UNSUCCESSFUL_COSTS/(SUCCESSFUL_MOVES+UNSUCCESSFUL_MOVES))/log(((SUCCESSFUL_MOVES+UNSUCCESSFUL_MOVES)*OPTIONS.INITIAL_ACCEPTANCE_RATIO-SUCCESSFUL_MOVES)/UNSUCCESSFUL_MOVES);
+    elseif TEMP_LOOP_NUMBER ~= 0,
+        STDEV_Y = std(COSTS);
+        COOLING_FACTOR = 1/(1+TEMP*log(1+OPTIONS.COOL_RATE)/(3*STDEV_Y));
+        TEMP = TEMP*min(OPTIONS.MIN_COOLING_FACTOR,COOLING_FACTOR);
+    end
+    
+    % add one to temperature loop number
+    TEMP_LOOP_NUMBER = TEMP_LOOP_NUMBER+1;
+    
+end
+
+% return solution
+X = transpose(PBEST);
+FVAL = YBEST;
+
+% store number of function evaluations
+OUTPUT.nFUN_EVALS = nFUN_EVALS;
+
+% store number of iterations
+OUTPUT.nITERATIONS = nITERATIONS;
+
+% trim OUTPUT data structure
+OUTPUT.TEMPERATURE(nITERATIONS+1:end) = [];
+OUTPUT.SIMPLEX(:,:,nITERATIONS+1:end) = [];
+OUTPUT.SIMPLEX_BEST(nITERATIONS+1:end,:) = [];
+OUTPUT.COSTS(nITERATIONS+1:end,:) = [];
+OUTPUT.COST_BEST(nITERATIONS+1:end) = [];
+
+% store the amount of time needed in OUTPUT data structure
+OUTPUT.TIME = toc;
+
+return
+
+% ==============================================================================
+
+% AMOTRY FUNCTION
+% ---------------
+
+function [YFTRY,YTRY,PTRY] = AMOTRY(FUN,P,fac,LB,UB,varargin)
+% Extrapolates by a factor fac through the face of the simplex across from 
+% the high point, tries it, and replaces the high point if the new point is 
+% better.
+
+global NDIM TEMP
+
+% calculate coordinates of new vertex
+psum = sum(P(1:NDIM,:))/NDIM;
+PTRY = psum*(1-fac)+P(end,:)*fac;
+
+% evaluate the function at the trial point.
+YTRY = CALCULATE_COST(FUN,PTRY,LB,UB,varargin{:});
+% substract random fluctuations to function values of current vertices
+YFTRY = YTRY-TEMP*abs(log(rand(1)));
+
+return
+
+% ==============================================================================
+
+% COST FUNCTION EVALUATION
+% ------------------------
+
+function [YTRY] = CALCULATE_COST(FUN,PTRY,LB,UB,varargin)
+
+global YBEST PBEST NDIM nFUN_EVALS
+
+for i = 1:NDIM,
+    % check lower bounds
+    if PTRY(i) < LB(i),
+        YTRY = 1e12+(LB(i)-PTRY(i))*1e6;
+        return
+    end
+    % check upper bounds
+    if PTRY(i) > UB(i),
+        YTRY = 1e12+(PTRY(i)-UB(i))*1e6;
+        return
+    end
+end
+
+% calculate cost associated with PTRY
+YTRY = feval(FUN,PTRY(:),varargin{:});
+
+% add one to number of function evaluations
+nFUN_EVALS = nFUN_EVALS + 1;
+
+% save the best point ever
+if YTRY < YBEST,
+    YBEST = YTRY;
+    PBEST = PTRY;
+end
+
+return
diff --git a/matlab/simpsaget.m b/matlab/simpsaget.m
new file mode 100644
index 0000000000000000000000000000000000000000..c693389188cc08c49c021ab1d2ab5166730598b8
--- /dev/null
+++ b/matlab/simpsaget.m
@@ -0,0 +1,124 @@
+function o = SIMPSAGET(options,name,default,flag)
+%SIMPSAGET Get SIMPSA OPTIONS parameters.
+%   VAL = SIMPSAGET(OPTIONS,'NAME') extracts the value of the named parameter
+%   from optimization options structure OPTIONS, returning an empty matrix if
+%   the parameter value is not specified in OPTIONS.  It is sufficient to
+%   type only the leading characters that uniquely identify the
+%   parameter.  Case is ignored for parameter names.  [] is a valid OPTIONS
+%   argument.
+%
+%   VAL = SIMPSAGET(OPTIONS,'NAME',DEFAULT) extracts the named parameter as
+%   above, but returns DEFAULT if the named parameter is not specified (is [])
+%   in OPTIONS.  For example
+%
+%     val = simpsaget(opts,'TolX',1e-4);
+%
+%   returns val = 1e-4 if the TolX property is not specified in opts.
+%
+%   See also SIMPSASET, SIMPSA
+
+% Copyright (C) 2006 Brecht Donckels, BIOMATH, brecht.donckels@ugent.be
+% 
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+
+% undocumented usage for fast access with no error checking
+if (nargin == 4) && isequal(flag,'fast')
+   o = getknownfield(options,name,default);
+   return
+end
+
+if nargin < 2
+  error('MATLAB:odeget:NotEnoughInputs','Not enough input arguments.');
+end
+if nargin < 3
+  default = [];
+end
+
+if ~isempty(options) && ~isa(options,'struct')
+  error('MATLAB:odeget:Arg1NotODESETstruct',...
+        'First argument must be an options structure created with ODESET.');
+end
+
+if isempty(options)
+  o = default;
+  return;
+end
+
+Names = [
+    'TEMP_START               '
+    'TEMP_END                 '
+    'COOL_RATE                '
+    'INITIAL_ACCEPTANCE_RATIO '
+    'MIN_COOLING_FACTOR       '
+    'MAX_ITER_TEMP_FIRST      '
+    'MAX_ITER_TEMP_LAST       '
+    'MAX_ITER_TEMP            '
+    'MAX_ITER_TOTAL           '
+    'MAX_TIME                 '
+    'MAX_FUN_EVALS            '
+    'TOLX                     '
+    'TOLFUN                   '
+    'DISPLAY                  '
+    'OUTPUT_FCN               '
+    ];
+
+names = lower(Names);
+
+lowName = lower(name);
+j = strmatch(lowName,names);
+if isempty(j)               % if no matches
+  error('MATLAB:odeget:InvalidPropName',...
+        ['Unrecognized property name ''%s''.  ' ...
+         'See ODESET for possibilities.'], name);
+elseif length(j) > 1            % if more than one match
+  % Check for any exact matches (in case any names are subsets of others)
+  k = strmatch(lowName,names,'exact');
+  if length(k) == 1
+    j = k;
+  else
+    msg = sprintf('Ambiguous property name ''%s'' ', name);
+    msg = [msg '(' deblank(Names(j(1),:))];
+    for k = j(2:length(j))'
+      msg = [msg ', ' deblank(Names(k,:))];
+    end
+    msg = sprintf('%s).', msg);
+    error('MATLAB:odeget:AmbiguousPropName', msg);
+  end
+end
+
+if any(strcmp(fieldnames(options),deblank(Names(j,:))))
+  o = options.(deblank(Names(j,:)));
+  if isempty(o)
+    o = default;
+  end
+else
+  o = default;
+end
+
+% --------------------------------------------------------------------------
+function v = getknownfield(s, f, d)
+%GETKNOWNFIELD  Get field f from struct s, or else yield default d.
+
+if isfield(s,f)   % s could be empty.
+  v = subsref(s, struct('type','.','subs',f));
+  if isempty(v)
+    v = d;
+  end
+else
+  v = d;
+end
+
diff --git a/matlab/simpsaset.m b/matlab/simpsaset.m
new file mode 100644
index 0000000000000000000000000000000000000000..ca687891a8d1e3d127d208ed933c237aee4c4db8
--- /dev/null
+++ b/matlab/simpsaset.m
@@ -0,0 +1,172 @@
+function options = simpsaset(varargin)
+
+%SIMPSASET Create/alter simpsa optimization OPTIONS structure.
+%   OPTIONS = SIMPSASET('PARAM1',VALUE1,'PARAM2',VALUE2,...) creates an
+%   optimization options structure OPTIONS in which the named parameters have
+%   the specified values.  Any unspecified parameters are set to [] (parameters
+%   with value [] indicate to use the default value for that parameter when
+%   OPTIONS is passed to the optimization function). It is sufficient to type
+%   only the leading characters that uniquely identify the parameter.  Case is
+%   ignored for parameter names.
+%   NOTE: For values that are strings, the complete string is required.
+%
+%   OPTIONS = SIMPSASET(OLDOPTS,'PARAM1',VALUE1,...) creates a copy of OLDOPTS
+%   with the named parameters altered with the specified values.
+%
+%   OPTIONS = SIMPSASET(OLDOPTS,NEWOPTS) combines an existing options structure
+%   OLDOPTS with a new options structure NEWOPTS.  Any parameters in NEWOPTS
+%   with non-empty values overwrite the corresponding old parameters in
+%   OLDOPTS.
+%
+%   SIMPSASET with no input arguments and no output arguments displays all
+%   parameter names and their possible values, with defaults shown in {}
+%   when the default is the same for all functions that use that option -- use
+%   SIMPSASET(OPTIMFUNCTION) to see options for a specific function.
+%
+%   OPTIONS = SIMPSASET (with no input arguments) creates an options structure
+%   OPTIONS where all the fields are set to [].
+
+% Copyright (C) 2005 Henning Schmidt, FCC, henning@fcc.chalmers.se
+% Copyright (C) 2006 Brecht Donckels, BIOMATH, brecht.donckels@ugent.be
+% Copyright (C) 2013 Dynare Team.
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+
+
+% Print out possible values of properties.
+if (nargin == 0) && (nargout == 0)
+    fprintf('                   TEMP_START: [ positive scalar ]\n');
+    fprintf('                     TEMP_END: [ positive scalar ]\n');
+    fprintf('                    COOL_RATE: [ positive scalar ]\n');
+    fprintf('     INITIAL_ACCEPTANCE_RATIO: [ positive scalar < 1 {0.95} ]\n');
+    fprintf('           MIN_COOLING_FACTOR: [ positive scalar < 1 {0.9}]\n');
+    fprintf('          MAX_ITER_TEMP_FIRST: [ positive scalar {100} ]\n');
+    fprintf('           MAX_ITER_TEMP_LAST: [ positive scalar {20} ]\n');
+    fprintf('               MAX_ITER_TOTAL: [ positive scalar {2500} ]\n');
+    fprintf('                     MAX_TIME: [ positive scalar {2500} ]\n');
+    fprintf('                MAX_FUN_EVALS: [ positive scalar {2500} ]\n');
+    fprintf('                         TOLX: [ positive scalar {1e-6} ]\n');
+    fprintf('                       TOLFUN: [ positive scalar {1e-6} ]\n');
+    fprintf('                      DISPLAY: [ ''iter'' or ''none'' {''iter''} ]\n');
+    fprintf('                   OUTPUT_FCN: [ function_handle ]\n');
+    fprintf('\n');
+return;
+end
+
+Names = [
+    'TEMP_START               '
+    'TEMP_END                 '
+    'COOL_RATE                '
+    'INITIAL_ACCEPTANCE_RATIO '
+    'MIN_COOLING_FACTOR       '
+    'MAX_ITER_TEMP_FIRST      '
+    'MAX_ITER_TEMP_LAST       '
+    'MAX_ITER_TEMP            '
+    'MAX_ITER_TOTAL           '
+    'MAX_TIME                 '
+    'MAX_FUN_EVALS            '
+    'TOLX                     '
+    'TOLFUN                   '
+    'DISPLAY                  '
+    'OUTPUT_FCN               '
+    ];
+
+m = size(Names,1);
+names = lower(Names);
+
+% Combine all leading options structures o1, o2, ... in odeset(o1,o2,...).
+options = [];
+for j = 1:m
+  options.(deblank(Names(j,:))) = [];
+end
+i = 1;
+while i <= nargin
+  arg = varargin{i};
+  if ischar(arg)                         % arg is an option name
+    break;
+  end
+  if ~isempty(arg)                      % [] is a valid options argument
+    if ~isa(arg,'struct')
+      error('MATLAB:odeset:NoPropNameOrStruct',...
+            ['Expected argument %d to be a string property name ' ...
+                     'or an options structure\ncreated with SIMANSET.'], i);
+    end
+    for j = 1:m
+      if any(strcmp(fieldnames(arg),deblank(Names(j,:))))
+        val = arg.(deblank(Names(j,:)));
+      else
+        val = [];
+      end
+      if ~isempty(val)
+        options.(deblank(Names(j,:))) = val;
+      end
+    end
+  end
+  i = i + 1;
+end
+
+% A finite state machine to parse name-value pairs.
+if rem(nargin-i+1,2) ~= 0
+  error('MATLAB:odeset:ArgNameValueMismatch',...
+        'Arguments must occur in name-value pairs.');
+end
+expectval = 0;                          % start expecting a name, not a value
+while i <= nargin
+  arg = varargin{i};
+    
+  if ~expectval
+    if ~ischar(arg)
+      error('MATLAB:odeset:NoPropName',...
+            'Expected argument %d to be a string property name.', i);
+    end
+    
+    lowArg = lower(arg);
+    j = strmatch(lowArg,names);
+    if isempty(j)                       % if no matches
+      error('MATLAB:odeset:InvalidPropName',...
+            'Unrecognized property name ''%s''.', arg);
+    elseif length(j) > 1                % if more than one match
+      % Check for any exact matches (in case any names are subsets of others)
+      k = strmatch(lowArg,names,'exact');
+      if length(k) == 1
+        j = k;
+      else
+        msg = sprintf('Ambiguous property name ''%s'' ', arg);
+        msg = [msg '(' deblank(Names(j(1),:))];
+        for k = j(2:length(j))'
+          msg = [msg ', ' deblank(Names(k,:))];
+        end
+        msg = sprintf('%s).', msg);
+        error('MATLAB:odeset:AmbiguousPropName', msg);
+      end
+    end
+    expectval = 1;                      % we expect a value next
+    
+  else
+    options.(deblank(Names(j,:))) = arg;
+    expectval = 0;
+      
+  end
+  i = i + 1;
+end
+
+if expectval
+  error('MATLAB:odeset:NoValueForProp',...
+        'Expected value for property ''%s''.', arg);
+end
+
+end
diff --git a/matlab/simul.m b/matlab/simul.m
deleted file mode 100644
index c9fb8f8966cc00604fe7527ac09250ab60ecdec2..0000000000000000000000000000000000000000
--- a/matlab/simul.m
+++ /dev/null
@@ -1,129 +0,0 @@
-function simul()
-% Computes deterministic simulations
-%  
-% INPUTS
-%   None
-%  
-% OUTPUTS
-%   none
-%    
-% ALGORITHM
-%   
-% SPECIAL REQUIREMENTS
-%   none
-
-% Copyright (C) 1996-2013 Dynare Team
-%
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-global M_ options_ oo_
-
-test_for_deep_parameters_calibration(M_);
-
-if options_.stack_solve_algo < 0 || options_.stack_solve_algo > 6
-    error('SIMUL: stack_solve_algo must be between 0 and 6')
-end
-
-if ~options_.block && ~options_.bytecode && options_.stack_solve_algo ~= 0 ...
-        && options_.stack_solve_algo ~= 6
-    error('SIMUL: you must use stack_solve_algo=0 or stack_solve_algo=6 when not using block nor bytecode option')
-end
-
-if options_.block && ~options_.bytecode && options_.stack_solve_algo == 5
-    error('SIMUL: you can''t use stack_solve_algo = 5 without bytecode option')
-end
-
-if (options_.block || options_.bytecode) && options_.stack_solve_algo == 6
-    error('SIMUL: you can''t use stack_solve_algo = 6 with block or bytecode option')
-end
-
-if exist('OCTAVE_VERSION') && options_.stack_solve_algo == 2
-    error('SIMUL: you can''t use stack_solve_algo = 2 under Octave')
-end
-
-if size(M_.lead_lag_incidence,2)-nnz(M_.lead_lag_incidence(M_.maximum_endo_lag+1,:)) > 0
-    mess = ['SIMUL: error in model specification : variable ' M_.endo_names(find(M_.lead_lag_incidence(M_.maximum_lag+1,:)==0),:)] ;
-    mess = [mess ' doesn''t appear as current variable.'] ; 
-    error (mess) ;
-end
-
-if options_.periods == 0
-    error('SIMUL: number of periods for the simulation isn''t specified')
-end
-
-if ~ options_.initval_file
-    if isempty(options_.datafile)
-        make_ex_;
-        make_y_;
-    else
-        read_data_;
-    end
-end
-
-if isempty(options_.scalv) || options_.scalv == 0
-    options_.scalv = oo_.steady_state ;
-end
-
-options_.scalv= 1 ;
-
-if options_.debug
-    model_static = str2func([M_.fname,'_static']);
-    for ii=1:size(oo_.exo_simul,1)
-        [residual(:,ii)] = model_static(oo_.steady_state, oo_.exo_simul(ii,:),M_.params);
-    end
-    problematic_periods=find(any(isinf(residual)) | any(isnan(residual)))-M_.maximum_endo_lag;
-    if ~isempty(problematic_periods) 
-        period_string=num2str(problematic_periods(1));
-        for ii=2:length(problematic_periods)
-            period_string=[period_string, ', ', num2str(problematic_periods(ii))];
-        end
-        fprintf('\n\nWARNING: Value for the exogenous variable(s) in period(s) %s inconsistent with the static model.\n',period_string);   
-        fprintf('WARNING: Check for division by 0.\n')
-    end
-end
-
-if(options_.block)
-    if(options_.bytecode)
-        [info, oo_.endo_simul] = bytecode('dynamic');
-        if info == 1
-            oo_.deterministic_simulation.status = 0;
-        else
-            oo_.deterministic_simulation.status = 1;
-        end;
-        mexErrCheck('bytecode', info);
-    else
-        eval([M_.fname '_dynamic']);
-    end;
-else
-    if(options_.bytecode)
-        [info, oo_.endo_simul]=bytecode('dynamic');
-        mexErrCheck('bytecode', info);
-    else
-        if M_.maximum_endo_lead == 0 % Purely backward model
-            sim1_purely_backward;
-        elseif M_.maximum_endo_lag == 0 % Purely forward model
-            sim1_purely_forward;
-        else % General case
-            if options_.stack_solve_algo == 0
-                sim1;
-            else % stack_solve_algo = 6
-                sim1_lbj;
-            end
-        end
-    end;
-end;
-
-dyn2vec;
\ No newline at end of file
diff --git a/matlab/simul_backward_nonlinear_model.m b/matlab/simul_backward_nonlinear_model.m
index cafd3b612597bf0cefbe996647a6bf769ee4c249..dd15d7e8fd5cabb9d20d0dc16f6e7ba3178b3377 100644
--- a/matlab/simul_backward_nonlinear_model.m
+++ b/matlab/simul_backward_nonlinear_model.m
@@ -105,9 +105,9 @@ DynareOutput.endo_simul(:,1) = DynareOutput.steady_state;
 for it = 2:sample_size+1
     y(jdx) = DynareOutput.endo_simul(:,it-1); % A good guess for the initial conditions is the previous values for the endogenous variables.
     y(hdx) = y(jdx(iy1));                     % Set lagged variables.
-    y(jdx) = solve1(model_dynamic, y, idx, jdx, 1, 1, DynareOptions.gstep, ...
+    y(jdx) = solve1(model_dynamic, y, idx, jdx, 1, DynareOptions.gstep, ...
                     DynareOptions.solve_tolf,DynareOptions.solve_tolx, ...
-                    DynareOptions.solve_maxit,DynareOptions.debug, ...
+                    DynareOptions.simul.maxit,DynareOptions.debug, ...
                     DynareOutput.exo_simul, DynareModel.params, ...
                     DynareOutput.steady_state, it);
     DynareOutput.endo_simul(:,it) = y(jdx);
diff --git a/matlab/smoother2histval.m b/matlab/smoother2histval.m
new file mode 100644
index 0000000000000000000000000000000000000000..e6cc27585de96977e3d36ef98293fb1e459eff56
--- /dev/null
+++ b/matlab/smoother2histval.m
@@ -0,0 +1,214 @@
+function smoother2histval(opts)
+% This function takes values from oo_.SmoothedVariables (and possibly
+% oo_.SmoothedShocks) and copies them into M_.histval.
+% 
+% Optional fields in 'opts' structure:
+%    infile:      An optional *_results MAT file created by Dynare.
+%                 If present, oo_.Smoothed{Variables,Shocks} are read from 
+%                 there. Otherwise, they are read from the global workspace.
+%    invars:      An optional char or cell array listing variables to read in
+%                 oo_.SmoothedVariables. If absent, all the endogenous
+%                 variables present in oo_.SmoothedVariables are used.
+%    period:      An optional period number to use as the starting point
+%                 for subsequent simulations. It should be between 1 and
+%                 the number of observations that were used to produce the
+%                 smoothed values. If absent, the last observation is used.
+%    outfile:     An optional MAT file in which to save the histval structure.
+%                 If absent, the output will be written in M_.endo_histval
+%    outvars:     An optional char or cell array listing variables to be written in
+%                 outfile or M_.endo_histval. This cell must be of same
+%                 length than invars, and there is a mapping between the input
+%                 variable at the i-th position in invars, and the output
+%                 variable at the i-th position in outvars. If absent, then
+%                 taken as equal to invars.
+%
+% The function also uses the value of option_.parameter_set
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+global M_ options_ oo_
+
+if ~isfield(opts, 'infile')
+    if ~isfield(oo_, 'SmoothedVariables')
+        error('Could not find smoothed variables; did you set the "smoother" option?')
+    end
+    smoothedvars = oo_.SmoothedVariables;
+    smoothedshocks = oo_.SmoothedShocks;
+else
+    S = load(opts.infile);
+    if ~isfield(S, 'oo_') || ~isfield(S.oo_, 'SmoothedVariables')
+        error('Could not find smoothed variables in file; is this a Dynare results file, and did you set the "smoother" option when producing it?')
+    end
+    smoothedvars = S.oo_.SmoothedVariables;
+    smoothedshocks = S.oo_.SmoothedShocks;
+end
+
+% Hack to determine if oo_.SmoothedVariables was computed after a Metropolis
+tmp = fieldnames(smoothedvars);
+if isstruct(getfield(smoothedvars, tmp{1}))
+    post_metropolis = 1;
+else
+    post_metropolis = 0;
+end
+
+% If post-Metropolis, select the parameter set
+if isempty(options_.parameter_set)
+    if post_metropolis
+        smoothedvars = smoothedvars.Mean;
+        smoothedshocks = smoothedshocks.Mean;
+    end
+else
+    switch options_.parameter_set
+      case 'calibration'
+        if post_metropolis
+            error('Option parameter_set=calibration is not consistent with computed smoothed values.')
+        end
+      case 'posterior_mode'
+        if post_metropolis
+            error('Option parameter_set=posterior_mode is not consistent with computed smoothed values.')
+        end
+      case 'posterior_mean'
+        if ~post_metropolis
+            error('Option parameter_set=posterior_mean is not consistent with computed smoothed values.')
+        end
+        smoothedvars = smoothedvars.Mean;
+        smoothedshocks = smoothedshocks.Mean;
+      case 'posterior_median'
+        if ~post_metropolis
+            error('Option parameter_set=posterior_median is not consistent with computed smoothed values.')
+        end
+        smoothedvars = smoothedvars.Median;
+        smoothedshocks = smoothedshocks.Median;
+      otherwise
+        error([ 'Option parameter_set=' options_.parameter_set ' unsupported.' ])
+    end
+end
+
+% Determine number of periods
+tmp = fieldnames(smoothedvars);
+n = size(getfield(smoothedvars, tmp{1}));
+
+if n < M_.maximum_endo_lag
+    error('Not enough observations to create initial conditions')
+end
+
+if isfield(opts, 'invars')
+    invars = opts.invars;
+    if ischar(invars)
+        invars = cellstr(invars);
+    end
+else
+    invars = [fieldnames(smoothedvars); fieldnames(smoothedshocks)];
+end
+
+if isfield(opts, 'period')
+    period = opts.period;
+    if period > n
+        error('The period that you indicated is beyond the data sample')
+    end
+    if period < M_.maximum_endo_lag
+        error('The period that you indicated is too small to construct initial conditions')
+    end
+else
+    period = n;
+end
+
+if isfield(opts, 'outvars')
+    outvars = opts.outvars;
+    if ischar(outvars)
+        outvars = cellstr(outvars);
+    end
+    if length(invars) ~= length(outvars)
+        error('The number of input and output variables is not the same')
+    end
+else
+    outvars = invars;
+end
+
+% Initialize outputs
+if ~isfield(opts, 'outfile')
+    % Output to M_.endo_histval
+    M_.endo_histval = repmat(oo_.steady_state, 1, M_.maximum_endo_lag);
+else
+    % Output to a file
+    o = struct();
+end
+
+% Handle all endogenous variables to be copied
+for i = 1:length(invars)
+    if isempty(strmatch(invars{i}, M_.endo_names))
+        % Skip exogenous
+        continue
+    end
+    s = getfield(smoothedvars, invars{i});
+    v = s((period-M_.maximum_endo_lag+1):period);
+    if ~isfield(opts, 'outfile')
+        j = strmatch(outvars{i}, M_.endo_names, 'exact');
+        if isempty(j)
+            error(['smoother2histval: output variable ' outvars{i} ' does not exist.'])
+        else
+            M_.endo_histval(j, :) = v;
+        end
+    else
+        % When saving to a file, x(-1) is in the variable called "x_"
+        o = setfield(o, [ outvars{i} '_' ], v);
+    end
+end
+
+% Handle auxiliary variables for lags (both on endogenous and exogenous)
+for i = 1:length(M_.aux_vars)
+    if M_.aux_vars(i).type ~= 1 && M_.aux_vars(i).type ~= 3
+        continue
+    end
+    if M_.aux_vars(i).type == 1
+        % Endogenous
+        orig_var = deblank(M_.endo_names(M_.aux_vars(i).orig_index, :));
+    else
+        % Exogenous
+        orig_var = deblank(M_.exo_names(M_.aux_vars(i).orig_index, :));
+    end
+    [m, k] = ismember(orig_var, outvars);
+    if m
+        if ~isempty(strmatch(invars{k}, M_.endo_names))
+            s = getfield(smoothedvars, invars{k});
+        else
+            s = getfield(smoothedshocks, invars{k});
+        end
+        l = M_.aux_vars(i).orig_lead_lag;
+        if period-M_.maximum_endo_lag+1+l < 1
+            error('The period that you indicated is too small to construct initial conditions')
+        end
+        v = s((period-M_.maximum_endo_lag+1+l):(period+l));
+        if ~isfield(opts, 'outfile')
+            j = M_.aux_vars(i).endo_index;
+            M_.endo_histval(j, :) = v;
+        else
+            % When saving to a file, x(-2) is in the variable called "x_l2"
+            lead_lag = num2str(l);
+            lead_lag = regexprep(lead_lag, '-', 'l');
+            o = setfield(o, [ orig_var '_' lead_lag ], v);
+        end
+    end
+end
+
+% Finalize output
+if isfield(opts, 'outfile')
+    save(opts.outfile, '-struct', 'o')
+end
+
+end
diff --git a/matlab/solve1.m b/matlab/solve1.m
index 0cacf6e3adab630d50b17ecb5807b453ef0ba589..4c787ddc3085fdee954d1b5365079d264cf7f2d3 100644
--- a/matlab/solve1.m
+++ b/matlab/solve1.m
@@ -1,5 +1,4 @@
-function [x,check] = solve1(func,x,j1,j2,jacobian_flag,bad_cond_flag,gstep,tolf,tolx,maxit,debug,varargin)
-% function [x,check] = solve1(func,x,j1,j2,jacobian_flag,bad_cond_flag,varargin)
+function [x,check] = solve1(func,x,j1,j2,jacobian_flag,gstep,tolf,tolx,maxit,debug,varargin)
 % Solves systems of non linear equations of several variables
 %
 % INPUTS
@@ -9,15 +8,13 @@ function [x,check] = solve1(func,x,j1,j2,jacobian_flag,bad_cond_flag,gstep,tolf,
 %    j2:              unknown variables index
 %    jacobian_flag=1: jacobian given by the 'func' function
 %    jacobian_flag=0: jacobian obtained numerically
-%    bad_cond_flag=1: when Jacobian is badly conditionned, use an
-%                     alternative formula to Newton step
 %    gstep            increment multiplier in numercial derivative
 %                     computation
 %    tolf             tolerance for residuals
 %    tolx             tolerance for solution variation
 %    maxit            maximum number of iterations
 %    debug            debug flag
-%    varargin:        list of arguments following bad_cond_flag
+%    varargin:        list of extra arguments to the function
 %    
 % OUTPUTS
 %    x:               results
@@ -26,7 +23,7 @@ function [x,check] = solve1(func,x,j1,j2,jacobian_flag,bad_cond_flag,gstep,tolf,
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2001-2012 Dynare Team
+% Copyright (C) 2001-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -95,7 +92,7 @@ for its = 1:maxit
     if debug
         disp(['cond(fjac) ' num2str(cond(fjac))])
     end
-    if bad_cond_flag && rcond(fjac) < sqrt(eps)
+    if rcond(fjac) < sqrt(eps)
         fjac2=fjac'*fjac;
         p=-(fjac2+1e6*sqrt(nn*eps)*max(sum(abs(fjac2)))*eye(nn))\(fjac'*fvec);
     else
diff --git a/matlab/solve_one_boundary.m b/matlab/solve_one_boundary.m
index 3e882557571ca4d677a8940c3959a7f335bffd7c..304b81892851dbbbcbbd1fc3d0733b2e076762ce 100644
--- a/matlab/solve_one_boundary.m
+++ b/matlab/solve_one_boundary.m
@@ -192,9 +192,9 @@ for it_=start:incr:finish
                         continue;
                     else
                         if(cutoff == 0)
-                            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_".\n',Block_Num, it_, iter);
+                            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit".\n',Block_Num, it_, iter);
                         else
-                            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, it_, iter);
+                            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, it_, iter);
                         end;
                         if(is_dynamic)
                             oo_.deterministic_simulation.status = 0;
@@ -224,7 +224,7 @@ for it_=start:incr:finish
                 if (verbose == 1)
                     disp('steady: fsolve');
                 end
-                if ~exist('OCTAVE_VERSION')
+                if ~isoctave
                     if ~user_has_matlab_license('optimization_toolbox')
                         error('SOLVE_ONE_BOUNDARY: you can''t use solve_algo=0 since you don''t have MATLAB''s Optimization Toolbox')
                     end
@@ -235,7 +235,7 @@ for it_=start:incr:finish
                 options.TolFun=1e-8;
                 options.Display = 'iter';
                 options.Jacobian = 'on';
-                if ~exist('OCTAVE_VERSION')
+                if ~isoctave
                     [yn,fval,exitval,output] = fsolve(@local_fname, y(y_index_eq), ...
                                                       options, x, params, steady_state, y, y_index_eq, fname, 0);
                 else
@@ -309,7 +309,7 @@ for it_=start:incr:finish
                 end;
             elseif((stack_solve_algo==2 && is_dynamic) || (options.solve_algo==7 && ~is_dynamic)),
                 flag1=1;
-                if exist('OCTAVE_VERSION')
+                if isoctave
                     error('SOLVE_ONE_BOUNDARY: you can''t use solve_algo=7 since GMRES is not implemented in Octave')
                 end
                 if (verbose == 1 && ~is_dynamic)
@@ -397,9 +397,9 @@ for it_=start:incr:finish
     end
     if cvg==0
         if(cutoff == 0)
-            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_\".\n',Block_Num, it_,iter);
+            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit\".\n',Block_Num, it_,iter);
         else
-            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, it_,iter);
+            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, it_,iter);
         end;
         if(is_dynamic)
             oo_.deterministic_simulation.status = 0;
diff --git a/matlab/solve_perfect_foresight_model.m b/matlab/solve_perfect_foresight_model.m
index 1f4795b00f7c54d1dd2e2798fa754c7cf55ab6a8..4a6464089ea78a35fa8744e8a87c3fa7272a40df 100644
--- a/matlab/solve_perfect_foresight_model.m
+++ b/matlab/solve_perfect_foresight_model.m
@@ -96,7 +96,7 @@ function [flag,endo_simul,err] = solve_perfect_foresight_model(endo_simul,exo_si
             fprintf('\n') ;
             disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
             fprintf('\n') ;
-            disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
+            disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ;
             fprintf('\n') ;
         end
         flag = 1;% more iterations are needed.
diff --git a/matlab/solve_two_boundaries.m b/matlab/solve_two_boundaries.m
index 5e570687ffb50f091760f8bcbe7f9b7b625c0775..e8da69742d5b1de2b932f083a16224304e73d570 100644
--- a/matlab/solve_two_boundaries.m
+++ b/matlab/solve_two_boundaries.m
@@ -1,4 +1,4 @@
-function y = solve_two_boundaries(fname, y, x, params, steady_state, y_index, nze, periods, y_kmin_l, y_kmax_l, is_linear, Block_Num, y_kmin, maxit_, solve_tolf, lambda, cutoff, stack_solve_algo, M, oo)
+function [y, oo]= solve_two_boundaries(fname, y, x, params, steady_state, y_index, nze, periods, y_kmin_l, y_kmax_l, is_linear, Block_Num, y_kmin, maxit_, solve_tolf, lambda, cutoff, stack_solve_algo, M, oo)
 % Computes the deterministic simulation of a block of equation containing
 % both lead and lag variables using relaxation methods 
 %
@@ -32,10 +32,13 @@ function y = solve_two_boundaries(fname, y, x, params, steady_state, y_index, nz
 %                                            - 2 GMRES
 %                                            - 3 BicGStab
 %                                            - 4 Optimal path length
+%   M                   [structure]     Model description
+%   oo                  [structure]     Results
 %
 % OUTPUTS
 %   y                   [matrix]        All endogenous variables of the model      
-%  
+%   oo                  [structure]     Results
+%
 % ALGORITHM
 %   Newton with LU or GMRES or BicGstab
 %    
@@ -133,9 +136,9 @@ while ~(cvg==1 || iter>maxit_),
                     continue;
                 else
                     if(cutoff == 0)
-                        fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.maxit_".\n',Block_Num, iter);
+                        fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.simul.maxit".\n',Block_Num, iter);
                     else
-                        fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, iter);
+                        fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, iter);
                     end;
                     oo.deterministic_simulation.status = 0;
                     oo.deterministic_simulation.error = max_res;
diff --git a/matlab/steady_.m b/matlab/steady_.m
index 822d4fbf4654465f0f833fbc0af9837e653de963..df1772a72d0e7a2fd43599f80724c27cd85a00f0 100644
--- a/matlab/steady_.m
+++ b/matlab/steady_.m
@@ -47,7 +47,7 @@ if ~options_.bytecode && options_.block && options_.solve_algo == 5
     error('STEADY: you can''t use solve_algo = 5 without bytecode option')
 end
 
-if exist('OCTAVE_VERSION') && options_.solve_algo == 7
+if isoctave && options_.solve_algo == 7
     error('SIMUL: you can''t use solve_algo = 7 under Octave')
 end
 
diff --git a/matlab/stoch_simul.m b/matlab/stoch_simul.m
index c79ec336c3c4f6b8b7f649725b59342ad7d98a36..2009ca08dd886c72b7aa35de89cfed0a3da54e6f 100644
--- a/matlab/stoch_simul.m
+++ b/matlab/stoch_simul.m
@@ -19,6 +19,11 @@ function info=stoch_simul(var_list)
 
 global M_ options_ oo_ it_
 
+% Test if the order of approximation is nonzero (the preprocessor tests if order is non negative).
+if isequal(options_.order,0)
+    error('stoch_simul:: The order of the Taylor approximation cannot be 0!')
+end
+
 test_for_deep_parameters_calibration(M_);
 
 dr = oo_.dr;
@@ -40,7 +45,7 @@ end
 if options_.partial_information == 1 || options_.ACES_solver == 1
     PI_PCL_solver = 1;
     if options_.order ~= 1
-        warning('STOCH_SIMUL: forcing order=1 since you are using partial_information or ACES solver')
+        warning('stoch_simul:: forcing order=1 since you are using partial_information or ACES solver')
         options_.order = 1;
     end
 else
@@ -68,14 +73,22 @@ if PI_PCL_solver
     [oo_.dr, info] = PCL_resol(oo_.steady_state,0);
 elseif options_.discretionary_policy
     if ~options_.linear
-        error(['discretionary_policy solves only linear_quadratic ' ...
-               'problems']);
+        error('discretionary_policy: only linear-quadratic problems can be solved');
     end
     [oo_.dr,ys,info] = discretionary_policy_1(oo_,options_.instruments);
 else
+    if options_.logged_steady_state %if steady state was previously logged, undo this
+        oo_.dr.ys=exp(oo_.dr.ys);
+        oo_.steady_state=exp(oo_.steady_state);
+    end
     [oo_.dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
 end
 
+if options_.loglinear %log steady state for correct display of decision rules and simulations
+    oo_.dr.ys=log(oo_.dr.ys);
+    oo_.steady_state=log(oo_.steady_state);
+    options_old.logged_steady_state = 1;
+end
 if info(1)
     options_ = options_old;
     print_info(info, options_.noprint, options_);
@@ -123,8 +136,8 @@ end
 
 if options_.periods > 0 && ~PI_PCL_solver
     if options_.periods <= options_.drop
-        disp(['STOCH_SIMUL error: The horizon of simulation is shorter' ...
-              ' than the number of observations to be dropped'])
+        fprintf('\nSTOCH_SIMUL error: The horizon of simulation is shorter than the number of observations to be dropped.\n')
+        fprintf('STOCH_SIMUL error: Either increase options_.periods or decrease options_.drop.\n')
         options_ =options_old;
         return
     end
@@ -176,6 +189,12 @@ if options_.irf
                 y=irf(oo_.dr,cs(M_.exo_names_orig_ord,i), options_.irf, options_.drop, ...
                       options_.replic, options_.order);
             end
+            if ~options_.noprint && any(any(isnan(y))) && ~options_.pruning && ~(options_.order==1)
+                fprintf('\nstoch_simul:: The simulations conducted for generating IRFs to %s were explosive.\n',M_.exo_names(i,:))
+                fprintf('stoch_simul:: No IRFs will be displayed. Either reduce the shock size, \n')
+                fprintf('stoch_simul:: use pruning, or set the approximation order to 1.');
+                skipline(2);
+            end
             if options_.relative_irf
                 y = 100*y/cs(i,i);
             end
@@ -189,7 +208,7 @@ if options_.irf
                          y(i_var(j),:)');
                 eval(['oo_.irfs.' deblank(M_.endo_names(i_var(j),:)) '_' ...
                       deblank(M_.exo_names(i,:)) ' = y(i_var(j),:);']);
-                if max(y(i_var(j),:)) - min(y(i_var(j),:)) > 1e-10
+                if max(abs(y(i_var(j),:))) > options_.impulse_responses.plot_threshold
                     irfs  = cat(1,irfs,y(i_var(j),:));
                     if isempty(mylist)
                         mylist = deblank(var_list(j,:));
@@ -203,6 +222,10 @@ if options_.irf
                             mylistTeX = char(mylistTeX,deblank(var_listTeX(j,:)));
                         end
                     end
+                else
+                    if options_.debug
+                        fprintf('stoch_simul:: The IRF of %s to %s is smaller than the irf_plot_threshold of %4.3f and will not be displayed.\n',deblank(M_.endo_names(i_var(j),:)),deblank(M_.exo_names(i,:)),options_.impulse_responses.plot_threshold)
+                    end
                 end
             end
             if options_.nograph == 0
diff --git a/matlab/stochastic_solvers.m b/matlab/stochastic_solvers.m
index 0d4827c33130ded547258a18b1d2b945644ae3b7..2738afc292185c2eee9e08cc99a806c0ead5ee2c 100644
--- a/matlab/stochastic_solvers.m
+++ b/matlab/stochastic_solvers.m
@@ -119,27 +119,10 @@ end
     
 if options_.debug
     if ~isempty(infrow)     
-        for ii=1:length(infrow)
-            [var_row,var_index]=find(M_.lead_lag_incidence==infcol(ii));
-            if var_row==2
-                type_string='';
-            elseif var_row==1
-                type_string='lag of';
-            elseif var_row==3;
-                type_string='lead of';
-            end
-            if var_index<=M_.orig_endo_nbr
-                fprintf('STOCHASTIC_SOLVER:  Derivative of Equation %d with respect to %s Variable %s  (initial value of %s: %g) \n',infrow(ii),type_string,deblank(M_.endo_names(var_index,:)),deblank(M_.endo_names(var_index,:)),dr.ys(var_index))
-            else %auxiliary vars
-                orig_var_index=M.aux_vars(1,var_index-M_.orig_endo_nbr).orig_index;
-                fprintf('STOCHASTIC_SOLVER:  Derivative of Equation %d with respect to %s Variable %s  (initial value of %s: %g) \n',infrow(ii),type_string,deblank(M_.endo_names(orig_var_index,:)),deblank(M_.endo_names(orig_var_index,:)),dr.ys(orig_var_index))            
-            end    
-        end
-        fprintf('\nSTOCHASTIC_SOLVER:  The problem most often occurs, because a variable with\n')
-        fprintf('STOCHASTIC_SOLVER:  exponent smaller than 1 has been initialized to 0. Taking the derivative\n')
-        fprintf('STOCHASTIC_SOLVER:  and evaluating it at the steady state then results in a division by 0.\n')
-    end
+    fprintf('\nSTOCHASTIC_SOLVER: The Jacobian of the dynamic model contains Inf. The problam is associated with:\n\n')    
+    display_problematic_vars_Jacobian(infrow,infcol,M_,dr.ys,'dynamic','STOCHASTIC_SOLVER: ')
     save([M_.fname '_debug.mat'],'jacobia_')
+    end
 end
 
 if ~isempty(infrow)
@@ -157,7 +140,16 @@ if ~isreal(jacobia_)
     end
 end
 
-if any(any(isnan(jacobia_)))
+[nanrow,nancol]=find(isnan(jacobia_));
+if options_.debug
+    if ~isempty(nanrow)     
+    fprintf('\nSTOCHASTIC_SOLVER: The Jacobian of the dynamic model contains NaN. The problam is associated with:\n\n')    
+    display_problematic_vars_Jacobian(nanrow,nancol,M_,dr.ys,'dynamic','STOCHASTIC_SOLVER: ')
+    save([M_.fname '_debug.mat'],'jacobia_')
+    end
+end
+
+if ~isempty(nanrow)
    info(1) = 8;
    NaN_params=find(isnan(M_.params));
    info(2:length(NaN_params)+1) =  NaN_params;
@@ -297,22 +289,21 @@ if M_.exo_det_nbr > 0
                                       kron(hudi,Eud)+dr.ghxud{i-1}(kf,:)* ...
                                       kron(hudj,Eud)+dr.ghxx(kf,:)*kron(hudj,hudi))-M1*R2;
             end
-            
         end
     end
 end
 
-if options_.loglinear == 1
+if options_.loglinear
     % this needs to be extended for order=2,3
     k = find(dr.kstate(:,2) <= M_.maximum_endo_lag+1);
     klag = dr.kstate(k,[1 2]);
     k1 = dr.order_var;
-    
     dr.ghx = repmat(1./dr.ys(k1),1,size(dr.ghx,2)).*dr.ghx.* ...
              repmat(dr.ys(k1(klag(:,1)))',size(dr.ghx,1),1);
     dr.ghu = repmat(1./dr.ys(k1),1,size(dr.ghu,2)).*dr.ghu;
     if options_.order>1
-       error('Loglinear options currently only works at order 1') 
+       error('Loglinear options currently only works at order 1')
     end
 end
+end
 
diff --git a/matlab/test_for_deep_parameters_calibration.m b/matlab/test_for_deep_parameters_calibration.m
index 3fb0716762f7428e55b66dadf86811d92a567afe..0f5ab7aecfebd9b4cef89db1808a2c5c9aba97d0 100644
--- a/matlab/test_for_deep_parameters_calibration.m
+++ b/matlab/test_for_deep_parameters_calibration.m
@@ -44,4 +44,7 @@ if ~isempty(plist)
     message = [message, 'If these parameters are not initialized in a steadystate file, Dynare may not be able to solve the model...'];
     message_id  = 'Dynare:ParameterCalibration:NaNValues';
     warning(message_id,message);
+    if strmatch('optimal_policy_discount_factor',plist,'exact')
+        warning('Either you have not correctly initialized planner_discount or you are calling a command like steady or stoch_simul that is not allowed in the context of ramsey_policy')
+    end
 end
\ No newline at end of file
diff --git a/matlab/th_autocovariances.m b/matlab/th_autocovariances.m
index eff41b89d4c34341cfe2a02c7e2a4c721870b1dc..759d8a4b898faaf70cb15707e7efd5eb03f9c9a6 100644
--- a/matlab/th_autocovariances.m
+++ b/matlab/th_autocovariances.m
@@ -51,7 +51,7 @@ end
 
 endo_nbr = M_.endo_nbr;
 exo_names_orig_ord  = M_.exo_names_orig_ord;
-if exist('OCTAVE_VERSION')
+if isoctave
     warning('off', 'Octave:divide-by-zero')
 else
     warning off MATLAB:dividebyzero
@@ -202,11 +202,15 @@ else% ==> Theoretical HP filter.
     IA = eye(size(A,1));
     IE = eye(M_.exo_nbr);
     for ig = 1:ngrid
-        f_omega  =(1/(2*pi))*( [inv(IA-A*tneg(ig))*ghu1;IE]...
-                               *M_.Sigma_e*[ghu1'*inv(IA-A'*tpos(ig)) ...
-                            IE]); % state variables
-        g_omega = [aa*tneg(ig) bb]*f_omega*[aa'*tpos(ig); bb']; % selected variables
-        f_hp = hp1(ig)^2*g_omega; % spectral density of selected filtered series
+        if hp1(ig)==0,
+            f_hp = zeros(length(ivar),length(ivar));
+        else
+            f_omega  =(1/(2*pi))*( [inv(IA-A*tneg(ig))*ghu1;IE]...
+                *M_.Sigma_e*[ghu1'*inv(IA-A'*tpos(ig)) ...
+                IE]); % state variables
+            g_omega = [aa*tneg(ig) bb]*f_omega*[aa'*tpos(ig); bb']; % selected variables
+            f_hp = hp1(ig)^2*g_omega; % spectral density of selected filtered series
+        end
         mathp_col = [mathp_col ; (f_hp(:))'];    % store as matrix row
                                                  % for ifft
     end;
@@ -233,11 +237,15 @@ else% ==> Theoretical HP filter.
         IA = eye(size(A,1));
         IE = eye(M_.exo_nbr);
         for ig = 1:ngrid
-            f_omega  =(1/(2*pi))*( [inv(IA-A*tneg(ig))*b1;IE]...
-                                   *SS*[b1'*inv(IA-A'*tpos(ig)) ...
-                                IE]); % state variables
-            g_omega = [aa*tneg(ig) b2]*f_omega*[aa'*tpos(ig); b2']; % selected variables
-            f_hp = hp1(ig)^2*g_omega; % spectral density of selected filtered series
+            if hp1(ig)==0,
+                f_hp = zeros(length(ivar),length(ivar));
+            else
+                f_omega  =(1/(2*pi))*( [inv(IA-A*tneg(ig))*b1;IE]...
+                    *SS*[b1'*inv(IA-A'*tpos(ig)) ...
+                    IE]); % state variables
+                g_omega = [aa*tneg(ig) b2]*f_omega*[aa'*tpos(ig); b2']; % selected variables
+                f_hp = hp1(ig)^2*g_omega; % spectral density of selected filtered series
+            end
             mathp_col = [mathp_col ; (f_hp(:))'];    % store as matrix row
                                                      % for ifft
         end;  
@@ -247,20 +255,24 @@ else% ==> Theoretical HP filter.
             mathp_col = [];
             SSi = cs(:,i)*cs(:,i)';
             for ig = 1:ngrid
-                f_omega  =(1/(2*pi))*( [inv(IA-A*tneg(ig))*b1;IE]...
-                                       *SSi*[b1'*inv(IA-A'*tpos(ig)) ...
-                                    IE]); % state variables
-                g_omega = [aa*tneg(ig) b2]*f_omega*[aa'*tpos(ig); b2']; % selected variables
-                f_hp = hp1(ig)^2*g_omega; % spectral density of selected filtered series
+                if hp1(ig)==0,
+                    f_hp = zeros(length(ivar),length(ivar));
+                else
+                    f_omega  =(1/(2*pi))*( [inv(IA-A*tneg(ig))*b1;IE]...
+                        *SSi*[b1'*inv(IA-A'*tpos(ig)) ...
+                        IE]); % state variables
+                    g_omega = [aa*tneg(ig) b2]*f_omega*[aa'*tpos(ig); b2']; % selected variables
+                    f_hp = hp1(ig)^2*g_omega; % spectral density of selected filtered series
+                end
                 mathp_col = [mathp_col ; (f_hp(:))'];    % store as matrix row
-                                                         % for ifft
+                % for ifft
             end;
             imathp_col = real(ifft(mathp_col))*(2*pi);
             Gamma_y{nar+2}(:,i) = abs(diag(reshape(imathp_col(1,:),nvar,nvar)))./vv;
         end
     end
 end
-if exist('OCTAVE_VERSION')
+if isoctave
     warning('on', 'Octave:divide-by-zero')
 else
     warning on MATLAB:dividebyzero
diff --git a/matlab/trace_plot.m b/matlab/trace_plot.m
index 4ca02388702beaf353cfb654ac2716527852483f..71fa7e74282124b0b25a489c55f65f4ff599f3e0 100644
--- a/matlab/trace_plot.m
+++ b/matlab/trace_plot.m
@@ -46,14 +46,8 @@ if isempty(column)
 end
 
 % Get informations about the posterior draws:
-DirectoryName = CheckPath('metropolis',M_.dname);
-try
-    load([DirectoryName '/' M_.fname '_mh_history.mat']); 
-catch
-    disp(['Trace_plot:: I can''t find ' M_.fname '_results.mat !'])
-    disp(['Trace_plot:: Did you run a metropolis?'])
-    return
-end
+MetropolisFolder = CheckPath('metropolis',M_.dname);
+load_last_mh_history_file(MetropolisFolder, M_.fname);
 
 FirstMhFile = 1;
 FirstLine = 1;
diff --git a/matlab/trust_region.m b/matlab/trust_region.m
new file mode 100644
index 0000000000000000000000000000000000000000..804ba7ce097d13f0fac4c806bb9b67817c1f7bac
--- /dev/null
+++ b/matlab/trust_region.m
@@ -0,0 +1,244 @@
+function [x,check] = trust_region(fcn,x0,j1,j2,jacobian_flag,gstep,tolf,tolx,maxiter,debug,varargin)
+% Solves systems of non linear equations of several variables, using a
+% trust-region method.
+%
+% INPUTS
+%    fcn:             name of the function to be solved
+%    x0:              guess values
+%    j1:              equations index for which the model is solved
+%    j2:              unknown variables index
+%    jacobian_flag=1: jacobian given by the 'func' function
+%    jacobian_flag=0: jacobian obtained numerically
+%    gstep            increment multiplier in numercial derivative
+%                     computation
+%    tolf             tolerance for residuals
+%    tolx             tolerance for solution variation
+%    maxiter          maximum number of iterations
+%    debug            debug flag
+%    varargin:        list of arguments following bad_cond_flag
+%
+% OUTPUTS
+%    x:               results
+%    check=1:         the model can not be solved
+%
+% SPECIAL REQUIREMENTS
+%    none
+
+% Copyright (C) 2008-2012 VZLU Prague, a.s.
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+%
+% Initial author: Jaroslav Hajek <highegg@gmail.com>, for GNU Octave
+
+if (ischar (fcn))
+    fcn = str2func (fcn);
+end
+
+n = length(j1);
+
+% These defaults are rather stringent. I think that normally, user
+% prefers accuracy to performance.
+
+macheps = eps (class (x0));
+
+niter = 1;
+
+x = x0;
+info = 0;
+
+% Initial evaluation.
+% Handle arbitrary shapes of x and f and remember them.
+fvec = fcn (x, varargin{:});
+fvec = fvec(j1);
+fn = norm (fvec);
+jcn = nan(n, 1);
+
+% Outer loop.
+while (niter < maxiter && ~info)
+
+    % Calculate function value and Jacobian (possibly via FD).
+    if jacobian_flag
+        [fvec, fjac] = fcn (x, varargin{:});
+        fvec = fvec(j1);
+        fjac = fjac(j1,j2);
+    else
+        dh = max(abs(x(j2)),gstep(1)*ones(n,1))*eps^(1/3);
+
+        for j = 1:n
+            xdh = x ;
+            xdh(j2(j)) = xdh(j2(j))+dh(j) ;
+            t = fcn(xdh,varargin{:});
+            fjac(:,j) = (t(j1) - fvec)./dh(j) ;
+            g(j) = fvec'*fjac(:,j) ;
+        end
+    end
+
+    % Get column norms, use them as scaling factors.
+    for j = 1:n
+        jcn(j) = norm(fjac(:,j));
+    end
+    if (niter == 1)
+        dg = jcn;
+        dg(dg == 0) = 1;
+    else
+        % Rescale adaptively.
+        % FIXME: the original minpack used the following rescaling strategy:
+        %   dg = max (dg, jcn);
+        % but it seems not good if we start with a bad guess yielding Jacobian
+        % columns with large norms that later decrease, because the corresponding
+        % variable will still be overscaled. So instead, we only give the old
+        % scaling a small momentum, but do not honor it.
+
+        dg = max (0.1*dg, jcn);
+    end
+
+    if (niter == 1)
+        xn = norm (dg .* x(j2));
+        % FIXME: something better?
+        delta = max (xn, 1);
+    end
+
+    % Get trust-region model (dogleg) minimizer.
+    s = - dogleg (fjac, fvec, dg, delta);
+    w = fvec + fjac * s;
+
+    sn = norm (dg .* s);
+    if (niter == 1)
+        delta = min (delta, sn);
+    end
+
+    x2 = x;
+    x2(j2) = x2(j2) + s;
+    fvec1 = fcn (x2, varargin{:});
+    fvec1 = fvec1(j1);
+    fn1 = norm (fvec1);
+
+    if (fn1 < fn)
+        % Scaled actual reduction.
+        actred = 1 - (fn1/fn)^2;
+    else
+        actred = -1;
+    end
+
+    % Scaled predicted reduction, and ratio.
+    t = norm (w);
+    if (t < fn)
+        prered = 1 - (t/fn)^2;
+        ratio = actred / prered;
+    else
+        prered = 0;
+        ratio = 0;
+    end
+
+    % Update delta.
+    if (ratio < 0.1)
+        delta = 0.5*delta;
+        if (delta <= 1e1*macheps*xn)
+            % Trust region became uselessly small.
+            info = -3;
+            break;
+        end
+    elseif (abs (1-ratio) <= 0.1)
+        delta = 1.4142*sn;
+    elseif (ratio >= 0.5)
+        delta = max (delta, 1.4142*sn);
+    end
+
+    if (ratio >= 1e-4)
+        % Successful iteration.
+        x(j2) = x(j2) + s;
+        xn = norm (dg .* x(j2));
+        fvec = fvec1;
+        fn = fn1;
+    end
+
+    niter = niter + 1;
+
+
+    % Tests for termination conditions. A mysterious place, anything
+    % can happen if you change something here...
+
+    % The rule of thumb (which I'm not sure M*b is quite following)
+    % is that for a tolerance that depends on scaling, only 0 makes
+    % sense as a default value. But 0 usually means uselessly long
+    % iterations, so we need scaling-independent tolerances wherever
+    % possible.
+
+    % FIXME -- why tolf*n*xn? If abs (e) ~ abs(x) * eps is a vector
+    % of perturbations of x, then norm (fjac*e) <= eps*n*xn, i.e. by
+    % tolf ~ eps we demand as much accuracy as we can expect.
+    if (fn <= tolf*n*xn)
+        info = 1;
+        % The following tests done only after successful step.
+    elseif (ratio >= 1e-4)
+        % This one is classic. Note that we use scaled variables again,
+        % but compare to scaled step, so nothing bad.
+        if (sn <= tolx*xn)
+            info = 2;
+            % Again a classic one. It seems weird to use the same tolf
+            % for two different tests, but that's what M*b manual appears
+            % to say.
+        elseif (actred < tolf)
+            info = 3;
+        end
+    end
+end
+
+check = ~info;
+end
+
+
+% Solve the double dogleg trust-region least-squares problem:
+% Minimize norm(r*x-b) subject to the constraint norm(d.*x) <= delta,
+% x being a convex combination of the gauss-newton and scaled gradient.
+
+% TODO: error checks
+% TODO: handle singularity, or leave it up to mldivide?
+
+function x = dogleg (r, b, d, delta)
+% Get Gauss-Newton direction.
+x = r \ b;
+xn = norm (d .* x);
+if (xn > delta)
+    % GN is too big, get scaled gradient.
+    s = (r' * b) ./ d;
+    sn = norm (s);
+    if (sn > 0)
+        % Normalize and rescale.
+        s = (s / sn) ./ d;
+        % Get the line minimizer in s direction.
+        tn = norm (r*s);
+        snm = (sn / tn) / tn;
+        if (snm < delta)
+            % Get the dogleg path minimizer.
+            bn = norm (b);
+            dxn = delta/xn; snmd = snm/delta;
+            t = (bn/sn) * (bn/xn) * snmd;
+            t = t - dxn * snmd^2 - sqrt ((t-dxn)^2 + (1-dxn^2)*(1-snmd^2));
+            alpha = dxn*(1-snmd^2) / t;
+        else
+            alpha = 0;
+        end
+    else
+        alpha = delta / xn;
+        snm = 0;
+    end
+    % Form the appropriate convex combination.
+    x = alpha * x + ((1-alpha) * min (snm, delta)) * s;
+end
+end
+
diff --git a/matlab/reports/@objArray/addObj.m b/matlab/update_last_mh_history_file.m
similarity index 54%
rename from matlab/reports/@objArray/addObj.m
rename to matlab/update_last_mh_history_file.m
index 3f2bd1f0839acf6aa2de8e5800cf6a5d3f386291..014e686a6127cbb2cfe2f368670293a3b100027d 100644
--- a/matlab/reports/@objArray/addObj.m
+++ b/matlab/update_last_mh_history_file.m
@@ -1,5 +1,4 @@
-function oa = addObj(oa, varargin)
-%function oa = addObj(oa, varargin)
+function update_last_mh_history_file(MetropolisFolder, ModelName, record)
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -18,16 +17,16 @@ function oa = addObj(oa, varargin)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-assert(nargin >= 2 && nargin <= 3)
-assert(isa(oa, 'objArray'), 'First argument must be an objArray');
-assert(isobject(varargin{1}), 'Optional 2nd arg must be an object');
-if nargin == 3
-    assert(isnumeric(varargin{2}), 'Optional 3rd arg must be an index');
-end
+BaseName = [MetropolisFolder filesep ModelName];
+
+% Get the list of all the mh_history files.
+mh_history_files = dir([BaseName '_mh_history_*.mat']);
 
-if nargin == 2
-    oa.objs{end+1} = varargin{1};
-elseif nargin == 3
-    oa.objs{varargin{2}} = varargin{1};
+% Check the existence of mh-files (assuming version 2, ie dynare version greater than 4.3.x).
+if isequal(length(mh_history_files),0)
+    error(['Estimation::update_mh_file: I cannot find any mh-history file in ' MetropolisFolder '!'])
 end
-end
\ No newline at end of file
+
+BaseName = [BaseName '_mh_history_'];
+
+save([BaseName num2str(length(mh_history_files)-1) '.mat'],'record','-append');
\ No newline at end of file
diff --git a/matlab/utilities/dataset/initialize_dataset.m b/matlab/utilities/dataset/initialize_dataset.m
index 6aa142578e6337e7917eed3cab9777f903948314..5d992a288955d728734b7b5f216fe03f371ef0fc 100644
--- a/matlab/utilities/dataset/initialize_dataset.m
+++ b/matlab/utilities/dataset/initialize_dataset.m
@@ -19,22 +19,22 @@ function dataset_ = initialize_dataset(datafile,varobs,first,nobs,logged_data_fl
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if isempty(datafile)
-    error('Estimation:: You have to declare a dataset file!')
+    error('Estimation::initialize_dataset: You have to declare a dataset file!')
 end
 
 if isempty(varobs)
-    error('Estimation:: You have to declare a set of observed variables')
+    error('Estimation::initialize_dataset: You have to declare a set of observed variables')
 end
 
 % Get raw data.
 rawdata = read_variables(datafile,varobs,[],xls.sheet,xls.range);
 
 % Get the (default) number of observations.
-if isempty(nobs)
+if isempty(nobs) || rows(rawdata)<nobs+first-1 %case 2: dataset has changed
     nobs = rows(rawdata)-first+1;
 end
 
-% Get the (default) prefilter option.
+% Set the (default) prefilter option.
 if isempty(prefilter)
     prefilter = 0;
 end
@@ -63,12 +63,17 @@ rawdata = rawdata(first:(first+dataset_.info.ntobs-1),:);
 if logged_data_flag
     dataset_.rawdata = log(rawdata);
 else
-    dataset_.radata  = rawdata;
+    if isequal(transformation,@log)
+        if ~isreal(rawdata)
+            error(['Estimation::initialize_dataset: Some of the variables have non positive observations, I cannot take the log of the data!'])
+        end
+    end
+    dataset_.rawdata = arrayfun(transformation,rawdata);
 end
 
 % Test if the observations are real numbers.
 if ~isreal(dataset_.rawdata)
-    error('Estimation:: There are complex values in the data! Probably  a wrong (log) transformation...')
+    error('Estimation::initialize_dataset: There are complex values in the data!')
 end
 
 % Test for missing observations.
diff --git a/matlab/utilities/dates/add_periods_to_array_of_dates.m b/matlab/utilities/dates/add_periods_to_array_of_dates.m
new file mode 100644
index 0000000000000000000000000000000000000000..7274a1a785fed9e2b3e8e04bbfed0bde3bf5aa52
--- /dev/null
+++ b/matlab/utilities/dates/add_periods_to_array_of_dates.m
@@ -0,0 +1,79 @@
+function time = add_periods_to_array_of_dates(time, freq, p)  % --*-- Unitary tests --*--
+
+% Adds a p periods (p can be negative) to a date (or a set of dates) characterized by array time and frequency freq.
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if isequal(rows(time),1) && length(p)>1
+    time = repmat(time,length(p),1);
+end
+
+time(:,1) = time(:,1) + fix(p/freq);
+time(:,2) = time(:,2) + rem(p,freq);
+
+id1 = find(time(:,2)>freq);
+time(id1,1) = time(id1,1) + 1;
+time(id1,2) = time(id1,2) - freq;
+
+id2 = find(time(:,2)<1);
+time(id2,1) = time(id2,1) - 1;
+time(id2,2) = time(id2,2) + freq;
+
+%@test:1
+%$ t(1) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, 1),[1950 2]);
+%$ t(2) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, 2),[1950 3]);
+%$ t(3) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, 3),[1950 4]);
+%$ t(4) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, 4),[1951 1]);
+%$ t(5) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, 5),[1951 2]);
+%$ t(6) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, 6),[1951 3]);
+%$ t(7) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, 7),[1951 4]);
+%$ t(8) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, 8),[1952 1]);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ t(1) = dyn_assert(add_periods_to_array_of_dates(repmat([1950 1],8,1), 4, transpose(1:8)),[1950 2; 1950 3; 1950 4; 1951 1; 1951 2; 1951 3; 1951 4; 1952 1]);
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ t(1) = dyn_assert(add_periods_to_array_of_dates([1950 1], 1, 1),[1951 1]);
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ t(1) = dyn_assert(add_periods_to_array_of_dates([1950 1; 1950 2; 1950 3; 1950 4], 4, 1),[1950 2; 1950 3; 1950 4; 1951 1]);
+%$ T = all(t);
+%@eof:4
+
+%@test:5
+%$ t(1) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, transpose(1:8)),[1950 2; 1950 3; 1950 4; 1951 1; 1951 2; 1951 3; 1951 4; 1952 1]);
+%$ T = all(t);
+%@eof:5
+
+%@test:6
+%$ t(1) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, -1),[1949 4]);
+%$ t(2) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, -2),[1949 3]);
+%$ t(3) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, -3),[1949 2]);
+%$ t(4) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, -4),[1949 1]);
+%$ t(5) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, -5),[1948 4]);
+%$ t(6) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, -6),[1948 3]);
+%$ t(7) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, -7),[1948 2]);
+%$ t(8) = dyn_assert(add_periods_to_array_of_dates([1950 1], 4, -8),[1948 1]);
+%$ T = all(t);
+%@eof:6
\ No newline at end of file
diff --git a/matlab/utilities/dates/date2string.m b/matlab/utilities/dates/date2string.m
new file mode 100644
index 0000000000000000000000000000000000000000..26358ee23fc2060372421b542bb2bd846232df6a
--- /dev/null
+++ b/matlab/utilities/dates/date2string.m
@@ -0,0 +1,51 @@
+function s = date2string(varargin)
+ 
+% Returns date as a string.
+%
+% INPUTS 
+%  o varargin{1}     + dates object with one element, if nargin==1.
+%                    + 1*2 vector of integers (first element is the year, second element is the subperiod), if nargin==2.
+%  o varargin{2}     integer scalar equal to 1, 4, 12 or 52 (frequency).
+%
+% OUTPUTS 
+%  o s               string.
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+    
+if isequal(nargin,1) 
+    if ~(isa(varargin{1},'dates') && isequal(length(varargin{1}),1))
+        error(['dates::format: Input argument ' inputname(1) ' has to be a dates object with one element!'])
+    else
+        time = varargin{1}.time;
+        freq = varargin{1}.freq;
+    end
+end
+
+if isequal(nargin,2)
+    if ~(isvector(varargin{1}) && isequal(length(varargin{1}),2) && all(isint(varargin{1})) && isscalar(varargin{2} && ismember(varargin{2},[1 4 12 52])))
+        error(['dates::format: First input must be a 1*2 vector of integers and second input must be a scalar integer (1, 4, 12 or 52)!'])
+    else
+        time = varargin{1};
+        freq = varargin{2};
+    end
+end
+
+s = [num2str(time(1)) freq2string(freq)];
+if freq>1
+    s = strcat(s, num2str(time(2)));
+end
\ No newline at end of file
diff --git a/matlab/reports/@pages/display.m b/matlab/utilities/dates/freq2string.m
similarity index 62%
rename from matlab/reports/@pages/display.m
rename to matlab/utilities/dates/freq2string.m
index 728fd7c3e142c5d097a586dd4f2194585fa3e967..2d12f8def073acc9e2d260b25a32a5c82eb346a3 100644
--- a/matlab/reports/@pages/display.m
+++ b/matlab/utilities/dates/freq2string.m
@@ -1,16 +1,11 @@
-function display(o)
-%function display(o)
-% Display a Pages object
-%
-% INPUTS
-%   o   [pages]  pages object
-%
-% OUTPUTS
-%   none
-%
-% SPECIAL REQUIREMENTS
-%   none
+function s = freq2string(freq)
 
+% INPUTS 
+%  o freq     scalar integer,  equal to 1, 4, 12 or 52 (resp. annual, quaterly, monthly or weekly)
+%
+% OUTPUTS 
+%  o s        character, equal to Y, Q, M or W (resp. annual, quaterly, monthly or weekly)
+    
 % Copyright (C) 2013 Dynare Team
 %
 % This file is part of Dynare.
@@ -28,5 +23,15 @@ function display(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-reporting_object_display(o);
+switch freq
+  case 1
+    s = 'Y';
+  case 4
+    s = 'Q';
+  case 12
+    s = 'M';
+  case 52
+    s = 'W';
+  otherwise
+    error('dates::freq2string: Unknown frequency!')
 end
\ No newline at end of file
diff --git a/matlab/utilities/dates/isdate.m b/matlab/utilities/dates/isdate.m
new file mode 100644
index 0000000000000000000000000000000000000000..ebcd2816e49c9ce8cddd0f44bd1887993f8a59ac
--- /dev/null
+++ b/matlab/utilities/dates/isdate.m
@@ -0,0 +1,54 @@
+function b = isdate(str)  % --*-- Unitary tests --*--
+
+% Tests if the input string can be interpreted as a date.
+%
+% INPUTS 
+%  o str     string.
+%
+% OUTPUTS 
+%  o b       integer scalar, equal to 1 if str can be interpreted as a date or 0 otherwise.
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if length(str)>1
+    b = isquaterly(str) || isyearly(str) || ismonthly(str) || isweekly(str);
+else
+    b = 0;
+end
+
+%@test:1
+%$
+%$ date_1 = '1950M2';
+%$ date_2 = '1950m2';
+%$ date_3 = '-1950m2';
+%$ date_4 = '1950m52';
+%$ date_5 = ' 1950';
+%$ date_6 = '1950Y';
+%$ date_7 = '-1950a';
+%$ date_8 = '1950m ';
+%$
+%$ t(1) = dyn_assert(isdate(date_1),1);
+%$ t(2) = dyn_assert(isdate(date_2),1);
+%$ t(3) = dyn_assert(isdate(date_3),1);
+%$ t(4) = dyn_assert(isdate(date_4),0);
+%$ t(5) = dyn_assert(isdate(date_5),0);
+%$ t(6) = dyn_assert(isdate(date_6),1);
+%$ t(7) = dyn_assert(isdate(date_7),1);
+%$ t(8) = dyn_assert(isdate(date_8),0);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/reports/@section/numVspace.m b/matlab/utilities/dates/isdates.m
similarity index 88%
rename from matlab/reports/@section/numVspace.m
rename to matlab/utilities/dates/isdates.m
index 4bb53e3b11b06db3ff4ffb2f96348f0707e5574e..33b679020bb4b539593495456d17f504fc3c57b2 100644
--- a/matlab/reports/@section/numVspace.m
+++ b/matlab/utilities/dates/isdates.m
@@ -1,5 +1,6 @@
-function n = numVspace(o)
-% function n = numVspace(o)
+function B = isdates(A)
+
+% Tests if the input A is a dates object.
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -18,5 +19,4 @@ function n = numVspace(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-n = o.elements.numVspace();
-end
\ No newline at end of file
+B = isa(A,'dates');
\ No newline at end of file
diff --git a/matlab/reports/@pages/numPages.m b/matlab/utilities/dates/isfreq.m
similarity index 68%
rename from matlab/reports/@pages/numPages.m
rename to matlab/utilities/dates/isfreq.m
index 289196a0ee8c88813e80fc88b45ad3281d8d195c..38a779f209ab73aa3959482638e03119c90226a2 100644
--- a/matlab/reports/@pages/numPages.m
+++ b/matlab/utilities/dates/isfreq.m
@@ -1,14 +1,12 @@
-function n = numPages(o)
-% function n = numPages(o)
-%
-% INPUTS
-%   o              [page]  pages object
+function B = isfreq(A)
+
+% Tests if A can be interpreted as a frequency.
 %
-% OUTPUTS
-%   n              [integer] number of pages in o
+% INPUTS 
+%  o A     scalar integer or character.
 %
-% SPECIAL REQUIREMENTS
-%   none
+% OUTPUTS 
+%  o B     scalar integer equal to one if A can be interpreted as a frequency, zero otherwise.
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -27,5 +25,4 @@ function n = numPages(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-n = o.objArray.numObjArray();
-end
\ No newline at end of file
+B = (ischar(A) && ismember(upper(A),{'Y','A','Q','M','W'})) || ismember(A,[1 4 12 52]);
\ No newline at end of file
diff --git a/matlab/utilities/dates/ismonthly.m b/matlab/utilities/dates/ismonthly.m
index 28c9e0cfe3ba756d819e9f187b3f03df25ed98e5..7d3a60f652cd1fbe27bcf0eafa6350dc0e65abd1 100644
--- a/matlab/utilities/dates/ismonthly.m
+++ b/matlab/utilities/dates/ismonthly.m
@@ -1,6 +1,14 @@
-function b = ismonthly(date)
+function b = ismonthly(str)  % --*-- Unitary tests --*--
 
-% Copyright (C) 2012 Dynare Team
+% Tests if the input can be interpreted as a monthly date.
+%
+% INPUTS 
+%  o str     string.
+%
+% OUTPUTS 
+%  o b       integer scalar, equal to 1 if str can be interpreted as a monthly date or 0 otherwise.
+
+% Copyright (C) 2012-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -17,21 +25,30 @@ function b = ismonthly(date)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
-
-[year, remain] = strtok(date,'M');
-if ~isint(str2num(year))
+if ischar(str)
+    b = ~isempty(regexp(str,'^-?[0-9]*[Mm]([1-9]|1[0-2])$'));
+else
     b = 0;
-    return 
 end
-[month, remain] = strtok(remain,'M');
-if ~isempty(remain)
-    b = 0;
-    return
-end
-month = str2num(month);
-if ~isint(month) || month<1 || month>12
-    b = 0;
-    return
-end
-b = 1;
\ No newline at end of file
+
+%@test:1
+%$
+%$ date_1 = '1950M2';
+%$ date_2 = '1950m2';
+%$ date_3 = '-1950m2';
+%$ date_4 = '1950m12';
+%$ date_5 = '1950 azd ';
+%$ date_6 = '1950Y';
+%$ date_7 = '1950Q3';
+%$ date_8 = '1950m24';
+%$
+%$ t(1) = dyn_assert(ismonthly(date_1),1);
+%$ t(2) = dyn_assert(ismonthly(date_2),1);
+%$ t(3) = dyn_assert(ismonthly(date_3),1);
+%$ t(4) = dyn_assert(ismonthly(date_4),1);
+%$ t(5) = dyn_assert(ismonthly(date_5),0);
+%$ t(6) = dyn_assert(ismonthly(date_6),0);
+%$ t(7) = dyn_assert(ismonthly(date_7),0);
+%$ t(8) = dyn_assert(ismonthly(date_8),0);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/utilities/dates/isquaterly.m b/matlab/utilities/dates/isquaterly.m
index 9310435da5f93bac7bfbf8941eada6b55989cc91..92b1c6dc274171b235453729fd41b06d90ebefb8 100644
--- a/matlab/utilities/dates/isquaterly.m
+++ b/matlab/utilities/dates/isquaterly.m
@@ -1,6 +1,14 @@
-function b = isquaterly(date)
-    
-% Copyright (C) 2012 Dynare Team
+function b = isquaterly(str)  % --*-- Unitary tests --*--
+
+% Tests if the input can be interpreted as a quaterly date.
+%
+% INPUTS 
+%  o str     string.
+%
+% OUTPUTS 
+%  o b       integer scalar, equal to 1 if str can be interpreted as a quaterly date or 0 otherwise.
+
+% Copyright (C) 2012-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -17,21 +25,28 @@ function b = isquaterly(date)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
-
-[year, remain] = strtok(date,'Q');
-if ~isint(str2num(year))
+if ischar(str)    
+    b = ~isempty(regexp(str,'^-?[0-9]*[Qq][1-4]$'));
+else
     b = 0;
-    return 
 end
-[quarter, remain] = strtok(remain,'Q');
-if ~isempty(remain)
-    b = 0;
-    return
-end
-quarter = str2num(quarter);
-if ~isint(quarter) || quarter<1 || quarter>4
-    b = 0;
-    return
-end
-b = 1;
\ No newline at end of file
+
+%@test:1
+%$
+%$ date_1 = '1950Q2';
+%$ date_2 = '1950q2';
+%$ date_3 = '-1950q2';
+%$ date_4 = '1950q12';
+%$ date_5 = '1950 azd ';
+%$ date_6 = '1950Y';
+%$ date_7 = '1950m24';
+%$
+%$ t(1) = dyn_assert(isquaterly(date_1),1);
+%$ t(2) = dyn_assert(isquaterly(date_2),1);
+%$ t(3) = dyn_assert(isquaterly(date_3),1);
+%$ t(4) = dyn_assert(isquaterly(date_4),0);
+%$ t(5) = dyn_assert(isquaterly(date_5),0);
+%$ t(6) = dyn_assert(isquaterly(date_6),0);
+%$ t(7) = dyn_assert(isquaterly(date_7),0);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDate/display.m b/matlab/utilities/dates/issubperiod.m
similarity index 78%
rename from matlab/@dynDate/display.m
rename to matlab/utilities/dates/issubperiod.m
index 3eaa2722da01424d963d0066c38040129111c467..5f7a7560bcc7202a0712152a4c8f362334507e83 100644
--- a/matlab/@dynDate/display.m
+++ b/matlab/utilities/dates/issubperiod.m
@@ -1,4 +1,4 @@
-function display(d)
+function C = issubperiod(A,B)
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -17,8 +17,8 @@ function display(d)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if isempty(d)
-    fprintf('%s is an empty dynDate object.\n', inputname(1));
+if isfreq(B)
+    C = all(isint(A)) && all(A>=1) && all(A<=B);
 else
-    fprintf('%s = <dynDate: %s>\n', inputname(1), format(d));
+    error('issubperiod:: Second input argument must be equal to 1, 4, 12 or 52 (frequency)!')
 end
\ No newline at end of file
diff --git a/matlab/utilities/dates/isweekly.m b/matlab/utilities/dates/isweekly.m
index 266bd495844b7e59efaa22777de69dc8cd6ff0a5..ea7eca99268a5cdf87fc2b8b8ad5ff7dafaba839 100644
--- a/matlab/utilities/dates/isweekly.m
+++ b/matlab/utilities/dates/isweekly.m
@@ -1,6 +1,14 @@
-function b = isweekly(date)
+function b = isweekly(str)  % --*-- Unitary tests --*--
 
-% Copyright (C) 2012 Dynare Team
+% Tests if the input can be interpreted as a weekly date.
+%
+% INPUTS 
+%  o str     string.
+%
+% OUTPUTS 
+%  o b       integer scalar, equal to 1 if str can be interpreted as a weekly date or 0 otherwise.
+
+% Copyright (C) 2012-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -17,21 +25,30 @@ function b = isweekly(date)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
-
-[year, remain] = strtok(date,'W');
-if ~isint(str2num(year))
+if ischar(str)
+    b = ~isempty(regexp(str,'^-?[0-9]*[Ww]([1-9]|[1-4][0-9]|5[0-2])$'));
+else
     b = 0;
-    return 
 end
-[week, remain] = strtok(remain,'W');
-if ~isempty(remain)
-    b = 0;
-    return
-end
-week = str2num(week);
-if ~isint(week) || week<1 || week>52
-    b = 0;
-    return
-end
-b = 1;
\ No newline at end of file
+
+%@test:1
+%$
+%$ date_1 = '1950W2';
+%$ date_2 = '1950w2';
+%$ date_3 = '-1950w2';
+%$ date_4 = '1950w22';
+%$ date_5 = '1950 azd ';
+%$ date_6 = '1950Y';
+%$ date_7 = '1950Q3';
+%$ date_8 = '1950m54';
+%$
+%$ t(1) = dyn_assert(isweekly(date_1),1);
+%$ t(2) = dyn_assert(isweekly(date_2),1);
+%$ t(3) = dyn_assert(isweekly(date_3),1);
+%$ t(4) = dyn_assert(isweekly(date_4),1);
+%$ t(5) = dyn_assert(isweekly(date_5),0);
+%$ t(6) = dyn_assert(isweekly(date_6),0);
+%$ t(7) = dyn_assert(isweekly(date_7),0);
+%$ t(8) = dyn_assert(isweekly(date_8),0);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/utilities/dates/isyearly.m b/matlab/utilities/dates/isyearly.m
index defe5901ccd253e4a39d5ad50dec2ed067ae81de..ef56c46b9e7a520bcd41987abd2fa1e2986780fd 100644
--- a/matlab/utilities/dates/isyearly.m
+++ b/matlab/utilities/dates/isyearly.m
@@ -1,6 +1,14 @@
-function b = isyearly(date)
+function b = isyearly(str)  % --*-- Unitary tests --*--
 
-% Copyright (C) 2012 Dynare Team
+% Tests if the input can be interpreted as a yearly date.
+%
+% INPUTS 
+%  o str     string.
+%
+% OUTPUTS 
+%  o b       integer scalar, equal to 1 if str can be interpreted as a yearly date or 0 otherwise.
+
+% Copyright (C) 2012-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -17,25 +25,30 @@ function b = isyearly(date)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
-
-year = str2num(date);
-if ~isempty(year)
-    if isint(year)
-        b = 1;
-    else
-        b = 0;
-    end
-    return
+if ischar(str)
+    b = ~isempty(regexp(str,'^-?[0-9]*[YyAa]$'));
 else
-    [year, remain] = strtok(date,'Y');
-    if ~isequal(remain,'Y')
-        b = 0;
-        return
-    end
-    if ~isint(str2num(year))
-        b = 0;
-        return
-    end
-    b = 2;
-end
\ No newline at end of file
+    b = 0;
+end
+
+%@test:1
+%$
+%$ date_1 = '1950M2';
+%$ date_2 = '1950m2';
+%$ date_3 = '-1950m2';
+%$ date_4 = '1950m12';
+%$ date_5 = '1950 azd ';
+%$ date_6 = '1950Y';
+%$ date_7 = '-1950a';
+%$ date_8 = '1950m24';
+%$
+%$ t(1) = dyn_assert(isyearly(date_1),0);
+%$ t(2) = dyn_assert(isyearly(date_2),0);
+%$ t(3) = dyn_assert(isyearly(date_3),0);
+%$ t(4) = dyn_assert(isyearly(date_4),0);
+%$ t(5) = dyn_assert(isyearly(date_5),0);
+%$ t(6) = dyn_assert(isyearly(date_6),1);
+%$ t(7) = dyn_assert(isyearly(date_7),1);
+%$ t(8) = dyn_assert(isyearly(date_8),0);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/utilities/dates/string2date.m b/matlab/utilities/dates/string2date.m
new file mode 100644
index 0000000000000000000000000000000000000000..139b65dbf4fd09693f3be64500b337226b43a087
--- /dev/null
+++ b/matlab/utilities/dates/string2date.m
@@ -0,0 +1,108 @@
+function date = string2date(a) % --*-- Unitary tests --*--
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+date = struct('freq', NaN, 'time', NaN(1,2));
+
+if ~ischar(a) || ~isdate(a)
+    error('dates::string2date: Input must be a string that can be interpreted as a date!');
+end
+
+if isyearly(a)
+    year = 1:(regexp(a,'[AaYy]')-1);
+    date.freq = 1;
+    date.time = write_time_field(a, year);
+    return
+end
+
+if isquaterly(a)
+    year = 1:(regexp(a,'[Qq]')-1);
+    date.freq = 4;
+    date.time = write_time_field(a, year);
+    return
+end
+
+if ismonthly(a)
+    year = 1:(regexp(a,'[Mm]')-1);
+    date.freq = 12;
+    date.time = write_time_field(a, year);
+    return
+end
+
+if isweekly(a)
+    year = 1:(regexp(a,'[Ww]')-1);
+    date.freq = 52;
+    date.time = write_time_field(a, year);
+    return
+end
+
+function b = write_time_field(c, d)
+    b(1) = str2num(c(d));
+    if ismember(c(d(end)+1),{'Y','y','A','a'})
+        b(2) = 1;
+    else
+        b(2) = str2num(c(d(end)+2:end));
+    end
+
+%@test:1
+%$
+%$ % Define some dates
+%$ date_1 = '1950Q2';
+%$ date_2 = '1950m10';
+%$ date_3 = '1950w50';
+%$ date_4 = '1950a';
+%$ date_5 = '1967y';
+%$ date_6 = '2009A';
+%$
+%$ % Define expected results.
+%$ e_date_1 = [1950 2];
+%$ e_freq_1 = 4;
+%$ e_date_2 = [1950 10];
+%$ e_freq_2 = 12;
+%$ e_date_3 = [1950 50];
+%$ e_freq_3 = 52;
+%$ e_date_4 = [1950 1];
+%$ e_freq_4 = 1;
+%$ e_date_5 = [1967 1];
+%$ e_freq_5 = 1;
+%$ e_date_6 = [2009 1];
+%$ e_freq_6 = 1;
+%$
+%$ % Call the tested routine.
+%$ d1 = string2date(date_1);
+%$ d2 = string2date(date_2);
+%$ d3 = string2date(date_3);
+%$ d4 = string2date(date_4);
+%$ d5 = string2date(date_5);
+%$ d6 = string2date(date_6);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d1.time,e_date_1);
+%$ t(2) = dyn_assert(d2.time,e_date_2);
+%$ t(3) = dyn_assert(d3.time,e_date_3);
+%$ t(4) = dyn_assert(d4.time,e_date_4);
+%$ t(5) = dyn_assert(d5.time,e_date_5);
+%$ t(6) = dyn_assert(d6.time,e_date_6);
+%$ t(7) = dyn_assert(d1.freq,e_freq_1);
+%$ t(8) = dyn_assert(d2.freq,e_freq_2);
+%$ t(9) = dyn_assert(d3.freq,e_freq_3);
+%$ t(10) = dyn_assert(d4.freq,e_freq_4);
+%$ t(11)= dyn_assert(d5.freq,e_freq_5);
+%$ t(12)= dyn_assert(d6.freq,e_freq_6);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/utilities/dates/string2freq.m b/matlab/utilities/dates/string2freq.m
new file mode 100644
index 0000000000000000000000000000000000000000..ea04c39649e27a0f3555163d6e44ad612cc2009f
--- /dev/null
+++ b/matlab/utilities/dates/string2freq.m
@@ -0,0 +1,37 @@
+function freq = string2freq(s)
+
+% INPUTS 
+%  o s        character, equal to Y, Q, M or W (resp. annual, quaterly, monthly or weekly)
+%
+% OUTPUTS 
+%  o freq     scalar integer,  equal to 1, 4, 12 or 52 (resp. annual, quaterly, monthly or weekly)
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+switch upper(s)
+  case {'Y','A'}
+    freq = 1;
+  case 'Q'
+    freq = 4;
+  case 'M'
+    freq = 12;
+  case 'W'
+    freq = 52;
+  otherwise
+    error('dates::freq2string: Unknown frequency!')
+end
\ No newline at end of file
diff --git a/matlab/utilities/general/clean_current_folder.m b/matlab/utilities/general/clean_current_folder.m
new file mode 100644
index 0000000000000000000000000000000000000000..e3408bec1577cf074d23ecb46e4eab4faf58f90a
--- /dev/null
+++ b/matlab/utilities/general/clean_current_folder.m
@@ -0,0 +1,41 @@
+function clean()
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+a = dir('*.mod');
+
+
+for i = 1:length(a)
+    [junk,basename,extension] = fileparts(a(i).name);
+    if exist([basename '.m'])
+        delete([basename '.m']);
+    end
+    if exist([basename '.log'])
+        delete([basename '.log']);
+    end
+    if exist(basename,'dir')
+        rmdir(basename,'s');
+    end
+    if exist([basename '_steadystate.m'])
+        movefile([basename '_steadystate.m'],['protect_' basename '_steadystate.m']);
+    end
+    delete([basename '_*'])
+    if exist(['protect_' basename '_steadystate.m'])
+        movefile(['protect_' basename '_steadystate.m'],[basename '_steadystate.m']);
+    end
+end
\ No newline at end of file
diff --git a/matlab/utilities/general/compare_vectors.m b/matlab/utilities/general/compare_vectors.m
new file mode 100644
index 0000000000000000000000000000000000000000..07dca457279aead5d487e3f0c51594737c8f38f2
--- /dev/null
+++ b/matlab/utilities/general/compare_vectors.m
@@ -0,0 +1,94 @@
+function C = compare_vectors(f, A, B)  % --*-- Unitary tests --*--
+ 
+% Performs lexicographical comparison of vectors.
+%
+% INPUTS
+%  o f    function handle: @lt, @gt, @le or @ge
+%  o A    vector of real numbers.
+%  o B    vector of real numbers.
+%
+% OUTPUTS 
+%  o C    integer scalar, 1 or 0.
+%
+% REMARKS 
+%  o It is assumed that vectors A and B have the same number of elements.
+    
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if ~isvector(A) || ~isvector(B)
+    error('compare_vectors:: Input arguments a and b must be vectors!')
+end
+
+if ~isequal(length(A),length(B))
+    error('compare_vectors_lt:: Input arguments a and b must be of same length!')
+end
+
+fstr = func2str(f);
+
+if ~ismember(fstr, {'lt', 'gt', 'le', 'ge'})
+    error('compare_vectors:: First input argument must be one of the following function handles: @lt, @gt, @le or @ge!')
+end
+
+strict_inequality = ismember(fstr, {'gt','lt'});
+
+if isequal(length(A),1)
+    if feval(f, A, B)
+        C = 1;
+    else
+        C = 0;
+    end
+else
+    if feval(f, A(1), B(1))
+        if strict_inequality
+            C = 1;
+        else
+            if isequal(A(1),B(1))
+                C = compare_vectors(f, A(2:end), B(2:end));
+            else
+                C = 1;
+            end
+        end
+    else
+        if strict_inequality
+            if isequal(A(1),B(1))
+                C = compare_vectors(f, A(2:end), B(2:end));
+            else
+                C = 0;
+            end
+        else
+            C = 0;
+        end
+    end
+end
+
+%@test:1
+%$ t(1) = dyn_assert(compare_vectors(@lt, [1990 3], [1991 3]), 1);
+%$ t(2) = dyn_assert(compare_vectors(@lt, [1990 3], [1990 3]), 0);
+%$ t(3) = dyn_assert(compare_vectors(@le, [1990 3], [1990 3]), 1);
+%$ t(4) = dyn_assert(compare_vectors(@lt, [1990 3], [1990 4]), 1);
+%$ t(5) = dyn_assert(compare_vectors(@le, [1990 3], [1990 4]), 1);
+%$ t(6) = dyn_assert(compare_vectors(@gt, [1990 3], [1991 3]), 0);
+%$ t(7) = dyn_assert(compare_vectors(@gt, [1990 3], [1990 3]), 0);
+%$ t(8) = dyn_assert(compare_vectors(@ge, [1990 3], [1990 3]), 1);
+%$ t(9) = dyn_assert(compare_vectors(@gt, [1990 3], [1990 4]), 0);
+%$ t(10) = dyn_assert(compare_vectors(@ge, [1990 3], [1990 4]), 0);
+%$ t(11) = dyn_assert(compare_vectors(@le, [1991 3], [1990 4]), 0);
+%$ t(12) = dyn_assert(compare_vectors(@le, [1991 3], [1990 2]), 0);
+%$ t(13) = dyn_assert(compare_vectors(@le, [1945 2], [1950, 1]),1);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/utilities/general/isestimation.m b/matlab/utilities/general/isestimation.m
new file mode 100644
index 0000000000000000000000000000000000000000..f86ffb32c92d04b5c1636b312a078236f2ac40c0
--- /dev/null
+++ b/matlab/utilities/general/isestimation.m
@@ -0,0 +1,32 @@
+function a = isestimation()
+
+% Returns 1 if we are currently estimating a model, 0 otherwise.
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+a = 0;
+
+tmp = struct2cell(dbstack);
+list_of_previously_called_routines = transpose(tmp(2,:));
+
+if ~isempty(strmatch('dsge_likelihood', list_of_previously_called_routines, 'exact')) || ...
+    ~isempty(strmatch('dsge_var_likelihood', list_of_previously_called_routines, 'exact')) || ...
+    ~isempty(strmatch('non_linear_dsge_likelihood', list_of_previously_called_routines, 'exact')) || ...
+    ~isempty(strmatch('simulated_moments_estimation', list_of_previously_called_routines, 'exact'))
+    a = 1;
+end
\ No newline at end of file
diff --git a/matlab/utilities/general/iseven.m b/matlab/utilities/general/iseven.m
new file mode 100644
index 0000000000000000000000000000000000000000..fe15bc3b1355388c6e96a719c9977a48ba9545a0
--- /dev/null
+++ b/matlab/utilities/general/iseven.m
@@ -0,0 +1,20 @@
+function a= iseven(b)
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+a = ~mod(b,2);
\ No newline at end of file
diff --git a/matlab/reports/@objArray/numObjArray.m b/matlab/utilities/general/isoctave.m
similarity index 89%
rename from matlab/reports/@objArray/numObjArray.m
rename to matlab/utilities/general/isoctave.m
index 2c5cd029a6ae8b539efcb628913e0452f308fd5d..15c6fb38d1ef3df32cee857f08261ebc9b3ab262 100644
--- a/matlab/reports/@objArray/numObjArray.m
+++ b/matlab/utilities/general/isoctave.m
@@ -1,5 +1,4 @@
-function n = numObjArray(o)
-%function n = numObjArray(o)
+function A = isoctave()
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -18,5 +17,4 @@ function n = numObjArray(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-n = size(o.objs, 2);
-end
\ No newline at end of file
+A = exist('OCTAVE_VERSION');
\ No newline at end of file
diff --git a/matlab/utilities/general/isodd.m b/matlab/utilities/general/isodd.m
new file mode 100644
index 0000000000000000000000000000000000000000..93f0e0aa0913e12654c36477da8383138e91577a
--- /dev/null
+++ b/matlab/utilities/general/isodd.m
@@ -0,0 +1,20 @@
+function a = isodd(b)
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+a = mod(b,2);
\ No newline at end of file
diff --git a/matlab/utilities/general/name2tex.m b/matlab/utilities/general/name2tex.m
index a8369e68ef2ed6db57a63694824fecf7306b32f8..61ec30de08e46080c20d6923d81446497fe3574d 100644
--- a/matlab/utilities/general/name2tex.m
+++ b/matlab/utilities/general/name2tex.m
@@ -23,86 +23,57 @@ if nargin<2
     info = 0;
 end
 
-if iscell(name)
-    nn = length(name);
-else
-    nn = 1;
+if info
+    if iscell(name)
+        nn = length(name);
+    else
+        nn = 1;
+    end
 end
 
-if iscell(name)
-    tex = cell(nn,1);
+if isoctave
+    tex = regexprep(name, '_', '\_');
+else
+    tex = regexprep(name, '_', '\\_');
 end
 
-for i=1:nn
-    if info
+if info
+    for i=1:nn
         if iscell(name)
-            tex(i) = {name{i}};
-            id = findstr(name{i},'_');
-            len = length(tex{i});
+            texname = tex{i};
         else
-            tex = name;
-            id = findstr(name,'_');
-            len = length(tex);
+            texname = tex;
         end
-        if isempty(id)
-            continue
-        end
-        n = length(id);
-        if id(1)==1
-            if iscell(name)
-                tex(i) = {['\_', tex{i}(2:end)]};
-            else
-                tex = ['\_', tex(2:end)];
+        idx = strfind(texname,'_');
+        ndx = length(idx);
+        ntx = length(texname);
+        if ndx
+            gotonextcondition = 1;
+            if isequal(ndx,1) && ~isequal(idx,2) && ~isequal(idx,ntx)
+                texname = [ texname(1:idx-2) '_{' texname(idx+1:end) '}'];
+                gotonextcondition = 0;
             end
-            if n>1
-                id = id(2:end)+1;
-                n = n-1;
-                len = len+1;
-            else
-                continue
+            if gotonextcondition && isequal(ndx,2) && ~isequal(idx(1),2) && isequal(idx(2),ntx)
+                texname = [ texname(1:idx(1)-2) '_{' texname(idx(1)+1:end) '}' ];
+                gotonextcondition = 0;
             end
-        end
-        if id(end)==len
-            if iscell(name)
-                tex(i) = {[tex{i}(1:end-1) '\_']};
-            else
-                tex = [tex(1:end-1) '\_'];
+            if gotonextcondition && isequal(ndx,2) && idx(2)<ntx
+                texname = [ texname(1:idx(2)-2) '_{' texname(idx(2)+1:end) '}' ];
+                gotonextcondition = 0;
             end
-            if n>1
-                id = id(1:end-1);
-                n = n-1;
-            else
-                continue
-            end
-        end
-        if n==1
-            if iscell(name)
-                tex(i) = {[ tex{i}(1:(id-1)) '_{'  tex{i}((id+1):end) '}' ]};
-            else
-                tex = [ tex(1:(id-1)) '_{'  tex((id+1):end) '}' ];
-            end
-            continue
-        else
-            for j=1:n-1
-                if iscell(name)
-                    tex(i) = {[tex{i}(1:id(j)-1) '\_' tex{i}((id(j)+1):end)]};
-                else
-                    tex = [tex(1:id(j)-1) '\_' tex((id(j)+1):end)];
+            if gotonextcondition && ndx>2
+                if idx(end)<ntx
+                    texname = [ texname(1:idx(end)-2) '_{' texname(idx(end)+1:end) '}' ];
+                else 
+                    texname = [ texname(1:idx(end-1)-2) '_{' texname(idx(end-1)+1:end) '}' ];
                 end
-                id = id(2:end)+1;
             end
             if iscell(name)
-                tex(i) = {[tex{i}(1:(id-1)) '_{'  tex{i}((id+1):end) '}']};
+                tex(i) = { texname };
             else
-                tex = [tex(1:(id-1)) '_{'  tex((id+1):end) '}'];
+                tex = texname;
             end
         end
-    else
-        if iscell(name)
-            tex(i) = {strrep(name{i}, '_', '\_')};
-        else
-            tex = strrep(name, '_', '\_');
-        end
     end
 end
 
@@ -211,4 +182,16 @@ end
 %$ end
 %$
 %$ T = all(t);
-%@eof:3
\ No newline at end of file
+%@eof:3
+
+%@test:4
+%$ pwd
+%$ try
+%$     db = dseries('csv/dd.csv');
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ T = all(t);
+%@eof:4
diff --git a/matlab/utilities/tests/get_directory_description.m b/matlab/utilities/tests/get_directory_description.m
index 674af2f8ae29eaf74f7d842fff2e390f8fd81bcf..3be45da11da0847da76fa9406d97c1b4d1027111 100644
--- a/matlab/utilities/tests/get_directory_description.m
+++ b/matlab/utilities/tests/get_directory_description.m
@@ -24,10 +24,11 @@ file = 1;
 for f=1:length(dd)
     if ~(isequal(dd(f).name,'.') || isequal(dd(f).name,'..'))
         if dd(f).isdir
-            flist(file) = { get_directory_description([ basedir filesep dd(f).name]) };
+            r = get_directory_description([ basedir filesep dd(f).name]);
+            flist = { flist{:} r{:} };
         else
-            flist(file) = { [basedir filesep dd(f).name] };
+            flist{length(flist)+1} = [basedir filesep dd(f).name];
         end
         file = file + 1; 
     end
-end
\ No newline at end of file
+end
diff --git a/matlab/utilities/tests/mtest.m b/matlab/utilities/tests/mtest.m
index b015b889208c884b2eb98203405910af4917bf48..29f771613b48c54517f08868e8338309aca8f37f 100644
--- a/matlab/utilities/tests/mtest.m
+++ b/matlab/utilities/tests/mtest.m
@@ -59,7 +59,7 @@ if nargout>1
     % Third column   status of the unitary test (0 if the test fails, 1 otherwise)
     % Fourth column  details about the failure (vector of integers)
     % Fifth column   elapsed time in seconds (cpu time).
-    info = cell(nn,4);
+    info = cell(nn,5);
 end
 
 % Perform the tests.
@@ -73,12 +73,19 @@ for i=1:nn
     fprintf(tid,['function [T,t,LOG] = ' FNAME '_test_' int2str(i) '()\n']);
     fprintf(tid,['try\n']);
     for j=b1(i):b2(i)
-        str = file{j};
-        fprintf(tid,[str(4:end) '\n']);
+        str = sprintf('%s \n',file{j}(4:end));
+        str = regexprep(str, '%', '%%');
+        fprintf(tid,str);
     end
     fprintf(tid,['LOG = NaN;\n']);
-    fprintf(tid,['catch exception\n']);
-    fprintf(tid,['LOG = getReport(exception,''extended'');\n']);
+    if isoctave
+        fprintf(tid,'catch\n');
+        fprintf(tid,'exception = lasterror;\n');
+        fprintf(tid, 'LOG = ''%s'';\n','The Log output is not available with Octave!');
+    else
+        fprintf(tid,'catch exception\n');
+        fprintf(tid,['LOG = getReport(exception,''extended'');\n']);
+    end
     fprintf(tid,['T = NaN;\n']);
     fprintf(tid,['t = NaN;\n']);
     fprintf(tid,['end\n']);
@@ -91,7 +98,9 @@ for i=1:nn
         fprintf(['\n'])
         fprintf(['Call to ' FNAME ' test routine n°' int2str(i) ' failed (' datestr(now) ')!\n'])
         fprintf(['\n'])
-        disp(LOG)
+        if ~isoctave
+            disp(LOG)
+        end
         check = 0;
         if nargout>1
             info(i,3) = {0};
diff --git a/matlab/utilities/tests/run_unitary_tests.m b/matlab/utilities/tests/run_unitary_tests.m
index 86885f880789957b02f2b319489170e07669f50e..b20d6c959b4a89c0631de4d2c5c89b33a50c49d3 100644
--- a/matlab/utilities/tests/run_unitary_tests.m
+++ b/matlab/utilities/tests/run_unitary_tests.m
@@ -20,22 +20,17 @@ function [report, time] = run_unitary_tests(listoffiles)
 report = {};
     
 for f=1:length(listoffiles)
-    if iscell(listoffiles{f})
-        info = run_unitary_tests(listoffiles{f});
-        report = [report; info];
-    else
-        if isequal(listoffiles{f}(end-1:end),'.m') && isempty(strfind(listoffiles{f},'.#'))
-            if is_unitary_test_available(listoffiles{f})
-                disp(['***** Process unitary tests in      ' listoffiles{f}])
-                [check, info] = mtest(listoffiles{f});
-                report = [report; info];
-            else
-                disp(['Booh! No unitary tests available in ' listoffiles{f}])
-            end
+    if isequal(listoffiles{f}(end-1:end),'.m') && isempty(strfind(listoffiles{f},'.#'))
+        if is_unitary_test_available(listoffiles{f})
+            disp(['***** Process unitary tests in      ' listoffiles{f}])
+            [check, info] = mtest(listoffiles{f});
+            report = [report; info];
+        else
+            disp(['Booh! No unitary tests available in ' listoffiles{f}])
         end
     end
 end
 
 if nargout>1
     time = clock;
-end
\ No newline at end of file
+end
diff --git a/matlab/var_sample_moments.m b/matlab/var_sample_moments.m
index 5980500094ce6dfa5e9710795fe9831442c406ad..94cd63de612de5cdaac8efaf44bf8a9e6de37cb2 100644
--- a/matlab/var_sample_moments.m
+++ b/matlab/var_sample_moments.m
@@ -78,7 +78,7 @@ XtX = [];
 data = read_variables(datafile,char(varobs),[],xls_sheet,xls_range);
 
 if qlag > FirstObservation
-    disp('VarSampleMoments :: not enough data to initialize! Try to increase FirstObservation.')
+    error('VarSampleMoments :: not enough data to initialize! Try to increase FirstObservation.')
     return
 end
 
@@ -93,7 +93,7 @@ elseif var_trend_order == 1;% Constant and linear trend case.
 X = ones(NumberOfObservations,NumberOfVariables*qlag+2);
 indx = NumberOfVariables*qlag+1:NumberOfVariables*qlag+2;
 else
-    disp('var_sample_moments :: trend must be equal to -1,0 or 1!')
+    error('var_sample_moments :: trend must be equal to -1,0 or 1!')
     return
 end
 
diff --git a/matlab/varlist_indices.m b/matlab/varlist_indices.m
index 20ece2830fc59be34978dc57a6153367d0a77f1c..1299e54d57e13ea4a589a6df05085e2e77bfb777 100644
--- a/matlab/varlist_indices.m
+++ b/matlab/varlist_indices.m
@@ -1,4 +1,4 @@
-function [i_var,nvar] = varlist_indices(sublist,list)
+function [i_var,nvar,index_uniques] = varlist_indices(sublist,list)
 % function [i_var,nvar] = varlist_indices(sublist,list)
 % returns the indices of a list of endogenous variables
 %
@@ -9,11 +9,12 @@ function [i_var,nvar] = varlist_indices(sublist,list)
 % OUTPUT
 %   i_var:      variable indices in M_.endo_names
 %   nvar:       number of variables in varlist
+%   index_uniqes: indices of unique elements in varlist
 %
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2010-2013 Dynare Team
+% Copyright (C) 2010-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -31,7 +32,7 @@ function [i_var,nvar] = varlist_indices(sublist,list)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 % In Octave, ismember() doesn't operate on character arrays
-if ~exist('OCTAVE_VERSION')
+if ~isoctave
     if isempty(sublist)
         check = [];
         i_var = [];
@@ -52,8 +53,6 @@ else
     end
 end
 
-nvar = length(i_var);
-
 if ~all(check)
     k = find(~check);
     tempstring = 'The following symbols are not endogenous variables: ';
@@ -62,3 +61,19 @@ if ~all(check)
     end
     error(tempstring)
 end
+
+nvar = length(i_var);
+[i_var_unique,index_uniques,junk] = unique(i_var,'first');
+index_uniques =sort(index_uniques);
+i_var_unique =i_var(index_uniques);
+
+if length(i_var_unique)~=nvar
+    k = find(~ismember(1:nvar,index_uniques));
+    tempstring = 'The following symbols are specified twice in the variable list and are considered only once: ';
+    for ii = 1:length(k)
+        tempstring = [ tempstring, deblank(sublist(k(ii),:)), ' ' ];
+    end
+    warning('%s\n',tempstring)
+    i_var=i_var_unique;
+    nvar = length(i_var);
+end
diff --git a/matlab/warning_config.m b/matlab/warning_config.m
index 3e377140930a83571f090a20275180790fd98773..6b6f533063e40fa970e678ac4a430a5e63bc5d8c 100644
--- a/matlab/warning_config.m
+++ b/matlab/warning_config.m
@@ -32,7 +32,7 @@ warning on;
 % Display a calling stack trace when a warning is issued
 warning('on', 'backtrace');
 
-if exist('OCTAVE_VERSION')
+if isoctave
     warning('off', 'Octave:separator-insert');
     warning('off', 'Octave:matlab-incompatible');
     warning('off', 'Octave:single-quote-string');
diff --git a/matlab/write_latex_definitions.m b/matlab/write_latex_definitions.m
new file mode 100644
index 0000000000000000000000000000000000000000..2bf3acf366eb9bdcfd9cc5cb37ba6fb440d76bd0
--- /dev/null
+++ b/matlab/write_latex_definitions.m
@@ -0,0 +1,77 @@
+function write_latex_definitions
+%function write_latex_definitions
+% Writes a latex file containing the variable names, latex names, and
+% tags/comments
+%
+% INPUTS
+%    none
+%
+% OUTPUTS
+%    none
+%
+% SPECIAL REQUIREMENTS
+%    none
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+global M_;
+
+if M_.exo_det_nbr == 0
+    tables = {'Endogenous', 'Exogenous', 'Parameters'};
+    M_var_root = {'M_.endo', 'M_.exo', 'M_.param'};
+else
+    tables = {'Endogenous', 'Exogenous', 'Exogenous Deterministic', 'Parameters'};
+    M_var_root = {'M_.endo', 'M_.exo', 'M_.exo_det', 'M_.param'};
+end
+
+fid = fopen([M_.fname '_latex_definitions.tex'], 'w');
+for i=1:length(tables)
+    fprintf(fid, '\\begin{center}\n');
+    fprintf(fid, '\\begin{longtable}{ccc}\n');
+    fprintf(fid, ['\\caption{' tables{i} '}\\\\%%\n']);
+
+    fprintf(fid, '\\hline%%\n');
+    fprintf(fid, '\\multicolumn{1}{c}{\\textbf{Variable}} &\n');
+    fprintf(fid, '\\multicolumn{1}{c}{\\textbf{\\LaTeX}} &\n');
+    fprintf(fid, '\\multicolumn{1}{c}{\\textbf{Description}}\\\\%%\n');
+    fprintf(fid, '\\hline\\hline%%\n');
+    fprintf(fid, '\\endfirsthead\n');
+
+    fprintf(fid, '\\multicolumn{3}{c}{{\\tablename} \\thetable{} -- Continued}\\\\%%\n');
+    fprintf(fid, '\\hline%%\n');
+    fprintf(fid, '\\multicolumn{1}{c}{\\textbf{Variable}} &\n');
+    fprintf(fid, '\\multicolumn{1}{c}{\\textbf{\\LaTeX}} &\n');
+    fprintf(fid, '\\multicolumn{1}{c}{\\textbf{Description}}\\\\%%\n');
+    fprintf(fid, '\\hline\\hline%%\n');
+    fprintf(fid, '\\endhead\n');
+
+    names = eval([M_var_root{i} '_names']);
+    tex = eval([M_var_root{i} '_names_tex']);
+    long = eval([M_var_root{i} '_names_long']);
+    for j=1:size(names,1)
+        fprintf(fid, '\\texttt{%s} & $%s$ & %s\\\\\n', ...
+            regexprep(strtrim(names(j,:)), '_', '\\_'), ...
+            strtrim(tex(j,:)), ...
+            regexprep(strtrim(long(j,:)), '_', '\\_'));
+    end
+    fprintf(fid, '\\hline%%\n');
+    fprintf(fid, '\\end{longtable}\n');
+    fprintf(fid, '\\end{center}\n');
+end
+fclose(fid);
+end
diff --git a/matlab/reports/@elements/subsasgn.m b/matlab/write_mh_history_file.m
similarity index 59%
rename from matlab/reports/@elements/subsasgn.m
rename to matlab/write_mh_history_file.m
index 5661f66e4afcfe4356200468f50b4ee364908dc3..9fe85ab92f7b78eaa6297500ec0217012dd78e50 100644
--- a/matlab/reports/@elements/subsasgn.m
+++ b/matlab/write_mh_history_file.m
@@ -1,5 +1,4 @@
-function B = subsasgn(A, S, V)
-% function B = subsasgn(A, S, V)
+function i = write_mh_history_file(MetropolisFolder, ModelName, record)
 
 % Copyright (C) 2013 Dynare Team
 %
@@ -18,22 +17,17 @@ function B = subsasgn(A, S, V)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-B = A;
-if length(S) > 1
-    for i=1:(length(S)-1)
-        B = subsref(B, S(i));
-    end
-    B = subsasgn(B, S(end), V);
-    B = subsasgn(A, S(1:(end-1)), B);
-    return
-end
+% Set base name for the mh-history files.
+BaseName = [MetropolisFolder filesep ModelName '_mh_history_'];
 
-switch S.type
-    case '()'
-        index = S.subs{:};
-        assert(isnumeric(index));
-        B.objArray(index) = V;
-    otherwise
-        error('@elements.subsasign: syntax error');
-end
-end
\ No newline at end of file
+% Get the list of all the mh-history files.
+mh_history_files = dir([BaseName '*.mat']);
+
+i = length(mh_history_files);
+
+% Save record structure.
+save([BaseName num2str(i) '.mat'],'record');
+
+% Add version number.
+version = 2;
+save([BaseName num2str(i) '.mat'],'version','-append');
\ No newline at end of file
diff --git a/matlab/writedata.m b/matlab/writedata.m
index 93bd99c56395ec92562972dc0378b6b71c1c496a..112d7f13065d8164097bf68b1628b912059114b3 100644
--- a/matlab/writedata.m
+++ b/matlab/writedata.m
@@ -10,7 +10,7 @@ function writedata(fname)
 % SPECIAL REQUIREMENT
 %   none
 
-% Copyright (C) 2007-2009 Dynare Team
+% Copyright (C) 2007-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,9 +29,8 @@ function writedata(fname)
 
 global M_ oo_
 
-% xlswrite doesn't exist on Octave, and appeared in MATLAB 7.0
-if exist('OCTAVE_VERSION') || matlab_ver_less_than('7.0')
-    error('Function not supported on your version of MATLAB or Octave')
+if isoctave && ~user_has_octave_forge_package('io')
+    error('The io package is required to write XLS files from Octave')
 end
 
 S=[fname '_endo.xls'];
diff --git a/mex/build/matlab/configure.ac b/mex/build/matlab/configure.ac
index 5df7fcf38b840c70dad13051d011c11343368734..f7a668f289010089378750c447581901b79f1344 100644
--- a/mex/build/matlab/configure.ac
+++ b/mex/build/matlab/configure.ac
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
-dnl Copyright (C) 2009-2012 Dynare Team
+dnl Copyright (C) 2009-2014 Dynare Team
 dnl
 dnl This file is part of Dynare.
 dnl
@@ -18,7 +18,7 @@ dnl You should have received a copy of the GNU General Public License
 dnl along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 AC_PREREQ([2.62])
-AC_INIT([dynare], [4.4-unstable])
+AC_INIT([dynare], [4.5-unstable])
 AC_CONFIG_SRCDIR([configure.ac])
 AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign])
 
@@ -60,10 +60,18 @@ AC_PROG_RANLIB
 AX_PROG_LN_S
 AC_PROG_MKDIR_P
 AM_PROG_AR
+
+case ${host_os} in
+  *mingw32*)
+    # Ensure that -lpthread is statically linked under MinGW
+    PTHREAD_LIBS="-Wl,-Bstatic -lpthread -Wl,-Bdynamic"
+    ;;
+esac
 AX_PTHREAD
+
 # Check for boost libraries used in estimation DLL
 AC_LANG_PUSH([C++])
-AX_BOOST_BASE([1.36])
+AX_BOOST_BASE([1.36], [], [AC_MSG_ERROR([Can't find Boost >= 1.36])])
 CPPFLAGS_SAVED="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
 AC_CHECK_HEADER([boost/random/linear_congruential.hpp], [], [AC_MSG_ERROR([Can't find Boost Random Library])])
diff --git a/mex/build/matlab/ms_sbvar/Makefile.am b/mex/build/matlab/ms_sbvar/Makefile.am
index 5f827a7d8d5ca53e8fe7f4b91be7a9a4d0b8ffe2..76ef9a096b9c6107f44cc64ac281ab82fbdc1317 100644
--- a/mex/build/matlab/ms_sbvar/Makefile.am
+++ b/mex/build/matlab/ms_sbvar/Makefile.am
@@ -1,2 +1,5 @@
 include ../mex.am
 include ../../ms_sbvar.am
+
+ms_sbvar_create_init_file_LDADD = -lut
+ms_sbvar_command_line_LDADD = -lut
diff --git a/mex/build/octave/Makefile.am b/mex/build/octave/Makefile.am
index 3b88c591047292a7df02fa04f8b786daa19df351..ad816373a990b58e29178f89157a2cbc08c57f69 100644
--- a/mex/build/octave/Makefile.am
+++ b/mex/build/octave/Makefile.am
@@ -2,7 +2,11 @@ ACLOCAL_AMFLAGS = -I ../../../m4
 
 # libdynare++ must come before gensylv, k_order_perturbation, dynare_simul_
 if DO_SOMETHING
-SUBDIRS = mjdgges kronecker bytecode libdynare++ gensylv qzcomplex ordschur block_kalman_filter sobol local_state_space_iterations linsolve
+SUBDIRS = mjdgges kronecker bytecode libdynare++ gensylv qzcomplex ordschur block_kalman_filter sobol local_state_space_iterations
+
+if COMPILE_LINSOLVE
+SUBDIRS += linsolve
+endif
 
 if HAVE_MATIO
 SUBDIRS += k_order_perturbation dynare_simul_
diff --git a/mex/build/octave/configure.ac b/mex/build/octave/configure.ac
index de5a80e820fd1d5abc01ece15c97cc9ec127fc0d..499f5fe937bf1206b8ae89e0f57f2739de3d2c6e 100755
--- a/mex/build/octave/configure.ac
+++ b/mex/build/octave/configure.ac
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
-dnl Copyright (C) 2009-2013 Dynare Team
+dnl Copyright (C) 2009-2014 Dynare Team
 dnl
 dnl This file is part of Dynare.
 dnl
@@ -18,7 +18,7 @@ dnl You should have received a copy of the GNU General Public License
 dnl along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 AC_PREREQ([2.62])
-AC_INIT([dynare], [4.4-unstable])
+AC_INIT([dynare], [4.5-unstable])
 AC_CONFIG_SRCDIR([configure.ac])
 AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign])
 
@@ -31,8 +31,13 @@ if test "x$MKOCTFILE" != "x"; then
   FFLAGS=`$MKOCTFILE -p FFLAGS`
   CXXFLAGS=`$MKOCTFILE -p CXXFLAGS`
   LDFLAGS="`$MKOCTFILE -p LFLAGS` `$MKOCTFILE -p LDFLAGS`"
+  OCTAVE_VERSION=`$MKOCTFILE -v 2>&1 | sed 's/mkoctfile, version //'`
+  AX_COMPARE_VERSION([$OCTAVE_VERSION], [lt], [3.6], [AC_MSG_ERROR([Your Octave is too old, please upgrade to version 3.6 at least.])])
+  AX_COMPARE_VERSION([$OCTAVE_VERSION], [ge], [3.8], [OCTAVE38=yes])
 fi
 
+AM_CONDITIONAL([COMPILE_LINSOLVE], [test "$OCTAVE38" != "yes"])
+
 CFLAGS="$CFLAGS -Wall -Wno-parentheses"
 FFLAGS="$FFLAGS -Wall"
 CXXFLAGS="$CXXFLAGS -Wall -Wno-parentheses"
@@ -47,7 +52,7 @@ AM_PROG_AR
 AX_PTHREAD
 # Check for boost libraries used in estimation DLL
 AC_LANG_PUSH([C++])
-AX_BOOST_BASE([1.36])
+AX_BOOST_BASE([1.36], [], [AC_MSG_ERROR([Can't find Boost >= 1.36])])
 CPPFLAGS_SAVED="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
 AC_CHECK_HEADER([boost/random/linear_congruential.hpp], [], [AC_MSG_ERROR([Can't find Boost Random Library])])
@@ -110,6 +115,12 @@ else
    BUILD_MS_SBVAR_MEX_OCTAVE="no (missing GSL or MatIO library)"
 fi
 
+if test -n "$MKOCTFILE" -a "$OCTAVE38" != "yes"; then
+   BUILD_LINSOLVE_OCTAVE="yes"
+else
+   BUILD_LINSOLVE_OCTAVE="no (Octave >= 3.8)"
+fi
+
 AC_ARG_ENABLE([openmp], AS_HELP_STRING([--enable-openmp], [use OpenMP for parallelization of some MEX files]), [
   if test "x$enable_openmp" = "xyes"; then
     CPPFLAGS="$CPPFLAGS -DUSE_OMP"
@@ -127,6 +138,7 @@ Binaries (with "make"):
  MS-SBVAR MEX files for Octave:                                      $BUILD_MS_SBVAR_MEX_OCTAVE
  Kalman Steady State MEX file for Octave:                            $BUILD_KALMAN_STEADY_STATE_OCTAVE
  Estimation, k-order and dynare_simul MEX for Octave:                $BUILD_ESTIMATION_KORDER_DYNSIMUL_MEX_OCTAVE
+ Linsolve for Octave:                                                $BUILD_LINSOLVE_OCTAVE
 
 ])
 
diff --git a/mex/sources/bytecode/ErrorHandling.hh b/mex/sources/bytecode/ErrorHandling.hh
index fe6047c8865e20e46e0439abf787ff0adafd1e7b..6e2024a378e8cedeacfd558d3b181f0f277f50ea 100644
--- a/mex/sources/bytecode/ErrorHandling.hh
+++ b/mex/sources/bytecode/ErrorHandling.hh
@@ -150,7 +150,7 @@ class GeneralExceptionHandling
 {
   string ErrorMsg;
 public:
-#ifdef _MSC_VER_
+#ifdef _MSC_VER
   ~GeneralExceptionHandling()
   {
     FreeLibrary(hinstLib);
@@ -267,9 +267,6 @@ struct s_plan
 
 #ifdef MATLAB_MEX_FILE
 extern "C" bool utIsInterruptPending();
-#else
-#include <octave/oct.h>
-#include <octave/unwind-prot.h>
 #endif
 
 #ifdef _MSC_VER
@@ -328,20 +325,24 @@ public:
     string temp;
     int pos1 = -1, pos2 = -1;
     string tmp_n(str.length(), ' ');
+    string dollar, pound, tilde;
+    dollar = "$";
+    pound = "�";
+    tilde = "~";
     for (unsigned int i = 0; i < str.length(); i++)
       {
-        if (str[i] != '$' && str[i] != '�')
+        if (dollar.compare(&str[i]) != 0 && pound.compare(&str[i]) != 0)
           temp += str[i];
         else
           {
-            if (str[i] == '$')
+            if (dollar.compare(&str[i]) == 0)
               pos1 = int(temp.length());
             else
               pos2 = int(temp.length());
             if (pos1 >= 0 && pos2 >= 0)
               {
                 tmp_n.erase(pos1, pos2-pos1+1);
-                tmp_n.insert(pos1, pos2-pos1, '~');
+                tmp_n.insert(pos1, pos2-pos1, tilde[0]);
                 pos1 = pos2 = -1;
               }
           }
@@ -408,7 +409,7 @@ public:
                 res << P_endo_names[CHAR_LENGTH*(variable_num+i*nb_endo)];
           }
         else
-          mexPrintf("=> Unknown endogenous variable n� %d", variable_num);
+          mexPrintf("=> Unknown endogenous variable # %d", variable_num);
         break;
       case eExogenous:
       case eExogenousDet:
@@ -419,7 +420,7 @@ public:
                 res << P_exo_names[CHAR_LENGTH*(variable_num+i*nb_exo)];
           }
         else
-          mexPrintf("=> Unknown exogenous variable n� %d", variable_num);
+          mexPrintf("=> Unknown exogenous variable # %d", variable_num);
         break;
       case eParameter:
         if (variable_num < nb_param)
@@ -429,7 +430,7 @@ public:
                 res << P_param_names[CHAR_LENGTH*(variable_num+i*nb_param)];
           }
         else
-          mexPrintf("=> Unknown parameter n� %d", variable_num);
+          mexPrintf("=> Unknown parameter # %d", variable_num);
         break;
       default:
         break;
@@ -571,9 +572,7 @@ public:
 
     while (go_on)
       {
-#ifdef OCTAVE_MEX_FILE
-        OCTAVE_QUIT;
-#else
+#ifdef MATLAB_MEX_FILE
 	      if ( utIsInterruptPending() )
 		      throw UserExceptionHandling();
 #endif
@@ -1434,7 +1433,7 @@ public:
                 if (compute)
                   {
                     if (isnan(r))
-                      tmp_out << "$ ^ �";
+                      tmp_out << "$ ^ " << "�";
                     else
                       tmp_out << " ^ ";
                   }
@@ -1476,7 +1475,7 @@ public:
                   if (compute)
                     {
                       if (isnan(r))
-                        tmp_out << "$ PowerDeriv �";
+                        tmp_out << "$ PowerDeriv " << "�";
                       else
                         tmp_out << "PowerDeriv";
                     }
@@ -1550,7 +1549,7 @@ public:
                 if (compute)
                   {
                     if (isnan(r))
-                      tmp_out << "$log�(" << v1 << ")";
+                      tmp_out << "$log" << "�" << "(" << v1 << ")";
                     else
                       tmp_out << "log(" << v1 << ")";
                   }
@@ -1568,7 +1567,7 @@ public:
                 if (compute)
                   {
                     if (isnan(r))
-                      tmp_out << "$log10�(" << v1 << ")";
+                      tmp_out << "$log10" << "�" << "(" << v1 << ")";
                     else
                       tmp_out << "log10(" << v1 << ")";
                   }
@@ -1774,11 +1773,7 @@ public:
                       }
                     tmp_out.str("");
                     tmp_out << function_name << "(";
-#ifndef _MSC_VER
-                    string ss[nb_input_arguments];
-#else
                     vector<string> ss(nb_input_arguments);
-#endif
                     for (unsigned int i = 0; i < nb_input_arguments; i++)
                       {
                         ss[nb_input_arguments-i-1] = Stack.top();
@@ -1832,11 +1827,7 @@ public:
                     tmp_out.str("");
                     tmp_out << function_name << "(";
                     tmp_out << arg_func_name.c_str() << ", " << fc->get_row() << ", {";
-#ifndef _MSC_VER
-                    string ss[nb_add_input_arguments];
-#else
                     vector<string> ss(nb_input_arguments);
-#endif
                     for (unsigned int i = 0; i < nb_add_input_arguments; i++)
                       {
                         ss[nb_add_input_arguments-i-1] = Stack.top();
@@ -1867,11 +1858,7 @@ public:
                       }
                     tmp_out.str("");
                     tmp_out << function_name << "(";
-#ifndef _MSC_VER
-                    string ss[nb_input_arguments];
-#else
                     vector<string> ss(nb_input_arguments);
-#endif
                     for (unsigned int i = 0; i < nb_input_arguments; i++)
                       {
                         ss[nb_input_arguments-i-1] = Stack.top();
@@ -1924,11 +1911,7 @@ public:
                     tmp_out.str("");
                     tmp_out << function_name << "(";
                     tmp_out << arg_func_name.c_str() << ", " << fc->get_row() << ", " << fc->get_col() << ", {";
-#ifndef _MSC_VER
-                    string ss[nb_add_input_arguments];
-#else
                     vector<string> ss(nb_input_arguments);
-#endif
                     for (unsigned int i = 0; i < nb_add_input_arguments; i++)
                       {
                         ss[nb_add_input_arguments-i-1] = Stack.top();
@@ -1959,11 +1942,7 @@ public:
                       }
                     tmp_out.str("");
                     tmp_out << function_name << "(";
-#ifndef _MSC_VER
-                    string ss[nb_input_arguments];
-#else
                     vector<string> ss(nb_input_arguments);
-#endif
                     for (unsigned int i = 0; i < nb_input_arguments; i++)
                       {
                         ss[nb_input_arguments-i-1] = Stack.top();
diff --git a/mex/sources/bytecode/Evaluate.cc b/mex/sources/bytecode/Evaluate.cc
index 89b79ef8712d998ac0450199defbe1a1f2a9b358..76aec3b1b650765f9e9030666e4c6ec30671aac5 100644
--- a/mex/sources/bytecode/Evaluate.cc
+++ b/mex/sources/bytecode/Evaluate.cc
@@ -24,9 +24,6 @@
 
 #ifdef MATLAB_MEX_FILE
 extern "C" bool utIsInterruptPending();
-#else
-#include <octave/oct.h>
-#include <octave/unwind-prot.h>
 #endif
 
 Evaluate::Evaluate()
@@ -139,9 +136,7 @@ Evaluate::compute_block_time(const int Per_u_, const bool evaluate, /*const int
           jacob_exo_det = mxGetPr(jacobian_det_exo_block[block_num]);
         }
     }
-#ifdef OCTAVE_MEX_FILE
-  OCTAVE_QUIT;
-#else
+#ifdef MATLAB_MEX_FILE
 	if ( utIsInterruptPending() )
 		throw UserExceptionHandling();
 #endif
diff --git a/mex/sources/bytecode/SparseMatrix.cc b/mex/sources/bytecode/SparseMatrix.cc
index 70226a7983f3dad6373774bc88356f72557b91df..9cc45e45407dafd62d8d909dc6d20e162dc91ffd 100644
--- a/mex/sources/bytecode/SparseMatrix.cc
+++ b/mex/sources/bytecode/SparseMatrix.cc
@@ -5139,9 +5139,7 @@ dynSparseMatrix::Solve_ByteCode_Symbolic_Sparse_GaussianElimination(int Size, bo
     {
       /*clock_t time11 = clock();
       mexPrintf("t=%d, record = %d\n",t, record);*/
-#ifdef OCTAVE_MEX_FILE
-      OCTAVE_QUIT;
-#else
+#ifdef MATLAB_MEX_FILE
     	if ( utIsInterruptPending() )
 		    throw UserExceptionHandling();
 #endif
diff --git a/mex/sources/bytecode/bytecode.cc b/mex/sources/bytecode/bytecode.cc
index 018a384b5d8a6b2a3b840abe67ddc39a06d7d30c..3c2f29b6ff658bea6d2f58187f2b562b07311ae1 100644
--- a/mex/sources/bytecode/bytecode.cc
+++ b/mex/sources/bytecode/bytecode.cc
@@ -363,7 +363,7 @@ Get_Arguments_and_global_variables(int nrhs,
         }
     }
   *M_ = mexGetVariable("global", "M_");
-  if (M_ == NULL)
+  if (*M_ == NULL)
     {
       ostringstream tmp;
       tmp << " in main, global variable not found: M_\n";
@@ -371,14 +371,14 @@ Get_Arguments_and_global_variables(int nrhs,
     }
   /* Gets variables and parameters from global workspace of Matlab */
   *oo_ = mexGetVariable("global", "oo_");
-  if (oo_ == NULL)
+  if (*oo_ == NULL)
     {
       ostringstream tmp;
       tmp << " in main, global variable not found: oo_\n";
       throw FatalExceptionHandling(tmp.str());
     }
   *options_ = mexGetVariable("global", "options_");
-  if (options_ == NULL)
+  if (*options_ == NULL)
     {
       ostringstream tmp;
       tmp << " in main, global variable not found: options_\n";
@@ -527,7 +527,7 @@ main(int nrhs, const char *prhs[])
       for (vector<s_plan>::iterator it = splan.begin(); it != splan.end(); it++)
         {
           mexPrintf("----------------------------------------------------------------------------------------------------\n");
-          mexPrintf("suprise n�%d\n", i+1);
+          mexPrintf("suprise #%d\n", i+1);
           if (it->exo.length())
             mexPrintf(" plan fliping var=%s (%d) exo=%s (%d) for the following periods and with the following values:\n", it->var.c_str(), it->var_num, it->exo.c_str(), it->exo_num);
           else
@@ -605,7 +605,7 @@ main(int nrhs, const char *prhs[])
       for (vector<s_plan>::iterator it = spfplan.begin(); it != spfplan.end(); it++)
         {
           mexPrintf("----------------------------------------------------------------------------------------------------\n");
-          mexPrintf("perfect foresight n�%d\n", i+1);
+          mexPrintf("perfect foresight #%d\n", i+1);
           if (it->exo.length())
             mexPrintf(" plan flipping var=%s (%d) exo=%s (%d) for the following periods and with the following values:\n", it->var.c_str(), it->var_num, it->exo.c_str(), it->exo_num);
           else
@@ -707,10 +707,25 @@ main(int nrhs, const char *prhs[])
     DYN_MEX_FUNC_ERR_MSG_TXT("verbosity is not a field of options_");
   if (verbose)
     print_it = true;
-  field = mxGetFieldNumber(options_, "maxit_");
-  if (field < 0)
-    DYN_MEX_FUNC_ERR_MSG_TXT("maxit_ is not a field of options_");
-  int maxit_ = int (floor(*(mxGetPr(mxGetFieldByNumber(options_, 0, field)))));
+  if (!steady_state)
+    field = mxGetFieldNumber(options_, "simul");
+  else
+    field = mxGetFieldNumber(options_, "steady");
+  mxArray *temporaryfield;
+  if (field >= 0)
+    temporaryfield = mxGetFieldByNumber(options_, 0, field);
+  else
+    if (!steady_state)
+      DYN_MEX_FUNC_ERR_MSG_TXT("simul is not a field of options_");
+    else
+      DYN_MEX_FUNC_ERR_MSG_TXT("steady is not a field of options_");
+  field = mxGetFieldNumber(temporaryfield, "maxit");
+  if (field<0)
+    if (!steady_state)
+      DYN_MEX_FUNC_ERR_MSG_TXT("maxit is not a field of options_.simul");
+    else
+      DYN_MEX_FUNC_ERR_MSG_TXT("maxit is not a field of options_.steady");
+  int maxit_ = int (floor(*(mxGetPr(mxGetFieldByNumber(temporaryfield, 0, field)))));
   field = mxGetFieldNumber(options_, "slowc");
   if (field < 0)
     DYN_MEX_FUNC_ERR_MSG_TXT("slows is not a field of options_");
diff --git a/mex/sources/bytecode/testing/simulate_debug.m b/mex/sources/bytecode/testing/simulate_debug.m
index 396a558e05db9605230f84e3885c959bdc6bc8db..9384eb7fe9daf8ea26986203162fec8cf1212fb0 100644
--- a/mex/sources/bytecode/testing/simulate_debug.m
+++ b/mex/sources/bytecode/testing/simulate_debug.m
@@ -4,7 +4,7 @@ fid = fopen([M_.fname '_options.txt'],'wt');
 if steady_state~=1
   fprintf(fid,'%d\n',options_.periods);
 end;
-fprintf(fid,'%d\n',options_.maxit_);
+fprintf(fid,'%d\n',options_.simul.maxit);
 fprintf(fid,'%6.20f\n',options_.slowc);
 fprintf(fid,'%6.20f\n',options_.markowitz);
 fprintf(fid,'%6.20f\n',options_.dynatol.f);
diff --git a/mex/sources/dynmex.h b/mex/sources/dynmex.h
index 713f3dd7ff44573284e0e83e7fd9a8fb329165c7..17015fb20c90849da374f2825824e1cc634cd1ea 100644
--- a/mex/sources/dynmex.h
+++ b/mex/sources/dynmex.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2011 Dynare Team
+ * Copyright (C) 2009-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -26,12 +26,6 @@
 
 #include <mex.h>
 
-/* mwSize, mwIndex and mwSignedIndex appeared in MATLAB 7.3 */
-#if defined(MATLAB_MEX_FILE) && MATLAB_VERSION < 0x0703
-typedef int mwIndex;
-typedef int mwSize;
-#endif
-
 /*
  * Fix for trac ticket Ticket #137
  */
diff --git a/mex/sources/estimation/SteadyStateSolver.cc b/mex/sources/estimation/SteadyStateSolver.cc
index 5108010d9e86dffd19368cef216c4ded12a79652..e2e9980aebf6b29c6185e1daf6aaba0c8b12b665 100644
--- a/mex/sources/estimation/SteadyStateSolver.cc
+++ b/mex/sources/estimation/SteadyStateSolver.cc
@@ -19,6 +19,8 @@
 
 #include "SteadyStateSolver.hh"
 
+const double SteadyStateSolver::tolerance = 1e-7;
+
 SteadyStateSolver::SteadyStateSolver(const std::string &basename, size_t n_endo_arg)
   : static_dll(basename), n_endo(n_endo_arg), residual(n_endo), g1(n_endo)
 {
diff --git a/mex/sources/estimation/SteadyStateSolver.hh b/mex/sources/estimation/SteadyStateSolver.hh
index dad340fd36f2dea9402ab08a016c7fe49e81feaa..e52f5f433cf7f3d00746c39dbe831c90167d8dbc 100644
--- a/mex/sources/estimation/SteadyStateSolver.hh
+++ b/mex/sources/estimation/SteadyStateSolver.hh
@@ -48,7 +48,7 @@ private:
   static int static_df(const gsl_vector *yy, void *p, gsl_matrix *J);
   static int static_fdf(const gsl_vector *yy, void *p, gsl_vector *F, gsl_matrix *J);
 
-  const static double tolerance = 1e-7;
+  const static double tolerance;
   const static size_t max_iterations = 1000;
 public:
   class SteadyStateException
diff --git a/mex/sources/estimation/libmat/DiscLyapFast.hh b/mex/sources/estimation/libmat/DiscLyapFast.hh
index dc08bb8e99eca4a8f6f81e01f58b60f9829f3304..cd0b014c0c34d81f5abd7097a53aa044049662c5 100644
--- a/mex/sources/estimation/libmat/DiscLyapFast.hh
+++ b/mex/sources/estimation/libmat/DiscLyapFast.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2011 Dynare Team
+ * Copyright (C) 2010-2013 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -62,13 +62,13 @@ public:
   };
   virtual ~DiscLyapFast() {};
   template <class MatG, class MatV, class MatX >
-  void solve_lyap(const MatG &G, const MatV &V, MatX &X, double tol, size_t flag_ch) throw (DLPException);
+  void solve_lyap(const MatG &G, const MatV &V, MatX &X, double tol = 1e-16, size_t flag_ch = 0) throw (DLPException);
 
 };
 
 template <class MatG, class MatV, class MatX >
 void
-DiscLyapFast::solve_lyap(const MatG &G, const MatV &V, MatX &X, double tol = 1e-16, size_t flag_ch = 0) throw (DLPException)
+DiscLyapFast::solve_lyap(const MatG &G, const MatV &V, MatX &X, double tol, size_t flag_ch) throw (DLPException)
 {
   P0 = V;
   P1 = V;
diff --git a/mex/sources/estimation/logMHMCMCposterior.cc b/mex/sources/estimation/logMHMCMCposterior.cc
index a2a4a8b1d38d8a31ea7bc078ea08387a692c0bfc..5fd7faaae7a8b7ea5eb512e4e13cc1160ac0d844 100644
--- a/mex/sources/estimation/logMHMCMCposterior.cc
+++ b/mex/sources/estimation/logMHMCMCposterior.cc
@@ -509,7 +509,7 @@ sampleMHMC(LogPosteriorDensity &lpd, RandomWalkMetropolisHastings &rwmh,
           ssFName << resultsFileStem << DIRECTORY_SEPARATOR << "metropolis" << DIRECTORY_SEPARATOR << resultsFileStem << "_mh" << (size_t) NewFileVw(b-1) << "_blck" << b << ".mat";
           mhFName = ssFName.str();
 
-          drawmat = Mat_Open(mhFName.c_str(), MAT_ACC_RDWR);
+          drawmat = Mat_Create(mhFName.c_str(), NULL);
           if (drawmat == 0)
             {
               mexPrintf("Error in MH: Can not open draws Mat file for writing:  %s \n", mhFName.c_str());
diff --git a/mex/sources/k_order_perturbation/dynamic_abstract_class.cc b/mex/sources/k_order_perturbation/dynamic_abstract_class.cc
index c660e00f974da37fede1a6e2e821d20c518a4f9c..e0da81e886f952bc92b89ac1e985d0b2d7c3a452 100644
--- a/mex/sources/k_order_perturbation/dynamic_abstract_class.cc
+++ b/mex/sources/k_order_perturbation/dynamic_abstract_class.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2011 Dynare Team
+ * Copyright (C) 2010-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -17,11 +17,16 @@
  * along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <assert.h>
+
 #include "dynamic_abstract_class.hh"
 
 void
 DynamicModelAC::copyDoubleIntoTwoDMatData(double *dm, TwoDMatrix *tdm, int rows, int cols)
 {
+  assert(rows == tdm->nrows());
+  assert(cols == tdm->ncols());
+
   int dmIdx = 0;
   for (int j = 0; j < cols; j++)
     for (int i = 0; i < rows; i++)
@@ -52,5 +57,16 @@ DynamicModelAC::unpackSparseMatrix(mxArray *sparseMat)
         newMat[retvalind2++] = ptr[rind];
       }
 
+  /* If there are less elements than Nzmax (that might happen if some
+     derivative is symbolically not zero but numerically zero at the evaluation
+     point), then fill in the matrix with empty entries, that will be
+     recognized as such by KordpDynare::populateDerivativesContainer() */
+  while (retvalind0 < (int) sizeRowIdxVector)
+    {
+      newMat[retvalind0++] = 0;
+      newMat[retvalind1++] = 0;
+      newMat[retvalind2++] = 0;
+    }
+
   return newMat;
 }
diff --git a/mex/sources/k_order_perturbation/dynamic_abstract_class.hh b/mex/sources/k_order_perturbation/dynamic_abstract_class.hh
index 08cbf1eea90883f0f221ccdafc6c7042337dbc56..8c84dbe01377d73fb14bbba4afda04723925e4c7 100644
--- a/mex/sources/k_order_perturbation/dynamic_abstract_class.hh
+++ b/mex/sources/k_order_perturbation/dynamic_abstract_class.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Dynare Team
+ * Copyright (C) 2010-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -25,8 +25,8 @@
 class DynamicModelAC
 {
 public:
-  double *unpackSparseMatrix(mxArray *sparseMatrix);
-  void copyDoubleIntoTwoDMatData(double *dm, TwoDMatrix *tdm, int rows, int cols);
+  static double *unpackSparseMatrix(mxArray *sparseMatrix);
+  static void copyDoubleIntoTwoDMatData(double *dm, TwoDMatrix *tdm, int rows, int cols);
   virtual void eval(const Vector &y, const Vector &x, const Vector &params, const Vector &ySteady,
                     Vector &residual, TwoDMatrix *g1, TwoDMatrix *g2, TwoDMatrix *g3) throw (DynareException) = 0;
 };
diff --git a/mex/sources/k_order_perturbation/k_ord_dynare.cc b/mex/sources/k_order_perturbation/k_ord_dynare.cc
index 91c96e0bccb917ab8368eb3f28e570fdfed724fa..17dcf3254e61137a42bbcce862eb92baf0279a14 100644
--- a/mex/sources/k_order_perturbation/k_ord_dynare.cc
+++ b/mex/sources/k_order_perturbation/k_ord_dynare.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2013 Dynare Team
+ * Copyright (C) 2008-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -194,6 +194,8 @@ KordpDynare::populateDerivativesContainer(const TwoDMatrix &g, int ord, const ve
         {
           int j = (int) g.get(i, 0)-1; // hessian indices start with 1
           int i1 = (int) g.get(i, 1) -1;
+          if (j < 0 || i1 < 0)
+            continue; // Discard empty entries (see comment in DynamicModelAC::unpackSparseMatrix())
           int s0 = i1 / nJcols;
           int s1 = i1 % nJcols;
           if (s0 < nJcols1)
@@ -222,6 +224,8 @@ KordpDynare::populateDerivativesContainer(const TwoDMatrix &g, int ord, const ve
         {
           int j = (int) g.get(i, 0)-1;
           int i1 = (int) g.get(i, 1) -1;
+          if (j < 0 || i1 < 0)
+            continue; // Discard empty entries (see comment in DynamicModelAC::unpackSparseMatrix())
           int s0 = i1 / nJcols2;
           int i2 = i1 % nJcols2;
           int s1 = i2 / nJcols;
diff --git a/mex/sources/k_order_perturbation/k_order_perturbation.cc b/mex/sources/k_order_perturbation/k_order_perturbation.cc
index f0d5d1f8f33f7687ac759a202bd067bcbd73f89f..f2eb3f80daeea3aef18ecb0bdd65fa950430071b 100644
--- a/mex/sources/k_order_perturbation/k_order_perturbation.cc
+++ b/mex/sources/k_order_perturbation/k_order_perturbation.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2012 Dynare Team
+ * Copyright (C) 2008-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -106,7 +106,7 @@ extern "C" {
 
     double qz_criterium = 1+1e-6;
     mxFldp = mxGetField(options_, 0, "qz_criterium");
-    if (mxIsNumeric(mxFldp))
+    if (mxGetNumberOfElements(mxFldp) > 0 && mxIsNumeric(mxFldp))
       qz_criterium = (double) mxGetScalar(mxFldp);
 
     mxFldp = mxGetField(M_, 0, "params");
diff --git a/mex/sources/ms-sbvar/modify_for_mex.h b/mex/sources/ms-sbvar/modify_for_mex.h
index e3b322092ee28495c8191340e066c939121da07b..cb477633f84270ef2fe81ca52dce99231382ed0b 100644
--- a/mex/sources/ms-sbvar/modify_for_mex.h
+++ b/mex/sources/ms-sbvar/modify_for_mex.h
@@ -32,6 +32,14 @@
 #define dw_free mxFree
 #define dw_exit msExit
 
+/* Handle Ctrl-C in Matlab/Octave */
+#ifdef MATLAB_MEX_FILE
+extern bool utIsInterruptPending();
+#else
+#include <octave/config.h>
+#include <octave/quit.h>
+#endif
+
 void msExit(int status);
 extern int constant_seed;
 
diff --git a/mex/sources/sobol/qmc_sequence.cc b/mex/sources/sobol/qmc_sequence.cc
index 04e4a567f0265586c6f965a68396019bca5c4cbb..bd6ed4ddc580dab282e66384bd5114fcfa6bc24d 100644
--- a/mex/sources/sobol/qmc_sequence.cc
+++ b/mex/sources/sobol/qmc_sequence.cc
@@ -21,6 +21,7 @@
 ** AUTHOR(S): stephane DOT adjemian AT univ DASH lemans DOT fr
 **/
 
+#include <sstream>
 #include <string.h>
 #include <stdint.h>
 #include <dynmex.h>
@@ -28,6 +29,9 @@
 #include "sobol.hh"
 #include "gaussian.hh"
 
+// the maximum dimension defined in sobol.ff (but undef at the end)
+#define DIM_MAX 1111
+
 void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
 {
   /* 
@@ -100,6 +104,13 @@ void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     {
       DYN_MEX_FUNC_ERR_MSG_TXT("qmc_sequence:: First input (dimension) has to be greater than 1 for a uniform QMC on an hypershere!");
     }
+  else if (dimension > DIM_MAX)
+    {
+      stringstream msg;
+      msg << "qmc_sequence:: First input (dimension) has to be smaller than " << DIM_MAX << " !";
+      DYN_MEX_FUNC_ERR_MSG_TXT(msg.str().c_str());
+    }
+
   /*
   ** Test the optional fourth input argument and assign it to sequence_size.
   */
diff --git a/others/C/dynare_driver.h b/others/C/dynare_driver.h
new file mode 100644
index 0000000000000000000000000000000000000000..dfaa7c60a9bc72c9bc928c1aa4bb78a4e2bf1e80
--- /dev/null
+++ b/others/C/dynare_driver.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2011-2012 Houtan Bastani, Daniel Waggoner, Tao Zha
+ *
+ * This 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 code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * More information is available at <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _DYNARE_C_DRIVER_H
+#define _DYNARE_C_DRIVER_H
+
+#include <cstdlib>
+#include <vector>
+#include <string>
+#include <map>
+#include <limits>
+
+using namespace std;
+
+struct aux_vars_t {
+  int endo_index, type, orig_index, orig_lead_lag;
+} ;
+
+#endif // ! _DYNARE_C_DRIVER_H
diff --git a/others/cpp/dynare_cpp_driver.cc b/others/cpp/dynare_cpp_driver.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f6701dd4bd37cfd8743dbf1ee8262c9bf13ca283
--- /dev/null
+++ b/others/cpp/dynare_cpp_driver.cc
@@ -0,0 +1,414 @@
+/*
+ * Copyright (C) 2011-2012 Houtan Bastani, Daniel Waggoner, Tao Zha
+ *
+ * This 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 code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * More information is available at <http://www.gnu.org/licenses/>.
+ */
+
+#include <cstdlib>
+#include <vector>
+#include <string>
+#include <iostream>
+#include <assert.h>
+
+using namespace std;
+
+#include "dynare_cpp_driver.hh"
+
+DynareInfo::DynareInfo(map<string, int > exo_names_arg,
+                       map<string, int > exo_det_names_arg,
+                       map<string, int > endo_names_arg,
+                       map<string, int > param_names_arg,
+                       vector< double > params_arg,
+                       vector<aux_vars_t> aux_vars_arg,
+                       vector<int> predetermined_variables_arg,
+                       vector<int> varobs_arg,
+                       vector<int> NNZDerivatives_arg) :
+  NNZDerivatives(NNZDerivatives_arg)
+{
+  endo_nbr = endo_names.size();
+  exo_nbr = exo_names.size();
+  exo_det_nbr = exo_det_names.size();
+  param_nbr = param_names.size();
+  
+  exo_names = exo_names_arg;
+  exo_det_names = exo_det_names_arg;
+  endo_names = endo_names_arg;
+  param_names = param_names_arg;
+  params = params_arg;
+  std::cout << params_arg[0] << std::endl;
+  std::cout << params[0] << std::endl;
+  aux_vars = aux_vars_arg;
+  predetermined_variables = predetermined_variables_arg;
+}
+
+DynareInfo::~DynareInfo()
+{
+  for (vector<MarkovSwitching *>::iterator it = markov_switching_vector.begin();
+       it < markov_switching_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFilePrior *>::iterator it = prior_vector.begin();
+       it < prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileStructuralInnovationPrior *>::iterator it = structural_innovation_prior_vector.begin();
+       it < structural_innovation_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileMeasurementErrorPrior *>::iterator it = measurement_error_prior_vector.begin();
+       it < measurement_error_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileStructuralInnovationCorrPrior *>::iterator it = structural_innovation_corr_prior_vector.begin();
+       it < structural_innovation_corr_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileMeasurementErrorCorrPrior *>::iterator it = measurement_error_corr_prior_vector.begin();
+       it < measurement_error_corr_prior_vector.end(); it++ )
+    delete *it;
+
+  markov_switching_vector.clear();
+  prior_vector.clear();
+  structural_innovation_prior_vector.clear();
+  measurement_error_prior_vector.clear();
+  structural_innovation_corr_prior_vector.clear();
+  measurement_error_corr_prior_vector.clear();
+  exo_names.clear();
+  exo_det_names.clear();
+  endo_names.clear();
+  param_names.clear();
+  params.clear();
+  aux_vars.clear();
+  predetermined_variables.clear();
+  varobs.clear();
+  NNZDerivatives.clear();
+}
+
+string
+DynareInfo::get_exo_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = exo_names.begin();
+       it != exo_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_exo_name_by_index" + index);
+}
+
+int
+DynareInfo::get_exo_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = exo_names.find(name);
+  if (it != exo_names.end())
+    return it->second;
+  throw ValueNotSetException("get_exo_name_by_name" + name);
+}
+
+string
+DynareInfo::get_exo_det_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = exo_det_names.begin();
+       it != exo_det_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_exo_det_name_by_index" + index);
+}
+
+int
+DynareInfo::get_exo_det_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = exo_det_names.find(name);
+  if (it != exo_det_names.end())
+    return it->second;
+  throw ValueNotSetException("get_exo_det_name_by_name" + name);
+}
+
+string
+DynareInfo::get_endo_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = endo_names.begin();
+       it != endo_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_endo_name_by_index" + index);
+}
+
+int
+DynareInfo::get_endo_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = endo_names.find(name);
+  if (it != endo_names.end())
+    return it->second;
+  throw ValueNotSetException("get_endo_name_by_name" + name);
+}
+
+string
+DynareInfo::get_param_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = param_names.begin();
+       it != param_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_param_name_by_index" + index);
+}
+
+int
+DynareInfo::get_param_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = param_names.find(name);
+  if (it != param_names.end())
+    return it->second;
+  throw ValueNotSetException("get_param_name_by_name" + name);
+}
+
+double
+DynareInfo::get_param_value_by_index(int index) throw (ValueNotSetException)
+{
+  return params[index];
+  //  map<int, double >::iterator it = params.find(index);
+  //  if (it != params.end())
+  //    return it->second;
+  //  throw ValueNotSetException("get_param_value_by_index" + index);
+}
+
+MarkovSwitching::MarkovSwitching(const int chain_arg,
+                                 const int number_of_regimes_arg,
+                                 const int number_of_lags_arg,
+                                 const bool number_of_lags_was_passed_arg,
+                                 const vector<int> parameters_arg,
+                                 const vector<double> duration_arg,
+                                 const restriction_map_t restriction_map_arg) :
+  chain(chain_arg),
+  number_of_regimes(number_of_regimes_arg),
+  number_of_lags(number_of_lags_arg),
+  number_of_lags_was_passed(number_of_lags_was_passed_arg),
+  parameters(parameters_arg),
+  duration(duration_arg),
+  restriction_map(restriction_map_arg)
+{
+  assert(chain >= 1);
+  assert(number_of_regimes > 0);
+  if (number_of_lags_was_passed)
+    assert(number_of_lags > 0);
+  assert(!parameters.empty());
+  assert(!duration.empty());
+}
+
+int
+MarkovSwitching::get_number_of_lags() throw (ValueNotSetException)
+{
+  if (number_of_lags_has_val())
+    return number_of_lags;
+  throw ValueNotSetException("number_of_lags");
+}
+
+restriction_map_t
+MarkovSwitching::get_restriction_map() throw (ValueNotSetException)
+{
+  if (restriction_map_has_val())
+    return restriction_map;
+  throw ValueNotSetException("restriction_map");
+}
+
+BasicModFilePrior::BasicModFilePrior(const int index_arg,
+                                     const string shape_arg,
+                                     const double mean_arg,
+                                     const double mode_arg,
+                                     const double stdev_arg,
+                                     const double variance_arg,
+                                     const vector <double> domain_arg) :
+  index(index_arg),
+  shape(shape_arg),
+  mean(mean_arg),
+  mode(mode_arg),
+  stdev(stdev_arg),
+  variance(variance_arg),
+  domain(domain_arg)
+{
+  assert(index >= 0);
+  assert(!shape.empty());
+  if (stdev_has_val())
+    assert(stdev >= 0);
+  if (variance_has_val())
+    assert(variance >= 0);
+  if (domain_has_val())
+    assert(domain.size() == 2);
+}
+
+double
+BasicModFilePrior::get_mean() throw (ValueNotSetException)
+{
+  if (mean_has_val())
+    return mean;
+  throw ValueNotSetException("mean");
+};
+
+double
+BasicModFilePrior::get_mode() throw (ValueNotSetException)
+{
+  if (mode_has_val())
+    return mode;
+  throw ValueNotSetException("mode");
+};
+
+double
+BasicModFilePrior::get_stdev() throw (ValueNotSetException)
+{
+  if (stdev_has_val())
+    return stdev;
+  throw ValueNotSetException("stdev");
+};
+
+double
+BasicModFilePrior::get_variance() throw (ValueNotSetException)
+{
+  if (variance_has_val())
+    return variance;
+  throw ValueNotSetException("variance");
+};
+
+vector<double>
+BasicModFilePrior::get_domain() throw (ValueNotSetException)
+{
+  if (domain_has_val())
+    return domain;
+  throw ValueNotSetException("domain");
+};
+
+ModFilePrior::ModFilePrior(const int index_arg,
+                           const string shape_arg,
+                           const double mean_arg,
+                           const double mode_arg,
+                           const double stdev_arg,
+                           const double variance_arg,
+                           const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileStructuralInnovationPrior::ModFileStructuralInnovationPrior(const int index_arg,
+                                                                   const string shape_arg,
+                                                                   const double mean_arg,
+                                                                   const double stdev_arg,
+                                                                   const double variance_arg,
+                                                                   const double mode_arg,
+                                                                   const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileMeasurementErrorPrior::ModFileMeasurementErrorPrior(const int index_arg,
+                                                           const string shape_arg,
+                                                           const double mean_arg,
+                                                           const double stdev_arg,
+                                                           const double variance_arg,
+                                                           const double mode_arg,
+                                                           const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileStructuralInnovationCorrPrior::ModFileStructuralInnovationCorrPrior(const int index1_arg,
+                                                                           const int index2_arg,
+                                                                           const string shape_arg,
+                                                                           const double mean_arg,
+                                                                           const double stdev_arg,
+                                                                           const double variance_arg,
+                                                                           const double mode_arg,
+                                                                           const vector <double> domain_arg) :
+  BasicModFilePrior(index1_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+ModFileMeasurementErrorCorrPrior::ModFileMeasurementErrorCorrPrior(const int index1_arg,
+                                                                   const int index2_arg,
+                                                                   const string shape_arg,
+                                                                   const double mean_arg,
+                                                                   const double stdev_arg,
+                                                                   const double variance_arg,
+                                                                   const double mode_arg,
+                                                                   const vector <double> domain_arg) :
+  BasicModFilePrior(index1_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+BasicModFileOption::BasicModFileOption(const int index_arg,
+                                       const double init_arg) :
+  index(index_arg),
+  init(init_arg)
+{
+  assert(index >= 0);
+  assert(!isnan(init));
+}
+
+ModFileOption::ModFileOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileStructuralInnovationOption::ModFileStructuralInnovationOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileMeasurementErrorOption::ModFileMeasurementErrorOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileStructuralInnovationCorrOption::ModFileStructuralInnovationCorrOption(const int index1_arg, const int index2_arg, const double init_arg) :
+  BasicModFileOption(index1_arg, init_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+ModFileMeasurementErrorCorrOption::ModFileMeasurementErrorCorrOption(const int index1_arg, const int index2_arg, const double init_arg) :
+  BasicModFileOption(index1_arg, init_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
diff --git a/others/cpp/dynare_cpp_driver.hh b/others/cpp/dynare_cpp_driver.hh
new file mode 100644
index 0000000000000000000000000000000000000000..581cdd6eae7f38d08155081a674516fbcee84b75
--- /dev/null
+++ b/others/cpp/dynare_cpp_driver.hh
@@ -0,0 +1,333 @@
+/*
+ * Copyright (C) 2011-2012 Houtan Bastani, Daniel Waggoner, Tao Zha
+ *
+ * This 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 code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * More information is available at <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _DYNARE_CPP_DRIVER_HH
+#define _DYNARE_CPP_DRIVER_HH
+
+#include <cstdlib>
+#include <vector>
+#include <string>
+#include <map>
+#include <limits>
+
+using namespace std;
+
+struct aux_vars_t {
+  int endo_index, type, orig_index, orig_lead_lag;
+} ;
+
+typedef map<pair<int, int >, double> restriction_map_t ;
+
+class ValueNotSetException
+{
+public:
+  string name;
+  ValueNotSetException(const string &name_arg) : name(name_arg)
+  {
+  }
+};
+
+class MarkovSwitching
+{
+private:
+  const int chain, number_of_regimes, number_of_lags;
+  const bool number_of_lags_was_passed;
+  const vector<int> parameters;
+  const vector<double> duration;
+  const restriction_map_t restriction_map;
+public:
+  MarkovSwitching(const int chain_arg,
+                  const int number_of_regimes_arg,
+                  const int number_of_lags_arg,
+                  const bool number_of_lags_was_passed_arg,
+                  const vector<int> parameters_arg,
+                  const vector<double> duration_arg,
+                  const restriction_map_t restriction_map_arg);
+
+  inline bool number_of_lags_has_val() const { return number_of_lags_was_passed; };
+  inline bool restriction_map_has_val() const { return !restriction_map.empty(); };
+
+  inline int get_chain() const { return chain; };
+  inline int get_number_of_regimes() const { return number_of_regimes; };
+  int get_number_of_lags() throw (ValueNotSetException);
+  inline vector<int> get_parameters() { return parameters; };
+  inline vector<double> get_duration() { return duration; };
+  restriction_map_t get_restriction_map() throw (ValueNotSetException);
+};
+
+class BasicModFilePrior
+{
+private:
+  inline bool isnan(double x) const { return (x!=x); };
+protected:
+  const int index;
+  const string shape;
+  const double mean, mode, stdev, variance;
+  const vector <double> domain;
+
+  BasicModFilePrior(const int index_arg,
+                    const string shape_arg,
+                    const double mean_arg,
+                    const double mode_arg,
+                    const double stdev_arg,
+                    const double variance_arg,
+                    const vector <double> domain_arg);
+public:
+  inline bool mean_has_val() const { return !isnan(mean); };
+  inline bool mode_has_val() const { return !isnan(mode); };
+  inline bool stdev_has_val() const { return !isnan(stdev); };
+  inline bool variance_has_val() const { return !isnan(variance); };
+  inline bool domain_has_val() const { return (domain.size() == 2); };
+
+  inline int get_index() const { return index; };
+  inline string get_shape() const { return shape; };
+  double get_mean() throw (ValueNotSetException);
+  double get_mode() throw (ValueNotSetException);
+  double get_stdev() throw (ValueNotSetException);
+  double get_variance() throw (ValueNotSetException);
+  vector<double> get_domain() throw (ValueNotSetException);
+};
+
+class ModFilePrior : public BasicModFilePrior
+{
+public:
+  ModFilePrior(const int index_arg,
+               const string shape_arg,
+               const double mean_arg,
+               const double mode_arg,
+               const double stdev_arg,
+               const double variance_arg,
+               const vector <double> domain_arg);
+};
+
+class ModFileStructuralInnovationPrior: public BasicModFilePrior
+{
+public:
+  ModFileStructuralInnovationPrior(const int index_arg,
+                                   const string shape_arg,
+                                   const double mean_arg,
+                                   const double mode_arg,
+                                   const double stdev_arg,
+                                   const double variance_arg,
+                                   const vector <double> domain_arg);
+};
+
+class ModFileMeasurementErrorPrior : public BasicModFilePrior
+{
+public:
+  ModFileMeasurementErrorPrior(const int index_arg,
+                               const string shape_arg,
+                               const double mean_arg,
+                               const double stdev_arg,
+                               const double variance_arg,
+                               const double mode_arg,
+                               const vector <double> domain_arg);
+};
+
+class ModFileStructuralInnovationCorrPrior : public BasicModFilePrior
+{
+private:
+  const int index2;
+public:
+  ModFileStructuralInnovationCorrPrior(const int index1_arg,
+                                       const int index2_arg,
+                                       const string shape_arg,
+                                       const double mean_arg,
+                                       const double stdev_arg,
+                                       const double variance_arg,
+                                       const double mode_arg,
+                                       const vector <double> domain_arg);
+};
+
+class ModFileMeasurementErrorCorrPrior : public BasicModFilePrior
+{
+private:
+  const int index2;
+public:
+  ModFileMeasurementErrorCorrPrior(const int index1_arg,
+                                   const int index2_arg,
+                                   const string shape_arg,
+                                   const double mean_arg,
+                                   const double stdev_arg,
+                                   const double variance_arg,
+                                   const double mode_arg,
+                                   const vector <double> domain_arg);
+};
+
+class BasicModFileOption
+{
+private:
+  inline bool isnan(double x) const { return (x!=x); };
+protected:
+  const int index;
+  const double init;
+
+  BasicModFileOption(const int index_arg,
+                     const double init_arg);
+public:
+  inline int get_index() const { return index; };
+  inline double get_init() const { return init; };
+};
+
+class ModFileOption : public BasicModFileOption
+{
+public:
+  ModFileOption(const int index_arg,
+                const double init_arg);
+};
+
+class ModFileStructuralInnovationOption: public BasicModFileOption
+{
+public:
+  ModFileStructuralInnovationOption(const int index_arg,
+                                    const double init_arg);
+};
+
+class ModFileMeasurementErrorOption : public BasicModFileOption
+{
+public:
+  ModFileMeasurementErrorOption(const int index_arg,
+                                const double init_arg);
+};
+
+class ModFileStructuralInnovationCorrOption : public BasicModFileOption
+{
+private:
+  const int index2;
+public:
+  ModFileStructuralInnovationCorrOption(const int index1_arg,
+                                        const int index2_arg,
+                                        const double init_arg);
+};
+
+class ModFileMeasurementErrorCorrOption : public BasicModFileOption
+{
+private:
+  const int index2;
+public:
+  ModFileMeasurementErrorCorrOption(const int index1_arg,
+                                    const int index2_arg,
+                                    const double init_arg);
+};
+
+class DynareInfo
+{
+private:
+  vector<MarkovSwitching *> markov_switching_vector;
+  vector<ModFilePrior *> prior_vector;
+  vector<ModFileStructuralInnovationPrior *> structural_innovation_prior_vector;
+  vector<ModFileMeasurementErrorPrior *> measurement_error_prior_vector;
+  vector<ModFileStructuralInnovationCorrPrior *> structural_innovation_corr_prior_vector;
+  vector<ModFileMeasurementErrorCorrPrior *> measurement_error_corr_prior_vector;
+  vector<ModFileOption *> option_vector;
+  vector<ModFileStructuralInnovationOption *> structural_innovation_option_vector;
+  vector<ModFileMeasurementErrorOption *> measurement_error_option_vector;
+  vector<ModFileStructuralInnovationCorrOption *> structural_innovation_corr_option_vector;
+  vector<ModFileMeasurementErrorCorrOption *> measurement_error_corr_option_vector;
+  map<string, int > exo_names, exo_det_names, endo_names, param_names;
+  vector< double > params;
+  vector<aux_vars_t> aux_vars;
+  vector<int> predetermined_variables;
+  vector<int> varobs;
+  vector<size_t> zeta_fwrd, zeta_back, zeta_mixed, zeta_static;
+  vector<int> NNZDerivatives;
+  int endo_nbr, exo_nbr, exo_det_nbr, param_nbr, nstatic, nfwrd, nback, nmixed;
+public:
+  DynareInfo(void); // this function is automatically written by the Dynare preprocessor
+  DynareInfo(map<string, int > exo_names_arg,
+             map<string, int > exo_det_names_arg,
+             map<string, int > endo_names_arg,
+             map<string, int > param_names_arg,
+             vector< double > params_arg,
+             vector<aux_vars_t> aux_vars_arg,
+             vector<int> predetermined_variables_arg,
+             vector<int> varobs_arg,
+             vector<int> NNZDerivatives_arg);
+  ~DynareInfo();
+
+  inline void addMarkovSwitching(MarkovSwitching *ms) { markov_switching_vector.push_back(ms); };
+
+  inline void addPrior(ModFilePrior *p) { prior_vector.push_back(p); };
+  inline void addStructuralInnovationPrior(ModFileStructuralInnovationPrior *sip) { structural_innovation_prior_vector.push_back(sip); };
+  inline void addMeasurementErrorPrior(ModFileMeasurementErrorPrior *mep) { measurement_error_prior_vector.push_back(mep); };
+  inline void addStructuralInnovationCorrPrior(ModFileStructuralInnovationCorrPrior *sicp) { structural_innovation_corr_prior_vector.push_back(sicp); };
+  inline void addMeasurementErrorCorrPrior(ModFileMeasurementErrorCorrPrior *mecp) { measurement_error_corr_prior_vector.push_back(mecp); };
+
+  inline void addOption(ModFileOption *o) { option_vector.push_back(o); };
+  inline void addStructuralInnovationOption(ModFileStructuralInnovationOption *sio) { structural_innovation_option_vector.push_back(sio); };
+  inline void addMeasurementErrorOption(ModFileMeasurementErrorOption *meo) { measurement_error_option_vector.push_back(meo); };
+  inline void addStructuralInnovationCorrOption(ModFileStructuralInnovationCorrOption *sico) { structural_innovation_corr_option_vector.push_back(sico); };
+  inline void addMeasurementErrorCorrOption(ModFileMeasurementErrorCorrOption *meco) { measurement_error_corr_option_vector.push_back(meco); };
+
+  inline bool markov_switching_has_val() { return !markov_switching_vector.empty(); };
+  inline bool prior_has_val() { return !prior_vector.empty(); };
+  inline bool structural_innovation_prior_has_val() { return !structural_innovation_prior_vector.empty(); };
+  inline bool measurement_error_prior_has_val() { return !measurement_error_prior_vector.empty(); };
+  inline bool structural_innovation_corr_prior_has_val() { return !structural_innovation_corr_prior_vector.empty(); };
+  inline bool measurement_error_corr_prior_has_val() { return !measurement_error_corr_prior_vector.empty(); };
+
+  inline bool option_has_val() { return !option_vector.empty(); };
+  inline bool structural_innovation_option_has_val() { return !structural_innovation_option_vector.empty(); };
+  inline bool measurement_error_option_has_val() { return !measurement_error_option_vector.empty(); };
+  inline bool structural_innovation_corr_option_has_val() { return !structural_innovation_corr_option_vector.empty(); };
+  inline bool measurement_error_corr_option_has_val() { return !measurement_error_corr_option_vector.empty(); };
+
+  inline vector<MarkovSwitching *>get_markov_switching() { return markov_switching_vector; };
+  inline vector<ModFilePrior *> get_prior() { return prior_vector; };
+  inline vector<ModFileStructuralInnovationPrior *> get_structural_innovation_prior() { return structural_innovation_prior_vector; };
+  inline vector<ModFileMeasurementErrorPrior *> get_measurement_error_prior() { return measurement_error_prior_vector; };
+  inline vector<ModFileStructuralInnovationCorrPrior *> get_structural_innovation_corr_prior() { return structural_innovation_corr_prior_vector; };
+  inline vector<ModFileMeasurementErrorCorrPrior *> get_measurement_error_corr_prior() { return measurement_error_corr_prior_vector; };
+
+  inline vector<ModFileOption *> get_option() { return option_vector; };
+  inline vector<ModFileStructuralInnovationOption *> get_structural_innovation_option() { return structural_innovation_option_vector; };
+  inline vector<ModFileMeasurementErrorOption *> get_measurement_error_option() { return measurement_error_option_vector; };
+  inline vector<ModFileStructuralInnovationCorrOption *> get_structural_innovation_corr_option() { return structural_innovation_corr_option_vector; };
+  inline vector<ModFileMeasurementErrorCorrOption *> get_measurement_error_corr_option() { return measurement_error_corr_option_vector; };
+
+  inline map<string, int > get_exo_names() { return exo_names; };
+  inline map<string, int > get_exo_det_names() { return exo_det_names; };
+  inline map<string, int > get_endo_names() { return endo_names; };
+  inline map<string, int > get_param_names() { return param_names; };
+  inline vector<double> get_params() { return params; };
+  inline double *get_params_data(void) { return params.data(); };
+  inline vector <aux_vars_t> get_aux_vars() { return aux_vars; };
+  inline vector <int> get_predetermined_variables() { return predetermined_variables; };
+  inline vector <int> get_varobs() { return varobs; };
+  inline vector<int> get_NNZDerivatives() { return NNZDerivatives; };
+
+  inline int get_endo_nbr(void) { return endo_nbr; };
+  inline int get_exo_nbr(void) { return exo_nbr; };
+  inline int get_exo_det_nbr(void) { return exo_det_nbr; };
+  inline int get_param_nbr(void) { return param_nbr; };
+  inline vector<size_t>  get_zeta_back(void) { return zeta_back; };
+  inline vector<size_t>  get_zeta_fwrd(void) { return zeta_fwrd; };
+  inline vector<size_t>  get_zeta_mixed(void) { return zeta_mixed; };
+  inline vector<size_t>  get_zeta_static(void) { return zeta_static; };
+
+  string get_exo_name_by_index(int index) throw (ValueNotSetException);
+  int get_exo_index_by_name(string name) throw (ValueNotSetException);
+  string get_exo_det_name_by_index(int index) throw (ValueNotSetException);
+  int get_exo_det_index_by_name(string name) throw (ValueNotSetException);
+  string get_endo_name_by_index(int index) throw (ValueNotSetException);
+  int get_endo_index_by_name(string name) throw (ValueNotSetException);
+  string get_param_name_by_index(int index) throw (ValueNotSetException);
+  int get_param_index_by_name(string name) throw (ValueNotSetException);
+  double get_param_value_by_index(int index) throw (ValueNotSetException);
+
+};
+
+#endif // ! _DYNARE_CPP_DRIVER_HH
diff --git a/others/cpp/dynare_driver.c b/others/cpp/dynare_driver.c
new file mode 100644
index 0000000000000000000000000000000000000000..f6701dd4bd37cfd8743dbf1ee8262c9bf13ca283
--- /dev/null
+++ b/others/cpp/dynare_driver.c
@@ -0,0 +1,414 @@
+/*
+ * Copyright (C) 2011-2012 Houtan Bastani, Daniel Waggoner, Tao Zha
+ *
+ * This 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 code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * More information is available at <http://www.gnu.org/licenses/>.
+ */
+
+#include <cstdlib>
+#include <vector>
+#include <string>
+#include <iostream>
+#include <assert.h>
+
+using namespace std;
+
+#include "dynare_cpp_driver.hh"
+
+DynareInfo::DynareInfo(map<string, int > exo_names_arg,
+                       map<string, int > exo_det_names_arg,
+                       map<string, int > endo_names_arg,
+                       map<string, int > param_names_arg,
+                       vector< double > params_arg,
+                       vector<aux_vars_t> aux_vars_arg,
+                       vector<int> predetermined_variables_arg,
+                       vector<int> varobs_arg,
+                       vector<int> NNZDerivatives_arg) :
+  NNZDerivatives(NNZDerivatives_arg)
+{
+  endo_nbr = endo_names.size();
+  exo_nbr = exo_names.size();
+  exo_det_nbr = exo_det_names.size();
+  param_nbr = param_names.size();
+  
+  exo_names = exo_names_arg;
+  exo_det_names = exo_det_names_arg;
+  endo_names = endo_names_arg;
+  param_names = param_names_arg;
+  params = params_arg;
+  std::cout << params_arg[0] << std::endl;
+  std::cout << params[0] << std::endl;
+  aux_vars = aux_vars_arg;
+  predetermined_variables = predetermined_variables_arg;
+}
+
+DynareInfo::~DynareInfo()
+{
+  for (vector<MarkovSwitching *>::iterator it = markov_switching_vector.begin();
+       it < markov_switching_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFilePrior *>::iterator it = prior_vector.begin();
+       it < prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileStructuralInnovationPrior *>::iterator it = structural_innovation_prior_vector.begin();
+       it < structural_innovation_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileMeasurementErrorPrior *>::iterator it = measurement_error_prior_vector.begin();
+       it < measurement_error_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileStructuralInnovationCorrPrior *>::iterator it = structural_innovation_corr_prior_vector.begin();
+       it < structural_innovation_corr_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileMeasurementErrorCorrPrior *>::iterator it = measurement_error_corr_prior_vector.begin();
+       it < measurement_error_corr_prior_vector.end(); it++ )
+    delete *it;
+
+  markov_switching_vector.clear();
+  prior_vector.clear();
+  structural_innovation_prior_vector.clear();
+  measurement_error_prior_vector.clear();
+  structural_innovation_corr_prior_vector.clear();
+  measurement_error_corr_prior_vector.clear();
+  exo_names.clear();
+  exo_det_names.clear();
+  endo_names.clear();
+  param_names.clear();
+  params.clear();
+  aux_vars.clear();
+  predetermined_variables.clear();
+  varobs.clear();
+  NNZDerivatives.clear();
+}
+
+string
+DynareInfo::get_exo_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = exo_names.begin();
+       it != exo_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_exo_name_by_index" + index);
+}
+
+int
+DynareInfo::get_exo_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = exo_names.find(name);
+  if (it != exo_names.end())
+    return it->second;
+  throw ValueNotSetException("get_exo_name_by_name" + name);
+}
+
+string
+DynareInfo::get_exo_det_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = exo_det_names.begin();
+       it != exo_det_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_exo_det_name_by_index" + index);
+}
+
+int
+DynareInfo::get_exo_det_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = exo_det_names.find(name);
+  if (it != exo_det_names.end())
+    return it->second;
+  throw ValueNotSetException("get_exo_det_name_by_name" + name);
+}
+
+string
+DynareInfo::get_endo_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = endo_names.begin();
+       it != endo_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_endo_name_by_index" + index);
+}
+
+int
+DynareInfo::get_endo_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = endo_names.find(name);
+  if (it != endo_names.end())
+    return it->second;
+  throw ValueNotSetException("get_endo_name_by_name" + name);
+}
+
+string
+DynareInfo::get_param_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = param_names.begin();
+       it != param_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_param_name_by_index" + index);
+}
+
+int
+DynareInfo::get_param_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = param_names.find(name);
+  if (it != param_names.end())
+    return it->second;
+  throw ValueNotSetException("get_param_name_by_name" + name);
+}
+
+double
+DynareInfo::get_param_value_by_index(int index) throw (ValueNotSetException)
+{
+  return params[index];
+  //  map<int, double >::iterator it = params.find(index);
+  //  if (it != params.end())
+  //    return it->second;
+  //  throw ValueNotSetException("get_param_value_by_index" + index);
+}
+
+MarkovSwitching::MarkovSwitching(const int chain_arg,
+                                 const int number_of_regimes_arg,
+                                 const int number_of_lags_arg,
+                                 const bool number_of_lags_was_passed_arg,
+                                 const vector<int> parameters_arg,
+                                 const vector<double> duration_arg,
+                                 const restriction_map_t restriction_map_arg) :
+  chain(chain_arg),
+  number_of_regimes(number_of_regimes_arg),
+  number_of_lags(number_of_lags_arg),
+  number_of_lags_was_passed(number_of_lags_was_passed_arg),
+  parameters(parameters_arg),
+  duration(duration_arg),
+  restriction_map(restriction_map_arg)
+{
+  assert(chain >= 1);
+  assert(number_of_regimes > 0);
+  if (number_of_lags_was_passed)
+    assert(number_of_lags > 0);
+  assert(!parameters.empty());
+  assert(!duration.empty());
+}
+
+int
+MarkovSwitching::get_number_of_lags() throw (ValueNotSetException)
+{
+  if (number_of_lags_has_val())
+    return number_of_lags;
+  throw ValueNotSetException("number_of_lags");
+}
+
+restriction_map_t
+MarkovSwitching::get_restriction_map() throw (ValueNotSetException)
+{
+  if (restriction_map_has_val())
+    return restriction_map;
+  throw ValueNotSetException("restriction_map");
+}
+
+BasicModFilePrior::BasicModFilePrior(const int index_arg,
+                                     const string shape_arg,
+                                     const double mean_arg,
+                                     const double mode_arg,
+                                     const double stdev_arg,
+                                     const double variance_arg,
+                                     const vector <double> domain_arg) :
+  index(index_arg),
+  shape(shape_arg),
+  mean(mean_arg),
+  mode(mode_arg),
+  stdev(stdev_arg),
+  variance(variance_arg),
+  domain(domain_arg)
+{
+  assert(index >= 0);
+  assert(!shape.empty());
+  if (stdev_has_val())
+    assert(stdev >= 0);
+  if (variance_has_val())
+    assert(variance >= 0);
+  if (domain_has_val())
+    assert(domain.size() == 2);
+}
+
+double
+BasicModFilePrior::get_mean() throw (ValueNotSetException)
+{
+  if (mean_has_val())
+    return mean;
+  throw ValueNotSetException("mean");
+};
+
+double
+BasicModFilePrior::get_mode() throw (ValueNotSetException)
+{
+  if (mode_has_val())
+    return mode;
+  throw ValueNotSetException("mode");
+};
+
+double
+BasicModFilePrior::get_stdev() throw (ValueNotSetException)
+{
+  if (stdev_has_val())
+    return stdev;
+  throw ValueNotSetException("stdev");
+};
+
+double
+BasicModFilePrior::get_variance() throw (ValueNotSetException)
+{
+  if (variance_has_val())
+    return variance;
+  throw ValueNotSetException("variance");
+};
+
+vector<double>
+BasicModFilePrior::get_domain() throw (ValueNotSetException)
+{
+  if (domain_has_val())
+    return domain;
+  throw ValueNotSetException("domain");
+};
+
+ModFilePrior::ModFilePrior(const int index_arg,
+                           const string shape_arg,
+                           const double mean_arg,
+                           const double mode_arg,
+                           const double stdev_arg,
+                           const double variance_arg,
+                           const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileStructuralInnovationPrior::ModFileStructuralInnovationPrior(const int index_arg,
+                                                                   const string shape_arg,
+                                                                   const double mean_arg,
+                                                                   const double stdev_arg,
+                                                                   const double variance_arg,
+                                                                   const double mode_arg,
+                                                                   const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileMeasurementErrorPrior::ModFileMeasurementErrorPrior(const int index_arg,
+                                                           const string shape_arg,
+                                                           const double mean_arg,
+                                                           const double stdev_arg,
+                                                           const double variance_arg,
+                                                           const double mode_arg,
+                                                           const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileStructuralInnovationCorrPrior::ModFileStructuralInnovationCorrPrior(const int index1_arg,
+                                                                           const int index2_arg,
+                                                                           const string shape_arg,
+                                                                           const double mean_arg,
+                                                                           const double stdev_arg,
+                                                                           const double variance_arg,
+                                                                           const double mode_arg,
+                                                                           const vector <double> domain_arg) :
+  BasicModFilePrior(index1_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+ModFileMeasurementErrorCorrPrior::ModFileMeasurementErrorCorrPrior(const int index1_arg,
+                                                                   const int index2_arg,
+                                                                   const string shape_arg,
+                                                                   const double mean_arg,
+                                                                   const double stdev_arg,
+                                                                   const double variance_arg,
+                                                                   const double mode_arg,
+                                                                   const vector <double> domain_arg) :
+  BasicModFilePrior(index1_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+BasicModFileOption::BasicModFileOption(const int index_arg,
+                                       const double init_arg) :
+  index(index_arg),
+  init(init_arg)
+{
+  assert(index >= 0);
+  assert(!isnan(init));
+}
+
+ModFileOption::ModFileOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileStructuralInnovationOption::ModFileStructuralInnovationOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileMeasurementErrorOption::ModFileMeasurementErrorOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileStructuralInnovationCorrOption::ModFileStructuralInnovationCorrOption(const int index1_arg, const int index2_arg, const double init_arg) :
+  BasicModFileOption(index1_arg, init_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+ModFileMeasurementErrorCorrOption::ModFileMeasurementErrorCorrOption(const int index1_arg, const int index2_arg, const double init_arg) :
+  BasicModFileOption(index1_arg, init_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
diff --git a/others/cpp/dynare_driver.h b/others/cpp/dynare_driver.h
new file mode 100644
index 0000000000000000000000000000000000000000..581cdd6eae7f38d08155081a674516fbcee84b75
--- /dev/null
+++ b/others/cpp/dynare_driver.h
@@ -0,0 +1,333 @@
+/*
+ * Copyright (C) 2011-2012 Houtan Bastani, Daniel Waggoner, Tao Zha
+ *
+ * This 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 code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * More information is available at <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _DYNARE_CPP_DRIVER_HH
+#define _DYNARE_CPP_DRIVER_HH
+
+#include <cstdlib>
+#include <vector>
+#include <string>
+#include <map>
+#include <limits>
+
+using namespace std;
+
+struct aux_vars_t {
+  int endo_index, type, orig_index, orig_lead_lag;
+} ;
+
+typedef map<pair<int, int >, double> restriction_map_t ;
+
+class ValueNotSetException
+{
+public:
+  string name;
+  ValueNotSetException(const string &name_arg) : name(name_arg)
+  {
+  }
+};
+
+class MarkovSwitching
+{
+private:
+  const int chain, number_of_regimes, number_of_lags;
+  const bool number_of_lags_was_passed;
+  const vector<int> parameters;
+  const vector<double> duration;
+  const restriction_map_t restriction_map;
+public:
+  MarkovSwitching(const int chain_arg,
+                  const int number_of_regimes_arg,
+                  const int number_of_lags_arg,
+                  const bool number_of_lags_was_passed_arg,
+                  const vector<int> parameters_arg,
+                  const vector<double> duration_arg,
+                  const restriction_map_t restriction_map_arg);
+
+  inline bool number_of_lags_has_val() const { return number_of_lags_was_passed; };
+  inline bool restriction_map_has_val() const { return !restriction_map.empty(); };
+
+  inline int get_chain() const { return chain; };
+  inline int get_number_of_regimes() const { return number_of_regimes; };
+  int get_number_of_lags() throw (ValueNotSetException);
+  inline vector<int> get_parameters() { return parameters; };
+  inline vector<double> get_duration() { return duration; };
+  restriction_map_t get_restriction_map() throw (ValueNotSetException);
+};
+
+class BasicModFilePrior
+{
+private:
+  inline bool isnan(double x) const { return (x!=x); };
+protected:
+  const int index;
+  const string shape;
+  const double mean, mode, stdev, variance;
+  const vector <double> domain;
+
+  BasicModFilePrior(const int index_arg,
+                    const string shape_arg,
+                    const double mean_arg,
+                    const double mode_arg,
+                    const double stdev_arg,
+                    const double variance_arg,
+                    const vector <double> domain_arg);
+public:
+  inline bool mean_has_val() const { return !isnan(mean); };
+  inline bool mode_has_val() const { return !isnan(mode); };
+  inline bool stdev_has_val() const { return !isnan(stdev); };
+  inline bool variance_has_val() const { return !isnan(variance); };
+  inline bool domain_has_val() const { return (domain.size() == 2); };
+
+  inline int get_index() const { return index; };
+  inline string get_shape() const { return shape; };
+  double get_mean() throw (ValueNotSetException);
+  double get_mode() throw (ValueNotSetException);
+  double get_stdev() throw (ValueNotSetException);
+  double get_variance() throw (ValueNotSetException);
+  vector<double> get_domain() throw (ValueNotSetException);
+};
+
+class ModFilePrior : public BasicModFilePrior
+{
+public:
+  ModFilePrior(const int index_arg,
+               const string shape_arg,
+               const double mean_arg,
+               const double mode_arg,
+               const double stdev_arg,
+               const double variance_arg,
+               const vector <double> domain_arg);
+};
+
+class ModFileStructuralInnovationPrior: public BasicModFilePrior
+{
+public:
+  ModFileStructuralInnovationPrior(const int index_arg,
+                                   const string shape_arg,
+                                   const double mean_arg,
+                                   const double mode_arg,
+                                   const double stdev_arg,
+                                   const double variance_arg,
+                                   const vector <double> domain_arg);
+};
+
+class ModFileMeasurementErrorPrior : public BasicModFilePrior
+{
+public:
+  ModFileMeasurementErrorPrior(const int index_arg,
+                               const string shape_arg,
+                               const double mean_arg,
+                               const double stdev_arg,
+                               const double variance_arg,
+                               const double mode_arg,
+                               const vector <double> domain_arg);
+};
+
+class ModFileStructuralInnovationCorrPrior : public BasicModFilePrior
+{
+private:
+  const int index2;
+public:
+  ModFileStructuralInnovationCorrPrior(const int index1_arg,
+                                       const int index2_arg,
+                                       const string shape_arg,
+                                       const double mean_arg,
+                                       const double stdev_arg,
+                                       const double variance_arg,
+                                       const double mode_arg,
+                                       const vector <double> domain_arg);
+};
+
+class ModFileMeasurementErrorCorrPrior : public BasicModFilePrior
+{
+private:
+  const int index2;
+public:
+  ModFileMeasurementErrorCorrPrior(const int index1_arg,
+                                   const int index2_arg,
+                                   const string shape_arg,
+                                   const double mean_arg,
+                                   const double stdev_arg,
+                                   const double variance_arg,
+                                   const double mode_arg,
+                                   const vector <double> domain_arg);
+};
+
+class BasicModFileOption
+{
+private:
+  inline bool isnan(double x) const { return (x!=x); };
+protected:
+  const int index;
+  const double init;
+
+  BasicModFileOption(const int index_arg,
+                     const double init_arg);
+public:
+  inline int get_index() const { return index; };
+  inline double get_init() const { return init; };
+};
+
+class ModFileOption : public BasicModFileOption
+{
+public:
+  ModFileOption(const int index_arg,
+                const double init_arg);
+};
+
+class ModFileStructuralInnovationOption: public BasicModFileOption
+{
+public:
+  ModFileStructuralInnovationOption(const int index_arg,
+                                    const double init_arg);
+};
+
+class ModFileMeasurementErrorOption : public BasicModFileOption
+{
+public:
+  ModFileMeasurementErrorOption(const int index_arg,
+                                const double init_arg);
+};
+
+class ModFileStructuralInnovationCorrOption : public BasicModFileOption
+{
+private:
+  const int index2;
+public:
+  ModFileStructuralInnovationCorrOption(const int index1_arg,
+                                        const int index2_arg,
+                                        const double init_arg);
+};
+
+class ModFileMeasurementErrorCorrOption : public BasicModFileOption
+{
+private:
+  const int index2;
+public:
+  ModFileMeasurementErrorCorrOption(const int index1_arg,
+                                    const int index2_arg,
+                                    const double init_arg);
+};
+
+class DynareInfo
+{
+private:
+  vector<MarkovSwitching *> markov_switching_vector;
+  vector<ModFilePrior *> prior_vector;
+  vector<ModFileStructuralInnovationPrior *> structural_innovation_prior_vector;
+  vector<ModFileMeasurementErrorPrior *> measurement_error_prior_vector;
+  vector<ModFileStructuralInnovationCorrPrior *> structural_innovation_corr_prior_vector;
+  vector<ModFileMeasurementErrorCorrPrior *> measurement_error_corr_prior_vector;
+  vector<ModFileOption *> option_vector;
+  vector<ModFileStructuralInnovationOption *> structural_innovation_option_vector;
+  vector<ModFileMeasurementErrorOption *> measurement_error_option_vector;
+  vector<ModFileStructuralInnovationCorrOption *> structural_innovation_corr_option_vector;
+  vector<ModFileMeasurementErrorCorrOption *> measurement_error_corr_option_vector;
+  map<string, int > exo_names, exo_det_names, endo_names, param_names;
+  vector< double > params;
+  vector<aux_vars_t> aux_vars;
+  vector<int> predetermined_variables;
+  vector<int> varobs;
+  vector<size_t> zeta_fwrd, zeta_back, zeta_mixed, zeta_static;
+  vector<int> NNZDerivatives;
+  int endo_nbr, exo_nbr, exo_det_nbr, param_nbr, nstatic, nfwrd, nback, nmixed;
+public:
+  DynareInfo(void); // this function is automatically written by the Dynare preprocessor
+  DynareInfo(map<string, int > exo_names_arg,
+             map<string, int > exo_det_names_arg,
+             map<string, int > endo_names_arg,
+             map<string, int > param_names_arg,
+             vector< double > params_arg,
+             vector<aux_vars_t> aux_vars_arg,
+             vector<int> predetermined_variables_arg,
+             vector<int> varobs_arg,
+             vector<int> NNZDerivatives_arg);
+  ~DynareInfo();
+
+  inline void addMarkovSwitching(MarkovSwitching *ms) { markov_switching_vector.push_back(ms); };
+
+  inline void addPrior(ModFilePrior *p) { prior_vector.push_back(p); };
+  inline void addStructuralInnovationPrior(ModFileStructuralInnovationPrior *sip) { structural_innovation_prior_vector.push_back(sip); };
+  inline void addMeasurementErrorPrior(ModFileMeasurementErrorPrior *mep) { measurement_error_prior_vector.push_back(mep); };
+  inline void addStructuralInnovationCorrPrior(ModFileStructuralInnovationCorrPrior *sicp) { structural_innovation_corr_prior_vector.push_back(sicp); };
+  inline void addMeasurementErrorCorrPrior(ModFileMeasurementErrorCorrPrior *mecp) { measurement_error_corr_prior_vector.push_back(mecp); };
+
+  inline void addOption(ModFileOption *o) { option_vector.push_back(o); };
+  inline void addStructuralInnovationOption(ModFileStructuralInnovationOption *sio) { structural_innovation_option_vector.push_back(sio); };
+  inline void addMeasurementErrorOption(ModFileMeasurementErrorOption *meo) { measurement_error_option_vector.push_back(meo); };
+  inline void addStructuralInnovationCorrOption(ModFileStructuralInnovationCorrOption *sico) { structural_innovation_corr_option_vector.push_back(sico); };
+  inline void addMeasurementErrorCorrOption(ModFileMeasurementErrorCorrOption *meco) { measurement_error_corr_option_vector.push_back(meco); };
+
+  inline bool markov_switching_has_val() { return !markov_switching_vector.empty(); };
+  inline bool prior_has_val() { return !prior_vector.empty(); };
+  inline bool structural_innovation_prior_has_val() { return !structural_innovation_prior_vector.empty(); };
+  inline bool measurement_error_prior_has_val() { return !measurement_error_prior_vector.empty(); };
+  inline bool structural_innovation_corr_prior_has_val() { return !structural_innovation_corr_prior_vector.empty(); };
+  inline bool measurement_error_corr_prior_has_val() { return !measurement_error_corr_prior_vector.empty(); };
+
+  inline bool option_has_val() { return !option_vector.empty(); };
+  inline bool structural_innovation_option_has_val() { return !structural_innovation_option_vector.empty(); };
+  inline bool measurement_error_option_has_val() { return !measurement_error_option_vector.empty(); };
+  inline bool structural_innovation_corr_option_has_val() { return !structural_innovation_corr_option_vector.empty(); };
+  inline bool measurement_error_corr_option_has_val() { return !measurement_error_corr_option_vector.empty(); };
+
+  inline vector<MarkovSwitching *>get_markov_switching() { return markov_switching_vector; };
+  inline vector<ModFilePrior *> get_prior() { return prior_vector; };
+  inline vector<ModFileStructuralInnovationPrior *> get_structural_innovation_prior() { return structural_innovation_prior_vector; };
+  inline vector<ModFileMeasurementErrorPrior *> get_measurement_error_prior() { return measurement_error_prior_vector; };
+  inline vector<ModFileStructuralInnovationCorrPrior *> get_structural_innovation_corr_prior() { return structural_innovation_corr_prior_vector; };
+  inline vector<ModFileMeasurementErrorCorrPrior *> get_measurement_error_corr_prior() { return measurement_error_corr_prior_vector; };
+
+  inline vector<ModFileOption *> get_option() { return option_vector; };
+  inline vector<ModFileStructuralInnovationOption *> get_structural_innovation_option() { return structural_innovation_option_vector; };
+  inline vector<ModFileMeasurementErrorOption *> get_measurement_error_option() { return measurement_error_option_vector; };
+  inline vector<ModFileStructuralInnovationCorrOption *> get_structural_innovation_corr_option() { return structural_innovation_corr_option_vector; };
+  inline vector<ModFileMeasurementErrorCorrOption *> get_measurement_error_corr_option() { return measurement_error_corr_option_vector; };
+
+  inline map<string, int > get_exo_names() { return exo_names; };
+  inline map<string, int > get_exo_det_names() { return exo_det_names; };
+  inline map<string, int > get_endo_names() { return endo_names; };
+  inline map<string, int > get_param_names() { return param_names; };
+  inline vector<double> get_params() { return params; };
+  inline double *get_params_data(void) { return params.data(); };
+  inline vector <aux_vars_t> get_aux_vars() { return aux_vars; };
+  inline vector <int> get_predetermined_variables() { return predetermined_variables; };
+  inline vector <int> get_varobs() { return varobs; };
+  inline vector<int> get_NNZDerivatives() { return NNZDerivatives; };
+
+  inline int get_endo_nbr(void) { return endo_nbr; };
+  inline int get_exo_nbr(void) { return exo_nbr; };
+  inline int get_exo_det_nbr(void) { return exo_det_nbr; };
+  inline int get_param_nbr(void) { return param_nbr; };
+  inline vector<size_t>  get_zeta_back(void) { return zeta_back; };
+  inline vector<size_t>  get_zeta_fwrd(void) { return zeta_fwrd; };
+  inline vector<size_t>  get_zeta_mixed(void) { return zeta_mixed; };
+  inline vector<size_t>  get_zeta_static(void) { return zeta_static; };
+
+  string get_exo_name_by_index(int index) throw (ValueNotSetException);
+  int get_exo_index_by_name(string name) throw (ValueNotSetException);
+  string get_exo_det_name_by_index(int index) throw (ValueNotSetException);
+  int get_exo_det_index_by_name(string name) throw (ValueNotSetException);
+  string get_endo_name_by_index(int index) throw (ValueNotSetException);
+  int get_endo_index_by_name(string name) throw (ValueNotSetException);
+  string get_param_name_by_index(int index) throw (ValueNotSetException);
+  int get_param_index_by_name(string name) throw (ValueNotSetException);
+  double get_param_value_by_index(int index) throw (ValueNotSetException);
+
+};
+
+#endif // ! _DYNARE_CPP_DRIVER_HH
diff --git a/others/cpp/ms_dsge_c_driver.cc b/others/cpp/ms_dsge_c_driver.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6815205312b12c870e39226bb1245a7febf50fb1
--- /dev/null
+++ b/others/cpp/ms_dsge_c_driver.cc
@@ -0,0 +1,418 @@
+/*
+ * Copyright (C) 2011-2012 Houtan Bastani, Daniel Waggoner, Tao Zha
+ *
+ * This 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 code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * More information is available at <http://www.gnu.org/licenses/>.
+ */
+
+#include <cstdlib>
+#include <vector>
+#include <string>
+#include <iostream>
+#include <assert.h>
+
+using namespace std;
+
+#include "ms_dsge_c_driver.hh"
+
+MsDsgeInfo::MsDsgeInfo(map<string, int > exo_names_arg,
+                       map<string, int > exo_det_names_arg,
+                       map<string, int > endo_names_arg,
+                       map<string, int > param_names_arg,
+                       map<int, double > params_arg,
+                       vector<aux_vars_t> aux_vars_arg,
+                       vector<int> predetermined_variables_arg,
+                       vector<int> varobs_arg,
+                       vector<vector<int > > lead_lag_incidence_arg,
+                       vector<double> NNZDerivatives_arg) :
+  exo_names(exo_names_arg),
+  exo_det_names(exo_det_names_arg),
+  endo_names(endo_names_arg),
+  param_names(param_names_arg),
+  params(params_arg),
+  aux_vars(aux_vars_arg),
+  predetermined_variables(predetermined_variables_arg),
+  varobs(varobs_arg),
+  lead_lag_incidence(lead_lag_incidence_arg),
+  NNZDerivatives(NNZDerivatives_arg)
+{
+}
+
+MsDsgeInfo::~MsDsgeInfo()
+{
+  for (vector<MarkovSwitching *>::iterator it = markov_switching_vector.begin();
+       it < markov_switching_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFilePrior *>::iterator it = prior_vector.begin();
+       it < prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileStructuralInnovationPrior *>::iterator it = structural_innovation_prior_vector.begin();
+       it < structural_innovation_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileMeasurementErrorPrior *>::iterator it = measurement_error_prior_vector.begin();
+       it < measurement_error_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileStructuralInnovationCorrPrior *>::iterator it = structural_innovation_corr_prior_vector.begin();
+       it < structural_innovation_corr_prior_vector.end(); it++ )
+    delete *it;
+
+  for (vector<ModFileMeasurementErrorCorrPrior *>::iterator it = measurement_error_corr_prior_vector.begin();
+       it < measurement_error_corr_prior_vector.end(); it++ )
+    delete *it;
+
+  markov_switching_vector.clear();
+  prior_vector.clear();
+  structural_innovation_prior_vector.clear();
+  measurement_error_prior_vector.clear();
+  structural_innovation_corr_prior_vector.clear();
+  measurement_error_corr_prior_vector.clear();
+  exo_names.clear();
+  exo_det_names.clear();
+  endo_names.clear();
+  param_names.clear();
+  params.clear();
+  aux_vars.clear();
+  predetermined_variables.clear();
+  varobs.clear();
+  lead_lag_incidence.clear();
+  NNZDerivatives.clear();
+}
+
+string
+MsDsgeInfo::get_exo_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = exo_names.begin();
+       it != exo_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_exo_name_by_index" + index);
+}
+
+int
+MsDsgeInfo::get_exo_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = exo_names.find(name);
+  if (it != exo_names.end())
+    return it->second;
+  throw ValueNotSetException("get_exo_name_by_name" + name);
+}
+
+string
+MsDsgeInfo::get_exo_det_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = exo_det_names.begin();
+       it != exo_det_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_exo_det_name_by_index" + index);
+}
+
+int
+MsDsgeInfo::get_exo_det_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = exo_det_names.find(name);
+  if (it != exo_det_names.end())
+    return it->second;
+  throw ValueNotSetException("get_exo_det_name_by_name" + name);
+}
+
+string
+MsDsgeInfo::get_endo_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = endo_names.begin();
+       it != endo_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_endo_name_by_index" + index);
+}
+
+int
+MsDsgeInfo::get_endo_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = endo_names.find(name);
+  if (it != endo_names.end())
+    return it->second;
+  throw ValueNotSetException("get_endo_name_by_name" + name);
+}
+
+string
+MsDsgeInfo::get_param_name_by_index(int index) throw (ValueNotSetException)
+{
+  for (map<string, int >::iterator it = param_names.begin();
+       it != param_names.end(); it++)
+    if (it->second == index)
+      return it->first;
+  throw ValueNotSetException("get_param_name_by_index" + index);
+}
+
+int
+MsDsgeInfo::get_param_index_by_name(string name) throw (ValueNotSetException)
+{
+  map<string, int >::iterator it = param_names.find(name);
+  if (it != param_names.end())
+    return it->second;
+  throw ValueNotSetException("get_param_name_by_name" + name);
+}
+
+double
+MsDsgeInfo::get_param_value_by_index(int index) throw (ValueNotSetException)
+{
+  map<int, double >::iterator it = params.find(index);
+  if (it != params.end())
+    return it->second;
+  throw ValueNotSetException("get_param_value_by_index" + index);
+}
+
+vector<int >
+MsDsgeInfo::get_lead_lag_incidence_for_endo_var_by_index(int index) throw (ValueNotSetException)
+{
+  if (index < lead_lag_incidence.size())
+    return lead_lag_incidence.at(index);
+  throw ValueNotSetException("get_lead_lag_incidence_for_endo_var_by_index" + index);
+}
+
+MarkovSwitching::MarkovSwitching(const int chain_arg,
+                                 const int number_of_regimes_arg,
+                                 const int number_of_lags_arg,
+                                 const bool number_of_lags_was_passed_arg,
+                                 const vector<int> parameters_arg,
+                                 const vector<double> duration_arg,
+                                 const restriction_map_t restriction_map_arg) :
+  chain(chain_arg),
+  number_of_regimes(number_of_regimes_arg),
+  number_of_lags(number_of_lags_arg),
+  number_of_lags_was_passed(number_of_lags_was_passed_arg),
+  parameters(parameters_arg),
+  duration(duration_arg),
+  restriction_map(restriction_map_arg)
+{
+  assert(chain >= 1);
+  assert(number_of_regimes > 0);
+  if (number_of_lags_was_passed)
+    assert(number_of_lags > 0);
+  assert(!parameters.empty());
+  assert(!duration.empty());
+}
+
+int
+MarkovSwitching::get_number_of_lags() throw (ValueNotSetException)
+{
+  if (number_of_lags_has_val())
+    return number_of_lags;
+  throw ValueNotSetException("number_of_lags");
+}
+
+restriction_map_t
+MarkovSwitching::get_restriction_map() throw (ValueNotSetException)
+{
+  if (restriction_map_has_val())
+    return restriction_map;
+  throw ValueNotSetException("restriction_map");
+}
+
+BasicModFilePrior::BasicModFilePrior(const int index_arg,
+                                     const string shape_arg,
+                                     const double mean_arg,
+                                     const double mode_arg,
+                                     const double stdev_arg,
+                                     const double variance_arg,
+                                     const vector <double> domain_arg) :
+  index(index_arg),
+  shape(shape_arg),
+  mean(mean_arg),
+  mode(mode_arg),
+  stdev(stdev_arg),
+  variance(variance_arg),
+  domain(domain_arg)
+{
+  assert(index >= 0);
+  assert(!shape.empty());
+  if (stdev_has_val())
+    assert(stdev >= 0);
+  if (variance_has_val())
+    assert(variance >= 0);
+  if (domain_has_val())
+    assert(domain.size() == 2);
+}
+
+double
+BasicModFilePrior::get_mean() throw (ValueNotSetException)
+{
+  if (mean_has_val())
+    return mean;
+  throw ValueNotSetException("mean");
+};
+
+double
+BasicModFilePrior::get_mode() throw (ValueNotSetException)
+{
+  if (mode_has_val())
+    return mode;
+  throw ValueNotSetException("mode");
+};
+
+double
+BasicModFilePrior::get_stdev() throw (ValueNotSetException)
+{
+  if (stdev_has_val())
+    return stdev;
+  throw ValueNotSetException("stdev");
+};
+
+double
+BasicModFilePrior::get_variance() throw (ValueNotSetException)
+{
+  if (variance_has_val())
+    return variance;
+  throw ValueNotSetException("variance");
+};
+
+vector<double>
+BasicModFilePrior::get_domain() throw (ValueNotSetException)
+{
+  if (domain_has_val())
+    return domain;
+  throw ValueNotSetException("domain");
+};
+
+ModFilePrior::ModFilePrior(const int index_arg,
+                           const string shape_arg,
+                           const double mean_arg,
+                           const double mode_arg,
+                           const double stdev_arg,
+                           const double variance_arg,
+                           const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileStructuralInnovationPrior::ModFileStructuralInnovationPrior(const int index_arg,
+                                                                   const string shape_arg,
+                                                                   const double mean_arg,
+                                                                   const double stdev_arg,
+                                                                   const double variance_arg,
+                                                                   const double mode_arg,
+                                                                   const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileMeasurementErrorPrior::ModFileMeasurementErrorPrior(const int index_arg,
+                                                           const string shape_arg,
+                                                           const double mean_arg,
+                                                           const double stdev_arg,
+                                                           const double variance_arg,
+                                                           const double mode_arg,
+                                                           const vector <double> domain_arg) :
+  BasicModFilePrior(index_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg)
+{
+}
+
+ModFileStructuralInnovationCorrPrior::ModFileStructuralInnovationCorrPrior(const int index1_arg,
+                                                                           const int index2_arg,
+                                                                           const string shape_arg,
+                                                                           const double mean_arg,
+                                                                           const double stdev_arg,
+                                                                           const double variance_arg,
+                                                                           const double mode_arg,
+                                                                           const vector <double> domain_arg) :
+  BasicModFilePrior(index1_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+ModFileMeasurementErrorCorrPrior::ModFileMeasurementErrorCorrPrior(const int index1_arg,
+                                                                   const int index2_arg,
+                                                                   const string shape_arg,
+                                                                   const double mean_arg,
+                                                                   const double stdev_arg,
+                                                                   const double variance_arg,
+                                                                   const double mode_arg,
+                                                                   const vector <double> domain_arg) :
+  BasicModFilePrior(index1_arg,
+                    shape_arg,
+                    mean_arg,
+                    mode_arg,
+                    stdev_arg,
+                    variance_arg,
+                    domain_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+BasicModFileOption::BasicModFileOption(const int index_arg,
+                                       const double init_arg) :
+  index(index_arg),
+  init(init_arg)
+{
+  assert(index >= 0);
+  assert(!isnan(init));
+}
+
+ModFileOption::ModFileOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileStructuralInnovationOption::ModFileStructuralInnovationOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileMeasurementErrorOption::ModFileMeasurementErrorOption(const int index_arg, const double init_arg) :
+  BasicModFileOption(index_arg, init_arg)
+{
+}
+
+ModFileStructuralInnovationCorrOption::ModFileStructuralInnovationCorrOption(const int index1_arg, const int index2_arg, const double init_arg) :
+  BasicModFileOption(index1_arg, init_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
+
+ModFileMeasurementErrorCorrOption::ModFileMeasurementErrorCorrOption(const int index1_arg, const int index2_arg, const double init_arg) :
+  BasicModFileOption(index1_arg, init_arg),
+  index2(index2_arg)
+{
+  assert(index2 >= 0);
+}
diff --git a/others/cpp/ms_dsge_c_driver.hh b/others/cpp/ms_dsge_c_driver.hh
new file mode 100644
index 0000000000000000000000000000000000000000..9e968b4b6cc08261e76c6cd6944d83b315220ffe
--- /dev/null
+++ b/others/cpp/ms_dsge_c_driver.hh
@@ -0,0 +1,323 @@
+/*
+ * Copyright (C) 2011-2012 Houtan Bastani, Daniel Waggoner, Tao Zha
+ *
+ * This 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 code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * More information is available at <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _DYNARE_CPP_DRIVER_HH
+#define _DYNARE_CPP_DRIVER_HH
+
+#include <cstdlib>
+#include <vector>
+#include <string>
+#include <map>
+#include <limits>
+
+using namespace std;
+
+struct aux_vars_t {
+  int endo_index, type, orig_index, orig_lead_lag;
+} ;
+
+typedef map<pair<int, int >, double> restriction_map_t ;
+
+class ValueNotSetException
+{
+public:
+  string name;
+  ValueNotSetException(const string &name_arg) : name(name_arg)
+  {
+  }
+};
+
+class MarkovSwitching
+{
+private:
+  const int chain, number_of_regimes, number_of_lags;
+  const bool number_of_lags_was_passed;
+  const vector<int> parameters;
+  const vector<double> duration;
+  const restriction_map_t restriction_map;
+public:
+  MarkovSwitching(const int chain_arg,
+                  const int number_of_regimes_arg,
+                  const int number_of_lags_arg,
+                  const bool number_of_lags_was_passed_arg,
+                  const vector<int> parameters_arg,
+                  const vector<double> duration_arg,
+                  const restriction_map_t restriction_map_arg);
+
+  inline bool number_of_lags_has_val() const { return number_of_lags_was_passed; };
+  inline bool restriction_map_has_val() const { return !restriction_map.empty(); };
+
+  inline int get_chain() const { return chain; };
+  inline int get_number_of_regimes() const { return number_of_regimes; };
+  int get_number_of_lags() throw (ValueNotSetException);
+  inline vector<int> get_parameters() { return parameters; };
+  inline vector<double> get_duration() { return duration; };
+  restriction_map_t get_restriction_map() throw (ValueNotSetException);
+};
+
+class BasicModFilePrior
+{
+private:
+  inline bool isnan(double x) const { return (x!=x); };
+protected:
+  const int index;
+  const string shape;
+  const double mean, mode, stdev, variance;
+  const vector <double> domain;
+
+  BasicModFilePrior(const int index_arg,
+                    const string shape_arg,
+                    const double mean_arg,
+                    const double mode_arg,
+                    const double stdev_arg,
+                    const double variance_arg,
+                    const vector <double> domain_arg);
+public:
+  inline bool mean_has_val() const { return !isnan(mean); };
+  inline bool mode_has_val() const { return !isnan(mode); };
+  inline bool stdev_has_val() const { return !isnan(stdev); };
+  inline bool variance_has_val() const { return !isnan(variance); };
+  inline bool domain_has_val() const { return (domain.size() == 2); };
+
+  inline int get_index() const { return index; };
+  inline string get_shape() const { return shape; };
+  double get_mean() throw (ValueNotSetException);
+  double get_mode() throw (ValueNotSetException);
+  double get_stdev() throw (ValueNotSetException);
+  double get_variance() throw (ValueNotSetException);
+  vector<double> get_domain() throw (ValueNotSetException);
+};
+
+class ModFilePrior : public BasicModFilePrior
+{
+public:
+  ModFilePrior(const int index_arg,
+               const string shape_arg,
+               const double mean_arg,
+               const double mode_arg,
+               const double stdev_arg,
+               const double variance_arg,
+               const vector <double> domain_arg);
+};
+
+class ModFileStructuralInnovationPrior: public BasicModFilePrior
+{
+public:
+  ModFileStructuralInnovationPrior(const int index_arg,
+                                   const string shape_arg,
+                                   const double mean_arg,
+                                   const double mode_arg,
+                                   const double stdev_arg,
+                                   const double variance_arg,
+                                   const vector <double> domain_arg);
+};
+
+class ModFileMeasurementErrorPrior : public BasicModFilePrior
+{
+public:
+  ModFileMeasurementErrorPrior(const int index_arg,
+                               const string shape_arg,
+                               const double mean_arg,
+                               const double stdev_arg,
+                               const double variance_arg,
+                               const double mode_arg,
+                               const vector <double> domain_arg);
+};
+
+class ModFileStructuralInnovationCorrPrior : public BasicModFilePrior
+{
+private:
+  const int index2;
+public:
+  ModFileStructuralInnovationCorrPrior(const int index1_arg,
+                                       const int index2_arg,
+                                       const string shape_arg,
+                                       const double mean_arg,
+                                       const double stdev_arg,
+                                       const double variance_arg,
+                                       const double mode_arg,
+                                       const vector <double> domain_arg);
+};
+
+class ModFileMeasurementErrorCorrPrior : public BasicModFilePrior
+{
+private:
+  const int index2;
+public:
+  ModFileMeasurementErrorCorrPrior(const int index1_arg,
+                                   const int index2_arg,
+                                   const string shape_arg,
+                                   const double mean_arg,
+                                   const double stdev_arg,
+                                   const double variance_arg,
+                                   const double mode_arg,
+                                   const vector <double> domain_arg);
+};
+
+class BasicModFileOption
+{
+private:
+  inline bool isnan(double x) const { return (x!=x); };
+protected:
+  const int index;
+  const double init;
+
+  BasicModFileOption(const int index_arg,
+                     const double init_arg);
+public:
+  inline int get_index() const { return index; };
+  inline double get_init() const { return init; };
+};
+
+class ModFileOption : public BasicModFileOption
+{
+public:
+  ModFileOption(const int index_arg,
+                const double init_arg);
+};
+
+class ModFileStructuralInnovationOption: public BasicModFileOption
+{
+public:
+  ModFileStructuralInnovationOption(const int index_arg,
+                                    const double init_arg);
+};
+
+class ModFileMeasurementErrorOption : public BasicModFileOption
+{
+public:
+  ModFileMeasurementErrorOption(const int index_arg,
+                                const double init_arg);
+};
+
+class ModFileStructuralInnovationCorrOption : public BasicModFileOption
+{
+private:
+  const int index2;
+public:
+  ModFileStructuralInnovationCorrOption(const int index1_arg,
+                                        const int index2_arg,
+                                        const double init_arg);
+};
+
+class ModFileMeasurementErrorCorrOption : public BasicModFileOption
+{
+private:
+  const int index2;
+public:
+  ModFileMeasurementErrorCorrOption(const int index1_arg,
+                                    const int index2_arg,
+                                    const double init_arg);
+};
+
+class DynareInfo
+{
+private:
+  vector<MarkovSwitching *> markov_switching_vector;
+  vector<ModFilePrior *> prior_vector;
+  vector<ModFileStructuralInnovationPrior *> structural_innovation_prior_vector;
+  vector<ModFileMeasurementErrorPrior *> measurement_error_prior_vector;
+  vector<ModFileStructuralInnovationCorrPrior *> structural_innovation_corr_prior_vector;
+  vector<ModFileMeasurementErrorCorrPrior *> measurement_error_corr_prior_vector;
+  vector<ModFileOption *> option_vector;
+  vector<ModFileStructuralInnovationOption *> structural_innovation_option_vector;
+  vector<ModFileMeasurementErrorOption *> measurement_error_option_vector;
+  vector<ModFileStructuralInnovationCorrOption *> structural_innovation_corr_option_vector;
+  vector<ModFileMeasurementErrorCorrOption *> measurement_error_corr_option_vector;
+  map<string, int > exo_names, exo_det_names, endo_names, param_names;
+  map<int, double > params;
+  vector<aux_vars_t> aux_vars;
+  vector<int> predetermined_variables;
+  vector<int> varobs;
+  vector<vector<int > >lead_lag_incidence;
+  vector<double> NNZDerivatives;
+public:
+  DynareInfo(map<string, int > exo_names_arg,
+             map<string, int > exo_det_names_arg,
+             map<string, int > endo_names_arg,
+             map<string, int > param_names_arg,
+             map<int, double > params_arg,
+             vector<aux_vars_t> aux_vars_arg,
+             vector<int> predetermined_variables_arg,
+             vector<int> varobs_arg,
+             vector<vector<int > > lead_lag_incidence_arg,
+             vector<double> NNZDerivatives_arg);
+  ~DynareInfo();
+
+  inline void addMarkovSwitching(MarkovSwitching *ms) { markov_switching_vector.push_back(ms); };
+
+  inline void addPrior(ModFilePrior *p) { prior_vector.push_back(p); };
+  inline void addStructuralInnovationPrior(ModFileStructuralInnovationPrior *sip) { structural_innovation_prior_vector.push_back(sip); };
+  inline void addMeasurementErrorPrior(ModFileMeasurementErrorPrior *mep) { measurement_error_prior_vector.push_back(mep); };
+  inline void addStructuralInnovationCorrPrior(ModFileStructuralInnovationCorrPrior *sicp) { structural_innovation_corr_prior_vector.push_back(sicp); };
+  inline void addMeasurementErrorCorrPrior(ModFileMeasurementErrorCorrPrior *mecp) { measurement_error_corr_prior_vector.push_back(mecp); };
+
+  inline void addOption(ModFileOption *o) { option_vector.push_back(o); };
+  inline void addStructuralInnovationOption(ModFileStructuralInnovationOption *sio) { structural_innovation_option_vector.push_back(sio); };
+  inline void addMeasurementErrorOption(ModFileMeasurementErrorOption *meo) { measurement_error_option_vector.push_back(meo); };
+  inline void addStructuralInnovationCorrOption(ModFileStructuralInnovationCorrOption *sico) { structural_innovation_corr_option_vector.push_back(sico); };
+  inline void addMeasurementErrorCorrOption(ModFileMeasurementErrorCorrOption *meco) { measurement_error_corr_option_vector.push_back(meco); };
+
+  inline bool markov_switching_has_val() { return !markov_switching_vector.empty(); };
+  inline bool prior_has_val() { return !prior_vector.empty(); };
+  inline bool structural_innovation_prior_has_val() { return !structural_innovation_prior_vector.empty(); };
+  inline bool measurement_error_prior_has_val() { return !measurement_error_prior_vector.empty(); };
+  inline bool structural_innovation_corr_prior_has_val() { return !structural_innovation_corr_prior_vector.empty(); };
+  inline bool measurement_error_corr_prior_has_val() { return !measurement_error_corr_prior_vector.empty(); };
+
+  inline bool option_has_val() { return !option_vector.empty(); };
+  inline bool structural_innovation_option_has_val() { return !structural_innovation_option_vector.empty(); };
+  inline bool measurement_error_option_has_val() { return !measurement_error_option_vector.empty(); };
+  inline bool structural_innovation_corr_option_has_val() { return !structural_innovation_corr_option_vector.empty(); };
+  inline bool measurement_error_corr_option_has_val() { return !measurement_error_corr_option_vector.empty(); };
+
+  inline vector<MarkovSwitching *>get_markov_switching() { return markov_switching_vector; };
+  inline vector<ModFilePrior *> get_prior() { return prior_vector; };
+  inline vector<ModFileStructuralInnovationPrior *> get_structural_innovation_prior() { return structural_innovation_prior_vector; };
+  inline vector<ModFileMeasurementErrorPrior *> get_measurement_error_prior() { return measurement_error_prior_vector; };
+  inline vector<ModFileStructuralInnovationCorrPrior *> get_structural_innovation_corr_prior() { return structural_innovation_corr_prior_vector; };
+  inline vector<ModFileMeasurementErrorCorrPrior *> get_measurement_error_corr_prior() { return measurement_error_corr_prior_vector; };
+
+  inline vector<ModFileOption *> get_option() { return option_vector; };
+  inline vector<ModFileStructuralInnovationOption *> get_structural_innovation_option() { return structural_innovation_option_vector; };
+  inline vector<ModFileMeasurementErrorOption *> get_measurement_error_option() { return measurement_error_option_vector; };
+  inline vector<ModFileStructuralInnovationCorrOption *> get_structural_innovation_corr_option() { return structural_innovation_corr_option_vector; };
+  inline vector<ModFileMeasurementErrorCorrOption *> get_measurement_error_corr_option() { return measurement_error_corr_option_vector; };
+
+  inline map<string, int > get_exo_names() { return exo_names; };
+  inline map<string, int > get_exo_det_names() { return exo_det_names; };
+  inline map<string, int > get_endo_names() { return endo_names; };
+  inline map<string, int > get_param_names() { return param_names; };
+  inline map<int, double > get_params() { return params; };
+  inline vector <aux_vars_t> get_aux_vars() { return aux_vars; };
+  inline vector <int> get_predetermined_variables() { return predetermined_variables; };
+  inline vector <int> get_varobs() { return varobs; };
+  inline vector<vector<int > > get_lead_lag_incidence() { return lead_lag_incidence; };
+  inline vector<double> get_NNZDerivatives() { return NNZDerivatives; };
+
+  string get_exo_name_by_index(int index) throw (ValueNotSetException);
+  int get_exo_index_by_name(string name) throw (ValueNotSetException);
+  string get_exo_det_name_by_index(int index) throw (ValueNotSetException);
+  int get_exo_det_index_by_name(string name) throw (ValueNotSetException);
+  string get_endo_name_by_index(int index) throw (ValueNotSetException);
+  int get_endo_index_by_name(string name) throw (ValueNotSetException);
+  string get_param_name_by_index(int index) throw (ValueNotSetException);
+  int get_param_index_by_name(string name) throw (ValueNotSetException);
+  double get_param_value_by_index(int index) throw (ValueNotSetException);
+  vector<int >get_lead_lag_incidence_for_endo_var_by_index(int index) throw (ValueNotSetException);
+};
+
+#endif // ! _DYNARE_CPP_DRIVER_HH
diff --git a/others/cpp/tests/.gitignore b/others/cpp/tests/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..3d4fa420d1fa563153aaf12d54ce14ebe6f64936
--- /dev/null
+++ b/others/cpp/tests/.gitignore
@@ -0,0 +1,5 @@
+*.c
+*.cc
+*.m
+
+!test1.cc
diff --git a/others/cpp/tests/Makefile b/others/cpp/tests/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..e33f0d86b2d1fd7ff2ae477fdd8da17381ff18b5
--- /dev/null
+++ b/others/cpp/tests/Makefile
@@ -0,0 +1,39 @@
+DYNARE=../../../matlab/dynare_m
+am_test_dr_OBJECTS = test_dr-Matrix.$(OBJEXT) test_dr-Vector.$(OBJEXT) \
+	test_dr-QRDecomposition.$(OBJEXT) \
+	test_dr-GeneralizedSchurDecomposition.$(OBJEXT) \
+	test_dr-LUSolver.$(OBJEXT) test_dr-DecisionRules.$(OBJEXT) \
+	test_dr-test-dr.$(OBJEXT)
+
+all: test1
+Matrix.o : ../../../mex/sources/estimation/libmat/Matrix.cc
+	gcc -g -c ../../../mex/sources/estimation/libmat/Matrix.cc -I.. -I../../../mex/sources -I../../../mex/sources/estimation -I../../../mex/sources/estimation/libmat
+Vector.o : ../../../mex/sources/estimation/libmat/Vector.cc
+	gcc -g -c ../../../mex/sources/estimation/libmat/Vector.cc -I.. -I../../../mex/sources -I../../../mex/sources/estimation -I../../../mex/sources/estimation/libmat
+QRDecomposition.o : ../../../mex/sources/estimation/libmat/QRDecomposition.cc
+	gcc -g -c ../../../mex/sources/estimation/libmat/QRDecomposition.cc -I.. -I../../../mex/sources -I../../../mex/sources/estimation -I../../../mex/sources/estimation/libmat
+GeneralizedSchurDecomposition.o : ../../../mex/sources/estimation/libmat/GeneralizedSchurDecomposition.cc
+	gcc -g -c ../../../mex/sources/estimation/libmat/GeneralizedSchurDecomposition.cc -I.. -I../../../mex/sources -I../../../mex/sources/estimation -I../../../mex/sources/estimation/libmat
+LUSolver.o : ../../../mex/sources/estimation/libmat/LUSolver.cc
+	gcc -g -c ../../../mex/sources/estimation/libmat/LUSolver.cc -I.. -I../../../mex/sources -I../../../mex/sources/estimation -I../../../mex/sources/estimation/libmat
+DecisionRules.o : ../../../mex/sources/estimation/DecisionRules.cc
+	gcc -g -c ../../../mex/sources/estimation/DecisionRules.cc -I../../../mex/sources -I../../../mex/sources/estimation -I../../../mex/sources/estimation/libmat
+
+test1.o : test1.cc ../dynare_cpp_driver.hh ../dynare_cpp_driver.cc
+	gcc -g -c test1.cc -I.. -I../../../mex/sources -I../../../mex/sources/estimation -I../../../mex/sources/estimation/libmat
+dynare_cpp_driver.o: ../dynare_cpp_driver.cc ../dynare_cpp_driver.hh
+	gcc -g -c ../dynare_cpp_driver.cc -I..
+example1.cc example1_steadystate.cc: example1.mod
+	$(DYNARE) example1.mod output=first language=C++
+example1.o: example1.cc
+	gcc -g -c example1.cc -I..
+example1_steadystate.o: example1_steadystate.c
+	gcc -g -c example1_steadystate.c
+example1_first_derivatives.o: example1_first_derivatives.c
+	gcc -g -c example1_first_derivatives.c
+
+test1 : test1.o example1.o example1_steadystate.o example1_first_derivatives.o dynare_cpp_driver.o Matrix.o Vector.o QRDecomposition.o GeneralizedSchurDecomposition.o LUSolver.o DecisionRules.o
+	gcc -g -o test1 test1.o example1.o example1_steadystate.o example1_first_derivatives.o dynare_cpp_driver.o Matrix.o Vector.o QRDecomposition.o GeneralizedSchurDecomposition.o LUSolver.o DecisionRules.o -llapack -lblas -lm -lstdc++
+
+.cc.o:
+	gcc -g -c -o $@ $< -I.. -I../../../mex/sources -I../../../mex/sources/estimation -I../../../mex/sources/estimation/libmat
diff --git a/others/cpp/tests/example1.mod b/others/cpp/tests/example1.mod
new file mode 100644
index 0000000000000000000000000000000000000000..1249be4ba08f8acca8905dfd3e1ba7e1a87b7a38
--- /dev/null
+++ b/others/cpp/tests/example1.mod
@@ -0,0 +1,45 @@
+// Example 1 from Collard's guide to Dynare
+var y, c, k, a, h, b;
+varexo e, u;
+
+parameters beta, rho, alpha, delta, theta, psi, tau;
+
+alpha = 0.36;
+rho   = 0.95;
+tau   = 0.025;
+beta  = 0.99;
+delta = 0.025;
+psi   = 0;
+theta = 2.95;
+
+phi   = 0.1;
+
+model;
+c*theta*h^(1+psi)=(1-alpha)*y;
+k = beta*(((exp(b)*c)/(exp(b(+1))*c(+1)))
+    *(exp(b(+1))*alpha*y(+1)+(1-delta)*k));
+y = exp(a)*(k(-1)^alpha)*(h^(1-alpha));
+k = exp(b)*(y-c)+(1-delta)*k(-1);
+a = rho*a(-1)+tau*b(-1) + e;
+b = tau*a(-1)+rho*b(-1) + u;
+end;
+
+steady_state_model;
+a = 0;
+b = 0;
+k_h = ((1-beta*(1-delta))/(beta*alpha))^(1/(alpha-1));
+y_h = k_h^alpha;
+c_h = y_h - delta*k_h;
+h = (y_h*(1-alpha)/(c_h*theta))^(1/(1+psi));
+k = k_h*h;
+c = c_h*h;
+y = y_h*h;
+end;
+
+shocks;
+var e; stderr 0.009;
+var u; stderr 0.009;
+var e, u = phi*0.009*0.009;
+end;
+
+stoch_simul;
diff --git a/others/cpp/tests/test1.cc b/others/cpp/tests/test1.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0e72ee74d043a2c7ac127e3f7228a7cfb6fba14c
--- /dev/null
+++ b/others/cpp/tests/test1.cc
@@ -0,0 +1,72 @@
+#include <iostream>
+#include "dynare_cpp_driver.hh"
+#include "DecisionRules.hh"
+
+DynareInfo *preprocessorOutput(void);
+extern "C"{
+void steadystate(double const*, double const*, double *, int *);
+void FirstDerivatives(const double *y, double *x, int nb_row_x, double *params, double *steady_state, int it_, double *residual, double *g1, double *v2, double *v3);
+}
+main(int argc, char **argv)
+{
+  DynareInfo model_info;
+
+  int endo_nbr = model_info.get_endo_nbr();
+  int exo_nbr = model_info.get_exo_nbr();
+  double *params = model_info.get_params_data();
+  // Steady state
+  double *steady_state = new double[endo_nbr];
+  int info;
+  steadystate(NULL,params, steady_state, &info);
+  for (int i=0; i < endo_nbr; ++i)
+    std::cout << model_info.get_endo_name_by_index(i) << " " << steady_state[i] << "\n";
+
+  // 1st order approximation
+  double qz_criterium = 1.000001;
+
+  vector<size_t> zeta_back = model_info.get_zeta_back();
+  vector<size_t> zeta_fwrd = model_info.get_zeta_fwrd();
+  vector<size_t> zeta_mixed = model_info.get_zeta_mixed();
+  vector<size_t> zeta_static = model_info.get_zeta_static();
+  int nfwrd = zeta_fwrd.size();
+  int nback = zeta_back.size();
+  int nmixed = zeta_mixed.size();
+  int nstatic = zeta_static.size();
+
+  int jacob_cols = zeta_back.size()+zeta_fwrd.size()+zeta_mixed.size()+exo_nbr;
+
+  double *exo_steady_state = new double[exo_nbr];
+  double *jacob_data = new double[endo_nbr*jacob_cols];
+
+  FirstDerivatives(steady_state, exo_steady_state, 0, params, steady_state, 1, NULL, jacob_data, NULL, NULL);
+
+  DecisionRules dr(endo_nbr, exo_nbr, zeta_fwrd, zeta_back, zeta_mixed,
+                   zeta_static, qz_criterium);
+
+  int sdyn = nfwrd + nback + 2*nmixed;
+  int jacobian_col_nbr = sdyn + endo_nbr + exo_nbr;
+  MatrixView jacob_tmp(jacob_data, endo_nbr, jacobian_col_nbr, endo_nbr);
+
+  Matrix jacobian(endo_nbr, jacobian_col_nbr), g_y(endo_nbr, nback+nmixed), g_u(endo_nbr, exo_nbr);
+  jacobian = jacob_tmp;
+
+  try
+    {
+      dr.compute(jacobian, g_y, g_u);
+    }
+  catch (GeneralizedSchurDecomposition::GSDException &e)
+    {
+      std::cerr << e << std::endl;
+    }
+  catch (DecisionRules::BlanchardKahnException &e)
+    {
+      std::cerr << e << std::endl;
+    }
+
+  Vector eig_real(sdyn), eig_cmplx(sdyn);
+  dr.getGeneralizedEigenvalues(eig_real, eig_cmplx);
+  std::cout << "Eigenvalues (real part): " << eig_real
+            << "Eigenvalues (complex part): " << eig_cmplx << std::endl
+            << "g_y = " << std::endl << g_y << std::endl
+            << "g_u = " << std::endl << g_u;
+}
diff --git a/preprocessor/CodeInterpreter.hh b/preprocessor/CodeInterpreter.hh
index e4e3e103196def601c6a50c528b3375d2adceaf7..d39567b83ad8bd7c09f119c46ebe1941d26d7806 100644
--- a/preprocessor/CodeInterpreter.hh
+++ b/preprocessor/CodeInterpreter.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Dynare Team
+ * Copyright (C) 2007-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -245,7 +245,8 @@ enum PriorDistributions
     eInvGamma = 4,
     eInvGamma1 = 4,
     eUniform = 5,
-    eInvGamma2 = 6
+    eInvGamma2 = 6,
+    eDirichlet = 7
   };
 
 struct Block_contain_type
diff --git a/preprocessor/ComputingTasks.cc b/preprocessor/ComputingTasks.cc
index d3c711605f7c52a5e5cd36a867c03272147881e6..b2aed95533649371f67b6f29b6aa47f66498473d 100644
--- a/preprocessor/ComputingTasks.cc
+++ b/preprocessor/ComputingTasks.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -94,17 +94,45 @@ SimulStatement::SimulStatement(const OptionsList &options_list_arg) :
 void
 SimulStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
 {
-  mod_file_struct.simul_present = true;
-
-  // The following is necessary to allow shocks+endval+simul in a loop
-  mod_file_struct.shocks_present_but_simul_not_yet = false;
+  mod_file_struct.perfect_foresight_solver_present = true;
 }
 
 void
 SimulStatement::writeOutput(ostream &output, const string &basename) const
 {
   options_list.writeOutput(output);
-  output << "simul();\n";
+  output << "perfect_foresight_setup;" << endl
+         << "perfect_foresight_solver;" << endl;
+}
+
+PerfectForesightSetupStatement::PerfectForesightSetupStatement(const OptionsList &options_list_arg) :
+  options_list(options_list_arg)
+{
+}
+
+void
+PerfectForesightSetupStatement::writeOutput(ostream &output, const string &basename) const
+{
+  options_list.writeOutput(output);
+  output << "perfect_foresight_setup;" << endl;
+}
+
+PerfectForesightSolverStatement::PerfectForesightSolverStatement(const OptionsList &options_list_arg) :
+  options_list(options_list_arg)
+{
+}
+
+void
+PerfectForesightSolverStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
+{
+  mod_file_struct.perfect_foresight_solver_present = true;
+}
+
+void
+PerfectForesightSolverStatement::writeOutput(ostream &output, const string &basename) const
+{
+  options_list.writeOutput(output);
+  output << "perfect_foresight_solver;" << endl;
 }
 
 StochSimulStatement::StochSimulStatement(const SymbolList &symbol_list_arg,
@@ -160,6 +188,54 @@ ForecastStatement::writeOutput(ostream &output, const string &basename) const
   output << "info = dyn_forecast(var_list_,'simul');" << endl;
 }
 
+RamseyModelStatement::RamseyModelStatement(const SymbolList &symbol_list_arg,
+                                             const OptionsList &options_list_arg) :
+  symbol_list(symbol_list_arg),
+  options_list(options_list_arg)
+{
+}
+
+void
+RamseyModelStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
+{
+  mod_file_struct.ramsey_model_present = true;
+
+  /* Fill in option_order of mod_file_struct
+     Since ramsey model needs one further order of derivation (for example, for 1st order
+     approximation, it needs 2nd derivatives), we add 1 to the order declared by user */
+  OptionsList::num_options_t::const_iterator it = options_list.num_options.find("order");
+  if (it != options_list.num_options.end())
+    {
+      int order = atoi(it->second.c_str());
+      if (order > 2)
+        {
+          cerr << "ERROR: ramsey_model: order > 2 is not  implemented" << endl;
+          exit(EXIT_FAILURE);
+        }
+      mod_file_struct.order_option = max(mod_file_struct.order_option, order + 1);
+    }
+
+  // Fill in mod_file_struct.partial_information
+  it = options_list.num_options.find("partial_information");
+  if (it != options_list.num_options.end() && it->second == "1")
+    mod_file_struct.partial_information = true;
+
+  // Option k_order_solver (implicit when order >= 3)
+  it = options_list.num_options.find("k_order_solver");
+  if ((it != options_list.num_options.end() && it->second == "1")
+      || mod_file_struct.order_option >= 3)
+    mod_file_struct.k_order_solver = true;
+}
+
+void
+RamseyModelStatement::writeOutput(ostream &output, const string &basename) const
+{
+  // options_.ramsey_policy indicates that a Ramsey model is present in the *.mod file
+  // this affects the computation of the steady state that uses a special algorithm
+  // It should probably rather be a M_ field, but we leave it in options_ for historical reason
+  output << "options_.ramsey_policy = 1;\n";
+}
+
 RamseyPolicyStatement::RamseyPolicyStatement(const SymbolList &symbol_list_arg,
                                              const OptionsList &options_list_arg) :
   symbol_list(symbol_list_arg),
@@ -170,6 +246,10 @@ RamseyPolicyStatement::RamseyPolicyStatement(const SymbolList &symbol_list_arg,
 void
 RamseyPolicyStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
 {
+  // ramsey_model_present indicates that the model is augmented with the FOC of the planner problem
+  mod_file_struct.ramsey_model_present = true;
+  // ramsey_policy_present indicates that ramsey_policy instruction for computation of first order approximation 
+  // of  a stochastic Ramsey problem if present in the *.mod file
   mod_file_struct.ramsey_policy_present = true;
 
   /* Fill in option_order of mod_file_struct
@@ -179,9 +259,9 @@ RamseyPolicyStatement::checkPass(ModFileStructure &mod_file_struct, WarningConso
   if (it != options_list.num_options.end())
     {
       int order = atoi(it->second.c_str());
-      if (order > 1)
+      if (order > 2)
         {
-          cerr << "ERROR: ramsey_policy: order > 1 is not yet implemented" << endl;
+          cerr << "ERROR: ramsey_policy: order > 2 is not  implemented" << endl;
           exit(EXIT_FAILURE);
         }
       mod_file_struct.order_option = max(mod_file_struct.order_option, order + 1);
@@ -261,11 +341,9 @@ DiscretionaryPolicyStatement::writeOutput(ostream &output, const string &basenam
 }
 
 EstimationStatement::EstimationStatement(const SymbolList &symbol_list_arg,
-                                         const OptionsList &options_list_arg,
-                                         const SymbolTable &symbol_table_arg) :
+                                         const OptionsList &options_list_arg) :
   symbol_list(symbol_list_arg),
-  options_list(options_list_arg),
-  symbol_table(symbol_table_arg)
+  options_list(options_list_arg)
 {
 }
 
@@ -337,6 +415,20 @@ EstimationStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli
       cerr << "ERROR: An estimation statement cannot take more than one dsge_var option." << endl;
       exit(EXIT_FAILURE);
     }
+
+  if (options_list.string_options.find("datafile") == options_list.string_options.end() &&
+      !mod_file_struct.estimation_data_statement_present)
+    {
+      cerr << "ERROR: The estimation statement requires a data file to be supplied via the datafile option." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+  if (options_list.string_options.find("mode_file") != options_list.string_options.end() &&
+      mod_file_struct.estim_params_use_calib)
+    {
+      cerr << "ERROR: The mode_file option of the estimation statement is incompatible with the use_calibration option of the estimated_params_init block." << endl;
+      exit(EXIT_FAILURE);
+    }
 }
 
 void
@@ -512,6 +604,12 @@ EstimatedParamsStatement::checkPass(ModFileStructure &mod_file_struct, WarningCo
             }
         }
     }
+
+  // Fill in mod_file_struct.estimated_parameters (related to #469)
+  for (vector<EstimationParams>::const_iterator it = estim_params_list.begin();
+       it != estim_params_list.end(); it++)
+    if (it->type == 2 && it->name != "dsge_prior_weight")
+      mod_file_struct.estimated_parameters.insert(symbol_table.getID(it->name));
 }
 
 void
@@ -574,15 +672,27 @@ EstimatedParamsStatement::writeOutput(ostream &output, const string &basename) c
 }
 
 EstimatedParamsInitStatement::EstimatedParamsInitStatement(const vector<EstimationParams> &estim_params_list_arg,
-                                                           const SymbolTable &symbol_table_arg) :
+                                                           const SymbolTable &symbol_table_arg,
+                                                           const bool use_calibration_arg) :
   estim_params_list(estim_params_list_arg),
-  symbol_table(symbol_table_arg)
+  symbol_table(symbol_table_arg),
+  use_calibration(use_calibration_arg)
 {
 }
 
+void
+EstimatedParamsInitStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
+{
+  if (use_calibration)
+    mod_file_struct.estim_params_use_calib = true;
+}
+
 void
 EstimatedParamsInitStatement::writeOutput(ostream &output, const string &basename) const
 {
+  if (use_calibration)
+    output << "options_.use_calibration_initialization = 1;" << endl;
+
   vector<EstimationParams>::const_iterator it;
 
   for (it = estim_params_list.begin(); it != estim_params_list.end(); it++)
@@ -696,7 +806,8 @@ EstimatedParamsBoundsStatement::writeOutput(ostream &output, const string &basen
         {
           if (symb_type == eExogenous)
             {
-              output << "tmp1 = find((estim_params_.corrx(:,1)==" << symb_id << ")) & (estim_params_.corrx(:,2)==" << symbol_table.getTypeSpecificID(it->name2)+1 << ");" << endl;
+              output << "tmp1 = find((estim_params_.corrx(:,1)==" << symb_id << " & estim_params_.corrx(:,2)==" << symbol_table.getTypeSpecificID(it->name2)+1 << ") | "
+                     <<             "(estim_params_.corrx(:,2)==" << symb_id << " & estim_params_.corrx(:,1)==" << symbol_table.getTypeSpecificID(it->name2)+1 << "));" << endl;
 
               output << "estim_params_.corrx(tmp1,4) = ";
               it->low_bound->writeOutput(output);
@@ -708,7 +819,8 @@ EstimatedParamsBoundsStatement::writeOutput(ostream &output, const string &basen
             }
           else if (symb_type == eEndogenous)
             {
-              output << "tmp1 = find((estim_params_.corrn(:,1)==" << symb_id << ")) & (estim_params_.corrn(:,2)==" << symbol_table.getTypeSpecificID(it->name2)+1 << ";" << endl;
+              output << "tmp1 = find((estim_params_.corrn(:,1)==" << symb_id << " & estim_params_.corrn(:,2)==" << symbol_table.getTypeSpecificID(it->name2)+1 << ") | "
+                     <<             "(estim_params_.corrn(:,2)==" << symb_id << " & estim_params_.corrn(:,1)==" << symbol_table.getTypeSpecificID(it->name2)+1 << "));" << endl;
 
               output << "estim_params_.corrn(tmp1,4) = ";
               it->low_bound->writeOutput(output);
@@ -802,7 +914,7 @@ OsrStatement::writeOutput(ostream &output, const string &basename) const
 {
   options_list.writeOutput(output);
   symbol_list.writeOutput("var_list_", output);
-  output << "osr(var_list_,osr_params_,obj_var_,optim_weights_);\n";
+  output << "oo_.osr = osr(var_list_,osr_params_,obj_var_,optim_weights_);\n";
 }
 
 OptimWeightsStatement::OptimWeightsStatement(const var_weights_t &var_weights_arg,
@@ -936,7 +1048,7 @@ PlannerObjectiveStatement::getPlannerObjective() const
 void
 PlannerObjectiveStatement::computingPass()
 {
-  model_tree->computingPass(eval_context_t(), false, true, false, false, false);
+  model_tree->computingPass(eval_context_t(), false, true, true, false, false, false);
 }
 
 void
@@ -1306,7 +1418,7 @@ void
 ConditionalForecastStatement::writeOutput(ostream &output, const string &basename) const
 {
   options_list.writeOutput(output, "options_cond_fcst_");
-  output << "imcforecast(constrained_paths_, constrained_vars_, options_cond_fcst_, constrained_perfect_foresight_);" << endl;
+  output << "imcforecast(constrained_paths_, constrained_vars_, options_cond_fcst_);" << endl;
 }
 
 PlotConditionalForecastStatement::PlotConditionalForecastStatement(int periods_arg, const SymbolList &symbol_list_arg) :
@@ -1580,6 +1692,9 @@ MarkovSwitchingStatement::checkPass(ModFileStructure &mod_file_struct, WarningCo
             }
         }
     }
+
+  if (options_list.symbol_list_options.find("ms.parameters") != options_list.symbol_list_options.end())
+    mod_file_struct.ms_dsge_present = true;
 }
 
 void
@@ -1617,6 +1732,57 @@ MarkovSwitchingStatement::writeOutput(ostream &output, const string &basename) c
            << itR->first.second << ", " << itR->second << "]};" << endl;
 }
 
+void
+MarkovSwitchingStatement::writeCOutput(ostream &output, const string &basename)
+{
+  output << endl;
+
+  OptionsList::num_options_t::const_iterator it =
+    options_list.num_options.find("ms.chain");
+  assert(it !=  options_list.num_options.end());
+  output << "chain = " << it->second << ";" << endl;
+
+  it = options_list.num_options.find("ms.number_of_regimes");
+  assert(it !=  options_list.num_options.end());
+  output << "number_of_regimes = " << it->second << ";" << endl;
+
+  it = options_list.num_options.find("ms.number_of_lags");
+  if (it !=  options_list.num_options.end())
+    output << "number_of_lags = " << it->second << ";" << endl
+           << "number_of_lags_was_passed = true;" << endl;
+  else
+    output << "number_of_lags_was_passed = false;" << endl;
+
+  it = options_list.num_options.find("ms.duration");
+  assert(it != options_list.num_options.end());
+  output << "duration.clear();" << endl;
+  using namespace boost;
+  vector<string> tokenizedDomain;
+  split(tokenizedDomain, it->second, is_any_of("[ ]"), token_compress_on);
+  for (vector<string>::iterator itvs = tokenizedDomain.begin();
+       itvs != tokenizedDomain.end(); itvs++ )
+    if (!itvs->empty())
+      output << "duration.push_back(" << *itvs << ");" << endl;
+
+  OptionsList::symbol_list_options_t::const_iterator itsl =
+    options_list.symbol_list_options.find("ms.parameters");
+  assert(itsl != options_list.symbol_list_options.end());
+  vector<string> parameters = itsl->second.get_symbols();
+  output << "parameters.clear();" << endl;
+  for (vector<string>::iterator itp = parameters.begin();
+       itp != parameters.end(); itp++ )
+    output << "parameters.push_back(param_names[\"" << *itp << "\"]);" << endl;
+
+  output << "restriction_map.clear();" << endl;
+  for (map <pair<int, int >, double >::iterator itrm = restriction_map.begin();
+       itrm != restriction_map.end(); itrm++)
+    output << "restriction_map[make_pair(" << itrm->first.first << ","
+           << itrm->first.second << ")] = " << itrm->second << ";" << endl;
+
+  output << "msdsgeinfo->addMarkovSwitching(new MarkovSwitching(" << endl
+         << "     chain, number_of_regimes, number_of_lags, number_of_lags_was_passed, parameters, duration, restriction_map));" << endl;
+}
+
 SvarStatement::SvarStatement(const OptionsList &options_list_arg) :
   options_list(options_list_arg)
 {
@@ -1758,10 +1924,10 @@ SubsamplesStatement::writeOutput(ostream &output, const string &basename) const
        it != subsample_declaration_map.end(); it++, map_indx++)
     output << "estimation_info.subsamples(subsamples_indx).range_index(" << map_indx << ") = {'"
            << it->first << "'};" << endl
-           << "estimation_info.subsamples(subsamples_indx).range(" << map_indx << ").date1 = dynDate('"
-           << it->second.first << "');" << endl
-           << "estimation_info.subsamples(subsamples_indx).range(" << map_indx << ").date2 = dynDate('"
-           << it->second.second << "');" << endl;
+           << "estimation_info.subsamples(subsamples_indx).range(" << map_indx << ").date1 = "
+           << it->second.first << ";" << endl
+           << "estimation_info.subsamples(subsamples_indx).range(" << map_indx << ").date2 = "
+           << it->second.second << ";" << endl;
 
   // Initialize associated subsample substructures in estimation_info
   const SymbolType symb_type = symbol_table.getType(name1);
@@ -1915,6 +2081,14 @@ BasicPriorStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli
     }
 }
 
+bool
+BasicPriorStatement::is_structural_innovation(const SymbolType symb_type) const
+{
+  if (symb_type == eExogenous || symb_type == eExogenousDet)
+    return true;
+  return false;
+}
+
 void
 BasicPriorStatement::get_base_name(const SymbolType symb_type, string &lhs_field) const
 {
@@ -1972,6 +2146,76 @@ BasicPriorStatement::writePriorOutput(ostream &output, string &lhs_field, const
   writeCommonOutput(output, lhs_field);
 }
 
+void
+BasicPriorStatement::writeCVarianceOption(ostream &output) const
+{
+  output << "variance = ";
+  if (variance)
+    variance->writeOutput(output);
+  else
+    output << "numeric_limits<double>::quiet_NaN()";
+  output << ";" << endl;
+}
+
+void
+BasicPriorStatement::writeCDomain(ostream &output) const
+{
+  output << "domain.clear();" << endl;
+  OptionsList::num_options_t::const_iterator it_num = options_list.num_options.find("domain");
+  if (it_num != options_list.num_options.end())
+    {
+      using namespace boost;
+      vector<string> tokenizedDomain;
+      split(tokenizedDomain, it_num->second, is_any_of("[ ]"), token_compress_on);
+      for (vector<string>::iterator it = tokenizedDomain.begin();
+           it != tokenizedDomain.end(); it++ )
+        if (!it->empty())
+          output << "domain.push_back(" << *it << ");" << endl;
+    }
+}
+
+void
+BasicPriorStatement::writeCOutputHelper(ostream &output, const string &field) const
+{
+  OptionsList::num_options_t::const_iterator itn = options_list.num_options.find(field);
+  if (itn != options_list.num_options.end())
+    output << field << " = " << itn->second << ";" << endl;
+  else
+    output << field << " = " << "numeric_limits<double>::quiet_NaN();" << endl;
+}
+
+void
+BasicPriorStatement::writeCShape(ostream &output) const
+{
+  output << "shape = ";
+  switch (prior_shape)
+    {
+    case eBeta:
+      output  << "\"beta\";" << endl;
+      break;
+    case eGamma:
+      output  << "\"gamma\";" << endl;
+      break;
+    case eNormal:
+      output  << "\"normal\";" << endl;
+      break;
+    case eInvGamma:
+      output  << "\"inv_gamma\";" << endl;
+      break;
+    case eUniform:
+      output  << "\"uniform\";" << endl;
+      break;
+    case eInvGamma2:
+      output  << "\"inv_gamma2\";" << endl;
+      break;
+    case eDirichlet:
+      output  << "\"dirichlet\";" << endl;
+      break;
+    case eNoShape:
+      assert(prior_shape != eNoShape);
+    }
+}
+
 PriorStatement::PriorStatement(const string &name_arg,
                                const string &subsample_name_arg,
                                const PriorDistributions &prior_shape_arg,
@@ -1991,6 +2235,22 @@ PriorStatement::writeOutput(ostream &output, const string &basename) const
   writePriorOutput(output, lhs_field, "");
 }
 
+void
+PriorStatement::writeCOutput(ostream &output, const string &basename)
+{
+  output << endl
+         << "index = param_names[\""<< name << "\"];" << endl;
+  writeCShape(output);
+  writeCOutputHelper(output, "mean");
+  writeCOutputHelper(output, "mode");
+  writeCOutputHelper(output, "stdev");
+  writeCVarianceOption(output);
+  writeCDomain(output);
+
+  output << "msdsgeinfo->addPrior(new ModFilePrior(" << endl
+         << "     index, shape, mean, mode, stdev, variance, domain));" << endl;
+}
+
 StdPriorStatement::StdPriorStatement(const string &name_arg,
                                      const string &subsample_name_arg,
                                      const PriorDistributions &prior_shape_arg,
@@ -2015,6 +2275,31 @@ StdPriorStatement::writeOutput(ostream &output, const string &basename) const
   writePriorOutput(output, lhs_field, "");
 }
 
+void
+StdPriorStatement::writeCOutput(ostream &output, const string &basename)
+{
+  output << endl
+         << "index = ";
+  if (is_structural_innovation(symbol_table.getType(name)))
+    output << "exo_names";
+  else
+    output << "endo_names";
+  output << "[\""<< name << "\"];" << endl;
+
+  writeCShape(output);
+  writeCOutputHelper(output, "mean");
+  writeCOutputHelper(output, "mode");
+  writeCOutputHelper(output, "stdev");
+  writeCVarianceOption(output);
+  writeCDomain(output);
+
+  if (is_structural_innovation(symbol_table.getType(name)))
+    output << "msdsgeinfo->addStructuralInnovationPrior(new ModFileStructuralInnovationPrior(";
+  else
+    output << "msdsgeinfo->addMeasurementErrorPrior(new ModFileMeasurementErrorPrior(";
+  output << endl << "     index, shape, mean, mode, stdev, variance, domain));" << endl;
+}
+
 CorrPriorStatement::CorrPriorStatement(const string &name_arg1, const string &name_arg2,
                                        const string &subsample_name_arg,
                                        const PriorDistributions &prior_shape_arg,
@@ -2076,6 +2361,38 @@ PriorEqualStatement::PriorEqualStatement(const string &to_declaration_type_arg,
 {
 }
 
+void
+CorrPriorStatement::writeCOutput(ostream &output, const string &basename)
+{
+  output << endl
+         << "index = ";
+  if (is_structural_innovation(symbol_table.getType(name)))
+    output << "exo_names";
+  else
+    output << "endo_names";
+  output << "[\""<< name << "\"];" << endl;
+
+  output << "index1 = ";
+  if (is_structural_innovation(symbol_table.getType(name1)))
+    output << "exo_names";
+  else
+    output << "endo_names";
+  output << "[\""<< name1 << "\"];" << endl;
+
+  writeCShape(output);
+  writeCOutputHelper(output, "mean");
+  writeCOutputHelper(output, "mode");
+  writeCOutputHelper(output, "stdev");
+  writeCVarianceOption(output);
+  writeCDomain(output);
+
+  if (is_structural_innovation(symbol_table.getType(name)))
+    output << "msdsgeinfo->addStructuralInnovationCorrPrior(new ModFileStructuralInnovationCorrPrior(";
+  else
+    output << "msdsgeinfo->addMeasurementErrorCorrPrior(new ModFileMeasurementErrorCorrPrior(";
+  output << endl <<"     index, index1, shape, mean, mode, stdev, variance, domain));" << endl;
+}
+
 void
 PriorEqualStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
 {
@@ -2176,6 +2493,14 @@ BasicOptionsStatement::checkPass(ModFileStructure &mod_file_struct, WarningConso
 {
 }
 
+bool
+BasicOptionsStatement::is_structural_innovation(const SymbolType symb_type) const
+{
+  if (symb_type == eExogenous || symb_type == eExogenousDet)
+    return true;
+  return false;
+}
+
 void
 BasicOptionsStatement::get_base_name(const SymbolType symb_type, string &lhs_field) const
 {
@@ -2203,6 +2528,16 @@ BasicOptionsStatement::writeCommonOutputHelper(ostream &output, const string &fi
     output << lhs_field << "." << field << " = " << itn->second << ";" << endl;
 }
 
+void
+BasicOptionsStatement::writeCOutputHelper(ostream &output, const string &field) const
+{
+  OptionsList::num_options_t::const_iterator itn = options_list.num_options.find(field);
+  if (itn != options_list.num_options.end())
+    output << field << " = " << itn->second << ";" << endl;
+  else
+    output << field << " = " << "numeric_limits<double>::quiet_NaN();" << endl;
+}
+
 void
 BasicOptionsStatement::writeOptionsOutput(ostream &output, string &lhs_field, const string &name2) const
 {
@@ -2234,6 +2569,15 @@ OptionsStatement::writeOutput(ostream &output, const string &basename) const
   writeOptionsOutput(output, lhs_field, "");
 }
 
+void
+OptionsStatement::writeCOutput(ostream &output, const string &basename)
+{
+  output << endl
+         << "index = param_names[\""<< name << "\"];" << endl;
+  writeCOutputHelper(output, "init");
+  output << "msdsgeinfo->addOption(new ModFileOption(index, init));" << endl;
+}
+
 StdOptionsStatement::StdOptionsStatement(const string &name_arg,
                                          const string &subsample_name_arg,
                                          const OptionsList &options_list_arg,
@@ -2256,6 +2600,26 @@ StdOptionsStatement::writeOutput(ostream &output, const string &basename) const
   writeOptionsOutput(output, lhs_field, "");
 }
 
+void
+StdOptionsStatement::writeCOutput(ostream &output, const string &basename)
+{
+  output << endl
+         << "index = ";
+  if (is_structural_innovation(symbol_table.getType(name)))
+    output << "exo_names";
+  else
+    output << "endo_names";
+  output << "[\""<< name << "\"];" << endl;
+
+  writeCOutputHelper(output, "init");
+
+  if (is_structural_innovation(symbol_table.getType(name)))
+    output << "msdsgeinfo->addStructuralInnovationOption(new ModFileStructuralInnovationOption(";
+  else
+    output << "msdsgeinfo->addMeasurementErrorOption(new ModFileMeasurementErrorOption(";
+  output << "index, init));" << endl;
+}
+
 CorrOptionsStatement::CorrOptionsStatement(const string &name_arg1, const string &name_arg2,
                                            const string &subsample_name_arg,
                                            const OptionsList &options_list_arg,
@@ -2402,6 +2766,12 @@ CalibSmootherStatement::CalibSmootherStatement(const SymbolList &symbol_list_arg
 {
 }
 
+void
+CalibSmootherStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
+{
+  mod_file_struct.calib_smoother_present = true;
+}
+
 void
 CalibSmootherStatement::writeOutput(ostream &output, const string &basename) const
 {
@@ -2439,8 +2809,8 @@ ExtendedPathStatement::writeOutput(ostream &output, const string &basename) cons
     if (it->first != string("periods"))
       output << "options_." << it->first << " = " << it->second << ";" << endl;
 
-  output << "oo_.endo_simul = [ oo_.steady_state, extended_path([], " << options_list.num_options.find("periods")->second
-         << ") ];" << endl
+  output << "extended_path([], " << options_list.num_options.find("periods")->second
+         << ");" << endl
          << "oo_.exo_simul = oo_.ep.shocks;" << endl;
 }
 
@@ -2453,3 +2823,42 @@ ModelDiagnosticsStatement::writeOutput(ostream &output, const string &basename)
 {
   output << "model_diagnostics(M_,options_,oo_);" << endl;
 }
+
+void
+CorrOptionsStatement::writeCOutput(ostream &output, const string &basename)
+{
+  output << endl
+         << "index = ";
+  if (is_structural_innovation(symbol_table.getType(name)))
+    output << "exo_names";
+  else
+    output << "endo_names";
+  output << "[\""<< name << "\"];" << endl;
+
+  output << "index1 = ";
+  if (is_structural_innovation(symbol_table.getType(name1)))
+    output << "exo_names";
+  else
+    output << "endo_names";
+  output << "[\""<< name1 << "\"];" << endl;
+
+  writeCOutputHelper(output, "init");
+
+  if (is_structural_innovation(symbol_table.getType(name)))
+    output << "msdsgeinfo->addStructuralInnovationCorrOption(new ModFileStructuralInnovationCorrOption(";
+  else
+    output << "msdsgeinfo->addMeasurementErrorCorrOption(new ModFileMeasurementErrorCorrOption(";
+  output << "index, index1, init));" << endl;
+}
+
+Smoother2histvalStatement::Smoother2histvalStatement(const OptionsList &options_list_arg) :
+  options_list(options_list_arg)
+{
+}
+
+void
+Smoother2histvalStatement::writeOutput(ostream &output, const string &basename) const
+{
+  options_list.writeOutput(output, "options_smoother2histval");
+  output << "smoother2histval(options_smoother2histval);" << endl;
+}
diff --git a/preprocessor/ComputingTasks.hh b/preprocessor/ComputingTasks.hh
index 926e082d2106f126551f396d0da247a0cb87f231..b1a009ffac7e2ed92df869624d27a4762adadd44 100644
--- a/preprocessor/ComputingTasks.hh
+++ b/preprocessor/ComputingTasks.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2012 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -58,6 +58,25 @@ public:
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
 
+class PerfectForesightSetupStatement : public Statement
+{
+private:
+  const OptionsList options_list;
+public:
+  PerfectForesightSetupStatement(const OptionsList &options_list_arg);
+  virtual void writeOutput(ostream &output, const string &basename) const;
+};
+
+class PerfectForesightSolverStatement : public Statement
+{
+private:
+  const OptionsList options_list;
+public:
+  PerfectForesightSolverStatement(const OptionsList &options_list_arg);
+  virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
+  virtual void writeOutput(ostream &output, const string &basename) const;
+};
+
 class ModelInfoStatement : public Statement
 {
 private:
@@ -91,6 +110,18 @@ public:
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
 
+class RamseyModelStatement : public Statement
+{
+private:
+  const SymbolList symbol_list;
+  const OptionsList options_list;
+public:
+  RamseyModelStatement(const SymbolList &symbol_list_arg,
+                        const OptionsList &options_list_arg);
+  virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
+  virtual void writeOutput(ostream &output, const string &basename) const;
+};
+
 class RamseyPolicyStatement : public Statement
 {
 private:
@@ -157,11 +188,9 @@ class EstimationStatement : public Statement
 private:
   const SymbolList symbol_list;
   const OptionsList options_list;
-  const SymbolTable &symbol_table;
 public:
   EstimationStatement(const SymbolList &symbol_list_arg,
-                      const OptionsList &options_list_arg,
-                      const SymbolTable &symbol_table);
+                      const OptionsList &options_list_arg);
   virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
@@ -290,9 +319,12 @@ class EstimatedParamsInitStatement : public Statement
 private:
   const vector<EstimationParams> estim_params_list;
   const SymbolTable &symbol_table;
+  const bool use_calibration;
 public:
   EstimatedParamsInitStatement(const vector<EstimationParams> &estim_params_list_arg,
-                               const SymbolTable &symbol_table_arg);
+                               const SymbolTable &symbol_table_arg,
+                               const bool use_calibration_arg);
+  virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
 
@@ -516,6 +548,7 @@ private:
 public:
   CalibSmootherStatement(const SymbolList &symbol_list_arg,
                          const OptionsList &options_list_arg);
+  virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
 
@@ -569,6 +602,7 @@ public:
   MarkovSwitchingStatement(const OptionsList &options_list_arg);
   virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
   virtual void writeOutput(ostream &output, const string &basename) const;
+  virtual void writeCOutput(ostream &output, const string &basename);
 };
 
 class SvarStatement : public Statement
@@ -656,6 +690,15 @@ protected:
   void writeCommonOutput(ostream &output, const string &lhs_field) const;
   void writeCommonOutputHelper(ostream &output, const string &field, const string &lhs_field) const;
   void writePriorOutput(ostream &output, string &lhs_field, const string &name2) const;
+  bool is_structural_innovation(const SymbolType symb_type) const;
+  void writePriorIndex(ostream &output, const string &lhs_field) const;
+  void writeVarianceOption(ostream &output, const string &lhs_field) const;
+  void writeOutputHelper(ostream &output, const string &field, const string &lhs_field) const;
+  void writeShape(ostream &output, const string &lhs_field) const;
+  void writeCOutputHelper(ostream &output, const string &field) const;
+  void writeCShape(ostream &output) const;
+  void writeCVarianceOption(ostream &output) const;
+  void writeCDomain(ostream &output) const;
 };
 
 class PriorStatement : public BasicPriorStatement
@@ -667,6 +710,7 @@ public:
                  const expr_t &variance_arg,
                  const OptionsList &options_list_arg);
   virtual void writeOutput(ostream &output, const string &basename) const;
+  virtual void writeCOutput(ostream &output, const string &basename);
 };
 
 class StdPriorStatement : public BasicPriorStatement
@@ -681,6 +725,7 @@ public:
                     const OptionsList &options_list_arg,
                     const SymbolTable &symbol_table_arg);
   virtual void writeOutput(ostream &output, const string &basename) const;
+  virtual void writeCOutput(ostream &output, const string &basename);
 };
 
 class CorrPriorStatement : public BasicPriorStatement
@@ -698,6 +743,7 @@ public:
                      const SymbolTable &symbol_table_arg);
   virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
   virtual void writeOutput(ostream &output, const string &basename) const;
+  virtual void writeCOutput(ostream &output, const string &basename);
 };
 
 class PriorEqualStatement : public Statement
@@ -743,6 +789,10 @@ protected:
   void writeOptionsOutput(ostream &output, string &lhs_field, const string &name2) const;
   void writeCommonOutput(ostream &output, const string &lhs_field) const;
   void writeCommonOutputHelper(ostream &output, const string &field, const string &lhs_field) const;
+  bool is_structural_innovation(const SymbolType symb_type) const;
+  void writeOptionsIndex(ostream &output, const string &lhs_field) const;
+  void writeOutputHelper(ostream &output, const string &field, const string &lhs_field) const;
+  void writeCOutputHelper(ostream &output, const string &field) const;
 };
 
 class OptionsStatement : public BasicOptionsStatement
@@ -750,6 +800,7 @@ class OptionsStatement : public BasicOptionsStatement
 public:
   OptionsStatement(const string &name_arg, const string &subsample_name_arg, const OptionsList &options_list_arg);
   virtual void writeOutput(ostream &output, const string &basename) const;
+  virtual void writeCOutput(ostream &output, const string &basename);
 };
 
 class StdOptionsStatement : public BasicOptionsStatement
@@ -762,6 +813,7 @@ public:
                       const OptionsList &options_list_arg,
                       const SymbolTable &symbol_table_arg);
   virtual void writeOutput(ostream &output, const string &basename) const;
+  virtual void writeCOutput(ostream &output, const string &basename);
 };
 
 class CorrOptionsStatement : public BasicOptionsStatement
@@ -776,6 +828,7 @@ public:
                        const SymbolTable &symbol_table_arg);
   virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
   virtual void writeOutput(ostream &output, const string &basename) const;
+  virtual void writeCOutput(ostream &output, const string &basename);
 };
 
 class OptionsEqualStatement : public Statement
@@ -812,4 +865,13 @@ public:
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
 
+class Smoother2histvalStatement : public Statement
+{
+private:
+  const OptionsList options_list;
+public:
+  Smoother2histvalStatement(const OptionsList &options_list_arg);
+  virtual void writeOutput(ostream &output, const string &basename) const;
+};
+
 #endif
diff --git a/preprocessor/DataTree.cc b/preprocessor/DataTree.cc
index 629365fbd004bd2d3d39d11d8c39186d3f771e95..f95ab9ca2b8acb996c141b0282737650f8a15b98 100644
--- a/preprocessor/DataTree.cc
+++ b/preprocessor/DataTree.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2012 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -512,7 +512,7 @@ DataTree::AddExternalFunction(int symb_id, const vector<expr_t> &arguments)
 }
 
 expr_t
-DataTree::AddFirstDerivExternalFunctionNode(int top_level_symb_id, const vector<expr_t> &arguments, int input_index)
+DataTree::AddFirstDerivExternalFunction(int top_level_symb_id, const vector<expr_t> &arguments, int input_index)
 {
   assert(symbol_table.getType(top_level_symb_id) == eExternalFunction);
 
@@ -526,7 +526,7 @@ DataTree::AddFirstDerivExternalFunctionNode(int top_level_symb_id, const vector<
 }
 
 expr_t
-DataTree::AddSecondDerivExternalFunctionNode(int top_level_symb_id, const vector<expr_t> &arguments, int input_index1, int input_index2)
+DataTree::AddSecondDerivExternalFunction(int top_level_symb_id, const vector<expr_t> &arguments, int input_index1, int input_index2)
 {
   assert(symbol_table.getType(top_level_symb_id) == eExternalFunction);
 
diff --git a/preprocessor/DataTree.hh b/preprocessor/DataTree.hh
index 3540a86de253304ae272599e575d9d50c0ff66ee..19712e9bfdad98b9f422cc115d5dc7ec12b4469a 100644
--- a/preprocessor/DataTree.hh
+++ b/preprocessor/DataTree.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2012 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -44,6 +44,7 @@ class DataTree
   friend class UnaryOpNode;
   friend class BinaryOpNode;
   friend class TrinaryOpNode;
+  friend class AbstractExternalFunctionNode;
   friend class ExternalFunctionNode;
   friend class FirstDerivExternalFunctionNode;
   friend class SecondDerivExternalFunctionNode;
@@ -68,10 +69,16 @@ protected:
   binary_op_node_map_t binary_op_node_map;
   typedef map<pair<pair<pair<expr_t, expr_t>, expr_t>, TrinaryOpcode>, TrinaryOpNode *> trinary_op_node_map_t;
   trinary_op_node_map_t trinary_op_node_map;
+
+  // (arguments, symb_id) -> ExternalFunctionNode
   typedef map<pair<vector<expr_t>, int>, ExternalFunctionNode *> external_function_node_map_t;
   external_function_node_map_t external_function_node_map;
+
+  // ((arguments, deriv_idx), symb_id) -> FirstDerivExternalFunctionNode
   typedef map<pair<pair<vector<expr_t>, int>, int>, FirstDerivExternalFunctionNode *> first_deriv_external_function_node_map_t;
   first_deriv_external_function_node_map_t first_deriv_external_function_node_map;
+
+  // ((arguments, (deriv_idx1, deriv_idx2)), symb_id) -> SecondDerivExternalFunctionNode
   typedef map<pair<pair<vector<expr_t>, pair<int, int> >, int>, SecondDerivExternalFunctionNode *> second_deriv_external_function_node_map_t;
   second_deriv_external_function_node_map_t second_deriv_external_function_node_map;
 
@@ -202,9 +209,9 @@ public:
   //! Adds an external function node
   expr_t AddExternalFunction(int symb_id, const vector<expr_t> &arguments);
   //! Adds an external function node for the first derivative of an external function
-  expr_t AddFirstDerivExternalFunctionNode(int top_level_symb_id, const vector<expr_t> &arguments, int input_index);
+  expr_t AddFirstDerivExternalFunction(int top_level_symb_id, const vector<expr_t> &arguments, int input_index);
   //! Adds an external function node for the second derivative of an external function
-  expr_t AddSecondDerivExternalFunctionNode(int top_level_symb_id, const vector<expr_t> &arguments, int input_index1, int input_index2);
+  expr_t AddSecondDerivExternalFunction(int top_level_symb_id, const vector<expr_t> &arguments, int input_index1, int input_index2);
   //! Checks if a given symbol is used somewhere in the data tree
   bool isSymbolUsed(int symb_id) const;
   //! Checks if a given unary op is used somewhere in the data tree
diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc
index 52eabbede46659a2e60f61460d0670a4295b94a7..7dfc7d7ecb305dcacb336b65e6bfbda0ae5e7095 100644
--- a/preprocessor/DynamicModel.cc
+++ b/preprocessor/DynamicModel.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -210,13 +210,15 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
   ostringstream tmp_output, tmp1_output, global_output;
   expr_t lhs = NULL, rhs = NULL;
   BinaryOpNode *eq_node;
-  ostringstream Uf[symbol_table.endo_nbr()];
+  ostringstream Ufoss;
+  vector<string> Uf(symbol_table.endo_nbr(), "");
   map<expr_t, int> reference_count;
   temporary_terms_t local_temporary_terms;
   ofstream  output;
   int nze, nze_exo, nze_exo_det, nze_other_endo;
   vector<int> feedback_variables;
   ExprNodeOutputType local_output_type;
+  Ufoss.str("");
 
   local_output_type = oMatlabDynamicModelSparse;
   if (global_temporary_terms)
@@ -458,7 +460,7 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
               for (temporary_terms_t::const_iterator it = v_temporary_terms[block][i].begin();
                    it != v_temporary_terms[block][i].end(); it++)
                 {
-                  if (dynamic_cast<ExternalFunctionNode *>(*it) != NULL)
+                  if (dynamic_cast<AbstractExternalFunctionNode *>(*it) != NULL)
                     (*it)->writeExternalFunctionOutput(output, local_output_type, tt2, tef_terms);
 
                   output << "  " <<  sps;
@@ -536,7 +538,9 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
               feedback_variables.push_back(variable_ID);
               output << "    % equation " << equation_ID+1 << " variable : " << sModel
                      << " (" << variable_ID+1 << ") " << c_Equation_Type(equ_type) << " symb_id=" << symbol_table.getID(eEndogenous, variable_ID) << endl;
-              Uf[equation_ID] << "    b(" << i+1-block_recursive << "+Per_J_) = -residual(" << i+1-block_recursive << ", it_)";
+              Ufoss << "    b(" << i+1-block_recursive << "+Per_J_) = -residual(" << i+1-block_recursive << ", it_)";
+              Uf[equation_ID] += Ufoss.str();
+              Ufoss.str("");
               output << "    residual(" << i+1-block_recursive << ", it_) = (";
               goto end;
             default:
@@ -708,21 +712,24 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
               if (eq >= block_recursive && var >= block_recursive)
                 {
                   if (lag == 0)
-                    Uf[eqr] << "+g1(" << eq+1-block_recursive
-                            << "+Per_J_, " << var+1-block_recursive
-                            << "+Per_K_)*y(it_, " << varr+1 << ")";
+                    Ufoss << "+g1(" << eq+1-block_recursive
+                          << "+Per_J_, " << var+1-block_recursive
+                          << "+Per_K_)*y(it_, " << varr+1 << ")";
                   else if (lag == 1)
-                    Uf[eqr] << "+g1(" << eq+1-block_recursive
-                            << "+Per_J_, " << var+1-block_recursive
-                            << "+Per_y_)*y(it_+1, " << varr+1 << ")";
+                    Ufoss << "+g1(" << eq+1-block_recursive
+                          << "+Per_J_, " << var+1-block_recursive
+                          << "+Per_y_)*y(it_+1, " << varr+1 << ")";
                   else if (lag > 0)
-                    Uf[eqr] << "+g1(" << eq+1-block_recursive
-                            << "+Per_J_, " << var+1-block_recursive
-                            << "+y_size*(it_+" << lag-1 << "))*y(it_+" << lag << ", " << varr+1 << ")";
-                  else if (lag < 0)
-                    Uf[eqr] << "+g1(" << eq+1-block_recursive
-                            << "+Per_J_, " << var+1-block_recursive
-                            << "+y_size*(it_" << lag-1 << "))*y(it_" << lag << ", " << varr+1 << ")";
+                    Ufoss << "+g1(" << eq+1-block_recursive
+                          << "+Per_J_, " << var+1-block_recursive
+                          << "+y_size*(it_+" << lag-1 << "))*y(it_+" << lag << ", " << varr+1 << ")";
+                  else
+                    Ufoss << "+g1(" << eq+1-block_recursive
+                          << "+Per_J_, " << var+1-block_recursive
+                          << "+y_size*(it_" << lag-1 << "))*y(it_" << lag << ", " << varr+1 << ")";
+                  Uf[eqr] += Ufoss.str();
+                  Ufoss.str("");
+
                   if (lag == 0)
                     tmp_output << "     g1(" << eq+1-block_recursive << "+Per_J_, "
                                << var+1-block_recursive << "+Per_K_) = ";
@@ -751,7 +758,7 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
           for (unsigned int i = 0; i < block_size; i++)
             {
               if (i >= block_recursive)
-                output << "  " << Uf[getBlockEquationID(block, i)].str() << ";\n";
+                output << "  " << Uf[getBlockEquationID(block, i)] << ";\n";
 #ifdef CONDITION
               output << "  if (fabs(condition(" << i+1 << "))<fabs(u(" << i << "+Per_u_)))\n";
               output << "    condition(" << i+1 << ")=u(" << i+1 << "+Per_u_);\n";
@@ -1174,7 +1181,7 @@ DynamicModel::writeModelEquationsCode_Block(string &file_name, const string &bin
               for (temporary_terms_t::const_iterator it = v_temporary_terms[block][i].begin();
                    it != v_temporary_terms[block][i].end(); it++)
                 {
-                  if (dynamic_cast<ExternalFunctionNode *>(*it) != NULL)
+                  if (dynamic_cast<AbstractExternalFunctionNode *>(*it) != NULL)
                     (*it)->compileExternalFunctionOutput(code_file, instruction_number, false, tt2, map_idx, true, false, tef_terms);
 
                   FNUMEXPR_ fnumexpr(TemporaryTerm, (int) (map_idx.find((*it)->idx)->second));
@@ -1518,14 +1525,14 @@ DynamicModel::writeDynamicMFile(const string &dynamic_basename) const
                     << "%   residual  [M_.endo_nbr by 1] double    vector of residuals of the dynamic model equations in order of " << endl
                     << "%                                          declaration of the equations" << endl
                     << "%   g1        [M_.endo_nbr by #dynamic variables] double    Jacobian matrix of the dynamic model equations;" << endl
-                    << "%                                                           columns: equations in order of declaration" << endl
-                    << "%                                                           rows: variables in order stored in M_.lead_lag_incidence" << endl
+                    << "%                                                           rows: equations in order of declaration" << endl
+                    << "%                                                           columns: variables in order stored in M_.lead_lag_incidence" << endl
                     << "%   g2        [M_.endo_nbr by (#dynamic variables)^2] double   Hessian matrix of the dynamic model equations;" << endl
-                    << "%                                                              columns: equations in order of declaration" << endl
-                    << "%                                                              rows: variables in order stored in M_.lead_lag_incidence" << endl
+                    << "%                                                              rows: equations in order of declaration" << endl
+                    << "%                                                              columns: variables in order stored in M_.lead_lag_incidence" << endl
                     << "%   g3        [M_.endo_nbr by (#dynamic variables)^3] double   Third order derivative matrix of the dynamic model equations;" << endl
-                    << "%                                                              columns: equations in order of declaration" << endl
-                    << "%                                                              rows: variables in order stored in M_.lead_lag_incidence" << endl
+                    << "%                                                              rows: equations in order of declaration" << endl
+                    << "%                                                              columns: variables in order stored in M_.lead_lag_incidence" << endl
                     << "%" << endl
                     << "%" << endl                    
                     << "% Warning : this file is generated automatically by Dynare" << endl
@@ -1889,7 +1896,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
                     << "  disp (['MODEL SIMULATION: (method=' mthd ')']) ;" << endl
                     << "  fprintf('\\n') ;" << endl
                     << "  periods=options_.periods;" << endl
-                    << "  maxit_=options_.maxit_;" << endl
+                    << "  maxit_=options_.simul.maxit;" << endl
                     << "  solve_tolf=options_.solve_tolf;" << endl
                     << "  y=oo_.endo_simul';" << endl
                     << "  x=oo_.exo_simul;" << endl;
@@ -1988,7 +1995,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
           mDynamicModelFile << "  y = solve_one_boundary('"  << dynamic_basename << "_" <<  block + 1 << "'"
                             <<", y, x, params, steady_state, y_index, " << nze
                             <<", options_.periods, " << blocks_linear[block]
-                            <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n";
+                            <<", blck_num, y_kmin, options_.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n";
           mDynamicModelFile << "  tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n";
           mDynamicModelFile << "  if any(isnan(tmp) | isinf(tmp))\n";
           mDynamicModelFile << "    disp(['Inf or Nan value during the resolution of block " << block <<"']);\n";
@@ -2018,7 +2025,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
           mDynamicModelFile << "  y = solve_one_boundary('"  << dynamic_basename << "_" <<  block + 1 << "'"
                             <<", y, x, params, steady_state, y_index, " << nze
                             <<", options_.periods, " << blocks_linear[block]
-                            <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n";
+                            <<", blck_num, y_kmin, options.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n";
           mDynamicModelFile << "  tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n";
           mDynamicModelFile << "  if any(isnan(tmp) | isinf(tmp))\n";
           mDynamicModelFile << "    disp(['Inf or Nan value during the resolution of block " << block <<"']);\n";
@@ -2043,12 +2050,12 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
           mDynamicModelFile << "  else\n";
           mDynamicModelFile << "    blck_num = 1;\n";
           mDynamicModelFile << "  end;\n";
-          mDynamicModelFile << "  y = solve_two_boundaries('" << dynamic_basename << "_" <<  block + 1 << "'"
+          mDynamicModelFile << "  [y oo_] = solve_two_boundaries('" << dynamic_basename << "_" <<  block + 1 << "'"
                             <<", y, x, params, steady_state, y_index, " << nze
                             <<", options_.periods, " << max_leadlag_block[block].first
                             <<", " << max_leadlag_block[block].second
                             <<", " << blocks_linear[block]
-                            <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo);\n";
+                            <<", blck_num, y_kmin, options_.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, M_, oo_);\n";
           mDynamicModelFile << "  tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n";
           mDynamicModelFile << "  if any(isnan(tmp) | isinf(tmp))\n";
           mDynamicModelFile << "    disp(['Inf or Nan value during the resolution of block " << block <<"']);\n";
@@ -2913,26 +2920,23 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
   output << "M_.exo_names_orig_ord = [1:" << symbol_table.exo_nbr() << "];" << endl
          << "M_.maximum_lag = " << max_lag << ";" << endl
          << "M_.maximum_lead = " << max_lead << ";" << endl;
-  if (symbol_table.endo_nbr())
-    {
-      output << "M_.maximum_endo_lag = " << max_endo_lag << ";" << endl
-             << "M_.maximum_endo_lead = " << max_endo_lead << ";" << endl
-             << "oo_.steady_state = zeros(" << symbol_table.endo_nbr() << ", 1);" << endl;
-    }
-  if (symbol_table.exo_nbr())
-    {
-      output << "M_.maximum_exo_lag = " << max_exo_lag << ";" << endl
-             << "M_.maximum_exo_lead = " << max_exo_lead << ";" << endl
-             << "oo_.exo_steady_state = zeros(" << symbol_table.exo_nbr() << ", 1);" << endl;
-    }
+
+  output << "M_.maximum_endo_lag = " << max_endo_lag << ";" << endl
+         << "M_.maximum_endo_lead = " << max_endo_lead << ";" << endl
+         << "oo_.steady_state = zeros(" << symbol_table.endo_nbr() << ", 1);" << endl;
+
+  output << "M_.maximum_exo_lag = " << max_exo_lag << ";" << endl
+         << "M_.maximum_exo_lead = " << max_exo_lead << ";" << endl
+         << "oo_.exo_steady_state = zeros(" << symbol_table.exo_nbr() << ", 1);" << endl;
+
   if (symbol_table.exo_det_nbr())
     {
       output << "M_.maximum_exo_det_lag = " << max_exo_det_lag << ";" << endl
              << "M_.maximum_exo_det_lead = " << max_exo_det_lead << ";" << endl
              << "oo_.exo_det_steady_state = zeros(" << symbol_table.exo_det_nbr() << ", 1);" << endl;
     }
-  if (symbol_table.param_nbr())
-    output << "M_.params = NaN(" << symbol_table.param_nbr() << ", 1);" << endl;
+
+  output << "M_.params = NaN(" << symbol_table.param_nbr() << ", 1);" << endl;
 
   // Write number of non-zero derivatives
   // Use -1 if the derivatives have not been computed
@@ -3423,9 +3427,8 @@ DynamicModel::cloneDynamic(DynamicModel &dynamic_model) const
     dynamic_model.AddLocalVariable(it->first, it->second->cloneDynamic(dynamic_model));
 
   // Convert equations
-  for (vector<BinaryOpNode *>::const_iterator it = equations.begin();
-       it != equations.end(); it++)
-    dynamic_model.addEquation((*it)->cloneDynamic(dynamic_model));
+  for (size_t i = 0; i < equations.size(); i++)
+    dynamic_model.addEquation(equations[i]->cloneDynamic(dynamic_model), equations_lineno[i]);
 
   // Convert auxiliary equations
   for (deque<BinaryOpNode *>::const_iterator it = aux_equations.begin();
@@ -3433,18 +3436,18 @@ DynamicModel::cloneDynamic(DynamicModel &dynamic_model) const
     dynamic_model.addAuxEquation((*it)->cloneDynamic(dynamic_model));
 
   // Convert static_only equations
-  for (vector<BinaryOpNode *>::const_iterator it = static_only_equations.begin();
-       it != static_only_equations.end(); it++)
-    dynamic_model.addStaticOnlyEquation((*it)->cloneDynamic(dynamic_model));
+  for (size_t i = 0; i < static_only_equations.size(); i++)
+    dynamic_model.addStaticOnlyEquation(static_only_equations[i]->cloneDynamic(dynamic_model),
+                                        static_only_equations_lineno[i]);
 }
 
 void
 DynamicModel::replaceMyEquations(DynamicModel &dynamic_model) const
 {
   dynamic_model.equations.clear();
-  for (vector<BinaryOpNode *>::const_iterator it = equations.begin();
-       it != equations.end(); it++)
-    dynamic_model.addEquation((*it)->cloneDynamic(dynamic_model));
+  for (size_t i = 0; i < equations.size(); i++)
+    dynamic_model.addEquation(equations[i]->cloneDynamic(dynamic_model),
+                              equations_lineno[i]);
 }
 
 void
@@ -3464,14 +3467,14 @@ DynamicModel::computeRamseyPolicyFOCs(const StaticModel &static_model)
 
   // Add Planner Objective to equations to include in computeDerivIDs
   assert(static_model.equations.size() == 1);
-  addEquation(static_model.equations[0]->cloneDynamic(*this));
+  addEquation(static_model.equations[0]->cloneDynamic(*this), static_model.equations_lineno[0]);
 
   // Get max endo lead and max endo lag
   set<pair<int, int> > dynvars;
   int max_eq_lead = 0;
   int max_eq_lag = 0;
   for (int i = 0; i < (int) equations.size(); i++)
-    equations[i]->collectVariables(eEndogenous, dynvars);
+    equations[i]->collectDynamicVariables(eEndogenous, dynvars);
 
   for (set<pair<int, int> >::const_iterator it = dynvars.begin();
        it != dynvars.end(); it++)
@@ -3509,7 +3512,7 @@ DynamicModel::computeRamseyPolicyFOCs(const StaticModel &static_model)
       }
 
   equations.clear();
-  addEquation(AddEqual(lagrangian, Zero));
+  addEquation(AddEqual(lagrangian, Zero), -1);
   computeDerivIDs();
 
   //Compute derivatives and overwrite equations
@@ -3523,7 +3526,7 @@ DynamicModel::computeRamseyPolicyFOCs(const StaticModel &static_model)
   // Add new equations
   equations.clear();
   for (int i = 0; i < (int) neweqs.size(); i++)
-    addEquation(neweqs[i]);
+    addEquation(neweqs[i], -1);
 }
 
 void
@@ -3555,11 +3558,11 @@ DynamicModel::toStatic(StaticModel &static_model) const
       // If yes, replace it by an equation marked [static]
       if (is_dynamic_only)
         {
-          static_model.addEquation(static_only_equations[static_only_index]->toStatic(static_model));
+          static_model.addEquation(static_only_equations[static_only_index]->toStatic(static_model), static_only_equations_lineno[static_only_index]);
           static_only_index++;
         }
       else
-        static_model.addEquation(equations[i]->toStatic(static_model));
+        static_model.addEquation(equations[i]->toStatic(static_model), equations_lineno[i]);
     }
 
   // Convert auxiliary equations
@@ -3568,11 +3571,30 @@ DynamicModel::toStatic(StaticModel &static_model) const
     static_model.addAuxEquation((*it)->toStatic(static_model));
 }
 
-void
-DynamicModel::findUnusedEndogenous(set<int> &unusedEndogs)
+set<int>
+DynamicModel::findUnusedEndogenous()
 {
+  set<int> usedEndo, unusedEndo;
   for (int i = 0; i < (int) equations.size(); i++)
-    equations[i]->findUnusedEndogenous(unusedEndogs);
+    equations[i]->collectVariables(eEndogenous, usedEndo);
+  set<int> allEndo = symbol_table.getEndogenous();
+  set_difference(allEndo.begin(), allEndo.end(),
+                 usedEndo.begin(), usedEndo.end(),
+                 inserter(unusedEndo, unusedEndo.begin()));
+  return unusedEndo;
+}
+
+set<int>
+DynamicModel::findUnusedExogenous()
+{
+  set<int> usedExo, unusedExo;
+  for (int i = 0; i < (int) equations.size(); i++)
+    equations[i]->collectVariables(eExogenous, usedExo);
+  set<int> allExo = symbol_table.getExogenous();
+  set_difference(allExo.begin(), allExo.end(),
+                 usedExo.begin(), usedExo.end(),
+                 inserter(unusedExo, unusedExo.begin()));
+  return unusedExo;
 }
 
 void
@@ -3581,17 +3603,17 @@ DynamicModel::computeDerivIDs()
   set<pair<int, int> > dynvars;
 
   for (int i = 0; i < (int) equations.size(); i++)
-    equations[i]->collectVariables(eEndogenous, dynvars);
+    equations[i]->collectDynamicVariables(eEndogenous, dynvars);
 
   dynJacobianColsNbr = dynvars.size();
 
   for (int i = 0; i < (int) equations.size(); i++)
     {
-      equations[i]->collectVariables(eExogenous, dynvars);
-      equations[i]->collectVariables(eExogenousDet, dynvars);
-      equations[i]->collectVariables(eParameter, dynvars);
-      equations[i]->collectVariables(eTrend, dynvars);
-      equations[i]->collectVariables(eLogTrend, dynvars);
+      equations[i]->collectDynamicVariables(eExogenous, dynvars);
+      equations[i]->collectDynamicVariables(eExogenousDet, dynvars);
+      equations[i]->collectDynamicVariables(eParameter, dynvars);
+      equations[i]->collectDynamicVariables(eTrend, dynvars);
+      equations[i]->collectDynamicVariables(eLogTrend, dynvars);
     }
 
   for (set<pair<int, int> >::const_iterator it = dynvars.begin();
@@ -3757,22 +3779,29 @@ DynamicModel::testTrendDerivativesEqualToZero(const eval_context_t &eval_context
         || symbol_table.getType(it->first.first) == eLogTrend)
       for (int eq = 0; eq < (int) equations.size(); eq++)
         {
-          expr_t testeq = AddLog(AddMinus(equations[eq]->get_arg1(), // F: a = b -> ln(a - b)
-                                          equations[eq]->get_arg2()));
-          testeq = testeq->getDerivative(it->second); // d F / d Trend
-          for (deriv_id_table_t::const_iterator endogit = deriv_id_table.begin();
-               endogit != deriv_id_table.end(); endogit++)
-            if (symbol_table.getType(endogit->first.first) == eEndogenous)
-              {
-                double nearZero = testeq->getDerivative(endogit->second)->eval(eval_context); // eval d F / d Trend d Endog
-                if (fabs(nearZero) > ZERO_BAND)
+          expr_t homogeneq = AddMinus(equations[eq]->get_arg1(),
+                                      equations[eq]->get_arg2());
+
+          // Do not run the test if the term inside the log is zero
+          if (fabs(homogeneq->eval(eval_context)) > ZERO_BAND)
+            {
+              expr_t testeq = AddLog(homogeneq); // F = log(lhs-rhs)
+              testeq = testeq->getDerivative(it->second); // d F / d Trend
+              for (deriv_id_table_t::const_iterator endogit = deriv_id_table.begin();
+                   endogit != deriv_id_table.end(); endogit++)
+                if (symbol_table.getType(endogit->first.first) == eEndogenous)
                   {
-                    cerr << "ERROR: trends not compatible with balanced growth path; the second-order cross partial of equation " << eq + 1 << " w.r.t. trend variable "
-                         << symbol_table.getName(it->first.first) << " and endogenous variable "
-                         << symbol_table.getName(endogit->first.first) << " is not null. " << endl;
-                    exit(EXIT_FAILURE);
+                    double nearZero = testeq->getDerivative(endogit->second)->eval(eval_context); // eval d F / d Trend d Endog
+                    if (fabs(nearZero) > ZERO_BAND)
+                      {
+                        cerr << "ERROR: trends not compatible with balanced growth path; the second-order cross partial of equation " << eq + 1 << " (line "
+                             << equations_lineno[eq] << ") w.r.t. trend variable "
+                             << symbol_table.getName(it->first.first) << " and endogenous variable "
+                             << symbol_table.getName(endogit->first.first) << " is not null. " << endl;
+                        exit(EXIT_FAILURE);
+                      }
                   }
-              }
+            }
         }
 }
 
@@ -3983,7 +4012,7 @@ DynamicModel::substituteLeadLagInternal(aux_var_t type, bool deterministic_model
   // Substitute in used model local variables
   set<int> used_local_vars;
   for (size_t i = 0; i < equations.size(); i++)
-    equations[i]->collectModelLocalVariables(used_local_vars);
+    equations[i]->collectVariables(eModelLocalVariable, used_local_vars);
 
   for (set<int>::const_iterator it = used_local_vars.begin();
        it != used_local_vars.end(); ++it)
@@ -4046,7 +4075,7 @@ DynamicModel::substituteLeadLagInternal(aux_var_t type, bool deterministic_model
 
   // Add new equations
   for (int i = 0; i < (int) neweqs.size(); i++)
-    addEquation(neweqs[i]);
+    addEquation(neweqs[i], -1);
 
   // Order of auxiliary variable definition equations:
   //  - expectation (entered before this function is called)
@@ -4106,7 +4135,7 @@ DynamicModel::substituteExpectation(bool partial_information_model)
 
   // Add new equations
   for (int i = 0; i < (int) neweqs.size(); i++)
-    addEquation(neweqs[i]);
+    addEquation(neweqs[i], -1);
 
   // Add the new set of equations at the *beginning* of aux_equations
   copy(neweqs.rbegin(), neweqs.rend(), front_inserter(aux_equations));
@@ -4134,8 +4163,9 @@ DynamicModel::transformPredeterminedVariables()
 void
 DynamicModel::detrendEquations()
 {
-  for (nonstationary_symbols_map_t::const_iterator it = nonstationary_symbols_map.begin();
-       it != nonstationary_symbols_map.end(); it++)
+  // We go backwards in the list of trend_vars, to deal correctly with I(2) processes
+  for (nonstationary_symbols_map_t::const_reverse_iterator it = nonstationary_symbols_map.rbegin();
+       it != nonstationary_symbols_map.rend(); ++it)
     for (int i = 0; i < (int) equations.size(); i++)
       {
         BinaryOpNode *substeq = dynamic_cast<BinaryOpNode *>(equations[i]->detrend(it->first, it->second.first, it->second.second));
@@ -4219,19 +4249,20 @@ DynamicModel::isModelLocalVariableUsed() const
   size_t i = 0;
   while (i < equations.size() && used_local_vars.size() == 0)
     {
-      equations[i]->collectModelLocalVariables(used_local_vars);
+      equations[i]->collectVariables(eModelLocalVariable, used_local_vars);
       i++;
     }
   return used_local_vars.size() > 0;
 }
 
 void
-DynamicModel::addStaticOnlyEquation(expr_t eq)
+DynamicModel::addStaticOnlyEquation(expr_t eq, int lineno)
 {
   BinaryOpNode *beq = dynamic_cast<BinaryOpNode *>(eq);
   assert(beq != NULL && beq->get_op_code() == oEqual);
 
   static_only_equations.push_back(beq);
+  static_only_equations_lineno.push_back(lineno);
 }
 
 size_t
@@ -4253,3 +4284,4 @@ DynamicModel::dynamicOnlyEquationsNbr() const
   return eqs.size();
 }
 
+
diff --git a/preprocessor/DynamicModel.hh b/preprocessor/DynamicModel.hh
index 8cc151a3d271e9db7b5a0268933a821637c0233b..c752fe0bcf4855f687703e37c2ee21acefaa7e61 100644
--- a/preprocessor/DynamicModel.hh
+++ b/preprocessor/DynamicModel.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -35,6 +35,9 @@ private:
   /*! They will be used in toStatic() to replace equations marked as [dynamic] */
   vector<BinaryOpNode *> static_only_equations;
 
+  //! Stores line numbers of equations declared as [static]
+  vector<int> static_only_equations_lineno;
+
   typedef map<pair<int, int>, int> deriv_id_table_t;
   //! Maps a pair (symbol_id, lag) to a deriv ID
   deriv_id_table_t deriv_id_table;
@@ -223,7 +226,9 @@ public:
   void toStatic(StaticModel &static_model) const;
 
   //! Find endogenous variables not used in model
-  void findUnusedEndogenous(set<int> &unusedEndogs);
+  set<int> findUnusedEndogenous();
+  //! Find exogenous variables not used in model
+  set<int> findUnusedExogenous();
 
   //! Copies a dynamic model (only the equations)
   /*! It assumes that the dynamic model given in argument has just been allocated */
@@ -235,7 +240,7 @@ public:
   void replaceMyEquations(DynamicModel &dynamic_model) const;
 
   //! Adds an equation marked as [static]
-  void addStaticOnlyEquation(expr_t eq);
+  void addStaticOnlyEquation(expr_t eq, int lineno);
 
   //! Returns number of static only equations
   size_t staticOnlyEquationsNbr() const;
@@ -458,6 +463,38 @@ public:
       return (-1);
   };
   bool isModelLocalVariableUsed() const;
+
+  // in ExternalFiles.cc
+  //! Writes model initialization and lead/lag incidence matrix to C output
+  void writeCOutput(ostream &output, const string &basename, bool block, bool byte_code, bool use_dll, int order, bool estimation_present) const;
+  //! Writes model initialization and lead/lag incidence matrix to Cpp output
+  void writeCCOutput(ostream &output, const string &basename, bool block, bool byte_code, bool use_dll, int order, bool estimation_present) const;
+  //! Writes C file containing first order derivatives of model evaluated at steady state
+  void writeFirstDerivativesC(const string &basename, bool cuda) const;
+  //! Writes C file containing second order derivatives of model evaluated at steady state (compressed sparse column)
+  void writeSecondDerivativesC_csr(const string &basename, bool cuda) const;
+  //! Writes C file containing third order derivatives of model evaluated at steady state (compressed sparse column)
+  void writeThirdDerivativesC_csr(const string &basename, bool cuda) const;
+};
+
+//! Classes to re-order derivatives for various sparse storage formats 
+class derivative
+{
+public:
+  long unsigned int linear_address;
+  long unsigned int col_nbr;
+  unsigned int row_nbr;
+  expr_t value;
+  derivative(long unsigned int arg1, long unsigned int arg2, int arg3, expr_t arg4):
+    linear_address(arg1), col_nbr(arg2), row_nbr(arg3), value(arg4) {};
 };
 
+class derivative_less_than
+{
+public:
+  bool operator()(const derivative & d1, const derivative & d2) const
+  {
+    return d1.linear_address < d2.linear_address;
+  }
+};
 #endif
diff --git a/preprocessor/DynareBison.yy b/preprocessor/DynareBison.yy
index 5207b3a046fb8c1634c15638d7784dc2542a5e06..c2cb723e718060e13898aea04f5a0472d5e7fa3e 100644
--- a/preprocessor/DynareBison.yy
+++ b/preprocessor/DynareBison.yy
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -18,43 +18,19 @@
  */
 
 %skeleton "lalr1.cc"
-%require "2.3"
+%require "2.5"
 %defines
 
-/* Prologue:
-   In Bison <= 2.3, it is inserted in both the .cc and .hh files.
-   In Bison >= 2.3a, it is inserted only in the .cc file.
-   Since Bison 2.4, the new %code directives provide a cleaner way of dealing
-   with the prologue.
-*/
-%{
-using namespace std;
-
+%code top {
 class ParsingDriver;
+}
 
+%code requires {
 #include "ExprNode.hh"
 #include "CodeInterpreter.hh"
+}
 
-/* Little hack: we redefine the macro which computes the locations, because
-   we need to access the location from within the parsing driver for error
-   and warning messages. */
-#define YYLLOC_DEFAULT(Current, Rhs, N)                 \
-  do {                                                  \
-    if (N)                                              \
-      {                                                 \
-        (Current).begin = (Rhs)[1].begin;               \
-        (Current).end   = (Rhs)[N].end;                 \
-      }                                                 \
-    else                                                \
-      {                                                 \
-        (Current).begin = (Current).end = (Rhs)[0].end;	\
-      }                                                 \
-    driver.location = (Current);                        \
-  } while(false)
-
-%}
-
-%name-prefix="Dynare"
+%name-prefix "Dynare"
 
 %parse-param { ParsingDriver &driver }
 %lex-param { ParsingDriver &driver }
@@ -79,7 +55,24 @@ class ParsingDriver;
   PriorDistributions prior_distributions_val;
 };
 
-%{
+%code {
+/* Little hack: we redefine the macro which computes the locations, because
+   we need to access the location from within the parsing driver for error
+   and warning messages. */
+#define YYLLOC_DEFAULT(Current, Rhs, N)                         \
+  do {                                                          \
+    if (N)                                                      \
+      {                                                         \
+        (Current).begin = YYRHSLOC(Rhs, 1).begin;               \
+        (Current).end   = YYRHSLOC(Rhs, N).end;                 \
+      }                                                         \
+    else                                                        \
+      {                                                         \
+        (Current).begin = (Current).end = YYRHSLOC(Rhs, 0).end;	\
+      }                                                         \
+    driver.location = (Current);                                \
+  } while(false)
+
 #include "ParsingDriver.hh"
 
 /* this "connects" the bison parser in the driver to the flex scanner class
@@ -87,51 +80,52 @@ class ParsingDriver;
  * current lexer object of the driver context. */
 #undef yylex
 #define yylex driver.lexer->lex
-%}
+}
 
 %token AIM_SOLVER ANALYTIC_DERIVATION AR AUTOCORR
-%token BAYESIAN_IRF BETA_PDF BLOCK
+%token BAYESIAN_IRF BETA_PDF BLOCK USE_CALIBRATION
 %token BVAR_DENSITY BVAR_FORECAST
 %token BVAR_PRIOR_DECAY BVAR_PRIOR_FLAT BVAR_PRIOR_LAMBDA
 %token BVAR_PRIOR_MU BVAR_PRIOR_OMEGA BVAR_PRIOR_TAU BVAR_PRIOR_TRAIN
 %token BVAR_REPLIC BYTECODE ALL_VALUES_REQUIRED
 %token CALIB_SMOOTHER CHANGE_TYPE CHECK CONDITIONAL_FORECAST CONDITIONAL_FORECAST_PATHS CONF_SIG CONSTANT CONTROLLED_VAREXO CORR COVAR CUTOFF CYCLE_REDUCTION LOGARITHMIC_REDUCTION
-%token DATAFILE FILE DETERMINISTIC DOUBLING DR_CYCLE_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_MAXITER DR_ALGO DROP DSAMPLE DYNASAVE DYNATYPE CALIBRATION DIFFERENTIATE_FORWARD_VARS
+%token CONSIDER_ALL_ENDOGENOUS CONSIDER_ONLY_OBSERVED
+%token DATAFILE FILE DOUBLING DR_CYCLE_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_MAXITER DR_ALGO DROP DSAMPLE DYNASAVE DYNATYPE CALIBRATION DIFFERENTIATE_FORWARD_VARS
 %token END ENDVAL EQUAL ESTIMATION ESTIMATED_PARAMS ESTIMATED_PARAMS_BOUNDS ESTIMATED_PARAMS_INIT EXTENDED_PATH ENDOGENOUS_PRIOR
 %token FILENAME FILTER_STEP_AHEAD FILTERED_VARS FIRST_OBS LAST_OBS SET_TIME
-%token <string_val> FLOAT_NUMBER
+%token <string_val> FLOAT_NUMBER DATES
 %token DEFAULT FIXED_POINT
-%token FORECAST K_ORDER_SOLVER INSTRUMENTS PRIOR SHIFT MEAN STDEV VARIANCE MODE INTERVAL SHAPE DOMAINN
+%token FORECAST K_ORDER_SOLVER INSTRUMENTS SHIFT MEAN STDEV VARIANCE MODE INTERVAL SHAPE DOMAINN
 %token GAMMA_PDF GRAPH GRAPH_FORMAT CONDITIONAL_VARIANCE_DECOMPOSITION NOCHECK STD
-%token HISTVAL HOMOTOPY_SETUP HOMOTOPY_MODE HOMOTOPY_STEPS HOMOTOPY_FORCE_CONTINUE HP_FILTER HP_NGRID HYBRID
-%token IDENTIFICATION INF_CONSTANT INITVAL INITVAL_FILE BOUNDS JSCALE INIT
+%token HISTVAL HISTVAL_FILE HOMOTOPY_SETUP HOMOTOPY_MODE HOMOTOPY_STEPS HOMOTOPY_FORCE_CONTINUE HP_FILTER HP_NGRID HYBRID
+%token IDENTIFICATION INF_CONSTANT INITVAL INITVAL_FILE BOUNDS JSCALE INIT INFILE INVARS
 %token <string_val> INT_NUMBER
-%token <string_val> DATE_NUMBER
-%token INV_GAMMA_PDF INV_GAMMA1_PDF INV_GAMMA2_PDF IRF IRF_SHOCKS
+%token INV_GAMMA_PDF INV_GAMMA1_PDF INV_GAMMA2_PDF IRF IRF_SHOCKS IRF_PLOT_THRESHOLD IRF_CALIBRATION
 %token KALMAN_ALGO KALMAN_TOL SUBSAMPLES OPTIONS TOLF
-%token LAPLACE LIK_ALGO LIK_INIT LINEAR LOAD_IDENT_FILES LOAD_MH_FILE LOAD_PARAMS_AND_STEADY_STATE LOGLINEAR LYAPUNOV
+%token LAPLACE LIK_ALGO LIK_INIT LINEAR LOAD_IDENT_FILES LOAD_MH_FILE LOAD_PARAMS_AND_STEADY_STATE LOGLINEAR LOGDATA LYAPUNOV
 %token LYAPUNOV_FIXED_POINT_TOL LYAPUNOV_DOUBLING_TOL LYAPUNOV_SQUARE_ROOT_SOLVER_TOL LOG_DEFLATOR LOG_TREND_VAR LOG_GROWTH_FACTOR MARKOWITZ MARGINAL_DENSITY MAX MAXIT
-%token MFS MH_DROP MH_INIT_SCALE MH_JSCALE MH_MODE MH_NBLOCKS MH_REPLIC MH_RECOVER MIN MINIMAL_SOLVING_PERIODS SOLVE_MAXIT
+%token MFS MH_CONF_SIG MH_DROP MH_INIT_SCALE MH_JSCALE MH_MODE MH_NBLOCKS MH_REPLIC MH_RECOVER POSTERIOR_MAX_SUBSAMPLE_DRAWS MIN MINIMAL_SOLVING_PERIODS
 %token MODE_CHECK MODE_CHECK_NEIGHBOURHOOD_SIZE MODE_CHECK_SYMMETRIC_PLOTS MODE_CHECK_NUMBER_OF_POINTS MODE_COMPUTE MODE_FILE MODEL MODEL_COMPARISON MODEL_INFO MSHOCKS ABS SIGN
-%token MODEL_DIAGNOSTICS MODIFIEDHARMONICMEAN MOMENTS_VARENDO DIFFUSE_FILTER SUB_DRAWS
+%token MODEL_DIAGNOSTICS MODIFIEDHARMONICMEAN MOMENTS_VARENDO DIFFUSE_FILTER SUB_DRAWS TAPER_STEPS GEWEKE_INTERVAL MCMC_JUMPING_COVARIANCE MOMENT_CALIBRATION
 %token <string_val> NAME
-%token NAN_CONSTANT NO_STATIC NOBS NOCONSTANT NODISPLAY NOCORR NODIAGNOSTIC NOFUNCTIONS
-%token NOGRAPH NOMOMENTS NOPRINT NORMAL_PDF
-%token OBSERVATION_TRENDS OPTIM OPTIM_WEIGHTS ORDER OSR OSR_PARAMS MAX_DIM_COVA_GROUP ADVANCED
-%token PARALLEL_LOCAL_FILES PARAMETERS PARAMETER_SET PARTIAL_INFORMATION PERFECT_FORESIGHT PERIODS PLANNER_OBJECTIVE PLOT_CONDITIONAL_FORECAST PLOT_PRIORS PREFILTER PRESAMPLE
+%token NAN_CONSTANT NO_STATIC NOBS NOCONSTANT NODISPLAY NOCORR NODIAGNOSTIC NOFUNCTIONS NO_HOMOTOPY
+%token NOGRAPH NOMOMENTS NOPRINT NORMAL_PDF SAVE_DRAWS
+%token OBSERVATION_TRENDS OPTIM OPTIM_WEIGHTS ORDER OSR OSR_PARAMS MAX_DIM_COVA_GROUP ADVANCED OUTFILE OUTVARS OVERWRITE
+%token PARALLEL_LOCAL_FILES PARAMETERS PARAMETER_SET PARTIAL_INFORMATION PERFECT_FORESIGHT PERIODS PERIOD PLANNER_OBJECTIVE PLOT_CONDITIONAL_FORECAST PLOT_PRIORS PREFILTER PRESAMPLE
+%token PERFECT_FORESIGHT_SETUP PERFECT_FORESIGHT_SOLVER
 %token PRINT PRIOR_MC PRIOR_TRUNC PRIOR_MODE PRIOR_MEAN POSTERIOR_MODE POSTERIOR_MEAN POSTERIOR_MEDIAN PRUNING
 %token <string_val> QUOTED_STRING
 %token QZ_CRITERIUM QZ_ZERO_THRESHOLD FULL DSGE_VAR DSGE_VARLAG DSGE_PRIOR_WEIGHT TRUNCATE
 %token RELATIVE_IRF REPLIC SIMUL_REPLIC RPLOT SAVE_PARAMS_AND_STEADY_STATE PARAMETER_UNCERTAINTY
-%token SHOCKS SHOCK_DECOMPOSITION SIGMA_E SIMUL SIMUL_ALGO SIMUL_SEED SIMULATION_TYPE
-%token SMOOTHER SQUARE_ROOT_SOLVER STACK_SOLVE_ALGO STEADY_STATE_MODEL STOCHASTIC SOLVE_ALGO SOLVER_PERIODS
+%token SHOCKS SHOCK_DECOMPOSITION SIGMA_E SIMUL SIMUL_ALGO SIMUL_SEED ENDOGENOUS_TERMINAL_PERIOD
+%token SMOOTHER SMOOTHER2HISTVAL SQUARE_ROOT_SOLVER STACK_SOLVE_ALGO STEADY_STATE_MODEL SOLVE_ALGO SOLVER_PERIODS
 %token STDERR STEADY STOCH_SIMUL SURPRISE SYLVESTER SYLVESTER_FIXED_POINT_TOL REGIMES REGIME
-%token TEX RAMSEY_POLICY PLANNER_DISCOUNT DISCRETIONARY_POLICY DISCRETIONARY_TOL
+%token TEX RAMSEY_MODEL RAMSEY_POLICY PLANNER_DISCOUNT DISCRETIONARY_POLICY DISCRETIONARY_TOL
 %token <string_val> TEX_NAME
 %token UNIFORM_PDF UNIT_ROOT_VARS USE_DLL USEAUTOCORR GSA_SAMPLE_FILE USE_UNIVARIATE_FILTERS_IF_SINGULARITY_IS_DETECTED
 %token VALUES VAR VAREXO VAREXO_DET VAROBS PREDETERMINED_VARIABLES
 %token WRITE_LATEX_DYNAMIC_MODEL WRITE_LATEX_STATIC_MODEL
-%token XLS_SHEET XLS_RANGE
+%token XLS_SHEET XLS_RANGE LONG_NAME
 %left COMMA
 %left EQUAL_EQUAL EXCLAMATION_EQUAL
 %left LESS GREATER LESS_EQUAL GREATER_EQUAL
@@ -151,7 +145,7 @@ class ParsingDriver;
 %token VLISTLOG VLISTPER
 %token RESTRICTION RESTRICTION_FNAME CROSS_RESTRICTIONS NLAGS CONTEMP_REDUCED_FORM REAL_PSEUDO_FORECAST
 %token DUMMY_OBS NSTATES INDXSCALESSTATES NO_BAYESIAN_PRIOR SPECIFICATION SIMS_ZHA
-%token <string_val> ALPHA BETA ABAND NINV CMS NCMS CNUM GAMMA INV_GAMMA INV_GAMMA1 INV_GAMMA2 NORMAL UNIFORM EPS PDF FIG DR NONE
+%token <string_val> ALPHA BETA ABAND NINV CMS NCMS CNUM GAMMA INV_GAMMA INV_GAMMA1 INV_GAMMA2 NORMAL UNIFORM EPS PDF FIG DR NONE PRIOR PRIOR_VARIANCE HESSIAN IDENTITY_MATRIX DIRICHLET
 %token GSIG2_LMDM Q_DIAG FLAT_PRIOR NCSK NSTD
 %token INDXPARR INDXOVR INDXAP APBAND INDXIMF IMFBAND INDXFORE FOREBAND INDXGFOREHAT INDXGIMFHAT
 %token INDXESTIMA INDXGDLS EQ_MS FILTER_COVARIANCE FILTER_DECOMPOSITION
@@ -160,7 +154,7 @@ class ParsingDriver;
 %token SBVAR TREND_VAR DEFLATOR GROWTH_FACTOR MS_IRF MS_VARIANCE_DECOMPOSITION
 %token MS_ESTIMATION MS_SIMULATION MS_COMPUTE_MDD MS_COMPUTE_PROBABILITIES MS_FORECAST
 %token SVAR_IDENTIFICATION EQUATION EXCLUSION LAG UPPER_CHOLESKY LOWER_CHOLESKY MONTHLY QUARTERLY
-%token MARKOV_SWITCHING CHAIN DURATION NUMBER_OF_REGIMES
+%token MARKOV_SWITCHING CHAIN DURATION NUMBER_OF_REGIMES NUMBER_OF_LAGS
 %token SVAR COEFF COEFFICIENTS VARIANCES CONSTANTS EQUATIONS
 %token EXTERNAL_FUNCTION EXT_FUNC_NAME EXT_FUNC_NARGS FIRST_DERIV_PROVIDED SECOND_DERIV_PROVIDED
 %token SELECTED_VARIABLES_ONLY COVA_COMPUTE SIMULATION_FILE_TAG FILE_TAG
@@ -178,12 +172,13 @@ class ParsingDriver;
 
 %type <node_val> expression expression_or_empty
 %type <node_val> equation hand_side
-%type <string_val> non_negative_number signed_number signed_integer date_number
-%type <string_val> filename symbol vec_of_vec_value vec_value_list
+%type <string_val> non_negative_number signed_number signed_integer date_str
+%type <string_val> filename symbol vec_of_vec_value vec_value_list date_expr
 %type <string_val> vec_value_1 vec_value signed_inf signed_number_w_inf
-%type <string_val> range vec_value_w_inf vec_value_1_w_inf
+%type <string_val> range vec_value_w_inf vec_value_1_w_inf named_var
+%type <string_val> integer_range signed_integer_range
 %type <symbol_type_val> change_type_arg
-%type <vector_string_val> change_type_var_list subsamples_eq_opt prior_eq_opt options_eq_opt
+%type <vector_string_val> change_type_var_list subsamples_eq_opt prior_eq_opt options_eq_opt calibration_range
 %type <vector_int_val> vec_int_elem vec_int_1 vec_int vec_int_number
 %type <prior_distributions_val> prior_pdf prior_distribution
 %%
@@ -239,6 +234,7 @@ statement : parameters
           | model_comparison
           | model_info
           | planner_objective
+          | ramsey_model
           | ramsey_policy
           | discretionary_policy
           | bvar_density
@@ -273,6 +269,12 @@ statement : parameters
           | calib_smoother
           | extended_path
           | model_diagnostics
+          | moment_calibration
+          | irf_calibration
+          | smoother2histval
+          | histval_file
+          | perfect_foresight_setup
+          | perfect_foresight_solver
           ;
 
 dsample : DSAMPLE INT_NUMBER ';'
@@ -332,12 +334,24 @@ nonstationary_var_list : nonstationary_var_list symbol
                          { driver.declare_nonstationary_var($3); }
                        | symbol
                          { driver.declare_nonstationary_var($1); }
+                       |  nonstationary_var_list symbol named_var
+                         { driver.declare_nonstationary_var($2, NULL, $3); }
+                       | nonstationary_var_list COMMA symbol named_var
+                         { driver.declare_nonstationary_var($3, NULL, $4); }
+                       | symbol named_var
+                         { driver.declare_nonstationary_var($1, NULL, $2); }
                        | nonstationary_var_list symbol TEX_NAME
                          { driver.declare_nonstationary_var($2, $3); }
                        | nonstationary_var_list COMMA symbol TEX_NAME
                          { driver.declare_nonstationary_var($3, $4); }
                        | symbol TEX_NAME
                          { driver.declare_nonstationary_var($1, $2); }
+                       | nonstationary_var_list symbol TEX_NAME named_var
+                         { driver.declare_nonstationary_var($2, $3, $4); }
+                       | nonstationary_var_list COMMA symbol TEX_NAME named_var
+                         { driver.declare_nonstationary_var($3, $4, $5); }
+                       | symbol TEX_NAME named_var
+                         { driver.declare_nonstationary_var($1, $2, $3); }
                        ;
 
 varexo : VAREXO varexo_list ';';
@@ -348,18 +362,34 @@ predetermined_variables : PREDETERMINED_VARIABLES predetermined_variables_list '
 
 parameters : PARAMETERS parameter_list ';';
 
+named_var : '(' LONG_NAME EQUAL QUOTED_STRING ')'
+            { $$ = $4; }
+          ;
+
 var_list : var_list symbol
            { driver.declare_endogenous($2); }
          | var_list COMMA symbol
            { driver.declare_endogenous($3); }
          | symbol
            { driver.declare_endogenous($1); }
+         | var_list symbol named_var
+           { driver.declare_endogenous($2, NULL, $3); }
+         | var_list COMMA symbol named_var
+           { driver.declare_endogenous($3, NULL, $4); }
+         | symbol named_var
+           { driver.declare_endogenous($1, NULL, $2); }
          | var_list symbol TEX_NAME
            { driver.declare_endogenous($2, $3); }
          | var_list COMMA symbol TEX_NAME
            { driver.declare_endogenous($3, $4); }
          | symbol TEX_NAME
            { driver.declare_endogenous($1, $2); }
+         | var_list symbol TEX_NAME named_var
+           { driver.declare_endogenous($2, $3, $4); }
+         | var_list COMMA symbol TEX_NAME named_var
+           { driver.declare_endogenous($3, $4, $5); }
+         | symbol TEX_NAME named_var
+           { driver.declare_endogenous($1, $2, $3); }
          ;
 
 varexo_list : varexo_list symbol
@@ -368,12 +398,24 @@ varexo_list : varexo_list symbol
               { driver.declare_exogenous($3); }
             | symbol
               { driver.declare_exogenous($1); }
+            | varexo_list symbol named_var
+              { driver.declare_exogenous($2, NULL, $3); }
+            | varexo_list COMMA symbol named_var
+              { driver.declare_exogenous($3, NULL, $4); }
+            | symbol named_var
+              { driver.declare_exogenous($1, NULL, $2); }
             | varexo_list symbol TEX_NAME
               { driver.declare_exogenous($2, $3); }
             | varexo_list COMMA symbol TEX_NAME
               { driver.declare_exogenous($3, $4); }
             | symbol TEX_NAME
               { driver.declare_exogenous($1, $2); }
+            | varexo_list symbol TEX_NAME named_var
+              { driver.declare_exogenous($2, $3, $4); }
+            | varexo_list COMMA symbol TEX_NAME named_var
+              { driver.declare_exogenous($3, $4, $5); }
+            | symbol TEX_NAME named_var
+              { driver.declare_exogenous($1, $2, $3); }
             ;
 
 varexo_det_list : varexo_det_list symbol
@@ -382,12 +424,24 @@ varexo_det_list : varexo_det_list symbol
                   { driver.declare_exogenous_det($3); }
                 | symbol
                   { driver.declare_exogenous_det($1); }
+                | varexo_det_list symbol named_var
+                  { driver.declare_exogenous_det($2, NULL, $3); }
+                | varexo_det_list COMMA symbol named_var
+                  { driver.declare_exogenous_det($3, NULL, $4); }
+                | symbol named_var
+                  { driver.declare_exogenous_det($1, NULL, $2); }
                 | varexo_det_list symbol TEX_NAME
                   { driver.declare_exogenous_det($2, $3); }
                 | varexo_det_list COMMA symbol TEX_NAME
                   { driver.declare_exogenous_det($3, $4); }
                 | symbol TEX_NAME
                    { driver.declare_exogenous_det($1, $2); }
+                | varexo_det_list symbol TEX_NAME named_var
+                  { driver.declare_exogenous_det($2, $3, $4); }
+                | varexo_det_list COMMA symbol TEX_NAME named_var
+                  { driver.declare_exogenous_det($3, $4, $5); }
+                | symbol TEX_NAME named_var
+                   { driver.declare_exogenous_det($1, $2, $3); }
                 ;
 
 parameter_list : parameter_list symbol
@@ -396,12 +450,24 @@ parameter_list : parameter_list symbol
                  { driver.declare_parameter($3); }
                | symbol
                  { driver.declare_parameter($1); }
+               | parameter_list symbol named_var
+                 { driver.declare_parameter($2, NULL, $3); }
+               | parameter_list COMMA symbol named_var
+                 { driver.declare_parameter($3, NULL, $4); }
+               | symbol named_var
+                 { driver.declare_parameter($1, NULL, $2); }
                | parameter_list symbol TEX_NAME
                  { driver.declare_parameter($2, $3); }
                | parameter_list COMMA symbol TEX_NAME
                  { driver.declare_parameter($3, $4); }
                | symbol TEX_NAME
                  { driver.declare_parameter($1, $2); }
+               | parameter_list symbol TEX_NAME named_var
+                 { driver.declare_parameter($2, $3, $4); }
+               | parameter_list COMMA symbol TEX_NAME named_var
+                 { driver.declare_parameter($3, $4, $5); }
+               | symbol TEX_NAME named_var
+                 { driver.declare_parameter($1, $2, $3); }
                ;
 
 predetermined_variables_list : predetermined_variables_list symbol
@@ -562,6 +628,10 @@ histval_list : histval_list histval_elem
 
 histval_elem : symbol '(' signed_integer ')' EQUAL expression ';' { driver.hist_val($1, $3, $6); };
 
+histval_file : HISTVAL_FILE '(' FILENAME EQUAL filename ')' ';'
+               { driver.histval_file($5); }
+             ;
+
 model_options : BLOCK { driver.block(); }
               | o_cutoff
 							| o_mfs
@@ -699,7 +769,9 @@ comma_hand_side : hand_side
 pound_expression: '#' symbol EQUAL hand_side ';'
                   { driver.declare_and_init_model_local_variable($2, $4); };
 
-shocks : SHOCKS ';' shock_list END ';' { driver.end_shocks(); };
+shocks : SHOCKS ';' shock_list END ';' { driver.end_shocks(false); }
+       | SHOCKS '(' OVERWRITE ')' ';' shock_list END ';' { driver.end_shocks(true); }
+       ;
 
 shock_list : shock_list shock_elem
            | shock_elem
@@ -785,6 +857,8 @@ ms_options : o_chain
            | o_duration
            | o_restrictions
            | o_number_of_regimes
+           | o_number_of_lags
+           | o_parameters
            ;
 
 svar : SVAR '(' svar_options_list ')' ';'
@@ -801,7 +875,9 @@ svar_options : o_coefficients
              | o_chain
              ;
 
-mshocks : MSHOCKS ';' mshock_list END ';' { driver.end_mshocks(); };
+mshocks : MSHOCKS ';' mshock_list END ';' { driver.end_mshocks(false); }
+        | MSHOCKS '(' OVERWRITE ')' ';' mshock_list END ';' { driver.end_mshocks(true); }
+        ;
 
 mshock_list : mshock_list det_shock_elem
             | det_shock_elem
@@ -821,12 +897,6 @@ period_list : period_list COMMA INT_NUMBER
               { driver.add_period($1); }
             ;
 
-expectation_type : PERFECT_FORESIGHT
-                   { driver.add_expectation_pf(true); }
-                 | SURPRISE
-                   { driver.add_expectation_pf(false); }
-                ;
-
 sigma_e : SIGMA_E EQUAL '[' triangular_matrix ']' ';' { driver.do_sigma_e(); };
 
 value_list : value_list COMMA '(' expression ')'
@@ -878,7 +948,7 @@ steady_options : o_solve_algo
                | o_homotopy_steps
                | o_homotopy_force_continue
                | o_markowitz
-               | o_maxit
+               | o_steady_maxit
                | o_nocheck
                ;
 
@@ -907,6 +977,38 @@ model_info_options_list : model_info_options_list COMMA model_info_options
                    ;
 model_info_options :
 
+perfect_foresight_setup : PERFECT_FORESIGHT_SETUP ';'
+                          { driver.perfect_foresight_setup(); }
+                        | PERFECT_FORESIGHT_SETUP '(' perfect_foresight_setup_options_list ')' ';'
+                          { driver.perfect_foresight_setup(); }
+                        ;
+
+perfect_foresight_setup_options_list : perfect_foresight_setup_options_list COMMA perfect_foresight_setup_options
+                                     | perfect_foresight_setup_options
+                                     ;
+
+perfect_foresight_setup_options : o_periods
+                                | o_datafile
+                                ;
+
+perfect_foresight_solver : PERFECT_FORESIGHT_SOLVER ';'
+                          { driver.perfect_foresight_solver(); }
+                         | PERFECT_FORESIGHT_SOLVER '(' perfect_foresight_solver_options_list ')' ';'
+                          { driver.perfect_foresight_solver(); }
+                         ;
+
+perfect_foresight_solver_options_list : perfect_foresight_solver_options_list COMMA perfect_foresight_solver_options
+                                     | perfect_foresight_solver_options
+                                     ;
+
+perfect_foresight_solver_options : o_stack_solve_algo
+                                 | o_markowitz
+                                 | o_minimal_solving_periods
+                                 | o_simul_maxit
+	                         | o_endogenous_terminal_period
+                                 | o_no_homotopy
+                                 ;
+
 simul : SIMUL ';'
         { driver.simul(); }
       | SIMUL '(' simul_options_list ')' ';'
@@ -917,12 +1019,8 @@ simul_options_list : simul_options_list COMMA simul_options
                    | simul_options
                    ;
 
-simul_options : o_periods
-              | o_datafile
-              | o_stack_solve_algo
-              | o_markowitz
-              | o_minimal_solving_periods
-              | o_maxit
+simul_options : perfect_foresight_setup_options
+              | perfect_foresight_solver_options
               ;
 
 external_function : EXTERNAL_FUNCTION '(' external_function_options_list ')' ';'
@@ -991,6 +1089,7 @@ stoch_simul_primary_options : o_dr_algo
                             | o_dr_cycle_reduction_tol
                             | o_dr_logarithmic_reduction_tol
                             | o_dr_logarithmic_reduction_maxiter
+                            | o_irf_plot_threshold
                             ;
 
 stoch_simul_options : stoch_simul_primary_options
@@ -1024,10 +1123,6 @@ non_negative_number : INT_NUMBER
                     | FLOAT_NUMBER
                     ;
 
-date_number : DATE_NUMBER
-            | INT_NUMBER
-            ;
-
 signed_number : PLUS non_negative_number
                { $$ = $2; }
               | MINUS non_negative_number
@@ -1141,7 +1236,12 @@ estimated_elem3 : expression_or_empty COMMA expression_or_empty
                 ;
 
 estimated_params_init : ESTIMATED_PARAMS_INIT ';' estimated_init_list END ';'
-                        { driver.estimated_params_init(); };
+                        { driver.estimated_params_init(); }
+                      | ESTIMATED_PARAMS_INIT '(' USE_CALIBRATION ')' ';' END ';'
+                        { driver.estimated_params_init(true); }
+                      | ESTIMATED_PARAMS_INIT '(' USE_CALIBRATION ')' ';' estimated_init_list END ';'
+                        { driver.estimated_params_init(true); }
+                      ;
 
 estimated_init_list : estimated_init_list estimated_init_elem
                       { driver.add_estimated_params_element(); }
@@ -1225,6 +1325,8 @@ prior_distribution : BETA
                      { $$ = eUniform; }
                    | INV_GAMMA2
                      { $$ = eInvGamma2; }
+                   | DIRICHLET
+                     { $$ = eDirichlet; }
                    ;
 
 prior_pdf : BETA_PDF
@@ -1243,7 +1345,15 @@ prior_pdf : BETA_PDF
             { $$ = eInvGamma2; }
           ;
 
-set_time : SET_TIME '(' date_number ')' ';'
+date_str : DATES { $$ = $1; }
+
+date_expr : date_str
+            { $$ = $1; }
+          | date_expr PLUS INT_NUMBER
+            { $$ = $1; $$->append("+").append(*$3); }
+          ;
+
+set_time : SET_TIME '(' date_expr ')' ';'
            { driver.set_time($3); }
          ;
 
@@ -1495,6 +1605,7 @@ estimation_options : o_datafile
                    | o_nodisplay
                    | o_graph_format
                    | o_conf_sig
+                   | o_mh_conf_sig
                    | o_mh_replic
                    | o_mh_drop
                    | o_mh_jscale
@@ -1511,6 +1622,7 @@ estimation_options : o_datafile
                    | o_mh_nblocks
                    | o_load_mh_file
                    | o_loglinear
+		   | o_logdata
                    | o_nodiagnostic
                    | o_bayesian_irf
                    | o_dsge_var
@@ -1555,7 +1667,14 @@ estimation_options : o_datafile
                    | o_ar
                    | o_endogenous_prior
                    | o_use_univariate_filters_if_singularity_is_detected
-		   | o_qz_zero_threshold
+                   | o_qz_zero_threshold
+                   | o_taper_steps
+                   | o_geweke_interval
+                   | o_mcmc_jumping_covariance
+                   | o_irf_plot_threshold
+                   | o_posterior_max_subsample_draws
+                   | o_consider_all_endogenous
+                   | o_consider_only_observed
                    ;
 
 list_optim_option : QUOTED_STRING COMMA QUOTED_STRING
@@ -1703,6 +1822,16 @@ mc_filename_list : filename
 planner_objective : PLANNER_OBJECTIVE { driver.begin_planner_objective(); }
                     hand_side { driver.end_planner_objective($3); } ';';
 
+ramsey_model : RAMSEY_MODEL ';'
+                { driver.ramsey_model(); }
+              | RAMSEY_MODEL '(' ramsey_model_options_list ')' ';'
+                { driver.ramsey_model(); }
+              | RAMSEY_MODEL symbol_list ';'
+                { driver.ramsey_model(); }
+              | RAMSEY_MODEL '(' ramsey_model_options_list ')' symbol_list ';'
+                { driver.ramsey_model(); }
+              ;
+
 ramsey_policy : RAMSEY_POLICY ';'
                 { driver.ramsey_policy(); }
               | RAMSEY_POLICY '(' ramsey_policy_options_list ')' ';'
@@ -1729,9 +1858,17 @@ discretionary_policy_options_list : discretionary_policy_options_list COMMA disc
 
 discretionary_policy_options : ramsey_policy_options 
                              | o_discretionary_tol;
-                             | o_solve_maxit;
+                             | o_dp_maxit;
                              ;
 
+ramsey_model_options_list : ramsey_model_options_list COMMA ramsey_model_options
+                           | ramsey_model_options
+                           ;
+
+ramsey_model_options :  o_planner_discount
+                      | o_instruments
+                      ;
+
 ramsey_policy_options_list : ramsey_policy_options_list COMMA ramsey_policy_options
                            | ramsey_policy_options
                            ;
@@ -1989,6 +2126,7 @@ ms_simulation_option : o_output_file_tag
                      | o_ms_drop
                      | o_thinning_factor
                      | o_adaptive_mh_draws
+                     | o_save_draws
                      ;
 
 ms_simulation_options_list : ms_simulation_option COMMA ms_simulation_options_list
@@ -2100,6 +2238,7 @@ dynare_sensitivity_option : o_gsa_identification
                           | o_nodisplay
                           | o_graph_format
                           | o_conf_sig
+                          | o_mh_conf_sig
                           | o_loglinear
                           | o_mode_file
                           | o_load_ident_files
@@ -2160,7 +2299,6 @@ conditional_forecast_option : o_periods
                             | o_conf_sig
                             | o_controlled_varexo
                             | o_parameter_set
-                            | o_simulation_type
                             ;
 
 plot_conditional_forecast : PLOT_CONDITIONAL_FORECAST symbol_list ';'
@@ -2179,8 +2317,6 @@ conditional_forecast_paths_shock_list : conditional_forecast_paths_shock_elem
 
 conditional_forecast_paths_shock_elem : VAR symbol ';' PERIODS period_list ';' VALUES value_list ';'
                                         { driver.add_det_shock($2, true); }
-                                      | VAR symbol ';' PERIODS period_list ';' VALUES value_list ';' EXPECTATION expectation_type ';'
-                                        { driver.add_det_shock($2, true); }
                                       ;
 
 steady_state_model : STEADY_STATE_MODEL ';' { driver.begin_steady_state_model(); }
@@ -2236,6 +2372,81 @@ model_diagnostics : MODEL_DIAGNOSTICS ';'
                     { driver.model_diagnostics(); }
                   ;
 
+calibration_range : '[' signed_number_w_inf signed_number_w_inf ']'
+                    {
+                      $$ = new vector<string *>();
+                      $$->push_back($2);
+                      $$->push_back($3);
+                    }
+                  | '[' signed_number_w_inf COMMA signed_number_w_inf ']'
+                    {
+                      $$ = new vector<string *>();
+                      $$->push_back($2);
+                      $$->push_back($4);
+                    }
+                  | PLUS
+                    {
+                      $$ = new vector<string *>();
+                      $$->push_back(new string("0"));
+                      $$->push_back(new string("inf"));
+                    }
+                  | MINUS
+                    {
+                      $$ = new vector<string *>();
+                      $$->push_back(new string("-inf"));
+                      $$->push_back(new string("0"));
+                    }
+                  ;
+
+moment_calibration : MOMENT_CALIBRATION ';' moment_calibration_list END ';'
+                     { driver.end_moment_calibration(); }
+                   ;
+
+moment_calibration_list : moment_calibration_item
+                        | moment_calibration_list moment_calibration_item
+                        ;
+
+moment_calibration_item : symbol COMMA symbol COMMA calibration_range ';'
+                          { driver.add_moment_calibration_item($1, $3, new string("0"), $5); }
+                        | symbol COMMA symbol '(' signed_integer ')' COMMA calibration_range ';'
+                          { driver.add_moment_calibration_item($1, $3, $5, $8); }
+                        | symbol COMMA symbol '(' signed_integer_range ')' COMMA calibration_range ';'
+                          { driver.add_moment_calibration_item($1, $3, $5, $8); }
+                        ;
+
+irf_calibration : IRF_CALIBRATION ';' irf_calibration_list END ';'
+                  { driver.end_irf_calibration(); }
+                ;
+
+irf_calibration_list : irf_calibration_item
+                     | irf_calibration_list irf_calibration_item
+                     ;
+
+irf_calibration_item : symbol COMMA symbol COMMA calibration_range ';'
+                       { driver.add_irf_calibration_item($1, new string("1"), $3, $5); }
+                     | symbol '(' INT_NUMBER ')' COMMA symbol COMMA calibration_range ';'
+                       { driver.add_irf_calibration_item($1, $3, $6, $8); }
+                     | symbol '(' integer_range ')' COMMA symbol COMMA calibration_range ';'
+                       { driver.add_irf_calibration_item($1, $3, $6, $8); }
+                     ;
+
+smoother2histval : SMOOTHER2HISTVAL ';'
+                   { driver.smoother2histval(); }
+                 | SMOOTHER2HISTVAL '(' smoother2histval_options_list ')' ';'
+                   { driver.smoother2histval(); }
+                 ;
+
+smoother2histval_options_list : smoother2histval_option COMMA smoother2histval_options_list
+                              | smoother2histval_option
+                              ;
+
+smoother2histval_option : o_infile
+                        | o_invars
+                        | o_period
+                        | o_outfile
+                        | o_outvars
+                        ;
+
 o_dr_algo : DR_ALGO EQUAL INT_NUMBER {
                                        if (*$3 == string("0"))
                                          driver.warning("dr_algo option is now deprecated, and may be removed in a future version of Dynare");
@@ -2250,6 +2461,7 @@ o_simul_algo : SIMUL_ALGO EQUAL INT_NUMBER {
                                                driver.error("simul_algo=1 option is no longer supported");
                                            };
 o_stack_solve_algo : STACK_SOLVE_ALGO EQUAL INT_NUMBER { driver.option_num("stack_solve_algo", $3); };
+o_endogenous_terminal_period : ENDOGENOUS_TERMINAL_PERIOD { driver.option_num("endogenous_terminal_period", "1"); };
 o_linear : LINEAR { driver.linear(); };
 o_order : ORDER EQUAL INT_NUMBER { driver.option_num("order", $3); };
 o_replic : REPLIC EQUAL INT_NUMBER { driver.option_num("replic", $3); };
@@ -2266,10 +2478,11 @@ o_periods : PERIODS EQUAL INT_NUMBER { driver.option_num("periods", $3); };
 o_solver_periods : SOLVER_PERIODS EQUAL INT_NUMBER { driver.option_num("ep.periods", $3); };
 o_extended_path_order : ORDER EQUAL INT_NUMBER { driver.option_num("ep.stochastic.order", $3); };
 o_hybrid : HYBRID { driver.option_num("ep.stochastic.hybrid_order", "2"); };
-o_maxit : MAXIT EQUAL INT_NUMBER { driver.option_num("maxit_", $3); };
+o_steady_maxit : MAXIT EQUAL INT_NUMBER { driver.option_num("steady.maxit", $3); };
+o_simul_maxit : MAXIT EQUAL INT_NUMBER { driver.option_num("simul.maxit", $3); };
+o_dp_maxit : MAXIT EQUAL INT_NUMBER { driver.option_num("dp.maxit", $3); };
 o_osr_maxit : MAXIT EQUAL INT_NUMBER { driver.option_num("osr.maxit", $3); };
 o_osr_tolf : TOLF EQUAL non_negative_number { driver.option_num("osr.tolf", $3); };
-o_solve_maxit : SOLVE_MAXIT EQUAL INT_NUMBER { driver.option_num("solve_maxit", $3); };
 o_cutoff : CUTOFF EQUAL non_negative_number { driver.cutoff($3); };
 o_markowitz : MARKOWITZ EQUAL non_negative_number { driver.option_num("markowitz", $3); };
 o_minimal_solving_periods : MINIMAL_SOLVING_PERIODS EQUAL non_negative_number { driver.option_num("minimal_solving_periods", $3); };
@@ -2292,10 +2505,10 @@ o_conditional_variance_decomposition : CONDITIONAL_VARIANCE_DECOMPOSITION EQUAL
                                        { driver.option_vec_int("conditional_variance_decomposition", $3); }
                                      ;
 o_first_obs : FIRST_OBS EQUAL INT_NUMBER { driver.option_num("first_obs", $3); };
-o_new_estimation_data_first_obs : FIRST_OBS EQUAL date_number
+o_new_estimation_data_first_obs : FIRST_OBS EQUAL date_expr
                                   { driver.option_date("first_obs", $3); }
                                 ;
-o_last_obs : LAST_OBS EQUAL date_number
+o_last_obs : LAST_OBS EQUAL date_expr
              { driver.option_date("last_obs", $3); }
            ;
 o_shift : SHIFT EQUAL signed_number { driver.option_num("shift", $3); };
@@ -2339,11 +2552,13 @@ list_allowed_graph_formats : allowed_graph_formats
                            | list_allowed_graph_formats COMMA allowed_graph_formats
                            ;
 
-o_subsample_name : symbol EQUAL date_number ':' date_number
+o_subsample_name : symbol EQUAL date_expr ':' date_expr
                    { driver.set_subsample_name_equal_to_date_range($1, $3, $5); }
                  ;
 o_conf_sig : CONF_SIG EQUAL non_negative_number { driver.option_num("conf_sig", $3); };
+o_mh_conf_sig : MH_CONF_SIG EQUAL non_negative_number { driver.option_num("mh_conf_sig", $3); };
 o_mh_replic : MH_REPLIC EQUAL INT_NUMBER { driver.option_num("mh_replic", $3); };
+o_posterior_max_subsample_draws : POSTERIOR_MAX_SUBSAMPLE_DRAWS EQUAL INT_NUMBER { driver.option_num("posterior_max_subsample_draws", $3); };
 o_mh_drop : MH_DROP EQUAL non_negative_number { driver.option_num("mh_drop", $3); };
 o_mh_jscale : MH_JSCALE EQUAL non_negative_number { driver.option_num("mh_jscale", $3); };
 o_optim : OPTIM  EQUAL '(' optim_options ')';
@@ -2360,6 +2575,7 @@ o_mh_mode : MH_MODE EQUAL INT_NUMBER { driver.option_num("mh_mode", $3); };
 o_mh_nblocks : MH_NBLOCKS EQUAL INT_NUMBER { driver.option_num("mh_nblck", $3); };
 o_load_mh_file : LOAD_MH_FILE { driver.option_num("load_mh_file", "1"); };
 o_loglinear : LOGLINEAR { driver.option_num("loglinear", "1"); };
+o_logdata : LOGDATA { driver.option_num("logdata", "1"); };
 o_nodiagnostic : NODIAGNOSTIC { driver.option_num("nodiagnostic", "1"); };
 o_bayesian_irf : BAYESIAN_IRF { driver.option_num("bayesian_irf", "1"); };
 o_dsge_var : DSGE_VAR EQUAL non_negative_number
@@ -2388,6 +2604,8 @@ o_noprint : NOPRINT { driver.option_num("noprint", "1"); };
 o_xls_sheet : XLS_SHEET EQUAL symbol { driver.option_str("xls_sheet", $3); };
 o_xls_range : XLS_RANGE EQUAL range { driver.option_str("xls_range", $3); };
 o_filter_step_ahead : FILTER_STEP_AHEAD EQUAL vec_int { driver.option_vec_int("filter_step_ahead", $3); };
+o_taper_steps : TAPER_STEPS EQUAL vec_int { driver.option_vec_int("taper_steps", $3); };
+o_geweke_interval : GEWEKE_INTERVAL EQUAL vec_value { driver.option_num("geweke_interval",$3); };
 o_constant : CONSTANT { driver.option_num("noconstant", "0"); };
 o_noconstant : NOCONSTANT { driver.option_num("noconstant", "1"); };
 o_mh_recover : MH_RECOVER { driver.option_num("mh_recover", "1"); };
@@ -2485,11 +2703,6 @@ o_parameter_set : PARAMETER_SET EQUAL PRIOR_MODE
                 | PARAMETER_SET EQUAL CALIBRATION
                   { driver.option_str("parameter_set", "calibration"); }
                 ;
-o_simulation_type : SIMULATION_TYPE EQUAL DETERMINISTIC
-                    { driver.option_str("simulation_type", "deterministic"); }
-                  | SIMULATION_TYPE EQUAL STOCHASTIC
-                    { driver.option_str("simulation_type", "stochastic"); }
-                  ;
 o_ms_drop : DROP EQUAL INT_NUMBER { driver.option_num("ms.drop", $3); };
 o_ms_mh_replic : MH_REPLIC EQUAL INT_NUMBER { driver.option_num("ms.mh_replic", $3); };
 o_freq : FREQ EQUAL INT_NUMBER
@@ -2575,6 +2788,8 @@ o_duration : DURATION EQUAL non_negative_number
              { driver.option_num("ms.duration",$3); }
            ;
 o_number_of_regimes : NUMBER_OF_REGIMES EQUAL INT_NUMBER { driver.option_num("ms.number_of_regimes",$3); };
+o_number_of_lags : NUMBER_OF_LAGS EQUAL INT_NUMBER { driver.option_num("ms.number_of_lags",$3); };
+o_parameters : PARAMETERS EQUAL '[' symbol_list ']' { driver.option_symbol_list("ms.parameters"); };
 o_coefficients : COEFFICIENTS { driver.option_str("ms.coefficients","svar_coefficients"); };
 o_variances : VARIANCES { driver.option_str("ms.variances","svar_variances"); };
 o_equations : EQUATIONS EQUAL vec_int
@@ -2647,6 +2862,7 @@ o_random_parameter_convergence_criterion : RANDOM_PARAMETER_CONVERGENCE_CRITERIO
                                            { driver.option_num("ms.random_parameter_convergence_criterion",$3); };
 o_thinning_factor : THINNING_FACTOR EQUAL INT_NUMBER { driver.option_num("ms.thinning_factor",$3); };
 o_adaptive_mh_draws : ADAPTIVE_MH_DRAWS EQUAL INT_NUMBER { driver.option_num("ms.adaptive_mh_draws",$3); };
+o_save_draws : SAVE_DRAWS { driver.option_num("ms.save_draws","1"); };
 o_proposal_draws : PROPOSAL_DRAWS EQUAL INT_NUMBER { driver.option_num("ms.proposal_draws",$3); };
 o_use_mean_center : USE_MEAN_CENTER { driver.option_num("ms.use_mean_center","1"); };
 o_proposal_type : PROPOSAL_TYPE EQUAL INT_NUMBER { driver.option_num("ms.proposal_type",$3); }
@@ -2670,6 +2886,24 @@ o_discretionary_tol: DISCRETIONARY_TOL EQUAL non_negative_number { driver.option
 o_analytic_derivation : ANALYTIC_DERIVATION { driver.option_num("analytic_derivation", "1"); }
 o_endogenous_prior : ENDOGENOUS_PRIOR { driver.option_num("endogenous_prior", "1"); }
 o_use_univariate_filters_if_singularity_is_detected : USE_UNIVARIATE_FILTERS_IF_SINGULARITY_IS_DETECTED EQUAL INT_NUMBER { driver.option_num("use_univariate_filters_if_singularity_is_detected", $3); }
+o_mcmc_jumping_covariance : MCMC_JUMPING_COVARIANCE EQUAL HESSIAN
+                            { driver.option_str("MCMC_jumping_covariance", $3); }                                  | MCMC_JUMPING_COVARIANCE EQUAL PRIOR_VARIANCE
+                            { driver.option_str("MCMC_jumping_covariance", $3); }
+                          | MCMC_JUMPING_COVARIANCE EQUAL IDENTITY_MATRIX
+                            { driver.option_str("MCMC_jumping_covariance", $3); }
+                          | MCMC_JUMPING_COVARIANCE EQUAL filename
+                            { driver.option_str("MCMC_jumping_covariance", $3); }
+                          ;
+o_irf_plot_threshold : IRF_PLOT_THRESHOLD EQUAL non_negative_number { driver.option_num("impulse_responses.plot_threshold", $3); };
+o_consider_all_endogenous : CONSIDER_ALL_ENDOGENOUS { driver.option_str("endo_vars_for_moment_computations_in_estimation", "all_endogenous_variables"); };
+o_consider_only_observed : CONSIDER_ONLY_OBSERVED { driver.option_str("endo_vars_for_moment_computations_in_estimation", "only_observed_variables"); };
+o_no_homotopy : NO_HOMOTOPY { driver.option_num("no_homotopy", "1"); };
+
+o_infile : INFILE EQUAL filename { driver.option_str("infile", $3); };
+o_invars : INVARS EQUAL '(' symbol_list ')' { driver.option_symbol_list("invars"); };
+o_period : PERIOD EQUAL INT_NUMBER { driver.option_num("period", $3); };
+o_outfile : OUTFILE EQUAL filename { driver.option_str("outfile", $3); };
+o_outvars : OUTVARS EQUAL '(' symbol_list ')' { driver.option_symbol_list("outvars"); };
 
 range : symbol ':' symbol
         {
@@ -2679,6 +2913,31 @@ range : symbol ':' symbol
           $$ = $1;
         };
 
+integer_range : INT_NUMBER ':' INT_NUMBER
+                {
+                  $1->append(":");
+                  $1->append(*$3);
+                  delete $3;
+                  $$ = $1;
+                };
+        
+signed_integer_range : signed_integer ':' signed_integer
+                       {
+                         $1->append(":");
+                         $1->append(*$3);
+                         delete $3;
+                         $$ = $1;
+                       }
+                     | MINUS '(' signed_integer ':' signed_integer ')'
+                       {
+                         $3->insert(0, "-(");
+                         $3->append(":");
+                         $3->append(*$5);
+                         delete $5;
+                         $3->append(")");
+                         $$ = $3;
+                       };
+
 vec_int_number : INT_NUMBER { $$ = new vector<int>(); $$->push_back(atoi((*$1).c_str())); delete $1; };
 
 vec_int_elem : vec_int_number
@@ -2788,6 +3047,7 @@ symbol : NAME
        | FIG
        | NONE
        | DR
+       | PRIOR
        ;
 %%
 
diff --git a/preprocessor/DynareFlex.ll b/preprocessor/DynareFlex.ll
index e40450354ba6426adc0962cc461af9c27d75f856..6ab6faab0ce5ed866986d466fc4a9141ceb415ae 100644
--- a/preprocessor/DynareFlex.ll
+++ b/preprocessor/DynareFlex.ll
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -60,6 +60,7 @@ string eofbuff;
 %x VERBATIM_BLOCK
 %x NATIVE
 %x NATIVE_COMMENT
+%x DATES_STATEMENT
 %x LINE1
 %x LINE2
 %x LINE3
@@ -68,6 +69,9 @@ string eofbuff;
 // Increments location counter for every token read
 #define YY_USER_ACTION location_increment(yylloc, yytext);
 %}
+
+DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2]))
+
 %%
  /* Code put at the beginning of yylex() */
 %{
@@ -88,13 +92,13 @@ string eofbuff;
                 }
 
  /* spaces, tabs and carriage returns are ignored */
-<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,COMMENT,LINE1,LINE2,LINE3>[ \t\r\f]+  { yylloc->step(); }
-<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,COMMENT,LINE1,LINE2,LINE3>[\n]+       { yylloc->step(); }
+<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,COMMENT,DATES_STATEMENT,LINE1,LINE2,LINE3>[ \t\r\f]+  { yylloc->step(); }
+<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,COMMENT,DATES_STATEMENT,LINE1,LINE2,LINE3>[\n]+       { yylloc->step(); }
 
  /* Comments */
-<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK>["%"].*
-<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK>["/"]["/"].*
-<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK>"/*"   {comment_caller = YY_START; BEGIN COMMENT;}
+<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,DATES_STATEMENT>["%"].*
+<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,DATES_STATEMENT>["/"]["/"].*
+<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,DATES_STATEMENT>"/*"   {comment_caller = YY_START; BEGIN COMMENT;}
 
 <COMMENT>"*/"        {BEGIN comment_caller;}
 <COMMENT>.
@@ -133,6 +137,7 @@ string eofbuff;
 <INITIAL>dsample {BEGIN DYNARE_STATEMENT; return token::DSAMPLE;}
 <INITIAL>Sigma_e {BEGIN DYNARE_STATEMENT; sigma_e = 1; return token::SIGMA_E;}
 <INITIAL>planner_objective {BEGIN DYNARE_STATEMENT; return token::PLANNER_OBJECTIVE;}
+<INITIAL>ramsey_model {BEGIN DYNARE_STATEMENT; return token::RAMSEY_MODEL;}
 <INITIAL>ramsey_policy {BEGIN DYNARE_STATEMENT; return token::RAMSEY_POLICY;}
 <INITIAL>discretionary_policy {BEGIN DYNARE_STATEMENT; return token::DISCRETIONARY_POLICY;}
 <INITIAL>identification {BEGIN DYNARE_STATEMENT; return token::IDENTIFICATION;}
@@ -141,6 +146,7 @@ string eofbuff;
 <INITIAL>bvar_forecast {BEGIN DYNARE_STATEMENT; return token::BVAR_FORECAST; }
 <INITIAL>dynare_sensitivity {BEGIN DYNARE_STATEMENT; return token::DYNARE_SENSITIVITY;}
 <INITIAL>initval_file {BEGIN DYNARE_STATEMENT; return token::INITVAL_FILE;}
+<INITIAL>histval_file {BEGIN DYNARE_STATEMENT; return token::HISTVAL_FILE;}
 <INITIAL>forecast {BEGIN DYNARE_STATEMENT; return token::FORECAST;}
 <INITIAL>shock_decomposition {BEGIN DYNARE_STATEMENT; return token::SHOCK_DECOMPOSITION;}
 <INITIAL>sbvar {BEGIN DYNARE_STATEMENT; return token::SBVAR;}
@@ -161,6 +167,9 @@ string eofbuff;
 <INITIAL>calib_smoother { BEGIN DYNARE_STATEMENT; return token::CALIB_SMOOTHER; } 
 <INITIAL>model_diagnostics {BEGIN DYNARE_STATEMENT; return token::MODEL_DIAGNOSTICS;}
 <INITIAL>extended_path {BEGIN DYNARE_STATEMENT; return token::EXTENDED_PATH;}
+<INITIAL>smoother2histval {BEGIN DYNARE_STATEMENT; return token::SMOOTHER2HISTVAL;}
+<INITIAL>perfect_foresight_setup {BEGIN DYNARE_STATEMENT; return token::PERFECT_FORESIGHT_SETUP;}
+<INITIAL>perfect_foresight_solver {BEGIN DYNARE_STATEMENT; return token::PERFECT_FORESIGHT_SOLVER;}
 
 <DYNARE_STATEMENT>; {
   if (!sigma_e)
@@ -187,6 +196,8 @@ string eofbuff;
 <INITIAL>homotopy_setup {BEGIN DYNARE_BLOCK; return token::HOMOTOPY_SETUP;}
 <INITIAL>conditional_forecast_paths {BEGIN DYNARE_BLOCK; return token::CONDITIONAL_FORECAST_PATHS;}
 <INITIAL>svar_identification {BEGIN DYNARE_BLOCK; return token::SVAR_IDENTIFICATION;}
+<INITIAL>moment_calibration {BEGIN DYNARE_BLOCK; return token::MOMENT_CALIBRATION;}
+<INITIAL>irf_calibration {BEGIN DYNARE_BLOCK; return token::IRF_CALIBRATION;}
 
  /* For the semicolon after an "end" keyword */
 <INITIAL>; {return Dynare::parser::token_type (yytext[0]);}
@@ -196,11 +207,32 @@ string eofbuff;
 
 <DYNARE_STATEMENT>subsamples {return token::SUBSAMPLES;}
 <DYNARE_STATEMENT>options {return token::OPTIONS;}
-<DYNARE_STATEMENT>prior {return token::PRIOR;}
+<DYNARE_STATEMENT>prior {
+  yylval->string_val = new string(yytext);
+  return token::PRIOR;
+}
 <INITIAL>std {BEGIN DYNARE_STATEMENT; return token::STD;}
 <INITIAL>corr {BEGIN DYNARE_STATEMENT; return token::CORR;}
 
  /* Inside  of a Dynare statement */
+<DYNARE_STATEMENT>{DATE} {
+                           char *yycopy = strdup(yytext);
+                           char *uput = yycopy + yyleng;
+                           unput(')');
+                           unput('\'');
+                           while (uput > yycopy)
+                             unput(*--uput);
+                           unput('\'');
+                           unput('(');
+                           unput('s');
+                           unput('e');
+                           unput('t');
+                           unput('a');
+                           unput('d');
+                           free( yycopy );
+                         }
+<DYNARE_STATEMENT>${DATE} { yylloc->step(); *yyout << yytext + 1; }
+<DYNARE_STATEMENT>dates  {dates_parens_nb=0; BEGIN DATES_STATEMENT; yylval->string_val = new string("dates");}
 <DYNARE_STATEMENT>file                  {return token::FILE;}
 <DYNARE_STATEMENT>datafile 		{return token::DATAFILE;}
 <DYNARE_STATEMENT>nobs 			{return token::NOBS;}
@@ -222,6 +254,8 @@ string eofbuff;
 <DYNARE_STATEMENT>presample 		{return token::PRESAMPLE;}
 <DYNARE_STATEMENT>lik_algo  		{return token::LIK_ALGO;}
 <DYNARE_STATEMENT>lik_init  		{return token::LIK_INIT;}
+<DYNARE_STATEMENT>taper_steps       {return token::TAPER_STEPS;}
+<DYNARE_STATEMENT>geweke_interval   {return token::GEWEKE_INTERVAL;}
 <DYNARE_STATEMENT>graph   		{return token::GRAPH;}
 <DYNARE_STATEMENT>nograph   		{return token::NOGRAPH;}
 <DYNARE_STATEMENT>nodisplay     {return token::NODISPLAY;}
@@ -233,6 +267,7 @@ string eofbuff;
 <DYNARE_STATEMENT>print   		{return token::PRINT;}
 <DYNARE_STATEMENT>noprint   		{return token::NOPRINT;}
 <DYNARE_STATEMENT>conf_sig  		{return token::CONF_SIG;}
+<DYNARE_STATEMENT>mh_conf_sig  		{return token::MH_CONF_SIG;}
 <DYNARE_STATEMENT>mh_replic 		{return token::MH_REPLIC;}
 <DYNARE_STATEMENT>mh_drop   		{return token::MH_DROP;}
 <DYNARE_STATEMENT>mh_jscale   		{return token::MH_JSCALE;}
@@ -248,6 +283,7 @@ string eofbuff;
 <DYNARE_STATEMENT>mh_nblocks 		{return token::MH_NBLOCKS;}
 <DYNARE_STATEMENT>load_mh_file 	{return token::LOAD_MH_FILE;}
 <DYNARE_STATEMENT>loglinear 		{return token::LOGLINEAR;}
+<DYNARE_STATEMENT>logdata 	{return token::LOGDATA;}
 <DYNARE_STATEMENT>nodiagnostic 	{return token::NODIAGNOSTIC;}
 <DYNARE_STATEMENT>kalman_algo 	{return token::KALMAN_ALGO;}
 <DYNARE_STATEMENT>kalman_tol 	{return token::KALMAN_TOL;}
@@ -257,6 +293,7 @@ string eofbuff;
 <DYNARE_STATEMENT>dsge_var 	{return token::DSGE_VAR;}
 <DYNARE_STATEMENT>dsge_varlag 	{return token::DSGE_VARLAG;}
 <DYNARE_STATEMENT>moments_varendo {return token::MOMENTS_VARENDO;}
+<DYNARE_STATEMENT>posterior_max_subsample_draws	{return token::POSTERIOR_MAX_SUBSAMPLE_DRAWS;}
 <DYNARE_STATEMENT>filtered_vars	{return token::FILTERED_VARS;}
 <DYNARE_STATEMENT>filter_step_ahead	{return token::FILTER_STEP_AHEAD;}
 <DYNARE_STATEMENT>relative_irf 	{return token::RELATIVE_IRF;}
@@ -267,6 +304,7 @@ string eofbuff;
 <DYNARE_STATEMENT>nocorr	{return token::NOCORR;}
 <DYNARE_STATEMENT>optim		{return token::OPTIM;}
 <DYNARE_STATEMENT>periods	{return token::PERIODS;}
+<DYNARE_STATEMENT>endogenous_terminal_period 	{return token::ENDOGENOUS_TERMINAL_PERIOD;}
 <DYNARE_STATEMENT>sub_draws	{return token::SUB_DRAWS;}
 <DYNARE_STATEMENT>minimal_solving_periods {return token::MINIMAL_SOLVING_PERIODS;}
 <DYNARE_STATEMENT>markowitz	{return token::MARKOWITZ;}
@@ -338,6 +376,10 @@ string eofbuff;
   yylval->string_val = new string(yytext);
   return token::INV_GAMMA2;
 }
+<DYNARE_STATEMENT>dirichlet {
+  yylval->string_val = new string(yytext);
+  return token::DIRICHLET;
+}
 <DYNARE_STATEMENT>normal {
   yylval->string_val = new string(yytext);
   return token::NORMAL;
@@ -390,7 +432,7 @@ string eofbuff;
   return token::CNUM;
 }
 <DYNARE_STATEMENT>banact {return token::BANACT;}
-
+<DYNARE_BLOCK>use_calibration {return token::USE_CALIBRATION;}
 <DYNARE_STATEMENT>output_file_tag {return token::OUTPUT_FILE_TAG;}
 <DYNARE_STATEMENT>file_tag {return token::FILE_TAG;};
 <DYNARE_STATEMENT>no_create_init {return token::NO_CREATE_INIT;};
@@ -424,7 +466,6 @@ string eofbuff;
 <DYNARE_STATEMENT>max_block_iterations {return token::MAX_BLOCK_ITERATIONS;}
 <DYNARE_STATEMENT>max_repeated_optimization_runs {return token::MAX_REPEATED_OPTIMIZATION_RUNS;}
 <DYNARE_STATEMENT>maxit {return token::MAXIT;}
-<DYNARE_STATEMENT>solve_maxit {return token::SOLVE_MAXIT;}
 <DYNARE_STATEMENT>function_convergence_criterion {return token::FUNCTION_CONVERGENCE_CRITERION;}
 <DYNARE_STATEMENT>parameter_convergence_criterion {return token::PARAMETER_CONVERGENCE_CRITERION;}
 <DYNARE_STATEMENT>number_of_large_perturbations {return token::NUMBER_OF_LARGE_PERTURBATIONS;}
@@ -435,6 +476,19 @@ string eofbuff;
 <DYNARE_STATEMENT>random_parameter_convergence_criterion {return token::RANDOM_PARAMETER_CONVERGENCE_CRITERION;}
 <DYNARE_STATEMENT>tolf {return token::TOLF;}
 <DYNARE_STATEMENT>instruments {return token::INSTRUMENTS;}
+<DYNARE_STATEMENT>hessian  {
+  yylval->string_val = new string(yytext);
+  return token::HESSIAN;
+}
+<DYNARE_STATEMENT>prior_variance  {
+  yylval->string_val = new string(yytext);
+  return token::PRIOR_VARIANCE;
+}
+<DYNARE_STATEMENT>identity_matrix  {
+  yylval->string_val = new string(yytext);
+  return token::IDENTITY_MATRIX;
+}
+<DYNARE_STATEMENT>mcmc_jumping_covariance {return token::MCMC_JUMPING_COVARIANCE;}
 
  /* These four (var, varexo, varexo_det, parameters) are for change_type */
 <DYNARE_STATEMENT>var { return token::VAR; }
@@ -464,14 +518,12 @@ string eofbuff;
 <DYNARE_STATEMENT>posterior_mode {return token::POSTERIOR_MODE; }
 <DYNARE_STATEMENT>posterior_mean {return token::POSTERIOR_MEAN; }
 <DYNARE_STATEMENT>posterior_median {return token::POSTERIOR_MEDIAN; }
-<DYNARE_STATEMENT>simulation_type {return token::SIMULATION_TYPE; }
-<DYNARE_STATEMENT>deterministic {return token::DETERMINISTIC; }
-<DYNARE_STATEMENT>stochastic {return token::STOCHASTIC; }
 <DYNARE_STATEMENT>k_order_solver {return token::K_ORDER_SOLVER; }
 <DYNARE_STATEMENT>filter_covariance {return token::FILTER_COVARIANCE; }
 <DYNARE_STATEMENT>filter_decomposition {return token::FILTER_DECOMPOSITION; }
 <DYNARE_STATEMENT>selected_variables_only {return token::SELECTED_VARIABLES_ONLY; }
 <DYNARE_STATEMENT>pruning {return token::PRUNING; }
+<DYNARE_STATEMENT>save_draws {return token::SAVE_DRAWS; }
 <DYNARE_STATEMENT>deflator {return token::DEFLATOR;}
 <DYNARE_STATEMENT>log_deflator {return token::LOG_DEFLATOR;}
 <DYNARE_STATEMENT>growth_factor {return token::GROWTH_FACTOR;}
@@ -481,6 +533,14 @@ string eofbuff;
 <DYNARE_STATEMENT>analytic_derivation {return token::ANALYTIC_DERIVATION;}
 <DYNARE_STATEMENT>solver_periods {return token::SOLVER_PERIODS;}
 <DYNARE_STATEMENT>endogenous_prior {return token::ENDOGENOUS_PRIOR;}
+<DYNARE_STATEMENT>long_name {return token::LONG_NAME;}
+<DYNARE_STATEMENT>consider_all_endogenous {return token::CONSIDER_ALL_ENDOGENOUS;}
+<DYNARE_STATEMENT>consider_only_observed {return token::CONSIDER_ONLY_OBSERVED;}
+<DYNARE_STATEMENT>infile {return token::INFILE;}
+<DYNARE_STATEMENT>invars {return token::INVARS;}
+<DYNARE_STATEMENT>period {return token::PERIOD;}
+<DYNARE_STATEMENT>outfile {return token::OUTFILE;}
+<DYNARE_STATEMENT>outvars {return token::OUTVARS;}
 
 <DYNARE_STATEMENT>[\$][^$]*[\$] {
   strtok(yytext+1, "$");
@@ -493,8 +553,6 @@ string eofbuff;
 <DYNARE_BLOCK>stderr {return token::STDERR;}
 <DYNARE_BLOCK>values {return token::VALUES;}
 <DYNARE_BLOCK>corr {return token::CORR;}
-<DYNARE_BLOCK>surprise {return token::SURPRISE;}
-<DYNARE_BLOCK>perfect_foresight {return token::PERFECT_FORESIGHT;}
 <DYNARE_BLOCK>periods {return token::PERIODS;}
 <DYNARE_BLOCK>cutoff {return token::CUTOFF;}
 <DYNARE_BLOCK>mfs	{return token::MFS;}
@@ -549,14 +607,18 @@ string eofbuff;
 <DYNARE_STATEMENT>mh_recover {return token::MH_RECOVER;}
 <DYNARE_STATEMENT>planner_discount {return token::PLANNER_DISCOUNT;}
 <DYNARE_STATEMENT>calibration {return token::CALIBRATION;}
+<DYNARE_STATEMENT>irf_plot_threshold {return token::IRF_PLOT_THRESHOLD;}
+<DYNARE_STATEMENT>no_homotopy {return token::NO_HOMOTOPY;}
 
 <DYNARE_BLOCK>equation {return token::EQUATION;}
 <DYNARE_BLOCK>exclusion {return token::EXCLUSION;}
 <DYNARE_BLOCK>lag {return token::LAG;}
 <DYNARE_BLOCK>coeff {return token::COEFF;}
+<DYNARE_BLOCK>overwrite {return token::OVERWRITE;}
 <DYNARE_STATEMENT,DYNARE_BLOCK>upper_cholesky {return token::UPPER_CHOLESKY;}
 <DYNARE_STATEMENT,DYNARE_BLOCK>lower_cholesky {return token::LOWER_CHOLESKY;}
 <DYNARE_STATEMENT>chain {return token::CHAIN;}
+<DYNARE_STATEMENT>number_of_lags {return token::NUMBER_OF_LAGS;}
 <DYNARE_STATEMENT>number_of_regimes {return token::NUMBER_OF_REGIMES;}
 <DYNARE_STATEMENT>duration {return token::DURATION;}
 <DYNARE_STATEMENT>coefficients {return token::COEFFICIENTS;}
@@ -689,10 +751,16 @@ string eofbuff;
   return token::INT_NUMBER;
 }
 
-<DYNARE_STATEMENT,DYNARE_BLOCK>([1-2][0-9]{3}[Mm](([1-9])|(1[0-2])))|([1-2][0-9]{3}[Qq][1-4])|([1-2][0-9]{3}[Ww](([1-9]{1})|([1-5][0-9]))) {
-  yylval->string_val = new string(yytext);
-  return token::DATE_NUMBER;
-}
+<DATES_STATEMENT>\( { yylval->string_val->append(yytext); dates_parens_nb++; }
+<DATES_STATEMENT>\) {
+                      yylval->string_val->append(yytext);
+                      if (--dates_parens_nb == 0)
+                      {
+                        BEGIN DYNARE_STATEMENT;
+                        return token::DATES;
+                      }
+                    }
+<DATES_STATEMENT>.  { yylval->string_val->append(yytext); }
 
 <DYNARE_STATEMENT,DYNARE_BLOCK>\'[^\']+\' {
   yylval->string_val = new string(yytext + 1);
@@ -785,7 +853,7 @@ string eofbuff;
 <NATIVE_COMMENT>"*/"[[:space:]]*\n   { BEGIN NATIVE; }
 <NATIVE_COMMENT>.
 
-<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,COMMENT,LINE1,LINE2,LINE3,NATIVE_COMMENT><<EOF>> { yyterminate(); }
+<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,COMMENT,DATES_STATEMENT,LINE1,LINE2,LINE3,NATIVE_COMMENT><<EOF>> { yyterminate(); }
 
 <*>.      { driver.error(*yylloc, "character unrecognized by lexer"); }
 %%
diff --git a/preprocessor/DynareMain.cc b/preprocessor/DynareMain.cc
index 44227c9c63b63ac8f9632f7f4d5c1272cab6dcf2..7fed1e7858964a73f3421dc7d5664b2fa1288f6b 100644
--- a/preprocessor/DynareMain.cc
+++ b/preprocessor/DynareMain.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -17,8 +17,6 @@
  * along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-using namespace std;
-
 #include <iostream>
 #include <sstream>
 #include <fstream>
@@ -31,6 +29,7 @@ using namespace std;
 #include "macro/MacroDriver.hh"
 
 #include <unistd.h>
+#include "ExtendedPreprocessorTypes.hh"
 
 /* Prototype for second part of main function
    Splitting main() in two parts was necessary because ParsingDriver.h and MacroDriver.h can't be
@@ -38,7 +37,7 @@ using namespace std;
 */
 void main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph, bool nointeractive, 
            bool parallel, const string &parallel_config_file, const string &cluster_name, bool parallel_slave_open_mode,
-           bool parallel_test, bool nostrict
+           bool parallel_test, bool nostrict, FileOutputType output_mode, LanguageOutputType lang
 #if defined(_WIN32) || defined(__CYGWIN32__)
            , bool cygwin, bool msvc
 #endif
@@ -49,7 +48,7 @@ usage()
 {
   cerr << "Dynare usage: dynare mod_file [debug] [noclearall] [savemacro[=macro_file]] [onlymacro] [nolinemacro] [notmpterms] [nolog] [warn_uninit]"
        << " [console] [nograph] [nointeractive] [parallel[=cluster_name]] [conffile=parallel_config_path_and_filename] [parallel_slave_open_mode] [parallel_test] "
-       << " [-D<variable>[=<value>]] [nostrict]"
+       << " [-D<variable>[=<value>]] [nostrict] [output=dynamic|first|second|third] [language=C|C++]"
 #if defined(_WIN32) || defined(__CYGWIN32__)
        << " [cygwin] [msvc]"
 #endif
@@ -97,6 +96,8 @@ main(int argc, char **argv)
   bool parallel_test = false;
   bool nostrict = false;
   map<string, string> defines;
+  FileOutputType output_mode = none;
+  LanguageOutputType language = matlab;
 
   // Parse options
   for (int arg = 2; arg < argc; arg++)
@@ -191,6 +192,52 @@ main(int argc, char **argv)
               defines[key] = "1";
             }
         }
+      else if (strlen(argv[arg]) >= 6 && !strncmp(argv[arg], "output", 6))
+        {
+	  if (strlen(argv[arg]) <= 7 || argv[arg][6] != '=')
+	    {
+	      cerr << "Incorrect syntax for ouput option" << endl;
+	      usage();
+	    }
+	  if (strlen(argv[arg]) == 14 && !strncmp(argv[arg] + 7, "dynamic", 7))
+	    output_mode = dynamic;
+	  else if (strlen(argv[arg]) ==  12 && !strncmp(argv[arg] + 7, "first", 5))
+	    output_mode = first;
+	  else if (strlen(argv[arg]) == 13 && !strncmp(argv[arg] + 7, "second", 6))
+	    output_mode = second;
+	  else if (strlen(argv[arg]) == 12 && !strncmp(argv[arg] + 7, "third", 5))
+	    output_mode = third;
+	  else
+	    {
+	      cerr << "Incorrect syntax for ouput option" << endl;
+	      usage();
+            }
+        }
+      else if (strlen(argv[arg]) >= 8 && !strncmp(argv[arg], "language", 8))
+        {
+	  if (strlen(argv[arg]) <= 9 || argv[arg][8] != '=')
+	    {
+	      cerr << "Incorrect syntax for language option" << endl;
+	      usage();
+	    }
+	  // we don't want temp terms in external functions
+	  no_tmp_terms = true;
+	  if (strlen(argv[arg]) == 10 && !strncmp(argv[arg] + 9, "C", 1))
+	    language = c;
+	  else if (strlen(argv[arg]) ==  12 && !strncmp(argv[arg] + 9, "C++", 3))
+	    language = cpp;
+	  else if (strlen(argv[arg]) == 13 && !strncmp(argv[arg] + 9, "cuda", 4))
+	    language = cuda;
+	  else if (strlen(argv[arg]) == 14 && !strncmp(argv[arg] + 9, "julia", 5))
+	    language = julia;
+	  else if (strlen(argv[arg]) == 15 && !strncmp(argv[arg] + 9, "python", 6))
+	    language = python;
+	  else
+	    {
+	      cerr << "Incorrect syntax for language option" << endl;
+	      usage();
+            }
+        }
       else
         {
           cerr << "Unknown option: " << argv[arg] << endl;
@@ -231,7 +278,7 @@ main(int argc, char **argv)
 
   // Do the rest
   main2(macro_output, basename, debug, clear_all, no_tmp_terms, no_log, no_warn, warn_uninit, console, nograph, nointeractive, 
-        parallel, parallel_config_file, cluster_name, parallel_slave_open_mode, parallel_test, nostrict
+        parallel, parallel_config_file, cluster_name, parallel_slave_open_mode, parallel_test, nostrict, output_mode, language
 #if defined(_WIN32) || defined(__CYGWIN32__)
         , cygwin, msvc
 #endif
diff --git a/preprocessor/DynareMain2.cc b/preprocessor/DynareMain2.cc
index eb0446200e18c380570a1fee502b84b60a840337..8f82a059f81940be169ac5bc731312dc0f6f6590 100644
--- a/preprocessor/DynareMain2.cc
+++ b/preprocessor/DynareMain2.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2013 Dynare Team
+ * Copyright (C) 2008-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -17,18 +17,17 @@
  * along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-using namespace std;
-
 #include <iostream>
 
 #include "ParsingDriver.hh"
 #include "ModFile.hh"
 #include "ConfigFile.hh"
+#include "ExtendedPreprocessorTypes.hh"
 
 void
 main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph, bool nointeractive,
       bool parallel, const string &parallel_config_file, const string &cluster_name, bool parallel_slave_open_mode,
-      bool parallel_test, bool nostrict
+      bool parallel_test, bool nostrict, FileOutputType output_mode, LanguageOutputType language
 #if defined(_WIN32) || defined(__CYGWIN32__)
       , bool cygwin, bool msvc
 #endif
@@ -55,10 +54,13 @@ main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tm
   mod_file->evalAllExpressions(warn_uninit);
 
   // Do computations
-  mod_file->computingPass(no_tmp_terms);
+  mod_file->computingPass(no_tmp_terms, output_mode);
 
   // Write outputs
-  mod_file->writeOutputFiles(basename, clear_all, no_log, no_warn, console, nograph, nointeractive, config_file
+  if (output_mode != none)
+    mod_file->writeExternalFiles(basename, output_mode, language);
+  else
+    mod_file->writeOutputFiles(basename, clear_all, no_log, no_warn, console, nograph, nointeractive, config_file
 #if defined(_WIN32) || defined(__CYGWIN32__)
                              , cygwin, msvc
 #endif
@@ -66,6 +68,5 @@ main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tm
 
   delete mod_file;
 
-  cout << "Preprocessing completed." << endl
-       << "Starting MATLAB/Octave computing." << endl;
+  cout << "Preprocessing completed." << endl;
 }
diff --git a/preprocessor/ExprNode.cc b/preprocessor/ExprNode.cc
index e3a5bad8e8eef62adeda8ee869f4cad4a6628ab2..d7f7bd4dc026b3302cccb562f30b80d02bb98d72 100644
--- a/preprocessor/ExprNode.cc
+++ b/preprocessor/ExprNode.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Dynare Team
+ * Copyright (C) 2007-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -21,15 +21,11 @@
 #include <iterator>
 #include <algorithm>
 
-// For select1st()
-#ifdef __GNUC__
-# include <ext/functional>
-using namespace __gnu_cxx;
-#endif
-
 #include <cassert>
 #include <cmath>
 
+#include <boost/bind.hpp>
+
 #include "ExprNode.hh"
 #include "DataTree.hh"
 #include "ModFile.hh"
@@ -84,11 +80,20 @@ ExprNode::cost(const temporary_terms_t &temporary_terms, bool is_matlab) const
   return 0;
 }
 
+void
+ExprNode::collectVariables(SymbolType type, set<int> &result) const
+{
+  set<pair<int, int> > symbs_lags;
+  collectDynamicVariables(type, symbs_lags);
+  transform(symbs_lags.begin(), symbs_lags.end(), inserter(result, result.begin()),
+            boost::bind(&pair<int,int>::first,_1));
+}
+
 void
 ExprNode::collectEndogenous(set<pair<int, int> > &result) const
 {
   set<pair<int, int> > symb_ids;
-  collectVariables(eEndogenous, symb_ids);
+  collectDynamicVariables(eEndogenous, symb_ids);
   for (set<pair<int, int> >::const_iterator it = symb_ids.begin();
        it != symb_ids.end(); it++)
     result.insert(make_pair(datatree.symbol_table.getTypeSpecificID(it->first), it->second));
@@ -98,21 +103,12 @@ void
 ExprNode::collectExogenous(set<pair<int, int> > &result) const
 {
   set<pair<int, int> > symb_ids;
-  collectVariables(eExogenous, symb_ids);
+  collectDynamicVariables(eExogenous, symb_ids);
   for (set<pair<int, int> >::const_iterator it = symb_ids.begin();
        it != symb_ids.end(); it++)
     result.insert(make_pair(datatree.symbol_table.getTypeSpecificID(it->first), it->second));
 }
 
-void
-ExprNode::collectModelLocalVariables(set<int> &result) const
-{
-  set<pair<int, int> > symb_ids;
-  collectVariables(eModelLocalVariable, symb_ids);
-  transform(symb_ids.begin(), symb_ids.end(), inserter(result, result.begin()),
-            select1st<pair<int, int> >());
-}
-
 void
 ExprNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                 temporary_terms_t &temporary_terms,
@@ -329,12 +325,7 @@ NumConstNode::compile(ostream &CompileCode, unsigned int &instruction_number,
 }
 
 void
-NumConstNode::collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const
-{
-}
-
-void
-NumConstNode::findUnusedEndogenous(set<int> &unusedEndogs) const
+NumConstNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
 {
 }
 
@@ -682,6 +673,9 @@ VariableNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
         case oSteadyStateFile:
           output << "ys_(" << tsid + 1 << ")";
           break;
+        case oCSteadyStateFile:
+          output << "ys_[" << tsid << "]";
+          break;
         default:
           cerr << "VariableNode::writeOutput: should not reach this point" << endl;
           exit(EXIT_FAILURE);
@@ -724,6 +718,9 @@ VariableNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
         case oSteadyStateFile:
           output << "exo_(" << i << ")";
           break;
+        case oCSteadyStateFile:
+          output << "exo_[" << i - 1 << "]";
+          break;
         default:
           cerr << "VariableNode::writeOutput: should not reach this point" << endl;
           exit(EXIT_FAILURE);
@@ -766,6 +763,9 @@ VariableNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
         case oSteadyStateFile:
           output << "exo_(" << i << ")";
           break;
+        case oCSteadyStateFile:
+          output << "exo_[" << i - 1 << "]";
+          break;
         default:
           cerr << "VariableNode::writeOutput: should not reach this point" << endl;
           exit(EXIT_FAILURE);
@@ -879,20 +879,12 @@ VariableNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
 }
 
 void
-VariableNode::collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+VariableNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
 {
   if (type == type_arg)
     result.insert(make_pair(symb_id, lag));
   if (type == eModelLocalVariable)
-    datatree.local_variables_table[symb_id]->collectVariables(type_arg, result);
-}
-
-void
-VariableNode::findUnusedEndogenous(set<int> &unusedEndogs) const
-{
-  set<int>::iterator it = unusedEndogs.find(symb_id);
-  if (it != unusedEndogs.end())
-    unusedEndogs.erase(it);
+    datatree.local_variables_table[symb_id]->collectDynamicVariables(type_arg, result);
 }
 
 pair<int, expr_t>
@@ -2007,15 +1999,9 @@ UnaryOpNode::compile(ostream &CompileCode, unsigned int &instruction_number,
 }
 
 void
-UnaryOpNode::collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const
-{
-  arg->collectVariables(type_arg, result);
-}
-
-void
-UnaryOpNode::findUnusedEndogenous(set<int> &unusedEndogs) const
+UnaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
 {
-  arg->findUnusedEndogenous(unusedEndogs);
+  arg->collectDynamicVariables(type_arg, result);
 }
 
 pair<int, expr_t>
@@ -3084,17 +3070,10 @@ BinaryOpNode::compileExternalFunctionOutput(ostream &CompileCode, unsigned int &
 }
 
 void
-BinaryOpNode::collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+BinaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
 {
-  arg1->collectVariables(type_arg, result);
-  arg2->collectVariables(type_arg, result);
-}
-
-void
-BinaryOpNode::findUnusedEndogenous(set<int> &unusedEndogs) const
-{
-  arg1->findUnusedEndogenous(unusedEndogs);
-  arg2->findUnusedEndogenous(unusedEndogs);
+  arg1->collectDynamicVariables(type_arg, result);
+  arg2->collectDynamicVariables(type_arg, result);
 }
 
 expr_t
@@ -4061,19 +4040,11 @@ TrinaryOpNode::compileExternalFunctionOutput(ostream &CompileCode, unsigned int
 }
 
 void
-TrinaryOpNode::collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const
-{
-  arg1->collectVariables(type_arg, result);
-  arg2->collectVariables(type_arg, result);
-  arg3->collectVariables(type_arg, result);
-}
-
-void
-TrinaryOpNode::findUnusedEndogenous(set<int> &unusedEndogs) const
+TrinaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
 {
-  arg1->findUnusedEndogenous(unusedEndogs);
-  arg2->findUnusedEndogenous(unusedEndogs);
-  arg3->findUnusedEndogenous(unusedEndogs);
+  arg1->collectDynamicVariables(type_arg, result);
+  arg2->collectDynamicVariables(type_arg, result);
+  arg3->collectDynamicVariables(type_arg, result);
 }
 
 pair<int, expr_t>
@@ -4303,19 +4274,26 @@ TrinaryOpNode::isInStaticForm() const
   return arg1->isInStaticForm() && arg2->isInStaticForm() && arg3->isInStaticForm();
 }
 
-ExternalFunctionNode::ExternalFunctionNode(DataTree &datatree_arg,
-                                           int symb_id_arg,
-                                           const vector<expr_t> &arguments_arg) :
+AbstractExternalFunctionNode::AbstractExternalFunctionNode(DataTree &datatree_arg,
+                                                           int symb_id_arg,
+                                                           const vector<expr_t> &arguments_arg) :
   ExprNode(datatree_arg),
   symb_id(symb_id_arg),
   arguments(arguments_arg)
+{
+}
+
+ExternalFunctionNode::ExternalFunctionNode(DataTree &datatree_arg,
+                                           int symb_id_arg,
+                                           const vector<expr_t> &arguments_arg) :
+  AbstractExternalFunctionNode(datatree_arg, symb_id_arg, arguments_arg)
 {
   // Add myself to the external function map
   datatree.external_function_node_map[make_pair(arguments, symb_id)] = this;
 }
 
 void
-ExternalFunctionNode::prepareForDerivation()
+AbstractExternalFunctionNode::prepareForDerivation()
 {
   if (preparedForDerivation)
     return;
@@ -4335,7 +4313,7 @@ ExternalFunctionNode::prepareForDerivation()
 }
 
 expr_t
-ExternalFunctionNode::computeDerivative(int deriv_id)
+AbstractExternalFunctionNode::computeDerivative(int deriv_id)
 {
   assert(datatree.external_functions_table.getNargs(symb_id) > 0);
   vector<expr_t> dargs;
@@ -4349,9 +4327,8 @@ ExternalFunctionNode::composeDerivatives(const vector<expr_t> &dargs)
 {
   vector<expr_t> dNodes;
   for (int i = 0; i < (int) dargs.size(); i++)
-    if (dargs.at(i) != 0)
-      dNodes.push_back(datatree.AddTimes(dargs.at(i),
-                                         datatree.AddFirstDerivExternalFunctionNode(symb_id, arguments, i+1)));
+    dNodes.push_back(datatree.AddTimes(dargs.at(i),
+                                       datatree.AddFirstDerivExternalFunction(symb_id, arguments, i+1)));
 
   expr_t theDeriv = datatree.Zero;
   for (vector<expr_t>::const_iterator it = dNodes.begin(); it != dNodes.end(); it++)
@@ -4360,7 +4337,7 @@ ExternalFunctionNode::composeDerivatives(const vector<expr_t> &dargs)
 }
 
 expr_t
-ExternalFunctionNode::getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables)
+AbstractExternalFunctionNode::getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables)
 {
   assert(datatree.external_functions_table.getNargs(symb_id) > 0);
   vector<expr_t> dargs;
@@ -4379,9 +4356,9 @@ ExternalFunctionNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
 }
 
 void
-ExternalFunctionNode::writeExternalFunctionArguments(ostream &output, ExprNodeOutputType output_type,
-                                                     const temporary_terms_t &temporary_terms,
-                                                     deriv_node_temp_terms_t &tef_terms) const
+AbstractExternalFunctionNode::writeExternalFunctionArguments(ostream &output, ExprNodeOutputType output_type,
+                                                             const temporary_terms_t &temporary_terms,
+                                                             deriv_node_temp_terms_t &tef_terms) const
 {
   for (vector<expr_t>::const_iterator it = arguments.begin();
        it != arguments.end(); it++)
@@ -4394,9 +4371,9 @@ ExternalFunctionNode::writeExternalFunctionArguments(ostream &output, ExprNodeOu
 }
 
 void
-ExternalFunctionNode::writePrhs(ostream &output, ExprNodeOutputType output_type,
-                                const temporary_terms_t &temporary_terms,
-                                deriv_node_temp_terms_t &tef_terms, const string &ending) const
+AbstractExternalFunctionNode::writePrhs(ostream &output, ExprNodeOutputType output_type,
+                                        const temporary_terms_t &temporary_terms,
+                                        deriv_node_temp_terms_t &tef_terms, const string &ending) const
 {
   output << "mxArray *prhs"<< ending << "[nrhs"<< ending << "];" << endl;
   int i = 0;
@@ -4414,9 +4391,12 @@ ExternalFunctionNode::writeOutput(ostream &output, ExprNodeOutputType output_typ
                                   const temporary_terms_t &temporary_terms,
                                   deriv_node_temp_terms_t &tef_terms) const
 {
-  if (output_type == oMatlabOutsideModel || output_type == oSteadyStateFile)
+  if (output_type == oMatlabOutsideModel || output_type == oSteadyStateFile
+      || output_type == oCSteadyStateFile || IS_LATEX(output_type))
     {
-      output << datatree.symbol_table.getName(symb_id) << "(";
+      string name = IS_LATEX(output_type) ? datatree.symbol_table.getTeXName(symb_id)
+        : datatree.symbol_table.getName(symb_id);
+      output << name << "(";
       writeExternalFunctionArguments(output, output_type, temporary_terms, tef_terms);
       output << ")";
       return;
@@ -4438,10 +4418,10 @@ ExternalFunctionNode::writeOutput(ostream &output, ExprNodeOutputType output_typ
 }
 
 unsigned int
-ExternalFunctionNode::compileExternalFunctionArguments(ostream &CompileCode, unsigned int &instruction_number,
-                                                       bool lhs_rhs, const temporary_terms_t &temporary_terms,
-                                                       const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
-                                                       deriv_node_temp_terms_t &tef_terms) const
+AbstractExternalFunctionNode::compileExternalFunctionArguments(ostream &CompileCode, unsigned int &instruction_number,
+                                                               bool lhs_rhs, const temporary_terms_t &temporary_terms,
+                                                               const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
+                                                               deriv_node_temp_terms_t &tef_terms) const
 {
   for (vector<expr_t>::const_iterator it = arguments.begin();
        it != arguments.end(); it++)
@@ -4629,25 +4609,17 @@ ExternalFunctionNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
 }
 
 void
-ExternalFunctionNode::collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const
-{
-  for (vector<expr_t>::const_iterator it = arguments.begin();
-       it != arguments.end(); it++)
-    (*it)->collectVariables(type_arg, result);
-}
-
-void
-ExternalFunctionNode::findUnusedEndogenous(set<int> &unusedEndogs) const
+AbstractExternalFunctionNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
 {
   for (vector<expr_t>::const_iterator it = arguments.begin();
        it != arguments.end(); it++)
-    (*it)->findUnusedEndogenous(unusedEndogs);
+    (*it)->collectDynamicVariables(type_arg, result);
 }
 
 void
-ExternalFunctionNode::collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const
+AbstractExternalFunctionNode::collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const
 {
-  temporary_terms_t::const_iterator it = temporary_terms.find(const_cast<ExternalFunctionNode *>(this));
+  temporary_terms_t::const_iterator it = temporary_terms.find(const_cast<AbstractExternalFunctionNode *>(this));
   if (it != temporary_terms.end())
     temporary_terms_inuse.insert(idx);
   else
@@ -4659,13 +4631,13 @@ ExternalFunctionNode::collectTemporary_terms(const temporary_terms_t &temporary_
 }
 
 double
-ExternalFunctionNode::eval(const eval_context_t &eval_context) const throw (EvalException, EvalExternalFunctionException)
+AbstractExternalFunctionNode::eval(const eval_context_t &eval_context) const throw (EvalException, EvalExternalFunctionException)
 {
   throw EvalExternalFunctionException();
 }
 
 pair<int, expr_t>
-ExternalFunctionNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const
+AbstractExternalFunctionNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const
 {
   vector<pair<bool, expr_t> > V_arguments;
   vector<expr_t> V_expr_t;
@@ -4704,7 +4676,7 @@ ExternalFunctionNode::cloneDynamic(DataTree &dynamic_datatree) const
 }
 
 int
-ExternalFunctionNode::maxEndoLead() const
+AbstractExternalFunctionNode::maxEndoLead() const
 {
   int val = 0;
   for (vector<expr_t>::const_iterator it = arguments.begin();
@@ -4714,7 +4686,7 @@ ExternalFunctionNode::maxEndoLead() const
 }
 
 int
-ExternalFunctionNode::maxExoLead() const
+AbstractExternalFunctionNode::maxExoLead() const
 {
   int val = 0;
   for (vector<expr_t>::const_iterator it = arguments.begin();
@@ -4724,7 +4696,7 @@ ExternalFunctionNode::maxExoLead() const
 }
 
 int
-ExternalFunctionNode::maxEndoLag() const
+AbstractExternalFunctionNode::maxEndoLag() const
 {
   int val = 0;
   for (vector<expr_t>::const_iterator it = arguments.begin();
@@ -4734,7 +4706,7 @@ ExternalFunctionNode::maxEndoLag() const
 }
 
 int
-ExternalFunctionNode::maxExoLag() const
+AbstractExternalFunctionNode::maxExoLag() const
 {
   int val = 0;
   for (vector<expr_t>::const_iterator it = arguments.begin();
@@ -4744,7 +4716,7 @@ ExternalFunctionNode::maxExoLag() const
 }
 
 int
-ExternalFunctionNode::maxLead() const
+AbstractExternalFunctionNode::maxLead() const
 {
   int val = 0;
   for (vector<expr_t>::const_iterator it = arguments.begin();
@@ -4754,7 +4726,7 @@ ExternalFunctionNode::maxLead() const
 }
 
 expr_t
-ExternalFunctionNode::decreaseLeadsLags(int n) const
+AbstractExternalFunctionNode::decreaseLeadsLags(int n) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4763,7 +4735,7 @@ ExternalFunctionNode::decreaseLeadsLags(int n) const
 }
 
 expr_t
-ExternalFunctionNode::decreaseLeadsLagsPredeterminedVariables() const
+AbstractExternalFunctionNode::decreaseLeadsLagsPredeterminedVariables() const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4772,7 +4744,7 @@ ExternalFunctionNode::decreaseLeadsLagsPredeterminedVariables() const
 }
 
 expr_t
-ExternalFunctionNode::substituteEndoLeadGreaterThanTwo(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs, bool deterministic_model) const
+AbstractExternalFunctionNode::substituteEndoLeadGreaterThanTwo(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs, bool deterministic_model) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4781,7 +4753,7 @@ ExternalFunctionNode::substituteEndoLeadGreaterThanTwo(subst_table_t &subst_tabl
 }
 
 expr_t
-ExternalFunctionNode::substituteEndoLagGreaterThanTwo(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const
+AbstractExternalFunctionNode::substituteEndoLagGreaterThanTwo(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4790,7 +4762,7 @@ ExternalFunctionNode::substituteEndoLagGreaterThanTwo(subst_table_t &subst_table
 }
 
 expr_t
-ExternalFunctionNode::substituteExoLead(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs, bool deterministic_model) const
+AbstractExternalFunctionNode::substituteExoLead(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs, bool deterministic_model) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4799,7 +4771,7 @@ ExternalFunctionNode::substituteExoLead(subst_table_t &subst_table, vector<Binar
 }
 
 expr_t
-ExternalFunctionNode::substituteExoLag(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const
+AbstractExternalFunctionNode::substituteExoLag(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4808,7 +4780,7 @@ ExternalFunctionNode::substituteExoLag(subst_table_t &subst_table, vector<Binary
 }
 
 expr_t
-ExternalFunctionNode::substituteExpectation(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs, bool partial_information_model) const
+AbstractExternalFunctionNode::substituteExpectation(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs, bool partial_information_model) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4817,7 +4789,7 @@ ExternalFunctionNode::substituteExpectation(subst_table_t &subst_table, vector<B
 }
 
 expr_t
-ExternalFunctionNode::differentiateForwardVars(const vector<string> &subset, subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const
+AbstractExternalFunctionNode::differentiateForwardVars(const vector<string> &subset, subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4832,7 +4804,7 @@ ExternalFunctionNode::buildSimilarExternalFunctionNode(vector<expr_t> &alt_args,
 }
 
 bool
-ExternalFunctionNode::alreadyWrittenAsTefTerm(int the_symb_id, deriv_node_temp_terms_t &tef_terms) const
+AbstractExternalFunctionNode::alreadyWrittenAsTefTerm(int the_symb_id, deriv_node_temp_terms_t &tef_terms) const
 {
   deriv_node_temp_terms_t::const_iterator it = tef_terms.find(make_pair(the_symb_id, arguments));
   if (it != tef_terms.end())
@@ -4841,7 +4813,7 @@ ExternalFunctionNode::alreadyWrittenAsTefTerm(int the_symb_id, deriv_node_temp_t
 }
 
 int
-ExternalFunctionNode::getIndxInTefTerms(int the_symb_id, deriv_node_temp_terms_t &tef_terms) const throw (UnknownFunctionNameAndArgs)
+AbstractExternalFunctionNode::getIndxInTefTerms(int the_symb_id, deriv_node_temp_terms_t &tef_terms) const throw (UnknownFunctionNameAndArgs)
 {
   deriv_node_temp_terms_t::const_iterator it = tef_terms.find(make_pair(the_symb_id, arguments));
   if (it != tef_terms.end())
@@ -4850,19 +4822,19 @@ ExternalFunctionNode::getIndxInTefTerms(int the_symb_id, deriv_node_temp_terms_t
 }
 
 bool
-ExternalFunctionNode::isNumConstNodeEqualTo(double value) const
+AbstractExternalFunctionNode::isNumConstNodeEqualTo(double value) const
 {
   return false;
 }
 
 bool
-ExternalFunctionNode::isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const
+AbstractExternalFunctionNode::isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const
 {
   return false;
 }
 
 bool
-ExternalFunctionNode::containsEndogenous(void) const
+AbstractExternalFunctionNode::containsEndogenous(void) const
 {
   bool result = false;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4871,7 +4843,7 @@ ExternalFunctionNode::containsEndogenous(void) const
 }
 
 expr_t
-ExternalFunctionNode::replaceTrendVar() const
+AbstractExternalFunctionNode::replaceTrendVar() const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4880,7 +4852,7 @@ ExternalFunctionNode::replaceTrendVar() const
 }
 
 expr_t
-ExternalFunctionNode::detrend(int symb_id, bool log_trend, expr_t trend) const
+AbstractExternalFunctionNode::detrend(int symb_id, bool log_trend, expr_t trend) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4889,7 +4861,7 @@ ExternalFunctionNode::detrend(int symb_id, bool log_trend, expr_t trend) const
 }
 
 expr_t
-ExternalFunctionNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+AbstractExternalFunctionNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
 {
   vector<expr_t> arguments_subst;
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
@@ -4898,7 +4870,7 @@ ExternalFunctionNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) con
 }
 
 bool
-ExternalFunctionNode::isInStaticForm() const
+AbstractExternalFunctionNode::isInStaticForm() const
 {
   for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); ++it)
     if (!(*it)->isInStaticForm())
@@ -4911,7 +4883,7 @@ FirstDerivExternalFunctionNode::FirstDerivExternalFunctionNode(DataTree &datatre
                                                                int top_level_symb_id_arg,
                                                                const vector<expr_t> &arguments_arg,
                                                                int inputIndex_arg) :
-  ExternalFunctionNode(datatree_arg, top_level_symb_id_arg, arguments_arg),
+  AbstractExternalFunctionNode(datatree_arg, top_level_symb_id_arg, arguments_arg),
   inputIndex(inputIndex_arg)
 {
   // Add myself to the first derivative external function map
@@ -4945,9 +4917,8 @@ FirstDerivExternalFunctionNode::composeDerivatives(const vector<expr_t> &dargs)
 {
   vector<expr_t> dNodes;
   for (int i = 0; i < (int) dargs.size(); i++)
-    if (dargs.at(i) != 0)
-      dNodes.push_back(datatree.AddTimes(dargs.at(i),
-                                         datatree.AddSecondDerivExternalFunctionNode(symb_id, arguments, inputIndex, i+1)));
+    dNodes.push_back(datatree.AddTimes(dargs.at(i),
+                                       datatree.AddSecondDerivExternalFunction(symb_id, arguments, inputIndex, i+1)));
   expr_t theDeriv = datatree.Zero;
   for (vector<expr_t>::const_iterator it = dNodes.begin(); it != dNodes.end(); it++)
     theDeriv = datatree.AddPlus(theDeriv, *it);
@@ -4961,6 +4932,15 @@ FirstDerivExternalFunctionNode::writeOutput(ostream &output, ExprNodeOutputType
 {
   assert(output_type != oMatlabOutsideModel);
 
+  if (IS_LATEX(output_type))
+    {
+      output << "\\frac{\\partial " << datatree.symbol_table.getTeXName(symb_id)
+             << "}{\\partial " << inputIndex << "}(";
+      writeExternalFunctionArguments(output, output_type, temporary_terms, tef_terms);
+      output << ")";
+      return;
+    }
+
   // If current node is a temporary term
   temporary_terms_t::const_iterator it = temporary_terms.find(const_cast<FirstDerivExternalFunctionNode *>(this));
   if (it != temporary_terms.end())
@@ -4972,12 +4952,10 @@ FirstDerivExternalFunctionNode::writeOutput(ostream &output, ExprNodeOutputType
       return;
     }
 
-  int first_deriv_symb_id = datatree.external_functions_table.getFirstDerivSymbID(symb_id);
+  const int first_deriv_symb_id = datatree.external_functions_table.getFirstDerivSymbID(symb_id);
   assert(first_deriv_symb_id != eExtFunSetButNoNameProvided);
 
-  int tmpIndx = inputIndex;
-  if (IS_C(output_type))
-    tmpIndx = tmpIndx - 1;
+  const int tmpIndx = inputIndex - 1 + ARRAY_SUBSCRIPT_OFFSET(output_type);
 
   if (first_deriv_symb_id == symb_id)
     output << "TEFD_" << getIndxInTefTerms(symb_id, tef_terms)
@@ -5019,15 +4997,14 @@ FirstDerivExternalFunctionNode::compile(ostream &CompileCode, unsigned int &inst
   int first_deriv_symb_id = datatree.external_functions_table.getFirstDerivSymbID(symb_id);
   assert(first_deriv_symb_id != eExtFunSetButNoNameProvided);
 
-  int tmpIndx = inputIndex;
   if (!lhs_rhs)
     {
-      FLDTEFD_ fldtefd(getIndxInTefTerms(symb_id, tef_terms), tmpIndx);
+      FLDTEFD_ fldtefd(getIndxInTefTerms(symb_id, tef_terms), inputIndex);
       fldtefd.write(CompileCode, instruction_number);
     }
   else
     {
-      FSTPTEFD_ fstptefd(getIndxInTefTerms(symb_id, tef_terms), tmpIndx);
+      FSTPTEFD_ fstptefd(getIndxInTefTerms(symb_id, tef_terms), inputIndex);
       fstptefd.write(CompileCode, instruction_number);
     }
 }
@@ -5041,7 +5018,17 @@ FirstDerivExternalFunctionNode::writeExternalFunctionOutput(ostream &output, Exp
   int first_deriv_symb_id = datatree.external_functions_table.getFirstDerivSymbID(symb_id);
   assert(first_deriv_symb_id != eExtFunSetButNoNameProvided);
 
-  if (first_deriv_symb_id == symb_id || alreadyWrittenAsTefTerm(first_deriv_symb_id, tef_terms))
+  /* For a node with derivs provided by the user function, call the method
+     on the non-derived node */
+  if (first_deriv_symb_id == symb_id)
+    {
+      expr_t parent = datatree.AddExternalFunction(symb_id, arguments);
+      parent->writeExternalFunctionOutput(output, output_type, temporary_terms,
+                                          tef_terms);
+      return;
+    }
+
+  if (alreadyWrittenAsTefTerm(first_deriv_symb_id, tef_terms))
     return;
 
   if (IS_C(output_type))
@@ -5170,12 +5157,40 @@ FirstDerivExternalFunctionNode::compileExternalFunctionOutput(ostream &CompileCo
     }
 }
 
+expr_t
+FirstDerivExternalFunctionNode::cloneDynamic(DataTree &dynamic_datatree) const
+{
+  vector<expr_t> dynamic_arguments;
+  for (vector<expr_t>::const_iterator it = arguments.begin();
+       it != arguments.end(); it++)
+    dynamic_arguments.push_back((*it)->cloneDynamic(dynamic_datatree));
+  return dynamic_datatree.AddFirstDerivExternalFunction(symb_id, dynamic_arguments,
+                                                        inputIndex);
+}
+
+expr_t
+FirstDerivExternalFunctionNode::buildSimilarExternalFunctionNode(vector<expr_t> &alt_args, DataTree &alt_datatree) const
+{
+  return alt_datatree.AddFirstDerivExternalFunction(symb_id, alt_args, inputIndex);
+}
+
+expr_t
+FirstDerivExternalFunctionNode::toStatic(DataTree &static_datatree) const
+{
+  vector<expr_t> static_arguments;
+  for (vector<expr_t>::const_iterator it = arguments.begin();
+       it != arguments.end(); it++)
+    static_arguments.push_back((*it)->toStatic(static_datatree));
+  return static_datatree.AddFirstDerivExternalFunction(symb_id, static_arguments,
+                                                       inputIndex);
+}
+
 SecondDerivExternalFunctionNode::SecondDerivExternalFunctionNode(DataTree &datatree_arg,
                                                                  int top_level_symb_id_arg,
                                                                  const vector<expr_t> &arguments_arg,
                                                                  int inputIndex1_arg,
                                                                  int inputIndex2_arg) :
-  ExternalFunctionNode(datatree_arg, top_level_symb_id_arg, arguments_arg),
+  AbstractExternalFunctionNode(datatree_arg, top_level_symb_id_arg, arguments_arg),
   inputIndex1(inputIndex1_arg),
   inputIndex2(inputIndex2_arg)
 {
@@ -5206,7 +5221,8 @@ SecondDerivExternalFunctionNode::computeTemporaryTerms(map<expr_t, int> &referen
 }
 
 expr_t
-SecondDerivExternalFunctionNode::computeDerivative(int deriv_id)
+SecondDerivExternalFunctionNode::composeDerivatives(const vector<expr_t> &dargs)
+
 {
   cerr << "ERROR: third order derivatives of external functions are not implemented" << endl;
   exit(EXIT_FAILURE);
@@ -5219,6 +5235,15 @@ SecondDerivExternalFunctionNode::writeOutput(ostream &output, ExprNodeOutputType
 {
   assert(output_type != oMatlabOutsideModel);
 
+  if (IS_LATEX(output_type))
+    {
+      output << "\\frac{\\partial^2 " << datatree.symbol_table.getTeXName(symb_id)
+             << "}{\\partial " << inputIndex1 << "\\partial " << inputIndex2 << "}(";
+      writeExternalFunctionArguments(output, output_type, temporary_terms, tef_terms);
+      output << ")";
+      return;
+    }
+
   // If current node is a temporary term
   temporary_terms_t::const_iterator it = temporary_terms.find(const_cast<SecondDerivExternalFunctionNode *>(this));
   if (it != temporary_terms.end())
@@ -5230,16 +5255,11 @@ SecondDerivExternalFunctionNode::writeOutput(ostream &output, ExprNodeOutputType
       return;
     }
 
-  int second_deriv_symb_id = datatree.external_functions_table.getSecondDerivSymbID(symb_id);
+  const int second_deriv_symb_id = datatree.external_functions_table.getSecondDerivSymbID(symb_id);
   assert(second_deriv_symb_id != eExtFunSetButNoNameProvided);
 
-  int tmpIndex1 = inputIndex1;
-  int tmpIndex2 = inputIndex2;
-  if (IS_C(output_type))
-    {
-      tmpIndex1 = tmpIndex1 - 1;
-      tmpIndex2 = tmpIndex2 - 1;
-    }
+  const int tmpIndex1 = inputIndex1 - 1 + ARRAY_SUBSCRIPT_OFFSET(output_type);
+  const int tmpIndex2 = inputIndex2 - 1 + ARRAY_SUBSCRIPT_OFFSET(output_type);
 
   int indx = getIndxInTefTerms(symb_id, tef_terms);
   if (second_deriv_symb_id == symb_id)
@@ -5275,8 +5295,17 @@ SecondDerivExternalFunctionNode::writeExternalFunctionOutput(ostream &output, Ex
   int second_deriv_symb_id = datatree.external_functions_table.getSecondDerivSymbID(symb_id);
   assert(second_deriv_symb_id != eExtFunSetButNoNameProvided);
 
-  if (alreadyWrittenAsTefTerm(second_deriv_symb_id, tef_terms)
-      || second_deriv_symb_id == symb_id)
+  /* For a node with derivs provided by the user function, call the method
+     on the non-derived node */
+  if (second_deriv_symb_id == symb_id)
+    {
+      expr_t parent = datatree.AddExternalFunction(symb_id, arguments);
+      parent->writeExternalFunctionOutput(output, output_type, temporary_terms,
+                                          tef_terms);
+      return;
+    }
+
+  if (alreadyWrittenAsTefTerm(second_deriv_symb_id, tef_terms))
     return;
 
   if (IS_C(output_type))
@@ -5362,3 +5391,51 @@ SecondDerivExternalFunctionNode::writeExternalFunctionOutput(ostream &output, Ex
       output << ");" << endl;
     }
 }
+
+expr_t
+SecondDerivExternalFunctionNode::cloneDynamic(DataTree &dynamic_datatree) const
+{
+  vector<expr_t> dynamic_arguments;
+  for (vector<expr_t>::const_iterator it = arguments.begin();
+       it != arguments.end(); it++)
+    dynamic_arguments.push_back((*it)->cloneDynamic(dynamic_datatree));
+  return dynamic_datatree.AddSecondDerivExternalFunction(symb_id, dynamic_arguments,
+                                                         inputIndex1, inputIndex2);
+}
+
+expr_t
+SecondDerivExternalFunctionNode::buildSimilarExternalFunctionNode(vector<expr_t> &alt_args, DataTree &alt_datatree) const
+{
+  return alt_datatree.AddSecondDerivExternalFunction(symb_id, alt_args, inputIndex1, inputIndex2);
+}
+
+expr_t
+SecondDerivExternalFunctionNode::toStatic(DataTree &static_datatree) const
+{
+  vector<expr_t> static_arguments;
+  for (vector<expr_t>::const_iterator it = arguments.begin();
+       it != arguments.end(); it++)
+    static_arguments.push_back((*it)->toStatic(static_datatree));
+  return static_datatree.AddSecondDerivExternalFunction(symb_id, static_arguments,
+                                                        inputIndex1, inputIndex2);
+}
+
+void
+SecondDerivExternalFunctionNode::compile(ostream &CompileCode, unsigned int &instruction_number,
+                                         bool lhs_rhs, const temporary_terms_t &temporary_terms,
+                                         const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
+                                         deriv_node_temp_terms_t &tef_terms) const
+{
+  cerr << "SecondDerivExternalFunctionNode::compile: not implemented." << endl;
+  exit(EXIT_FAILURE);
+}
+
+void
+SecondDerivExternalFunctionNode::compileExternalFunctionOutput(ostream &CompileCode, unsigned int &instruction_number,
+                                                               bool lhs_rhs, const temporary_terms_t &temporary_terms,
+                                                               const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
+                                                               deriv_node_temp_terms_t &tef_terms) const
+{
+  cerr << "SecondDerivExternalFunctionNode::compileExternalFunctionOutput: not implemented." << endl;
+  exit(EXIT_FAILURE);
+}
diff --git a/preprocessor/ExprNode.hh b/preprocessor/ExprNode.hh
index d251f3327aa423e7a08996e457868087ac2c2caa..b008333cdfa186e0858971a6daf59e24518593c6 100644
--- a/preprocessor/ExprNode.hh
+++ b/preprocessor/ExprNode.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Dynare Team
+ * Copyright (C) 2007-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -20,13 +20,13 @@
 #ifndef _EXPR_NODE_HH
 #define _EXPR_NODE_HH
 
-using namespace std;
-
 #include <set>
 #include <map>
 #include <vector>
 #include <ostream>
 
+using namespace std;
+
 #include "SymbolTable.hh"
 #include "CodeInterpreter.hh"
 #include "ExternalFunctionsTable.hh"
@@ -73,7 +73,8 @@ enum ExprNodeOutputType
     oMatlabDynamicSteadyStateOperator,            //!< Matlab code, dynamic model, inside a steady state operator
     oMatlabDynamicSparseSteadyStateOperator,      //!< Matlab code, dynamic block decomposed model, inside a steady state operator
     oCDynamicSteadyStateOperator,                 //!< C code, dynamic model, inside a steady state operator
-    oSteadyStateFile                              //!< Matlab code, in the generated steady state file
+    oSteadyStateFile,                              //!< Matlab code, in the generated steady state file
+    oCSteadyStateFile                             //!< C code, in the generated steady state file
   };
 
 #define IS_MATLAB(output_type) ((output_type) == oMatlabStaticModel     \
@@ -85,7 +86,10 @@ enum ExprNodeOutputType
                                 || (output_type) == oMatlabDynamicSparseSteadyStateOperator \
                                 || (output_type) == oSteadyStateFile)
 
-#define IS_C(output_type) ((output_type) == oCDynamicModel || (output_type) == oCStaticModel || (output_type) == oCDynamicSteadyStateOperator)
+#define IS_C(output_type) ((output_type) == oCDynamicModel \
+			   || (output_type) == oCStaticModel \
+			   || (output_type) == oCDynamicSteadyStateOperator \
+			   || (output_type) == oCSteadyStateFile)
 
 #define IS_LATEX(output_type) ((output_type) == oLatexStaticModel       \
                                || (output_type) == oLatexDynamicModel   \
@@ -115,13 +119,13 @@ class ExprNode
   friend class DynamicModel;
   friend class StaticModel;
   friend class ModelTree;
-  friend class ExprNodeLess;
+  friend struct ExprNodeLess;
   friend class NumConstNode;
   friend class VariableNode;
   friend class UnaryOpNode;
   friend class BinaryOpNode;
   friend class TrinaryOpNode;
-  friend class ExternalFunctionNode;
+  friend class AbstractExternalFunctionNode;
 private:
   //! Computes derivative w.r. to a derivation ID (but doesn't store it in derivatives map)
   /*! You shoud use getDerivative() to get the benefit of symbolic a priori and of caching */
@@ -202,14 +206,23 @@ public:
                                              const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
                                              deriv_node_temp_terms_t &tef_terms) const;
 
-  //! Computes the set of all variables of a given symbol type in the expression
+  //! Computes the set of all variables of a given symbol type in the expression (with information on lags)
   /*!
     Variables are stored as integer pairs of the form (symb_id, lag).
     They are added to the set given in argument.
     Note that model local variables are substituted by their expression in the computation
     (and added if type_arg = ModelLocalVariable).
   */
-  virtual void collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const = 0;
+  virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const = 0;
+
+  //! Computes the set of all variables of a given symbol type in the expression (without information on lags)
+  /*!
+    Variables are stored as symb_id.
+    They are added to the set given in argument.
+    Note that model local variables are substituted by their expression in the computation
+    (and added if type_arg = ModelLocalVariable).
+  */
+  void collectVariables(SymbolType type_arg, set<int> &result) const;
 
   //! Computes the set of endogenous variables in the expression
   /*!
@@ -227,18 +240,8 @@ public:
   */
   virtual void collectExogenous(set<pair<int, int> > &result) const;
 
-  //! Computes the set of model local variables in the expression
-  /*!
-    Symbol IDs of these model local variables are added to the set given in argument.
-    Note that this method is called recursively on the expressions associated to the model local variables detected.
-  */
-  virtual void collectModelLocalVariables(set<int> &result) const;
-
   virtual void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const = 0;
 
-  //! Removes used endogenous variables from the provided list of endogs
-  virtual void findUnusedEndogenous(set<int> &unusedEndogs) const = 0;
-
   virtual void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
                                      map<expr_t, pair<int, int> > &first_occurence,
@@ -438,8 +441,7 @@ public:
   };
   virtual void prepareForDerivation();
   virtual void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, deriv_node_temp_terms_t &tef_terms) const;
-  virtual void collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
-  virtual void findUnusedEndogenous(set<int> &unusedEndogs) const;
+  virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
   virtual void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const;
   virtual double eval(const eval_context_t &eval_context) const throw (EvalException, EvalExternalFunctionException);
   virtual void compile(ostream &CompileCode, unsigned int &instruction_number, bool lhs_rhs, const temporary_terms_t &temporary_terms, const map_idx_t &map_idx, bool dynamic, bool steady_dynamic, deriv_node_temp_terms_t &tef_terms) const;
@@ -484,8 +486,7 @@ public:
   VariableNode(DataTree &datatree_arg, int symb_id_arg, int lag_arg);
   virtual void prepareForDerivation();
   virtual void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, deriv_node_temp_terms_t &tef_terms) const;
-  virtual void collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
-  virtual void findUnusedEndogenous(set<int> &unusedEndogs) const;
+  virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
   virtual void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
                                      map<expr_t, pair<int, int> > &first_occurence,
@@ -564,8 +565,7 @@ public:
                                      int Curr_block,
                                      vector< vector<temporary_terms_t> > &v_temporary_terms,
                                      int equation) const;
-  virtual void collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
-  virtual void findUnusedEndogenous(set<int> &unusedEndogs) const;
+  virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
   virtual void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const;
   static double eval_opcode(UnaryOpcode op_code, double v) throw (EvalException, EvalExternalFunctionException);
   virtual double eval(const eval_context_t &eval_context) const throw (EvalException, EvalExternalFunctionException);
@@ -643,8 +643,7 @@ public:
                                      int Curr_block,
                                      vector< vector<temporary_terms_t> > &v_temporary_terms,
                                      int equation) const;
-  virtual void collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
-  virtual void findUnusedEndogenous(set<int> &unusedEndogs) const;
+  virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
   virtual void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const;
   static double eval_opcode(double v1, BinaryOpcode op_code, double v2, int derivOrder) throw (EvalException, EvalExternalFunctionException);
   virtual double eval(const eval_context_t &eval_context) const throw (EvalException, EvalExternalFunctionException);
@@ -738,8 +737,7 @@ public:
                                      int Curr_block,
                                      vector< vector<temporary_terms_t> > &v_temporary_terms,
                                      int equation) const;
-  virtual void collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
-  virtual void findUnusedEndogenous(set<int> &unusedEndogs) const;
+  virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
   virtual void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const;
   static double eval_opcode(double v1, TrinaryOpcode op_code, double v2, double v3) throw (EvalException, EvalExternalFunctionException);
   virtual double eval(const eval_context_t &eval_context) const throw (EvalException, EvalExternalFunctionException);
@@ -773,11 +771,11 @@ public:
 };
 
 //! External function node
-class ExternalFunctionNode : public ExprNode
+class AbstractExternalFunctionNode : public ExprNode
 {
 private:
   virtual expr_t computeDerivative(int deriv_id);
-  virtual expr_t composeDerivatives(const vector<expr_t> &dargs);
+  virtual expr_t composeDerivatives(const vector<expr_t> &dargs) = 0;
 protected:
   //! Thrown when trying to access an unknown entry in external_function_node_map
   class UnknownFunctionNameAndArgs
@@ -792,26 +790,25 @@ protected:
   //! Helper function to write output arguments of any given external function
   void writeExternalFunctionArguments(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, deriv_node_temp_terms_t &tef_terms) const;
 public:
-  ExternalFunctionNode(DataTree &datatree_arg, int symb_id_arg,
-                       const vector<expr_t> &arguments_arg);
+  AbstractExternalFunctionNode(DataTree &datatree_arg, int symb_id_arg,
+                               const vector<expr_t> &arguments_arg);
   virtual void prepareForDerivation();
-  virtual void computeTemporaryTerms(map<expr_t, int> &reference_count, temporary_terms_t &temporary_terms, bool is_matlab) const;
-  virtual void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, deriv_node_temp_terms_t &tef_terms) const;
+  virtual void computeTemporaryTerms(map<expr_t, int> &reference_count, temporary_terms_t &temporary_terms, bool is_matlab) const = 0;
+  virtual void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, deriv_node_temp_terms_t &tef_terms) const = 0;
   virtual void writeExternalFunctionOutput(ostream &output, ExprNodeOutputType output_type,
                                            const temporary_terms_t &temporary_terms,
-                                           deriv_node_temp_terms_t &tef_terms) const;
+                                           deriv_node_temp_terms_t &tef_terms) const = 0;
   virtual void compileExternalFunctionOutput(ostream &CompileCode, unsigned int &instruction_number,
                                              bool lhs_rhs, const temporary_terms_t &temporary_terms,
                                              const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
-                                             deriv_node_temp_terms_t &tef_terms) const;
+                                             deriv_node_temp_terms_t &tef_terms) const = 0;
   virtual void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
                                      map<expr_t, pair<int, int> > &first_occurence,
                                      int Curr_block,
                                      vector< vector<temporary_terms_t> > &v_temporary_terms,
-                                     int equation) const;
-  virtual void collectVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
-  virtual void findUnusedEndogenous(set<int> &unusedEndogs) const;
+                                     int equation) const = 0;
+  virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const;
   virtual void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const;
   virtual double eval(const eval_context_t &eval_context) const throw (EvalException, EvalExternalFunctionException);
   unsigned int compileExternalFunctionArguments(ostream &CompileCode, unsigned int &instruction_number,
@@ -819,8 +816,8 @@ public:
                                                 const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
                                                 deriv_node_temp_terms_t &tef_terms) const;
 
-  virtual void compile(ostream &CompileCode, unsigned int &instruction_number, bool lhs_rhs, const temporary_terms_t &temporary_terms, const map_idx_t &map_idx, bool dynamic, bool steady_dynamic, deriv_node_temp_terms_t &tef_terms) const;
-  virtual expr_t toStatic(DataTree &static_datatree) const;
+  virtual void compile(ostream &CompileCode, unsigned int &instruction_number, bool lhs_rhs, const temporary_terms_t &temporary_terms, const map_idx_t &map_idx, bool dynamic, bool steady_dynamic, deriv_node_temp_terms_t &tef_terms) const = 0;
+  virtual expr_t toStatic(DataTree &static_datatree) const = 0;
   virtual pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const;
   virtual expr_t getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables);
   virtual int maxEndoLead() const;
@@ -834,7 +831,7 @@ public:
   virtual expr_t substituteExoLead(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs, bool deterministic_model) const;
   virtual expr_t substituteExoLag(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const;
   virtual expr_t substituteExpectation(subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs, bool partial_information_model) const;
-  virtual expr_t buildSimilarExternalFunctionNode(vector<expr_t> &alt_args, DataTree &alt_datatree) const;
+  virtual expr_t buildSimilarExternalFunctionNode(vector<expr_t> &alt_args, DataTree &alt_datatree) const = 0;
   virtual expr_t decreaseLeadsLagsPredeterminedVariables() const;
   virtual expr_t differentiateForwardVars(const vector<string> &subset, subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const;
   virtual bool isNumConstNodeEqualTo(double value) const;
@@ -843,12 +840,40 @@ public:
   virtual void writePrhs(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, deriv_node_temp_terms_t &tef_terms, const string &ending) const;
   virtual expr_t replaceTrendVar() const;
   virtual expr_t detrend(int symb_id, bool log_trend, expr_t trend) const;
-  virtual expr_t cloneDynamic(DataTree &dynamic_datatree) const;
+  virtual expr_t cloneDynamic(DataTree &dynamic_datatree) const = 0;
   virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const;
   virtual bool isInStaticForm() const;
 };
 
-class FirstDerivExternalFunctionNode : public ExternalFunctionNode
+class ExternalFunctionNode : public AbstractExternalFunctionNode
+{
+private:
+  virtual expr_t composeDerivatives(const vector<expr_t> &dargs);
+public:
+  ExternalFunctionNode(DataTree &datatree_arg, int symb_id_arg,
+                       const vector<expr_t> &arguments_arg);
+  virtual void computeTemporaryTerms(map<expr_t, int> &reference_count, temporary_terms_t &temporary_terms, bool is_matlab) const;
+  virtual void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, deriv_node_temp_terms_t &tef_terms) const;
+  virtual void writeExternalFunctionOutput(ostream &output, ExprNodeOutputType output_type,
+                                           const temporary_terms_t &temporary_terms,
+                                           deriv_node_temp_terms_t &tef_terms) const;
+  virtual void compileExternalFunctionOutput(ostream &CompileCode, unsigned int &instruction_number,
+                                             bool lhs_rhs, const temporary_terms_t &temporary_terms,
+                                             const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
+                                             deriv_node_temp_terms_t &tef_terms) const;
+  virtual void computeTemporaryTerms(map<expr_t, int> &reference_count,
+                                     temporary_terms_t &temporary_terms,
+                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     int Curr_block,
+                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     int equation) const;
+  virtual void compile(ostream &CompileCode, unsigned int &instruction_number, bool lhs_rhs, const temporary_terms_t &temporary_terms, const map_idx_t &map_idx, bool dynamic, bool steady_dynamic, deriv_node_temp_terms_t &tef_terms) const;
+  virtual expr_t toStatic(DataTree &static_datatree) const;
+  virtual expr_t buildSimilarExternalFunctionNode(vector<expr_t> &alt_args, DataTree &alt_datatree) const;
+  virtual expr_t cloneDynamic(DataTree &dynamic_datatree) const;
+};
+
+class FirstDerivExternalFunctionNode : public AbstractExternalFunctionNode
 {
 private:
   const int inputIndex;
@@ -877,14 +902,17 @@ public:
                                              bool lhs_rhs, const temporary_terms_t &temporary_terms,
                                              const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
                                              deriv_node_temp_terms_t &tef_terms) const;
+  virtual expr_t toStatic(DataTree &static_datatree) const;
+  virtual expr_t buildSimilarExternalFunctionNode(vector<expr_t> &alt_args, DataTree &alt_datatree) const;
+  virtual expr_t cloneDynamic(DataTree &dynamic_datatree) const;
 };
 
-class SecondDerivExternalFunctionNode : public ExternalFunctionNode
+class SecondDerivExternalFunctionNode : public AbstractExternalFunctionNode
 {
 private:
   const int inputIndex1;
   const int inputIndex2;
-  virtual expr_t computeDerivative(int deriv_id);
+  virtual expr_t composeDerivatives(const vector<expr_t> &dargs);
 public:
   SecondDerivExternalFunctionNode(DataTree &datatree_arg,
                                   int top_level_symb_id_arg,
@@ -899,9 +927,20 @@ public:
                                      vector< vector<temporary_terms_t> > &v_temporary_terms,
                                      int equation) const;
   virtual void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, deriv_node_temp_terms_t &tef_terms) const;
+  virtual void compile(ostream &CompileCode, unsigned int &instruction_number,
+                       bool lhs_rhs, const temporary_terms_t &temporary_terms,
+                       const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
+                       deriv_node_temp_terms_t &tef_terms) const;
   virtual void writeExternalFunctionOutput(ostream &output, ExprNodeOutputType output_type,
                                            const temporary_terms_t &temporary_terms,
                                            deriv_node_temp_terms_t &tef_terms) const;
+  virtual void compileExternalFunctionOutput(ostream &CompileCode, unsigned int &instruction_number,
+                                             bool lhs_rhs, const temporary_terms_t &temporary_terms,
+                                             const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
+                                             deriv_node_temp_terms_t &tef_terms) const;
+  virtual expr_t toStatic(DataTree &static_datatree) const;
+  virtual expr_t buildSimilarExternalFunctionNode(vector<expr_t> &alt_args, DataTree &alt_datatree) const;
+  virtual expr_t cloneDynamic(DataTree &dynamic_datatree) const;
 };
 
 #endif
diff --git a/preprocessor/ExtendedPreprocessorTypes.hh b/preprocessor/ExtendedPreprocessorTypes.hh
new file mode 100644
index 0000000000000000000000000000000000000000..d9a210e7706492cfc6bae18c6880b90bfd0453b4
--- /dev/null
+++ b/preprocessor/ExtendedPreprocessorTypes.hh
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2014 Dynare Team
+ *
+ * This file is part of Dynare.
+ *
+ * Dynare 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.
+ *
+ * Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _EXTENDED_PREPROCESSOR_TYPES_HH
+#define _EXTENDED_PREPROCESSOR_TYPES_HH
+
+enum FileOutputType
+  {
+    none,                             // outputs files for Matlab/Octave processing
+    dynamic,                          // outputs <fname>_dynamic.* and related files
+    first,                            // outputs <fname>_first_derivatives.* and related files 
+    second,                           // outputs <fname>_first_derivatives.*, <fname>_second_derivatives.* and related files 
+    third,                            // outputs <fname>_first_derivatives.*, <fname>_second_derivatives.*, <fname>_third_derivatives.*  and related files 
+  };
+
+enum LanguageOutputType
+  {
+    matlab,                           // outputs files for Matlab/Octave processing
+    c,                                // outputs files for C
+    cpp,                              // outputs files for C++
+    cuda,                             // outputs files for CUDA (not yet implemented)
+    julia,                            // outputs files for Julia (not yet implemented)
+    python,                           // outputs files for Python (not yet implemented) (not yet implemented)
+  };
+#endif
diff --git a/preprocessor/ExternalFiles.cc b/preprocessor/ExternalFiles.cc
new file mode 100644
index 0000000000000000000000000000000000000000..9ac2ba72056869333e9dfd4b2c0bc5ed648b5ca8
--- /dev/null
+++ b/preprocessor/ExternalFiles.cc
@@ -0,0 +1,730 @@
+/*
+ * Copyright (C) 2006-2013 Dynare Team
+ *
+ * This file is part of Dynare.
+ *
+ * Dynare 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.
+ *
+ * Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include <cassert>
+#include "ModFile.hh"
+#include "DynamicModel.hh"
+#include "StaticModel.hh"
+#include "SteadyStateModel.hh"
+
+void
+ModFile::writeExternalFiles(const string &basename, FileOutputType output, LanguageOutputType language) const
+{
+  switch(language)
+    {
+    case c:
+      writeExternalFilesC(basename, output);
+      break;
+    case cpp:
+      writeExternalFilesCC(basename, output);
+      break;
+    default:
+      cerr << "This case shouldn't happen. Contact the authors of Dynare" << endl;
+      exit(EXIT_FAILURE);
+    }
+}
+
+// C interface
+
+void
+ModFile::writeExternalFilesC(const string &basename, FileOutputType output) const
+{
+  writeModelC(basename);
+  steady_state_model.writeSteadyStateFileC(basename, mod_file_struct.ramsey_model_present);
+
+  dynamic_model.writeDynamicFile(basename, block, byte_code, use_dll, mod_file_struct.order_option);
+
+  if (!no_static)
+    static_model.writeStaticFile(basename, false, false, true);
+
+
+  //  static_model.writeStaticCFile(basename, block, byte_code, use_dll);
+  //  static_model.writeParamsDerivativesFileC(basename, cuda);
+  //  static_model.writeAuxVarInitvalC(mOutputFile, oMatlabOutsideModel, cuda);
+
+  // dynamic_model.writeResidualsC(basename, cuda);
+  // dynamic_model.writeParamsDerivativesFileC(basename, cuda);
+  dynamic_model.writeFirstDerivativesC(basename, cuda);
+  
+  if (output == second)
+    dynamic_model.writeSecondDerivativesC_csr(basename, cuda);
+  else if (output == third)
+    {
+        dynamic_model.writeSecondDerivativesC_csr(basename, cuda);
+  	dynamic_model.writeThirdDerivativesC_csr(basename, cuda);
+    }
+}
+
+void
+ModFile::writeModelC(const string &basename) const
+{
+  string filename = basename + ".c";
+
+  ofstream mDriverCFile;
+  mDriverCFile.open(filename.c_str(), ios::out | ios::binary);
+  if (!mDriverCFile.is_open())
+    {
+      cerr << "Error: Can't open file " << filename << " for writing" << endl;
+      exit(EXIT_FAILURE);
+    }
+
+  mDriverCFile << "/*" << endl
+               << " * " << filename << " : Driver file for Dynare C code" << endl
+               << " *" << endl
+               << " * Warning : this file is generated automatically by Dynare" << endl
+               << " *           from model file (.mod)" << endl
+               << " */" << endl
+               << endl
+               << "#include \"dynare_driver.h\"" << endl
+               << endl
+               << "struct" << endl
+               << "{" << endl;
+
+  // Write basic info
+  symbol_table.writeCOutput(mDriverCFile);
+
+  mDriverCFile << endl << "params.resize(param_nbr);" << endl;
+
+  if (dynamic_model.equation_number() > 0)
+    {
+      dynamic_model.writeCOutput(mDriverCFile, basename, block, byte_code, use_dll, mod_file_struct.order_option, mod_file_struct.estimation_present);
+      //      if (!no_static)
+      //        static_model.writeCOutput(mOutputFile, block);
+    }
+
+  // Print statements
+  for (vector<Statement *>::const_iterator it = statements.begin();
+       it != statements.end(); it++)
+      (*it)->writeCOutput(mDriverCFile, basename);
+
+  mDriverCFile << "} DynareInfo;" << endl;
+  mDriverCFile.close();
+
+  // Write informational m file
+  ofstream mOutputFile;
+
+  if (basename.size())
+    {
+      string fname(basename);
+      fname += ".m";
+      mOutputFile.open(fname.c_str(), ios::out | ios::binary);
+      if (!mOutputFile.is_open())
+        {
+          cerr << "ERROR: Can't open file " << fname
+               << " for writing" << endl;
+          exit(EXIT_FAILURE);
+        }
+    }
+  else
+    {
+      cerr << "ERROR: Missing file name" << endl;
+      exit(EXIT_FAILURE);
+    }
+
+  mOutputFile << "%" << endl
+              << "% Status : informational m file" << endl
+              << "%" << endl
+              << "% Warning : this file is generated automatically by Dynare" << endl
+              << "%           from model file (.mod)" << endl << endl
+              << "disp('The following C file was successfully created:');" << endl
+              << "ls preprocessorOutput.c" << endl << endl;
+  mOutputFile.close();
+}
+
+
+void
+DynamicModel::writeCOutput(ostream &output, const string &basename, bool block_decomposition, bool byte_code, bool use_dll, int order, bool estimation_present) const
+{
+  int lag_presence[3];
+  // Loop on endogenous variables
+  vector<int> zeta_back, zeta_mixed, zeta_fwrd, zeta_static;
+  for (int endoID = 0; endoID < symbol_table.endo_nbr(); endoID++)
+    {
+      // Loop on periods
+      for (int lag = 0; lag <= 2; lag++)
+	{
+	  lag_presence[lag] = 1;
+          try
+            {
+              getDerivID(symbol_table.getID(eEndogenous, endoID), lag-1);
+            }
+          catch (UnknownDerivIDException &e)
+            {
+	      lag_presence[lag] = 0;
+            }
+        }
+      if (lag_presence[0] == 1)
+	if (lag_presence[2] == 1)
+	  zeta_mixed.push_back(endoID);
+	else
+	  zeta_back.push_back(endoID);
+      else if (lag_presence[2] == 1)
+	zeta_fwrd.push_back(endoID);
+      else
+	zeta_static.push_back(endoID);
+      
+    }
+  output << "size_t nstatic = " << zeta_static.size() << ";" << endl
+         << "size_t nfwrd   = " << zeta_fwrd.size() << ";" << endl
+         << "size_t nback   = " << zeta_back.size() << ";" << endl
+         << "size_t nmixed  = " << zeta_mixed.size() << ";" << endl;
+  output << "size_t zeta_static[" << zeta_static.size() << "] = {";
+  for (vector<int>::iterator i = zeta_static.begin(); i != zeta_static.end(); ++i)
+    {
+      if ( i != zeta_static.begin() )
+	output << ",";
+      output << *i;
+    }
+  output << "};" << endl;
+
+  output << "size_t zeta_back[" << zeta_back.size() << "] = {";
+  for (vector<int>::iterator i = zeta_back.begin(); i != zeta_back.end(); ++i)
+    {
+      if ( i != zeta_back.begin() )
+	output << ",";
+      output << *i;
+    }
+  output << "};" << endl;
+
+  output << "size_t zeta_fwrd[" << zeta_fwrd.size() << "] = {";
+  for (vector<int>::iterator i = zeta_fwrd.begin(); i != zeta_fwrd.end(); ++i)
+    {
+      if ( i != zeta_fwrd.begin() )
+	output << ",";
+      output << *i;
+    }
+  output << "};" << endl;
+
+  output << "size_t zeta_mixed[" << zeta_mixed.size() << "] = {";
+  for (vector<int>::iterator i = zeta_mixed.begin(); i != zeta_mixed.end(); ++i)
+    {
+      if ( i != zeta_mixed.begin() )
+	output << ",";
+      output << *i;
+    }
+  output << "};" << endl;
+
+  // Write number of non-zero derivatives
+  // Use -1 if the derivatives have not been computed
+  output << "int *NNZDerivatives[3] = {";
+  switch (order)
+    {
+    case 0:
+      output << NNZDerivatives[0] << ",-1,-1};" << endl;
+      break;
+    case 1:
+      output << NNZDerivatives[0] << "," << NNZDerivatives[1] << ",-1};" << endl;
+      break;
+    case 2:
+      output << NNZDerivatives[0] << "," << NNZDerivatives[1] << "," << NNZDerivatives[2] << "};" << endl;
+      break;
+    default:
+	cerr << "Order larger than 3 not implemented" << endl;
+	exit(EXIT_FAILURE);
+    }
+}
+
+void
+DynamicModel::writeFirstDerivativesC(const string &basename, bool cuda) const
+{
+  string filename = basename + "_first_derivatives.c";
+  ofstream mDynamicModelFile, mDynamicMexFile;
+
+  mDynamicModelFile.open(filename.c_str(), ios::out | ios::binary);
+  if (!mDynamicModelFile.is_open())
+    {
+      cerr << "Error: Can't open file " << filename << " for writing" << endl;
+      exit(EXIT_FAILURE);
+    }
+  mDynamicModelFile << "/*" << endl
+                    << " * " << filename << " : Computes first order derivatives of the model for Dynare" << endl
+                    << " *" << endl
+                    << " * Warning : this file is generated automatically by Dynare" << endl
+                    << " *           from model " << basename << "(.mod)" << endl
+                    << " */" << endl
+                    << "#include <math.h>" << endl;
+
+  mDynamicModelFile << "#include <stdlib.h>" << endl;
+
+  mDynamicModelFile << "#define max(a, b) (((a) > (b)) ? (a) : (b))" << endl
+                    << "#define min(a, b) (((a) > (b)) ? (b) : (a))" << endl;
+
+  // Write function definition if oPowerDeriv is used
+  writePowerDerivCHeader(mDynamicModelFile);
+
+  mDynamicModelFile << "void FirstDerivatives(const double *y, double *x, int nb_row_x, double *params, double *steady_state, int it_, double *residual, double *g1, double *v2, double *v3)" << endl
+                    << "{" << endl;
+
+  // this is always empty here, but needed by d1->writeOutput
+  deriv_node_temp_terms_t tef_terms;
+
+  // Writing Jacobian
+  for (first_derivatives_t::const_iterator it = first_derivatives.begin();
+       it != first_derivatives.end(); it++)
+    {
+      int eq = it->first.first;
+      int var = it->first.second;
+      expr_t d1 = it->second;
+
+      jacobianHelper(mDynamicModelFile, eq, getDynJacobianCol(var), oCDynamicModel);
+      mDynamicModelFile << "=";
+      // oCstaticModel makes reference to the static variables
+      d1->writeOutput(mDynamicModelFile, oCStaticModel, temporary_terms, tef_terms);
+      mDynamicModelFile << ";" << endl;
+    }
+  
+  mDynamicModelFile << "}" << endl;
+
+  writePowerDeriv(mDynamicModelFile, true);
+  mDynamicModelFile.close();
+
+}
+
+// using compressed sparse row format (CSR)
+void
+DynamicModel::writeSecondDerivativesC_csr(const string &basename, bool cuda) const
+{
+
+  string filename = basename + "_second_derivatives.c";
+  ofstream mDynamicModelFile, mDynamicMexFile;
+
+  mDynamicModelFile.open(filename.c_str(), ios::out | ios::binary);
+  if (!mDynamicModelFile.is_open())
+    {
+      cerr << "Error: Can't open file " << filename << " for writing" << endl;
+      exit(EXIT_FAILURE);
+    }
+  mDynamicModelFile << "/*" << endl
+                    << " * " << filename << " : Computes second order derivatives of the model for Dynare" << endl
+                    << " *" << endl
+                    << " * Warning : this file is generated automatically by Dynare" << endl
+                    << " *           from model " << basename << "(.mod)" << endl
+                    << " */" << endl
+                    << "#include <math.h>" << endl;
+
+  mDynamicModelFile << "#include <stdlib.h>" << endl;
+
+  mDynamicModelFile << "#define max(a, b) (((a) > (b)) ? (a) : (b))" << endl
+                    << "#define min(a, b) (((a) > (b)) ? (b) : (a))" << endl;
+
+  // write function definition if oPowerDeriv is used
+  writePowerDerivCHeader(mDynamicModelFile);
+
+  mDynamicModelFile << "void SecondDerivatives(const double *y, double *x, int nb_row_x, double *params, double *steady_state, int it_, double *residual, int *row_ptr, int *col_ptr, double *value)" << endl
+                    << "{" << endl;
+
+  // this is always empty here, but needed by d1->writeOutput
+  deriv_node_temp_terms_t tef_terms;
+
+  // Indexing derivatives in column order
+  vector<derivative> D;
+  int hessianColsNbr = dynJacobianColsNbr*dynJacobianColsNbr;
+  for (second_derivatives_t::const_iterator it = second_derivatives.begin();
+       it != second_derivatives.end(); it++)
+    {
+      int eq = it->first.first;
+      int var1 = it->first.second.first;
+      int var2 = it->first.second.second;
+
+      int id1 = getDynJacobianCol(var1);
+      int id2 = getDynJacobianCol(var2);
+
+      int col_nb = id1 * dynJacobianColsNbr + id2;
+
+      derivative deriv(col_nb + eq*hessianColsNbr,col_nb,eq,it->second);
+      D.push_back(deriv);
+      if (id1 != id2)
+	{
+	  col_nb = id2 * dynJacobianColsNbr + id1;
+	  derivative deriv(col_nb + eq*hessianColsNbr,col_nb,eq,it->second);
+	  D.push_back(deriv);
+	}
+    }
+  sort(D.begin(), D.end(), derivative_less_than() );
+
+  // Writing Hessian
+  vector<int> row_ptr(equations.size());
+  fill(row_ptr.begin(),row_ptr.end(),0.0);
+  int k = 0;
+  for(vector<derivative>::const_iterator it = D.begin(); it != D.end(); ++it)
+    {
+      row_ptr[it->row_nbr]++;
+      mDynamicModelFile << "col_ptr[" << k << "] "
+			<< "=" << it->col_nbr << ";" << endl;
+      mDynamicModelFile << "value[" << k << "] = ";
+      // oCstaticModel makes reference to the static variables
+      it->value->writeOutput(mDynamicModelFile, oCStaticModel, temporary_terms, tef_terms);
+      mDynamicModelFile << ";" << endl;
+      k++;
+    }
+  
+  // row_ptr must point to the relative address of the first element of the row
+  int cumsum = 0;
+  mDynamicModelFile << "row_ptr = [ 0";
+  for (vector<int>::iterator it=row_ptr.begin(); it != row_ptr.end(); ++it)
+    {
+      cumsum += *it;
+      mDynamicModelFile << ", " << cumsum;
+    }
+  mDynamicModelFile << "];" << endl;   
+
+  mDynamicModelFile << "}" << endl;
+
+  writePowerDeriv(mDynamicModelFile, true);
+  mDynamicModelFile.close();
+
+}
+
+void
+DynamicModel::writeThirdDerivativesC_csr(const string &basename, bool cuda) const
+{
+  string filename = basename + "_third_derivatives.c";
+  ofstream mDynamicModelFile, mDynamicMexFile;
+
+  mDynamicModelFile.open(filename.c_str(), ios::out | ios::binary);
+  if (!mDynamicModelFile.is_open())
+    {
+      cerr << "Error: Can't open file " << filename << " for writing" << endl;
+      exit(EXIT_FAILURE);
+    }
+  mDynamicModelFile << "/*" << endl
+                    << " * " << filename << " : Computes third order derivatives of the model for Dynare" << endl
+                    << " *" << endl
+                    << " * Warning : this file is generated automatically by Dynare" << endl
+                    << " *           from model " << basename << "(.mod)" << endl
+                    << " */" << endl
+                    << "#include <math.h>" << endl;
+
+  mDynamicModelFile << "#include <stdlib.h>" << endl;
+
+  mDynamicModelFile << "#define max(a, b) (((a) > (b)) ? (a) : (b))" << endl
+                    << "#define min(a, b) (((a) > (b)) ? (b) : (a))" << endl;
+
+  // Write function definition if oPowerDeriv is used
+  writePowerDerivCHeader(mDynamicModelFile);
+
+  mDynamicModelFile << "void ThirdDerivatives(const double *y, double *x, int nb_row_x, double *params, double *steady_state, int it_, double *residual, double *g1, double *v2, double *v3)" << endl
+                    << "{" << endl;
+
+  // this is always empty here, but needed by d1->writeOutput
+  deriv_node_temp_terms_t tef_terms;
+
+  vector<derivative> D;
+  int hessianColsNbr = dynJacobianColsNbr*dynJacobianColsNbr;
+  int thirdDerivativesColsNbr = hessianColsNbr*dynJacobianColsNbr;
+  for (third_derivatives_t::const_iterator it = third_derivatives.begin();
+       it != third_derivatives.end(); it++)
+    {
+      int eq = it->first.first;
+      int var1 = it->first.second.first;
+      int var2 = it->first.second.second.first;
+      int var3 = it->first.second.second.second;
+
+      int id1 = getDynJacobianCol(var1);
+      int id2 = getDynJacobianCol(var2);
+      int id3 = getDynJacobianCol(var3);
+
+      // Reference column number for the g3 matrix (with symmetrical derivatives)
+      vector<long unsigned int>  cols;
+      long unsigned int col_nb = id1 * hessianColsNbr + id2 * dynJacobianColsNbr + id3;
+      int thirdDColsNbr = hessianColsNbr*dynJacobianColsNbr;
+      derivative deriv(col_nb + eq*thirdDColsNbr,col_nb,eq,it->second);
+      D.push_back(deriv);
+      cols.push_back(col_nb);
+      col_nb = id1 * hessianColsNbr + id3 * dynJacobianColsNbr + id2;
+      if (find(cols.begin(),cols.end(),col_nb) == cols.end())
+	{
+	  derivative deriv(col_nb + eq*thirdDerivativesColsNbr,col_nb,eq,it->second);
+	  D.push_back(deriv);
+	  cols.push_back(col_nb);
+	}
+      col_nb = id2 * hessianColsNbr + id1 * dynJacobianColsNbr + id3;
+      if (find(cols.begin(),cols.end(),col_nb) == cols.end())
+	{
+	  derivative deriv(col_nb + eq*thirdDerivativesColsNbr,col_nb,eq,it->second);
+	  D.push_back(deriv);
+	  cols.push_back(col_nb);
+	}
+      col_nb = id2 * hessianColsNbr + id3 * dynJacobianColsNbr + id1;
+      if (find(cols.begin(),cols.end(),col_nb) == cols.end())
+	{
+	  derivative deriv(col_nb + eq*thirdDerivativesColsNbr,col_nb,eq,it->second);
+	  D.push_back(deriv);
+	  cols.push_back(col_nb);
+	}
+      col_nb = id3 * hessianColsNbr + id1 * dynJacobianColsNbr + id2;
+      if (find(cols.begin(),cols.end(),col_nb) == cols.end())
+	{
+	  derivative deriv(col_nb + eq*thirdDerivativesColsNbr,col_nb,eq,it->second);
+	  D.push_back(deriv);
+	  cols.push_back(col_nb);
+	}
+      col_nb = id3 * hessianColsNbr + id2 * dynJacobianColsNbr + id1;
+      if (find(cols.begin(),cols.end(),col_nb) == cols.end())
+	{
+	  derivative deriv(col_nb + eq*thirdDerivativesColsNbr,col_nb,eq,it->second);
+	  D.push_back(deriv);
+	}
+    }
+
+  sort(D.begin(), D.end(), derivative_less_than() );
+
+  vector<int> row_ptr(equations.size());
+  fill(row_ptr.begin(),row_ptr.end(),0.0);
+  int k = 0;
+  for(vector<derivative>::const_iterator it = D.begin(); it != D.end(); ++it)
+    {
+      row_ptr[it->row_nbr]++;
+      mDynamicModelFile << "col_ptr[" << k << "] "
+			<< "=" << it->col_nbr << ";" << endl;
+      mDynamicModelFile << "value[" << k << "] = ";
+      // oCstaticModel makes reference to the static variables
+      it->value->writeOutput(mDynamicModelFile, oCStaticModel, temporary_terms, tef_terms);
+      mDynamicModelFile << ";" << endl;
+      k++;
+    }
+
+  // row_ptr must point to the relative address of the first element of the row
+  int cumsum = 0;
+  mDynamicModelFile << "row_ptr = [ 0";
+  for (vector<int>::iterator it=row_ptr.begin(); it != row_ptr.end(); ++it)
+    {
+      cumsum += *it;
+      mDynamicModelFile << ", " << cumsum;
+    }
+  mDynamicModelFile << "];" << endl;   
+
+  mDynamicModelFile << "}" << endl;
+
+  writePowerDeriv(mDynamicModelFile, true);
+  mDynamicModelFile.close();
+
+}
+
+void
+SteadyStateModel::writeSteadyStateFileC(const string &basename, bool ramsey_model) const
+{
+  string filename = basename + "_steadystate.c";
+
+  ofstream output;
+  output.open(filename.c_str(), ios::out | ios::binary);
+  if (!output.is_open())
+    {
+      cerr << "ERROR: Can't open file " << filename << " for writing" << endl;
+      exit(EXIT_FAILURE);
+    }
+
+  output << "#include <math.h>" << endl;
+
+  output << "void steadystate("
+	 << "const double *exo_, const double *params, double *ys_, int *info)" << endl
+         << "// Steady state file generated by Dynare preprocessor" << endl
+	 << "{" << endl
+         << "    *info = 0;" << endl;
+
+  if (def_table.size() == 0)
+    {
+      output << "    return;" << endl
+	     << "}" << endl;
+      return;
+    }
+
+  for (size_t i = 0; i < def_table.size(); i++)
+    {
+      const vector<int> &symb_ids = def_table[i].first;
+      output << "    ";
+      if (symb_ids.size() > 1)
+	std::cout << "Error: in C, multiple returns are not permitted in steady_state_model" << std::endl;
+      variable_node_map_t::const_iterator it = variable_node_map.find(make_pair(symb_ids[0], 0));
+      assert(it != variable_node_map.end());
+      if (it->second->get_type() == eModFileLocalVariable)
+	output << "double ";
+      dynamic_cast<ExprNode *>(it->second)->writeOutput(output, oCSteadyStateFile);
+      output << "=";
+      def_table[i].second->writeOutput(output, oCSteadyStateFile);
+      output << ";" << endl;
+    }
+  output << "    // Auxiliary equations" << endl;
+  static_model.writeAuxVarInitval(output, oCSteadyStateFile);
+  output << "}" << endl;
+}
+
+
+//
+// C++ interface
+//
+void
+ModFile::writeExternalFilesCC(const string &basename, FileOutputType output) const
+{
+  writeModelCC(basename);
+  steady_state_model.writeSteadyStateFileC(basename, mod_file_struct.ramsey_model_present);
+
+  dynamic_model.writeDynamicFile(basename, block, byte_code, use_dll, mod_file_struct.order_option);
+
+  if (!no_static)
+    static_model.writeStaticFile(basename, false, false, true);
+
+
+  //  static_model.writeStaticCFile(basename, block, byte_code, use_dll);
+  //  static_model.writeParamsDerivativesFileC(basename, cuda);
+  //  static_model.writeAuxVarInitvalC(mOutputFile, oMatlabOutsideModel, cuda);
+
+  // dynamic_model.writeResidualsC(basename, cuda);
+  // dynamic_model.writeParamsDerivativesFileC(basename, cuda);
+  dynamic_model.writeFirstDerivativesC(basename, cuda);
+  
+  if (output == second)
+    dynamic_model.writeSecondDerivativesC_csr(basename, cuda);
+  else if (output == third)
+    {
+        dynamic_model.writeSecondDerivativesC_csr(basename, cuda);
+  	dynamic_model.writeThirdDerivativesC_csr(basename, cuda);
+    }
+}
+
+void
+ModFile::writeModelCC(const string &basename) const
+{
+  string filename = basename + ".cc";
+
+  ofstream mDriverCFile;
+  mDriverCFile.open(filename.c_str(), ios::out | ios::binary);
+  if (!mDriverCFile.is_open())
+    {
+      cerr << "Error: Can't open file " << filename << " for writing" << endl;
+      exit(EXIT_FAILURE);
+    }
+
+  mDriverCFile << "/*" << endl
+               << " * " << filename << " : Driver file for Dynare C++ code" << endl
+               << " *" << endl
+               << " * Warning : this file is generated automatically by Dynare" << endl
+               << " *           from model file (.mod)" << endl
+               << " */" << endl
+               << endl
+               << "#include \"dynare_cpp_driver.hh\"" << endl
+               << endl
+               << "DynareInfo::DynareInfo(void)" << endl
+               << "{" << endl;
+
+  // Write basic info
+  symbol_table.writeCCOutput(mDriverCFile);
+
+  mDriverCFile << endl << "params.resize(param_nbr);" << endl;
+
+  if (dynamic_model.equation_number() > 0)
+    {
+      dynamic_model.writeCCOutput(mDriverCFile, basename, block, byte_code, use_dll, mod_file_struct.order_option, mod_file_struct.estimation_present);
+      //      if (!no_static)
+      //        static_model.writeCOutput(mOutputFile, block);
+    }
+
+  // Print statements
+  for (vector<Statement *>::const_iterator it = statements.begin();
+       it != statements.end(); it++)
+      (*it)->writeCOutput(mDriverCFile, basename);
+
+  mDriverCFile << "};" << endl;
+  mDriverCFile.close();
+
+  // Write informational m file
+  ofstream mOutputFile;
+
+  if (basename.size())
+    {
+      string fname(basename);
+      fname += ".m";
+      mOutputFile.open(fname.c_str(), ios::out | ios::binary);
+      if (!mOutputFile.is_open())
+        {
+          cerr << "ERROR: Can't open file " << fname
+               << " for writing" << endl;
+          exit(EXIT_FAILURE);
+        }
+    }
+  else
+    {
+      cerr << "ERROR: Missing file name" << endl;
+      exit(EXIT_FAILURE);
+    }
+
+  mOutputFile << "%" << endl
+              << "% Status : informational m file" << endl
+              << "%" << endl
+              << "% Warning : this file is generated automatically by Dynare" << endl
+              << "%           from model file (.mod)" << endl << endl
+              << "disp('The following C++ file was successfully created:');" << endl
+              << "ls preprocessorOutput.cc" << endl << endl;
+  mOutputFile.close();
+}
+
+
+void
+DynamicModel::writeCCOutput(ostream &output, const string &basename, bool block_decomposition, bool byte_code, bool use_dll, int order, bool estimation_present) const
+{
+  int lag_presence[3];
+  // Loop on endogenous variables
+  for (int endoID = 0; endoID < symbol_table.endo_nbr(); endoID++)
+    {
+      // Loop on periods
+      for (int lag = 0; lag <= 2; lag++)
+	{
+	  lag_presence[lag] = 1;
+          try
+            {
+              getDerivID(symbol_table.getID(eEndogenous, endoID), lag-1);
+            }
+          catch (UnknownDerivIDException &e)
+            {
+	      lag_presence[lag] = 0;
+            }
+        }
+      if (lag_presence[0] == 1)
+	if (lag_presence[2] == 1)
+	  output << "zeta_mixed.push_back(" << endoID << ");" << endl;
+	else
+	  output << "zeta_back.push_back(" << endoID << ");" << endl;
+      else if (lag_presence[2] == 1)
+	output << "zeta_fwrd.push_back(" << endoID << ");" << endl;
+      else
+	output << "zeta_static.push_back(" << endoID << ");" << endl;
+      
+    }
+  output << "nstatic = zeta_static.size();" << endl
+         << "nfwrd   = zeta_fwrd.size();" << endl
+         << "nback   = zeta_back.size();" << endl
+         << "nmixed  = zeta_mixed.size();" << endl;
+
+  // Write number of non-zero derivatives
+  // Use -1 if the derivatives have not been computed
+  output << endl
+         << "NNZDerivatives.push_back(" << NNZDerivatives[0] << ");" << endl;
+  if (order > 1)
+    {
+      output << "NNZDerivatives.push_back(" << NNZDerivatives[1] << ");" << endl;
+      if (order > 2)
+        output << "NNZDerivatives.push_back(" << NNZDerivatives[2] << ");" << endl;
+      else
+        output << "NNZDerivatives.push_back(-1);" << endl;
+    }
+  else
+    output << "NNZDerivatives.push_back(-1);" << endl
+           << "NNZDerivatives.push_back(-1);" << endl;
+}
+
+
diff --git a/preprocessor/Makefile.am b/preprocessor/Makefile.am
index 6556fd445a4c7617d76e03865c1a5f2752ac87f0..5b8118a1b77721f9e5ea45cd6e9d4a99fece2d7d 100644
--- a/preprocessor/Makefile.am
+++ b/preprocessor/Makefile.am
@@ -52,7 +52,9 @@ dynare_m_SOURCES = \
 	SteadyStateModel.hh \
 	SteadyStateModel.cc \
 	WarningConsolidation.hh \
-	WarningConsolidation.cc
+	WarningConsolidation.cc \
+	ExtendedPreprocessorTypes.hh \
+	ExternalFiles.cc
 
 # The -I. is for <FlexLexer.h>
 dynare_m_CPPFLAGS = $(BOOST_CPPFLAGS) -I.
@@ -61,7 +63,7 @@ dynare_m_LDADD = macro/libmacro.a
 
 DynareFlex.cc FlexLexer.h: DynareFlex.ll
 	$(LEX) -oDynareFlex.cc DynareFlex.ll
-	cp /usr/include/FlexLexer.h .
+	cp $(LEXINC)/FlexLexer.h .
 
 DynareBison.cc DynareBison.hh location.hh stack.hh position.hh: DynareBison.yy
 	$(YACC) -o DynareBison.cc DynareBison.yy
diff --git a/preprocessor/ModFile.cc b/preprocessor/ModFile.cc
index 4ef0ab43a6d7825b2b3cf109016bbee671c8c2f3..314fd504e493c416a40559c2bb4939d9b4c7179a 100644
--- a/preprocessor/ModFile.cc
+++ b/preprocessor/ModFile.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Dynare Team
+ * Copyright (C) 2006-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -39,7 +39,7 @@ ModFile::ModFile(WarningConsolidation &warnings_arg)
     steady_state_model(symbol_table, num_constants, external_functions_table, static_model),
     linear(false), block(false), byte_code(false), use_dll(false), no_static(false), 
     differentiate_forward_vars(false),
-    nonstationary_variables(false), ramsey_policy_orig_eqn_nbr(0),
+    nonstationary_variables(false), ramsey_model_orig_eqn_nbr(0),
     warnings(warnings_arg)
 {
 }
@@ -113,7 +113,7 @@ ModFile::checkPass()
     (*it)->checkPass(mod_file_struct, warnings);
 
   // Check the steady state block
-  steady_state_model.checkPass(mod_file_struct.ramsey_policy_present);
+  steady_state_model.checkPass(mod_file_struct.ramsey_model_present, warnings);
 
   // If order option has not been set, default to 2
   if (!mod_file_struct.order_option)
@@ -123,24 +123,25 @@ ModFile::checkPass()
     || mod_file_struct.estimation_present
     || mod_file_struct.osr_present
     || mod_file_struct.ramsey_policy_present
-    || mod_file_struct.discretionary_policy_present;
+    || mod_file_struct.discretionary_policy_present
+    || mod_file_struct.calib_smoother_present;
 
   // Allow empty model only when doing a standalone BVAR estimation
   if (dynamic_model.equation_number() == 0
       && (mod_file_struct.check_present
-          || mod_file_struct.simul_present
+          || mod_file_struct.perfect_foresight_solver_present
           || stochastic_statement_present))
     {
       cerr << "ERROR: At least one model equation must be declared!" << endl;
       exit(EXIT_FAILURE);
     }
 
-  if (((mod_file_struct.ramsey_policy_present || mod_file_struct.discretionary_policy_present) 
+  if (((mod_file_struct.ramsey_model_present || mod_file_struct.discretionary_policy_present) 
        && !mod_file_struct.planner_objective_present)
-      || (!(mod_file_struct.ramsey_policy_present || mod_file_struct.discretionary_policy_present)
+      || (!(mod_file_struct.ramsey_model_present || mod_file_struct.discretionary_policy_present)
 	  && mod_file_struct.planner_objective_present))
     {
-      cerr << "ERROR: A planner_objective statement must be used with a ramsey_policy or a discretionary_policy statement and vice versa." << endl;
+      cerr << "ERROR: A planner_objective statement must be used with a ramsey_model, a ramsey_policy or a discretionary_policy statement and vice versa." << endl;
       exit(EXIT_FAILURE);
     }
 
@@ -152,9 +153,9 @@ ModFile::checkPass()
       exit(EXIT_FAILURE);
     }
 
-  if (mod_file_struct.simul_present && stochastic_statement_present)
+  if (mod_file_struct.perfect_foresight_solver_present && stochastic_statement_present)
     {
-      cerr << "ERROR: A .mod file cannot contain both a simul command and one of {stoch_simul, estimation, osr, ramsey_policy, discretionary_policy}" << endl;
+      cerr << "ERROR: A .mod file cannot contain both one of {perfect_foresight_solver,simul} and one of {stoch_simul, estimation, osr, ramsey_policy, discretionary_policy}. This is not possible: one cannot mix perfect foresight context with stochastic context in the same file." << endl;
       exit(EXIT_FAILURE);
     }
 
@@ -245,9 +246,9 @@ ModFile::checkPass()
     }
   
   if (dynamic_model.staticOnlyEquationsNbr() > 0 &&
-      (mod_file_struct.ramsey_policy_present || mod_file_struct.discretionary_policy_present))
+      (mod_file_struct.ramsey_model_present || mod_file_struct.discretionary_policy_present))
     {
-      cerr << "ERROR: marking equations as [static] or [dynamic] is not possible with ramsey_policy or discretionary_policy" << endl;
+      cerr << "ERROR: marking equations as [static] or [dynamic] is not possible with ramsey_model, ramsey_policy or discretionary_policy" << endl;
       exit(EXIT_FAILURE);
     }
 
@@ -263,6 +264,43 @@ ModFile::checkPass()
        || dynamic_model.isBinaryOpUsed(oEqualEqual)
        || dynamic_model.isBinaryOpUsed(oDifferent)))
     warnings << "WARNING: you are using a function (max, min, abs, sign) or an operator (<, >, <=, >=, ==, !=) which is unsuitable for a stochastic context; see the reference manual, section about \"Expressions\", for more details." << endl;
+
+  // Test if some estimated parameters are used within the values of shocks
+  // statements (see issue #469)
+  set<int> parameters_intersect;
+  set_intersection(mod_file_struct.parameters_within_shocks_values.begin(),
+                   mod_file_struct.parameters_within_shocks_values.end(),
+                   mod_file_struct.estimated_parameters.begin(),
+                   mod_file_struct.estimated_parameters.end(),
+                   inserter(parameters_intersect, parameters_intersect.begin()));
+  if (parameters_intersect.size() > 0)
+    {
+      cerr << "ERROR: some estimated parameters (";
+      for (set<int>::const_iterator it = parameters_intersect.begin();
+           it != parameters_intersect.end(); )
+        {
+          cerr << symbol_table.getName(*it);
+          if (++it != parameters_intersect.end())
+            cerr << ", ";
+        }
+      cerr << ") also appear in the expressions defining the variance/covariance matrix of shocks; this is not allowed." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+  // Check if some exogenous is not used in the model block
+  set<int> unusedExo = dynamic_model.findUnusedExogenous();
+  if (unusedExo.size() > 1)
+    {
+      warnings << "WARNING: some exogenous (";
+      for (set<int>::const_iterator it = unusedExo.begin();
+           it != unusedExo.end(); )
+        {
+          warnings << symbol_table.getName(*it);
+          if (++it != unusedExo.end())
+            warnings << ", ";
+        }
+      warnings << ") are declared but not used in the model. This may lead to crashes or unexpected behaviour." << endl;
+    }
 }
 
 void
@@ -270,8 +308,7 @@ ModFile::transformPass(bool nostrict)
 {
   if (nostrict)
     {
-      set<int> unusedEndogs = symbol_table.getEndogenous();
-      dynamic_model.findUnusedEndogenous(unusedEndogs);
+      set<int> unusedEndogs = dynamic_model.findUnusedEndogenous();
       for (set<int>::iterator it = unusedEndogs.begin(); it != unusedEndogs.end(); it++)
         {
           symbol_table.changeType(*it, eUnusedEndogenous);
@@ -293,7 +330,7 @@ ModFile::transformPass(bool nostrict)
       dynamic_model.removeTrendVariableFromEquations();
     }
 
-  if (mod_file_struct.ramsey_policy_present)
+  if (mod_file_struct.ramsey_model_present)
     {
       StaticModel *planner_objective = NULL;
       for (vector<Statement *>::iterator it = statements.begin(); it != statements.end(); it++)
@@ -303,7 +340,7 @@ ModFile::transformPass(bool nostrict)
             planner_objective = pos->getPlannerObjective();
         }
       assert(planner_objective != NULL);
-      ramsey_policy_orig_eqn_nbr = dynamic_model.equation_number();
+      ramsey_model_orig_eqn_nbr = dynamic_model.equation_number();
 
       /*
         clone the model then clone the new equations back to the original because
@@ -318,7 +355,8 @@ ModFile::transformPass(bool nostrict)
       || mod_file_struct.estimation_present
       || mod_file_struct.osr_present
       || mod_file_struct.ramsey_policy_present
-      || mod_file_struct.discretionary_policy_present)
+      || mod_file_struct.discretionary_policy_present
+      || mod_file_struct.calib_smoother_present)
     {
       // In stochastic models, create auxiliary vars for leads and lags greater than 2, on both endos and exos
       dynamic_model.substituteEndoLeadGreaterThanTwo(false);
@@ -357,11 +395,11 @@ ModFile::transformPass(bool nostrict)
 
   /*
     Enforce the same number of equations and endogenous, except in three cases:
-    - ramsey_policy is used
+    - ramsey_model, ramsey_policy or discretionary_policy is used
     - a BVAR command is used and there is no equation (standalone BVAR estimation)
     - nostrict option is passed and there are more endogs than equations (dealt with before freeze)
   */
-  if (!(mod_file_struct.ramsey_policy_present || mod_file_struct.discretionary_policy_present)
+  if (!(mod_file_struct.ramsey_model_present || mod_file_struct.discretionary_policy_present)
       && !(mod_file_struct.bvar_present && dynamic_model.equation_number() == 0)
       && (dynamic_model.equation_number() != symbol_table.endo_nbr()))
     {
@@ -369,9 +407,9 @@ ModFile::transformPass(bool nostrict)
       exit(EXIT_FAILURE);
     }
 
-  if (symbol_table.exo_det_nbr() > 0 && mod_file_struct.simul_present)
+  if (symbol_table.exo_det_nbr() > 0 && mod_file_struct.perfect_foresight_solver_present)
     {
-      cerr << "ERROR: A .mod file cannot contain both a simul command and varexo_det declaration (all exogenous variables are deterministic in this case)" << endl;
+      cerr << "ERROR: A .mod file cannot contain both one of {perfect_foresight_solver,simul}  and varexo_det declaration (all exogenous variables are deterministic in this case)" << endl;
       exit(EXIT_FAILURE);
     }
 
@@ -381,11 +419,11 @@ ModFile::transformPass(bool nostrict)
       exit(EXIT_FAILURE);
     }
 
-  if (!mod_file_struct.ramsey_policy_present)
+  if (!mod_file_struct.ramsey_model_present)
     cout << "Found " << dynamic_model.equation_number() << " equation(s)." << endl;
   else
     {
-      cout << "Found " << ramsey_policy_orig_eqn_nbr  << " equation(s)." << endl;
+      cout << "Found " << ramsey_model_orig_eqn_nbr  << " equation(s)." << endl;
       cout << "Found " << dynamic_model.equation_number() << " FOC equation(s) for Ramsey Problem." << endl;
     }
 
@@ -409,7 +447,7 @@ ModFile::transformPass(bool nostrict)
 }
 
 void
-ModFile::computingPass(bool no_tmp_terms)
+ModFile::computingPass(bool no_tmp_terms, FileOutputType output)
 {
   // Mod file may have no equation (for example in a standalone BVAR estimation)
   if (dynamic_model.equation_number() > 0)
@@ -423,7 +461,8 @@ ModFile::computingPass(bool no_tmp_terms)
         {
           if (mod_file_struct.stoch_simul_present
               || mod_file_struct.estimation_present || mod_file_struct.osr_present
-              || mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present)
+              || mod_file_struct.ramsey_model_present || mod_file_struct.identification_present
+              || mod_file_struct.calib_smoother_present)
             static_model.set_cutoff_to_zero();
 
           const bool static_hessian = mod_file_struct.identification_present
@@ -431,29 +470,37 @@ ModFile::computingPass(bool no_tmp_terms)
           const bool paramsDerivatives = mod_file_struct.identification_present
             || mod_file_struct.estimation_analytic_derivation;
           static_model.computingPass(global_eval_context, no_tmp_terms, static_hessian,
-                                     paramsDerivatives, block, byte_code);
+                                     false, paramsDerivatives, block, byte_code);
         }
       // Set things to compute for dynamic model
-      if (mod_file_struct.simul_present || mod_file_struct.check_present
+      if (mod_file_struct.perfect_foresight_solver_present || mod_file_struct.check_present
           || mod_file_struct.stoch_simul_present
           || mod_file_struct.estimation_present || mod_file_struct.osr_present
-          || mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present)
+          || mod_file_struct.ramsey_model_present || mod_file_struct.identification_present
+          || mod_file_struct.calib_smoother_present)
         {
-          if (mod_file_struct.simul_present)
+          if (mod_file_struct.perfect_foresight_solver_present)
             dynamic_model.computingPass(true, false, false, false, global_eval_context, no_tmp_terms, block, use_dll, byte_code);
           else
             {
               if (mod_file_struct.stoch_simul_present
                   || mod_file_struct.estimation_present || mod_file_struct.osr_present
-                  || mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present)
+                  || mod_file_struct.ramsey_model_present || mod_file_struct.identification_present
+                  || mod_file_struct.calib_smoother_present)
                 dynamic_model.set_cutoff_to_zero();
               if (mod_file_struct.order_option < 1 || mod_file_struct.order_option > 3)
                 {
                   cerr << "ERROR: Incorrect order option..." << endl;
                   exit(EXIT_FAILURE);
                 }
-              bool hessian = mod_file_struct.order_option >= 2 || mod_file_struct.identification_present || mod_file_struct.estimation_analytic_derivation;
-              bool thirdDerivatives = mod_file_struct.order_option == 3 || mod_file_struct.estimation_analytic_derivation;
+              bool hessian = mod_file_struct.order_option >= 2 
+		|| mod_file_struct.identification_present 
+		|| mod_file_struct.estimation_analytic_derivation
+		|| output == second 
+		|| output == third;
+              bool thirdDerivatives = mod_file_struct.order_option == 3 
+		|| mod_file_struct.estimation_analytic_derivation
+		|| output == third;
               bool paramsDerivatives = mod_file_struct.identification_present || mod_file_struct.estimation_analytic_derivation;
               dynamic_model.computingPass(true, hessian, thirdDerivatives, paramsDerivatives, global_eval_context, no_tmp_terms, block, use_dll, byte_code);
             }
@@ -532,15 +579,26 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
 
   symbol_table.writeOutput(mOutputFile);
 
-  // Initialize M_.Sigma_e and M_.H
+  // Initialize M_.Sigma_e, M_.Correlation_matrix, M_.H, and M_.Correlation_matrix_ME
   mOutputFile << "M_.Sigma_e = zeros(" << symbol_table.exo_nbr() << ", "
+              << symbol_table.exo_nbr() << ");" << endl
+              << "M_.Correlation_matrix = eye(" << symbol_table.exo_nbr() << ", "
               << symbol_table.exo_nbr() << ");" << endl;
 
   if (mod_file_struct.calibrated_measurement_errors)
     mOutputFile << "M_.H = zeros(" << symbol_table.observedVariablesNbr() << ", "
+                << symbol_table.observedVariablesNbr() << ");" << endl
+                << "M_.Correlation_matrix_ME = eye(" << symbol_table.observedVariablesNbr() << ", "
                 << symbol_table.observedVariablesNbr() << ");" << endl;
   else
-    mOutputFile << "M_.H = 0;" << endl;
+    mOutputFile << "M_.H = 0;" << endl
+                << "M_.Correlation_matrix_ME = 1;" << endl;
+
+  // May be later modified by a shocks block
+  mOutputFile << "M_.sigma_e_is_diagonal = 1;" << endl;
+
+  // Initialize M_.det_shocks
+  mOutputFile << "M_.det_shocks = [];" << endl;
 
   if (linear == 1)
     mOutputFile << "options_.linear = 1;" << endl;
@@ -572,14 +630,16 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
                 << "end" << endl;
 
   // Erase possible remnants of previous runs
-  string dynfile = basename + "_dynamic.m";
-  unlink(dynfile.c_str());
+  unlink((basename + "_dynamic.m").c_str());
+  unlink((basename + "_dynamic.cod").c_str());
+  unlink((basename + "_dynamic.bin").c_str());
 
-  string statfile = basename + "_static.m";
-  unlink(statfile.c_str());
+  unlink((basename + "_static.m").c_str());
+  unlink((basename + "_static.cod").c_str());
+  unlink((basename + "_static.bin").c_str());
 
-  string steadystatefile = basename + "_steadystate2.m";
-  unlink(steadystatefile.c_str());
+  unlink((basename + "_steadystate2.m").c_str());
+  unlink((basename + "_set_auxiliary_variables.m").c_str());
 
   if (!use_dll)
     {
@@ -633,14 +693,31 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
 #else
 # ifdef __linux__
       // MATLAB/Linux
-      mOutputFile << "    eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
-                  << "    eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl;
+      mOutputFile << "    if matlab_ver_less_than('8.3')" << endl
+                  << "        eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
+                  << "        eval('mex -O LDFLAGS=''-pthread -shared -Wl,--no-undefined'' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl
+                  << "    else" << endl
+                  << "        eval('mex -O LINKEXPORT='''' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
+                  << "        eval('mex -O LINKEXPORT='''' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl
+                  << "    end" << endl;
 # else // MacOS
       // MATLAB/MacOS
-      mOutputFile << "    eval('mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined error -arch \\$ARCHS -Wl,-syslibroot,\\$SDKROOT -mmacosx-version-min=\\$MACOSX_DEPLOYMENT_TARGET -bundle'' "
+      mOutputFile << "    if matlab_ver_less_than('8.3')" << endl
+                  << "        if matlab_ver_less_than('8.1')" << endl
+                  << "            eval('mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined error -arch \\$ARCHS -Wl,-syslibroot,\\$SDKROOT -mmacosx-version-min=\\$MACOSX_DEPLOYMENT_TARGET -bundle'' "
                   << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
-                  << "    eval('mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined error -arch \\$ARCHS -Wl,-syslibroot,\\$SDKROOT -mmacosx-version-min=\\$MACOSX_DEPLOYMENT_TARGET -bundle'' "
-                  << basename << "_static.c " << basename << "_static_mex.c')" << endl;
+                  << "            eval('mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined error -arch \\$ARCHS -Wl,-syslibroot,\\$SDKROOT -mmacosx-version-min=\\$MACOSX_DEPLOYMENT_TARGET -bundle'' "
+                  << basename << "_static.c " << basename << "_static_mex.c')" << endl
+                  << "        else" << endl
+                  << "            eval('mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined error -arch \\$ARCHS -Wl,-syslibroot,\\$MW_SDKROOT -mmacosx-version-min=\\$MACOSX_DEPLOYMENT_TARGET -bundle'' "
+                  << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
+                  << "            eval('mex -O LDFLAGS=''-Wl,-twolevel_namespace -undefined error -arch \\$ARCHS -Wl,-syslibroot,\\$MW_SDKROOT -mmacosx-version-min=\\$MACOSX_DEPLOYMENT_TARGET -bundle'' "
+                  << basename << "_static.c " << basename << "_static_mex.c')" << endl
+                  << "        end" << endl
+                  << "    else" << endl
+                  << "        eval('mex -O LINKEXPORT='''' " << basename << "_dynamic.c " << basename << "_dynamic_mex.c')" << endl
+                  << "        eval('mex -O LINKEXPORT='''' " << basename << "_static.c "<< basename << "_static_mex.c')" << endl
+                  << "    end" << endl;
 # endif
 #endif
       mOutputFile << "else" << endl // Octave
@@ -653,8 +730,8 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
   if (block && !byte_code)
     mOutputFile << "addpath " << basename << ";" << endl;
 
-  if (mod_file_struct.ramsey_policy_present)
-    mOutputFile << "M_.orig_eq_nbr = " << ramsey_policy_orig_eqn_nbr << ";" << endl;
+  if (mod_file_struct.ramsey_model_present)
+    mOutputFile << "M_.orig_eq_nbr = " << ramsey_model_orig_eqn_nbr << ";" << endl;
 
   if (dynamic_model.equation_number() > 0)
     {
@@ -693,7 +770,15 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
   if (block && !byte_code)
     mOutputFile << "rmpath " << basename << ";" << endl;
 
-  mOutputFile << "save('" << basename << "_results.mat', 'oo_', 'M_', 'options_');" << endl;
+  mOutputFile << "save('" << basename << "_results.mat', 'oo_', 'M_', 'options_');" << endl
+              << "if exist('estim_params_', 'var') == 1" << endl
+              << "  save('" << basename << "_results.mat', 'estim_params_', '-append');" << endl << "end" << endl
+              << "if exist('bayestopt_', 'var') == 1" << endl
+              << "  save('" << basename << "_results.mat', 'bayestopt_', '-append');" << endl << "end" << endl
+              << "if exist('dataset_', 'var') == 1" << endl
+              << "  save('" << basename << "_results.mat', 'dataset_', '-append');" << endl << "end" << endl
+              << "if exist('estimation_info', 'var') == 1" << endl
+              << "  save('" << basename << "_results.mat', 'estimation_info', '-append');" << endl << "end" << endl;
 
   config_file.writeEndParallel(mOutputFile);
 
@@ -730,7 +815,9 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
     }
 
   // Create steady state file
-  steady_state_model.writeSteadyStateFile(basename, mod_file_struct.ramsey_policy_present);
+  steady_state_model.writeSteadyStateFile(basename, mod_file_struct.ramsey_model_present);
 
   cout << "done" << endl;
 }
+
+
diff --git a/preprocessor/ModFile.hh b/preprocessor/ModFile.hh
index cdbca4453afbbb15e55423e1143374885c5d102c..a561af08efea45f58dade4bbbeb261a5f3a2ad57 100644
--- a/preprocessor/ModFile.hh
+++ b/preprocessor/ModFile.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Dynare Team
+ * Copyright (C) 2006-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -35,6 +35,7 @@ using namespace std;
 #include "ExternalFunctionsTable.hh"
 #include "ConfigFile.hh"
 #include "WarningConsolidation.hh"
+#include "ExtendedPreprocessorTypes.hh"
 
 //! The abstract representation of a "mod" file
 class ModFile
@@ -92,7 +93,7 @@ public:
   eval_context_t global_eval_context;
 
   //! Stores the original number of equations in the model_block
-  int ramsey_policy_orig_eqn_nbr;
+  int ramsey_model_orig_eqn_nbr;
 
   //! Stores the list of extra files to be transefered during a parallel run
   /*! (i.e. option parallel_local_files of model block) */
@@ -121,7 +122,7 @@ public:
   void transformPass(bool nostrict);
   //! Execute computations
   /*! \param no_tmp_terms if true, no temporary terms will be computed in the static and dynamic files */
-  void computingPass(bool no_tmp_terms);
+  void computingPass(bool no_tmp_terms, FileOutputType output);
   //! Writes Matlab/Octave output files
   /*!
     \param basename The base name used for writing output files. Should be the name of the mod file without its extension
@@ -137,6 +138,16 @@ public:
                         , bool cygwin, bool msvc
 #endif
                         ) const;
+  // Functions located in ExternalFiles.cc
+  void writeExternalFiles(const string &basename, FileOutputType output, LanguageOutputType language) const;
+  void writeExternalFilesC(const string &basename, FileOutputType output) const;
+  void writeExternalFilesCC(const string &basename, FileOutputType output) const;
+  //! Writes C output files only => No further Matlab processing
+  void writeCOutputFiles(const string &basename) const;
+  void writeModelC(const string &basename) const;
+  //! Writes Cpp output files only => No further Matlab processing
+  void writeCCOutputFiles(const string &basename) const;
+  void writeModelCC(const string &basename) const;
 };
 
 #endif // ! MOD_FILE_HH
diff --git a/preprocessor/ModelTree.cc b/preprocessor/ModelTree.cc
index 2a798017cf7425b24cab68dcf6fb2855c16ccbea..a83ea06f909074e4284539689800a98a23f4b06e 100644
--- a/preprocessor/ModelTree.cc
+++ b/preprocessor/ModelTree.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -270,7 +270,7 @@ ModelTree::evaluateAndReduceJacobian(const eval_context_t &eval_context, jacob_m
             }
           catch (ExprNode::EvalException &e)
             {
-              cerr << "ERROR: evaluation of Jacobian failed for equation " << eq+1 << " and variable " << symbol_table.getName(symb) << "(" << lag << ") [" << symb << "] !" << endl;
+              cerr << "ERROR: evaluation of Jacobian failed for equation " << eq+1 << " (line " << equations_lineno[eq] << ") and variable " << symbol_table.getName(symb) << "(" << lag << ") [" << symb << "] !" << endl;
               Id->writeOutput(cerr, oMatlabDynamicModelSparse, temporary_terms);
               cerr << endl;
               exit(EXIT_FAILURE);
@@ -1113,7 +1113,7 @@ ModelTree::writeTemporaryTerms(const temporary_terms_t &tt, ostream &output,
   for (temporary_terms_t::const_iterator it = tt.begin();
        it != tt.end(); it++)
     {
-      if (dynamic_cast<ExternalFunctionNode *>(*it) != NULL)
+      if (dynamic_cast<AbstractExternalFunctionNode *>(*it) != NULL)
         (*it)->writeExternalFunctionOutput(output, output_type, tt2, tef_terms);
 
       if (IS_C(output_type))
@@ -1144,7 +1144,7 @@ ModelTree::compileTemporaryTerms(ostream &code_file, unsigned int &instruction_n
   for (temporary_terms_t::const_iterator it = tt.begin();
        it != tt.end(); it++)
     {
-      if (dynamic_cast<ExternalFunctionNode *>(*it) != NULL)
+      if (dynamic_cast<AbstractExternalFunctionNode *>(*it) != NULL)
         {
           (*it)->compileExternalFunctionOutput(code_file, instruction_number, false, tt2, map_idx, dynamic, steady_dynamic, tef_terms);
         }
@@ -1179,7 +1179,7 @@ ModelTree::writeModelLocalVariables(ostream &output, ExprNodeOutputType output_t
   const temporary_terms_t tt;
 
   for (size_t i = 0; i < equations.size(); i++)
-    equations[i]->collectModelLocalVariables(used_local_vars);
+    equations[i]->collectVariables(eModelLocalVariable, used_local_vars);
 
   for (set<int>::const_iterator it = used_local_vars.begin();
        it != used_local_vars.end(); ++it)
@@ -1376,21 +1376,22 @@ ModelTree::writeLatexModelFile(const string &filename, ExprNodeOutputType output
 }
 
 void
-ModelTree::addEquation(expr_t eq)
+ModelTree::addEquation(expr_t eq, int lineno)
 {
   BinaryOpNode *beq = dynamic_cast<BinaryOpNode *>(eq);
   assert(beq != NULL && beq->get_op_code() == oEqual);
 
   equations.push_back(beq);
+  equations_lineno.push_back(lineno);
 }
 
 void
-ModelTree::addEquation(expr_t eq, vector<pair<string, string> > &eq_tags)
+ModelTree::addEquation(expr_t eq, int lineno, vector<pair<string, string> > &eq_tags)
 {
   int n = equation_number();
   for (size_t i = 0; i < eq_tags.size(); i++)
     equation_tags.push_back(make_pair(n, eq_tags[i]));
-  addEquation(eq);
+  addEquation(eq, lineno);
 }
 
 void
@@ -1567,3 +1568,10 @@ ModelTree::computeParamsDerivativesTemporaryTerms()
        it != hessian_params_derivatives.end(); ++it)
     it->second->computeTemporaryTerms(reference_count, params_derivs_temporary_terms, true);
 }
+
+bool ModelTree::isNonstationary(int symb_id) const
+{
+  return (nonstationary_symbols_map.find(symb_id)
+          != nonstationary_symbols_map.end());
+}
+
diff --git a/preprocessor/ModelTree.hh b/preprocessor/ModelTree.hh
index 3a29aa90ec960c958d91aaecd481a843eac87e05..4d161daf8bf027a91cf6c85ba8fc42c848dcd25b 100644
--- a/preprocessor/ModelTree.hh
+++ b/preprocessor/ModelTree.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -54,6 +54,9 @@ protected:
   //! Stores declared and generated auxiliary equations
   vector<BinaryOpNode *> equations;
 
+  //! Stores line numbers of declared equations; -1 means undefined
+  vector<int> equations_lineno;
+
   //! Only stores generated auxiliary equations, in an order meaningful for evaluation
   deque<BinaryOpNode *> aux_equations;
 
@@ -158,7 +161,6 @@ protected:
   void computeThirdDerivatives(const set<int> &vars);
   //! Computes derivatives of the Jacobian and Hessian w.r. to parameters
   void computeParamsDerivatives();
-
   //! Write derivative of an equation w.r. to a variable
   void writeDerivative(ostream &output, int eq, int symb_id, int lag, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms) const;
   //! Computes temporary terms (for all equations and derivatives)
@@ -295,10 +297,10 @@ public:
     3 : the variables belonging to a non normalizable non linear equation are considered as feedback variables
     default value = 0 */
   int mfs;
-  //! Declare a node as an equation of the model
-  void addEquation(expr_t eq);
+  //! Declare a node as an equation of the model; also give its line number
+  void addEquation(expr_t eq, int lineno);
   //! Declare a node as an equation of the model, also giving its tags
-  void addEquation(expr_t eq, vector<pair<string, string> > &eq_tags);
+  void addEquation(expr_t eq, int lineno, vector<pair<string, string> > &eq_tags);
   //! Declare a node as an auxiliary equation of the model, adding it at the end of the list of auxiliary equations
   void addAuxEquation(expr_t eq);
   //! Returns the number of equations in the model
@@ -307,6 +309,8 @@ public:
   void addTrendVariables(vector<int> trend_vars, expr_t growth_factor) throw (TrendException);
   //! Adds a nonstationary variables with their (common) deflator
   void addNonstationaryVariables(vector<int> nonstationary_vars, bool log_deflator, expr_t deflator) throw (TrendException);
+  //! Is a given variable non-stationary?
+  bool isNonstationary(int symb_id) const;
   void set_cutoff_to_zero();
   //! Helper for writing the Jacobian elements in MATLAB and C
   /*! Writes either (i+1,j+1) or [i+j*no_eq] */
diff --git a/preprocessor/NumericalInitialization.cc b/preprocessor/NumericalInitialization.cc
index 4e28a4920f03cc7af62e5c6ee00addd74926e8c8..3df225fcff15e7cec62594663c3a102331770a5b 100644
--- a/preprocessor/NumericalInitialization.cc
+++ b/preprocessor/NumericalInitialization.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -50,6 +50,16 @@ InitParamStatement::writeOutput(ostream &output, const string &basename) const
   output << symbol_table.getName(symb_id) << " = M_.params( " << id << " );\n";
 }
 
+void
+InitParamStatement::writeCOutput(ostream &output, const string &basename)
+{
+  int id = symbol_table.getTypeSpecificID(symb_id);
+  output << "params[ " << id << " ] = ";
+  param_value->writeOutput(output);
+  output << ";" << endl;
+  output << "double " << symbol_table.getName(symb_id) << " = params[ " << id << " ];" << endl;
+}
+
 void
 InitParamStatement::fillEvalContext(eval_context_t &eval_context) const
 {
@@ -229,12 +239,6 @@ EndValStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidati
 
   if (endogs.size() > 0 || exogs.size() > 0)
     exit(EXIT_FAILURE);
-
-  if (mod_file_struct.shocks_present_but_simul_not_yet)
-    {
-      cerr << "ERROR: Putting a \"shocks\" block before an \"endval\" block is not permitted. Please swap the two blocks. This limitation will be removed in a future release of Dynare." << endl;
-      exit(EXIT_FAILURE);
-    }
 }
 
 void
@@ -269,7 +273,7 @@ HistValStatement::writeOutput(ostream &output, const string &basename) const
   output << "%" << endl
          << "% HISTVAL instructions" << endl
          << "%" << endl
-         << "M_.endo_histval = zeros(M_.endo_nbr,M_.maximum_lag);" << endl;
+         << "M_.endo_histval = zeros(M_.endo_nbr,M_.maximum_endo_lag);" << endl;
 
   for (hist_values_t::const_iterator it = hist_values.begin();
        it != hist_values.end(); it++)
@@ -305,7 +309,7 @@ HistValStatement::writeOutput(ostream &output, const string &basename) const
       int tsid = symbol_table.getTypeSpecificID(symb_id) + 1;
 
       if (type == eEndogenous)
-        output << "M_.endo_histval( " << tsid << ", M_.maximum_lag + " << lag << ") = ";
+        output << "M_.endo_histval( " << tsid << ", M_.maximum_endo_lag + " << lag << ") = ";
       else if (type == eExogenous)
         output << "oo_.exo_simul( M_.maximum_lag + " << lag << ", " << tsid << " ) = ";
       else if (type != eExogenousDet)
@@ -331,6 +335,17 @@ InitvalFileStatement::writeOutput(ostream &output, const string &basename) const
          << "initvalf('" << filename << "');" << endl;
 }
 
+HistvalFileStatement::HistvalFileStatement(const string &filename_arg) :
+  filename(filename_arg)
+{
+}
+
+void
+HistvalFileStatement::writeOutput(ostream &output, const string &basename) const
+{
+  output << "histvalf('" << filename << "');" << endl;
+}
+
 HomotopyStatement::HomotopyStatement(const homotopy_values_t &homotopy_values_arg,
                                      const SymbolTable &symbol_table_arg) :
   homotopy_values(homotopy_values_arg),
diff --git a/preprocessor/NumericalInitialization.hh b/preprocessor/NumericalInitialization.hh
index f92144103dd7bebd55405988c4475415c171fc55..c61d41e1490d12f547a6c69e73b74a0a6c886cd0 100644
--- a/preprocessor/NumericalInitialization.hh
+++ b/preprocessor/NumericalInitialization.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2012 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -41,6 +41,7 @@ public:
                      const SymbolTable &symbol_table_arg);
   virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
   virtual void writeOutput(ostream &output, const string &basename) const;
+  virtual void writeCOutput(ostream &output, const string &basename);
   //! Fill eval context with parameter value
   void fillEvalContext(eval_context_t &eval_context) const;
 };
@@ -121,6 +122,15 @@ public:
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
 
+class HistvalFileStatement : public Statement
+{
+private:
+  const string filename;
+public:
+  HistvalFileStatement(const string &filename_arg);
+  virtual void writeOutput(ostream &output, const string &basename) const;
+};
+
 class HomotopyStatement : public Statement
 {
 public:
diff --git a/preprocessor/ParsingDriver.cc b/preprocessor/ParsingDriver.cc
index 38bf5a782eddfcd836857778db078fa212ce0bd9..70ebe8712c4ec2bbe08a8c7e3e81baf2914243d5 100644
--- a/preprocessor/ParsingDriver.cc
+++ b/preprocessor/ParsingDriver.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -131,14 +131,19 @@ ParsingDriver::warning(const string &m)
 }
 
 void
-ParsingDriver::declare_symbol(const string *name, SymbolType type, const string *tex_name)
+ParsingDriver::declare_symbol(const string *name, SymbolType type, const string *tex_name, const string *long_name)
 {
   try
     {
-      if (tex_name == NULL)
+      if (tex_name == NULL && long_name == NULL)
         mod_file->symbol_table.addSymbol(*name, type);
       else
-        mod_file->symbol_table.addSymbol(*name, type, *tex_name);
+        if (tex_name == NULL)
+          mod_file->symbol_table.addSymbol(*name, type, "", *long_name);
+        else if (long_name == NULL)
+          mod_file->symbol_table.addSymbol(*name, type, *tex_name, "");
+        else
+          mod_file->symbol_table.addSymbol(*name, type, *tex_name, *long_name);
     }
   catch (SymbolTable::AlreadyDeclaredException &e)
     {
@@ -150,39 +155,47 @@ ParsingDriver::declare_symbol(const string *name, SymbolType type, const string
 }
 
 void
-ParsingDriver::declare_endogenous(string *name, string *tex_name)
+ParsingDriver::declare_endogenous(string *name, string *tex_name, string *long_name)
 {
-  declare_symbol(name, eEndogenous, tex_name);
+  declare_symbol(name, eEndogenous, tex_name, long_name);
   delete name;
   if (tex_name != NULL)
     delete tex_name;
+  if (long_name != NULL)
+    delete long_name;
 }
 
 void
-ParsingDriver::declare_exogenous(string *name, string *tex_name)
+ParsingDriver::declare_exogenous(string *name, string *tex_name, string *long_name)
 {
-  declare_symbol(name, eExogenous, tex_name);
+  declare_symbol(name, eExogenous, tex_name, long_name);
   delete name;
   if (tex_name != NULL)
     delete tex_name;
+  if (long_name != NULL)
+    delete long_name;
 }
 
 void
-ParsingDriver::declare_exogenous_det(string *name, string *tex_name)
+ParsingDriver::declare_exogenous_det(string *name, string *tex_name, string *long_name)
 {
-  declare_symbol(name, eExogenousDet, tex_name);
+  declare_symbol(name, eExogenousDet, tex_name, long_name);
   delete name;
   if (tex_name != NULL)
     delete tex_name;
+  if (long_name != NULL)
+    delete long_name;
 }
 
 void
-ParsingDriver::declare_parameter(string *name, string *tex_name)
+ParsingDriver::declare_parameter(string *name, string *tex_name, string *long_name)
 {
-  declare_symbol(name, eParameter, tex_name);
+  declare_symbol(name, eParameter, tex_name, long_name);
   delete name;
   if (tex_name != NULL)
     delete tex_name;
+  if (long_name != NULL)
+    delete long_name;
 }
 
 void
@@ -191,7 +204,7 @@ ParsingDriver::declare_statement_local_variable(string *name)
   if (mod_file->symbol_table.exists(*name))
     error("Symbol " + *name + " cannot be assigned within a statement " +
           "while being assigned elsewhere in the modfile");
-  declare_symbol(name, eStatementDeclaredVariable, NULL);
+  declare_symbol(name, eStatementDeclaredVariable, NULL, NULL);
   delete name;
 }
 
@@ -201,7 +214,7 @@ ParsingDriver::declare_optimal_policy_discount_factor_parameter(expr_t exprnode)
   string *optimalParName_declare = new string("optimal_policy_discount_factor");
   string *optimalParName_init = new string("optimal_policy_discount_factor");
   if (mod_file->symbol_table.exists(*optimalParName_declare))
-    error("Symbol optimal_policy_discount_factor is needed by Dynare when using an ramsey_policy or a discretionary_policy statement");
+    error("Symbol optimal_policy_discount_factor is needed by Dynare when using a ramsey_model, a ramsey_policy or a discretionary_policy statement");
   declare_parameter(optimalParName_declare, NULL);
   init_param(optimalParName_init, exprnode);
 }
@@ -215,7 +228,7 @@ ParsingDriver::begin_trend()
 void
 ParsingDriver::declare_trend_var(bool log_trend, string *name, string *tex_name)
 {
-  declare_symbol(name, log_trend ? eLogTrend : eTrend, tex_name);
+  declare_symbol(name, log_trend ? eLogTrend : eTrend, tex_name, NULL);
   declared_trend_vars.push_back(mod_file->symbol_table.getID(*name));
   delete name;
   if (tex_name != NULL)
@@ -325,6 +338,13 @@ ParsingDriver::add_expression_variable(string *name)
   if (mod_file->symbol_table.getType(*name) == eModelLocalVariable)
     error("Variable " + *name + " not allowed outside model declaration. Its scope is only inside model.");
 
+  if (mod_file->symbol_table.getType(*name) == eTrend
+      || mod_file->symbol_table.getType(*name) == eLogTrend)
+    error("Variable " + *name + " not allowed outside model declaration, because it is a trend variable.");
+
+  if (mod_file->symbol_table.getType(*name) == eExternalFunction)
+    error("Symbol '" + *name + "' is the name of a MATLAB/Octave function, and cannot be used as a variable.");
+
   int symb_id = mod_file->symbol_table.getID(*name);
   expr_t id = data_tree->AddVariable(symb_id);
 
@@ -333,17 +353,25 @@ ParsingDriver::add_expression_variable(string *name)
 }
 
 void
-ParsingDriver::declare_nonstationary_var(string *name, string *tex_name)
+ParsingDriver::declare_nonstationary_var(string *name, string *tex_name, string *long_name)
 {
-  if (tex_name != NULL)
-    declare_endogenous(new string(*name), new string(*tex_name));
+  if (tex_name == NULL && long_name == NULL)
+    declare_endogenous(new string(*name));
   else
-    declare_endogenous(new string(*name), tex_name);
+    if (tex_name == NULL)
+      declare_endogenous(new string(*name), NULL, new string(*long_name));
+    else if (long_name == NULL)
+      declare_endogenous(new string(*name), new string(*tex_name));
+    else
+      declare_endogenous(new string(*name), new string(*tex_name), new string(*long_name));
+
   declared_nonstationary_vars.push_back(mod_file->symbol_table.getID(*name));
   mod_file->nonstationary_variables = true;
   delete name;
   if (tex_name != NULL)
     delete tex_name;
+  if (long_name != NULL)
+    delete long_name;
 }
 
 void
@@ -357,6 +385,13 @@ ParsingDriver::end_nonstationary_var(bool log_deflator, expr_t deflator)
     {
       error("Variable " + e.name + " was listed more than once as following a trend.");
     }
+
+  set<int> r;
+  deflator->collectVariables(eEndogenous, r);
+  for (set<int>::const_iterator it = r.begin(); it != r.end(); ++it)
+    if (dynamic_model->isNonstationary(*it))
+      error("The deflator contains a non-stationary endogenous variable. This is not allowed. Please use only stationary endogenous and/or {log_}trend_vars.");
+
   declared_nonstationary_vars.clear();
   reset_data_tree();
 }
@@ -585,9 +620,9 @@ ParsingDriver::begin_model()
 }
 
 void
-ParsingDriver::end_shocks()
+ParsingDriver::end_shocks(bool overwrite)
 {
-  mod_file->addStatement(new ShocksStatement(det_shocks, var_shocks, std_shocks,
+  mod_file->addStatement(new ShocksStatement(overwrite, det_shocks, var_shocks, std_shocks,
                                              covar_shocks, corr_shocks, mod_file->symbol_table));
   det_shocks.clear();
   var_shocks.clear();
@@ -597,9 +632,9 @@ ParsingDriver::end_shocks()
 }
 
 void
-ParsingDriver::end_mshocks()
+ParsingDriver::end_mshocks(bool overwrite)
 {
-  mod_file->addStatement(new MShocksStatement(det_shocks, mod_file->symbol_table));
+  mod_file->addStatement(new MShocksStatement(overwrite, det_shocks, mod_file->symbol_table));
   det_shocks.clear();
 }
 
@@ -638,12 +673,10 @@ ParsingDriver::add_det_shock(string *var, bool conditional_forecast)
       v.push_back(dse);
     }
 
-  det_shocks[symb_id].first = v;
-  det_shocks[symb_id].second = det_shocks_expectation_pf;
-
+  det_shocks[symb_id] = v;
+  
   det_shocks_periods.clear();
   det_shocks_values.clear();
-  det_shocks_expectation_pf = false;
   delete var;
 }
 
@@ -763,12 +796,6 @@ ParsingDriver::add_value(string *v)
   det_shocks_values.push_back(id);
 }
 
-void
-ParsingDriver::add_expectation_pf(bool pf)
-{
-  det_shocks_expectation_pf = pf;
-}
-
 void
 ParsingDriver::begin_svar_identification()
 {
@@ -1111,6 +1138,15 @@ ParsingDriver::option_symbol_list(const string &name_option)
           error("Variables passed to irf_shocks must be exogenous. Caused by: " + *it);
     }
 
+  if (name_option.compare("ms.parameters")==0)
+    {
+      vector<string> parameters = symbol_list.get_symbols();
+      for (vector<string>::const_iterator it = parameters.begin();
+           it != parameters.end(); it++)
+        if (mod_file->symbol_table.getType(*it) != eParameter)
+          error("Variables passed to the parameters option of the markov_switching statement must be parameters. Caused by: " + *it);
+    }
+
   options_list.symbol_list_options[name_option] = symbol_list;
   symbol_list.clear();
 }
@@ -1187,8 +1223,23 @@ ParsingDriver::add_estimated_params_element()
   if (estim_params.name != "dsge_prior_weight")
     {
       check_symbol_existence(estim_params.name);
-      if (estim_params.name2.size() > 0)
-        check_symbol_existence(estim_params.name2);
+      SymbolType type = mod_file->symbol_table.getType(estim_params.name);
+      switch (estim_params.type)
+        {
+        case 1:
+          if (type != eEndogenous && type != eExogenous)
+            error(estim_params.name + " must be an endogenous or an exogenous variable");
+          break;
+        case 2:
+          check_symbol_is_parameter(&estim_params.name);
+          break;
+        case 3:
+          check_symbol_existence(estim_params.name2);
+          SymbolType type2 = mod_file->symbol_table.getType(estim_params.name2);
+          if ((type != eEndogenous && type != eExogenous) || type != type2)
+            error(estim_params.name + " and " + estim_params.name2 + " must either be both endogenous variables or both exogenous");
+          break;
+        }
     }
   estim_params_list.push_back(estim_params);
   estim_params.init(*data_tree);
@@ -1202,9 +1253,9 @@ ParsingDriver::estimated_params()
 }
 
 void
-ParsingDriver::estimated_params_init()
+ParsingDriver::estimated_params_init(bool use_calibration)
 {
-  mod_file->addStatement(new EstimatedParamsInitStatement(estim_params_list, mod_file->symbol_table));
+  mod_file->addStatement(new EstimatedParamsInitStatement(estim_params_list, mod_file->symbol_table, use_calibration));
   estim_params_list.clear();
 }
 
@@ -1226,10 +1277,7 @@ ParsingDriver::set_unit_root_vars()
 void
 ParsingDriver::set_time(string *arg)
 {
-  string arg1 = *arg;
-  for (size_t i=0; i<arg1.length(); i++)
-    arg1[i]= toupper(arg1[i]);
-  option_date("initial_period", arg1);
+  option_date("initial_period", arg);
   mod_file->addStatement(new SetTimeStatement(options_list));
   options_list.clear();
 }
@@ -1520,7 +1568,7 @@ ParsingDriver::set_corr_options(string *name1, string *name2, string *subsample_
 void
 ParsingDriver::run_estimation()
 {
-  mod_file->addStatement(new EstimationStatement(symbol_list, options_list, mod_file->symbol_table));
+  mod_file->addStatement(new EstimationStatement(symbol_list, options_list));
   symbol_list.clear();
   options_list.clear();
 }
@@ -1720,13 +1768,23 @@ ParsingDriver::end_planner_objective(expr_t expr)
 {
   // Add equation corresponding to expression
   expr_t eq = model_tree->AddEqual(expr, model_tree->Zero);
-  model_tree->addEquation(eq);
+  model_tree->addEquation(eq, location.begin.line);
 
   mod_file->addStatement(new PlannerObjectiveStatement(dynamic_cast<StaticModel *>(model_tree)));
 
   reset_data_tree();
 }
 
+void
+ParsingDriver::ramsey_model()
+{
+  if (!mod_file->symbol_table.exists("optimal_policy_discount_factor"))
+    declare_optimal_policy_discount_factor_parameter(data_tree->One);
+  mod_file->addStatement(new RamseyModelStatement(symbol_list, options_list));
+  symbol_list.clear();
+  options_list.clear();
+}
+
 void
 ParsingDriver::ramsey_policy()
 {
@@ -1928,7 +1986,7 @@ ParsingDriver::plot_conditional_forecast(string *periods)
 void
 ParsingDriver::conditional_forecast_paths()
 {
-  mod_file->addStatement(new ConditionalForecastPathsStatement(det_shocks, mod_file->symbol_table));
+  mod_file->addStatement(new ConditionalForecastPathsStatement(det_shocks));
   det_shocks.clear();
 }
 
@@ -1967,10 +2025,10 @@ ParsingDriver::add_model_equal(expr_t arg1, expr_t arg2)
       if (!id->isInStaticForm())
         error("An equation tagged [static] cannot contain leads, lags, expectations or STEADY_STATE operators");
       
-      dynamic_model->addStaticOnlyEquation(id);
+      dynamic_model->addStaticOnlyEquation(id, location.begin.line);
     }
   else
-    model_tree->addEquation(id, eq_tags);
+    model_tree->addEquation(id, location.begin.line, eq_tags);
 
   eq_tags.clear();
   return id;
@@ -2288,7 +2346,7 @@ ParsingDriver::external_function_option(const string &name_option, const string
     {
       if (opt.empty())
         error("An argument must be passed to the 'name' option of the external_function() statement.");
-      declare_symbol(&opt, eExternalFunction, NULL);
+      declare_symbol(&opt, eExternalFunction, NULL, NULL);
       current_external_function_id = mod_file->symbol_table.getID(opt);
     }
   else if (name_option == "first_deriv_provided")
@@ -2297,7 +2355,7 @@ ParsingDriver::external_function_option(const string &name_option, const string
         current_external_function_options.firstDerivSymbID = eExtFunSetButNoNameProvided;
       else
         {
-          declare_symbol(&opt, eExternalFunction, NULL);
+          declare_symbol(&opt, eExternalFunction, NULL, NULL);
           current_external_function_options.firstDerivSymbID = mod_file->symbol_table.getID(opt);
         }
     }
@@ -2307,7 +2365,7 @@ ParsingDriver::external_function_option(const string &name_option, const string
         current_external_function_options.secondDerivSymbID = eExtFunSetButNoNameProvided;
       else
         {
-          declare_symbol(&opt, eExternalFunction, NULL);
+          declare_symbol(&opt, eExternalFunction, NULL, NULL);
           current_external_function_options.secondDerivSymbID = mod_file->symbol_table.getID(opt);
         }
     }
@@ -2431,7 +2489,7 @@ ParsingDriver::add_model_var_or_external_function(string *function_name, bool in
       if (in_model_block)
         error("To use an external function (" + *function_name + ") within the model block, you must first declare it via the external_function() statement.");
 
-      declare_symbol(function_name, eExternalFunction, NULL);
+      declare_symbol(function_name, eExternalFunction, NULL, NULL);
       current_external_function_options.nargs = stack_external_function_args.top().size();
       mod_file->external_functions_table.addExternalFunction(mod_file->symbol_table.getID(*function_name),
                                                              current_external_function_options, in_model_block);
@@ -2547,3 +2605,105 @@ ParsingDriver::add_parallel_local_file(string *filename)
   delete filename;
 }
 
+void
+ParsingDriver::add_moment_calibration_item(string *endo1, string *endo2, string *lags, vector<string *> *range)
+{
+  MomentCalibration::Constraint c;
+
+  check_symbol_existence(*endo1);
+  c.endo1 = mod_file->symbol_table.getID(*endo1);
+  if (mod_file->symbol_table.getType(*endo1) != eEndogenous)
+    error("Variable " + *endo1 + " is not an endogenous.");
+  delete endo1;
+
+  check_symbol_existence(*endo2);
+  c.endo2 = mod_file->symbol_table.getID(*endo2);
+  if (mod_file->symbol_table.getType(*endo2) != eEndogenous)
+    error("Variable " + *endo2 + " is not an endogenous.");
+  delete endo2;
+
+  c.lags = *lags;
+  delete lags;
+  
+  assert(range->size() == 2);
+  c.lower_bound = *((*range)[0]);
+  c.upper_bound = *((*range)[1]);
+  delete (*range)[0];
+  delete (*range)[1];
+  delete range;
+  
+  moment_calibration_constraints.push_back(c);
+}
+
+void ParsingDriver::end_moment_calibration()
+{
+  mod_file->addStatement(new MomentCalibration(moment_calibration_constraints,
+                                               mod_file->symbol_table));
+  moment_calibration_constraints.clear();
+}
+
+void
+ParsingDriver::add_irf_calibration_item(string *endo, string *periods, string *exo, vector<string *> *range)
+{
+  IrfCalibration::Constraint c;
+
+  check_symbol_existence(*endo);
+  c.endo = mod_file->symbol_table.getID(*endo);
+  if (mod_file->symbol_table.getType(*endo) != eEndogenous)
+    error("Variable " + *endo + " is not an endogenous.");
+  delete endo;
+
+  c.periods = *periods;
+  delete periods;
+
+  check_symbol_existence(*exo);
+  c.exo = mod_file->symbol_table.getID(*exo);
+  if (mod_file->symbol_table.getType(*exo) != eExogenous)
+    error("Variable " + *endo + " is not an exogenous.");
+  delete exo;
+  
+  assert(range->size() == 2);
+  c.lower_bound = *((*range)[0]);
+  c.upper_bound = *((*range)[1]);
+  delete (*range)[0];
+  delete (*range)[1];
+  delete range;
+  
+  irf_calibration_constraints.push_back(c);
+}
+
+void ParsingDriver::end_irf_calibration()
+{
+  mod_file->addStatement(new IrfCalibration(irf_calibration_constraints,
+                                            mod_file->symbol_table));
+  irf_calibration_constraints.clear();
+}
+
+void
+ParsingDriver::smoother2histval()
+{
+  mod_file->addStatement(new Smoother2histvalStatement(options_list));
+  options_list.clear();
+}
+
+void
+ParsingDriver::histval_file(string *filename)
+{
+  mod_file->addStatement(new HistvalFileStatement(*filename));
+  delete filename;
+}
+
+
+void
+ParsingDriver::perfect_foresight_setup()
+{
+  mod_file->addStatement(new PerfectForesightSetupStatement(options_list));
+  options_list.clear();
+}
+
+void
+ParsingDriver::perfect_foresight_solver()
+{
+  mod_file->addStatement(new PerfectForesightSolverStatement(options_list));
+  options_list.clear();
+}
diff --git a/preprocessor/ParsingDriver.hh b/preprocessor/ParsingDriver.hh
index 8b9b21e96c2bc27c5c7ddf7f80f2fc5d1cac8b4b..a747e896cadb97b75ee5a985265c461d6f6bb826 100644
--- a/preprocessor/ParsingDriver.hh
+++ b/preprocessor/ParsingDriver.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -71,6 +71,9 @@ public:
 
   //! Increment the location counter given a token
   void location_increment(Dynare::parser::location_type *yylloc, const char *yytext);
+
+  //! Count parens in dates statement
+  int dates_parens_nb;
 };
 
 //! Drives the scanning and parsing of the .mod file, and constructs its abstract representation
@@ -91,7 +94,7 @@ private:
   void check_symbol_is_endogenous_or_exogenous(string *name);
 
   //! Helper to add a symbol declaration
-  void declare_symbol(const string *name, SymbolType type, const string *tex_name);
+  void declare_symbol(const string *name, SymbolType type, const string *tex_name, const string *long_name);
 
   //! Creates option "optim_opt" in OptionsList if it doesn't exist, else add a comma, and adds the option name
   void optim_options_helper(const string &name);
@@ -131,8 +134,6 @@ private:
   vector<pair<int, int> > det_shocks_periods;
   //! Temporary storage for values of deterministic shocks
   vector<expr_t> det_shocks_values;
-  //! Temporary storage for perfect foresight of deterministic shocks in conditional forecast
-  bool det_shocks_expectation_pf;
   //! Temporary storage for variances of shocks
   ShocksStatement::var_and_std_shocks_t var_shocks;
   //! Temporary storage for standard errors of shocks
@@ -151,6 +152,10 @@ private:
   HistValStatement::hist_values_t hist_values;
   //! Temporary storage for homotopy_setup blocks
   HomotopyStatement::homotopy_values_t homotopy_values;
+  //! Temporary storage for moment_calibration
+  MomentCalibration::constraints_t moment_calibration_constraints;
+  //! Temporary storage for irf_calibration
+  IrfCalibration::constraints_t irf_calibration_constraints;
   //! Temporary storage for svar_identification blocks
   SvarIdentificationStatement::svar_identification_restrictions_t svar_ident_restrictions;
   //! Temporary storage for mapping the equation number to the restrictions within an svar_identification block
@@ -258,13 +263,13 @@ public:
   //! Sets the FILENAME for the initial value in initval
   void initval_file(string *filename);
   //! Declares an endogenous variable
-  void declare_endogenous(string *name, string *tex_name = NULL);
+  void declare_endogenous(string *name, string *tex_name = NULL, string *long_name = NULL);
   //! Declares an exogenous variable
-  void declare_exogenous(string *name, string *tex_name = NULL);
+  void declare_exogenous(string *name, string *tex_name = NULL, string *long_name = NULL);
   //! Declares an exogenous deterministic variable
-  void declare_exogenous_det(string *name, string *tex_name = NULL);
+  void declare_exogenous_det(string *name, string *tex_name = NULL, string *long_name = NULL);
   //! Declares a parameter
-  void declare_parameter(string *name, string *tex_name = NULL);
+  void declare_parameter(string *name, string *tex_name = NULL, string *long_name = NULL);
   //! Declares a statement local variable
   void declare_statement_local_variable(string *name);
   //! Completes a subsample statement
@@ -322,9 +327,9 @@ public:
   //! Begin a model block
   void begin_model();
   //! Writes a shocks statement
-  void end_shocks();
+  void end_shocks(bool overwrite);
   //! Writes a mshocks statement
-  void end_mshocks();
+  void end_mshocks(bool overwrite);
   //! Adds a deterministic chock or a path element inside a conditional_forecast_paths block
   void add_det_shock(string *var, bool conditional_forecast);
   //! Adds a std error chock
@@ -344,8 +349,6 @@ public:
   //! Adds a deterministic shock value
   /*! \param v a string containing a (possibly negative) numeric constant */
   void add_value(string *v);
-  //! Adds a expectation type for conditional forecast with deterministic simulation
-  void add_expectation_pf(bool pf);
   //! Writes a Sigma_e block
   void do_sigma_e();
   //! Ends row of Sigma_e block
@@ -391,7 +394,7 @@ public:
   //! Writes estimated params command
   void estimated_params();
   //! Writes estimated params init command
-  void estimated_params_init();
+  void estimated_params_init(bool use_calibration = false);
   //! Writes estimated params bound command
   void estimated_params_bounds();
   //! Adds a declaration for a user-defined external function
@@ -490,6 +493,8 @@ public:
   void begin_planner_objective();
   //! End a planner objective statement
   void end_planner_objective(expr_t expr);
+  //! Ramsey model statement
+  void ramsey_model();
   //! Ramsey policy statement
   void ramsey_policy();
   //! Discretionary policy statement
@@ -641,7 +646,7 @@ public:
   //! Ends declaration of trend variable
   void end_trend_var(expr_t growth_factor);
   //! Declares a nonstationary variable with its deflator
-  void declare_nonstationary_var(string *name, string *tex_name = NULL);
+  void declare_nonstationary_var(string *name, string *tex_name = NULL, string *long_name = NULL);
   //! Ends declaration of nonstationary variable
   void end_nonstationary_var(bool log_deflator, expr_t deflator);
   //! Add a graph format to the list of formats requested
@@ -652,6 +657,19 @@ public:
   void model_diagnostics();
   //! Processing the parallel_local_files option
   void add_parallel_local_file(string *filename);
+  //! Add an item of a moment_calibration statement
+  void add_moment_calibration_item(string *endo1, string *endo2, string *lags, vector<string *> *range);
+  //! End a moment_calibration statement
+  void end_moment_calibration();
+  //! Add an item of an irf_calibration statement
+  void add_irf_calibration_item(string *endo, string *periods, string *exo, vector<string *> *range);
+  //! End a moment_calibration statement
+  void end_irf_calibration();
+
+  void smoother2histval();
+  void histval_file(string *filename);
+  void perfect_foresight_setup();
+  void perfect_foresight_solver();  
 };
 
 #endif // ! PARSING_DRIVER_HH
diff --git a/preprocessor/Shocks.cc b/preprocessor/Shocks.cc
index ab5b36df464ba2577bb96e9602c57b27571793d8..d0aecd9651417b01a9910e3fe781f9597a9e1465 100644
--- a/preprocessor/Shocks.cc
+++ b/preprocessor/Shocks.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -17,8 +17,6 @@
  * along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-using namespace std;
-
 #include <cassert>
 #include <cstdlib>
 #include <iostream>
@@ -26,9 +24,11 @@ using namespace std;
 #include "Shocks.hh"
 
 AbstractShocksStatement::AbstractShocksStatement(bool mshocks_arg,
+                                                 bool overwrite_arg,
                                                  const det_shocks_t &det_shocks_arg,
                                                  const SymbolTable &symbol_table_arg) :
   mshocks(mshocks_arg),
+  overwrite(overwrite_arg),
   det_shocks(det_shocks_arg),
   symbol_table(symbol_table_arg)
 {
@@ -44,28 +44,21 @@ AbstractShocksStatement::writeDetShocks(ostream &output) const
     {
       int id = symbol_table.getTypeSpecificID(it->first) + 1;
       bool exo_det = (symbol_table.getType(it->first) == eExogenousDet);
-      int set_shocks_index = ((int) mshocks) + 2 * ((int) exo_det);
 
-      for (size_t i = 0; i < it->second.first.size(); i++)
+      for (size_t i = 0; i < it->second.size(); i++)
         {
-          const int &period1 = it->second.first[i].period1;
-          const int &period2 = it->second.first[i].period2;
-          const expr_t value = it->second.first[i].value;
-
-          if (period1 == period2)
-            {
-              output << "set_shocks(" << set_shocks_index << "," << period1
-                     << ", " << id << ", ";
-              value->writeOutput(output);
-              output << ");" << endl;
-            }
-          else
-            {
-              output << "set_shocks(" << set_shocks_index << "," << period1
-                     << ":" << period2 << ", " << id << ", ";
-              value->writeOutput(output);
-              output << ");" << endl;
-            }
+          const int &period1 = it->second[i].period1;
+          const int &period2 = it->second[i].period2;
+          const expr_t value = it->second[i].value;
+
+          output << "M_.det_shocks = [ M_.det_shocks;" << endl
+                 << "struct('exo_det'," << (int) exo_det
+                 << ",'exo_id'," << id
+                 << ",'multiplicative'," << (int) mshocks
+                 << ",'periods'," << period1 << ":" << period2
+                 << ",'value',";
+          value->writeOutput(output);
+          output << ") ];" << endl;
 
           if (exo_det && (period2 > exo_det_length))
             exo_det_length = period2;
@@ -74,13 +67,14 @@ AbstractShocksStatement::writeDetShocks(ostream &output) const
   output << "M_.exo_det_length = " << exo_det_length << ";\n";
 }
 
-ShocksStatement::ShocksStatement(const det_shocks_t &det_shocks_arg,
+ShocksStatement::ShocksStatement(bool overwrite_arg,
+                                 const det_shocks_t &det_shocks_arg,
                                  const var_and_std_shocks_t &var_shocks_arg,
                                  const var_and_std_shocks_t &std_shocks_arg,
                                  const covar_and_corr_shocks_t &covar_shocks_arg,
                                  const covar_and_corr_shocks_t &corr_shocks_arg,
                                  const SymbolTable &symbol_table_arg) :
-  AbstractShocksStatement(false, det_shocks_arg, symbol_table_arg),
+  AbstractShocksStatement(false, overwrite_arg, det_shocks_arg, symbol_table_arg),
   var_shocks(var_shocks_arg),
   std_shocks(std_shocks_arg),
   covar_shocks(covar_shocks_arg),
@@ -95,15 +89,37 @@ ShocksStatement::writeOutput(ostream &output, const string &basename) const
          << "% SHOCKS instructions" << endl
          << "%" << endl;
 
-  // Write instruction that initializes a shock
-  output << "make_ex_;" << endl;
+  if (overwrite)
+    {
+      output << "M_.det_shocks = [];" << endl;
+
+      output << "M_.Sigma_e = zeros(" << symbol_table.exo_nbr() << ", "
+              << symbol_table.exo_nbr() << ");" << endl
+              << "M_.Correlation_matrix = eye(" << symbol_table.exo_nbr() << ", "
+              << symbol_table.exo_nbr() << ");" << endl;
+
+      if (has_calibrated_measurement_errors())
+        output << "M_.H = zeros(" << symbol_table.observedVariablesNbr() << ", "
+               << symbol_table.observedVariablesNbr() << ");" << endl
+               << "M_.Correlation_matrix_ME = eye(" << symbol_table.observedVariablesNbr() << ", "
+               << symbol_table.observedVariablesNbr() << ");" << endl;
+      else
+        output << "M_.H = 0;" << endl
+               << "M_.Correlation_matrix_ME = 1;" << endl;
+
+    }
 
   writeDetShocks(output);
   writeVarAndStdShocks(output);
   writeCovarAndCorrShocks(output);
+
+  /* M_.sigma_e_is_diagonal is initialized to 1 by ModFile.cc.
+     If there are no off-diagonal elements, and we are not in overwrite mode,
+     then we don't reset it to 1, since there might be previous shocks blocks
+     with off-diagonal elements. */
   if (covar_shocks.size()+corr_shocks.size() > 0)
     output << "M_.sigma_e_is_diagonal = 0;" << endl;
-  else
+  else if (overwrite)
     output << "M_.sigma_e_is_diagonal = 1;" << endl;
 }
 
@@ -155,17 +171,19 @@ ShocksStatement::writeCovarOrCorrShock(ostream &output, covar_and_corr_shocks_t:
   SymbolType type2 = symbol_table.getType(it->first.second);
   assert((type1 == eExogenous && type2 == eExogenous)
          || (symbol_table.isObservedVariable(it->first.first) && symbol_table.isObservedVariable(it->first.second)));
-  string matrix;
+  string matrix, corr_matrix;
   int id1, id2;
   if (type1 == eExogenous)
     {
       matrix = "M_.Sigma_e";
+      corr_matrix = "M_.Correlation_matrix";
       id1 = symbol_table.getTypeSpecificID(it->first.first) + 1;
       id2 = symbol_table.getTypeSpecificID(it->first.second) + 1;
     }
   else
     {
       matrix = "M_.H";
+      corr_matrix = "M_.Correlation_matrix_ME";
       id1 = symbol_table.getObservedVariableIndex(it->first.first) + 1;
       id2 = symbol_table.getObservedVariableIndex(it->first.second) + 1;
     }
@@ -178,6 +196,15 @@ ShocksStatement::writeCovarOrCorrShock(ostream &output, covar_and_corr_shocks_t:
   output << ";" << endl
          << matrix << "(" << id2 << ", " << id1 << ") = "
          << matrix << "(" << id1 << ", " << id2 << ");" << endl;
+
+  if (corr)
+    {
+      output << corr_matrix << "(" << id1 << ", " << id2 << ") = ";
+      it->second->writeOutput(output);
+      output << ";" << endl
+             << corr_matrix << "(" << id2 << ", " << id1 << ") = "
+             << corr_matrix << "(" << id1 << ", " << id2 << ");" << endl;
+    }
 }
 
 void
@@ -195,9 +222,6 @@ ShocksStatement::writeCovarAndCorrShocks(ostream &output) const
 void
 ShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
 {
-  // Workaround for trac ticket #35
-  mod_file_struct.shocks_present_but_simul_not_yet = true;
-
   /* Error out if variables are not of the right type. This must be done here
      and not at parsing time (see #448).
      Also Determine if there is a calibrated measurement error */
@@ -211,11 +235,7 @@ ShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidati
                << symbol_table.getName(it->first) << "' is not allowed, because it is neither an exogenous variable nor an observed endogenous variable" << endl;
           exit(EXIT_FAILURE);
         }
-    
-      if (symbol_table.isObservedVariable(it->first))
-        mod_file_struct.calibrated_measurement_errors = true;
     }
-  
 
   for (var_and_std_shocks_t::const_iterator it = std_shocks.begin();
        it != std_shocks.end(); it++)
@@ -227,9 +247,6 @@ ShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidati
                << symbol_table.getName(it->first) << "' is not allowed, because it is neither an exogenous variable nor an observed endogenous variable" << endl;
           exit(EXIT_FAILURE);
         }
-
-      if (symbol_table.isObservedVariable(it->first))
-        mod_file_struct.calibrated_measurement_errors = true;
     }
 
   for (covar_and_corr_shocks_t::const_iterator it = covar_shocks.begin();
@@ -248,10 +265,6 @@ ShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidati
                << symbol_table.getName(symb_id2) << "'is not allowed; covariances can only be specified for exogenous or observed endogenous variables of same type" << endl;
           exit(EXIT_FAILURE);
         }
-      
-      if (symbol_table.isObservedVariable(symb_id1)
-          || symbol_table.isObservedVariable(symb_id2))
-        mod_file_struct.calibrated_measurement_errors = true;
     }
 
   for (covar_and_corr_shocks_t::const_iterator it = corr_shocks.begin();
@@ -270,16 +283,59 @@ ShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidati
                << symbol_table.getName(symb_id2) << "'is not allowed; correlations can only be specified for exogenous or observed endogenous variables of same type" << endl;
           exit(EXIT_FAILURE);
         }
-      
-      if (symbol_table.isObservedVariable(it->first.first)
-          || symbol_table.isObservedVariable(it->first.second))
-        mod_file_struct.calibrated_measurement_errors = true;
     }
+
+  // Determine if there is a calibrated measurement error
+  mod_file_struct.calibrated_measurement_errors |= has_calibrated_measurement_errors();
+
+  // Fill in mod_file_struct.parameters_with_shocks_values (related to #469)
+  for (var_and_std_shocks_t::const_iterator it = var_shocks.begin();
+       it != var_shocks.end(); ++it)
+    it->second->collectVariables(eParameter, mod_file_struct.parameters_within_shocks_values);
+  for (var_and_std_shocks_t::const_iterator it = std_shocks.begin();
+       it != std_shocks.end(); ++it)
+    it->second->collectVariables(eParameter, mod_file_struct.parameters_within_shocks_values);
+  for (covar_and_corr_shocks_t::const_iterator it = covar_shocks.begin();
+       it != covar_shocks.end(); ++it)
+    it->second->collectVariables(eParameter, mod_file_struct.parameters_within_shocks_values);
+  for (covar_and_corr_shocks_t::const_iterator it = corr_shocks.begin();
+       it != corr_shocks.end(); ++it)
+    it->second->collectVariables(eParameter, mod_file_struct.parameters_within_shocks_values);
+
 }
 
-MShocksStatement::MShocksStatement(const det_shocks_t &det_shocks_arg,
+bool
+ShocksStatement::has_calibrated_measurement_errors() const
+{
+  for (var_and_std_shocks_t::const_iterator it = var_shocks.begin();
+       it != var_shocks.end(); it++)
+    if (symbol_table.isObservedVariable(it->first))
+      return true;
+
+  for (var_and_std_shocks_t::const_iterator it = std_shocks.begin();
+       it != std_shocks.end(); it++)
+    if (symbol_table.isObservedVariable(it->first))
+      return true;
+
+  for (covar_and_corr_shocks_t::const_iterator it = covar_shocks.begin();
+       it != covar_shocks.end(); it++)
+    if (symbol_table.isObservedVariable(it->first.first)
+        || symbol_table.isObservedVariable(it->first.second))
+      return true;
+
+  for (covar_and_corr_shocks_t::const_iterator it = corr_shocks.begin();
+       it != corr_shocks.end(); it++)
+    if (symbol_table.isObservedVariable(it->first.first)
+        || symbol_table.isObservedVariable(it->first.second))
+      return true;
+
+  return false;
+}
+
+MShocksStatement::MShocksStatement(bool overwrite_arg,
+                                   const det_shocks_t &det_shocks_arg,
                                    const SymbolTable &symbol_table_arg) :
-  AbstractShocksStatement(true, det_shocks_arg, symbol_table_arg)
+  AbstractShocksStatement(true, overwrite_arg, det_shocks_arg, symbol_table_arg)
 {
 }
 
@@ -290,22 +346,14 @@ MShocksStatement::writeOutput(ostream &output, const string &basename) const
          << "% MSHOCKS instructions" << endl
          << "%" << endl;
 
-  // Write instruction that initializes a shock
-  output << "make_ex_;" << endl;
+  if (overwrite)
+    output << "M_.det_shocks = [];" << endl;
 
   writeDetShocks(output);
 }
 
-void
-MShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
-{
-  // Workaround for trac ticket #35
-  mod_file_struct.shocks_present_but_simul_not_yet = true;
-}
-
-ConditionalForecastPathsStatement::ConditionalForecastPathsStatement(const AbstractShocksStatement::det_shocks_t &paths_arg, const SymbolTable &symbol_table_arg) :
+ConditionalForecastPathsStatement::ConditionalForecastPathsStatement(const AbstractShocksStatement::det_shocks_t &paths_arg) :
   paths(paths_arg),
-  symbol_table(symbol_table_arg),
   path_length(-1)
 {
 }
@@ -317,7 +365,7 @@ ConditionalForecastPathsStatement::checkPass(ModFileStructure &mod_file_struct,
        it != paths.end(); it++)
     {
       int this_path_length = 0;
-      const vector<AbstractShocksStatement::DetShockElement> &elems = it->second.first;
+      const vector<AbstractShocksStatement::DetShockElement> &elems = it->second;
       for (int i = 0; i < (int) elems.size(); i++)
         // Period1 < Period2, as enforced in ParsingDriver::add_period()
         this_path_length = max(this_path_length, elems[i].period2);
@@ -346,16 +394,14 @@ ConditionalForecastPathsStatement::writeOutput(ostream &output, const string &ba
       if (it == paths.begin())
         {
           output << "constrained_vars_ = " << it->first +1 << ";" << endl;
-          output << "constrained_perfect_foresight_ = " << it->second.second << ";" << endl;
         }
       else
         {
           output << "constrained_vars_ = [constrained_vars_; " << it->first +1 << "];" << endl;
-          output << "constrained_perfect_foresight_ = [constrained_perfect_foresight_; " << it->second.second << "];" << endl;
         }
 
 
-      const vector<AbstractShocksStatement::DetShockElement> &elems = it->second.first;
+      const vector<AbstractShocksStatement::DetShockElement> &elems = it->second;
       for (int i = 0; i < (int) elems.size(); i++)
         for (int j = elems[i].period1; j <= elems[i].period2; j++)
           {
@@ -366,3 +412,47 @@ ConditionalForecastPathsStatement::writeOutput(ostream &output, const string &ba
       k++;
     }
 }
+
+MomentCalibration::MomentCalibration(const constraints_t &constraints_arg,
+                                     const SymbolTable &symbol_table_arg)
+  : constraints(constraints_arg), symbol_table(symbol_table_arg)
+{
+}
+
+void
+MomentCalibration::writeOutput(ostream &output, const string &basename) const
+{
+  output << "options_.endogenous_prior_restrictions.moment = {" << endl;
+  for (size_t i = 0; i < constraints.size(); i++)
+    {
+      const Constraint &c = constraints[i];
+      output << "'" << symbol_table.getName(c.endo1) << "', "
+             << "'" << symbol_table.getName(c.endo2) << "', "
+             << c.lags << ", "
+             << "[ " << c.lower_bound << ", " << c.upper_bound << " ];"
+             << endl;
+    }
+  output << "};" << endl;
+}
+
+IrfCalibration::IrfCalibration(const constraints_t &constraints_arg,
+                               const SymbolTable &symbol_table_arg)
+  : constraints(constraints_arg), symbol_table(symbol_table_arg)
+{
+}
+
+void
+IrfCalibration::writeOutput(ostream &output, const string &basename) const
+{
+  output << "options_.endogenous_prior_restrictions.irf = {" << endl;
+  for (size_t i = 0; i < constraints.size(); i++)
+    {
+      const Constraint &c = constraints[i];
+      output << "'" << symbol_table.getName(c.endo) << "', "
+             << "'" << symbol_table.getName(c.exo) << "', "
+             << c.periods << ", "
+             << "[ " << c.lower_bound << ", " << c.upper_bound << " ];"
+             << endl;
+    }
+  output << "};" << endl;
+}
diff --git a/preprocessor/Shocks.hh b/preprocessor/Shocks.hh
index de20945c72861c82e3764aa91cb7dd8fbadce2a6..6ab43a64ada7951a12ae6211523b5f30785cc294 100644
--- a/preprocessor/Shocks.hh
+++ b/preprocessor/Shocks.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -41,15 +41,17 @@ public:
   };
   //The boolean element indicates if the shock is a surprise (false) or a perfect foresight (true) shock.
   //This boolean is used only in case of conditional forecast with extended path method (simulation_type = deterministic).
-  typedef map<int, pair< vector<DetShockElement>, bool> > det_shocks_t;
+  typedef map<int, vector<DetShockElement> > det_shocks_t;
 protected:
   //! Is this statement a "mshocks" statement ? (instead of a "shocks" statement)
   const bool mshocks;
+  //! Does this "shocks" statement replace the previous ones?
+  const bool overwrite;
   const det_shocks_t det_shocks;
   const SymbolTable &symbol_table;
   void writeDetShocks(ostream &output) const;
 
-  AbstractShocksStatement(bool mshocks_arg,
+  AbstractShocksStatement(bool mshocks_arg, bool overwrite_arg,
                           const det_shocks_t &det_shocks_arg,
                           const SymbolTable &symbol_table_arg);
 };
@@ -66,8 +68,10 @@ private:
   void writeVarAndStdShocks(ostream &output) const;
   void writeCovarOrCorrShock(ostream &output, covar_and_corr_shocks_t::const_iterator &it, bool corr) const;
   void writeCovarAndCorrShocks(ostream &output) const;
+  bool has_calibrated_measurement_errors() const;
 public:
-  ShocksStatement(const det_shocks_t &det_shocks_arg,
+  ShocksStatement(bool overwrite_arg,
+                  const det_shocks_t &det_shocks_arg,
                   const var_and_std_shocks_t &var_shocks_arg,
                   const var_and_std_shocks_t &std_shocks_arg,
                   const covar_and_corr_shocks_t &covar_shocks_arg,
@@ -80,23 +84,59 @@ public:
 class MShocksStatement : public AbstractShocksStatement
 {
 public:
-  MShocksStatement(const det_shocks_t &det_shocks_arg,
+  MShocksStatement(bool overwrite_arg,
+                   const det_shocks_t &det_shocks_arg,
                    const SymbolTable &symbol_table_arg);
   virtual void writeOutput(ostream &output, const string &basename) const;
-  virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
 };
 
 class ConditionalForecastPathsStatement : public Statement
 {
 private:
   const AbstractShocksStatement::det_shocks_t paths;
-  const SymbolTable &symbol_table;
   int path_length;
 public:
-  ConditionalForecastPathsStatement(const AbstractShocksStatement::det_shocks_t &paths_arg,
-                                    const SymbolTable &symbol_table_arg);
+  ConditionalForecastPathsStatement(const AbstractShocksStatement::det_shocks_t &paths_arg);
   virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
 
+class MomentCalibration : public Statement
+{
+public:
+  struct Constraint
+  {
+    int endo1, endo2;
+    string lags;
+    string lower_bound, upper_bound;
+  };
+  typedef vector<Constraint> constraints_t;
+private:
+  constraints_t constraints;
+  const SymbolTable &symbol_table;
+public:
+  MomentCalibration(const constraints_t &constraints_arg,
+                    const SymbolTable &symbol_table_arg);
+  virtual void writeOutput(ostream &output, const string &basename) const;
+};
+
+class IrfCalibration : public Statement
+{
+public:
+  struct Constraint
+  {
+    int endo;
+    int exo;
+    string periods, lower_bound, upper_bound;
+  };
+  typedef vector<Constraint> constraints_t;
+private:
+  constraints_t constraints;
+  const SymbolTable &symbol_table;
+public:
+  IrfCalibration(const constraints_t &constraints_arg,
+                 const SymbolTable &symbol_table_arg);
+  virtual void writeOutput(ostream &output, const string &basename) const;
+};
+
 #endif
diff --git a/preprocessor/SigmaeInitialization.hh b/preprocessor/SigmaeInitialization.hh
index c2decb3f831887b63284e7a489256d54c6dec636..ddfcc7f10659fe4fcf856f1d1691d2842f6ea843 100644
--- a/preprocessor/SigmaeInitialization.hh
+++ b/preprocessor/SigmaeInitialization.hh
@@ -20,8 +20,6 @@
 #ifndef _SIGMAEINITIALIZATION_HH
 #define _SIGMAEINITIALIZATION_HH
 
-using namespace std;
-
 #include <string>
 #include <vector>
 
diff --git a/preprocessor/Statement.cc b/preprocessor/Statement.cc
index 59021287bd1c15392f1a12e350170bd87b1f32e4..70889c6b2e53b1bb7c001f085e333fe9e49ba5d6 100644
--- a/preprocessor/Statement.cc
+++ b/preprocessor/Statement.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Dynare Team
+ * Copyright (C) 2006-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -18,16 +18,18 @@
  */
 
 #include "Statement.hh"
+#include <boost/xpressive/xpressive.hpp>
 
 ModFileStructure::ModFileStructure() :
   check_present(false),
   steady_present(false),
-  simul_present(false),
+  perfect_foresight_solver_present(false),
   stoch_simul_present(false),
   estimation_present(false),
   osr_present(false),
   osr_params_present(false),
   optim_weights_present(false),
+  ramsey_model_present(false),
   ramsey_policy_present(false),
   discretionary_policy_present(false),
   planner_objective_present(false),
@@ -38,7 +40,6 @@ ModFileStructure::ModFileStructure() :
   identification_present(false),
   estimation_analytic_derivation(false),
   partial_information(false),
-  shocks_present_but_simul_not_yet(false),
   histval_present(false),
   k_order_solver(false),
   calibrated_measurement_errors(false),
@@ -47,7 +48,9 @@ ModFileStructure::ModFileStructure() :
   dsge_var_estimated(false),
   bayesian_irf_present(false),
   estimation_data_statement_present(false),
-  last_markov_switching_chain(0)
+  last_markov_switching_chain(0),
+  calib_smoother_present(false),
+  estim_params_use_calib(false)
 {
 }
 
@@ -60,6 +63,11 @@ Statement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &wa
 {
 }
 
+void
+Statement::writeCOutput(ostream &output, const string &basename)
+{
+}
+
 void
 Statement::computingPass()
 {
@@ -73,7 +81,14 @@ NativeStatement::NativeStatement(const string &native_statement_arg) :
 void
 NativeStatement::writeOutput(ostream &output, const string &basename) const
 {
-  output << native_statement << endl;
+  using namespace boost::xpressive;
+  string date_regex = "(-?\\d+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4]\\d|5[0-2])))";
+  sregex regex_lookbehind = sregex::compile("(?<!\\$|\\d|[a-zA-Z_]|\\')" + date_regex);
+  sregex regex_dollar = sregex::compile("(\\$)"+date_regex);
+
+  string ns = regex_replace(native_statement, regex_lookbehind, "dates('$&')");
+  ns = regex_replace(ns, regex_dollar, "$2" ); //replace $DATE with DATE
+  output << ns << endl;
 }
 
 void
@@ -94,7 +109,7 @@ OptionsList::writeOutput(ostream &output) const
 
   for (date_options_t::const_iterator it = date_options.begin();
        it != date_options.end(); it++)
-    output << "options_." << it->first << " = dynDate('" << it->second << "');" << endl;
+    output << "options_." << it->first << " = " << it->second << ";" << endl;
 
   for (symbol_list_options_t::const_iterator it = symbol_list_options.begin();
        it != symbol_list_options.end(); it++)
@@ -137,7 +152,7 @@ OptionsList::writeOutput(ostream &output, const string &option_group) const
 
   for (date_options_t::const_iterator it = date_options.begin();
        it != date_options.end(); it++)
-    output << option_group << "." << it->first << " = dynDate('" << it->second << "');" << endl;
+    output << option_group << "." << it->first << " = " << it->second << ";" << endl;
 
   for (symbol_list_options_t::const_iterator it = symbol_list_options.begin();
        it != symbol_list_options.end(); it++)
diff --git a/preprocessor/Statement.hh b/preprocessor/Statement.hh
index cd3fd5cf3e7d978d480a95da7e96ac0f4fb2a2a9..5bdade3910b8a77ee145856a92084ae05f13d9e6 100644
--- a/preprocessor/Statement.hh
+++ b/preprocessor/Statement.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Dynare Team
+ * Copyright (C) 2006-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -20,11 +20,10 @@
 #ifndef _STATEMENT_HH
 #define _STATEMENT_HH
 
-using namespace std;
-
 #include <ostream>
 #include <string>
 #include <map>
+#include <set>
 
 #include "SymbolList.hh"
 #include "WarningConsolidation.hh"
@@ -37,8 +36,8 @@ public:
   bool check_present;
   //! Whether steady is present
   bool steady_present;
-  //! Whether a simul statement is present
-  bool simul_present;
+  //! Whether a perfect_foresight_solver/simul statement is present
+  bool perfect_foresight_solver_present;
   //! Whether a stoch_simul statement is present
   bool stoch_simul_present;
   //! Whether an estimation statement is present
@@ -49,6 +48,8 @@ public:
   bool osr_params_present;
   //! Whether an optim weight statement is present
   bool optim_weights_present;
+  //! Whether a ramsey_model statement is present
+  bool ramsey_model_present;
   //! Whether a ramsey_policy statement is present
   bool ramsey_policy_present;
   //! Whether a discretionary_objective statement is present
@@ -71,11 +72,6 @@ public:
   bool estimation_analytic_derivation;
   //! Whether the option partial_information is given to stoch_simul/estimation/osr/ramsey_policy
   bool partial_information;
-  //! Whether a shocks or mshocks block has been parsed and no simul command yet run
-  /*! Used for the workaround for trac ticket #35. When a simul command is
-      seen, this flag is cleared in order to allow a sequence
-      shocks+endval+simul in a loop */
-  bool shocks_present_but_simul_not_yet;
   //! Whether a histval bloc is present
   /*! Used for the workaround for trac ticket #157 */
   bool histval_present;
@@ -97,6 +93,29 @@ public:
   bool estimation_data_statement_present;
   //! Last chain number for Markov Switching statement
   int last_markov_switching_chain;
+  //! Whether a calib_smoother statement is present
+  bool calib_smoother_present;
+  //! Whether there is an estimated_params_init with use_calibration
+  bool estim_params_use_calib;
+  //! Set of parameters used within shocks blocks, inside the expressions
+  //! defining the values of covariances (stored as symbol ids)
+  set<int> parameters_within_shocks_values;
+  //! Set of estimated parameters (stored as symbol ids)
+  set<int> estimated_parameters;
+  //! Whether there is a prior statement present
+  bool prior_statement_present;
+  //! Whether there is a std prior statement present
+  bool std_prior_statement_present;
+  //! Whether there is a corr prior statement present
+  bool corr_prior_statement_present;
+  //! Whether there is a options statement present
+  bool options_statement_present;
+  //! Whether there is a std options statement present
+  bool std_options_statement_present;
+  //! Whether there is a corr options statement present
+  bool corr_options_statement_present;
+  //! Whether a Markov Switching DSGE is present
+  bool ms_dsge_present;
 };
 
 class Statement
@@ -116,6 +135,7 @@ public:
     \param basename is the name of the modfile (without extension) which can be used to build auxiliary files
   */
   virtual void writeOutput(ostream &output, const string &basename) const = 0;
+  virtual void writeCOutput(ostream &output, const string &basename);
 };
 
 class NativeStatement : public Statement
diff --git a/preprocessor/StaticModel.cc b/preprocessor/StaticModel.cc
index c78324ea87acf11b1d31dbb9a3839bf9c5b3aed9..18be48f11eafb94a826a96acd7c7477f24a1f9c2 100644
--- a/preprocessor/StaticModel.cc
+++ b/preprocessor/StaticModel.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2012 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -286,7 +286,7 @@ StaticModel::writeModelEquationsOrdered_M(const string &static_basename) const
               for (temporary_terms_t::const_iterator it = v_temporary_terms[block][i].begin();
                    it != v_temporary_terms[block][i].end(); it++)
                 {
-                  if (dynamic_cast<ExternalFunctionNode *>(*it) != NULL)
+                  if (dynamic_cast<AbstractExternalFunctionNode *>(*it) != NULL)
                     (*it)->writeExternalFunctionOutput(output, local_output_type, tt2, tef_terms);
 
                   output << "  " <<  sps;
@@ -658,7 +658,7 @@ StaticModel::writeModelEquationsCode_Block(const string file_name, const string
               for (temporary_terms_t::const_iterator it = v_temporary_terms[block][i].begin();
                    it != v_temporary_terms[block][i].end(); it++)
                 {
-                  if (dynamic_cast<ExternalFunctionNode *>(*it) != NULL)
+                  if (dynamic_cast<AbstractExternalFunctionNode *>(*it) != NULL)
                     (*it)->compileExternalFunctionOutput(code_file, instruction_number, false, tt2, map_idx, false, false, tef_terms);
 
                   FNUMEXPR_ fnumexpr(TemporaryTerm, (int) (map_idx.find((*it)->idx)->second));
@@ -851,7 +851,7 @@ StaticModel::writeModelEquationsCode_Block(const string file_name, const string
               for (temporary_terms_t::const_iterator it = v_temporary_terms_local[block][i].begin();
                    it != v_temporary_terms_local[block][i].end(); it++)
                 {
-                  if (dynamic_cast<ExternalFunctionNode *>(*it) != NULL)
+                  if (dynamic_cast<AbstractExternalFunctionNode *>(*it) != NULL)
                     (*it)->compileExternalFunctionOutput(code_file, instruction_number, false, tt3, map_idx2[block], false, false, tef_terms2);
 
                   FNUMEXPR_ fnumexpr(TemporaryTerm, (int) (map_idx2[block].find((*it)->idx)->second));
@@ -1047,7 +1047,7 @@ StaticModel::collect_first_order_derivatives_endogenous()
 }
 
 void
-StaticModel::computingPass(const eval_context_t &eval_context, bool no_tmp_terms, bool hessian, bool paramsDerivatives, bool block, bool bytecode)
+StaticModel::computingPass(const eval_context_t &eval_context, bool no_tmp_terms, bool hessian, bool thirdDerivatives, bool paramsDerivatives, bool block, bool bytecode)
 {
   initializeVariablesAndEquations();
 
@@ -1070,6 +1070,12 @@ StaticModel::computingPass(const eval_context_t &eval_context, bool no_tmp_terms
       computeHessian(vars);
     }
 
+  if (thirdDerivatives)
+    {
+      cout << " - order 3" << endl;
+      computeThirdDerivatives(vars);
+    }
+
 if (paramsDerivatives)
     {
       cout << " - derivatives of Jacobian/Hessian w.r. to parameters" << endl;
@@ -1142,7 +1148,7 @@ StaticModel::writeStaticMFile(const string &func_name) const
       exit(EXIT_FAILURE);
     }
 
-  output << "function [residual, g1, g2] = " << func_name + "_static(y, x, params)" << endl
+  output << "function [residual, g1, g2, g3] = " << func_name + "_static(y, x, params)" << endl
          << "%" << endl
          << "% Status : Computes static model for Dynare" << endl
          << "%" << endl
@@ -1155,11 +1161,14 @@ StaticModel::writeStaticMFile(const string &func_name) const
          << "%   residual  [M_.endo_nbr by 1] double    vector of residuals of the static model equations " << endl
          << "%                                          in order of declaration of the equations" << endl
          << "%   g1        [M_.endo_nbr by M_.endo_nbr] double    Jacobian matrix of the static model equations;" << endl
-         << "%                                                    columns: equations in order of declaration" << endl
-         << "%                                                    rows: variables in declaration order" << endl
+         << "%                                                       columns: variables in declaration order" << endl
+         << "%                                                       rows: equations in order of declaration" << endl
          << "%   g2        [M_.endo_nbr by (M_.endo_nbr)^2] double   Hessian matrix of the static model equations;" << endl
-         << "%                                                       columns: equations in order of declaration" << endl
-         << "%                                                       rows: variables in declaration order" << endl
+         << "%                                                       columns: variables in declaration order" << endl
+         << "%                                                       rows: equations in order of declaration" << endl
+         << "%   g3        [M_.endo_nbr by (M_.endo_nbr)^3] double   Third derivatives matrix of the static model equations;" << endl
+         << "%                                                       columns: variables in declaration order" << endl
+         << "%                                                       rows: equations in order of declaration" << endl
          << "%" << endl
          << "%" << endl         
          << "% Warning : this file is generated automatically by Dynare" << endl
@@ -1176,6 +1185,7 @@ StaticModel::writeStaticModel(ostream &StaticOutput, bool use_dll) const
   ostringstream model_output;    // Used for storing model equations
   ostringstream jacobian_output; // Used for storing jacobian equations
   ostringstream hessian_output;  // Used for storing Hessian equations
+  ostringstream third_derivatives_output;  // Used for storing third order derivatives equations
   ExprNodeOutputType output_type = (use_dll ? oCStaticModel : oMatlabStaticModel);
 
   deriv_node_temp_terms_t tef_terms;
@@ -1185,6 +1195,10 @@ StaticModel::writeStaticModel(ostream &StaticOutput, bool use_dll) const
 
   writeModelEquations(model_output, output_type);
 
+  int nrows = equations.size();
+  int JacobianColsNbr = symbol_table.endo_nbr();
+  int hessianColsNbr = JacobianColsNbr*JacobianColsNbr;
+
   // Write Jacobian w.r. to endogenous only
   for (first_derivatives_t::const_iterator it = first_derivatives.begin();
        it != first_derivatives.end(); it++)
@@ -1247,6 +1261,64 @@ StaticModel::writeStaticModel(ostream &StaticOutput, bool use_dll) const
         }
     }
 
+  // Writing third derivatives
+  k = 0; // Keep the line of a 3rd derivative in v3
+  for (third_derivatives_t::const_iterator it = third_derivatives.begin();
+       it != third_derivatives.end(); it++)
+    {
+      int eq = it->first.first;
+      int var1 = it->first.second.first;
+      int var2 = it->first.second.second.first;
+      int var3 = it->first.second.second.second;
+      expr_t d3 = it->second;
+
+      int id1 = getSymbIDByDerivID(var1);
+      int id2 = getSymbIDByDerivID(var2);
+      int id3 = getSymbIDByDerivID(var3);
+
+
+      // Reference column number for the g3 matrix
+      int ref_col = id1 * hessianColsNbr + id2 * JacobianColsNbr + id3;
+
+      sparseHelper(3, third_derivatives_output, k, 0, output_type);
+      third_derivatives_output << "=" << eq + 1 << ";" << endl;
+
+      sparseHelper(3, third_derivatives_output, k, 1, output_type);
+      third_derivatives_output << "=" << ref_col + 1 << ";" << endl;
+
+      sparseHelper(3, third_derivatives_output, k, 2, output_type);
+      third_derivatives_output << "=";
+      d3->writeOutput(third_derivatives_output, output_type, temporary_terms, tef_terms);
+      third_derivatives_output << ";" << endl;
+
+      // Compute the column numbers for the 5 other permutations of (id1,id2,id3) and store them in a set (to avoid duplicates if two indexes are equal)
+      set<int> cols;
+      cols.insert(id1 * hessianColsNbr + id3 * JacobianColsNbr + id2);
+      cols.insert(id2 * hessianColsNbr + id1 * JacobianColsNbr + id3);
+      cols.insert(id2 * hessianColsNbr + id3 * JacobianColsNbr + id1);
+      cols.insert(id3 * hessianColsNbr + id1 * JacobianColsNbr + id2);
+      cols.insert(id3 * hessianColsNbr + id2 * JacobianColsNbr + id1);
+
+      int k2 = 1; // Keeps the offset of the permutation relative to k
+      for (set<int>::iterator it2 = cols.begin(); it2 != cols.end(); it2++)
+        if (*it2 != ref_col)
+          {
+            sparseHelper(3, third_derivatives_output, k+k2, 0, output_type);
+            third_derivatives_output << "=" << eq + 1 << ";" << endl;
+
+            sparseHelper(3, third_derivatives_output, k+k2, 1, output_type);
+            third_derivatives_output << "=" << *it2 + 1 << ";" << endl;
+
+            sparseHelper(3, third_derivatives_output, k+k2, 2, output_type);
+            third_derivatives_output << "=";
+            sparseHelper(3, third_derivatives_output, k, 2, output_type);
+            third_derivatives_output << ";" << endl;
+
+            k2++;
+          }
+      k += k2;
+    }
+
   if (!use_dll)
     {
       StaticOutput << "residual = zeros( " << equations.size() << ", 1);" << endl << endl
@@ -1280,6 +1352,20 @@ StaticModel::writeStaticModel(ostream &StaticOutput, bool use_dll) const
       else
         StaticOutput << "  g2 = sparse([],[],[]," << equations.size() << "," << g2ncols << ");" << endl;
       StaticOutput << "end" << endl;
+      // Initialize g3 matrix
+      StaticOutput << "if nargout >= 4," << endl
+                    << "  %" << endl
+                    << "  % Third order derivatives" << endl
+                    << "  %" << endl
+                    << endl;
+      int ncols = hessianColsNbr * JacobianColsNbr;
+      if (third_derivatives.size())
+        StaticOutput << "  v3 = zeros(" << NNZDerivatives[2] << ",3);" << endl
+                      << third_derivatives_output.str()
+                      << "  g3 = sparse(v3(:,1),v3(:,2),v3(:,3)," << nrows << "," << ncols << ");" << endl;
+      else // Either 3rd derivatives is all zero, or we didn't compute it
+        StaticOutput << "  g3 = sparse([],[],[]," << nrows << "," << ncols << ");" << endl;
+
     }
   else
     {
@@ -1305,6 +1391,14 @@ StaticModel::writeStaticModel(ostream &StaticOutput, bool use_dll) const
                      << "    {" << endl
                      << hessian_output.str()
                      << "    }" << endl;
+      if (third_derivatives.size())
+        StaticOutput << "  /* Third derivatives for endogenous and exogenous variables */" << endl
+                      << "  if (v3 == NULL)" << endl
+                      << "    return;" << endl
+                      << "  else" << endl
+                      << "    {" << endl
+                      << third_derivatives_output.str()
+                      << "    }" << endl;
     }
 }
 
diff --git a/preprocessor/StaticModel.hh b/preprocessor/StaticModel.hh
index f193c4c4dc7f7ce1dd75fdc1cd1ce1ea76f51bd9..e76a5f0fe3d1a0c1ac4a0b1c7ae9775c54c50f98 100644
--- a/preprocessor/StaticModel.hh
+++ b/preprocessor/StaticModel.hh
@@ -161,7 +161,7 @@ public:
     \param hessian whether 2nd derivatives w.r. to exo, exo_det and endo should be computed
     \param paramsDerivatives whether 2nd derivatives w.r. to a pair (endo/exo/exo_det, parameter) should be computed
   */
-  void computingPass(const eval_context_t &eval_context, bool no_tmp_terms, bool hessian,bool paramsDerivatives, bool block, bool bytecode);
+  void computingPass(const eval_context_t &eval_context, bool no_tmp_terms, bool hessian, bool thirdDerivatices, bool paramsDerivatives, bool block, bool bytecode);
 
   //! Adds informations for simulation in a binary file for a block decomposed model
   void Write_Inf_To_Bin_File_Block(const string &static_basename, const string &bin_basename, const int &num,
diff --git a/preprocessor/SteadyStateModel.cc b/preprocessor/SteadyStateModel.cc
index f85aee07ca64d6b289626e457a91fb4dfa4326e0..d19a7f38c8a014c292ea35591c86b75ca260b7d3 100644
--- a/preprocessor/SteadyStateModel.cc
+++ b/preprocessor/SteadyStateModel.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2011 Dynare Team
+ * Copyright (C) 2010-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -39,8 +39,7 @@ SteadyStateModel::addDefinition(int symb_id, expr_t expr)
   // Add the variable
   vector<int> v;
   v.push_back(symb_id);
-  recursive_order.push_back(v);
-  def_table[v] = expr;
+  def_table.push_back(make_pair(v, expr));
 }
 
 void
@@ -53,41 +52,40 @@ SteadyStateModel::addMultipleDefinitions(const vector<int> &symb_ids, expr_t exp
              || symbol_table.getType(symb_ids[i]) == eModFileLocalVariable
              || symbol_table.getType(symb_ids[i]) == eParameter);
     }
-  recursive_order.push_back(symb_ids);
-  def_table[symb_ids] = expr;
+  def_table.push_back(make_pair(symb_ids, expr));
 }
 
 void
-SteadyStateModel::checkPass(bool ramsey_policy) const
+SteadyStateModel::checkPass(bool ramsey_model, WarningConsolidation &warnings) const
 {
+  if (def_table.size() == 0)
+    return;
+
   vector<int> so_far_defined;
 
-  for (size_t i = 0; i < recursive_order.size(); i++)
+  for (size_t i = 0; i < def_table.size(); i++)
     {
-      const vector<int> &symb_ids = recursive_order[i];
+      const vector<int> &symb_ids = def_table[i].first;
 
       // Check that symbols are not already defined
       for (size_t j = 0; j < symb_ids.size(); j++)
         if (find(so_far_defined.begin(), so_far_defined.end(), symb_ids[j])
             != so_far_defined.end())
-          {
-            cerr << "ERROR: in the 'steady_state' block, variable '" << symbol_table.getName(symb_ids[j]) << "' is declared twice" << endl;
-            exit(EXIT_FAILURE);
-          }
-
+          warnings << "WARNING: in the 'steady_state_model' block, variable '" << symbol_table.getName(symb_ids[j]) << "' is declared twice" << endl;
+      
       // Check that expression has no undefined symbol
-      if (!ramsey_policy)
+      if (!ramsey_model)
         {
-          set<pair<int, int> > used_symbols;
-          expr_t expr = def_table.find(symb_ids)->second;
+          set<int> used_symbols;
+          const expr_t &expr = def_table[i].second;
           expr->collectVariables(eEndogenous, used_symbols);
           expr->collectVariables(eModFileLocalVariable, used_symbols);
-          for (set<pair<int, int> >::const_iterator it = used_symbols.begin();
+          for (set<int>::const_iterator it = used_symbols.begin();
                it != used_symbols.end(); ++it)
-            if (find(so_far_defined.begin(), so_far_defined.end(), it->first)
+            if (find(so_far_defined.begin(), so_far_defined.end(), *it)
                 == so_far_defined.end())
               {
-                cerr << "ERROR: in the 'steady_state' block, variable '" << symbol_table.getName(it->first)
+                cerr << "ERROR: in the 'steady_state_model' block, variable '" << symbol_table.getName(*it)
                      << "' is undefined in the declaration of variable '" << symbol_table.getName(symb_ids[0]) << "'" << endl;
                 exit(EXIT_FAILURE);
               }
@@ -95,12 +93,21 @@ SteadyStateModel::checkPass(bool ramsey_policy) const
 
       copy(symb_ids.begin(), symb_ids.end(), back_inserter(so_far_defined));
     }
+
+  set<int> orig_endogs = symbol_table.getOrigEndogenous();
+  for (set<int>::const_iterator it = orig_endogs.begin();
+       it != orig_endogs.end(); ++it)
+    {
+      if (find(so_far_defined.begin(), so_far_defined.end(), *it)
+          == so_far_defined.end())
+        warnings << "WARNING: in the 'steady_state_model' block, variable '" << symbol_table.getName(*it) << "' is not assigned a value" << endl;
+    }
 }
 
 void
-SteadyStateModel::writeSteadyStateFile(const string &basename, bool ramsey_policy) const
+SteadyStateModel::writeSteadyStateFile(const string &basename, bool ramsey_model) const
 {
-  if (recursive_order.size() == 0)
+  if (def_table.size() == 0)
     return;
 
   string filename = basename + "_steadystate2.m";
@@ -118,9 +125,9 @@ SteadyStateModel::writeSteadyStateFile(const string &basename, bool ramsey_polic
          << "% Steady state generated by Dynare preprocessor" << endl
          << "    info = 0;" << endl;
 
-  for (size_t i = 0; i < recursive_order.size(); i++)
+  for (size_t i = 0; i < def_table.size(); i++)
     {
-      const vector<int> &symb_ids = recursive_order[i];
+      const vector<int> &symb_ids = def_table[i].first;
       output << "    ";
       if (symb_ids.size() > 1)
         output << "[";
@@ -136,7 +143,7 @@ SteadyStateModel::writeSteadyStateFile(const string &basename, bool ramsey_polic
         output << "]";
 
       output << "=";
-      def_table.find(symb_ids)->second->writeOutput(output, oSteadyStateFile);
+      def_table[i].second->writeOutput(output, oSteadyStateFile);
       output << ";" << endl;
     }
   output << "    % Auxiliary equations" << endl;
diff --git a/preprocessor/SteadyStateModel.hh b/preprocessor/SteadyStateModel.hh
index cbb206afa32d91f375e5457536f9a5d1c5fb07d9..64b78573b88ae2ae39affa803cb372e3dc1c1b64 100644
--- a/preprocessor/SteadyStateModel.hh
+++ b/preprocessor/SteadyStateModel.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2011 Dynare Team
+ * Copyright (C) 2010-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -22,13 +22,13 @@
 
 #include "DataTree.hh"
 #include "StaticModel.hh"
+#include "WarningConsolidation.hh"
 
 class SteadyStateModel : public DataTree
 {
 private:
   //! Associates a set of symbol IDs (the variable(s) assigned in a given statement) to an expression (their assigned value)
-  map<vector<int>, expr_t> def_table;
-  vector<vector<int> > recursive_order;
+  vector<pair<vector<int>, expr_t> > def_table;
 
   //! Reference to static model (for writing auxiliary equations)
   const StaticModel &static_model;
@@ -41,14 +41,16 @@ public:
   void addMultipleDefinitions(const vector<int> &symb_ids, expr_t expr);
   //! Checks that definitions are in a recursive order, and that no variable is declared twice
   /*!
-    \param[in] ramsey_policy Is there a ramsey_policy statement in the MOD file? If yes, then disable the check on the recursivity of the declarations
+    \param[in] ramsey_model Is there a Ramsey model in the MOD file? If yes, then disable the check on the recursivity of the declarations
   */
-  void checkPass(bool ramsey_policy) const;
+  void checkPass(bool ramsey_model, WarningConsolidation &warnings) const;
   //! Write the steady state file
   /*!
-    \param[in] ramsey_policy Is there a ramsey_policy statement in the MOD file? If yes, then use the "ys" in argument of the steady state file as initial values
+    \param[in] ramsey_model Is there a Ramsey model in the MOD file? If yes, then use the "ys" in argument of the steady state file as initial values
   */
-  void writeSteadyStateFile(const string &basename, bool ramsey_policy) const;
+  void writeSteadyStateFile(const string &basename, bool ramsey_model) const;
+  // in ExternalFiles.cc
+  void writeSteadyStateFileC(const string &basename, bool ramsey_model) const;
 };
 
 #endif
diff --git a/preprocessor/SymbolList.cc b/preprocessor/SymbolList.cc
index af4c19114413c62466bc4f71dfa1b1051e2e1da7..dca1410ece165ec8bd8a846d6e0763a6b2e837a1 100644
--- a/preprocessor/SymbolList.cc
+++ b/preprocessor/SymbolList.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2010 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -28,13 +28,15 @@ SymbolList::addSymbol(const string &symbol)
 void
 SymbolList::writeOutput(const string &varname, ostream &output) const
 {
-  output << varname << "=[];" << endl;
+  output << varname << " = char(";
   for (vector<string>::const_iterator it = symbols.begin();
-       it != symbols.end(); it++)
-    if (it == symbols.begin())
-      output << varname << " = '" << *it << "';" << endl;
-    else
-      output << varname << " = char(" << varname << ", '" << *it << "');" << endl;
+       it != symbols.end(); ++it)
+    {
+      if (it != symbols.begin())
+        output << ",";
+      output << "'" << *it << "'";
+    }
+  output << ");" << endl;
 }
 
 void
diff --git a/preprocessor/SymbolList.hh b/preprocessor/SymbolList.hh
index dafa965bfcb844f61ffa9e5648ab2e23a178d4d1..82f0b79401ced40b14b26ea0fe2a240fc784567a 100644
--- a/preprocessor/SymbolList.hh
+++ b/preprocessor/SymbolList.hh
@@ -20,12 +20,12 @@
 #ifndef _SYMBOL_LIST_HH
 #define _SYMBOL_LIST_HH
 
-using namespace std;
-
 #include <string>
 #include <vector>
 #include <ostream>
 
+using namespace std;
+
 //! Used to store a list of symbols
 /*! This class is no more than a vector<string>, with a pretty-printer for Matlab */
 class SymbolList
@@ -43,6 +43,8 @@ public:
   void clear();
   //! Get a copy of the string vector
   vector<string> get_symbols() const { return symbols; };
+  //! Is Empty
+  int empty() const { return symbols.empty(); };
 };
 
 #endif
diff --git a/preprocessor/SymbolTable.cc b/preprocessor/SymbolTable.cc
index 4141e9410830f13c5b729a7eb0bc7ff66b0d38c5..aa636b97f852362dda5db4802e678131706e6eb8 100644
--- a/preprocessor/SymbolTable.cc
+++ b/preprocessor/SymbolTable.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -39,7 +39,7 @@ SymbolTable::SymbolTable() : frozen(false), size(0)
 }
 
 int
-SymbolTable::addSymbol(const string &name, SymbolType type, const string &tex_name) throw (AlreadyDeclaredException, FrozenException)
+SymbolTable::addSymbol(const string &name, SymbolType type, const string &tex_name, const string &long_name) throw (AlreadyDeclaredException, FrozenException)
 {
   if (frozen)
     throw FrozenException();
@@ -52,12 +52,29 @@ SymbolTable::addSymbol(const string &name, SymbolType type, const string &tex_na
         throw AlreadyDeclaredException(name, false);
     }
 
+  string final_tex_name = tex_name;
+  if (final_tex_name.empty())
+    {
+      final_tex_name = name;
+      size_t pos = 0;
+      while ((pos = final_tex_name.find('_', pos)) != string::npos)
+        {
+          final_tex_name.insert(pos, "\\");
+          pos += 2;
+        }
+    }
+
+  string final_long_name = long_name;
+  if (final_long_name.empty())
+    final_long_name = name;
+
   int id = size++;
 
   symbol_table[name] = id;
   type_table.push_back(type);
   name_table.push_back(name);
-  tex_name_table.push_back(tex_name);
+  tex_name_table.push_back(final_tex_name);
+  long_name_table.push_back(final_long_name);
 
   return id;
 }
@@ -65,15 +82,7 @@ SymbolTable::addSymbol(const string &name, SymbolType type, const string &tex_na
 int
 SymbolTable::addSymbol(const string &name, SymbolType type) throw (AlreadyDeclaredException, FrozenException)
 {
-  // Construct "tex_name" by prepending an antislash to all underscores in "name"
-  string tex_name = name;
-  size_t pos = 0;
-  while ((pos = tex_name.find('_', pos)) != string::npos)
-    {
-      tex_name.insert(pos, "\\");
-      pos += 2;
-    }
-  return addSymbol(name, type, tex_name);
+  return addSymbol(name, type, "", "");
 }
 
 void
@@ -168,40 +177,48 @@ SymbolTable::writeOutput(ostream &output) const throw (NotYetFrozenException)
     {
       output << "M_.exo_names = '" << getName(exo_ids[0]) << "';" << endl;
       output << "M_.exo_names_tex = '" << getTeXName(exo_ids[0]) << "';" << endl;
+      output << "M_.exo_names_long = '" << getLongName(exo_ids[0]) << "';" << endl;
       for (int id = 1; id < exo_nbr(); id++)
         {
           output << "M_.exo_names = char(M_.exo_names, '" << getName(exo_ids[id]) << "');" << endl
-                 << "M_.exo_names_tex = char(M_.exo_names_tex, '" << getTeXName(exo_ids[id]) << "');" << endl;
+                 << "M_.exo_names_tex = char(M_.exo_names_tex, '" << getTeXName(exo_ids[id]) << "');" << endl
+                 << "M_.exo_names_long = char(M_.exo_names_long, '" << getLongName(exo_ids[id]) << "');" << endl;
         }
     }
   if (exo_det_nbr() > 0)
     {
       output << "M_.exo_det_names = '" << getName(exo_det_ids[0]) << "';" << endl;
       output << "M_.exo_det_names_tex = '" << getTeXName(exo_det_ids[0]) << "';" << endl;
+      output << "M_.exo_det_names_long = '" << getLongName(exo_det_ids[0]) << "';" << endl;
       for (int id = 1; id < exo_det_nbr(); id++)
         {
           output << "M_.exo_det_names = char(M_.exo_det_names, '" << getName(exo_det_ids[id]) << "');" << endl
-                 << "M_.exo_det_names_tex = char(M_.exo_det_names_tex, '" << getTeXName(exo_det_ids[id]) << "');" << endl;
+                 << "M_.exo_det_names_tex = char(M_.exo_det_names_tex, '" << getTeXName(exo_det_ids[id]) << "');" << endl
+                 << "M_.exo_det_names_long = char(M_.exo_det_names_long, '" << getLongName(exo_det_ids[id]) << "');" << endl;
         }
     }
   if (endo_nbr() > 0)
     {
       output << "M_.endo_names = '" << getName(endo_ids[0]) << "';" << endl;
       output << "M_.endo_names_tex = '" << getTeXName(endo_ids[0]) << "';" << endl;
+      output << "M_.endo_names_long = '" << getLongName(endo_ids[0]) << "';" << endl;
       for (int id = 1; id < endo_nbr(); id++)
         {
           output << "M_.endo_names = char(M_.endo_names, '" << getName(endo_ids[id]) << "');" << endl
-                 << "M_.endo_names_tex = char(M_.endo_names_tex, '" << getTeXName(endo_ids[id]) << "');" << endl;
+                 << "M_.endo_names_tex = char(M_.endo_names_tex, '" << getTeXName(endo_ids[id]) << "');" << endl
+                 << "M_.endo_names_long = char(M_.endo_names_long, '" << getLongName(endo_ids[id]) << "');" << endl;
         }
     }
   if (param_nbr() > 0)
     {
       output << "M_.param_names = '" << getName(param_ids[0]) << "';" << endl;
       output << "M_.param_names_tex = '" << getTeXName(param_ids[0]) << "';" << endl;
+      output << "M_.param_names_long = '" << getLongName(param_ids[0]) << "';" << endl;
       for (int id = 1; id < param_nbr(); id++)
         {
           output << "M_.param_names = char(M_.param_names, '" << getName(param_ids[id]) << "');" << endl
-                 << "M_.param_names_tex = char(M_.param_names_tex, '" << getTeXName(param_ids[id]) << "');" << endl;
+                 << "M_.param_names_tex = char(M_.param_names_tex, '" << getTeXName(param_ids[id]) << "');" << endl
+                 << "M_.param_names_long = char(M_.param_names_long, '" << getLongName(param_ids[id]) << "');" << endl;
 
           if (getName(param_ids[id]) == "dsge_prior_weight")
             output << "options_.dsge_var = 1;" << endl;
@@ -269,6 +286,168 @@ SymbolTable::writeOutput(ostream &output) const throw (NotYetFrozenException)
     }
 }
 
+void
+SymbolTable::writeCOutput(ostream &output) const throw (NotYetFrozenException)
+{
+  if (!frozen)
+    throw NotYetFrozenException();
+
+  output << endl
+         << "int exo_nbr = " << exo_nbr() << ";" << endl;
+  if (exo_nbr() > 0)
+    {
+      output << "char *exo_names[" << exo_nbr() << "];" << endl;
+      for (int id = 0; id < exo_nbr(); id++)
+	output << "exo_names[" << id << "] = \"" << getName(exo_ids[id]) << "\";" << endl;
+    }
+
+  output << endl
+         << "int exo_det_nbr = " << exo_det_nbr() << ";" << endl;
+  if (exo_det_nbr() > 0)
+    {
+      output << "char *exo_det_names[" << exo_det_nbr() << "];" << endl;
+      for (int id = 0; id < exo_det_nbr(); id++)
+	output << "exo_det_names[" << id << "] = \"" << getName(exo_det_ids[id]) << "\";" << endl;
+    }
+
+  output << endl
+         << "int endo_nbr = " << endo_nbr() << ";" << endl;
+  if (endo_nbr() > 0)
+    {
+      output << "char *endo_names[" << endo_nbr() << "];" << endl;
+      for (int id = 0; id < endo_nbr(); id++)
+	output << "endo_names[" << id << "] = \"" << getName(endo_ids[id]) << "\";" << endl;
+    }
+
+  output << endl
+         << "int param_nbr = " << param_nbr() << ";" << endl;
+  if (param_nbr() > 0)
+    {
+      output << "char *param_names[" << param_nbr() << "];" << endl;
+      for (int id = 0; id < param_nbr(); id++)
+	output << "param_names[" << id << "] = \"" << getName(param_ids[id]) << "\";" << endl;
+    }
+
+  // Write the auxiliary variable table
+  output << "int aux_var_nbr = " << aux_vars.size() << ";" << endl;
+  if (aux_vars.size() > 0)
+    {
+      output << "struct aux_vars_t *av[" << aux_vars.size() << "];" << endl;
+      for (int i = 0; i < (int) aux_vars.size(); i++)
+	{
+	  output << "av[" << i << "].endo_index = " << getTypeSpecificID(aux_vars[i].get_symb_id()) << ";" << endl
+		 << "av[" << i << "].type = " << aux_vars[i].get_type() << ";" << endl;
+	  switch (aux_vars[i].get_type())
+	    {
+	    case avEndoLead:
+	    case avExoLead:
+	    case avExpectation:
+	    case avMultiplier:
+	    case avDiffForward:
+	      break;
+	    case avEndoLag:
+	    case avExoLag:
+	      output << "av[" << i << "].orig_index = " << getTypeSpecificID(aux_vars[i].get_orig_symb_id()) << ";" << endl
+		     << "av[" << i << "].orig_lead_lag = " << aux_vars[i].get_orig_lead_lag() << ";" << endl;
+	      break;
+	    }
+	}
+    }
+
+  output << "int predeterminedNbr = " << predeterminedNbr() << ";" << endl;
+  if (predeterminedNbr() > 0)
+    {
+      output << "int predetermined_variables[" << predeterminedNbr() << "] = {"; 
+      for (set<int>::const_iterator it = predetermined_variables.begin();
+	   it != predetermined_variables.end(); it++)
+	{
+	  if ( it != predetermined_variables.begin() )
+	    output << ",";
+	  output << getTypeSpecificID(*it);
+	}
+      output << "};" << endl;
+    }
+
+  output << "int observedVariablesNbr = " << observedVariablesNbr() << ";" << endl;
+  if (observedVariablesNbr() > 0)
+    {
+      output << "int varobs[" << observedVariablesNbr() << "] = {";
+      for (vector<int>::const_iterator it = varobs.begin();
+	   it != varobs.end(); it++)
+	{
+	  if ( it != varobs.begin() )
+	    output << ",";
+	  output << getTypeSpecificID(*it);
+	}
+      output  << "};" << endl;
+    }
+}
+
+void
+SymbolTable::writeCCOutput(ostream &output) const throw (NotYetFrozenException)
+{
+  if (!frozen)
+    throw NotYetFrozenException();
+
+  output << endl
+         << "exo_nbr = " << exo_nbr() << ";" << endl;
+  if (exo_nbr() > 0)
+    for (int id = 0; id < exo_nbr(); id++)
+      output << "exo_names[\"" << getName(exo_ids[id]) << "\"] = " << id << ";" << endl;
+
+  output << endl
+         << "exo_det_nbr = " << exo_det_nbr() << ";" << endl;
+  if (exo_det_nbr() > 0)
+    for (int id = 0; id < exo_det_nbr(); id++)
+      output << "exo_det_names[\"" << getName(exo_det_ids[id]) << "\"] = " << id << " ;" << endl;
+
+  output << endl
+         << "endo_nbr = " << endo_nbr() << ";" << endl;
+  if (endo_nbr() > 0)
+    for (int id = 0; id < endo_nbr(); id++)
+      output << "endo_names[\"" << getName(endo_ids[id]) << "\"] = " << id << ";" << endl;
+
+  output << endl
+         << "int param_nbr = " << param_nbr() << ";" << endl;
+  if (param_nbr() > 0)
+    for (int id = 0; id < param_nbr(); id++)
+      output << "param_names[\"" << getName(param_ids[id]) << "\"] = " << id << ";" << endl;
+
+  // Write the auxiliary variable table
+  if (aux_vars.size() > 0)
+    for (int i = 0; i < (int) aux_vars.size(); i++)
+      {
+        output << "aux_vars_t av" << i << ";" << endl;
+        output << "av" << i << ".endo_index = " << getTypeSpecificID(aux_vars[i].get_symb_id()) << ";" << endl
+               << "av" << i << ".type = " << aux_vars[i].get_type() << ";" << endl;
+        switch (aux_vars[i].get_type())
+          {
+          case avEndoLead:
+          case avExoLead:
+          case avExpectation:
+          case avMultiplier:
+          case avDiffForward:
+            break;
+          case avEndoLag:
+          case avExoLag:
+            output << "av" << i << ".orig_index = " << getTypeSpecificID(aux_vars[i].get_orig_symb_id()) << ";" << endl
+                   << "av" << i << ".orig_lead_lag = " << aux_vars[i].get_orig_lead_lag() << ";" << endl;
+            break;
+          }
+        output << "aux_vars.push_back(" << "av" << i << ");" << endl;
+      }
+
+  if (predeterminedNbr() > 0)
+    for (set<int>::const_iterator it = predetermined_variables.begin();
+         it != predetermined_variables.end(); it++)
+      output << "predetermined_variables.push_back(" << getTypeSpecificID(*it) << ");" << endl;
+
+  if (observedVariablesNbr() > 0)
+    for (vector<int>::const_iterator it = varobs.begin();
+         it != varobs.end(); it++)
+      output << "varobs.push_back(" << getTypeSpecificID(*it) << ");" << endl;
+}
+
 int
 SymbolTable::addLeadAuxiliaryVarInternal(bool endo, int index) throw (FrozenException)
 {
@@ -510,3 +689,23 @@ SymbolTable::getEndogenous() const
       endogs.insert(it->second);
   return endogs;
 }
+
+bool
+SymbolTable::isAuxiliaryVariable(int symb_id) const
+{
+  for (int i = 0; i < (int) aux_vars.size(); i++)
+    if (aux_vars[i].get_symb_id() == symb_id)
+      return true;
+  return false;
+}
+
+set<int>
+SymbolTable::getOrigEndogenous() const
+{
+  set <int> origendogs;
+  for (symbol_table_type::const_iterator it = symbol_table.begin();
+       it != symbol_table.end(); it++)
+    if (getType(it->second) == eEndogenous && !isAuxiliaryVariable(it->second))
+      origendogs.insert(it->second);
+  return origendogs;
+}
diff --git a/preprocessor/SymbolTable.hh b/preprocessor/SymbolTable.hh
index a8a032f5a97c0d1847e163ebbbae6105c8fd0d80..3e4c47e126940efb470002e6a81b597ba22330f8 100644
--- a/preprocessor/SymbolTable.hh
+++ b/preprocessor/SymbolTable.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Dynare Team
+ * Copyright (C) 2003-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -87,6 +87,8 @@ private:
   vector<string> name_table;
   //! Maps IDs to TeX names
   vector<string> tex_name_table;
+  //! Maps IDs to string names of variables
+  vector<string> long_name_table;
   //! Maps IDs to types
   vector<SymbolType> type_table;
 
@@ -182,7 +184,7 @@ private:
 public:
   //! Add a symbol
   /*! Returns the symbol ID */
-  int addSymbol(const string &name, SymbolType type, const string &tex_name) throw (AlreadyDeclaredException, FrozenException);
+  int addSymbol(const string &name, SymbolType type, const string &tex_name, const string &long_name) throw (AlreadyDeclaredException, FrozenException);
   //! Add a symbol without its TeX name (will be equal to its name)
   /*! Returns the symbol ID */
   int addSymbol(const string &name, SymbolType type) throw (AlreadyDeclaredException, FrozenException);
@@ -242,6 +244,8 @@ public:
   inline string getName(int id) const throw (UnknownSymbolIDException);
   //! Get TeX name
   inline string getTeXName(int id) const throw (UnknownSymbolIDException);
+  //! Get long name
+  inline string getLongName(int id) const throw (UnknownSymbolIDException);
   //! Get type (by ID)
   inline SymbolType getType(int id) const throw (UnknownSymbolIDException);
   //! Get type (by name)
@@ -272,6 +276,10 @@ public:
   inline int orig_endo_nbr() const throw (NotYetFrozenException);
   //! Write output of this class
   void writeOutput(ostream &output) const throw (NotYetFrozenException);
+  //! Write C output of this class
+  void writeCOutput(ostream &output) const throw (NotYetFrozenException);
+  //! Write CC output of this class
+  void writeCCOutput(ostream &output) const throw (NotYetFrozenException);
   //! Mark a symbol as predetermined variable
   void markPredetermined(int symb_id) throw (UnknownSymbolIDException, FrozenException);
   //! Test if a given symbol is a predetermined variable
@@ -291,6 +299,10 @@ public:
   set <int> getExogenous() const;
   //! Get list of endogenous variables
   set <int> getEndogenous() const;
+  //! Is a given symbol an auxiliary variable
+  bool isAuxiliaryVariable(int symb_id) const;
+  //! Get list of endogenous variables without aux vars
+  set <int> getOrigEndogenous() const;
 };
 
 inline bool
@@ -318,6 +330,15 @@ SymbolTable::getTeXName(int id) const throw (UnknownSymbolIDException)
     return tex_name_table[id];
 }
 
+inline string
+SymbolTable::getLongName(int id) const throw (UnknownSymbolIDException)
+{
+  if (id < 0 || id >= size)
+    throw UnknownSymbolIDException(id);
+  else
+    return long_name_table[id];
+}
+
 inline SymbolType
 SymbolTable::getType(int id) const throw (UnknownSymbolIDException)
 {
diff --git a/preprocessor/WarningConsolidation.cc b/preprocessor/WarningConsolidation.cc
index beaf061dee40ed51b0f147fa7de8fe251fbba2db..653d473053b469ae74a08a057512db2a65a8c9fe 100644
--- a/preprocessor/WarningConsolidation.cc
+++ b/preprocessor/WarningConsolidation.cc
@@ -17,8 +17,6 @@
  * along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-using namespace std;
-
 #include "WarningConsolidation.hh"
 #include <ostream>
 
diff --git a/preprocessor/WarningConsolidation.hh b/preprocessor/WarningConsolidation.hh
index ba63301429f4f657447308aa56b2a9248590bb4e..135a54a39d6b6fdcb518a339cb039a19ceb8b0be 100644
--- a/preprocessor/WarningConsolidation.hh
+++ b/preprocessor/WarningConsolidation.hh
@@ -20,12 +20,12 @@
 #ifndef _WARNINGCONSOLIDATION_HH
 #define _WARNINGCONSOLIDATION_HH
 
-using namespace std;
-
 #include <sstream>
 #include <string>
 #include "location.hh"
 
+using namespace std;
+
 //! Stores Warnings issued by the Preprocessor
 class WarningConsolidation
 {
diff --git a/preprocessor/macro/MacroBison.yy b/preprocessor/macro/MacroBison.yy
index a7a6456e898f351fcd826b6f495674b9262bd90c..2bd8072a4c598e7a661e01280566ce43877f0d93 100644
--- a/preprocessor/macro/MacroBison.yy
+++ b/preprocessor/macro/MacroBison.yy
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2013 Dynare Team
+ * Copyright (C) 2008-2014 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -18,24 +18,14 @@
  */
 
 %skeleton "lalr1.cc"
-%require "2.3"
+%require "2.5"
 %defines
 
-/* Prologue:
-   In Bison <= 2.3, it is inserted in both the .cc and .hh files.
-   In Bison >= 2.3a, it is inserted only in the .cc file.
-   Since Bison 2.4, the new %code directives provide a cleaner way of dealing
-   with the prologue.
-*/
-%{
-using namespace std;
-
-#include "MacroValue.hh"
-
+%code top {
 class MacroDriver;
-%}
+}
 
-%name-prefix="Macro"
+%name-prefix "Macro"
 
 %parse-param { MacroDriver &driver }
 %parse-param { ostream &out }
@@ -51,6 +41,10 @@ class MacroDriver;
 %debug
 %error-verbose
 
+%code requires {
+#include "MacroValue.hh"
+}
+
 %union
 {
   string *string_val;
@@ -58,7 +52,7 @@ class MacroDriver;
   const MacroValue *mv;
 };
 
-%{
+%code {
 #include <cstdlib>  // Pour atoi()
 #include "MacroDriver.hh"
 
@@ -77,7 +71,7 @@ class MacroDriver;
       driver.error(loc, e.message);             \
     }
 
-%}
+}
 
 %token DEFINE LINE FOR IN IF ELSE ENDIF ECHO_DIR ERROR IFDEF IFNDEF
 %token LPAREN RPAREN LBRACKET RBRACKET EQUAL EOL LENGTH
diff --git a/preprocessor/macro/MacroValue.hh b/preprocessor/macro/MacroValue.hh
index d79c024c5d6113aea36f7ad428d9e7fe82db6f31..25016478120b5a4e1bbe2dd9e3249a8c7fb7b597 100644
--- a/preprocessor/macro/MacroValue.hh
+++ b/preprocessor/macro/MacroValue.hh
@@ -20,12 +20,12 @@
 #ifndef _MACRO_VALUE_HH
 #define _MACRO_VALUE_HH
 
-using namespace std;
-
 #include <string>
 #include <vector>
 #include <sstream>
 
+using namespace std;
+
 class MacroDriver;
 
 //! Base class for representing values in macro language
diff --git a/tests/.gitignore b/tests/.gitignore
index 3fd1bd8385af22d7886719e8f2ad6c6538b18b6b..24b6e46dbf11a4874ffb51caebf73ea8cbdd089a 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -11,6 +11,7 @@
 *.dat
 *.prn
 *_simul
+*-macroexp.mod
 
 wsOct
 /run_test_octave_output.txt
@@ -28,6 +29,11 @@ wsOct
 !/run_test.m
 !/run_test_matlab.m
 !/run_test_octave.m
+!/run_reporting_test_matlab.m
+!/run_reporting_test_octave.m
+!/run_block_byte_tests_matlab.m
+!/run_block_byte_tests_octave.m
+!/run_unitary_tests.m
 !/test.m
 !/AIM/data_ca1.m
 !/AIM/fs2000_b1L1L_AIM_steadystate.m
@@ -76,3 +82,4 @@ wsOct
 !/practicing/dataHST.mat
 !/practicing/datasaver.m
 !/recursive/data_ca1.m
+!/smoother2histval/fsdat_simul.m
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 98bccf05c1f994bb46814722bfb7ad41dc4b319f..b53d1f5a616f6e9871979f845927787fa3bc4f3f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -3,6 +3,9 @@ MODFILES = \
 	estimation/fs2000_mc4_mf.mod \
 	estimation/fs2000_mc6.mod \
 	estimation/fs2000_mc6_mf.mod \
+	estimation/fs2000_MCMC_jumping_covariance.mod \
+	estimation/fs2000_initialize_from_calib.mod	\
+	estimation/fs2000_calibrated_covariance.mod \
 	gsa/ls2003.mod \
 	ramst.mod \
 	ramst_a.mod \
@@ -15,9 +18,11 @@ MODFILES = \
 	example1_abs_sign.mod \
 	example1_macroif.mod \
 	t_sgu_ex1.mod \
-	osr_example.mod \
+	optimal_policy/osr_example.mod \
 	optimal_policy/ramsey.mod \
 	optimal_policy/nk_ramsey.mod \
+	optimal_policy/nk_ramsey_model.mod \
+	optimal_policy/nk_ramsey_det.mod \
 	optimal_policy/nk_ramsey_expectation.mod \
 	optimal_policy/nk_ramsey_expectation_a.mod \
 	optimal_policy/mult_elimination_test.mod \
@@ -42,6 +47,7 @@ MODFILES = \
 	steady_state/walsh1_ssm.mod \
 	steady_state/walsh1_ssm_block.mod \
 	steady_state/multi_leads.mod \
+	steady_state/example1_trust_region.mod \
 	steady_state_operator/standard.mod \
 	steady_state_operator/use_dll.mod \
 	steady_state_operator/block.mod \
@@ -71,11 +77,13 @@ MODFILES = \
 	fs2000/fs2000a.mod \
 	fs2000/fs2000c.mod \
 	fs2000/fs2000d.mod \
+	fs2000/fs2000e.mod \
 	fs2000/fs2000_cmaes.mod \
 	fs2000/fs2000_calib.mod \
 	fs2000/fs2000_analytic_derivation.mod \
 	fs2000/fs2000_missing_data.mod \
 	fs2000/fs2000_sd.mod \
+	fs2000/fs2000_mode_compute_8.mod \
 	homotopy/homotopy1_test.mod \
 	homotopy/homotopy2_test.mod \
 	homotopy/homotopy3_test.mod \
@@ -95,12 +103,12 @@ MODFILES = \
 	dsge-var/simul_hybrid.mod \
 	dsge-var/dsgevar_forward_calibrated_lambda.mod \
 	dsge-var/dsgevar_forward_estimated_lambda.mod \
-	external_function/example1_1st_and_2nd_deriv_functions_provided.mod \
-	external_function/example1_1st_and_2nd_deriv_functions_provided_dll.mod \
-	external_function/example1_1st_deriv_function_provided.mod \
-	external_function/example1_1st_deriv_function_provided_dll.mod \
-	external_function/example1_no_deriv_functions_provided.mod \
-	external_function/example1_no_deriv_functions_provided_dll.mod \
+	external_function/first_and_2nd_deriv_fcns_provided.mod \
+	external_function/first_and_2nd_deriv_fcns_provided_dll.mod \
+	external_function/first_deriv_fcn_provided.mod \
+	external_function/first_deriv_fcn_provided_dll.mod \
+	external_function/no_deriv_fcns_provided.mod \
+	external_function/no_deriv_fcns_provided_dll.mod \
 	seeds.mod \
 	identification/kim/kim2.mod \
 	identification/as2007/as2007.mod \
@@ -118,6 +126,7 @@ MODFILES = \
 	ms-sbvar/test_upper_cholesky_nc.mod \
 	ms-sbvar/test_ms_variances.mod \
 	ms-sbvar/test_ms_variances_repeated_runs.mod \
+	ms-dsge/test_ms_dsge.mod \
 	kalman_filter_smoother/gen_data.mod \
 	kalman_filter_smoother/algo1.mod \
 	kalman_filter_smoother/algo2.mod \
@@ -138,7 +147,7 @@ MODFILES = \
 	ep/rbc.mod \
 	ep/rbc2.mod \
 	ep/rbcii.mod \
-	ep/linear.mod \
+	ep/linearmodel.mod \
 	deterministic_simulations/deterministic_model_purely_forward.mod \
 	deterministic_simulations/deterministic_model_purely_backward.mod \
 	deterministic_simulations/rbc_det1.mod \
@@ -146,6 +155,8 @@ MODFILES = \
 	deterministic_simulations/rbc_det3.mod \
 	deterministic_simulations/rbc_det4.mod \
 	deterministic_simulations/rbc_det5.mod \
+	deterministic_simulations/rbc_det6.mod \
+	deterministic_simulations/homotopy.mod \
 	walsh.mod \
 	measurement_errors/fs2000_corr_me_ml_mcmc/fs2000_corr_ME.mod \
 	trend_var/fs2000_nonstationary.mod \
@@ -155,9 +166,20 @@ MODFILES = \
 	shock_decomposition/fs2000_est.mod \
 	shock_decomposition/fs2000_est_varlist.mod \
 	stochastic_purely_forward/stochastic_purely_forward.mod \
-	stochastic_purely_forward/stochastic_purely_forward_with_static.mod
-
-XFAIL_MODFILES = ramst_xfail.mod
+	stochastic_purely_forward/stochastic_purely_forward_with_static.mod \
+	gradient/fs2000_numgrad_13.mod \
+	gradient/fs2000_numgrad_15.mod \
+	gradient/fs2000_numgrad_2.mod \
+	gradient/fs2000_numgrad_3.mod \
+	gradient/fs2000_numgrad_5.mod \
+	filter_step_ahead/fs2000_filter_step_ahead_bayesian.mod \
+	filter_step_ahead/fs2000_filter_step_ahead_ML.mod \
+	loglinear/example4_loglinear.mod \
+	smoother2histval/fs2000_simul.mod \
+	smoother2histval/fs2000_smooth.mod
+
+XFAIL_MODFILES = ramst_xfail.mod \
+	estim_param_in_shock_value.mod
 
 # Dependencies
 example1_use_dll.m.trs: example1.m.trs
@@ -225,14 +247,17 @@ dsge-var/dsgevar_forward_estimated_lambda.m.trs: dsge-var/simul_hybrid.m.trs
 dsge-var/dsgevar_forward_calibrated_lambda.o.trs: dsge-var/simul_hybrid.o.trs
 dsge-var/dsgevar_forward_estimated_lambda.o.trs: dsge-var/simul_hybrid.o.trs
 
+smoother2histval/fs2000_simul.m.trs: smoother2histval/fs2000_smooth.m.trs
+smoother2histval/fs2000_simul.o.trs: smoother2histval/fs2000_smooth.o.trs
+
 # Matlab TRS Files
 M_TRS_FILES = $(patsubst %.mod, %.m.trs, $(MODFILES))
-M_TRS_FILES += run_block_byte_tests_matlab.m.trs run_reporting_test_matlab.m.trs
+M_TRS_FILES += run_block_byte_tests_matlab.m.trs run_reporting_test_matlab.m.trs run_all_unitary_tests.m.trs
 M_XFAIL_TRS_FILES = $(patsubst %.mod, %.m.trs, $(XFAIL_MODFILES))
 
 # Octave TRS Files
 O_TRS_FILES = $(patsubst %.mod, %.o.trs, $(MODFILES))
-O_TRS_FILES += run_block_byte_tests_octave.o.trs run_reporting_test_octave.o.trs
+O_TRS_FILES += run_block_byte_tests_octave.o.trs run_reporting_test_octave.o.trs run_all_unitary_tests.o.trs
 O_XFAIL_TRS_FILES = $(patsubst %.mod, %.o.trs, $(XFAIL_MODFILES))
 
 EXTRA_DIST = \
@@ -245,6 +270,7 @@ EXTRA_DIST = \
 	run_block_byte_tests_octave.m \
 	run_reporting_test_matlab.m \
 	run_reporting_test_octave.m \
+	run_all_unitary_tests.m \
 	reporting/AnnualTable.m \
 	reporting/CommResidTablePage.m \
 	reporting/CountryGraphPage.m \
@@ -309,7 +335,13 @@ EXTRA_DIST = \
 	third_order/comparison_policy_functions_dynare_mathematica.m \
 	third_order/policyfunctions.mat \
 	shock_decomposition/example1_calib_shock_decomp_data.mat \
-	shock_decomposition/fsdat_simul.m
+	shock_decomposition/fsdat_simul.m \
+	estimation/fs2000_MCMC_jumping_covariance_steadystate.m \
+	estimation/fs2000_initialize_from_calib_steadystate.m \
+	filter_step_ahead/fs2000_filter_step_ahead_bayesian_steadystate.m \
+	filter_step_ahead/fs2000_filter_step_ahead_ML_steadystate.m \
+	loglinear/results_exp.mat \
+	smoother2histval/fsdat_simul.m
 
 TARGETS =
 
@@ -417,3 +449,5 @@ clean-local:
 		ms-sbvar/*.dat \
 		ms-sbvar/tmv_rr_sr \
 		ms-sbvar/tmv_rr_tr
+
+	rm -f estimation/test_matrix.mat
diff --git a/tests/block_bytecode/ireland.mod b/tests/block_bytecode/ireland.mod
index b36f2452cc6bafca3b8c5b0f35c25cbc45521bb6..4cee3cf53a0d5370a26c6f5a26957cd761bcd975 100644
--- a/tests/block_bytecode/ireland.mod
+++ b/tests/block_bytecode/ireland.mod
@@ -60,9 +60,8 @@ k=k+0.000001;
 end;
 
 options_.dynatol.f=1e-12;
-options_.maxit_=5;
 options_.slowc=1;
-steady(solve_algo=2);
+steady(solve_algo=2,maxit=50);
 
 options_.dynatol.f=4e-5;
 
@@ -72,9 +71,8 @@ periods 1;
 values 0.02;
 end;
 
-options_.maxit_=20;
 model_info;
 
-simul(periods=2000, stack_solve_algo = 0);
+simul(periods=2000, stack_solve_algo = 0,maxit=10);
 rplot y;
 rplot k;
diff --git a/tests/block_bytecode/ls2003.mod b/tests/block_bytecode/ls2003.mod
index e756932cbb1a2316f3bca0ca6e4600dd0f3e89aa..f4fbe7b582a2a006480e5de0d64d978edf8110c7 100644
--- a/tests/block_bytecode/ls2003.mod
+++ b/tests/block_bytecode/ls2003.mod
@@ -63,7 +63,7 @@ var e_ys = 1.89;
 var e_pies = 1.89;
 end;
 
-options_.maxit_=100;
+options_.simul.maxit=100;
 steady(solve_algo = @{solve_algo});
 
 @#if block
diff --git a/tests/block_bytecode/run_ls2003.m b/tests/block_bytecode/run_ls2003.m
index a5f898519059594a808c5a4077c5dcbfbbeffc11..0b1d898e343d413c32514f48bf10b5f05dc7af02 100644
--- a/tests/block_bytecode/run_ls2003.m
+++ b/tests/block_bytecode/run_ls2003.m
@@ -1,6 +1,6 @@
 function run_ls2003(block, bytecode, solve_algo, stack_solve_algo)
 
-% Copyright (C) 2010-2011 Dynare Team
+% Copyright (C) 2010-2013 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -17,6 +17,11 @@ function run_ls2003(block, bytecode, solve_algo, stack_solve_algo)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+  % Workaround for a strange race condition under Octave
+  if exist('ls2003_tmp.m') == 2
+      delete('ls2003_tmp.m')
+  end
+
   disp(['TEST: ls2003 (block=' num2str(block) ', bytecode=' ...
       num2str(bytecode) ', solve_algo=' num2str(solve_algo) ...
       ', stack_solve_algo=' num2str(stack_solve_algo) ')...']);
diff --git a/tests/csv/dd.csv b/tests/csv/dd.csv
new file mode 100644
index 0000000000000000000000000000000000000000..2f1a3a9726c116b26c741d73a2da0d1bdbe7cbba
--- /dev/null
+++ b/tests/csv/dd.csv
@@ -0,0 +1,47 @@
+,BLT_BAR_EU_,BLT_BAR_JA_,BLT_BAR_US_,BLT_EU_,BLT_JA_,BLT_US_,GROWTH_BAR_EA6_,GROWTH_BAR_EU_,GROWTH_BAR_JA_,GROWTH_BAR_LA6_,GROWTH_BAR_RC6_,GROWTH_BAR_US_,GROWTH_EA6_,GROWTH_EU_,GROWTH_JA_,GROWTH_LA6_,GROWTH_RC6_,GROWTH_US_,LCPIX_EA6_,LCPIX_EU_,LCPIX_JA_,LCPIX_LA6_,LCPIX_RC6_,LCPIX_US_,LCPI_EA6_,LCPI_EU_,LCPI_JA_,LCPI_LA6_,LCPI_RC6_,LCPI_US_,LGDP_BAR_EA6_,LGDP_BAR_EU_,LGDP_BAR_JA_,LGDP_BAR_LA6_,LGDP_BAR_RC6_,LGDP_BAR_US_,LGDP_EA6_,LGDP_EU_,LGDP_JA_,LGDP_LA6_,LGDP_RC6_,LGDP_US_,LPCONSFOOD_EA6_,LPCONSFOOD_EU_,LPCONSFOOD_JA_,LPCONSFOOD_LA6_,LPCONSFOOD_RC6_,LPCONSFOOD_US_,LPFOOD_WORLD_,LPGAS_EA6_,LPGAS_EU_,LPGAS_JA_,LPGAS_LA6_,LPGAS_RC6_,LPGAS_US_,LPOIL_WORLD_,LRPFOOD_GAP_WORLD_,LRPOIL_BAR_WORLD_,LRPOIL_GAP_WORLD_,LS_EA6_,LS_EU_,LS_JA_,LS_LA6_,LS_RC6_,LZ_BAR_EA6_,LZ_BAR_EU_,LZ_BAR_JA_,LZ_BAR_LA6_,LZ_BAR_RC6_,PIETAR_EA6_,PIETAR_LA6_,PIETAR_RC6_,RR_BAR_EA6_,RR_BAR_EU_,RR_BAR_JA_,RR_BAR_LA6_,RR_BAR_RC6_,RR_BAR_US_,RS_EA6_,RS_EU_,RS_JA_,RS_LA6_,RS_RC6_,RS_US_,UNR_BAR_EU_,UNR_BAR_JA_,UNR_BAR_US_,UNR_EU_,UNR_JA_,UNR_US_,Y_EA6_,Y_EU_,Y_JA_,Y_LA6_,Y_RC6_,Y_US_,DOT4_REER_T_BAR_EA6,DOT4_REER_T_BAR_EU,DOT4_REER_T_BAR_JA,DOT4_REER_T_BAR_LA6,DOT4_REER_T_BAR_RC6,DOT4_REER_T_BAR_US,DOT4_REER_T_EA6,DOT4_REER_T_EU,DOT4_REER_T_JA,DOT4_REER_T_LA6,DOT4_REER_T_RC6,DOT4_REER_T_US,DOT_REER_M_BAR_EA6,DOT_REER_M_BAR_EU,DOT_REER_M_BAR_JA,DOT_REER_M_BAR_LA6,DOT_REER_M_BAR_RC6,DOT_REER_M_BAR_US,DOT_REER_M_EA6,DOT_REER_M_EU,DOT_REER_M_JA,DOT_REER_M_LA6,DOT_REER_M_RC6,DOT_REER_M_US,DOT_REER_T_BAR_EA6,DOT_REER_T_BAR_EU,DOT_REER_T_BAR_JA,DOT_REER_T_BAR_LA6,DOT_REER_T_BAR_RC6,DOT_REER_T_BAR_US,DOT_REER_T_EA6,DOT_REER_T_EU,DOT_REER_T_JA,DOT_REER_T_LA6,DOT_REER_T_RC6,DOT_REER_T_US,DRS_EA6,DRS_EU,DRS_JA,DRS_LA6,DRS_RC6,DRS_US,E1_PIEX_EA6,E1_PIEX_EU,E1_PIEX_JA,E1_PIEX_LA6,E1_PIEX_RC6,E1_PIEX_US,E1_PIE_CONSFOOD_EA6,E1_PIE_CONSFOOD_EU,E1_PIE_CONSFOOD_JA,E1_PIE_CONSFOOD_LA6,E1_PIE_CONSFOOD_RC6,E1_PIE_CONSFOOD_US,E1_PIE_EA6,E1_PIE_EU,E1_PIE_GAS_EA6,E1_PIE_GAS_EU,E1_PIE_GAS_JA,E1_PIE_GAS_LA6,E1_PIE_GAS_RC6,E1_PIE_GAS_US,E1_PIE_JA,E1_PIE_LA6,E1_PIE_RC6,E1_PIE_US,E1_Y_EA6,E1_Y_EU,E1_Y_JA,E1_Y_LA6,E1_Y_RC6,E1_Y_US,E2_EA6,E2_EU,E2_JA,E2_LA6,E2_RC6,E2_US,E3_PIE4_EA6,E3_PIE4_EU,E3_PIE4_JA,E3_PIE4_LA6,E3_PIE4_RC6,E3_PIE4_US,E3_PIEX4_EA6,E3_PIEX4_EU,E3_PIEX4_JA,E3_PIEX4_LA6,E3_PIEX4_RC6,E3_PIEX4_US,E4_PIE4_EA6,E4_PIE4_EU,E4_PIE4_JA,E4_PIE4_LA6,E4_PIE4_RC6,E4_PIE4_US,E4_PIEX4_EA6,E4_PIEX4_EU,E4_PIEX4_JA,E4_PIEX4_LA6,E4_PIEX4_RC6,E4_PIEX4_US,E4_Y_EA6,E4_Y_EU,E4_Y_JA,E4_Y_LA6,E4_Y_RC6,E4_Y_US,E8_Y_EA6,E8_Y_EU,E8_Y_JA,E8_Y_LA6,E8_Y_RC6,E8_Y_US,FACT_EA6,FACT_EU,FACT_JA,FACT_LA6,FACT_RC6,FACT_RES_EA6,FACT_RES_EU,FACT_RES_JA,FACT_RES_LA6,FACT_RES_RC6,FACT_RES_US,FACT_US,GROWTH4_BAR_EA6,GROWTH4_BAR_EU,GROWTH4_BAR_JA,GROWTH4_BAR_LA6,GROWTH4_BAR_RC6,GROWTH4_BAR_US,GROWTH4_EA6,GROWTH4_EU,GROWTH4_JA,GROWTH4_LA6,GROWTH4_RC6,GROWTH4_US,GROWTH_GAP_EA6,GROWTH_GAP_EU,GROWTH_GAP_JA,GROWTH_GAP_LA6,GROWTH_GAP_RC6,GROWTH_GAP_US,G_WORLD,LCPI_WORLD,LGDP_BAR_WORLD,LGDP_WORLD,LPOIL_BAR_WORLD,LRPFOOD_BAR_EA6,LRPFOOD_BAR_EU,LRPFOOD_BAR_JA,LRPFOOD_BAR_LA6,LRPFOOD_BAR_RC6,LRPFOOD_BAR_US,LRPFOOD_GAP_EA6,LRPFOOD_GAP_EU,LRPFOOD_GAP_JA,LRPFOOD_GAP_LA6,LRPFOOD_GAP_RC6,LRPFOOD_GAP_US,LRPOIL_GAP_EA6,LRPOIL_GAP_EU,LRPOIL_GAP_JA,LRPOIL_GAP_LA6,LRPOIL_GAP_RC6,LRPOIL_GAP_US,LRR_GAP_EA6,LRR_GAP_EU,LRR_GAP_JA,LRR_GAP_LA6,LRR_GAP_RC6,LRR_GAP_US,LZ_E_EA6,LZ_E_EU,LZ_E_JA,LZ_E_LA6,LZ_E_RC6,LZ_GAP_EA6,LZ_GAP_EU,LZ_GAP_JA,LZ_GAP_LA6,LZ_GAP_RC6,PIE4_CONSFOOD_EA6,PIE4_CONSFOOD_EU,PIE4_CONSFOOD_JA,PIE4_CONSFOOD_LA6,PIE4_CONSFOOD_RC6,PIE4_CONSFOOD_US,PIE4_EA6,PIE4_EU,PIE4_FOOD_EA6,PIE4_FOOD_EU,PIE4_FOOD_JA,PIE4_FOOD_LA6,PIE4_FOOD_RC6,PIE4_FOOD_US,PIE4_FOOD_WORLD,PIE4_GAS_EA6,PIE4_GAS_EU,PIE4_GAS_JA,PIE4_GAS_LA6,PIE4_GAS_RC6,PIE4_GAS_US,PIE4_JA,PIE4_LA6,PIE4_OIL_EA6,PIE4_OIL_EU,PIE4_OIL_JA,PIE4_OIL_LA6,PIE4_OIL_RC6,PIE4_OIL_US,PIE4_OIL_WORLD,PIE4_RC6,PIE4_US,PIETAR_EU,PIETAR_JA,PIETAR_US,PIE_GAP_EA6,PIE_GAP_EU,PIE_GAP_JA,PIE_GAP_LA6,PIE_GAP_RC6,PIE_GAP_US,PIE_RFOOD_EA6,PIE_RFOOD_EU,PIE_RFOOD_JA,PIE_RFOOD_LA6,PIE_RFOOD_RC6,PIE_RFOOD_US,PIE_RFOOD_WORLD,PIE_ROIL_BAR_EA6,PIE_ROIL_BAR_EU,PIE_ROIL_BAR_JA,PIE_ROIL_BAR_LA6,PIE_ROIL_BAR_LONG_WORLD,PIE_ROIL_BAR_LONG_WORLD1,PIE_ROIL_BAR_LONG_WORLD2,PIE_ROIL_BAR_RC6,PIE_ROIL_BAR_US,PIE_ROIL_EA6,PIE_ROIL_EU,PIE_ROIL_JA,PIE_ROIL_LA6,PIE_ROIL_RC6,PIE_ROIL_US,PIE_ROIL_WORLD,PIE_WEDGE_EA6,PIE_WEDGE_EU,PIE_WEDGE_JA,PIE_WEDGE_LA6,PIE_WEDGE_RC6,PIE_WEDGE_US,REER_T_GAP_EA6,REER_T_GAP_EU,REER_T_GAP_JA,REER_T_GAP_LA6,REER_T_GAP_RC6,REER_T_GAP_US,RR4_BAR_EA6,RR4_BAR_EU,RR4_BAR_JA,RR4_BAR_LA6,RR4_BAR_RC6,RR4_BAR_US,RR4_EA6,RR4_EU,RR4_JA,RR4_LA6,RR4_RC6,RR4_US,RR_EA6,RR_EU,RR_JA,RR_LA6,RR_RC6,RR_US,RS_GAP_EA6,RS_GAP_EU,RS_GAP_JA,RS_GAP_LA6,RS_GAP_RC6,RS_GAP_US,RS_TEMP_EA6,RS_TEMP_EU,RS_TEMP_JA,RS_TEMP_LA6,RS_TEMP_RC6,RS_TEMP_US,Y_WORLD,BLT_BAR_EU,BLT_BAR_JA,BLT_BAR_US,BLT_EU,BLT_JA,BLT_US,DOT_LZ_BAR_EA6,DOT_LZ_BAR_LA6,DOT_LZ_BAR_RC6,E_EU,E_JA,E_US,GROWTH_BAR_EA6,GROWTH_BAR_EU,GROWTH_BAR_JA,GROWTH_BAR_LA6,GROWTH_BAR_RC6,GROWTH_BAR_US,GROWTH_EA6,GROWTH_EU,GROWTH_JA,GROWTH_LA6,GROWTH_RC6,GROWTH_US,G_EA6,G_EU,G_JA,G_LA6,G_RC6,G_US,LCPIX_EA6,LCPIX_EU,LCPIX_JA,LCPIX_LA6,LCPIX_RC6,LCPIX_US,LCPI_EA6,LCPI_EU,LCPI_JA,LCPI_LA6,LCPI_RC6,LCPI_US,LGDP_BAR_EA6,LGDP_BAR_EU,LGDP_BAR_JA,LGDP_BAR_LA6,LGDP_BAR_RC6,LGDP_BAR_US,LGDP_EA6,LGDP_EU,LGDP_JA,LGDP_LA6,LGDP_RC6,LGDP_US,LPCONSFOOD_EA6,LPCONSFOOD_EU,LPCONSFOOD_JA,LPCONSFOOD_LA6,LPCONSFOOD_RC6,LPCONSFOOD_US,LPFOOD_EA6,LPFOOD_EU,LPFOOD_JA,LPFOOD_LA6,LPFOOD_RC6,LPFOOD_US,LPFOOD_WORLD,LPGAS_EA6,LPGAS_EU,LPGAS_JA,LPGAS_LA6,LPGAS_RC6,LPGAS_US,LPOIL_EA6,LPOIL_EU,LPOIL_JA,LPOIL_LA6,LPOIL_RC6,LPOIL_US,LPOIL_WORLD,LRPFOOD_BAR_WORLD,LRPFOOD_EA6,LRPFOOD_EU,LRPFOOD_GAP_WORLD,LRPFOOD_G_WORLD,LRPFOOD_JA,LRPFOOD_LA6,LRPFOOD_RC6,LRPFOOD_US,LRPFOOD_WORLD,LRPOIL_BAR_EA6,LRPOIL_BAR_EU,LRPOIL_BAR_JA,LRPOIL_BAR_LA6,LRPOIL_BAR_RC6,LRPOIL_BAR_US,LRPOIL_BAR_WORLD,LRPOIL_EA6,LRPOIL_EU,LRPOIL_GAP_WORLD,LRPOIL_G_WORLD,LRPOIL_JA,LRPOIL_LA6,LRPOIL_RC6,LRPOIL_US,LRPOIL_WORLD,LRR_BAR_EA6,LRR_BAR_EU,LRR_BAR_JA,LRR_BAR_LA6,LRR_BAR_RC6,LRR_BAR_US,LRR_EA6,LRR_EU,LRR_JA,LRR_LA6,LRR_RC6,LRR_US,LS_EA6,LS_EU,LS_JA,LS_LA6,LS_RC6,LZ_BAR_EA6,LZ_BAR_EU,LZ_BAR_JA,LZ_BAR_LA6,LZ_BAR_RC6,LZ_EA6,LZ_EU,LZ_JA,LZ_LA6,LZ_RC6,PIETAR_EA6,PIETAR_LA6,PIETAR_RC6,PIEX4_EA6,PIEX4_EU,PIEX4_JA,PIEX4_LA6,PIEX4_RC6,PIEX4_US,PIEX_EA6,PIEX_EU,PIEX_JA,PIEX_LA6,PIEX_RC6,PIEX_US,PIE_CONSFOOD_EA6,PIE_CONSFOOD_EU,PIE_CONSFOOD_JA,PIE_CONSFOOD_LA6,PIE_CONSFOOD_RC6,PIE_CONSFOOD_US,PIE_EA6,PIE_EU,PIE_FOOD_EA6,PIE_FOOD_EU,PIE_FOOD_JA,PIE_FOOD_LA6,PIE_FOOD_RC6,PIE_FOOD_US,PIE_FOOD_WORLD,PIE_GAS_EA6,PIE_GAS_EU,PIE_GAS_JA,PIE_GAS_LA6,PIE_GAS_RC6,PIE_GAS_US,PIE_JA,PIE_LA6,PIE_OIL_EA6,PIE_OIL_EU,PIE_OIL_JA,PIE_OIL_LA6,PIE_OIL_RC6,PIE_OIL_US,PIE_OIL_WORLD,PIE_RC6,PIE_ROIL_BAR_WORLD,PIE_US,REER_M_BAR_EA6,REER_M_BAR_EU,REER_M_BAR_JA,REER_M_BAR_LA6,REER_M_BAR_RC6,REER_M_BAR_US,REER_M_EA6,REER_M_EU,REER_M_GAP_EA6,REER_M_GAP_EU,REER_M_GAP_JA,REER_M_GAP_LA6,REER_M_GAP_RC6,REER_M_GAP_US,REER_M_JA,REER_M_LA6,REER_M_RC6,REER_M_US,REER_T_BAR_EA6,REER_T_BAR_EU,REER_T_BAR_JA,REER_T_BAR_LA6,REER_T_BAR_RC6,REER_T_BAR_US,REER_T_EA6,REER_T_EU,REER_T_JA,REER_T_LA6,REER_T_RC6,REER_T_US,RESN_PIEX_EA6,RESN_PIEX_EU,RESN_PIEX_JA,RESN_PIEX_LA6,RESN_PIEX_RC6,RESN_PIEX_US,RESN_RR_DIFF_EA6,RESN_RR_DIFF_EU,RESN_RR_DIFF_JA,RESN_RR_DIFF_LA6,RESN_RR_DIFF_RC6,RESN_RS_EA6,RESN_RS_EU,RESN_RS_JA,RESN_RS_LA6,RESN_RS_RC6,RESN_RS_US,RESN_YY_EA6,RESN_YY_EU,RESN_YY_JA,RESN_YY_LA6,RESN_YY_RC6,RESN_YY_US,RESN_Y_EA6,RESN_Y_EU,RESN_Y_JA,RESN_Y_LA6,RESN_Y_RC6,RESN_Y_US,RR_BAR_EA6,RR_BAR_EU,RR_BAR_JA,RR_BAR_LA6,RR_BAR_RC6,RR_BAR_US,RS_EA6,RS_EU,RS_JA,RS_LA6,RS_RC6,RS_US,UNR_BAR_EU,UNR_BAR_JA,UNR_BAR_US,UNR_EU,UNR_GAP_EU,UNR_GAP_JA,UNR_GAP_US,UNR_G_EU,UNR_G_JA,UNR_G_US,UNR_JA,UNR_US,Y_EA6,Y_EU,Y_JA,Y_LA6,Y_RC6,Y_US,RES_BLT_BAR_EU,RES_BLT_BAR_JA,RES_BLT_BAR_US,RES_BLT_EU,RES_BLT_JA,RES_BLT_US,RES_DOT_LZ_BAR_EA6,RES_DOT_LZ_BAR_LA6,RES_DOT_LZ_BAR_RC6,RES_GROWTH_BAR_EA6_,RES_GROWTH_BAR_EU_,RES_GROWTH_BAR_JA_,RES_GROWTH_BAR_LA6_,RES_GROWTH_BAR_RC6_,RES_GROWTH_BAR_US_,RES_G_EA6,RES_G_EU,RES_G_JA,RES_G_LA6,RES_G_RC6,RES_G_US,RES_LGDP_BAR_EA6,RES_LGDP_BAR_EU,RES_LGDP_BAR_JA,RES_LGDP_BAR_LA6,RES_LGDP_BAR_RC6,RES_LGDP_BAR_US,RES_LRPFOOD_BAR_WORLD,RES_LRPFOOD_GAP_WORLD,RES_LRPFOOD_GAP_WORLD_,RES_LRPFOOD_G_WORLD,RES_LRPOIL_BAR_WORLD,RES_LRPOIL_GAP_WORLD,RES_LRPOIL_GAP_WORLD_,RES_LRPOIL_G_WORLD,RES_LZ_BAR_EA6,RES_LZ_BAR_EU,RES_LZ_BAR_JA,RES_LZ_BAR_LA6,RES_LZ_BAR_RC6,RES_PIETAR_EA6,RES_PIETAR_LA6,RES_PIETAR_RC6,RES_PIEX_EA6,RES_PIEX_EU,RES_PIEX_JA,RES_PIEX_LA6,RES_PIEX_RC6,RES_PIEX_US,RES_PIE_CONSFOOD_EA6,RES_PIE_CONSFOOD_EU,RES_PIE_CONSFOOD_JA,RES_PIE_CONSFOOD_LA6,RES_PIE_CONSFOOD_RC6,RES_PIE_CONSFOOD_US,RES_PIE_EA6,RES_PIE_EU,RES_PIE_GAS_EA6,RES_PIE_GAS_EU,RES_PIE_GAS_JA,RES_PIE_GAS_LA6,RES_PIE_GAS_RC6,RES_PIE_GAS_US,RES_PIE_JA,RES_PIE_LA6,RES_PIE_RC6,RES_PIE_US,RES_RR_BAR_EA6,RES_RR_BAR_EU,RES_RR_BAR_JA,RES_RR_BAR_LA6,RES_RR_BAR_RC6,RES_RR_BAR_US,RES_RR_DIFF_EA6,RES_RR_DIFF_EU,RES_RR_DIFF_JA,RES_RR_DIFF_LA6,RES_RR_DIFF_RC6,RES_RS_EA6,RES_RS_EU,RES_RS_JA,RES_RS_LA6,RES_RS_RC6,RES_RS_US,RES_UNR_BAR_EU,RES_UNR_BAR_JA,RES_UNR_BAR_US,RES_UNR_GAP_EU,RES_UNR_GAP_JA,RES_UNR_GAP_US,RES_UNR_G_EU,RES_UNR_G_JA,RES_UNR_G_US,RES_YY_EA6,RES_YY_EU,RES_YY_JA,RES_YY_LA6,RES_YY_RC6,RES_YY_US,RES_Y_EA6,RES_Y_EU,RES_Y_JA,RES_Y_LA6,RES_Y_RC6,RES_Y_US,alpha1_EU,alpha1_JA,alpha1_US,alpha2_EU,alpha2_JA,alpha2_US,alpha3_EU,alpha3_JA,alpha3_US,alpha4_EU,alpha4_JA,alpha4_US,beta1_EA6,beta1_EU,beta1_JA,beta1_LA6,beta1_RC6,beta1_US,beta2_EA6,beta2_EU,beta2_JA,beta2_LA6,beta2_RC6,beta2_US,beta3_EA6,beta3_EU,beta3_JA,beta3_LA6,beta3_RC6,beta3_US,beta3m_EA6,beta3m_EU,beta3m_JA,beta3m_LA6,beta3m_RC6,beta3m_US,beta4_EA6,beta4_EU,beta4_JA,beta4_LA6,beta4_RC6,beta4_US,beta5_EA6,beta5_EU,beta5_JA,beta5_LA6,beta5_RC6,beta5_US,beta6_EA6,beta6_EU,beta6_JA,beta6_LA6,beta6_RC6,beta6_US,beta_fact,beta_fact_res,beta_reergap_EA6,beta_reergap_EU,beta_reergap_JA,beta_reergap_LA6,beta_reergap_RC6,beta_reergap_US,chi_EA6,chi_LA6,chi_RC6,dVA_dX_EA6,dVA_dX_EU,dVA_dX_JA,dVA_dX_LA6,dVA_dX_RC6,dVA_dX_US,dY_dVA_EA6,dY_dVA_EU,dY_dVA_JA,dY_dVA_LA6,dY_dVA_RC6,dY_dVA_US,dot_lz_bar_ss_EA6,dot_lz_bar_ss_LA6,dot_lz_bar_ss_RC6,eaw,euw,exp_EA6_EA6,exp_EA6_EU,exp_EA6_JA,exp_EA6_LA6,exp_EA6_RC6,exp_EA6_US,exp_EU_EA6,exp_EU_EU,exp_EU_JA,exp_EU_LA6,exp_EU_RC6,exp_EU_US,exp_JA_EA6,exp_JA_EU,exp_JA_JA,exp_JA_LA6,exp_JA_RC6,exp_JA_US,exp_LA6_EA6,exp_LA6_EU,exp_LA6_JA,exp_LA6_LA6,exp_LA6_RC6,exp_LA6_US,exp_RC6_EA6,exp_RC6_EU,exp_RC6_JA,exp_RC6_LA6,exp_RC6_RC6,exp_RC6_US,exp_US_EA6,exp_US_EU,exp_US_JA,exp_US_LA6,exp_US_RC6,exp_US_US,gamma1_EA6,gamma1_EU,gamma1_JA,gamma1_LA6,gamma1_RC6,gamma1_US,gamma2_EA6,gamma2_EU,gamma2_JA,gamma2_LA6,gamma2_RC6,gamma2_US,gamma4_EA6,gamma4_EU,gamma4_JA,gamma4_LA6,gamma4_RC6,gamma4_US,growth_ss_EA6,growth_ss_EU,growth_ss_JA,growth_ss_LA6,growth_ss_RC6,growth_ss_US,imp_EA6_EA6,imp_EA6_EU,imp_EA6_JA,imp_EA6_LA6,imp_EA6_RC6,imp_EA6_US,imp_EU_EA6,imp_EU_EU,imp_EU_JA,imp_EU_LA6,imp_EU_RC6,imp_EU_US,imp_JA_EA6,imp_JA_EU,imp_JA_JA,imp_JA_LA6,imp_JA_RC6,imp_JA_US,imp_LA6_EA6,imp_LA6_EU,imp_LA6_JA,imp_LA6_LA6,imp_LA6_RC6,imp_LA6_US,imp_RC6_EA6,imp_RC6_EU,imp_RC6_JA,imp_RC6_LA6,imp_RC6_RC6,imp_RC6_US,imp_US_EA6,imp_US_EU,imp_US_JA,imp_US_LA6,imp_US_RC6,imp_US_US,iota_cfood1_EA6,iota_cfood1_EU,iota_cfood1_JA,iota_cfood1_LA6,iota_cfood1_RC6,iota_cfood1_US,iota_cfood2_EA6,iota_cfood2_EU,iota_cfood2_JA,iota_cfood2_LA6,iota_cfood2_RC6,iota_cfood2_US,iota_cfood3_EA6,iota_cfood3_EU,iota_cfood3_JA,iota_cfood3_LA6,iota_cfood3_RC6,iota_cfood3_US,iota_cfood4_EA6,iota_cfood4_EU,iota_cfood4_JA,iota_cfood4_LA6,iota_cfood4_RC6,iota_cfood4_US,iota_cfood5_EA6,iota_cfood5_EU,iota_cfood5_JA,iota_cfood5_LA6,iota_cfood5_RC6,iota_cfood5_US,iota_food1,iota_food2,iota_food3,iota_gas1_EA6,iota_gas1_EU,iota_gas1_JA,iota_gas1_LA6,iota_gas1_RC6,iota_gas1_US,iota_gas2_EA6,iota_gas2_EU,iota_gas2_JA,iota_gas2_LA6,iota_gas2_RC6,iota_gas2_US,iota_gas3_EA6,iota_gas3_EU,iota_gas3_JA,iota_gas3_LA6,iota_gas3_RC6,iota_gas3_US,iota_gas4_EA6,iota_gas4_EU,iota_gas4_JA,iota_gas4_LA6,iota_gas4_RC6,iota_gas4_US,iota_gas5_EA6,iota_gas5_EU,iota_gas5_JA,iota_gas5_LA6,iota_gas5_RC6,iota_gas5_US,iota_oil1,iota_oil2,iota_oil3,jaw,kappa_EU,kappa_JA,kappa_US,lambda1_EA6,lambda1_EU,lambda1_JA,lambda1_LA6,lambda1_RC6,lambda1_US,lambda1s_EA6,lambda1s_EU,lambda1s_JA,lambda1s_LA6,lambda1s_RC6,lambda1s_US,lambda1x_EA6,lambda1x_EU,lambda1x_JA,lambda1x_LA6,lambda1x_RC6,lambda1x_US,lambda2_EA6,lambda2_EU,lambda2_JA,lambda2_LA6,lambda2_RC6,lambda2_US,lambda2s_EA6,lambda2s_EU,lambda2s_JA,lambda2s_LA6,lambda2s_RC6,lambda2s_US,lambda2x_EA6,lambda2x_EU,lambda2x_JA,lambda2x_LA6,lambda2x_RC6,lambda2x_US,lambda3_EA6,lambda3_EU,lambda3_JA,lambda3_LA6,lambda3_RC6,lambda3_US,lambda3x_EA6,lambda3x_EU,lambda3x_JA,lambda3x_LA6,lambda3x_RC6,lambda3x_US,lambda4x_EA6,lambda4x_EU,lambda4x_JA,lambda4x_LA6,lambda4x_RC6,lambda4x_US,law,lrrw01_EA6,lrrw01_EU,lrrw01_JA,lrrw01_LA6,lrrw01_RC6,lrrw01_US,lrrw04_EA6,lrrw04_EU,lrrw04_JA,lrrw04_LA6,lrrw04_RC6,lrrw04_US,lrrw12_EA6,lrrw12_EU,lrrw12_JA,lrrw12_LA6,lrrw12_RC6,lrrw12_US,lrrw20_EA6,lrrw20_EU,lrrw20_JA,lrrw20_LA6,lrrw20_RC6,lrrw20_US,mrat_EA6,mrat_EU,mrat_JA,mrat_LA6,mrat_RC6,mrat_US,nlswitch,phi_EA6,phi_EU,phi_JA,phi_LA6,phi_RC6,pietar_ss_EA6,pietar_ss_EU,pietar_ss_JA,pietar_ss_LA6,pietar_ss_RC6,pietar_ss_US,rcw,rho_EA6,rho_EU,rho_JA,rho_LA6,rho_RC6,rho_US,rho_pietar_EA6,rho_pietar_LA6,rho_pietar_RC6,rhog_EA6,rhog_EU,rhog_JA,rhog_LA6,rhog_RC6,rhog_US,rr_bar_ss_EA6,rr_bar_ss_EU,rr_bar_ss_JA,rr_bar_ss_LA6,rr_bar_ss_RC6,rr_bar_ss_US,rs_delta,rs_floor_EA6,rs_floor_EU,rs_floor_JA,rs_floor_LA6,rs_floor_RC6,rs_floor_US,rsize_EA6_EA6,rsize_EA6_EU,rsize_EA6_JA,rsize_EA6_LA6,rsize_EA6_RC6,rsize_EA6_US,rsize_EU_EA6,rsize_EU_EU,rsize_EU_JA,rsize_EU_LA6,rsize_EU_RC6,rsize_EU_US,rsize_JA_EA6,rsize_JA_EU,rsize_JA_JA,rsize_JA_LA6,rsize_JA_RC6,rsize_JA_US,rsize_LA6_EA6,rsize_LA6_EU,rsize_LA6_JA,rsize_LA6_LA6,rsize_LA6_RC6,rsize_LA6_US,rsize_RC6_EA6,rsize_RC6_EU,rsize_RC6_JA,rsize_RC6_LA6,rsize_RC6_RC6,rsize_RC6_US,rsize_US_EA6,rsize_US_EU,rsize_US_JA,rsize_US_LA6,rsize_US_RC6,rsize_US_US,sigma1_EA6,sigma1_EU,sigma1_JA,sigma1_LA6,sigma1_RC6,sigma1_US,spill_EA6_EA6,spill_EA6_EU,spill_EA6_JA,spill_EA6_LA6,spill_EA6_RC6,spill_EA6_US,spill_EU_EA6,spill_EU_EU,spill_EU_JA,spill_EU_LA6,spill_EU_RC6,spill_EU_US,spill_JA_EA6,spill_JA_EU,spill_JA_JA,spill_JA_LA6,spill_JA_RC6,spill_JA_US,spill_LA6_EA6,spill_LA6_EU,spill_LA6_JA,spill_LA6_LA6,spill_LA6_RC6,spill_LA6_US,spill_RC6_EA6,spill_RC6_EU,spill_RC6_JA,spill_RC6_LA6,spill_RC6_RC6,spill_RC6_US,spill_US_EA6,spill_US_EU,spill_US_JA,spill_US_LA6,spill_US_RC6,spill_US_US,tau_EA6,tau_EU,tau_JA,tau_LA6,tau_RC6,tau_US,theta_EA6,theta_EU,theta_JA,theta_LA6,theta_RC6,theta_US,totw,trade_EA6_EA6,trade_EA6_EU,trade_EA6_JA,trade_EA6_LA6,trade_EA6_RC6,trade_EA6_US,trade_EU_EA6,trade_EU_EU,trade_EU_JA,trade_EU_LA6,trade_EU_RC6,trade_EU_US,trade_JA_EA6,trade_JA_EU,trade_JA_JA,trade_JA_LA6,trade_JA_RC6,trade_JA_US,trade_LA6_EA6,trade_LA6_EU,trade_LA6_JA,trade_LA6_LA6,trade_LA6_RC6,trade_LA6_US,trade_RC6_EA6,trade_RC6_EU,trade_RC6_JA,trade_RC6_LA6,trade_RC6_RC6,trade_RC6_US,trade_US_EA6,trade_US_EU,trade_US_JA,trade_US_LA6,trade_US_RC6,trade_US_US,unr_bar_ss_EU,unr_bar_ss_JA,unr_bar_ss_US,usw,xrat_EA6,xrat_EU,xrat_JA,xrat_LA6,xrat_RC6,xrat_US,zeta_EA6,zeta_EU,zeta_JA,zeta_LA6,zeta_RC6,zeta_US,zetadiff_EA6,zetadiff_EU,zetadiff_JA,zetadiff_LA6,zetadiff_RC6,zetadiff_US,zetars_EA6,zetars_EU,zetars_JA,zetars_LA6,zetars_RC6,zetars_US,zetax_EA6,zetax_EU,zetax_JA,zetax_LA6,zetax_RC6,zetax_US,zetay_EA6,zetay_EU,zetay_JA,zetay_LA6,zetay_RC6,zetay_US,zetayy_EA6,zetayy_EU,zetayy_JA,zetayy_LA6,zetayy_RC6,zetayy_US,S_JA__US,S_US__JA,S_EU__US,S_US__EU,S_EU__JA,S_JA__EU,S_LA6_US,S_US__LA6,S_EA6_US,S_US__EA6,S_RC6_US,S_US__RC6,Z_JA__US,Z_US__JA,Z_EU__US,Z_US__EU,Z_EU__JA,Z_JA__EU,Z_LA6_US,Z_US__LA6,Z_EA6_US,Z_US__EA6,Z_RC6_US,Z_US__RC6,GDP_BAR_US,GDP_BAR_EU,GDP_BAR_JA,GDP_BAR_EA6,GDP_BAR_LA6,GDP_BAR_RC6,PCH_PIE_US,PCH_PIE_EU,PCH_PIE_JA,PCH_PIE_LA6,PCH_PIE_EA6,PCH_PIE_RC6,PCH_PIE4_US,PCH_PIE4_EU,PCH_PIE4_JA,PCH_PIE4_LA6,PCH_PIE4_EA6,PCH_PIE4_RC6,PCH_PIEX_US,PCH_PIEX_EU,PCH_PIEX_JA,PCH_PIEX_LA6,PCH_PIEX_EA6,PCH_PIEX_RC6,PCH_PIEX4_US,PCH_PIEX4_EU,PCH_PIEX4_JA,PCH_PIEX4_LA6,PCH_PIEX4_EA6,PCH_PIEX4_RC6,PCH_PIE_GAS_US,PCH_PIE_GAS_EU,PCH_PIE_GAS_JA,PCH_PIE_GAS_LA6,PCH_PIE_GAS_EA6,PCH_PIE_GAS_RC6,PCH_PIE4_GAS_US,PCH_PIE4_GAS_EU,PCH_PIE4_GAS_JA,PCH_PIE4_GAS_LA6,PCH_PIE4_GAS_EA6,PCH_PIE4_GAS_RC6,PCH_PIE_CONSFOOD_US,PCH_PIE_CONSFOOD_EU,PCH_PIE_CONSFOOD_JA,PCH_PIE_CONSFOOD_LA6,PCH_PIE_CONSFOOD_EA6,PCH_PIE_CONSFOOD_RC6,PCH_PIE4_CONSFOOD_US,PCH_PIE4_CONSFOOD_EU,PCH_PIE4_CONSFOOD_JA,PCH_PIE4_CONSFOOD_LA6,PCH_PIE4_CONSFOOD_EA6,PCH_PIE4_CONSFOOD_RC6,PCH_PIE_OIL_WORLD,PCH_PIE4_OIL_WORLD,PCH_PIE_FOOD_WORLD,PCH_PIE4_FOOD_WORLD,PCH_GROWTH_US,PCH_GROWTH_EU,PCH_GROWTH_JA,PCH_GROWTH_LA6,PCH_GROWTH_EA6,PCH_GROWTH_RC6,PCH_GROWTH_WRLD,PCH_GROWTH4_US,PCH_GROWTH4_EU,PCH_GROWTH4_JA,PCH_GROWTH4_LA6,PCH_GROWTH4_EA6,PCH_GROWTH4_RC6,PCH_GROWTH4_WRLD,PCH_GROWTH_BAR_US,PCH_GROWTH_BAR_EU,PCH_GROWTH_BAR_JA,PCH_GROWTH_BAR_LA6,PCH_GROWTH_BAR_EA6,PCH_GROWTH_BAR_RC6,PCH_GROWTH_BAR_WRLD,PCH_GROWTH4_BAR_US,PCH_GROWTH4_BAR_EU,PCH_GROWTH4_BAR_JA,PCH_GROWTH4_BAR_LA6,PCH_GROWTH4_BAR_EA6,PCH_GROWTH4_BAR_RC6,PCH_GROWTH4_BAR_WRLD,PCH_DOT4_REER_T_US,PCH_DOT4_REER_T_EU,PCH_DOT4_REER_T_JA,PCH_DOT4_REER_T_LA6,PCH_DOT4_REER_T_EA6,PCH_DOT4_REER_T_RC6,PCH_DOT_REER_T_US,PCH_DOT_REER_T_EU,PCH_DOT_REER_T_JA,PCH_DOT_REER_T_LA6,PCH_DOT_REER_T_EA6,PCH_DOT_REER_T_RC6,RR_GAP_US,RR_GAP_EU,RR_GAP_JA,RR_GAP_EA6,RR_GAP_LA6,RR_GAP_RC6,CPI_US,CPI_EU,CPI_JA,CPI_LA6,CPI_EA6,CPI_RC6
+1984Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.005104,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,            -Inf,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            9.21,            9.21,            9.21,            9.21,            -Inf,            9.21,            -Inf,            -Inf,            -Inf,            -Inf,            -Inf,            -Inf,           12.21,             Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           15.21,           14.21,           14.21,           17.21,             NaN,           13.21,            -Inf,            -Inf,            -Inf,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           22.21,           14.21,           31.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           20.21,           20.21,           13.21,             Inf,             Inf,           15.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,             Inf,           11.21,           11.21,          313.21,          313.21,          313.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,             NaN,           11.21,           11.21,           11.21,           11.21,           11.21,             Inf,           12.21,             NaN,           18.21,           20.21,           15.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,             Inf,           21.21,           13.21,             Inf,             Inf,           12.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,             NaN,           11.21,           16.21,           15.21,           11.21,           11.21,           12.21,             NaN,           18.21,           16.21,           14.21,           11.21,           11.21,           11.21,             NaN,           29.21,           11.21,           11.21,           11.21,           11.21,           11.21,             NaN,           11.21,           11.21,           13.21,           11.21,           12.21,           16.21,             NaN,           11.21,           17.21,           16.21,           13.21,          156.21,           12.21,             NaN,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           35.21,           11.21,           11.21,           11.21,           26.21,           28.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,           33.21,             Inf,           18.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,            -Inf,            -Inf,            -Inf,            -Inf,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,            -Inf,            -Inf,            -Inf,            -Inf,            -Inf,            -Inf,            -Inf,           11.21,           11.21,           11.21,           11.21,           11.21,           11.21,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1985Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.007897,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1986Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.011439,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1987Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.018162,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1988Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.029086,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1989Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.046004,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1990Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.073057,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1991Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.115254,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1992Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.068432,       -0.034388,        0.079197,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.181502,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1993Y,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        2.821218,        12.06006,        5.700284,        3.267455,      -21.818083,        7.697118,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,       -0.300579,        1.022847,        0.153901,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        6.983769,       736.59873,       1296.3949,       -0.828329,      -27.890439,       904.90234,        8.911979,       730.32994,       1295.2763,       -0.674624,       -32.86043,       905.24927,       474.02815,       439.06498,        460.9572,       536.15961,       567.54425,       494.90854,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,       470.33937,       410.02412,         448.543,        516.2231,       446.87844,       446.76039,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,        0.283354,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,      -69.396409,      -102.76527,       365.29128,       1552.0483,      -107.31193,      -326.41896,      -66.575192,      -90.705213,       370.99156,       1555.3158,      -129.13001,      -318.72184,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,       8510.5442,       1581.3083,       426753.29,        1.072541,        0.991789,        0.756663,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN,             NaN
+1994Y,     -0.62178692,       1.7889957,     -0.10384369,      0.36193341,       -1.407556,     -0.75249161,       1.3370804,      -1.1725865,     -0.76993349,      0.55032304,      0.83626303,      0.24023662,     -0.13245748,     -0.32292857,     -0.30824568,      0.54987709,       -0.207618,      0.42311251,     0.058642804,      -1.1111314,     -0.54150235,        0.146682,       1.0597972,     -0.39783025,     -0.30688944,       1.0198601,      -1.8413137,     -0.25583307,      0.55122686,      0.49979579,       1.1632356,      0.58004976,       2.0155897,     -0.37538904,      0.83591005,     -0.98913634,     -0.12544378,     -0.13735294,       -1.104246,      0.77813355,     -0.92367209,      0.19321465,      0.55525324,       1.1476739,       0.3662944,      -1.5561612,      0.92494138,      -0.5029101,      0.99025275,      -1.7334515,   -0.0056843372,    -0.046704645,       2.2342236,     0.097494936,     -0.22250357,     -0.11110087,      0.20000548,      -1.0792171,       0.3675354,      0.14834251,       1.1975591,      0.11787863,      0.84752037,     -0.99301746,      -1.0952306,      0.60354518,      0.23090034,     -0.59791341,      0.98392897,      0.74725767,      0.59764058,    0.0094946864,       1.1711918,      -2.3164106,     -0.26366966,      -3.1906226,     -0.03936382,     -0.93075033,    -0.069677356,     -0.89448389,       1.6285469,      0.53969407,     -0.65803748,      -0.1215341,    -0.059597666,      0.40410067,      0.85711336,      -1.2079979,      0.65389834,      -0.3956504,       2.7863988,       -1.080679,     -0.23225857,       1.4997669,      0.33808522,     -0.42718993,      -1.0453875,   -0.0017978204,     -0.34132357,      -1.9656407,       0.2598418,       1.1101012,      0.23720393,     -0.57640556,     -0.23972809,     -0.73729289,       2.7079262,   -0.0088054581,      -1.0761718,     -0.19628047,     0.036494097,      -1.3305785,       2.3990797,     -0.77404891,      0.67028716,      -1.1015358,       -1.297753,      -1.4921266,       1.2254754,        -1.68136,      0.26754944,      -1.4309718,     0.091541273,      0.29695632,      0.99144532,      -1.5638984,      0.29901533,      -1.5189801,       0.1405035,      -1.7368887,      0.72167739,    -0.047301477,      0.55579896,       1.5948925,      -2.6295766,     -0.63873247,    -0.041490537,      -1.3996615,       0.9727919,       1.9543115,     -0.83426433,      0.80357392,       1.7562585,      0.56416484,      0.91525934,      -0.4229032,     -0.46293755,     -0.63085585,      -0.8545314,       1.1398211,     -0.67465197,      0.77378992,     0.080420015,     -0.15911722,       1.0253323,       1.4178595,     -0.34002813,      -0.8500294,     -0.13611182,     -0.56847972,      0.54961686,        1.933399,     -0.49226357,     -0.26568236,        1.676862,      0.28302822,     -0.32587151,      0.05581847,      0.43137695,        1.143252,       1.1707389,       1.3293235,      -1.3542882,     -0.49564365,     -0.94742523,      0.97821539,      -1.0116183,    -0.071234826,       1.7298777,      0.33683745,     -0.78802411,      0.64310432,     -0.37404859,     -0.12337025,     -0.80716431,       0.2831522,     -0.76216442,     -0.48901249,      0.23406576,     -0.68932738,       1.6364339,     -0.19356039,       -0.232888,      0.64838365,     -0.58437731,       0.4680324,      -2.2640368,      -3.1292834,     -0.30539317,    -0.006783286,     0.029434674,      0.83551912,     0.046393999,     -0.35003136,      0.25218725,      0.46755719,       1.2163092,      0.98470052,      -1.5005254,     -0.61396786,      0.23633379,      0.07174394,      0.60659689,      -1.2550324,      0.86177639,     -0.34692764,     -0.84101054,     -0.41933901,       -1.688208,      0.13615609,       1.1844215,     -0.47061347,     -0.73683008,     -0.70178393,      0.50114256,      0.35965998,      0.92133683,    -0.082711982,     -0.58728242,      0.51099052,      0.23266496,      -1.2080409,      0.34745503,      0.38205052,       1.3061069,      0.78376973,     -0.88253117,       1.6043225,       1.4764411,      0.12060646,       1.2958107,     -0.70537995,        1.071884,      0.41864546,       1.4947099,       1.4621291,      0.16955018,       1.8540459,     -0.33692447,     -0.47377597,       1.2040085,     -0.76190561,     -0.77982213,      0.89166522,       -0.477511,     -0.51556406,     -0.42773048,       1.3245637,     -0.26657626,      -1.1548703,      0.12259498,      -1.5213325,       1.0620646,     -0.98317579,     -0.47207414,    -0.044510725,      -1.6429339,    -0.023635009,      0.24086198,      0.39603991,     -0.31092367,      -1.3244596,     -0.12009641,     -0.55160805,       0.9087541,      0.10716378,      0.96121945,    -0.036617347,     -0.66070209,      -1.2060062,       1.4660114,     0.036798982,     -0.63262355,      -1.2406638,     -0.11486496,      -1.6091997,      0.93438332,     -0.43758595,      -1.2004911,     -0.88423062,       1.3184661,      0.86267592,   -0.0064060698,       1.0487231,     -0.52805763,      -2.2157998,      -1.5181828,      0.99939931,      0.43173065,       1.1967949,     0.081040518,      -2.3921991,      -1.0023832,     0.094647495,     -0.67748152,     -0.59014168,       0.3400263,      0.95097856,      -0.4412376,     -0.56015485,      0.16171837,       1.2515103,       -1.650803,      0.17734211,     -0.27092644,      0.98929296,      -1.3875533,       1.0939066,     -0.85539716,      0.18180724,      -0.1337897,       1.2668339,     -0.84683193,     -0.51600817,      0.55759728,      0.33204156,       0.8089102,     -0.63907434,       1.5419174,     -0.14652453,       2.4062784,       1.6879564,      0.96028372,       0.1427457,      0.74807764,      0.39073296,       0.1548749,       2.6487978,     -0.36965287,     -0.18275785,      0.11713772,       -1.107186,      -1.3519115,      0.19695271,      -1.5788305,      -1.6846575,     -0.99860219,      0.50069494,      0.41905174,       1.0229627,      -0.5253442,      0.15899816,     -0.53287471,      0.86778109,       1.4408617,      -1.1574237,      0.39800026,       0.3492363,      -1.0348276,    -0.020307754,     -0.60036322,      0.47424843,      -2.3741923,     -0.52224818,       -1.133606,     -0.34772693,       0.5598793,     -0.57774035,     0.094638728,     -0.99792947,      0.15582678,     0.034561107,      0.54341804,       0.4339854,      -1.1065052,      0.32792157,       2.0487438,      0.57394206,      0.61251839,      0.91209104,     -0.81527908,      0.74799163,     -0.81265282,      -2.3402815,      0.36057966,      0.43265219,      -1.5073563,       0.9518657,      -0.9524841,     -0.51812446,      -0.1645032,      0.30841549,       0.1530017,     -0.77318719,      0.48338645,     -0.19604862,     -0.91121243,      -2.2372641,      -1.3118033,      0.29609212,       1.3998739,      0.59383524,     -0.69507472,      -1.1899339,     -0.33099563,      0.06492514,      -1.4802533,        1.342243,     -0.70017495,     -0.23319096,      0.39145598,      0.56009689,     -0.25327145,      -1.9647389,     -0.92249256,       1.3142733,       0.3861632,     -0.82851059,      0.21010846,      0.36710261,     -0.81785818,     -0.30029796,     -0.23033757,      0.38867026,     -0.67558937,       1.1172355,       0.7139452,      -2.1678292,     -0.10479585,     -0.52360763,      0.27457387,      -1.9021578,      0.84871615,      0.28811216,      -1.7299229,     -0.74398319,      -1.7009402,      -1.3032064,       2.7161621,      0.82743768,     -0.82618773,      0.11928674,      0.99577038,     -0.91831526,       1.3839832,      -1.3254493,      -1.1197999,       1.1349799,      0.59725799,      0.40171759,     -0.39039833,     -0.26175928,      -0.8703121,      0.25178071,     -0.45621765,     0.040830958,       -1.161063,      0.91033505,      -1.2775622,     0.048580732,       1.9117802,       1.6005298,     0.043458401,     0.032862184,      0.40421571,       1.1173485,       2.0101924,       1.0726254,     0.012830427,    -0.054178764,     -0.50812212,       0.9106524,       0.9520721,     -0.58007974,      0.21809364,       -2.087914,     -0.89603081,       1.2724058,     -0.26867432,     -0.89919382,     -0.47034975,      0.74614308,     -0.15993263,     -0.21829891,     -0.27011231,        1.330091,      -0.5874106,      -1.1404859,       1.1084438,      -1.1947165,     -0.15288637,     -0.70303869,     0.023810929,     -0.43887351,    -0.097634815,       2.4716764,    -0.030316764,       -2.706344,       2.1551796,     -0.27538932,     0.040166997,       1.0294456,      -1.7937178,     -0.59030393,      0.94892228,      0.44196992,       0.5348437,      -0.1524696,      -1.1545346,      0.29818344,     -0.01639263,     -0.96556059,      0.96245525,      0.28680584,      0.46862363,      -2.2450255,      -1.0751134,       -0.360335,      -1.0708863,     -0.77191569,      0.35030376,      0.19146965,      0.79287669,      0.42706514,       1.0289972,      -1.1959507,      -2.0378408,      0.44082806,    -0.074645376,     -0.63964807,     -0.83398622,       1.7818295,      -1.8816453,     -0.82371745,     -0.28036171,     -0.47684622,      -1.3361768,      0.88185248,      0.62024512,      0.40016942,     0.061153013,     -0.71902745,      0.67290974,      -1.1002049,      0.76405999,       2.1149325,       2.3242432,      0.42664177,      -1.6069922,      0.25361627,     -0.27091955,      -1.2665538,      -1.4809328,     -0.29041151,      -1.6319167,        -0.37583,      0.83526112,        2.359161,      0.57674896,      -1.1615551,      -2.0071026,     -0.46558265,      0.92169791,       1.1005038,     -0.80178136,       1.2862301,      0.41049171,   -0.0068358731,     0.019607619,      -1.5161135,       1.3511656,       1.1575522,     0.011038417,     -0.70436387,      0.49773383,      0.23184365,     -0.17173516,       1.4315523,    -0.078717665,     -0.36073597,     -0.25856337,     -0.78844087,     -0.21440212,      -1.0847734,     -0.43424393,      0.68316395,      0.72584083,      0.81205758,       1.5234879,     -0.39514743,      0.84058006,       1.9335416,       1.0208171,       -0.143398,      -1.0571948,      0.12885903,     -0.89284273,     0.077908081,       2.4714736,     -0.19556676,      0.44793967,      0.67135226,    -0.029042261,      0.37191556,     -0.66034372,      0.36787635,      0.82773018,       0.8733625,      -2.2227341,       1.9206038,     -0.54757879,     -0.44073797,       1.8572919,      0.66239606,       0.6415204,      -1.3266757,       -1.473286,      0.15490103,       0.1803307,      0.43769673,     -0.79846802,      -1.3108812,      -1.0791983,       1.4545747,      0.94266765,       0.6037247,      0.42890542,      -1.1407905,       1.6981611,     -0.40381387,     -0.16754653,     -0.14207139,     -0.33346691,   -0.0032147924,       -1.553808,       1.7380481,      0.61927459,     -0.58745438,     -0.76274891,      0.44963627,       1.3501486,      0.16941052,     -0.70818978,      0.22577618,    -0.043072601,     -0.18921569,      -1.7538201,      0.55670368,      0.11326259,       1.2561886,     -0.98672108,     -0.18610986,      -1.8979639,      -1.4611881,     -0.44082032,     -0.44550915,      0.60296672,       1.2787566,     -0.19953447,     -0.55015388,      0.54511857,     -0.49353188,      -1.4680417,      -1.0774015,      -1.5303111,      0.29650757,      0.96164505,      0.34230632,      0.68561066,     -0.41502261,        1.024938,      0.45393041,      0.86245965,     -0.33232498,      0.65221779,        1.414153,      0.96002908,      -1.4129371,       1.4190649,       0.2678814,     -0.79042929,     -0.50941464,      0.23658286,      0.53052891,       1.3401161,      0.15887805,       1.4743578,       1.9866634,      0.81971007,     -0.20315481,      0.44431477,       0.1807215,     -0.37177226,     -0.45553517,      -1.0392021,       1.3176997,     -0.39500627,       0.1916936,      -1.0818855,      -1.5528944,      0.72028562,      -1.0937769,       1.9741339,      0.31662518,     -0.24962253,      -1.2759557,       -1.577901,     -0.16260308,      -1.2407309,       0.5965973,     -0.16172233,    -0.049609281,      -2.1494314,      0.16914082,     -0.95502382,        1.031408,      -1.5245841,      -1.2655308,      0.40496852,       2.3586506,       0.7006526,      0.18717363,     -0.90297458,     0.047718678,       1.5496357,       1.2635304,      0.28407505,      -1.1959727,       2.1045834,      0.09349086,      -1.8114963,      0.25019023,      0.69600028,       -0.766047,       0.7658975,      0.38414265,       0.8117892,      -1.1341473,      0.98806542,      -1.0613779,     -0.95935038,       -1.792203,      0.79736268,     -0.10235965,       2.3183704,      0.44502936,      0.65053933,     -0.03030463,     -0.18263518,     -0.19700316,      0.26769935,      -1.8588117,      -1.2746466,     0.083380916,      -2.7941728,      -0.3591023,      -1.1523078,      -1.6146002,      0.40382191,      -1.6358352,       1.5426227,      0.77261996,      0.69007418,      0.31759958,      -1.1514334,       1.3876536,       1.0596312,        1.271134,      0.28532455,       0.2125174,       1.1738723,      0.48344553,      0.17671036,     -0.97130575,      0.55420706,      0.66911317,       1.2447211,     -0.90930018,      0.69322879,      0.86233225,     -0.78337215,      0.85557319,       1.1913369,     0.074492635,    -0.045971677,     -0.39876346,      0.50673077,       0.3635861,     -0.49685509,      -1.1776178,       2.1715884,     -0.19722834,    -0.055110483,     -0.15589708,     -0.39542275,      -1.6643279,      -1.0632019,      0.33123145,     -0.26133965,      0.27712802,      -1.7111592,      -1.1625133,     -0.17038845,    -0.046038856,      -1.5122322,     -0.34025196,     -0.27100427,     -0.93708123,      0.17506568,     -0.33519593,      0.69697789,      0.71376602,       1.1264226,       1.2404692,    -0.091612401,      -1.3924012,     -0.81722685,      0.68746375,      0.92852598,      0.14820497,      -1.3038795,      0.63112043,     -0.26396492,     0.065279532,       2.9298126,      -1.0488978,      -1.0805505,     0.079280392,       0.1356344,      0.23711464,     -0.73193653,     -0.55670931,      -1.4426477,     0.067799562,      0.38619385,       1.1514004,      -1.3462379,     -0.70171871,      -2.0248813,      0.82481268,     -0.99148814,   -0.0073075333,       -1.560698,      -0.5155269,     -0.92800912,     -0.12918303,     -0.16487555,     -0.77118985,     -0.22233951,      0.95820396,       -2.087221,      -0.2651649,       2.0436528,      -1.3799603,       2.8561703,      -1.5155665,       -1.701906,     -0.75374195,      0.10955975,       1.8230243,   -0.0036891672,    -0.034614716,     -0.55588156,      -2.8542859,      0.52110906,     -0.39186004,      -1.0453997,      0.12484073,     -0.58373143,     -0.13716055,     -0.38826075,      0.56320342,       1.9000117,       1.8601424,      0.73995551,       1.3663475,     -0.53669477,     -0.67833867,       1.1667874,       2.4416716,       1.6929308,        1.045739,      0.76408806,      0.68687464,      -1.0389132,       2.4112801,     -0.67714314,      0.80200894,     -0.91084057,      0.77482091,      -1.4228967,      0.77447067,      -1.0122409,     -0.60603045,       1.2274742,     0.055010866,     0.032180305,       1.0407875,     -0.46176602,      0.30992776,      0.91765086,     -0.98560406,      -1.0178477,      0.37741053,     -0.75032352,     -0.75644148,     0.052552031,      0.17849309,     -0.99867995,      -2.0410102,      -2.0366377,       1.6297992,     -0.71046995,      0.40476831,      -0.6355565,      -1.8576925,       0.8645031,     -0.12425593,        2.302543,      0.21272862,     -0.65478034,      0.47357892,      0.41171413,      0.43205814,      -1.5385165,     -0.79301945,      0.51447924,      0.82005647,       2.9728586,      0.22469992,      -1.4064986,       -2.347159,     -0.41839387,      0.52321131,     -0.13685038,     -0.62033874,       1.4233976,       1.6169314,       1.1709214,       1.4490613,      -1.3376759,     -0.35102226,      0.24340761,     -0.30681125,       1.3758371,       2.3410149,     -0.40618552,     -0.18712236,     -0.32585704,      -1.6785122,      -1.1558627,     0.044545488,       0.7535398,       1.5949009,      0.38908444,      -1.5845225,     -0.20467573,   -0.0066213674,     -0.50752998,      0.17421803,      -1.7142759,    -0.020239275,      -1.2964912,       1.3393139,       1.1324069,      0.88498265,      0.57101006,     -0.22437387,     -0.22834913,     -0.96966227,      -0.9183833,       1.0557586,       0.7700885,      -2.9725371,      0.75179422,       1.4369795,     -0.29609849,       1.3372551,      0.10475845,      -1.5025759,      0.54040212,    -0.013795497,      -1.3867462,       1.9797662,      -1.2028712,       1.0950491,       1.2908113,       1.6217385,      0.62290486,      0.22309367,      0.15399342,    -0.016461955,     -0.80616186,       1.6066137,      0.54319172,      -1.4890987,       1.2165929,       2.1485447,     -0.42933161,     -0.52410957,      0.55475882,      0.25693196,      -1.4664211,      0.27809354,      -2.4336748,     -0.71503527,        2.217274,     0.098956073,     -0.88057062,      -1.2733882,     -0.99195536,     0.029777458,      0.36444196,      0.15734563,     0.072152325,      -1.6400344,      0.41631034,    -0.043534015,      0.63312469,       1.0078816,      0.46434858,       1.5836639,       1.0405918,       0.7983966,      -1.4745745,      0.25988548,     -0.55107827,     0.096952106,      0.88374098,       -1.655564,        1.073397,     -0.54876797,       -1.067999,      0.50369452,       2.9414073,     0.022292266,       1.4506816,       1.0149171,     -0.85125975,       1.7759075,      0.15758954,      -1.0265203,      -1.2523627,    -0.065429581,      0.63525941,     -0.22571592,     -0.34228972,      0.34544713,      -1.8814119,      -1.0069676,     -0.42577004,      0.84357915,      0.54150246,   -0.0054176455,      -0.3672669,     -0.45416563,       1.7822541,      0.26330656,     -0.46997212,       2.2486426,      0.14503708,      0.69606923,       1.4550377,      0.85274862,      -0.1916032,      -1.2793148,       1.3152682,       1.4646255,      -1.0651208,       2.2281833,      -2.0399956,       1.0574884,       1.0920099,       1.7081754,      0.45288512,      0.81575332,      0.93706263,      -0.8375217,       0.4526379,      -1.2922658,      -1.5085125,       -1.170534,      -1.4492293,      -0.4571169,       1.3882444,       1.8824749,       0.7575414,     -0.73449784,     -0.94768891,    -0.027035379,      -1.1689043,      0.12808879,     -0.13244525,      -1.5535109,      0.34213876,      0.38311559,     -0.11116463,      0.12670632,       1.2344276,      -1.0574082,     -0.64781399,     -0.78355301,       1.0759267,      0.28552868,      0.30513749,      0.25723762,     0.091742885,     -0.99951666,     -0.93645535,      -1.0542748,      -1.3733297,      0.43704539,        2.604755,     -0.87806286,      -1.7744228,      -0.6707447,       1.0103063,     -0.04078673,     -0.10559978,      0.76432387,      0.99736837,       1.2267977,      0.78026629,       1.0172192,     -0.85286007,       0.2905121,     0.026833854,       1.1927676,      -1.4422011,     -0.88017097,       1.4934323,     -0.57645279,      -1.5241403,      0.49445631,      -1.4884879,      -0.4106484,      0.12090547,       1.0316308,       0.2609886,       1.4834463,       0.4901229,       0.4126639,      -0.0638819,     -0.40628616,      0.41058497,       1.7426345,      0.63136653,     -0.64333288,       1.6260044,      -1.3494782,       1.3375486,     -0.84050419,    -0.023847737,      -1.6541823,     -0.34869829,       1.9786012,      0.13127901,      0.49164486,    -0.027595846,      -0.9154404,      0.63975477,       0.5500266,     -0.29786011,       -0.361371,      0.84367612,       1.1196864,      -0.4214293,      0.52056132,       1.0404914,      0.48679974,      0.74739035,      -1.1017914,       2.0840709,     -0.46736296,    -0.096652694,     -0.78028707,      0.90780912,      -1.1553021,       -2.133575,       1.0454287,      -0.5345503,      0.63446455,      0.72872836,     -0.35500692,      -1.2402426,      0.51439013,     -0.64327724,       1.4864742,      -1.3258885,      -0.4996713,      0.56683601,      -1.5049181,    -0.064454023,       1.3508223,      -1.2693311,       1.1533137,    -0.088775906,     -0.22931153,     -0.51461485,      0.75224085,     -0.91877772,       0.7653115,     -0.34068333,      -1.2433361,     -0.74722097,       -1.653524,     -0.46618841,       1.1171984,      0.38153327,      -2.2561557,     -0.63067737,     -0.68328675,       1.1360544,      0.99390782,       2.6098877,      0.26467346,       1.1146227,      -1.3388762,     -0.50627884,      0.92758455,      0.28481959,      -1.3303676,    -0.057562076,     -0.50873897,     0.038666574,      -1.6265878,        1.562586,     -0.98643351,      0.51099652,      0.24960149,       0.3447172,     -0.56221751,     -0.48089687,     -0.39381358,      0.35675394,      0.36230993,      0.18386286,      -1.2361769,    -0.019759296,     -0.36823364,       1.4717397,      -1.6686086,     -0.47677388,     -0.80442051,     -0.36275564,     -0.16584804,       1.1392943,      0.79236699,       1.2953595,      -1.6108352,     -0.99610242,       1.2368576,     -0.53090737,    -0.089439041,       1.1815203,       0.3431835,      0.17977998,       1.1818331,     -0.78820124,     -0.63916899,      0.78462822,     -0.70904109,    -0.031057056,       1.0638389,     -0.52942661,     -0.15224543,      0.24888084,      -1.0584427,      -1.1053316,       2.1083953,        1.920891,      -1.2676102,     -0.59609474,      0.61847174,      -1.9058677,     -0.34113224,    -0.017901646,     -0.19210649,    0.0072955772,       1.4575142,      0.93964773,     -0.22918072,    0.0046447244,     -0.18793855,     -0.72169689,      -0.4885552,     -0.77570888,     -0.44462256,     -0.46561058,       0.6443721,     0.067106422,        1.392559,      0.37924893,     -0.76938228,     -0.29310998,     -0.84073633,      0.40901378,     -0.74578164,       0.2845479,    -0.032269736,    0.0091151871,      -0.4097549,      0.27766586,     -0.33632045,    -0.061785142,     0.057618451,     -0.85187147,       1.8763414,     -0.32491828,      0.15957382,      0.10277316,      -1.9747339,       1.0197052,      0.58006896,       1.0111775,     -0.33942054,    -0.041808391,     -0.37108112,        -1.95833,     -0.55415199,     0.091736139,       1.2645483,        0.408779,        1.068298,       2.1333331,     -0.66453095,      -1.2547568,    -0.030690372,      0.37965671,      0.80039819,      0.27414374,     -0.91575744,     -0.20424324,      -1.0843458,     -0.12024607,      -1.2276078,     0.028718445,     -0.73832965,       -1.257774,     -0.46154095,    -0.094805393,     -0.64355717,     -0.47676213,       1.3581279,       0.6700311,     -0.21387257,      0.17555616,      -1.6204922,      -1.1543146,      0.12819875,     0.022857056,     -0.74796196,      -1.5589321,     -0.47045955,      0.18168124,      0.98459646,      -1.4756165,     -0.25996037,     -0.53297886,       0.1373887,      0.73431733,      0.87143163,     -0.33367463,     -0.17082789,      -1.0935193,      0.89760309,     -0.24225346,     -0.50303331,      0.68829837,       1.0767936,      0.10883839,     -0.37124429,     -0.90593603,     -0.17556474,       1.2513456,     -0.33635019,     -0.40190473,       0.6528155,      0.89931849,     -0.18839303,     -0.94624048,       1.2818569,      0.43927623,     -0.26929521,     -0.48311091,       1.5317342,      -0.5308855,     -0.10748485,      0.13073485,      0.75712159,      -3.3905031,       1.0856617,       0.4149748,       1.6768814,      -1.9140327,     -0.63881591,      0.58749351,       1.3560928,     -0.76336534,      -2.9759353,     -0.95464244,     0.022011224,       2.2600145,      0.49294257,     -0.25416594,       1.1873229,      0.12871497,     -0.21236895,     -0.89352046,       1.2130178,      -0.4585277,      -1.4009969,     -0.19614643,     -0.83573937,      0.46506111,     -0.21487318,      -2.2660375,     -0.67293787,     -0.82770528,       0.2015015,      -1.4346891,       0.2483949,       1.2334784,       1.5423532,        1.676574,       1.3988154,     -0.28812696,      -1.6333284,      0.69291787,     -0.85959694,     -0.57285086,       1.7283664,    -0.094075452,      0.50126384,       1.1598171,      -1.1532732,       1.1104418,     -0.18936975,     -0.21942556,       1.0022301,      0.38312673,     -0.43182582
+1995Y,     -0.32340677,       1.6454148,      0.61215742,       -1.358295,     0.045990273,     -0.72452761,      -2.0123079,     -0.48330874,      -0.4373096,     0.077174892,        1.172275,      0.82296857,      0.16256865,     -0.28541269,      -1.4433125,      0.15581639,      -1.4239098,      0.32438063,     -0.32202712,      0.80809165,     -0.93177716,      -1.1963528,      0.95330366,     -0.61011261,     0.050122843,      -1.3396908,      0.61813678,      -1.0311173,     -0.51437083,      -1.0959179,      -1.5630382,       1.6324563,      0.90292984,       0.4893331,      -1.9124587,     0.011941042,     -0.74977752,      -1.9387076,      0.57122128,     -0.14638438,       1.0007888,     -0.98138266,       2.0103228,     -0.08932444,      0.66612923,       1.9576223,       1.9280489,     -0.21656086,       1.3940774,     -0.12220371,      -1.0091918,       -1.107779,      0.82969627,      0.37949305,      -1.9969371,     -0.99013752,      0.19718925,       1.3690272,     -0.17219654,      0.67506353,       1.4717424,       1.1127317,      -1.2025627,      0.77047645,     -0.20534937,     -0.29526708,     -0.49156373,     -0.72511139,      -1.6048518,     -0.51507347,      0.49593185,      0.37496836,       1.8221105,     -0.76125804,       2.3039504,     -0.65651912,      0.26226278,      0.35300943,       1.1037269,     -0.25283693,      0.10149419,      -2.1168248,      0.33799422,       1.1358364,      0.58531318,        1.632016,     -0.14524286,     -0.45877922,     -0.98897777,      0.20984058,     -0.20108505,      0.19316977,     -0.87743686,       1.4287629,     -0.93345463,     -0.39980767,      0.95145608,      0.52565161,      0.88607503,      0.36485508,     -0.89629094,     -0.40055248,      0.85531836,      -1.2282804,       1.9502655,     -0.74421787,      0.26290705,     -0.41109659,      0.94844964,     0.068765202,      -1.2274004,      0.95819568,      0.13621889,        1.795573,       0.9212559,     0.082123411,     -0.23101946,       1.1090837,      0.54518175,       2.2573654,      0.33376461,      -1.0517664,       1.4680538,      0.18392895,     -0.81788328,      0.92345989,      0.18500451,      0.16658034,      0.24112807,       -1.882463,     -0.79675575,    -0.071302848,      -1.5071599,      -1.6406137,      0.92450891,      -0.2048552,      -1.1874959,        0.300175,     0.048509917,        -1.02807,      0.25142342,     -0.79314339,       1.0641723,      -1.2899318,      -1.2185193,     -0.47539966,     -0.50922052,      0.82359311,      0.40320238,     -0.37004567,      0.11357083,       1.7270072,       0.4266746,      0.23078032,      -0.8582597,      0.66847732,       1.0565145,       1.9180126,     -0.15804324,     -0.21589754,     -0.35383867,      0.69131327,      0.51611339,     -0.97638212,      -1.0256304,     -0.36939549,      0.68711714,      -1.0539173,       -1.417133,       1.5333873,     0.086179252,     -0.24994344,      -0.1092972,       1.5064944,      0.80638263,      -1.0823497,     -0.66759496,       0.5852832,      0.88480194,      -1.2131107,      -1.2700538,       1.0959949,     -0.48354438,      0.27792925,      0.53116387,      0.11798742,      -2.0190083,      -0.3553149,       1.1198263,      0.22205362,     -0.28996272,       0.3030916,      -1.1629013,     -0.69676765,       -0.779332,     -0.56071429,     -0.77306663,       1.3850266,     -0.70492077,       1.0340884,     -0.88648125,      -2.2111929,     -0.23060485,      0.82974512,     -0.79290223,       1.0992303,     -0.57407959,      0.90784508,       2.0561489,      0.24750243,     -0.28156867,    -0.011839907,       1.0227493,      0.16393094,    -0.081740291,     -0.56568988,      0.33736747,      -0.7583877,      -1.3326466,     0.080714409,     -0.60857786,     0.088858274,      0.43057944,      -0.3971489,     -0.45725347,      -2.0891484,      0.11002186,     0.054430774,     -0.88553415,     -0.02878836,     -0.12782602,       1.0157067,     0.068413411,     -0.88749994,      -2.9522274,      0.27521588,     -0.22899387,     -0.95919351,     -0.97716411,     -0.17866902,       1.5982528,       1.2706575,      -1.9811351,     -0.72171951,      0.20579658,     -0.63155216,     -0.17210307,      0.12522645,     -0.88825915,     0.001168865,    -0.039247898,       0.8083166,      -1.6073425,     -0.42772325,      -1.8593915,     -0.36672446,      0.67550119,      -1.1751779,     -0.12575348,      -1.6751566,       1.1420098,     -0.15486247,     -0.15887232,     -0.12560159,      0.50693588,       1.3998948,       1.1944839,     -0.16790902,      -1.8456905,     -0.67889728,      -1.1695833,     -0.22467596,     -0.27772089,     -0.13960497,     -0.43628004,     -0.45837607,       1.8681688,      -1.0026215,      0.28823436,      0.42442464,      0.36511187,       1.7344408,     -0.30695651,      0.74374625,      0.34082665,     -0.13171646,      -1.3735013,       1.2209517,     -0.22481389,       2.7553148,     -0.48392246,      0.70073315,     -0.98486545,      -1.2058667,      0.92044488,     -0.31920374,     -0.16549837,      0.68876901,     -0.71403167,      -0.2236322,      0.52239228,      -1.2556422,      -2.4492449,       1.0140375,     -0.67997395,     -0.14568696,     -0.66091449,       2.1821449,     -0.38522954,      -1.3398488,      0.77944169,      0.96217658,      0.55594638,        0.215736,      0.95199752,     -0.83470299,      0.24541423,     -0.89849534,     -0.64369087,     0.053891038,      -1.3862656,     -0.99605479,      -2.2658768,     -0.18263714,      -1.9588583,      0.23210969,       2.3963762,      0.23616183,     -0.27804734,       -1.161426,      0.60524163,        1.309139,      0.18979815,     -0.20211482,     -0.91663453,      0.26956233,      -0.9371853,      0.25956773,      -1.0204762,      0.39373433,       2.8424435,      0.49171307,     -0.74415271,     -0.69480277,      -0.0984694,        1.500647,     -0.40344905,     -0.20934067,     -0.41158898,     -0.73918545,     -0.32006009,       1.0645984,       -1.532097,      0.42610497,     -0.15868315,      0.61701202,     -0.77782542,      -0.2678715,     -0.04323133,      -1.0041442,     -0.73943824,    -0.011573257,       1.0104371,       -1.414723,      0.04605927,      0.53861634,      -1.1225424,      0.94474672,      -2.1618333,     -0.18584361,     -0.22593583,      -1.8768356,      0.54965869,       2.1392914,       0.1781197,     -0.89964659,      0.49676166,      -1.1677323,       1.1449059,     -0.53539062,      -1.1120748,       1.2995853,      0.70229769,     -0.40755132,     -0.20310888,      0.16437425,       1.2074325,      -1.3446381,       1.3486958,     0.076788669,       1.1249312,      0.95522838,     -0.55081689,      -1.4444288,      0.76836013,     -0.78348601,     -0.34668417,       1.2862248,     -0.71066645,      0.10801614,      0.51238105,     -0.22245176,      0.73195347,       1.9075299,      0.56248532,      0.42035149,     0.090750689,     0.079020459,       -0.258716,       2.2129817,       -0.471623,      -1.3397183,       1.1307166,     -0.24048131,      0.28202031,     -0.11908805,     0.043381565,     -0.27213196,      0.70469035,      0.32411973,      -1.2823437,      -1.3735324,     -0.29809558,      -1.8497092,     -0.49214746,      0.36505174,    -0.080777247,     -0.29537327,       1.2780672,      0.17690914,      0.31740836,      0.56852576,      -2.4132609,       0.1077702,    0.0043761807,     0.021971847,     -0.96638638,      0.53407235,       1.1074951,      0.36037205,     -0.86139383,      0.78589098,      0.29676727,      0.38536996,     -0.57751489,      -1.4216205,        1.012635,      0.29101314,       1.3986066,      0.98823813,      0.71798998,      0.62725889,     0.028037442,       1.5580452,     -0.66022527,      -1.3479018,      0.65713522,     -0.90097192,       1.6285351,    -0.022077059,      0.77054587,       1.3387361,      0.43671946,     -0.72878167,      0.23664819,       1.7602403,       1.0513712,      0.69481382,     -0.29871767,    -0.096332111,     -0.64761892,      -1.6628215,      0.73944585,       2.1484494,     -0.96488068,       2.2639157,     0.005750606,     -0.88295574,     -0.34691731,      0.95307697,      -2.7850704,      0.85241702,     -0.27421673,     -0.73283863,      0.40376957,       1.6027638,      0.17505688,      0.10681577,       2.0389619,      -1.7082697,       0.1284731,      0.52035073,      0.81277081,       1.0896916,     0.098191962,     0.068128614,      0.29006352,       1.0443548,       -1.379465,      0.29172791,     -0.37428668,      -0.6741025,     -0.59183365,       -2.019878,     -0.55294241,     -0.11932233,      0.89449568,      -1.7798077,     -0.60629029,     0.046179839,      -0.4685653,       1.3478878,      -1.3920036,      -1.6304245,      0.97331756,      0.65117957,     -0.69138166,     -0.51601816,       0.4358591,     -0.10306555,      -1.3779931,     -0.87152114,   -0.0069774876,      0.10126462,       1.1849062,      0.26006826,      -1.1113867,      0.61614343,      0.98135521,     -0.30956646,      0.66195638,      0.33057871,      0.97811225,      0.38329266,     -0.38173496,     -0.34734296,       1.0087846,     -0.91615058,        1.754478,     -0.43628108,      0.15147603,      0.46346865,      -1.7643775,     -0.56123685,      0.47235461,       1.3536909,     -0.80079364,      0.56775106,      0.85661811,      0.92937477,     -0.58689091,      0.29876551,      0.72919707,     -0.93324153,     -0.99991664,       0.1602924,     -0.53917804,     -0.27475135,      0.25314249,      0.30605045,     -0.51436395,       1.7516048,      0.44679436,       -0.611434,     -0.72752751,     -0.53059471,      0.68467627,      0.29984671,      0.37350699,     -0.53897558,      0.36931338,    -0.036727721,      0.53159159,       1.2404044,      0.84997413,     -0.51086291,      0.51628199,      -0.5917946,     -0.75863206,    -0.067382399,      -1.0450662,      -1.2534216,      0.75528537,      -1.0493416,     -0.11101929,     -0.81077931,    -0.014620577,     -0.11551395,       1.8170104,     -0.71431423,     -0.76257083,     -0.45491794,      -0.5292725,      0.48327547,      0.71723876,        1.180895,        1.228568,      0.35185096,     -0.20181894,      0.43054972,      -1.2271602,      -1.7510732,       1.0172776,     -0.99568299,      -1.1185478,     -0.77800378,      0.63990594,      0.13452904,       1.1625391,      -1.7208457,     -0.60624223,       1.3775647,      -1.5648761,      -0.3910377,       -1.443642,     -0.34843417,      0.40635923,      -1.0938247,      -1.4532878,      0.89321114,     -0.75055203,      0.41729976,        1.449206,     -0.87063356,        1.064665,       1.9945904,      0.71975241,      0.25968026,      0.24923002,      -1.2229934,       -1.457449,      0.32822154,     -0.34549403,       1.2528091,     0.062431277,     -0.13595139,       0.9297736,      -1.7975261,       1.2031782,     0.083955584,      0.95957956,      -2.3807516,      0.68158345,       1.4556013,       1.6094142,     -0.21039922,      -2.1597502,     -0.02063659,      -0.0901884,      -1.2993719,      0.63614625,       2.0272177,      0.66391368,      -1.1062965,     -0.26884244,       2.3816269,      0.59635439,       1.2618586,      0.59520951,        0.925721,     -0.64557163,     -0.36694191,      0.24236707,     -0.34953672,     -0.36851943,       1.2715367,      0.49469087,       1.1450154,      0.58605899,      -2.3975828,      0.96519882,      -1.4697373,     -0.66080718,     0.031215205,       1.4137859,     -0.26965574,        1.640797,     -0.34808401,      0.49660525,      0.18542046,      -1.7783524,      -1.7615704,      -2.6947877,      0.51177964,      -1.0704056,      -1.2710267,      0.46387246,      0.29194885,       2.6689156,     -0.28119981,      -1.7196568,      0.41887826,      -1.0546905,      -1.3647199,    -0.050621506,      -1.1481676,    -0.053302551,      0.72075602,      0.50312762,     -0.32631563,      -2.4285438,      0.66778055,      0.74287106,    -0.094853442,     -0.32001703,     -0.13880388,     -0.93646295,      0.29076853,      0.43575866,     -0.68538329,     -0.03176066,       1.6748497,      0.32996346,       1.3922574,       2.5629026,      0.44199735,       1.8020413,       0.1175723,    -0.085569534,      0.20402662,     0.053332678,      -1.1416344,      -0.9415467,     -0.86749294,     -0.47076609,      0.50021566,     0.034219633,      -0.0732613,      0.64972217,      0.53535607,     -0.36780778,       1.4006525,      0.24190966,       1.7115015,      0.62310738,      0.27211002,     -0.65833962,       1.6615704,     -0.39601314,     -0.83968708,      0.91098517,       1.6835754,     -0.52006681,        1.677431,     -0.50486627,      -0.5614448,      0.29597167,       0.5356686,     -0.67670205,       1.0088425,       -1.575813,     -0.39763839,      0.88746634,       1.8563993,     -0.82604613,     -0.30503013,       2.1289235,     -0.33050055,      0.26891807,      0.77730293,       -1.073243,     -0.76839478,      0.80113909,     -0.97541068,       1.3879394,     -0.37015383,       1.0705561,     -0.38143836,      0.57796999,      0.75256164,     -0.54495488,    -0.052278795,      -1.7416126,       1.4796474,     -0.52975478,       1.4673032,    -0.065700258,     -0.21926449,      0.21620971,      0.18022564,     -0.80456072,       1.0486591,       0.3530593,     -0.24645637,     -0.15249166,    -0.017048846,      -2.4592492,      0.56510469,     -0.65765222,     0.062155748,     -0.66910384,      -1.4121716,      0.74388839,      0.37154606,      0.25248301,     -0.86323281,      0.92477811,       1.7692829,        1.578073,      0.42862598,       1.8016136,     -0.25952375,      0.64445844,      -1.5054066,      -1.9031779,       1.4516174,      -0.5219387,       1.3143281,       1.1875548,      0.75502891,     0.013468457,     -0.76573742,      0.59144016,    -0.027180763,       2.0262259,      0.48235013,    -0.069753978,       1.6114602,     -0.27443433,      0.10400218,     0.031190293,      -1.2300405,     -0.30779007,     -0.77607112,    0.0055021047,     -0.55853348,      -1.0429983,     -0.26870034,     0.013961368,       1.6245445,       0.1618084,      0.41237154,       1.6051678,     -0.02990216,     -0.21802923,      -2.0463664,     -0.56307027,      -1.5748653,      -1.2142033,     -0.68066275,     -0.32505414,     -0.54785844,      0.23729206,       1.5434323,     -0.42953377,      -1.4465536,     -0.42727501,    -0.084337134,      0.74076393,      0.16583044,       1.1763652,     -0.19018741,     -0.47427943,       0.1678836,      0.49766587,      0.84076345,       2.0789988,     -0.62616046,       1.0180153,     -0.60960393,     -0.98885117,     -0.18754763,      -1.6233222,      0.11785688,      0.98237693,       1.4406702,     -0.55436591,      0.23104927,      0.77268265,     -0.36335279,        1.113499,     -0.34557464,       0.1559174,      -1.2675925,     -0.60461396,      0.60578637,     -0.82801637,     -0.56415721,     -0.98237128,       2.6085903,      0.47973424,     -0.85230796,       1.2945346,     0.062048302,     -0.19887238,      -1.6183632,     -0.55519469,       1.4230718,      0.14752074,     -0.44214186,       1.4722253,       1.4828836,      0.82304928,      0.81182286,     -0.01492381,       1.1962688,       1.0638468,      0.51003968,       1.1159866,     0.099552082,     -0.30398903,      0.31506324,       1.1843151,     -0.92734571,     -0.63419391,     -0.96550569,      -1.5543961,      0.72404834,      -1.0781994,     -0.78748102,     -0.71484974,      0.84694357,      0.05436676,      -1.2297039,      0.42896976,      0.90559477,     -0.71872038,     -0.11079226,     -0.66036666,      0.63398573,      -1.1592086,       1.1487629,     -0.71748876,      0.26806813,     -0.68597998,      0.63406623,     -0.28804569,      -1.5197694,     -0.18148408,      -1.9919701,      0.39082145,     -0.53443183,      0.69539718,       0.1644949,     -0.16735508,      -1.3810545,      0.88659455,      -1.0401914,      0.74919717,      0.63154829,     -0.43083006,     -0.92915283,      0.70260027,     -0.89149254,      0.97357934,     -0.24945879,       1.0199249,      0.68225062,      0.46440547,     -0.35446497,      0.25867813,      -1.5841229,     -0.55397719,      0.64868271,      -0.4771195,     0.078284441,        1.924199,      0.63296808,    -0.096696289,       1.3476517,     -0.35924529,      0.98125685,     -0.58379707,       1.0684516,     -0.34520503,     0.083857344,      -1.0525087,      0.25746551,      0.08446319,    -0.049907073,     -0.17006832,      -0.6201108,     -0.48667087,      0.30148699,        -1.42019,      0.62552139,       1.5256632,     -0.36217123,      0.33492092,      0.66074956,       -1.876066,      0.52457468,     -0.29588329,      0.23800498,      -1.1339589,    -0.088951143,     -0.37349727,      -2.1804665,       1.1769442,      -2.9292947,    -0.048253853,     0.058226276,       1.0045037,     -0.60177854,       2.1938679,       1.0478597,      -1.1246346,     -0.86081616,        2.195513,      0.80997212,      0.87956744,      0.44367359,     -0.43368398,    -0.001425758,      0.21555972,       2.5491832,     -0.47913395,      -0.1060888,      0.60404415,      -0.8811219,     -0.33750945,     -0.31137447,       0.8406095,     -0.14891797,       1.7610333,      -1.1856009,       1.0390363,       1.1581225,     -0.91256052,      0.62816267,      0.86179097,       1.4328202,       -1.145189,      0.33128566,     -0.39953506,      0.33561955,     -0.53992649,      -0.6128197,     -0.46634258,       1.9952833,       1.0125771,       1.5263881,     -0.61745685,      -1.3320148,       1.8847596,      0.36488262,      -0.2465586,      0.42656661,     -0.84095572,      -1.8811383,       -1.146975,     -0.88388708,     -0.70853956,      -1.0064015,      -2.3661524,      0.48814991,      0.33847974,      -1.0762867,     -0.17433416,       1.1644127,     -0.27074484,     -0.69500371,      0.48776593,       1.0351178,     -0.92858189,      0.63519283,     -0.58829929,       0.8951708,      -1.1463184,       1.5554358,       1.1183317,     0.019934763,     -0.67172004,        1.491856,     -0.65887576,      0.97383665,       2.2949013,     -0.60713373,      0.94195553,       0.8525031,       1.2505673,     -0.13036798,     -0.47081627,       1.4402777,      0.96815798,       1.1637024,      0.74116322,       1.5233632,      0.74768513,       1.3801018,      0.16776119,      -1.0675021,     -0.21238496,      -1.4223421,       2.1266258,      -1.6833875,       -1.979791,      0.52847828,     -0.14275355,     -0.49272229,     -0.18988922,      -1.7807316,      0.60062067,     -0.65366306,      -1.3116462,       1.3847128,      0.68964328,     -0.32147475,      0.28732541,     -0.38632759,       1.1671551,       1.8560224,      -1.4328746,    -0.040987845,       1.1143391,     0.041583645,      0.44334373,     -0.46263617,    -0.047087286,     -0.50068782,      0.88572951,     -0.81188551,       1.0093207,       -1.132658,      0.91945084,     -0.67218155,      -1.1433189,      0.90626304,       1.2436137,     -0.34577205,      0.46048858,      0.42304768,       0.3751685,      -1.7037574,     -0.54984101,       0.2172068,      0.77874339,     -0.27133827,     -0.51506993,      -1.4965183,        1.754953,      0.80026912,       1.9775137,     -0.52754709,     0.047539787,      -2.0625385,       2.6161309,       1.2355128,      -3.4942242,     0.058812592,     -0.76784131,     -0.55646282,       1.4891092,     -0.73479568,      0.42271544,       1.4007884,      0.64782964,     -0.95057117,      0.64236122,     -0.45494422,     -0.18577523,      0.98714936,      0.87333038,       1.6921223,      -2.8650989,       -1.389761,     -0.40256844,     -0.14327456,      -1.3275158,       1.1346131,    -0.095689758,       1.4211763,      0.80241551,     -0.14285035,      0.36426352,      0.14789738,     -0.56111954,     -0.94130371,       1.8197802,       1.4388853,     -0.70746284,      -1.5800259,      0.33072352,      0.62597369,       3.6283988,       -1.580238,     -0.10748328,       1.2379345,      0.98535274,     -0.20153574,       1.9918896,     -0.71508237,      0.43704625,      -1.4558792,     -0.31665245,      -0.1040491,       0.1699605,      0.42897696,      0.42366224,      -2.1138523,      -1.8333801,      -1.5937165,     -0.13215676,       1.7023267,     -0.39078605,     0.092852887,      0.13068826,     -0.33409811,      0.17658951,      -2.0330806,      0.87981842,      -1.2865273,    -0.082363331,     -0.23245427,    -0.099094959,       1.1981814,      -0.9043078,     -0.84571695,       1.6568716,      0.14445623,     -0.63542624,      -2.1341885,     -0.86277872,      0.43470229,      0.25311954,     0.018487238,     -0.35889366,      -1.1471078,     -0.83404555,     -0.33898606,     -0.11484551,     -0.13193806,        1.156578,     -0.21942861,      0.11567844,     -0.33611177,      0.15959299,      0.32838949,      0.66056372,      0.28398892,      -1.0444869,     -0.45522389,      0.44067409,      0.25740413,      0.68503085,      0.96556613,      0.46956931,    -0.063631859,       2.5149034,      -0.5665943,      0.18129584,     -0.61105133,     -0.44673817,     -0.92516036,     -0.84279612,      -0.6698214,      0.23525699,     -0.20997532,    -0.055934823,     -0.28620934,      0.76633627,     -0.96538108,     -0.11343314,      0.40019311,      0.63488604,      0.64648022,     -0.15321092,     -0.88589251,      -2.0271486,      -1.0840684,      -1.0047166,     -0.20830843,     -0.42566604,      0.36794965,       1.0675338,       1.5293559,      -1.5619481,    -0.052260345,      -1.4741097,       1.3082251,      0.88214392,     0.092210488,       1.1194015,       1.3679363,      0.13082062,      0.44720821,    -0.038035418,      -1.0776869,      0.48838057,      0.22041613,      0.28694673,      0.86206382,       1.1343962,       1.0349284,      0.59783216,     -0.46952493,      0.55366019,      0.83405014,     -0.85033357,    -0.067235765,       1.9703942,      0.88002548,      0.36861879,      0.11131379,     -0.26366955,       1.3399028,     -0.94289154,    -0.059213404,       -1.127107,     -0.33632981,      0.72044463,      0.41859588,      -1.1712876,     -0.21943205,     -0.60941492,      -1.2308464,       1.1617034,      0.35390679,      0.91482776,     -0.12303767,      -1.3883476,       1.0036358,      -1.1997683,     -0.38275068,     -0.49348171,     -0.26178939,       1.3286496,      0.52947341,      -1.9407551,     -0.49577826,       1.7176751,      0.13835399,      0.50584459,     -0.61459796,     -0.22579038,       1.2620661,      -1.9625877,     -0.14370416,      -1.6171916,     -0.70697747,       2.2868708,     0.023274973,     -0.74538955,       1.0004795,       -1.202688,     0.076144303,       0.9651264,      0.20994476,     0.032604992,       0.9860838,      0.17103437,      0.42181834,     -0.30048065,      0.36848366,     -0.57218026,    -0.097592483,       2.5438657,     -0.84972581,      -1.3602754,     -0.50158184,      0.73298017,      0.44756875,      -1.1255508,     -0.84039344,      0.33881533,      -1.4403648,      0.76670372,      0.12391029,      0.41423495,      -1.2226617,      -0.6973291,     -0.84774999,       1.3137171,     -0.83791669,       2.1442556,      0.28332925,     -0.46462762,      -1.4547312,       1.7495176,       0.9071182,      0.74134479,     0.021468055,       1.1823763,      0.83835343,       0.5318718,     -0.45373495,    -0.031768198,     -0.43870916,      -1.4010197,     -0.75409745,       1.5256982,     -0.33740427,     -0.58378621,     -0.46286553,      0.77841341,      0.70287872,      0.15770726,      0.63830283,      0.56476126,     -0.42741329,     -0.38266548,       2.4149051,      -0.2185336,     -0.84367792,       1.4417298,      0.59075703,       1.0771188,        1.491719,       2.1070633,      -0.5010012,      -0.3179505,       2.3546767,      0.39245649,     -0.75425254,      -1.1007426,     -0.81122598,       0.7474704,      0.63049551,       2.3551889,     -0.79198577,       1.0126606,     -0.20057904,      -1.3790852,      0.47742785,     0.096492215,       1.2555394,      0.21036686,     -0.18422913,     -0.53347521,      0.15767828,      0.26254266,       1.6521087,       0.6633641,      0.25283145,      -2.3896812,      0.24022023,       2.1964838,      -1.0012048,     -0.20961595,    -0.080121076,      -1.4956514,      0.31766971,       1.4996457,      0.72311512,       -1.112519,      -3.0890243,     -0.20379304,        2.741293,       2.6217497,      0.14380332,     -0.24346923,     -0.25650893
+1996Y,      0.20790083,       1.0676704,      -1.2604613,      -2.3875256,      0.88889855,      -0.7641942,       2.3032382,       0.5736821,      -0.1510384,     -0.27906664,      -1.2297231,      0.30415905,      0.41438231,    -0.034049267,     -0.76591558,      0.93858583,         1.16621,      -0.5044718,      -1.0149209,      0.41619947,      0.45612627,     -0.29579226,      0.67391788,      -0.4420029,      -2.2919683,     -0.54287878,     -0.17419482,      0.29138317,       1.7554629,     -0.15821443,       1.1595399,      0.73535317,      0.69363055,    0.0070342203,       1.5147012,       1.5799282,       1.0303957,     -0.15613158,     -0.59741517,      -2.2552274,     -0.31417341,      0.94090993,     -0.60497976,       1.0132977,      -1.4417628,      0.99927096,      -1.1941104,     0.014919553,      -1.0488141,      0.12941576,     -0.75610981,      0.73988282,       1.0394346,     -0.21065248,       1.2820658,      -1.5301377,      -1.0477409,      -1.2199071,      -1.5404049,     -0.46629649,      0.24985211,     -0.10980405,      0.48970268,     -0.49166471,     -0.87609129,     -0.40756113,       1.5032983,     -0.22880957,       1.1454837,    -0.016055747,     -0.99399541,      -1.4495432,       0.6530128,     -0.49093551,       1.4437989,         1.59098,      -1.3346762,      -1.2642392,       1.1544194,     -0.18452669,       2.7222447,      -0.5753452,      0.58970419,      0.72241043,      -0.3350612,      -1.2433217,      -2.2564539,       2.4533767,    -0.059883974,      0.60900128,      0.93329891,      0.46293191,     -0.43470062,      0.78082093,     -0.21432823,       1.1046831,      -1.2778179,     0.073392503,      -1.2683333,      0.51929547,      0.37059656,      -1.7084313,       1.8287719,      -1.1040152,     -0.56958045,      0.18057402,     -0.21308789,      -2.0388545,      0.18199877,      0.87773818,       1.9778145,     0.068869566,     -0.05769883,     0.085978609,       1.7946305,      0.92037251,     -0.93035145,       1.9306661,     -0.16725224,      -0.5183648,       2.0656469,      -0.6545432,      0.60088261,     -0.76105436,    0.0019664411,    -0.067669044,      0.32603095,     -0.92422565,      -1.3673833,      0.70456259,      0.90322357,     -0.79685792,      -1.2151032,       1.3378697,       1.0265196,      0.81563375,     -0.60472666,      0.80157072,      -1.0450382,      0.37817934,      -1.4526451,      0.53779451,       1.9445392,     -0.32056904,     -0.29090818,     -0.31355938,      0.85299963,    -0.076078397,      -1.2022969,     -0.40068447,      0.47454386,        1.132243,       1.7997985,      0.41870762,      -1.2362886,      -1.1594286,      0.75142497,      -0.8514426,      0.17170808,    -0.077487653,       0.6006748,       1.8241684,    -0.028946001,      0.28540857,      0.15301273,     0.026952242,     0.052623146,      0.46792681,      -1.7944337,     -0.51859807,      0.46736123,       1.4506516,       1.4724709,      0.56971928,     -0.66129319,       1.7528288,     -0.28135681,       1.0382855,      0.43959919,       1.6028686,      0.31133004,      0.21635959,     -0.34380293,      -1.5525676,      -0.2406071,      -1.5231176,       0.3346007,      -2.2635859,      -1.0300639,      -1.1036964,     -0.45728656,      0.30310837,      0.30617016,      0.61380724,     -0.74835604,     -0.47161676,       1.4812427,      0.84548674,      0.24283061,      -1.3409753,       1.4416741,       0.4872736,        2.072509,      0.12756687,      0.76399008,      -1.5083938,     -0.63741825,      0.41971012,     -0.76966599,       1.2028701,      0.91723761,     -0.48757813,      -0.3648284,     -0.45758928,      0.46751194,     -0.68596476,     0.085512546,      -1.3130769,      0.95582757,     -0.52028997,      0.36726489,     -0.10788594,      0.43209756,     -0.56227574,    -0.060663853,       1.1540111,      -1.2910396,     -0.99430336,     -0.97489425,    -0.085703777,      0.36849915,      0.60018481,    0.0021248383,      0.32697651,      -2.0910952,      -0.1322253,      -1.0327725,      -2.0495307,      0.28591672,       2.0820487,     -0.61810397,      0.63458976,     -0.65805611,      0.15196916,      0.54979315,      0.98572403,      0.62559066,   -0.0087098949,      0.77427726,      -1.4813103,      -1.6299003,      0.32088013,     -0.68405581,      -1.3481799,      0.97373061,      -0.2120702,      0.13813595,      0.37180083,      0.96673117,     -0.90196596,     -0.29055955,     -0.85316232,      0.39091978,      0.34792618,     -0.53330037,      0.95036999,      0.65648848,      0.43935947,      -2.0975077,       1.3091287,     -0.90804794,      0.61019116,      0.45665739,      0.62051931,      0.63439274,     0.037110287,      0.50291906,     -0.53134546,      -1.2068559,      -1.1275219,     -0.31743126,      0.13612543,       2.2071881,      -1.0810791,       -0.901046,        1.390768,       1.3597542,    -0.037177302,       1.4360986,      -1.6912394,     0.080702814,     -0.46912282,     0.036306507,       1.0494284,      0.48825217,     -0.37053574,      0.10817056,     -0.43742046,     -0.77843822,     -0.25051109,      0.16038163,      -0.8688493,      -1.8705761,       2.2288569,       0.3501955,       0.1060065,       1.3267942,       1.4384596,      0.32445391,      0.16678461,      0.46793457,      -1.4281208,     -0.07357368,      -0.5570122,    -0.081595428,      0.12141781,       1.3688725,      0.50516367,       1.7472573,     -0.31392863,     -0.42402683,    -0.094128441,      0.88143152,      0.52103234,     -0.71740044,     -0.77229798,      -0.3092889,      0.95798227,     -0.28743595,      -1.8620111,     -0.39286159,      0.40310878,      0.43943424,     -0.45791075,      0.34392452,      -1.0032962,       1.5618751,      -2.8046927,      0.23404126,     -0.81928041,      0.35083513,      0.50260089,      -1.3805719,     -0.49373932,       2.1662974,      -1.0254004,     0.045535938,      -1.0773481,      -1.1213185,      0.87248385,     -0.37084887,     -0.34067813,      -1.0699483,      -0.4650868,      -1.8903093,       1.4981407,       1.3602295,        1.649053,      0.34333902,      0.23645457,       1.1540162,     -0.46180899,       0.1774055,      -1.6607275,      0.71654684,     -0.76834294,     0.025968096,      0.52983314,     0.020227413,       1.1626714,     -0.52947417,      -1.3294058,     -0.69707539,      -1.2671853,     -0.14257647,      -1.0464541,     0.014930646,      0.31367475,      -0.6292278,     -0.15901418,     -0.55109887,      -2.5318877,     -0.28209202,     -0.36741593,     -0.50697025,      -1.7420573,      -1.2238651,       1.8431687,      -2.3853914,      0.70818773,     -0.32819179,      0.94713811,      0.72573825,      0.50014708,      -0.9864071,     -0.75632728,     -0.99913752,       1.8844098,       1.5414515,     -0.86102985,      -1.5083335,     0.031436447,     0.084933122,      0.18434182,       1.4255799,     -0.54097598,       1.0990429,      -1.2330479,       1.8415239,     -0.55155779,       1.0625753,     -0.31013364,     -0.75435318,       1.6667958,      -1.4373536,     -0.26797663,       1.0803637,       2.3885182,     -0.51117591,      0.16375726,      -0.8949132,      0.22797291,      0.55551991,      0.62187532,     -0.39855039,      0.92580055,      -1.5026287,      0.28818679,      0.06419078,      0.41034499,      -2.0962609,     -0.51657215,      0.85410996,      0.13066577,     -0.51607696,      0.36747724,      -0.6171392,      0.33709275,      0.45173128,    -0.078575797,       1.6299252,     -0.42386529,     -0.53301087,     -0.36286525,     -0.74622872,   -0.0019128573,      0.40023668,       1.2699144,     -0.75414099,      0.58831137,     -0.95485838,       1.9464147,      0.54661218,       2.3950046,      0.28742013,      0.79122355,      0.45643543,     -0.53498521,     -0.20442545,     -0.49713176,      0.66302874,      0.36361387,     -0.13632085,      0.18171647,       0.2528636,     -0.25097448,      0.44274806,       1.2091923,      0.66977169,     0.061252709,       -0.156243,     -0.18871608,     -0.29873507,      -1.2034772,      0.88040178,     -0.53138411,     -0.78057564,      0.37717119,     -0.28109934,      0.56270175,      0.65256145,      -1.5173194,       1.2377158,       1.1196402,      0.82620061,      0.67940848,      0.83608124,      -0.6739919,      0.16753955,      0.30976414,     -0.83303463,      0.13972817,     -0.20457408,     -0.40333277,      0.32569337,      0.43947181,     0.041558121,     -0.40657514,    -0.035723313,     -0.69335253,      0.12522078,      -0.8600069,       1.0436907,      0.57320276,      -0.6496217,     -0.54698116,     -0.42662121,    -0.069038478,       1.2370701,       2.2211307,      0.18131461,       1.3465667,    -0.052791902,     -0.77951601,      -1.2608137,     -0.25089012,     -0.67733891,      -2.0102938,     0.038529347,      -1.7502882,      -0.4470379,       -1.143931,      0.21907815,     -0.56559866,       1.0983114,      0.66537854,     -0.20503958,     -0.58718408,    -0.039478033,      0.85037504,     -0.63773475,      -2.7692055,      0.41405748,     0.028442743,     -0.23297051,       1.0358447,      -0.3139905,     -0.28866418,      0.34729319,     -0.97288198,     -0.98975488,    -0.077686317,      0.44600836,     -0.52721659,      0.47095404,      -1.3959181,      -0.8282343,      0.20203995,        2.358226,        1.477556,      0.41724273,     -0.69043825,      0.66371317,       0.5009843,     -0.83857659,      0.88536752,     -0.85430158,       2.1921099,      -1.6455173,      -1.1011034,      -1.0470653,     -0.61695552,      -1.8806702,      0.84917162,      0.70497642,      0.73957109,        1.298936,     -0.62522227,    -0.036740855,     -0.25071552,      0.25270082,       1.8704552,      0.33162073,      -0.9974252,     -0.92807068,      -1.2887272,      0.82636825,      0.48463852,       1.1136334,       1.2905527,     -0.16325764,     -0.44942106,     -0.54923141,       1.8088481,       1.1554222,      -2.0551392,      0.38599631,      0.83472331,        1.863498,     -0.24107537,     -0.45455186,       0.6854696,      0.46887471,      -1.1503036,      -0.2335814,       1.6557131,      0.43338582,     -0.63062965,       1.3232946,     -0.24898796,     -0.98379353,     -0.27919069,      -1.4527674,      -3.0416759,     -0.39194327,      0.64637752,      -2.0347409,        0.235439,      0.82441007,    -0.099811786,      -1.7980736,     -0.78029223,      0.55595585,     -0.25297757,       1.2867095,      0.26714836,      0.59635141,     -0.11322954,      -1.4059198,     -0.68747963,     -0.81396302,      -1.4778286,     0.022385975,      -0.6787037,     -0.26281387,       2.4119704,     -0.28020842,      -1.2863583,      -3.1090353,      0.81185027,      0.14524368,     -0.49758427,      0.59744627,      0.74597323,      -1.8352453,    -0.063403756,      -1.6482135,       1.2147658,      0.42668219,       2.5592793,       1.5530118,     -0.21315023,      0.56388576,      0.48994297,        2.319991,     -0.45991081,     -0.82543457,    -0.020857159,      -1.3656981,     0.092908472,      -0.4312045,      0.70893497,      0.10698253,     -0.64173483,      -1.4251781,      0.80333576,    -0.026755498,     -0.77342526,      0.46710009,      -0.4699766,      0.50111589,       1.8789721,      -1.6982477,      -1.2916767,       1.5297014,      0.14028101,     0.088445832,     -0.92311211,     -0.78907425,       2.0412982,     -0.27429584,     -0.71962083,      0.17488359,    -0.059571554,     -0.28965119,      0.43294669,     -0.24748514,      -1.5790988,      0.51736703,     -0.43395267,      0.49091687,     0.058425063,     -0.98355991,      0.51587485,      -1.0796336,      -1.4280858,      -1.5347957,       1.3708085,      0.86071809,     -0.18478934,     -0.54649342,     -0.65801152,       1.1060225,        0.246091,     -0.41970756,       0.2476761,       1.3366422,       1.1331183,      0.02424098,       0.5590966,      0.92050039,      -1.9280307,      0.24768711,      0.07634499,      0.97735628,      -2.0239728,     -0.43872336,        1.337413,      0.56664606,     0.085399705,       0.5973939,        0.645175,      -1.4797446,      0.26898575,     -0.33282888,       1.8190904,      -1.1722078,    -0.052236928,     -0.79053504,     -0.38218579,        -1.60396,      -1.1857006,      0.67643865,      -1.3606229,    -0.031516299,     -0.32554607,      0.87272773,      0.15502787,       1.3701786,      -1.6470041,     -0.64309859,     -0.39800652,        1.901178,      0.87178263,     -0.54993116,      -2.5822242,       1.0776489,     -0.10499268,      -0.6158663,      -1.6295369,      -1.0592111,     -0.56195649,      0.88107638,      0.33763948,      -1.5079087,     -0.90479925,       1.2736379,      0.14571659,      -1.0437278,      0.35907596,      0.50091856,       1.6631982,      -1.0703158,    -0.030064353,      -1.1507752,      -1.2100244,      -1.5603729,      0.61059743,      0.90570905,       2.0708776,      0.78363491,     -0.08871353,     0.042204203,     -0.89795752,      -1.1307876,      0.34180461,        1.372443,      0.71101557,       1.7202218,       1.2347122,       1.5308979,       1.8666449,     -0.22852941,    -0.034083303,     -0.62895768,     -0.24710806,      0.40741357,      0.39462121,      -1.2508761,    -0.064977789,     -0.46894906,       1.1558761,       1.5102954,     -0.22697461,     -0.20062507,      0.11199782,      -1.5601099,      -2.1160948,      0.60686009,      0.86774126,     -0.24863771,      0.68754261,      0.48224456,     -0.73913423,    -0.030852699,       -1.124034,     -0.74038903,     -0.64047756,       1.8502839,      0.34694363,       0.9978343,     -0.42307285,     -0.16563465,      -1.7992966,      0.04967643,      0.91974853,      0.96552129,       -1.936087,       1.8016179,      0.71775518,      -1.3399921,      -0.5896989,      0.22610241,     -0.50115327,     0.032596734,     -0.48610313,      0.61429498,      0.15275751,       1.0787844,      -1.6077943,      0.18288793,      0.47667882,      -1.1106262,      0.27029571,     -0.75167238,       1.3268794,      -1.4947629,       -1.490266,     -0.36645094,     -0.69486984,      -0.1053232,     -0.96123084,      0.84052174,     -0.53975484,       1.2813954,      -1.0104116,     -0.52634616,     -0.88294614,      -1.7214356,      0.29728148,   -0.0062751085,       2.0825555,      0.64783737,      -1.2335534,     -0.37891516,      -1.2077131,      0.54396707,     -0.25202365,     -0.69690338,     -0.23893828,     -0.69775325,     -0.65134197,      -2.4321104,      0.47794695,      0.31632292,      0.17827136,     0.072136291,      0.10240001,      0.61432004,       1.4163822,       1.1117529,       1.3102381,      -0.6963993,     -0.42603297,      -2.3278958,        1.073996,      0.73180476,      0.74980751,     -0.85411962,      -2.1980994,      0.50200676,     -0.71478756,     -0.28377292,      0.40460093,      -1.5239829,     -0.88923701,       0.6817701,      0.44768556,       1.6000931,     -0.81574869,      0.73417494,     -0.69801602,      0.53714651,      0.68097435,       -1.829798,     -0.98890022,      -1.2546663,     -0.16861547,      -1.5360113,     -0.86642011,       1.1765368,      -1.0860803,      0.79205974,      -0.8895925,    -0.069753089,     -0.47045781,     -0.43477596,      0.47126039,       2.1019664,       1.5654766,     -0.83307531,       1.5265589,     -0.81715759,     -0.86825482,      -1.1148721,      0.25303423,     -0.97244211,      0.35541496,       0.9229424,      -1.7345034,       1.1269489,     -0.22681133,        0.466296,     -0.98246071,       1.6166497,       0.3868678,       0.6442406,      -1.1517652,      -1.8437783,      0.42151307,      -1.0531537,       -2.526874,     -0.14594724,      -0.4219662,     -0.30756013,      0.56926987,       1.2434194,      0.25870556,      -1.5967941,       1.9840712,      0.93352171,     -0.78115435,     -0.73802891,      -1.0719198,      -1.4260324,       0.4330553,     -0.15871325,      -2.0370239,      -1.3457954,     -0.55879427,      -1.1560115,      0.70396718,      0.62508258,      -2.1225338,       2.6177622,      -2.0126409,      -1.3395806,      0.39801878,     -0.46970127,     -0.18372425,       1.2330862,     -0.93363387,      -0.6161315,     -0.11180733,     -0.40652139,     -0.15850819,     -0.45358867,     -0.14011854,     -0.59640498,      -0.1254215,     -0.13241236,       1.0818102,    -0.099084223,      0.73413211,      0.10510357,       1.7289638,     -0.34848658,     -0.75062665,     -0.17424341,      0.43924597,     -0.55326414,     0.030469796,     -0.36199099,    -0.064569194,      0.12960923,      0.28355177,      -2.1554824,       1.9758382,      -0.5255136,     -0.71591557,       0.4359523,     -0.28900793,     -0.25023685,      -1.4003366,      -0.1544813,     -0.25274445,      0.62459279,     -0.94422088,      0.65958894,       1.4162126,       0.5434489,      0.79082106,      0.19850132,      -1.4840916,        1.951741,     -0.86562652,      -1.5679001,    -0.096681566,      0.39940787,        1.544022,       2.2513202,     -0.21756852,       0.8599062,      -1.2070766,      -0.3419831,    -0.088890059,     -0.90145672,      0.15294368,     0.084182666,       1.0178821,     -0.83813529,       3.0516156,     -0.80292318,        0.344619,      -1.0849802,       -1.182919,       1.1111271,      0.30371925,        0.894255,      0.11561288,        2.516116,     -0.72324489,      0.13049125,      0.99260496,     -0.39573563,   -0.0035108794,     -0.24886365,      -1.6519926,      0.68984557,      0.63150729,       3.5720347,      -1.5075678,     -0.27068741,      0.51633491,       2.4528878,      -2.2006731,      -1.6603382,      -1.2130745,      0.10648718,      -1.3554849,   -0.0090950659,    -0.052730672,      0.80648998,      0.12718713,      -1.1795701,      0.77307128,       -1.533166,     -0.91132617,     -0.64640436,     -0.57160579,      -1.3615807,      0.92364965,     -0.58802965,      0.10729575,     -0.39665181,      0.85588565,       2.2490319,      0.23773013,      0.73370736,        1.184176,       2.0339295,     -0.71355915,      0.70162493,     -0.13102615,      0.68029208,     -0.47647673,     -0.50106034,      -1.4305191,      0.79313036,      -1.8544477,      0.62859032,       0.9647194,      0.35838765,     -0.98741218,      0.82196128,      -1.4232557,     -0.21143913,      0.17632116,     -0.35159651,     -0.31650316,      0.63990186,       0.1327111,      -2.3100194,     0.075738084,     -0.93159939,       1.0472718,      0.78703659,      0.26046666,     -0.82587382,     0.073475456,     -0.77723271,      -2.2328039,      -0.6503307,      0.66947839,      -2.3712347,     -0.25425044,     -0.14632085,      0.43232714,     -0.72302914,     -0.58113664,      0.34440947,      -0.7660462,      0.86012974,       1.1778331,      0.20347343,     -0.49595797,      0.41679203,     -0.64977143,      -1.1950855,     -0.05250015,       1.2412026,     -0.42720367,     -0.96928938,      0.93569305,      0.10218623,      0.77609367,       1.4481637,     -0.35616579,      -1.6678398,      0.26383859,      0.23017153,      -0.7150523,    -0.056929005,      0.91316451,     -0.73240444,      -2.1408214,     -0.66825715,       0.6887125,      0.91389436,     0.081313141,      -1.0263262,      -2.2590737,      0.02634497,     -0.77914082,      -1.2088061,      0.39518957,      0.86544541,       1.7380169,      0.45039368,      0.16889439,      -1.5387894,      0.28227521,      0.79490348,     -0.59347383,       1.0231233,      0.50033885,      0.86568635,     -0.36273726,       1.1320257,        2.128901,      0.16047017,     -0.23475368,    -0.049814261,      0.90332935,      0.71441177,       1.0914362,      -2.1824967,       0.2091143,      0.33095637,     -0.25313368,       -0.698107,     -0.59980702,      0.71654409,     -0.16179404,     -0.88099409,      0.18363737,     -0.57518303,      -1.5719628,     -0.15892477,       1.7016364,      -1.7819406,       0.5590328,      0.53564264,      0.42767642,      0.42002148,     -0.43123233,       0.6344407,       1.0289616,        0.628707,      0.48355256,        1.557565,     -0.89051996,     -0.16207363,      -1.3540675,      0.79289526,      0.97003272,      -0.6146153,      -1.4020611,       1.3326028,      -2.2259097,     -0.13972212,      -1.8812842,      -1.9002564,      -1.3967422,     -0.53799123,      0.42658938,      0.58270204,    -0.084486523,      -1.2869292,     -0.88348586,      -1.2696669,      0.22531635,      -1.0769967,     -0.63800037,     -0.01096646,       -1.343896,      -2.0095764,       1.3271057,     -0.29847728,       2.0650623,      -1.2283219,     -0.91458483,     0.084263484,     -0.21262456,     -0.50429844,      -1.4570855,       1.1486768,      -1.7213184,      -1.6680498,      0.56395017,     -0.48999525,       -2.233377,     -0.59593241,       1.1970953,     -0.18268122,       0.2876798,      -1.3247448,       -1.309858,     0.042974129,       1.5980779,     -0.18341871,     0.088636098,    -0.031013905,      0.95663123,     -0.22786888,      -2.1003837,      -1.0531409,      0.47981123,      0.87323387,       1.0761775,     -0.75174817,       1.3831467,       1.1066701,     -0.21108744,     0.086520088,     -0.88957991,     -0.45127289,       1.2592409,      0.59346022,     -0.83924574,     -0.48983681,     -0.17531687,     -0.44975246,      -1.1709471,     -0.55700462,     -0.29766171,       1.0809262,       1.4515524,      -0.2276655,     -0.24299022,     -0.67478653,      -1.8384168,     -0.29693378,       1.7475627,     -0.54853302,     -0.76082146,    -0.089493938,      0.33684823,      -0.0652005,     -0.22436706,       1.1453178,       1.1556587,     -0.27998826,     -0.43025884,     -0.30078227,     -0.60733608,       1.2531582,        1.628451,     -0.63710334,     -0.66602061,     -0.32413323,      -2.4540778,     0.048222267,       1.5328764,     -0.69711812,       -1.073945,     -0.92139441,     -0.34921713,      -1.2027568,     -0.89497426,     -0.52296609,      0.65601789,     -0.69794175,     -0.32845951,      0.39871078,     -0.26201101,     -0.60345825,     -0.08688792,      -1.3638564,       2.4080844,     0.048643711,      -2.4870281,      0.30674272,      0.68381666,      -0.6366685,     -0.46889716,       -0.418794,     -0.48403036,      0.01623469,     -0.17509146,      0.90328103,       1.9574366,   -0.0065853833,     -0.60027694,    -0.089917788,       1.0414305,       1.7429171,     -0.14471975,      -0.8585115,     -0.81227225,    -0.019152924,      0.93940491,      0.37685061,     -0.60159281,     -0.19480556,      -1.6369432,      -0.8163455,     -0.77388249,      -1.6325804,      -0.3986166,     -0.34510649,       1.6962699,     -0.94699598,       1.5584448,     -0.86899679,       1.8427412,      0.74947533,    -0.068035741,      0.45772838,       1.2312411,     -0.42292065,     -0.31530825,       1.1442453,      -0.2929107,     -0.89541092,       1.1311188,      0.23319058,       2.1483843,      0.70803236,      -1.0274991,    -0.090706109,     -0.15745939,    -0.050640912,      0.17706152,      -1.4655735,    -0.075726983,    0.0051062822,       1.0746006,     -0.91012433,      0.53679432,     -0.59375326,      0.60133564,      0.34410489,      0.45684807,      0.16904706,      0.67649069,     -0.85556195,     -0.10780851,      -0.5388512,     -0.09311448,       1.8405912,      0.72241141,       1.4443278,     -0.21907094,       1.1553788,      -1.3207887,       1.4585583,       1.2792914,      -1.5283992,       1.4748523,     -0.82928939,      -1.0632221,       1.6479679,      0.75760122,      -2.3894886,      0.57012717,     -0.40919912,     -0.19956004,     -0.16636871,     -0.27298806,      -1.5356039,     -0.59199639,     -0.46436007,      -1.3101396,      -1.2122475,    -0.080630632,      -1.4830973,     -0.13657768,      0.78220213,      -1.3515442,      0.44279166,     -0.72831249,       0.3990728,      0.95843069,      0.29778868,     -0.67677985,      -1.7566833,        -1.16729,     0.090268765,      0.86389731,       1.6317405,     -0.09180926,      0.42481674,      0.88508164,      0.91210652,      0.27862759,      0.74454162,     -0.12895865,     -0.84484406,      0.23326181,      0.57212833,     -0.76079559,     -0.95417351,      -0.7664966,     -0.29945917,     -0.96904633,      0.99664658,      0.26568058,     -0.23564628,     -0.94066781,      -1.6186882,      0.16905871,      0.39364767,       1.3881029,      0.50954286,      0.89422835,       2.1223544,      0.86842951,     -0.68484921,      -1.0975145,       1.8131077,       1.3142736
+1997Y,       2.1990877,      0.39776356,      0.80917553,     -0.33147833,       1.6951971,      0.55360593,      0.63833509,     -0.61049791,      -1.7565238,      0.37266085,      -1.3241229,      -1.8904098,      0.88177744,     -0.65115498,     0.005119979,      0.25658049,       -1.401356,     -0.54143867,     -0.49962846,     -0.71719101,     0.059873428,      0.29787328,      -0.1332767,      -1.1532709,      0.14683431,       1.5973233,     -0.96401677,     -0.91659101,      -1.7599698,      -1.2115183,     -0.75373762,      0.89468469,     -0.97606816,     -0.85237194,     -0.57119958,     0.079023911,     0.016538539,     -0.24655828,      -1.1254839,      -1.1684593,      0.79196128,     -0.13364034,     -0.35368554,    -0.089328537,    -0.046329192,     -0.62712735,      0.53127401,      -1.8763296,     -0.80932603,      -1.6220467,       1.0778715,     0.043831483,   -0.0094658548,     0.040406243,    0.0044400794,      0.44407546,     -0.21961392,     -0.19639575,    -0.086845794,      0.73432862,     -0.16780333,       1.3879853,      -1.0679616,     -0.49973247,     -0.16622216,     -0.28225323,       1.4148726,       1.1752417,     -0.30933416,      0.20295171,       0.6864522,      -1.2831075,      -1.2805192,    -0.061353528,     -0.49267471,      0.69872781,       -1.229653,      0.71216514,      -1.4655955,      -1.6564356,       0.5566394,       1.1695098,     -0.31466822,     -0.78979803,     -0.64177827,       -1.660225,      0.32755454,       1.8403948,      -1.3163388,     -0.35413118,      0.46253273,       -1.910714,      -1.0233717,       1.0955462,       0.3294172,       1.0389823,   -0.0050427373,       1.2304933,     0.069426135,     -0.53874525,     -0.13655168,      0.86331683,     -0.79114316,     -0.55766623,      -0.4608473,     -0.71001498,      0.36378203,     -0.29891762,      -1.0117891,       -1.191062,      0.55421399,      0.49574056,       1.7560445,      0.72744795,      -1.3156116,      0.31290417,     0.051922849,       1.4324702,      0.81216274,    -0.083324254,     -0.45181982,      0.74178234,     -0.72424233,     -0.96440865,     -0.44994409,      0.31874056,       0.1132653,      0.35012326,     -0.27711661,     -0.61553504,      0.63755312,       1.6433991,         1.38806,       1.3097894,     -0.28653705,     -0.86871224,     0.085410707,      0.27858422,      0.49779354,      0.12092345,      0.23295025,      0.65499217,     -0.78771663,     -0.26201851,      0.15052592,      0.58454545,     -0.90973775,      0.18093227,      0.58544135,      0.66833947,       1.0833161,      0.22414287,       0.8200498,     -0.30153574,       1.2114194,       1.2300614,      0.23858291,        1.373496,      0.55185821,        0.618153,      -1.3657503,       1.5076716,     -0.48819416,     -0.55643675,       1.5191555,      -1.0820279,    -0.025900154,      0.15831107,       1.6868361,       1.2518215,     -0.69143939,       1.0092155,     -0.57977632,     -0.10533828,      -1.0986043,     -0.83966411,     -0.87940612,       0.6898399,      0.30642257,       1.8764179,     -0.45970578,      0.55003639,      0.55417891,      -1.5573825,       1.4297854,     -0.47376579,       1.3961338,     0.089035928,     -0.93713463,     -0.58372445,     -0.23322167,      0.26555557,     -0.39454969,      0.59785942,     -0.31138083,       0.4736275,     -0.25820768,       1.1683652,      0.22461878,     -0.87398991,       1.5943777,       1.8127951,     -0.37524308,     -0.36788568,     -0.37681493,       1.0220041,      0.19289808,     -0.98073784,      0.47469058,     -0.85171094,      0.66238433,     -0.98988716,     -0.34022366,      -1.0689215,      -2.5383097,      -1.7025613,     -0.86535438,      -1.1371553,      0.60946321,     -0.17991398,      -1.5008847,     -0.26015026,     -0.34674225,     -0.98689881,       1.0303351,     0.057366749,      -1.1383559,       1.2200294,     0.091575394,       1.2460519,      0.67420301,      0.25059367,      0.06358218,     -0.57405437,      -1.8314005,     -0.85875853,     -0.14783845,     -0.71431615,      -1.2490626,      0.63219654,      0.28875902,     -0.32356006,     -0.21139638,     -0.53307775,      0.19833763,      -1.3525427,     -0.24125245,     -0.71517998,      -1.8438733,      -1.7224584,      -1.3493878,      -1.7871941,       1.1618389,      -1.2697495,     0.062419025,      -0.1401802,      0.94199047,      0.28770839,       1.1040488,       1.6499591,     -0.37144714,      0.30219311,       1.2384872,      0.49020175,      -1.7362287,      0.62215154,     -0.48791799,       1.1666816,      0.76787011,      -0.6788885,     -0.24054319,        1.508969,     0.029502072,       -2.214552,    -0.063214536,       1.3750157,      0.97757226,       1.0953628,      -1.5699597,      0.30147086,       1.7542808,     -0.26476377,      0.63118805,     -0.86658469,     -0.89080072,      -1.2960681,     -0.56545782,     -0.42594333,       1.7851427,      -1.2260907,      0.13426896,     -0.98162237,     -0.63592678,      -1.8763523,      0.93141994,     -0.79238123,      -1.3719226,       1.9694007,       1.4777388,      0.59622911,     -0.85544491,       1.6073953,     -0.27522724,      0.96205511,     -0.33261661,      0.12137968,     -0.62026924,      0.16053615,       2.1557451,      -2.4746094,     0.067373798,      -1.5207371,     -0.25887185,      0.48482063,      0.42470556,      -1.3737183,      -1.8419121,      -1.5389185,      0.33782394,      0.84990758,     -0.26384805,     -0.27707723,      0.87106632,       1.0534858,     -0.15801027,      -2.7543814,       1.6476388,    -0.017756493,     -0.52648642,      -1.1691391,     0.086680552,    -0.066487971,    -0.076331946,     -0.82294883,      0.55758104,      0.91208463,     -0.50791228,      -1.9621022,     -0.13564491,       2.8664626,     -0.19901736,      0.19762087,     0.074043518,     -0.56808631,     -0.40991022,     -0.13382969,      -1.3056581,     -0.87295037,     -0.21114724,     -0.18507151,     -0.73478226,       1.8380169,     -0.38177164,     -0.34427733,        1.448804,       0.6361649,     -0.95494549,     -0.49422216,        1.357577,     -0.18105357,       1.5460649,     -0.36643148,      -1.1423107,     -0.88207906,      0.28398188,      0.80164541,      0.91981572,      -1.7642727,       2.1969396,      0.65632857,      -0.9456472,      -1.5681954,     -0.70860678,      -1.2624833,     -0.74534393,     -0.28863754,      0.11197408,    -0.042540592,       1.5040285,       1.7380237,    -0.028074865,     -0.91029972,      0.18286384,      -2.0775915,      -1.2563752,       1.0849451,      0.50026349,      0.99433241,    -0.057146717,      0.84109746,     -0.46060788,     -0.57373321,       1.7544143,    -0.082992704,      0.57397576,       1.0801483,     -0.99549561,      -1.4373283,      0.23330289,       0.8238693,       1.3191207,       2.4837035,       0.5744991,       1.6545059,     -0.12383024,      0.76032234,     -0.45478072,     -0.86095523,      -0.7006776,      -0.7547737,      0.74380302,     -0.75927251,    -0.091241985,       0.9303887,      0.69782552,       1.2150994,       1.2739989,      -1.3468307,     -0.12731692,     -0.46996517,      -1.2750059,      0.14013493,       0.2872521,      0.51125809,       -1.188402,     -0.30664799,       1.5800404,      0.45090377,      -1.3003991,     -0.96757813,       0.2079824,     -0.41787771,      0.48717945,      0.89035504,      -1.2157981,     0.048588704,     0.090973763,      0.74635576,      0.42408289,       1.8280248,       1.6145242,       0.9352196,     -0.55247217,      0.34786698,      0.85085902,      -1.5816213,     -0.81545288,      0.35470791,     -0.16280492,     -0.29465308,      0.71322769,      0.23855141,     -0.29802983,       1.4020501,     -0.22177115,     -0.68680745,      0.22812445,     -0.60875304,     -0.74299196,      -1.2416591,      0.78957622,   -0.0088077109,      0.37272318,      -1.1652416,      -1.2888809,     -0.94735287,      0.38128828,     -0.45434465,       1.5619839,      0.67336539,     0.094105537,       1.4128716,      -1.7935144,      -1.4288015,      -1.0498101,      -1.7136469,     -0.73589798,      -1.6755634,      -0.2450938,      0.89231664,     -0.81305122,     0.020764864,      -1.5981366,     -0.26697925,       1.6052984,      -1.4068883,      0.25287317,     -0.56885851,      -1.0350381,      -2.0181654,     -0.93778399,      0.84074115,      0.45709919,       1.5912637,     -0.85978832,     -0.26772821,       1.2081602,      -1.5016349,      -1.1390291,      0.72291044,      0.85387579,      0.10773327,       -1.087612,     -0.76256644,      -1.3190005,     -0.50882579,      0.74910508,      0.40913604,     -0.18481323,     -0.58015105,     -0.95672477,       0.5533171,     -0.36807318,      0.23348905,     -0.11601767,       1.1780564,     -0.37933144,      0.74235639,      0.11213623,      0.96656659,      0.12847386,      0.11553738,      0.46617019,     -0.15851275,       2.0496764,     -0.97650665,      0.73396552,       0.6612394,     -0.19125204,       1.4545899,      0.19654083,      0.30341283,       1.4351552,      0.63377022,      0.31906821,      -1.9129334,        1.464336,      -1.4619786,       1.8913029,     -0.52660372,     -0.47735972,      -1.6067221,      -1.9404115,     -0.45428749,     -0.70144716,       2.0270956,      0.95953665,     -0.42176284,     -0.84981769,     -0.21519006,      0.91561637,      0.50628193,      -1.5598961,      0.43339658,       2.1528778,     -0.23604767,      0.23831029,     -0.29256715,     -0.85396708,      0.24117505,      0.18764868,     -0.03723257,      0.12922321,     -0.38935197,    -0.011194899,     -0.82426574,     -0.76246079,     -0.46144451,     -0.76023197,       1.0274771,     -0.45465958,      -0.1667994,      0.29110472,     -0.65327198,      -1.8517116,     -0.43583636,      -1.5505168,      -1.6516863,      0.13702295,      0.63738023,        1.803111,      0.20270243,       1.0688542,      0.11485278,       1.2835958,     -0.58578697,     0.083806969,      -1.1430441,      -1.1164707,      0.97498663,    -0.073157463,     -0.50064845,      0.99281402,        0.112479,     -0.22479887,      -1.6639135,     -0.83626934,      0.55396607,      -0.6173509,       1.2740896,       2.0767678,     -0.46480577,     -0.40463214,     -0.61704648,       1.8619594,     -0.80078047,      0.12743968,    -0.041066399,       1.4911988,      0.89776105,      -2.2505802,       1.2057394,     -0.87220503,       0.3663041,     -0.50669096,      0.49550093,      0.43272899,     -0.30800128,      0.38711789,     -0.86507478,      0.24645343,      0.62333093,      -1.0684461,       1.1498467,     -0.65163096,      -1.2731426,     -0.64417564,      0.24642233,     -0.24418846,      0.32330929,       1.4280539,      0.33658669,       1.7990751,        1.436299,      0.88403201,  -0.00031484786,      0.60570298,       1.2700266,      -1.3194436,      -2.0142599,      0.84080612,     -0.52168278,   -0.0018882647,       3.2549383,       1.7006903,     -0.88445012,      0.84573904,      0.10606131,      -1.1172474,      0.31484292,     -0.27030999,     -0.56270521,    -0.062299119,       0.4065824,     -0.40580517,       0.1786358,       1.2003633,     -0.83328341,      0.63084399,       1.5740023,      -1.3972561,       1.0054959,    -0.074209589,     -0.66090884,     -0.35965229,      0.52444616,       0.6913191,     -0.64920727,       1.4608854,      0.11053431,     -0.22037493,      -1.6747422,     -0.20714483,      0.98135348,      0.24780133,     -0.38065185,       1.3883043,       1.4068417,     -0.53602398,     -0.12533394,     -0.18358845,     -0.95533134,      0.42598393,     -0.27315757,     -0.50885399,      0.30078205,      0.56851519,     -0.19879297,     -0.18374246,     -0.16565955,       1.2226412,      -0.9716995,      -1.0874531,      0.89163239,       2.3804916,      0.51873299,      -0.5919368,    -0.085160912,       1.0159667,     -0.92802046,      -1.0736862,     -0.27355144,      0.38939054,     -0.11302651,      0.24284313,     0.032323003,      -1.2627448,     -0.48976555,       1.4488065,     -0.42641571,     -0.76010681,       1.0608652,      0.57603128,     -0.86705671,      0.55878809,      -1.7038642,     -0.59448366,       1.3878971,       2.0115911,      0.37647054,     -0.18867103,     -0.97853916,      0.80380731,      0.10819171,       0.6841571,       2.3029687,     -0.50743225,     -0.80376114,     -0.51331412,     -0.98464321,       1.5848134,      -1.7192533,       1.0092831,      -1.2188003,      -1.3845373,      -1.1230797,     -0.49394631,       1.8089171,      0.92388907,      -1.0728919,       1.3702618,       -1.019962,      -1.4400935,     -0.21208367,     -0.36310812,     -0.10366248,     -0.47388716,     -0.99170975,      0.96081993,      0.43062678,      0.12112226,     -0.30873757,       2.7307069,     0.038589083,     -0.63578584,     -0.48530259,      0.98682477,       0.1729976,      -1.3783744,       1.0996564,      0.19119514,      0.81252947,     -0.53132095,      -1.1526346,       1.2376016,     -0.30563649,      -1.8229473,      0.79711762,     -0.31470015,      0.35529748,       1.0779017,      0.48655939,      0.39343259,     -0.35025182,      0.41210327,      -2.1668449,      -0.6618337,    -0.034547826,     -0.42152929,      0.69939492,      0.19620373,      0.14320778,       1.0544279,       0.2145195,      0.79721907,     -0.12137079,    -0.075005791,      -0.6493622,      -0.1712705,      -1.4723487,       -0.587479,     -0.29695213,     -0.47684951,      -1.0307185,       -1.074769,    -0.014039691,       1.1702206,      0.79770024,     -0.79807441,      0.54275229,     -0.24136259,     -0.55582833,       1.2252829,      0.24196335,       1.7146278,      0.10761661,      0.78061625,    -0.073723707,      -1.0509487,      0.46466571,     -0.21288627,       2.0534707,      -1.3169127,      0.63024078,      0.59008291,       1.6563878,      -0.8315269,      -1.7877774,    -0.065672174,      -0.6109161,      0.37588105,      0.67583709,       -1.241137,      0.29814815,      0.83368843,     -0.42041224,       1.0009599,      -1.3840158,     -0.25637673,       1.3076895,       1.3424084,      -1.5023064,     -0.97355593,      -2.7940612,     0.043754556,     -0.55828363,      0.47276147,      -2.5637018,       0.7175009,      0.14235179,     -0.97186332,      0.19237839,      -1.1081199,       1.7645288,      -1.8216396,     -0.23717608,     -0.44047529,    0.0035168434,      -2.4956181,     -0.80732487,      0.34989555,     -0.56718313,       -1.361403,       0.6951891,      0.63173015,      0.63209106,     -0.62847845,      0.50605504,     -0.69069617,       1.7782007,      0.55432786,      -1.2903846,       2.0344413,      0.21019917,      0.23920945,     -0.23085912,      0.60679891,     -0.40665276,      -1.2748412,      0.57364971,       1.4935857,      0.90365922,       2.0411309,     -0.31134948,      0.85999942,      -1.3763157,      0.25056981,       1.1979653,      0.80020479,      -2.5029507,    -0.053965436,      -1.8839382,      -1.3842826,       1.0698308,       1.5046342,      -1.4677892,      0.92860968,     -0.36907545,      -0.1291571,    -0.042683016,     -0.44300487,       1.2051911,      0.60009314,       1.8159435,       1.3281528,     -0.66508325,        1.280871,       1.0505526,      -0.1670545,      -1.2709923,     -0.89004819,      -1.2314716,      0.19208834,      -2.0229643,      0.32996204,      0.19520436,     -0.38613791,      0.82643904,      -0.1380915,       2.6236046,      0.68583598,      0.38600132,     -0.27852299,     0.070242138,      -1.1463884,    -0.069379805,     -0.18204448,     0.051384546,      0.84763718,     -0.75718153,     -0.62237435,      0.73097554,       1.0256855,     -0.32018602,      -1.0079199,       1.2953914,     -0.82847235,     -0.26874078,     0.017560105,     -0.40155077,      0.87489401,     -0.30705375,     0.038542877,       1.7447077,      0.53166406,       1.7309382,     -0.97403245,      0.77026163,      -0.8956446,      -0.9221781,       2.0038292,     -0.72094555,     -0.77187425,       1.6874194,       1.6603308,     -0.84648045,       1.0707102,       1.6814333,     -0.37341298,     -0.80334545,      0.47950011,     -0.67000953,   -0.0069192175,      0.22839847,     -0.46348553,     -0.86084446,     -0.46620115,       1.3755004,       1.0594489,      -0.3562807,      0.81521623,         1.90274,       1.1919654,       -0.160581,      -1.1230201,      0.90099623,       0.9478197,      0.61312276,        1.095036,      0.68071782,       1.8275738,      0.13168363,        1.650316,      0.51830875,      0.65091181,       1.0140269,      0.30698679,     -0.12629714,      -1.6671977,      -0.0335659,       -0.150888,      0.19625825,      0.81550284,      0.77477888,     0.093134742,      -1.0094325,       1.8328209,      -1.3060245,     -0.11052669,       1.0057924,     0.011043797,      -1.1458525,      0.72534834,      -2.0465603,     -0.90758088,      0.80730939,      0.29942227,     0.020277197,       -0.344575,      0.78418417,      0.70966373,      0.56770283,     -0.86976001,        1.712734,      0.76746961,      0.53557226,      -1.2907021,       2.3985831,      0.10629099,      -1.4018275,     0.058822857,      -1.1993202,      0.68365287,     -0.32468091,      -2.2663666,      0.25305155,       1.2483643,     -0.87324465,        0.858644,     -0.60072891,      0.32127479,     0.032771995,       1.1993021,     -0.91345563,     -0.51096312,      -1.5408735,     -0.66754693,     -0.47459038,     -0.52122975,    -0.039547146,     -0.59637511,     -0.32470824,     -0.30741947,     -0.79762249,     -0.68193488,     -0.53062205,     -0.97695749,       1.8374477,      0.34280868,    -0.055682463,      -2.5469648,      -2.2837758,       0.2299701,      0.87199937,    -0.020063168,    -0.059132827,       1.2012537,     0.087674035,      -1.9413452,      0.58289307,      0.85888876,     -0.82480579,      -1.1833326,      -0.4956072,      -1.3639369,      0.66840191,     0.076333695,     -0.60231763,      -1.8723169,       1.8610722,     0.074120354,     0.083057617,      0.22347105,      0.28204939,      0.90808696,     -0.45593888,       -1.069715,      0.44423211,     -0.54909297,      -1.2296353,     0.034251659,     -0.32915215,     -0.65615094,       1.0372329,      -1.1466471,      0.70007505,       0.7852714,     -0.16823711,     -0.67432179,      0.74122906,      -0.8653855,      0.68263141,      -1.2211287,       1.5315686,       2.2903823,      0.61991997,     -0.84692312,      -1.5216675,      0.96253899,      0.12126359,      0.66156919,    -0.068136121,       1.3374404,     -0.58264788,    0.0047462942,       1.7626968,      -0.5555969,    -0.073990745,       1.3614335,     0.099417457,       0.2140955,      -0.2996132,      -1.6049864,       1.2459664,       2.0752968,      0.67193147,      -1.6030157,       1.4153229,      0.99220394,     -0.41469094,      -0.2688798,      0.90621823,     -0.79777561,       -1.782309,     -0.70740947,     -0.60008792,      -1.2745668,     -0.78109488,      -1.1786801,     -0.92958755,       1.7768936,    -0.082982841,       0.4490137,       1.0876849,      -0.9000231,     -0.96374362,     -0.26595608,       1.3926853,     -0.33373296,     -0.24997136,      0.92257496,      -2.0825625,      -1.9227243,      0.53954499,     0.098312517,     -0.89129736,       1.4178849,     -0.41917781,       1.2562405,       -1.409271,     -0.42831581,      0.24435348,      0.90108728,      0.44086216,    -0.018708215,       2.2388695,      -1.8548342,      -1.6536468,       1.0150171,       1.2001183,      -1.1346943,        1.024912,      -1.8198394,     -0.25351577,       1.2902753,      0.81256411,      0.80085593,       1.6308509,      -2.1822027,      0.20401755,      -1.0611315,      -2.4152497,     -0.66442347,     -0.21388226,      0.46990145,       1.4389714,      -1.5990286,      0.57403507,       1.1564165,     -0.80414896,     -0.75701777,        1.136086,      0.22156799,     -0.29232802,     -0.56355971,        1.415832,      0.45808616,      0.75133816,      0.38284287,       1.6480879,        1.060638,     -0.15865874,     -0.45904011,       0.0362849,      0.95018138,     -0.21591778,     0.090036414,    -0.058814237,       1.6738395,     -0.53857712,     0.033075669,      0.71288193,     -0.57814432,       0.3037573,     -0.74507118,      -1.0397011,      0.12813986,      0.62487964,      -1.1910712,      0.24060187,     -0.26114609,    -0.028185637,      0.30338203,      0.20400427,     -0.49346778,     -0.77180711,       1.1425771,      -1.5561897,      -2.1462824,       2.2905212,     -0.16504343,     -0.41508835,    -0.057925339,     -0.41586126,     -0.74356303,       1.0298115,      0.91197225,     -0.53386323,     0.081614564,     -0.45726425,        1.324219,      0.86211317,        1.385171,      0.12535465,      0.36772844,      0.50640933,       0.6996577,      0.37691106,      0.44549989,     -0.17266685,    -0.025119732,       1.1653284,      0.32594568,    -0.002080364,      -1.8714709,      0.20769736,      0.55770313,         0.50338,      -1.6697498,     -0.47630481,     -0.44318228,     -0.94014936,       1.4008079,     -0.86572216,     -0.34282046,     -0.18861814,     -0.79128375,     -0.11796388,     0.021802151,      0.20648983,    -0.019389799,       1.9299714,      -1.1768664,      0.79086119,      0.79933933,    -0.050274237,     -0.91566281,       -1.279338,     -0.43661499,     -0.18469542,       1.2212009,     -0.32773738,       1.3706186,     -0.36209328,      0.42636546,      0.56159912,     -0.29561654,      0.32991684,      0.79904022,      0.48475411,     -0.22421361,     -0.83878564,     -0.73942871,      0.17575524,      -1.1637859,      0.19018125,      0.46682798,     -0.26072763,      0.82704532,     -0.41939774,       1.5387742,      -1.1360436,      0.31400473,      0.57187849,      0.51894714,       -0.142985,     -0.79052873,      0.48528341,      -1.1073529,      0.74181008,       1.0081751,      0.30436209,       1.0185597,     -0.37229761,      0.60469821,      -1.3136174,    -0.053491129,      -1.6626923,     -0.42702125,     -0.19787565,     -0.15855621,     -0.08241905,       1.1283748,      -2.2664473,       0.9792926,     -0.16185597,     -0.88156606,      -0.1499701,     0.072774566,     -0.76493715,       0.8852368,      -2.4192598,      -1.2397608,     -0.88747531,    -0.083406696,       2.8034897,     -0.59446378,     -0.46223625,      -2.1572662,     -0.86416944,     -0.11849856,      0.16304267,      0.83698059,      0.95819712,        0.934076,      0.71043553,      0.64828321,     -0.87273178,       0.6686676,       1.0409096,     -0.56895866,    -0.094359044,      -1.0191221,      0.27060075,     -0.50157917,      -1.5762228,     -0.97847182,     -0.76442812,       1.6112977,     -0.59022783,      0.61108456,       1.4223704,       1.1886597,       1.3538157,     -0.79973077,       2.4403824,    -0.065255332,       1.3458288,      -2.1248088,      0.63208882,     -0.14058869,    -0.035339446,      0.66800385,       2.0541892,    -0.015871277,      0.75002002,      0.23155787,       1.5091453,      0.20769116,       1.3639354,      0.92362007,     0.030723771,      0.78502394,    -0.051792068,     -0.45721138,     -0.37465337,      0.30949848,     -0.95206691,       1.6458542,     -0.43670715,       2.2092938,      0.35073198,       1.0164646,     -0.84083045,    -0.015430518,    -0.092695387,     -0.73868948,     -0.48243948,    -0.032553284,       1.6341511,      0.42643887,      0.48715354,     -0.49085247,       1.4753722,      -2.4703874,      -1.4395275,      0.40394081,      0.12358464,      0.66304988,       1.9752211,      0.34122342,      0.08855721,       1.0725881,      0.40380078,     -0.61945052,      -1.4551079,       1.1318701,      0.55144089,     -0.65983844,       -2.358951,      0.99636385,       2.1744512,      0.55580916,      0.46987213,      0.17959634,      -1.5983055,     -0.96226899,     -0.65916041,    -0.038754089,      -1.2206369,     -0.30275809,     -0.26808025,       1.5039951,      0.16007094,     -0.44380908,    -0.044863648,      0.82380473,       1.7573693,      0.59601839,      0.51141495,       1.9447258,      0.87138841,      0.62795746,     -0.70659082,       1.1281483,       0.1451345,      0.88210605,     -0.34993859,      -1.3174194,       2.3826233,      0.91062928,     0.062795791,       0.4661839,      -1.6001521,      0.92703978,      0.29163115,      -1.4595211,     -0.20092968,    -0.079815657,      -1.3425072,       -1.696669,      0.21891602
+1998Y,        1.135305,      0.53215781,      0.54698403,     -0.97616965,     -0.16393592,     -0.12074249,       1.5312026,     0.070120205,      -1.3178591,     -0.69826156,       0.8035801,     -0.37374376,     -0.18245729,       1.2475855,     -0.43072928,      -0.5437818,     -0.19758697,     -0.49324448,       1.4261772,      -1.1827841,     -0.12933155,      0.27937634,      0.56978462,       1.4443049,       1.5019245,      0.13933732,        1.284066,      0.71474155,      0.68028171,       1.5752609,       1.1405482,     -0.60516483,     -0.92701395,       1.3007357,      -1.5238578,     -0.46769703,      -0.5375619,      0.16729814,      0.44030025,     -0.33799892,       1.8289808,     -0.17450324,      0.60039951,     -0.86666601,      0.67874433,      0.21109275,       1.9692347,     -0.84563886,       1.4390362,       1.5006348,      0.32044996,      0.44235664,       0.2724217,       1.8614687,      -1.6506021,       0.7964838,     -0.79053299,      -0.9038572,      0.72268388,      0.22308666,      -1.1800072,   -0.0053655001,      -0.2008756,      0.93074593,      0.63285648,     -0.98475407,    -0.028032271,      0.85291843,      0.21939034,      -2.8958129,    -0.057541827,       1.6972534,     -0.92511279,      0.32408442,       1.0557228,     -0.83418886,     -0.42339049,      0.44245267,     -0.29667471,     -0.70900773,     -0.37682293,        2.848407,       1.8822388,    -0.092064767,       0.4229737,      0.56612947,    -0.097430666,     -0.30587956,     -0.94577747,    -0.047460525,      0.67051844,     -0.13978371,      0.26148204,      0.20952878,       1.9558379,        1.185815,       1.4237035,      0.20554465,     -0.72833317,      -0.6590007,      0.30658847,      0.58435817,      0.13164894,    -0.093953244,      0.15097289,     -0.43683647,      0.16653936,      0.41772379,     -0.95558653,       1.1720878,      0.10059497,    -0.084121474,      -1.0010893,       1.6552994,     -0.12121113,      0.67863504,     -0.68506132,     -0.34555949,     -0.66575747,      0.15253682,       2.7269776,    -0.064223726,     0.029775428,      0.86255861,     -0.85758129,     0.031821805,      -2.0456162,      -0.3780017,     -0.76642589,      0.34057795,       1.0546478,     -0.10048896,     -0.27620283,     -0.96725509,     -0.33069839,      0.63506216,    -0.094119528,     -0.43771681,      0.16534603,      0.61471163,     -0.55217542,     -0.81713467,      -1.9286065,     -0.17041676,       1.2839569,      0.40910809,     -0.59423463,     -0.41483971,      0.58121974,       1.6998108,      0.30802817,     -0.59276466,       1.2688233,      0.76241499,      -1.6115396,      -0.3657798,     -0.40308224,      0.32068935,     -0.84042102,     -0.43362387,       1.1221115,      -1.0037321,      -1.5544131,       1.2806944,     -0.97579724,      0.46072308,      -1.3461559,       -1.097392,      0.45873549,       1.5726242,      -1.1877762,       1.1857946,     -0.96521896,     -0.29609807,     -0.09401572,      0.76855148,     -0.44289784,     -0.57960188,     -0.72779512,    0.0057820814,      -1.7703033,      -0.3036982,      -0.7131778,     0.081832124,     -0.60846579,       1.5921614,     -0.25312223,     -0.31072678,      0.26923422,      -1.5479551,     0.074424905,      0.72375522,      -2.0611141,      0.91841123,     -0.45707336,      0.58990458,      -1.1495048,       1.4902824,       -1.108512,     0.085038316,      0.23858137,       0.2323824,      -1.1680424,       1.0733814,     -0.10824861,      0.41122222,      -1.1816723,       1.9914223,   -0.0089728207,       2.4345603,     -0.28600219,      0.43453627,     -0.79244467,      -1.1955055,    -0.034115372,      -0.7536237,     0.091758232,   -0.0017951417,       2.3196063,     -0.34485781,       1.0531852,     -0.45331686,      -1.2376622,       0.6254787,      -2.2508022,     -0.55492418,     -0.33776807,     -0.71232117,     -0.79831536,        1.345485,      0.49721783,      -1.8005279,      0.38628061,     -0.52656451,      -2.2385496,     -0.24501055,     -0.11411252,      0.60264758,     -0.11432129,      0.45526193,       1.5577534,     0.067183648,      0.51065659,      0.87851376,       1.4558606,     -0.70483257,      0.36627769,       1.2388998,      -1.3945407,      0.33615222,       1.6444804,     -0.37338125,     0.091860971,      -0.5789742,      -1.7276568,      -2.5517185,    -0.015161177,       2.1153771,     0.081332727,     -0.51922592,      0.45048581,     -0.44400006,      -2.1145866,      0.46599893,     -0.09205717,      0.56871539,     -0.76913952,     -0.13428023,      -1.3449776,      0.69134154,     -0.85556464,     0.095136297,     -0.94049162,      0.14150578,     -0.93936476,       0.9375199,     -0.26522815,       1.8083053,      0.25951447,      0.60901149,      0.83091519,       -1.156996,       -1.019726,       1.0685789,      0.59794674,   -0.0072483671,     -0.39396691,     -0.90320939,      0.31069071,        0.396005,     -0.83812982,     -0.13228056,      -0.2052832,     -0.87543055,      0.29564821,       1.1470857,     -0.32102623,      0.78197909,      -0.2061419,     -0.03701717,       0.1112621,      0.37179265,     -0.81070356,      0.26160472,      -1.0629118,      -1.0657592,       1.2080194,       1.0051963,      -1.0279708,     -0.17989996,      -0.3032945,     -0.70470544,      -2.2627297,     -0.79099167,     -0.88252967,      -2.7557869,       1.2436532,     -0.57724919,      0.87699119,    -0.052079999,      -0.3531323,      -1.9682125,     -0.25324869,         -1.9118,      -1.1255598,      0.65089746,      0.56067683,      -1.0907289,       0.8454561,      0.21112894,       1.4531749,       1.4437213,    -0.038640206,     -0.13741297,      0.86278946,     -0.13923937,      0.52781522,     -0.35527598,       0.3386423,      0.80336721,      0.92534429,     -0.10002499,       1.0735592,     -0.72772985,     -0.93075556,      0.18111335,     -0.42551812,       1.7515228,     -0.46902538,      0.96316073,       1.2562816,       1.0417368,       2.1437564,      0.69581498,      0.46718581,     -0.58929412,     -0.84698549,     -0.35945398,      0.17164897,      -1.2889916,       -0.303665,      0.55794526,      0.92411024,    -0.089308023,      0.82011251,      -1.6286774,     -0.93669093,     -0.11277391,     -0.26482243,     -0.60452745,     -0.59316028,     -0.35619598,    -0.027695913,      0.37552127,      0.76449137,       -1.328883,      0.35259843,      -1.3636838,      -0.4179391,     -0.36033384,      -1.0474346,      -0.4186902,     -0.21038972,      0.98132344,       2.0206384,     -0.72282612,     -0.80255258,      -1.3302121,      -1.2681824,     0.073124434,      -1.2453375,      -1.0257388,       0.6034498,      -1.2109238,       1.8914963,     -0.64705738,      0.52761811,     -0.77365241,     0.019371957,      0.44288813,       1.1806335,       -2.090501,      -1.1639679,       0.4562797,      -2.6632645,      -1.6199948,      0.16182789,       1.4081895,    -0.098701139,      0.80576194,      0.30905399,      -1.1291831,     -0.46696493,      0.76903365,       1.9487557,     -0.48967602,     -0.44081769,      0.80881904,      0.13154165,      0.66572566,      -1.4878638,      0.68229143,       2.0073548,      -1.0958723,      0.54028636,     -0.91215305,     -0.11435721,       0.5723777,      -1.4101358,      0.02512184,      0.26228082,         1.09707,       0.3294545,     -0.57816533,       1.4406585,      0.64453119,     -0.32684877,      0.33397735,      -2.1962232,      0.89650966,      0.78591436,     -0.42123757,      0.13520271,      -1.2762321,     -0.49479533,      0.81428101,      0.85935626,      0.62376748,     0.054120551,      -2.1217182,        1.355406,       1.0519752,      -1.0733915,     -0.45911846,     -0.10598204,       1.4576367,      0.44620637,      0.76615916,     -0.58114674,        1.055436,      -1.6616158,       1.1815329,     -0.67364104,       1.0266779,      0.52689247,     -0.96872873,     -0.69637185,       1.3871031,      -2.2978969,       1.2073327,      0.62421644,     -0.22283139,     0.058564831,        1.630255,     -0.74295301,       0.3353985,       1.9412914,      -2.0227148,       1.3494895,     -0.53352712,     -0.52346579,      -0.2986886,     -0.16241217,       0.7927098,      0.28899424,      0.72326774,      0.37059206,       1.5747786,      -1.1314378,     -0.95607183,     -0.40073698,       0.8841367,     -0.16450894,      0.83379353,      0.15896902,      -1.6283218,      0.37765069,        1.047082,     -0.13710602,       1.0737623,      -1.2287909,        2.038151,      0.28745937,     -0.16601056,      0.21822777,     -0.17686263,       1.2495568,      0.85407637,      0.53882348,       -1.190413,      0.38554419,        1.775064,     -0.10826756,      -1.4230196,     -0.55133171,      -1.2722098,     -0.28790794,     -0.83727315,     -0.49862699,     0.073039177,     -0.26907352,    -0.045973534,       1.5526507,     -0.10937566,       2.4662323,      -2.3219446,      0.27717888,     -0.15856015,      0.51797487,       0.6233932,      0.60150623,     -0.46755985,       1.3187938,     -0.45781571,     -0.62753993,       1.7856027,     -0.18214092,     -0.11465142,      -1.3398099,      -1.4511415,      0.85716191,     -0.47049698,       1.8048831,     0.060170712,       1.9983728,      0.57828295,      -1.0854088,      -2.3126785,     -0.84295345,      -1.5392798,      -1.8485283,      -1.1665434,     -0.19631343,     -0.33873108,      0.64471307,       1.3464312,      -1.2913981,       2.2041102,     -0.34528641,     -0.73548139,       1.3581442,    -0.051027595,        1.362689,      0.94126066,       1.8485374,     -0.60446464,     -0.70219903,      0.45134631,      0.83996506,       2.1325115,    -0.099922294,       1.6042504,       0.8617707,     -0.73565019,    -0.078696233,       2.0134531,       1.4586758,       1.2592668,       1.3628052,      0.30787622,      0.63015702,      0.87044128,      -0.3961437,     -0.24567041,       1.2688813,     -0.59915339,       1.4274403,     0.024007451,     -0.84993484,      0.21244719,     -0.12971101,     -0.40572924,       2.1327165,       1.0491596,       1.4339978,      -2.3917356,      -1.6286141,     -0.75366191,     -0.29414107,      0.75675193,      0.45768421,      0.22300826,      0.46048657,       1.5954235,      -2.0871136,     -0.34405432,      0.73369886,      0.87948102,      0.13680131,     -0.18531905,     -0.52474568,      0.37755453,        1.635646,      -1.2995387,     0.050098667,    -0.064947748,      0.50655947,      -1.1218868,       1.6653266,     -0.46552948,      0.37553836,      -1.6399114,     -0.18142495,     0.057809091,      0.29747277,     -0.29806536,      0.60574655,      0.71155785,      0.90484549,    0.0062659374,     -0.90107669,     -0.44949404,       1.1037803,     -0.87033761,       1.5305062,      0.65249392,     -0.53626515,     0.050493148,       1.1931236,       2.4676953,      0.83896589,       1.7522519,     -0.10330218,       1.5235523,      -0.3028054,     -0.57576667,     -0.56403016,     -0.32666171,     -0.91893235,     -0.82205258,     -0.30110052,     -0.54317132,     -0.38981839,       1.0749821,      0.81215401,    -0.029068281,     -0.11813997,     0.047338211,      -0.5276165,       -1.131455,       0.7303453,      0.63165853,       1.2730733,      0.66183335,       1.8106265,      -2.6188307,      0.34720042,       1.4665277,     -0.30541769,     -0.89005335,     -0.67713633,       0.6219059,     -0.52697689,       -0.548298,      0.33948429,     -0.56558491,       -1.806552,       1.9358027,      0.78638524,    -0.020147172,      0.40465289,      0.92374076,       1.7360819,     -0.42142149,      -1.0616416,       1.4309538,     -0.46148956,      0.32555089,       -1.409021,     -0.04864908,      -1.2543541,       1.2014046,     -0.43521595,      -1.6003847,      -2.1360045,     -0.70945308,      -1.4915567,      0.43741392,     -0.10286568,      0.17073237,      0.08522745,        1.208392,      -1.2637478,     -0.55512268,      0.65315134,      -1.1222275,      0.64207705,     -0.14116921,      -1.1503302,      0.36834803,    -0.064839214,      0.31753359,       1.8812226,      -0.2249589,      0.15042078,     -0.26201804,      -1.3741146,      -1.7705084,        0.155885,      -1.2267794,       1.5539756,      -1.0314407,      -1.1747458,       1.8700555,      -1.0916551,      0.30118145,      -1.3367823,      -1.1269655,      -1.0145379,      0.36150499,       1.8745916,      -1.6080882,       1.0298724,      -1.6021944,      0.96671105,     -0.26982271,       1.5037728,      -1.4840894,      -1.0082269,      0.49807743,     -0.52306813,     -0.27529975,      0.13239897,        2.163572,      0.97067263,       1.0411497,       1.6553883,      0.25060348,       1.1725867,      -1.0182426,      0.19119434,     -0.85562991,      0.56830613,      0.75847737,      0.85029231,       1.8090863,    -0.080275235,      0.75603445,     -0.23453761,      -0.6527834,      0.34467087,      0.98730455,       1.1449365,      0.50000529,       1.0082589,     -0.45015312,    -0.068445895,     -0.36642463,      0.84242119,      0.11457007,       1.5224169,      0.89605304,     -0.11121382,      0.92939512,      -0.2834438,      0.34453464,       1.0541408,      -0.2056341,       1.0736994,      -1.1679826,      -1.6965941,      0.28512933,      -1.4795431,      0.15028174,       1.0808378,       2.1651586,       -1.293166,      0.51158516,     -0.70692075,      0.45526269,     -0.77580031,      0.36653518,     0.010770895,      0.79786874,      0.50587411,      0.67925465,       -2.549435,       0.6851543,       2.2049101,        1.747824,       1.3118271,      -1.0912103,     -0.67211554,      0.55379327,       -1.276844,     -0.87324936,      0.40683827,      0.48674389,      0.29491861,      -1.7741354,     -0.78793942,     -0.55449435,       1.2182752,       1.1653697,     -0.43082303,      -2.1480375,        0.360265,    -0.064865068,     -0.68223537,       2.1110796,       0.4286464,      0.31167827,      -1.8122702,      -1.2115894,      -0.5987605,      -1.0352361,       1.1743732,      -0.4512119,      0.35263443,      -1.7136998,      0.35080533,      0.70938625,     -0.50459894,       1.9086065,      0.99059717,     -0.99078749,       1.8186156,      -1.0367926,     -0.70345659,      0.15765953,      0.10199132,     -0.73616054,     -0.41981218,      -1.5042232,      0.25314639,       1.2811643,      -1.5760073,       1.7573492,     -0.52453577,      -0.3615076,      -1.8600793,      -1.2179825,       0.7535064,      0.43620407,      0.48991705,      0.74006261,      -1.3227618,     0.090004141,      0.90940956,     -0.57449213,     -0.59295887,      -1.1679114,      0.55853867,      0.48402124,         2.71037,     -0.80520562,      0.58189819,      -0.8430881,      0.32433797,      -1.8374154,      0.46457468,     -0.53497159,       1.2202126,     -0.10003228,       1.0550113,      -1.3773371,       1.9934071,     -0.85611065,       -1.312691,      -2.1120234,      -0.4843704,      0.59669583,      -1.2230582,    -0.042305285,    -0.038938035,      0.39331025,      0.65702232,      -2.0933826,     0.027740399,     -0.27100659,      0.78906427,      0.92878523,      -1.0720899,      0.50161426,       1.0056979,      -1.6057624,     -0.41543887,       -1.189322,       1.3103961,      -1.3840068,      0.12016177,     -0.44948677,      0.59089445,      -1.1142574,      -1.5567129,     -0.66390374,      -2.7327766,       2.6704239,        1.016908,     -0.16499457,     -0.74281267,      0.10536179,      0.79945295,     -0.49430094,     -0.52997241,      0.87236004,     -0.33478828,      0.33562666,      0.28238842,      -1.6818414,       1.2280184,     0.043307031,     -0.64027492,      0.18322582,      0.32019729,       1.3490218,      -1.6183078,      -0.6293639,    -0.089462811,     -0.54576948,       1.1914177,      0.85096973,      -1.4789321,     0.082073063,     -0.61119544,      0.38618521,      -0.5470451,      0.32142503,      0.69015223,     -0.58409767,     -0.68460826,      -0.1741246,        1.375892,     -0.66990863,      0.58822643,      0.13489424,      0.30066071,     0.075584193,     -0.80245513,       1.4051984,        1.094694,      -3.6652971,       -1.857941,     -0.78575472,     -0.12528809,     -0.44989419,     -0.43400876,     -0.41518985,       1.5352111,    -0.023830879,       1.0566075,      -0.6592118,     -0.52838407,      0.17605696,     -0.46145194,      -1.4699946,       0.8605235,      0.20602889,      -1.6385609,     -0.14705636,     -0.58441525,     -0.21969432,      0.23960394,     -0.91434704,     -0.87859898,      0.96455181,      0.31954409,      -2.3971882,      0.91284971,      0.16544321,      -1.7514457,       1.0760694,      -1.6161621,       -0.771707,     0.055153024,     -0.39059941,      -2.0711174,     -0.99682529,      0.61611465,     -0.56944531,       1.0917914,      -3.0355632,     -0.16175861,       1.0898184,     -0.77157146,      0.96148868,     -0.37119693,     -0.36373474,       -1.967399,         1.02275,      0.80932246,       1.0948857,       1.6399161,       1.2789442,      0.79768147,     -0.35181123,     -0.69065004,      -1.8649808,      0.58090272,      0.75865034,      -1.5501494,         1.03683,      0.33903293,      -1.5138715,     0.092414834,       0.8126634,     -0.69540823,      0.44870256,       1.9692061,        1.411669,        1.850677,      0.99383072,      0.52212093,     -0.56884941,      0.18030536,     -0.40405948,    -0.083143093,       1.7535511,     0.087766451,       0.1712582,     -0.54886375,      0.51240641,       1.3815687,      0.92510545,      -2.0093334,      0.47682357,      0.42657062,      -1.4871957,      0.80149181,      -1.2322386,       1.9171319,      -1.1707679,      0.53372087,     -0.37912194,      0.69227961,      0.21493246,      0.67153891,     -0.18330925,     0.085054993,       0.3401182,      0.34785424,      -1.2800545,      0.29961227,       1.6087987,       2.4621463,      0.71343617,      0.53418759,     -0.92355098,     -0.65681117,     -0.43047258,     -0.70039781,      0.93493537,     -0.64169077,     -0.36519293,     -0.11506345,       1.4540125,     -0.80204304,      0.06689381,      -1.0474215,      0.32247794,      -1.8917832,       1.1886895,        1.249318,     -0.63716593,      -1.6108894,       1.1839649,     -0.88048991,      0.16945278,     -0.12394492,     -0.77514454,       1.7824762,      -0.8971002,      0.78634952,      0.36872089,     -0.57073709,      0.13849175,     -0.25045029,      0.37311201,      0.53497035,      0.40876357,     -0.10275797,      0.49182623,      0.13522765,      0.50860941,      0.12165711,     0.088302164,      0.83986928,     -0.31169182,    -0.071149202,      0.83409082,     -0.97276353,      -2.0024193,       0.3478194,     -0.71732289,       1.5296396,     -0.10628507,     -0.81503992,       1.0744625,     -0.87444466,      0.66506595,      0.28598666,      0.13245546,      0.38364071,     -0.23639444,      0.51907954,      0.29522267,       1.5577362,      0.48133693,      0.13041721,     -0.66619642,      0.64152665,      -0.6281743,     -0.83941662,       1.8235452,     -0.21928903,      0.26907925,      -1.6340952,     -0.65111367,      -2.3282601,      0.52856151,      -1.2179067,      0.32984429,      0.25475577,       2.1861912,     -0.22891347,      0.96888948,     -0.21182986,     -0.25088586,    -0.043832755,       2.2844931,      -1.0164777,     -0.35949757,     -0.91640696,     -0.59710637,       1.1331464,      -2.7265356,      0.19252205,      0.91541331,     -0.39725506,      0.65850368,    -0.058223706,    -0.081582227,      -1.0685008,     -0.45071196,       1.1473192,      0.34631075,     0.052162027,     -0.89151143,      0.25312297,      0.59516847,       0.2677759,     -0.50899633,    0.0046403272,      -1.9510406,      0.42247378,       1.7925029,      0.35055135,       1.8748473,      0.37366576,      0.17471474,      0.64588283,      -1.1843431,      -1.3652357,     -0.85550578,     -0.80190894,      0.75224107,     0.070978567,     -0.34123039,      -1.5016955,      -1.5747528,       1.1453929,     -0.62103562,       1.2326648,     -0.32717997,       1.1023235,       1.6229549,      0.94802527,      0.34023129,     -0.43815175,      0.87418684,       0.6528635,     -0.91152238,      0.30556808,      0.94448819,     -0.15045693,      0.65317323,     -0.61222822,      0.33539576,     -0.94131727,      0.49558615,      -1.8264639,      -1.8407165,     0.042861697,     -0.97723889,        1.162108,     -0.29006949,      0.45502349,       2.2986532,      -1.0351432,     -0.25134379,       1.7978907,      -1.9041238,       1.5725452,       2.0076426,      -1.6858424,      -1.0168413,     -0.55728042,        1.699972,       2.8256572,    -0.059821694,      0.62263925,     0.074852545,       -0.454779,      -1.0583145,     -0.17648782,      0.41282492,     -0.17350876,     -0.48252017,     -0.30562038,       2.0063065,      0.40848473,      0.36436986,     -0.22458225,       1.9098395,     -0.80893488,     -0.41981375,     -0.17867078,     -0.57280819,      0.43723687,      -1.3621507,     -0.62238571,       0.5368058,      -1.1184877,      0.38776795,       1.3502791,      0.42866598,      0.23240994,     -0.24971268,      -1.1471205,      0.14148615,     -0.95806421,      -1.9598911,      -0.7856813,     0.039237326,      0.30852406,       -1.024383,       1.8039083,       1.1831634,      0.40282718,     -0.39524808,     0.024047478,      0.47807028,     -0.35336752,      0.64721386,      -0.4793961,       2.3053814,    -0.039873826,      0.78938616,       1.6142802,      0.41001666,       1.0755997,       0.1067503,      -1.2570334,     0.082432741,      0.89988094,      -1.3710033,       1.4868662,      0.46983902,      0.27724479,      0.82049821,       1.3018908,      -0.7780687,      0.17782717,     -0.34076427,      0.10470528,     0.095703588,      0.69350076,    -0.082664595,      -1.4752144,      -1.4856242,     -0.55048096,     -0.43806658,       1.1775528,     -0.35405956,     -0.91987643,      0.42120294,     -0.53464592,      -2.3444248,     0.069374855,      0.42077667,     -0.48524915,      -1.0762116,      -1.2919706,      -2.0127505,     -0.72044116,      0.64630423,      -1.3874144,     -0.41542593,      -1.0560796,     -0.70371979,      -1.4909636,      0.73676742,    -0.076131997,     -0.84036296,      0.53677592,      0.10448113,      0.47573104,     -0.97880925,     -0.19669522,      -1.0439551,      -3.2404246,     0.069214259,     0.068079094,     0.041229985,     -0.23118416,      0.61010223,     -0.39114782,     -0.62792399,      -1.1175089,        1.407141,       -1.407457,     0.093409465,      -1.9190254,     -0.67887804,      -2.5795139,     -0.19916718,      -1.5336733,       1.4859981,     0.078111241,     -0.50164041,      -1.0435791,      0.27399836,     0.042534113,      -1.2940161,      0.41891505,      0.61301439,     -0.20119276,      0.50409815,      0.47259832,     -0.67816606,       2.2294612,     -0.12114834,      0.28597935,      0.51218498,     -0.95359626,     -0.44158431,     -0.35708148,       0.2030789,     -0.27266067,      0.68871709,      -1.9735203,       1.1487732,       1.1033496,      0.23105798,      0.76381274,       1.4640154,      -1.0137093,    -0.052712179,       0.6761258,     -0.38548699,     0.085866276,      -1.5177289,     -0.13372265,       1.0391814,     -0.36798218,       1.7210166,     -0.90975325,     -0.28777711,      0.31579025,     -0.72475647,     -0.70565755,       1.0609705,     -0.28401738,      -2.4186256,       1.8327124,      -2.1805233,        1.422525,      -1.5747654,      -1.6510879,      -0.6378268,      -0.9238784,       1.0472314,    -0.089965612,        1.060405,      -0.4482305,     -0.99993497,      0.45775792,       1.1813867,      0.63393127,     -0.13568046,      -1.1941224,     -0.92100368,     -0.32985062,     -0.59722543,      0.73924247,       1.0045173,       1.1298147,      -1.7344933,        0.103387,     -0.92122481,     -0.81204665,      0.22821317,       1.0335808,       1.4658645,      0.34150366,     -0.79695462,      0.76028223,    -0.043165127,     -0.66044209,      0.55031694,     -0.04735639,      0.96490425,     -0.58788288,      -1.3666327,      -1.2382248,      0.47470917,      0.55279183,       1.1459122,      -1.3765851,      -1.0018761,     -0.37306708,      0.35414747,      0.17390398,     -0.92605098,      0.39300567,     -0.31933318,      0.37244641,      -0.3157013,      0.88318509,      -2.1174943,       1.1029802,     -0.57007194
+1999Y,     -0.60959661,      -1.2851172,      0.27041265,     -0.44653421,       1.0855782,      0.64282763,      -1.3376856,      0.34955882,        1.383069,      0.90371981,      -1.0538951,     -0.40590398,      0.40661957,      0.19782858,      -0.2351741,       0.8514837,       1.3571887,      0.21800757,       2.2812046,      0.81575335,      -1.7255965,      -1.5115426,     0.084885589,     -0.14853863,        1.056119,     -0.38663794,       1.8277861,     -0.74919121,     0.066349547,      -1.2366211,       1.7897441,      0.49976883,      0.74463002,       0.2351374,       1.5812297,     -0.24411733,     -0.97373509,       1.3900895,       1.8766365,     0.046464991,      0.17840536,     -0.78554494,       1.2509815,     -0.59845043,     -0.29013855,      -1.0721941,     -0.67605382,     -0.96646674,      0.28477025,     -0.89172648,     -0.81592262,      -1.4563171,      0.70800318,      0.81540435,     -0.03785952,      0.65630794,      -1.4417449,      0.41749779,       1.1553328,      0.31341389,     -0.98594967,      0.60274231,       1.0091622,     -0.38265396,     -0.78732477,     -0.44132345,       1.6858401,     -0.18107043,      0.38757885,       1.8159675,      -1.0642649,     -0.66411744,       2.0462947,      0.34091083,     -0.73765377,       1.2784453,      0.48287967,     -0.82799731,      0.88972545,       1.3766909,      -1.1181575,      -1.7580031,   -0.0046715039,      0.54030003,       2.2426645,     -0.40952421,       1.3820159,      0.55557477,       1.2053234,    -0.032905716,       1.3488296,      -0.1203906,      0.26647507,      -1.8342182,       0.8943846,      0.40403809,      0.56793089,      0.75280266,     -0.66005695,      -1.2758766,     -0.17168814,      -1.1140591,     -0.81444831,       -1.090649,      0.15207055,      0.10027136,       1.1482065,    -0.076091867,     0.065460956,       0.9953549,      -1.0521307,    -0.096101384,     0.084391096,      -1.1587746,        0.429939,     -0.59754111,     -0.39996941,     -0.10307804,      0.53834136,     0.011462228,     -0.69856909,     -0.78504725,      -1.2441739,       1.9363843,      0.40532366,       1.6716343,     -0.18361403,      0.88591146,    -0.050787835,      0.30695843,      -2.9074477,      0.93802757,     -0.59995163,     -0.82687067,       -1.655391,      -1.0135066,       -1.000015,      0.56970685,      0.50436737,      0.88096069,      -1.0907119,     -0.96654077,      0.25420406,     -0.92331858,     -0.60270881,      -0.8971514,      -1.1227829,      0.80947721,       0.5469118,        1.670188,      0.15918836,      0.66805645,     -0.88512024,       0.5447195,      -0.1046952,       3.4126119,     -0.60033506,      0.79872182,     -0.49915644,     -0.72589327,      0.23170803,      0.96469749,      0.79006348,     -0.86591678,      0.28829167,     -0.54540465,      0.25673779,      0.96492809,     -0.38641374,       2.1928929,       1.1017151,      -1.1182301,      0.29493932,      0.62125858,     -0.72910047,     -0.77566142,       0.2729692,       1.1276563,       1.0608984,     0.090104091,      -1.5265268,      -1.9364147,     -0.25543388,    -0.056100038,       2.1235302,      0.71599841,    -0.027081421,       1.6168411,     0.067035081,      0.42617244,      -1.2292305,      -0.8802288,     -0.63656939,     -0.27115077,     -0.51285872,     -0.63400708,      -1.3643813,      0.78908042,     -0.95699379,      0.68677043,      0.47993648,     -0.66280208,     -0.89851435,     -0.52840616,       1.3253503,      -1.2165047,      -1.4138442,      0.52135686,     -0.97656317,      0.87805522,       1.3730442,       1.3657845,      0.99600383,    -0.057975213,     -0.67714238,        1.153324,     -0.39368367,       2.1580178,    0.0097842033,      -2.1687863,     -0.41201568,     -0.85358141,        1.118898,       1.1196418,    -0.054026436,      -1.5562045,      -1.3374462,      -2.5171181,      0.21015007,       -1.281096,       1.1202709,     -0.24382742,      0.53148342,    -0.085757738,       1.9821778,      -1.3738957,      0.66775595,      0.91760284,     -0.95854007,      0.60812627,      0.87870244,       1.5739131,      -2.0086293,      0.31313509,      0.46643867,     -0.51152665,      0.32711075,      0.29318461,      0.60456023,    -0.046452148,    -0.091453503,       1.3576287,      0.99485412,     -0.10416098,      -1.0189659,     -0.11491603,     -0.46726662,       2.6174409,      0.65119985,      -1.9677088,      -1.3576393,     -0.19872693,       0.7185052,      -1.6174693,      0.36458043,      0.12871033,      -1.2002551,     -0.26465628,       1.5026627,      -1.2800832,     -0.95675997,   -0.0053406782,       -1.925159,     0.035712854,     -0.90992529,     -0.93353812,     -0.16901926,      -2.1335676,     -0.18768836,     0.072583964,     -0.27534669,     -0.18065215,     -0.16582795,     -0.65027041,     -0.28025205,      -0.1297101,       0.4862611,      0.37953603,     -0.12150732,       0.2463953,      -1.3208354,       1.4036252,     -0.83829127,      -2.4181859,     -0.95104221,       1.1553396,      0.84240916,      0.78889457,      0.72927512,     -0.85371114,      0.42989541,      0.76044408,     -0.28405753,    -0.072805875,       1.8370722,       0.1933652,      -1.1080038,       1.4197633,       1.0365438,     -0.70616816,     -0.21987619,      0.39348923,      0.56119855,        1.647152,      0.90240813,      -1.4517061,     0.067585884,     0.092872852,       1.3761486,     -0.41426862,     -0.99246055,        1.903476,     -0.95949167,     -0.39880181,     0.032257844,      0.52375907,      -1.1116922,    -0.031255965,     -0.52047444,       1.1989217,    -0.019558128,     -0.51347383,      0.21292331,      -1.5897777,     -0.80016572,      0.67789446,      -1.1935313,       1.6919043,       1.6430221,      0.71982175,      -2.0796466,      -2.1335583,       -1.018096,     -0.14189492,      -1.7684799,     -0.29678502,     -0.50165454,       1.1835448,      0.47041675,     -0.29571907,     -0.46285253,      0.31534565,      -1.3454561,      0.86395848,       0.1827245,      -0.9939707,      0.88130537,     -0.54478025,     0.051191917,    -0.060762614,      0.12626435,     -0.53365691,     -0.17097693,       1.1780989,       1.3803229,       1.0275982,      -1.1786609,      -1.0432015,     -0.86732851,      -0.3922198,      0.96639829,      0.51458031,      -1.1625848,      -2.0697725,       1.0170438,      0.24205947,     -0.26542504,      0.33444333,     -0.58771533,     -0.70500801,      0.61119884,      0.11377524,    -0.081955843,      0.86113699,       1.3105236,     0.048804795,     -0.99055302,     -0.26431227,      0.66796836,      0.31771283,       2.1744179,      0.57780989,      0.03307138,    -0.077229931,      0.39862793,       1.3202318,      0.34149613,       1.0350492,     -0.40321222,      0.12949368,      0.14806946,       1.3161182,     -0.14662579,      -1.1906776,      -1.3202469,      -1.1954867,       1.1077743,       1.3799669,       0.1411315,     -0.55847958,      0.22097327,       2.1018817,      0.63987927,        2.249034,      0.19163588,     -0.64261814,        1.337751,     -0.79133251,     -0.27188296,     -0.75535278,       1.5883968,       1.3605018,      0.71498216,      0.57517042,      0.32340198,      0.44483005,      -1.0994805,     0.037111465,     -0.88517896,       1.8691063,       1.5146789,       2.2353081,        1.214032,       1.0828166,   -0.0024801843,       1.5302732,      0.25377676,       2.1756613,     -0.50353787,     -0.27926826,        -2.08317,      0.71329613,      0.79769232,     -0.18008339,     -0.21291572,       1.1074506,      -0.3120661,     -0.73568629,      -0.9048674,        1.506676,       1.4955073,     -0.50650831,      0.28273046,      -2.2277311,     -0.55386518,     -0.13374519,      0.85460013,      0.93369788,      -2.2094068,       1.1860071,     -0.63702603,      0.65232848,     -0.31570466,     -0.97704621,      -1.8832032,      -1.0184686,       1.1702485,     -0.38249552,      0.34442991,     -0.74124458,      0.78063305,      0.30674594,      0.45462711,       1.4735422,      0.69974063,      -0.0664002,      0.54140022,       1.3905332,    -0.080961359,     -0.37917639,       2.1682212,      -1.3596078,       0.7991056,        1.410776,      -2.0337947,     -0.73047242,       2.0688491,      -1.3373215,     -0.37125751,      -1.2635014,      0.43034146,      0.62448975,     0.024408587,      0.27940781,     0.055343042,     -0.79686738,      0.96435637,       1.3402227,       1.7805998,      0.54266946,      -1.1036393,     -0.88136255,     -0.75180673,      -2.2790178,       1.2572656,       1.2623277,      -1.7487406,     -0.77384006,       1.4415696,      -1.3889999,       0.2345062,      0.60250876,     -0.36268868,      -1.1120031,       0.9345192,      0.51035513,     -0.84243904,     -0.42523585,      -1.0996713,     -0.99871098,     -0.52314172,       -0.194827,      0.45558679,     -0.37651691,      -2.5604993,      0.55076898,      0.18244386,      -1.4517856,     -0.81543414,     0.025442508,     -0.20524957,     -0.15855822,      -1.4738303,       1.2883251,      0.19542941,       0.2629338,       1.0112473,      0.29456097,      0.59991317,        1.208255,      0.59778858,      0.99720046,      -0.6286306,      -0.5975439,     0.018453657,      -1.3550091,      0.97332109,     -0.81662419,       2.1617182,     -0.95999469,     -0.14416734,       0.4653599,      0.94607006,      0.64812597,     -0.76539896,       1.3846137,     -0.70116186,      0.41546706,      0.38245097,       2.0668322,     0.057887227,      -1.3101776,       1.3517867,       1.7183055,     -0.25516735,      0.13246649,      -0.3631883,       0.6831512,     -0.26321541,      0.70954892,       1.4513419,      0.08545127,     -0.90702565,     0.091923739,      0.77225541,     -0.50599482,      0.49658246,       1.8232045,      0.18656851,      0.16115819,       -2.906913,     -0.43395409,     -0.13127458,        1.276536,      -2.4822505,        2.170749,     -0.14851082,     -0.53264882,     -0.25053751,      0.10115085,      -1.2632575,      0.30819273,      0.81898764,       1.0617053,     0.020952048,       1.1739298,       1.0439338,      0.19653765,     -0.31569567,       1.5644352,      0.56146546,     -0.72486519,     -0.93978817,        1.361717,      0.33167973,      0.90600963,      0.41288999,       -1.630271,       1.1037628,      0.21630575,       1.6929529,    -0.015707573,      0.16013089,     -0.83554847,     -0.53636548,       1.4029082,      -2.7343759,     -0.75137189,      -1.7036269,      -1.1690319,    0.0082399652,       1.9965691,     -0.18219281,     0.014810029,     -0.21393449,      0.14366403,      0.27638345,       1.0291971,      0.18012258,     -0.63961352,      0.59176736,      -1.3219954,       1.9400951,       1.3196597,     0.093165884,     -0.35275266,      0.60460879,      0.71386577,     -0.28313345,    -0.082440964,     -0.19028068,       1.2120369,       1.4897623,       1.7892909,     -0.15438139,       -1.620671,      0.67210837,     -0.43790557,     -0.36540572,     -0.37530123,       1.1322069,      0.55902626,      0.49237826,     -0.54393673,       1.6179749,     -0.53205115,      -1.4499132,      0.90297163,      -1.2190464,     -0.48835505,      -1.3963306,       1.5407847,     -0.94921816,     -0.60902201,      -1.3894021,      0.22836075,      -1.3748319,      -1.1952009,        1.261832,     -0.34319158,      0.20810803,      0.22180085,      -1.6541947,      0.10883404,     -0.56757611,     -0.11850958,     -0.15376704,      0.25028611,     -0.17453456,      0.79980349,       1.5121643,      -1.7294057,     -0.65472004,      -1.8098665,      0.63416243,     -0.70936728,      -1.0803682,     -0.84956754,      -1.2569951,      -1.2642988,     -0.91050438,       1.3638054,      0.49195575,       1.9188183,     -0.65885632,     -0.11372559,    -0.099851418,     -0.17445011,     -0.71535894,     0.062703773,     0.098851698,       0.4513855,     -0.46975936,    0.0082510994,    -0.045028246,     0.039094295,      0.94637166,      0.67237679,      -1.1238973,        0.150064,     -0.22938893,      -0.5513459,       1.1786804,      0.76599834,      0.83094315,      0.34142535,       1.3698854,      -1.7244447,     -0.27439875,      -1.2717958,     0.046441913,      0.32077979,       1.0146402,      -0.8255021,      0.38534721,      0.47985178,       1.6643685,     -0.24863093,     -0.34767815,        0.734367,      0.65290376,     -0.59574195,      0.19027459,     0.052457232,     -0.71293226,      0.33336193,    -0.044056318,      0.19888524,       1.6528547,      0.82933051,     -0.54134224,     -0.79004624,      -1.3361918,     0.044498262,      0.23041169,       1.3595571,       2.1360087,      0.64127936,    -0.053933568,      -1.3469155,      0.58692602,      0.66917517,       1.3882087,       1.2295108,       0.7745257,     -0.50766777,      -2.5497254,     -0.39053097,     -0.93862976,       1.5646438,       2.6067729,       0.2623647,       0.6133323,     -0.61518072,      -1.0115926,     0.064672588,     -0.40402416,       1.5011893,     -0.18400356,      -1.2085765,      -2.4006639,      0.91372256,      0.30775633,       1.2175085,     -0.58827642,     0.093119952,        1.470116,      -2.6844746,       0.8416275,      0.73649907,       1.1325264,    -0.091985315,      -1.7992055,      0.13742474,      0.40547867,     -0.67198813,     -0.92276564,      0.26963771,       0.4116146,      0.01022268,      0.82612463,      0.15316277,     -0.79608859,      -1.8865823,      -1.6664177,     -0.52774268,      0.10278227,       1.4629488,       -1.598161,     -0.32015441,      -2.1340354,      0.53543577,     -0.10223439,      0.71676269,     -0.51574291,     -0.08278241,     -0.66296438,      -1.4377668,      -1.4194973,      0.49231132,      -2.0448724,       1.2986279,       1.0296092,     -0.45362637,    -0.014665742,       2.4306565,      -2.1179982,      -1.0138966,     -0.55369692,     -0.33028599,      -0.4273187,       2.3945759,    -0.080527805,      0.71035613,     -0.52530353,     -0.46243296,       0.7111413,      0.72372158,      0.18579294,      -1.6317079,       1.1045828,     -0.41493864,      -1.3166655,      0.10451515,      0.44366141,       1.1871034,      -1.0521364,     -0.26041879,      -1.0407795,       1.2943296,     -0.89305409,      0.51120912,      0.15021982,      0.28548198,       2.3973095,      0.27454134,   -0.0016572937,       2.5065021,      0.70912629,      0.39975282,      -0.8576558,       1.2049357,     -0.55433796,      0.69726986,     -0.38921823,     -0.49550556,      -1.5801576,      0.63208678,      0.57221962,      0.55415161,     -0.99449781,      0.70976784,      0.39381934,      -1.1353733,      -1.8431955,       2.0430264,     -0.16607955,      -0.1493567,      0.21602438,      -1.0676767,      -1.1628291,      0.64265755,     -0.13596925,      0.16872703,       -1.192673,     -0.70780042,       2.0973098,       1.9935144,      0.56077838,     -0.18983789,     0.094298716,      0.43447863,     -0.55922322,      0.57719484,     -0.30120557,       1.1810364,       1.3807828,     -0.24776992,      0.29598599,      0.34873931,     -0.58833027,      0.21127087,     -0.20143805,       0.6433832,     -0.48784159,    -0.023638462,      0.52199281,      0.54465232,      -1.0288193,      -1.0490495,     -0.42217455,      -1.0508827,      0.33089072,       2.1984421,     -0.45253347,      0.26751534,    -0.026481114,      -0.5027467,      0.20776658,       1.1837029,     -0.11582643,    -0.077638163,     -0.85925501,     -0.50053327,    -0.079704321,      0.93512843,       1.2231914,       1.4729646,     -0.81386102,     -0.35029302,     -0.17942658,     -0.97344923,       1.3340751,      0.50800371,     -0.44820016,     -0.84836505,   -0.0075442642,      -1.3249114,      0.32141499,       2.6750504,    -0.015972313,     -0.78366506,     -0.51890411,      -1.3033757,      0.49254686,      -1.8451415,     -0.48601641,      0.28780827,      0.15637548,       1.6925824,      -1.6447109,      -1.6583856,       1.1638395,      0.93881699,     -0.93520699,      -2.2590023,       1.5036388,      -1.1054636,      0.52887331,       1.3790893,       1.7339859,      0.55065675,      0.73237784,      0.50506885,     -0.11341445,     -0.79960057,     -0.20354468,       1.6706872,       1.1866898,     -0.97035284,      -1.5197166,     -0.81446403,      0.13540215,     -0.52356909,       1.4574196,      0.40693891,     -0.35751547,       2.5117068,      0.32656136,      0.55322434,     -0.89207555,     -0.26669311,     -0.42272796,     -0.35173109,    -0.051508496,     -0.82318334,      -1.2915566,     -0.35761268,      0.81231763,      0.75520868,      -1.2694048,      0.43452942,       1.6416123,     -0.35896473,    -0.015500889,      -0.9529103,      0.61373261,     -0.28777669,     -0.82942737,     -0.97282964,       2.5664441,     -0.37015451,       0.1683724,       2.3676588,      0.32016925,       1.0408183,      0.12147752,       2.1578947,     -0.10265197,     -0.63654727,      0.93239709,       1.3833354,      0.48710109,     -0.17255895,      0.12801097,       1.7348419,       -1.939676,     -0.80586899,     -0.16830956,       1.6969975,      0.17495465,      -1.2058906,      0.73616701,     0.059337335,    -0.081094312,       1.0894474,      0.25179915,      0.45802927,     -0.67676196,     0.068332413,      0.81385382,      0.68535639,      0.67993912,     -0.94327353,      0.78448876,       1.3920908,      0.49673792,      -2.3006722,      -0.4715148,     -0.75454162,    -0.027808302,       1.8573491,       1.3912883,     -0.81110445,      0.42843732,      0.23203902,       1.9345666,      0.51682449,     -0.52296882,     -0.20048501,      0.51227547,      0.72843382,     -0.62756586,     -0.18123559,      0.42959461,     -0.26356453,       0.8365507,       1.4598937,      0.37274153,    -0.033807562,       1.0058499,     -0.18915678,     0.022801932,     -0.41831209,      0.75594581,      0.59891211,      0.58789578,      -1.0048993,      -1.5984456,      0.24099814,      -2.0883917,      0.29517676,      0.37294789,      0.64240614,      0.94389118,      0.27358324,     -0.15496174,      -0.6518642,     -0.25919875,     -0.73404051,      -1.9097467,      -1.6040438,    -0.091146236,       -0.401905,     -0.22880792,      0.13079275,      -0.7384197,     0.091601706,      0.14281279,      -1.5950992,       1.0304621,       1.2391327,      0.22485701,     -0.31097847,      -1.0464584,       -1.019954,      -1.2524711,      0.55459757,      -0.9229791,        0.837904,      -1.6939534,      0.86628833,      0.47937992,     -0.86517069,      -2.0510266,       1.0070608,      -1.1301706,       1.6922725,      -1.4419347,      0.83228152,      -1.5263449,      0.21414382,    -0.026850413,     -0.74464167,       2.1152284,       1.0120237,     -0.55230431,     -0.32866667,     -0.44973788,     -0.87360892,     -0.76646349,     -0.76895363,     -0.65085222,      0.51438343,    -0.096722713,     -0.51832573,      -0.4292871,     -0.87707274,      0.58340647,      0.39524624,     -0.94632335,       0.6480759,       2.0702437,      0.60253428,     -0.20307049,      -1.0023325,    -0.027367708,     -0.36211977,      0.64621243,    -0.028711856,     0.053048477,      0.20564364,      0.10991885,     -0.73156798,     -0.63518532,      0.72011928,     -0.19758885,     -0.13132435,      -0.7277377,     -0.56298487,       1.5427371,       1.3639836,      -1.4409054,      0.17798971,      0.28443091,       1.2199337,     -0.48578682,      0.47336681,      0.29199994,      0.78729023,       1.2676333,      -1.7398574,       1.2348832,      0.93881579,      -1.0351241,     -0.29154222,      -1.4207867,    -0.016785775,     -0.33290255,     -0.41387382,      0.18881149,     -0.13296015,     0.034865602,      0.58718783,       1.8074543,      -1.5250196,      0.66546341,     -0.34945643,     -0.95190269,      0.96403594,      -1.4210885,      -2.3435179,       1.4485358,     -0.19119247,        1.528258,       2.2594532,      -0.9763425,     -0.95469416,      -1.8737559,       1.2257299,      0.47436442,      0.26236219,     -0.41827305,      0.59587873,      -1.5376002,      -1.6231828,      0.40763989,     -0.25252769,      0.58391484,     0.083768896,       0.6958317,      0.68338368,     -0.25903822,      0.18918086,        1.220863,      0.49337725,     -0.43648667,      0.79213294,      0.26959902,     -0.81575359,      -1.1956234,     -0.46025541,     -0.13749773,     -0.41082159,      0.72992581,     -0.21104355,      -1.0769155,     -0.77988665,    -0.058672419,     -0.51472797,      -1.6177581,       2.1510037,     -0.41011795,     -0.93267266,     -0.26661679,    -0.030363766,       2.4665387,      0.23786731,      0.25666204,     -0.21135179,     -0.14540859,     -0.68035962,     -0.93787417,     -0.20900147,     -0.94406966,       1.4733617,       1.1289525,      -1.9976779,      -1.9154953,       1.0263532,      0.88101391,     -0.44740393,     -0.54434898,      -0.4271239,      -1.4997455,      0.31524142,     0.097211596,       1.3563914,    -0.022957373,      0.81794637,       1.8975383,      0.27108784,      0.55791419,      0.74398408,      -0.9402468,      -1.5329648,      -1.4566238,      -1.5268268,     -0.37754354,     -0.81758596,      -0.5108975,      0.23332234,      0.24540136,     0.046318888,     -0.52751627,       1.1016917,      0.22435621,    -0.039429731,      -1.1887157,      0.58467601,     -0.45130898,     -0.24188471,     -0.59731478,      0.63381406,      -1.6878394,      0.37679462,    -0.080286264,      0.47939003,     -0.97327621,      0.58032273,       1.2117994,      0.64360063,      0.67966455,     -0.73517081,     -0.39185801,       1.3709206,      0.76292696,      0.63639094,       1.8591107,      0.15132682,      0.55325073,      0.35833494,     -0.45509845,     -0.34573469,       0.7618147,     0.067379957,     -0.99105951,      0.28857958,     -0.72073889,      0.36649418,     -0.54455424,       1.1197723,    -0.042477405,     -0.54185822,       1.2445441,      0.25739789,       1.6047989,     -0.76461826,     0.041786288,      0.11092093,       1.5439899,      0.95846504,     -0.43489764,      0.21730329,      0.98175225,      0.48645266,      -1.5158279,       0.3056071,     -0.48389155,     -0.73303001,      0.87097705,      0.41919966,     -0.73766788,    -0.044293888,      -2.0376086,     -0.21191419,      -1.1510184,      0.67634435,      0.63686228,     -0.54705983,    0.0072487731,      0.35457301,     -0.22128338,     -0.56059023,     -0.30236801,       1.7447909,      0.58409791,     -0.27213699,     -0.45860577,      -1.3746427,       1.9047586,     -0.01740865,       1.2701241,       2.1119158,       1.2344257,       -1.781164,      0.15720798,       1.7519053,     -0.15996229,     -0.54574375,      -1.0525549,     -0.18935088,      0.48086226,     0.041768249,      0.70088968,      0.58969696,      0.20198167,        1.107982,     -0.90676722,      0.30580055,       0.4037241,      -1.9911452,      0.13537164,      -0.3514008,       1.2221048,       1.2859888,      0.91217209,      0.52268231,      0.22962737,      0.38053343,      -0.5838497,     -0.84577743,      -1.0546057,       2.0105798,     -0.31207813,        1.521734,       1.2020718,     0.010407533,      0.81144173,       -1.451206,      0.26560214,     0.018292187,      0.12868638,     -0.89508661,     -0.82697731,      0.24103626,        0.923213,     -0.72569127,     -0.79672996,      0.44048758,      0.30796225,       0.3361043,       2.5432528,     -0.84702816,      0.63987825,     -0.13423557,      0.33878789,       1.4358877,         -1.1154,       2.5867768,      -1.6503728,       1.0558594,      0.80915893,    0.0056696664,     -0.98848819,      0.41501002,      0.49167762,       1.0043651,       1.5049314,     -0.75697191,      -1.6400778,      -1.8798146,     -0.93226689,      -1.3847879,      0.12881547,      0.70509146,       1.6803444,       0.7259714,     -0.92428396,    -0.077761052,      -1.6321746,      0.37566826,      0.50236616,      0.53428641,     -0.52964417,      -0.2305068,     -0.49224781,      -0.2229939,       1.8071594,       1.2976588,     -0.11291156,     0.082205532,     0.093770645,    0.0033171676,     -0.25730569,      -0.9477763,        2.901526,      0.29251985,       1.4928498,      -1.2708443,      -1.1836842,      0.31494909,       1.9228166,     -0.51126125,      -1.5325018,     -0.86015802,     -0.33139087,       1.1311756,      0.37619816,       1.8749028,     -0.13340646,      -2.0428258
+2000Y,      -1.4182614,       -1.197793,       1.3333977,      -1.3610463,      0.40634945,     -0.80894426,       1.3898302,      0.43921834,      0.27654013,     -0.90759236,     -0.45148212,      -1.1596246,     -0.51771899,     -0.81885337,       -1.508122,      0.68177497,      -0.4857342,      0.07723825,     -0.44975338,      0.25881933,     -0.98809298,      0.33917367,      -0.2731463,       1.0029153,      -1.5138729,      0.15772452,     -0.69754059,        1.142765,        0.831876,      0.41514702,     -0.40506047,      0.28045263,       1.7013912,      0.87268929,     0.016965461,     -0.58425839,   -0.0061004177,      -1.0302576,     -0.71805771,     -0.53431658,     -0.16465609,       1.1628012,     -0.31155834,     -0.77705324,      0.90720929,       1.5093976,       2.2683083,     -0.14590989,     0.020122383,       0.4468789,      0.26269786,     -0.93251979,       1.7502176,    -0.055910028,       1.7752175,     -0.85132162,     -0.11199006,     -0.43364352,     -0.99842398,     -0.41193632,      0.74473653,      0.55494868,     -0.81096785,      0.59170904,      -1.3383007,       1.5169914,      0.92726594,       0.6668142,     -0.17351883,      -1.0694385,      0.21285391,     -0.37476087,     -0.60586934,       1.1941307,      0.72661906,      0.55180516,      0.56095428,      0.56908526,      0.65162039,       1.6460065,      -0.7107858,      0.43164307,      -1.2863395,     -0.81813152,      0.81797512,      0.10947148,       1.7011418,     -0.59605707,      -1.8673644,      -1.6964217,      -1.5573218,      -0.1904634,     -0.08893338,     -0.46186581,       1.2005941,      0.91333414,        0.901343,      0.48398985,     -0.49403807,      0.41891969,     -0.40679918,      0.74288317,      0.42741791,       0.1396063,      0.88187458,      -2.4691961,      0.65245146,     -0.85360368,     -0.70872602,     -0.20804251,     -0.63088294,      0.99579405,        1.401421,      0.65794152,      0.16875831,      0.76548259,        -1.41097,       1.1389349,      0.15161266,      -1.6594842,     -0.39015886,      0.62499677,      0.72314652,     -0.52758421,     0.032890969,      0.46735226,     -0.25787394,       1.0542333,    -0.044562505,     -0.21821337,     -0.60880705,     -0.51176756,       0.9190071,      -1.1471741,      0.76343164,      0.65499384,     -0.82761587,      0.34635842,     -0.20434731,      0.92546752,      0.78304142,     -0.23043809,      0.13918185,     -0.24489218,      -1.2479026,     -0.17818441,      -1.2838841,     -0.31275997,      0.53607293,       2.8349171,     0.015000238,       0.5341265,     -0.52821708,      0.32165634,     -0.18206425,      0.11929701,      0.65240052,     -0.71102006,        1.077895,      0.19312351,     -0.42927106,      0.75083761,      0.19223635,      -1.5061642,      0.77869202,     -0.97188687,      0.18126774,       1.5006476,      0.46079578,       -1.646767,       1.4146961,      0.80612729,     -0.49112483,    -0.072396758,      0.93262039,       1.2300302,     -0.97950313,      0.82076341,       2.6753408,      0.21798863,      0.22005607,      0.28336948,      0.30594107,      0.17116775,     -0.07659864,  -0.00098015058,        2.147358,     -0.78706507,     -0.38315251,       1.5608019,      0.50848492,      0.45346065,       1.4106056,     -0.13053527,       1.8158659,     -0.98780999,      -1.5716605,     -0.20224386,      0.13639368,        1.331244,    -0.012178795,     -0.96110338,       1.0563627,       0.1729689,       1.7921396,      0.96695104,      0.46991605,     0.028864946,      0.93166762,      0.98492269,     -0.14178837,     -0.64844788,      -1.2670802,      -1.2039374,       0.7034991,     0.049129906,      0.46612068,       1.3595863,     -0.74108946,       1.0902983,      0.36397215,     -0.77214629,      0.45417918,      0.97266304,     -0.97561809,      0.76628854,      0.47936947,     -0.94117312,      -1.3969812,        0.706762,      0.26509714,      -1.5206615,     -0.35889161,     -0.93098359,       1.3362202,       2.9454452,       1.1237336,       1.1921625,      0.10204631,     -0.21437753,     -0.36059586,      -1.2947357,       1.0082898,       1.7713642,      0.17933971,     -0.60324059,      0.20870566,      0.74813735,       1.4519183,      -1.6799211,    -0.062622374,      0.51274247,      0.30320272,       0.2508319,       0.7036808,     -0.54680349,      -0.9723846,    -0.046659742,       2.2521819,     -0.30863142,       1.5885042,       1.1236423,       -2.511323,       1.0049786,      0.20492038,     -0.49821336,      0.42902468,     0.013242868,     -0.83275851,      0.25675128,       1.5466081,      0.81184244,       0.6204898,     -0.86731884,      0.36803507,       2.3289158,      -1.1414225,     -0.48550992,      -1.8952864,     -0.55415903,       1.6257687,      -1.5395978,     -0.53793937,      0.63660985,       1.1682692,       1.9774498,     -0.69823737,      0.11592334,     -0.42239049,       1.7458756,      0.62146231,      -1.1811559,      -1.0591353,     -0.27578349,       0.2337382,      -0.4370333,       1.1546967,      -1.0193482,      0.02249715,      0.34126736,       -1.966821,      0.39395354,      0.69288584,      -1.1094162,      0.26544609,      0.10176002,       1.0675928,      -1.7244071,       0.1501805,     -0.36784707,      0.35292716,     -0.39741925,     -0.69809742,     -0.62453349,      0.21721424,     -0.69640926,      -1.0003087,      0.73325251,       1.3869509,        2.190595,       1.8318616,      0.46238817,      0.31470388,      0.43085111,      0.21003853,       -1.603828,      0.33798183,       2.7748493,      -1.4697278,       1.2759978,     -0.44638766,        -1.19474,     -0.19754246,      -1.6062196,      0.80957327,       1.1793058,      0.84138763,      -1.1332839,      0.24678796,      -1.3435698,      -1.9206504,        2.068306,     -0.31786966,     -0.76612049,       1.4884201,      0.71920392,        0.715316,     -0.73782444,    0.0067487885,     -0.47904445,     -0.74379427,      0.34737511,      0.83056636,     -0.72899101,     -0.70171025,     -0.36604669,      -1.2084643,     -0.93046788,      -1.0826962,     -0.39669531,     -0.38054816,       -1.153357,    -0.018152865,       1.1794372,      0.69797926,      0.13929034,      0.19655422,     -0.19177208,     -0.19156565,      0.72094643,      0.51585873,     -0.40021686,    -0.010453062,       1.4703994,      -1.4007523,      0.38878396,      -1.1778327,      -1.1866903,      -1.2180928,      0.74916226,      -0.3858768,      0.98101731,     -0.73383418,     0.081281136,     -0.41967827,     -0.48885777,     -0.52033341,      0.72545801,       -1.053269,       0.5157479,     -0.98403304,     -0.24758659,       1.3698577,      0.11525487,       1.2089927,      0.65033069,     -0.98508026,       1.9474018,      -1.2025676,      0.29151663,    -0.072843793,    -0.049629989,     -0.92123539,   -0.0017271589,     -0.45269368,      0.98984521,     -0.83397873,      -1.6292371,      0.42318038,      0.56122076,     -0.19818334,       1.0937324,     0.033042741,     -0.99846271,       1.1021882,       1.0405792,     -0.10393593,      0.22069504,      0.65986871,      0.34644338,      0.47861956,      0.58721215,     -0.63529057,       1.2658952,      0.67078161,     -0.41716307,     -0.74046105,     -0.40608579,      0.61995353,      0.60708451,      0.66101505,      0.26528439,     -0.78342407,     -0.10905052,       1.6322808,       -1.717199,       2.9210361,     -0.67319064,       -0.169456,      -1.4799936,      0.33736451,     -0.43290724,       1.3593627,     -0.78608738,       0.6967472,      0.39062392,       2.1166271,     -0.39274678,      -2.2392037,      0.67529031,     -0.56462576,      0.67508139,      0.15318309,     -0.87702956,      -1.7222921,     -0.21622897,      0.92634678,      -1.2750859,     -0.61982118,     0.068382049,       1.1937135,     -0.97197383,      -1.0801567,       0.4114167,       1.0548198,     -0.73744199,       0.8698607,     -0.11642828,     0.060032867,     0.010924617,      0.24992978,     -0.15065576,      0.58117366,      -1.6469286,     -0.73729309,       1.2727044,     -0.27400334,      0.35319957,     -0.83727548,      0.64175614,       1.2242717,     -0.85783026,      0.71401588,     -0.34962474,      -1.6829748,       1.3568183,      0.49756874,     -0.13429627,      -1.3086578,      -1.1133881,      -1.4772995,      -1.8322581,       1.4312876,    0.0052356622,      0.71261421,      0.24560319,     -0.43389541,     -0.86638182,      0.87583131,      0.22883106,      0.49107369,       -0.144844,      0.67825456,      0.44784839,       -2.222702,      0.69386853,     -0.18278188,    -0.062527168,     0.095429665,     -0.63192565,       0.9965398,     -0.43998623,     -0.50091174,       1.0622189,     -0.98742034,      -1.5905903,     -0.33720947,     -0.62749708,      -1.4599009,      0.47693546,     -0.04570361,     -0.36899395,     -0.24017501,     -0.90730566,      0.14814963,      0.82108074,      0.41780658,       1.0085007,     -0.89136331,      -1.5030902,       1.3824975,     0.077250864,      0.52333615,      0.71633086,     -0.12449678,       1.4085176,      -1.2533949,      -1.0676962,       1.5639063,      0.82396589,     -0.28373291,     -0.55782544,     -0.85097208,      0.62819328,       1.4252834,       1.2021992,       -1.318927,     -0.40375014,       1.6174243,       1.3290942,     -0.22663123,     -0.12244673,     -0.36540219,       1.1884051,      -0.8576849,      0.11213509,      -1.4934964,       1.3994853,      -1.2101685,       1.5481985,      0.10612326,     -0.57728618,      0.36316112,     -0.57549796,      -1.2935066,     -0.99783303,       2.4358721,     -0.80538547,    -0.087509849,    -0.043823527,      -1.2020712,      0.44307429,     -0.28532366,     0.087027064,      0.11437932,      0.54389639,      -1.1599882,      0.81396431,       1.9597285,      -1.2625453,     -0.95034721,      0.61547986,      -1.1408655,     -0.79147669,    -0.038706264,      -1.5232831,      0.62289889,     -0.60213759,      -1.2293902,      0.37052127,    -0.078889461,       0.6473612,     -0.25644792,     -0.27097201,       0.1421606,      0.56616573,      -1.3873083,      0.96652647,      0.23903512,      0.44951062,       1.4559661,      -0.1109134,      0.74362486,       -1.597499,      0.48641666,      0.42239414,      0.62940518,      0.67937954,     -0.90107128,     -0.21646655,    0.0068220073,      -1.5668098,     -0.98542956,     -0.18205483,      -1.2239176,     -0.43463715,      0.01859973,     -0.16200544,     -0.84038908,      0.49663318,      0.15052007,      -1.3131455,       1.1826384,       1.2937474,      0.43976767,       1.3898777,      -1.1335459,     -0.60722392,      -1.1003955,      0.65103613,     0.010339742,     -0.97503825,      -1.4595874,       -1.663421,    -0.061195691,     -0.93870506,       1.7133708,      0.35345378,      0.83883306,     -0.27699652,     -0.55238696,     -0.58346451,      -2.3280755,     -0.17582927,      0.35134631,       1.2602216,     -0.51195406,    -0.081270288,    0.0052545549,      -1.7829531,      -1.2095802,      -1.3172923,     -0.12056466,     -0.30359662,     -0.87519553,     -0.62598015,     -0.30926155,      -1.4395054,     -0.32031525,      0.56893079,      -1.3888769,      -1.8049584,       0.6202991,     -0.72287682,       1.8370366,       1.7449448,     -0.84576177,     -0.38608637,     -0.78333986,      0.19440359,       1.0222705,      0.80838262,      -0.4520448,       1.6109627,     -0.23416143,      -1.1082616,       1.7440539,     -0.13259237,      0.71597798,      0.57113717,      -1.9495667,      0.86600487,      -1.1457092,      -1.1526627,      0.18321534,     -0.55261205,     -0.69526078,    -0.043206448,       1.4854857,       1.2134892,       1.1798218,      0.45474744,       2.4120236,      -1.1729606,     0.036861429,      -1.2826833,      0.12823673,       1.2506303,       1.5235541,      0.72915108,     -0.40606616,      0.17876497,         1.49402,      0.37967109,     -0.76591609,     -0.16702897,      -0.8737454,       1.0206908,       1.7536118,     -0.38326657,     -0.78073138,     0.090942705,      -1.1032847,      0.30361891,     -0.59607132,     -0.35050132,      -1.0782235,    -0.032073476,     -0.19395766,       2.3717291,      -1.7618076,      0.25674797,     -0.99999795,      0.17582583,     -0.21763456,      -0.7375498,     0.020946229,      0.82708039,     -0.47958074,      -1.1534966,       -1.095438,    -0.069034696,      -1.2452378,      0.82627818,      -1.0794643,        1.320625,     -0.37778679,      0.69213735,       1.0573828,     -0.39230033,      -1.0632274,     -0.61779424,     -0.49870889,      -1.1562702,     0.093125121,    -0.069613389,       1.8870417,      0.73588456,     -0.46902308,       2.5507268,      -1.8421783,      0.34516768,      0.83105012,      0.93330095,       2.1573689,       1.0323495,      0.50452701,      0.73332448,       1.6345408,      0.46022136,       0.1962952,     0.014709219,      -1.5263434,     -0.20170055,      0.26583989,       1.7780487,      0.49230348,     -0.79038396,      0.84856415,       1.2286793,       0.1490664,       2.1924799,      0.27822257,       1.0358255,      0.55872629,      0.44190664,        1.626724,        1.046595,       0.0490323,     -0.30510071,      -1.8374363,      0.24061599,     -0.93228029,     -0.25916561,     -0.25469325,      0.53729967,       1.8085108,      -1.1262094,      0.18261962,     -0.27013104,     -0.42705635,      0.10396638,      -2.0499909,      -1.1867959,     -0.79267284,      0.81716846,     -0.43931956,     -0.21836302,      -1.3519085,    -0.093643866,     -0.71026554,      0.58857054,     -0.64313339,      -1.0639037,     0.037118818,      -1.3637475,       1.2150357,     -0.92492118,       0.1168932,      -1.8831169,     0.050290438,       2.1363268,      -1.1111303,     -0.84062797,     -0.35510695,      0.71270122,      -1.1246163,     -0.71345534,      -1.1276768,     -0.97261185,     -0.43531428,      0.68271668,       1.1942264,      0.90706934,       1.8781392,      0.11718102,       2.2790148,     -0.52635999,      -0.5156237,       0.1229924,      -1.2226575,      0.21779371,       0.9455827,      0.84307154,      -1.1611024,       0.4067887,      0.91465455,      0.58377743,      0.96847067,       1.3931336,       1.3258164,       0.2465059,     -0.97137926,       1.1979709,     -0.95422212,      0.87948528,     -0.15905607,       1.4258267,      0.96985258,     -0.66024541,      -1.2625889,       1.3598316,     -0.26133384,      -1.5128648,       1.4790252,      -1.2462326,      -2.4295649,      -1.1337106,     -0.21596653,      -1.7853531,     -0.92909632,      -1.1352808,      0.32124072,      -1.1300038,       1.5273585,      0.46196302,       -1.627737,     -0.72402077,       1.5172295,       1.2102472,    0.0014096104,      -1.9885293,      -1.3889164,     -0.64774583,     -0.52968205,      0.69221574,      -1.1319757,        1.918494,     -0.83041921,      -0.9721172,     -0.33060279,     -0.36795806,     -0.17115714,      0.20475207,     -0.73481229,     -0.84768018,      -1.6880125,     -0.76024754,     -0.18381345,     0.050296439,      0.19863351,       1.3778377,      0.82030143,      -1.1956444,       2.4941327,      0.47388244,      0.54005388,     -0.11646466,     0.047133555,     -0.98867444,     -0.76727214,       0.5168875,    -0.017510987,       2.1018359,      0.26959191,       2.3478636,      -1.2754643,      0.71485432,      -0.8672915,      0.77694947,      0.33324526,     -0.80223867,      -0.7778246,     -0.27697878,       -1.180159,      0.86662788,       1.8721582,      0.60930764,      0.37817855,      0.46512171,       1.4170343,     -0.94618245,       1.7565541,       1.1186839,     -0.30209686,       1.0116043,     -0.31923108,     -0.16304004,     -0.67081283,      0.59803805,       1.3871241,     -0.82901344,      0.32208641,      -1.7754919,      0.50520501,        -1.09995,     -0.51371963,     -0.40415844,     -0.89220638,      0.77546582,      0.77333953,       0.8333015,     -0.51451573,     -0.96713357,      0.38384623,     -0.29768399,       1.6006495,      0.94342219,     -0.34894795,      0.68934263,      0.57079213,     -0.19086648,      0.81116173,      0.71178652,      -2.4942377,     -0.47348411,     -0.93713444,    -0.021183888,     -0.64151327,     0.026733286,     -0.64800236,     -0.61988939,      0.22581626,        0.978126,     -0.39479939,      0.47540591,      -1.6918555,     0.026451291,       1.7406847,     -0.45810509,       0.2743833,     -0.66702615,     -0.30883613,     -0.61648541,      -1.6156144,      0.15063749,      0.17652383,      -1.3692491,     -0.30994288,      0.31113348,        1.313319,     -0.65593547,      -1.5040413,    -0.096402372,     -0.88977955,       1.0527618,     -0.32171504,     -0.49470748,         1.11753,       2.5716542,     0.059718445,     -0.28871759,       1.5743324,       2.7522193,     -0.17405785,    -0.031959832,       1.0356055,     -0.38763844,      -1.2013197,      0.58336296,      -0.5332791,    -0.093397795,      0.25942761,     -0.96105082,     -0.83123945,      0.84042859,       1.1364311,       -0.476787,       0.2241926,       1.5657662,       -1.116651,      0.96747869,       1.2557015,   -0.0064134572,      0.36569492,       -0.901006,     -0.51874743,     -0.85624556,      -1.0152949,     -0.68913362,     -0.10335536,     -0.86337642,       1.1493121,       0.4978676,      0.67921854,      0.96760043,      0.74370517,      0.48826128,      -1.2563377,     -0.88300804,      0.39107424,     -0.92277613,      0.66053599,     -0.71846302,       3.0056627,      -0.4093466,     -0.34342445,      0.28332579,      -1.7164355,       1.1032464,      0.56291558,     -0.59888821,     -0.69537579,     -0.26012032,     -0.37405688,     -0.78214664,     -0.29308053,   -0.0072146295,      -1.3468019,      -1.4175347,      0.30933777,       1.6264257,       -1.533612,      0.23783065,      0.96208079,     -0.77699999,      0.26869888,      0.29433729,       1.6388977,      0.64413285,       1.2273005,      -1.6238504,      0.65714714,      0.81742077,      -1.4541656,   -0.0011903995,        0.482843,       1.3823864,     -0.42701293,     -0.82949056,     -0.38495909,       1.0993586,      -1.2366711,     -0.29663762,      0.37789917,      -1.0624679,      0.37013399,      -1.4226287,      0.72185108,     0.036199928,      0.85737637,      -0.1553393,     -0.40264295,      0.83571949,       1.3494916,      0.26839444,       1.5351909,     -0.32979112,     -0.39214995,      -1.0914306,       0.2566661,     -0.90598715,     -0.95318449,      -0.6238157,     -0.36903401,     -0.94352816,      0.22286206,       1.3076607,      -1.9894578,     0.022605455,      0.13200686,    -0.040541562,      0.38339168,     -0.25821655,     -0.67288514,      -0.5649405,      0.54158791,       1.3356295,      0.75988426,      0.15826914,    0.0047709358,      -1.1170185,     -0.28474325,     -0.45960188,      -1.9891984,     -0.86334205,      -1.0395347,    -0.023258699,    -0.084002557,      -1.2312151,     -0.15807524,     -0.29357848,     -0.16848791,    -0.055678762,      0.95654059,      0.40489145,     -0.30806261,       1.7593182,       1.5562443,      -1.2653122,     -0.54714146,       1.2960382,     0.033314063,    -0.011662513,     -0.18516512,      0.87261205,       1.3285154,      0.39802716,     -0.07194731,       1.2335134,      0.14131777,       2.1771031,       1.8045188,      -1.7240594,      0.51303298,      0.95305408,      0.92741113,      -0.8303817,       1.4392376,      0.55034261,      0.29403499,      0.45323369,      -1.6064744,    -0.096453564,     -0.44919097,      -1.0255132,       0.9414683,       2.4567824,      0.88240625,     -0.33896696,       2.6704159,      0.72223624,      0.55779774,      0.33326841,      -1.2421574,      0.55445103,     -0.40031955,      0.26298262,      -0.2853656,     -0.35065424,     -0.38970797,     -0.44781412,      0.16326742,      0.76095744,      0.23586128,      -2.7758485,   -0.0013235853,     -0.20821153,      -1.0944081,      0.14194372,      0.46857411,      -1.3824884,      0.25178657,      0.14417507,       0.2985547,     -0.38528819,      0.01895874,      0.43448232,     -0.99660062,      -1.0302575,      -2.1169886,     -0.79616759,      -1.0239241,      0.89028387,       0.4775622,      -1.9131687,       1.7200908,       1.8813193,      0.19282597,       1.6892499,      0.97912426,       1.6305833,      -0.8108698,      0.29235707,      -1.1992145,      -1.8325578,      0.69462638,      -1.1770695,      0.31467393,     0.018736748,      -1.0298277,      0.95423749,      0.24792326,       -1.975014,      -1.0371241,      -1.0667385,       1.9145696,     -0.17503485,      -1.1861872,      -1.3463581,       1.2815937,    -0.068226905,      -1.1581189,       1.5789184,     -0.56685751,       0.4526908,       1.9631137,     -0.19602993,      0.58669373,     -0.34844369,      0.72543492,      0.28005677,    -0.061467415,     -0.36177235,     -0.26987323,       1.0132802,     -0.43733303,     -0.80988003,       0.6426773,       1.4035199,       1.7569693,       2.2014986,    -0.017181847,       1.1690231,      -2.0355166,      0.10228501,       1.2446632,     -0.94505035,     -0.74201106,       1.6670857,      0.79334533,      0.55254017,      0.55549175,   5.8207769e-05,      0.96925682,      0.81026697,       1.4766586,      0.78013471,       1.0467299,      0.34334983,      0.29985002,       1.1872676,     -0.28943623,     -0.33549934,     -0.71176058,     -0.39406372,     -0.33354552,      -2.8790709,     -0.17099955,     -0.20304645,       1.0514053,      0.54031323,      -1.1601517,      0.48634854,      0.50791543,     0.086750291,      0.41125445,     -0.76042681,      0.53677305,      0.21104276,      -2.8718666,      0.20085127,     0.074411453,     -0.85624816,      -1.5764528,    -0.045521821,      0.41803052,       1.5225574,        0.560714,        1.169673,       1.3483244,      0.48444447,      0.47894944,      0.91302439,     -0.93794838,      0.85572241,      0.15837448,     -0.78274517,     -0.17377726,      0.38414033,        1.236448,     -0.30241097,     -0.46545961,     -0.43297952,     -0.99797304,     -0.33557578,      0.12271353,      0.86431033,     -0.80700755,      0.44231125,      -1.1039527,       1.1419434,     -0.96346264,      0.31413543,      0.90693767,     -0.50282849,      0.18700215,      0.51801371,     -0.14178469,      -0.6013186,      -0.3744672,      0.78412902,       2.1117079,      0.54134471,     -0.58527781,    -0.090086699,      0.59247893,     -0.74772595,     -0.55222003,     -0.15849983,     -0.34108895,     -0.80879142,     -0.52926062,      -2.0578539,      0.34899075,    -0.089030532,      0.46668014,       -1.099691,      0.15681774,      0.31920452,      -1.2157628,       0.1948118,      0.82489568,   0.00035875076,     -0.40133546,      0.78712576,       1.1944765,      0.32835979,       2.6368766,      0.58199052,     -0.23499625,     -0.47355487,      -1.7198961,       0.2608269,     -0.89528592,      -1.0227498,     -0.83081656,     -0.17910818,     -0.76872319,      0.04905797,       1.1634944,      0.72737786,     -0.20025567,      0.45350855,    -0.048304482,      -2.2899158,     -0.48538211,      0.29179196,      -1.2502815,       1.0549176,      0.45871034,     0.097422216,      0.26996216,      0.42009708,      0.54089941,       1.1356581,      0.38994878,     -0.54903826,       1.8086724,     -0.53701327,       1.0357582,      0.52670935,      0.64353886,      -1.4418862,      -2.3722694,      0.28248792,      -2.0636879,      0.89155114,     0.096123679,      -1.3231621,      -1.1402311,      -0.4764878,      -1.2366295,       1.0481998,     -0.47272384,     -0.87989476,      0.16130577,      0.35519854,     -0.54456371,     -0.75709874,       2.3888645,   -0.0014670959,     -0.71375889,     0.085056034,       1.0031894,      0.56415397,         1.52221,     -0.60551188,     0.011408529,       1.5287929,     -0.31377027,     -0.86648341,     -0.79807615,       1.2777047,     -0.45278028,        0.168687,    -0.068811198,     -0.13938476,        -1.64482,      0.85869631,      -1.5112158,      -1.1825343,     -0.45382011,       1.2433771,      0.41921376,       1.1192657,       1.2055383,      -1.6404939,      0.98052033,      0.43453981,     -0.64925828,       1.6215022,     0.014959063,       0.4770032,      -1.5045419,      -1.8068238,      0.53430056,     -0.48426998,     -0.21748484,       2.0409719,     -0.13731925,    -0.056058519
+2001Y,       2.4070284,      0.12307933,     -0.33350191,     -0.53750012,       1.1121691,       -0.473882,       1.6921983,      0.18412866,       1.1431983,      0.44678447,      0.37368879,     -0.17607517,       1.4469171,       1.2429018,       1.4530008,      0.41647821,      0.67797916,     0.062390198,     -0.96814064,     -0.93478231,      0.16470822,      0.98923808,      -1.2110555,      -1.6463898,     0.073069239,     -0.11281848,     -0.66015064,       1.3731012,       1.5049233,     -0.80513195,      -1.9619832,       -1.115891,     -0.31421241,       1.6675443,     -0.98360265,      0.49162709,     -0.14588725,       -0.848848,      -1.7421733,    -0.042526798,     -0.99289537,      -1.1940504,      0.32716125,       2.3168591,     0.093200567,       1.0616061,      0.73724915,     -0.72386897,     -0.47261193,      0.38265215,      -0.8239618,      -1.1782435,      0.22363442,      -1.8298742,       0.8472798,     -0.92177378,      0.77025016,       2.4126248,       1.6000419,     -0.76697076,      0.59864611,      0.40913496,      0.63407042,       0.1537283,      0.24817257,      0.47192081,       1.0773594,     0.081616548,     -0.16438573,       0.4471502,     -0.89537844,      0.13308071,      0.81897735,     -0.47059422,      0.32511304,      -1.5690064,      -1.6851327,      0.21526473,      0.88141115,       1.2805732,       1.0098294,     -0.66620946,       1.2088524,      -1.3191769,      -1.0048311,      0.15082065,     -0.43500579,       1.9349472,      -0.4033915,      0.75302719,        1.093142,      0.64967395,     -0.56618318,     -0.86668654,        0.355356,      0.36365473,     -0.31963595,      0.50750617,      -1.3347752,     -0.31783672,      0.94553893,       -1.569616,     -0.55835919,      0.06224041,     -0.25039048,      -0.2622163,      -1.4159129,       0.4554778,     -0.51805501,     -0.96352049,     -0.83586408,      0.70068265,      -1.8932253,      -1.0146042,    -0.030939356,      -0.9833482,      -1.2807384,     -0.56347171,         1.55632,      0.16458562,     -0.61691196,      0.81672273,     -0.56937364,    -0.094329155,       1.0721719,      0.40940683,     -0.40329854,      0.60567806,     -0.94610334,       1.0549678,     -0.64061513,      -1.5450597,      0.30905624,      -1.1158946,      -1.0158328,     -0.16170171,      0.44498142,     -0.10226872,       1.8550148,      0.35516839,       1.0558599,    -0.054766043,      0.54372422,     -0.33363564,     -0.72194659,     -0.62396392,     -0.99638154,       1.4132753,        1.127966,     0.074998352,    -0.039220247,      -0.4830552,      0.46161971,      0.94931283,     -0.87742947,       1.0386983,      0.49689425,     -0.89112847,      0.90170371,       1.0476891,      0.18700967,       1.3529174,      -1.0436171,     0.065640427,       1.3012053,      -1.4490824,     -0.84135056,    -0.070645238,     -0.43644617,      0.48159937,    0.0081533576,     -0.20427889,      -1.7721967,        1.623836,      0.58754406,     -0.63763681,      0.77637556,      0.60288977,    -0.094497624,       1.2676183,     -0.18877246,     -0.90497947,     -0.82489485,      0.56005844,    -0.042236237,     -0.79101838,      -1.3528246,       1.3655359,       1.6378612,     -0.41544566,     -0.46393516,      0.11540727,       1.3527601,      -1.1326699,     -0.84803359,      -1.2921876,     -0.39364415,      0.45255073,     -0.58327478,      -2.3699958,       1.5935932,     -0.13534389,      0.65083112,        1.295468,      -1.3227195,      0.21406717,     -0.30414927,      -1.2383524,      0.58131878,      0.85087866,      0.42541783,       1.8187518,      0.98174659,      0.23697233,     -0.40913579,    -0.085711607,      -1.4470343,       0.4763158,      -1.0816064,       1.5148832,       1.0163553,      0.11678582,      -1.1041586,      0.54064282,      0.91599434,      -1.7757245,      -1.7880319,     -0.38960554,   0.00064629626,      -2.3133508,      -0.8183255,      0.77534132,      0.39276633,       1.3769064,      0.31095592,      0.12425263,       1.2167293,     -0.82373414,     -0.97061071,      -1.3569193,     -0.53040067,     -0.11096985,       1.4055348,     -0.57445568,       1.1927523,     -0.65403614,      0.85819398,      0.41084334,      0.30532771,     -0.78638756,     -0.94619258,     0.047636343,      0.65785154,      0.46853237,      -1.5131386,     -0.78563156,      0.53087024,      0.33762201,     0.012851856,     -0.81404767,      -1.5421096,     -0.28335873,     -0.78891882,      0.73363907,       0.2188472,       0.2199795,      -2.0063025,       2.1045498,     -0.38708053,    -0.053525043,     -0.68680196,     -0.34446437,     -0.78834288,       1.5194917,      0.76051514,      0.32725372,     -0.44416626,       1.1329204,       2.2896046,      -1.6587388,     0.036067281,     -0.75254897,       2.2046632,      0.57780273,      -0.3878789,     -0.60621101,      0.96880021,       1.2656649,      -1.0305936,        0.371706,     0.046638197,     -0.40139701,       0.6540211,      0.30410994,      0.42829443,      -1.1056747,       2.5279597,        2.456304,      0.79362297,     -0.20391618,     -0.37996142,       2.7002703,     -0.81578432,       2.1395035,       1.6596416,     -0.35859882,     -0.40805881,      0.45534323,     -0.71813195,       1.4782124,      0.45916941,      0.45019194,    -0.049852798,     -0.36423918,       1.6694744,      -1.4682571,      0.24504816,    -0.051752657,      -1.4883491,       0.9791136,      0.69485829,       1.4593771,      0.81039197,      0.69732455,     -0.39752463,      -3.1166263,     -0.20582795,      -1.8940599,      -1.8019315,      -1.1365821,      0.79593268,     -0.75926928,      0.73162245,       2.2487452,     0.057751259,      0.80206867,      0.96049056,       1.2982165,      0.55265198,      0.46211297,      -1.0109972,       2.3877325,     0.022970022,       1.7406811,     -0.37554484,     -0.20086855,      0.56832169,      -1.0286722,      0.77902294,       2.2215501,       2.5018332,      0.98635778,      0.20624268,       1.2962779,        0.198227,      0.17561228,     -0.77929908,      0.78214253,       2.7629183,      0.56695225,      0.37360585,     -0.81720074,     -0.31155265,       -1.619244,     -0.29301774,        2.182539,      -0.2638469,     0.011796961,      0.41268683,      0.51334504,      -2.2135896,       0.9525133,     -0.33468771,     -0.23182255,      0.35388785,      -1.4951123,     -0.58524312,     -0.31604998,      0.16801986,       1.4884564,      -1.2592218,       1.0481434,     -0.89879225,     -0.80961257,       1.3998248,       1.3397182,      -1.0427315,     -0.82324221,      0.30005306,      0.10793136,      -1.2505699,      -1.1295131,      -0.2724694,       2.4742036,      0.84647163,      -1.2245854,      0.61566953,       0.9890003,      -1.8019331,      -1.8409686,      0.49352966,      0.51464288,      0.98786022,     -0.94076121,     -0.10252207,      0.93473616,      0.72324672,     -0.81467123,     -0.55507567,       0.8000812,     0.024624002,     -0.39010719,       0.3699798,     -0.44661113,     -0.33713112,      0.72822585,      0.82588994,     0.073829744,       1.4993441,      0.98909675,     -0.48877694,      0.26879691,      -1.3998107,      0.34162622,     -0.19054821,      0.88729264,     -0.36268807,     -0.37903061,       0.6439604,     -0.21958536,        1.373414,      -1.0320467,      -0.1921169,    -0.092333437,      0.30206736,      -1.2279269,      0.65270348,       2.9433394,       1.6866346,      -1.4743419,      -0.2982764,     -0.92729913,      0.57302059,      0.74279384,     -0.72135793,     -0.36357606,     -0.22072143,       1.7184442,      0.67491582,       1.2138135,      0.45443601,     -0.79735798,     -0.45101811,      0.68171588,      -1.1026288,   -0.0077103332,      0.46232218,     -0.11382623,      0.52781874,     -0.57041691,      -1.8707077,      0.14659968,       1.0004859,      0.48959381,     -0.23598683,      -1.6300965,     -0.81941624,      0.97339571,     0.018579587,     -0.61979686,      -0.5068926,      0.48365732,     -0.20261704,       0.6472091,      -1.4011321,      -1.2505435,      0.24738856,       0.9275387,     -0.37116414,      0.21160243,     -0.72971858,      0.92735816,       2.7413745,      0.30268166,     -0.62848632,      0.22798267,      -1.8454052,      -1.0050983,       2.2282554,     -0.65396986,      0.32137273,      -1.4548995,    -0.055443275,        -0.36647,       0.3653815,     -0.57994506,     -0.45281495,      0.64257406,     -0.19611707,   -0.0083004817,    -0.016175497,      0.68307311,     -0.81146362,       2.0541583,     -0.23855132,     -0.36807608,      -1.1846801,     -0.62670456,      0.15612352,     -0.28512829,       1.2012213,     -0.19011738,      -0.6355975,      -1.1996948,      0.65079208,      -1.0850131,       -1.294076,     -0.72166425,      0.78111745,      -1.0103381,       1.5504387,     0.073911563,      0.12132507,      0.99853998,        1.277748,      -1.5224128,      -0.4704838,      0.45040086,     -0.22715098,     0.020977074,       1.9811825,       -1.119708,     -0.22232877,      0.31370017,      -2.6782047,      0.85284726,       1.0167893,       1.4953245,       1.3360271,     -0.21547663,     0.030557359,     -0.80509428,      -1.0681807,       0.9597109,     -0.17999368,      0.51651811,       1.4492209,      -1.3447872,       0.4322291,      0.66397811,     -0.22278193,     -0.25120545,      -1.1919711,      -1.0842558,     0.071601965,     -0.36929708,      -1.2233634,      0.45204726,     -0.49202208,      -1.5837974,      -1.2564799,     -0.85632985,      0.19994176,       1.2692087,      -0.3193178,      0.72644882,     -0.10131666,      0.43121501,      -1.4605932,      -2.2263996,     -0.83482412,     -0.46403198,      0.17641569,      -1.2154516,        1.023161,     -0.69787977,      -1.0084265,      0.88492329,      0.19729966,       1.4928213,       1.2958117,       0.2845524,      -2.3431539,       1.4584873,      0.94546999,      -1.4218972,      0.88218315,      0.99457857,      -1.3892822,      0.66628486,      0.76111311,      -1.7343472,     0.018951217,     -0.36792908,     -0.38159042,      -1.6776704,       1.2977988,      -0.1902976,      0.37496424,     -0.04377604,      0.10772376,     -0.67073271,       2.8483559,      -1.1221967,      -3.7521375,     -0.60135765,       1.3939837,     0.085761474,   -0.0062167884,      0.76315701,     -0.25714134,       0.1048129,   -0.0063757995,      0.29761215,      0.60173546,     -0.18316122,     -0.54074732,      0.74724593,      0.04360932,      0.78433206,      0.68501425,     0.064195774,      0.97690129,      0.49929429,     -0.29426551,      0.77756947,     -0.48907326,     -0.35868167,      -1.8541574,     -0.66512957,      -1.0167017,     -0.57001921,      0.27509356,       1.0820121,     -0.43664103,     0.056896296,       2.6833005,    -0.066543537,      0.95833574,      0.47619951,     -0.89772523,       1.3317109,      0.45331588,     -0.22306998,       -1.509978,     -0.57726182,     -0.19272017,      -1.2879525,     -0.22653795,     -0.91272842,      0.90822161,       1.1436525,    -0.057088037,     -0.37444377,     -0.43911217,      -2.0039702,     -0.57262758,       1.9899516,     -0.82893128,    -0.012547346,     -0.51456539,     -0.34956836,     0.025302099,       1.3009898,     -0.92841154,      0.19511273,      0.13540511,      0.35261958,     -0.68859995,       -0.836406,      -1.7785957,       1.1239186,       1.7237307,      0.52087209,        1.381689,    -0.054546407,       0.7043974,     -0.20795613,       1.0789435,      -1.2029856,    -0.021067643,       1.0715837,     -0.76392815,      0.32995677,      -1.4121796,      0.17520452,      0.88042084,      -2.4081277,      0.60681608,       0.6492625,     -0.78723232,      -0.8068061,       1.3311172,      -1.3255407,     0.087346293,      0.35971044,      -1.0459841,       1.8450402,     -0.65210983,      0.17865031,     -0.50646353,     -0.96315631,       1.2007349,      -1.1599515,     -0.97735657,      0.81358519,     -0.78590588,       1.6631747,       -1.286936,     -0.57451993,      -1.6227832,      -1.0266653,     -0.33481508,      -0.2817387,      -1.5382202,      0.36004829,     -0.65001969,      0.96770146,      0.59130673,     -0.26812453,        1.816484,    -0.088788558,     -0.63295103,       1.4896363,      0.67751312,       0.7322444,     0.074183339,     -0.74655009,       1.7389656,      -1.1621121,      0.80486862,     -0.04324581,     -0.85125692,      0.75162411,      -2.3519078,      0.97175036,     -0.78937122,      0.60624674,      0.39228283,      0.95185007,     -0.28621961,     -0.26094916,     -0.17654179,      0.78071378,      -1.3738817,     -0.75827619,       1.3198177,     -0.35450944,      0.45655855,     -0.41857864,      -1.3612828,      0.54969529,      0.44540728,       1.4125503,      0.06631179,       1.9666492,     -0.68325389,      0.84158831,      -1.0797764,      0.56222686,       1.5122553,      0.44098998,       1.5796364,     -0.52201732,     0.034860554,      -0.7600362,      0.25761054,     -0.81549625,      0.39371709,      -1.4445596,     -0.92884091,     -0.20059874,      -1.2712084,      -1.8150514,     -0.30301421,     -0.64219033,      0.77607942,      -1.2950142,     -0.51339481,     -0.80909839,      -0.3735047,       0.6947215,      -1.5947539,     -0.48632215,      -1.1662502,       0.7529982,       1.1111265,     -0.72608724,      -1.8656897,       1.2336321,       1.4221689,      -1.6774045,      0.54147178,     -0.98736114,     -0.59766782,     -0.15679301,     0.022016043,      -1.9128545,     -0.24300656,      -1.5094897,      0.66070016,      -1.6441699,       1.8520514,     -0.37214454,     -0.53355768,       1.5467665,      -1.1785621,      -1.2596261,       2.1860429,     -0.96190531,     -0.43636407,      -1.7664055,      0.10136017,      0.62214587,       2.2604896,      -2.2685208,       1.5896368,     -0.10187758,      0.14520766,      -1.2256245,     -0.44103082,        2.421732,       2.8371396,    -0.088638002,     -0.78862927,     -0.35638456,      0.50210795,       1.1501582,      0.63495621,      -1.2569986,      0.26397446,     -0.10014175,      -1.1753069,      -1.0872368,       1.7611431,     -0.53319863,     -0.72457195,       1.1376455,     0.067147993,     -0.60067866,     -0.59186237,     0.071195677,      0.22168417,     -0.36151243,    -0.065626103,      0.90743807,      0.33812228,      -1.8962189,        1.171102,      -1.4930115,     -0.47403067,     -0.14823897,      -0.4404256,     -0.59937316,       2.0951162,     0.063575223,      -2.7610449,      -1.0906717,      -1.1394745,     -0.63931326,       0.7940233,    -0.098819036,     -0.45623931,        1.798844,     -0.64901297,    -0.020580484,     -0.87455018,      -1.6428654,     -0.79439626,       1.1547336,    -0.056578398,      -1.3396202,     -0.90410251,      0.90937365,     -0.43845295,      0.60980139,       1.0632332,      -1.3074829,      -0.1341033,     -0.24569075,      -0.6878988,       1.0327421,     -0.90000042,      -1.0561203,    -0.069295971,      -1.1802574,     -0.52022771,     -0.23647265,      -2.2382105,       1.7739914,      0.27991756,      0.93961248,      0.25517344,     -0.50132268,      0.61169124,      0.29550738,       0.7182665,       1.5463554,       1.3299677,       -1.477441,      -1.5885609,      -1.8618741,      -2.4180019,       0.1520404,      0.39888066,       1.2312752,     -0.88092898,      0.15427152,     -0.64088756,     -0.98033244,       1.2928757,       2.3381643,      -2.1802017,     -0.74229302,      0.17015525,      -1.4124967,       2.1722077,     -0.30145833,      -1.3738254,       0.0679766,    -0.083630386,      0.56774478,      0.44572707,        2.182374,      -0.1088141,     -0.36493775,      0.74676572,    -0.042358867,     -0.24634999,       1.8559477,    -0.065473631,      0.51211039,    -0.020670725,   -0.0062293616,      -1.5873521,      -1.1824792,      0.43486598,     -0.75310013,      -0.8676191,       1.0105589,       1.0066029,     -0.78138278,     -0.65383649,       1.0607016,     -0.86474736,     -0.77332729,     -0.68034934,      0.15150942,      -1.2042707,   -0.0019654302,   -0.0015709183,      -1.3787405,      0.49438491,      -1.1113291,       1.6413636,      0.26483212,      0.29205296,      0.48577803,       1.0916813,      0.34959995,      0.85323669,       1.2917126,       1.0254329,      0.26705695,     -0.57951712,      0.15741757,      0.95981788,      -1.1994816,    -0.011659089,      0.34786413,       1.7957231,       1.0380316,     -0.29492743,      -2.1057545,        -0.53264,     -0.50449571,      -0.5084495,       2.2484531,        -2.37627,       2.1124701,       1.0398652,     -0.39033839,     -0.93175844,      0.35117143,      0.27359258,       0.3963041,     -0.47145892,     -0.77677657,       -1.728021,     -0.16326007,      -1.7941339,     0.025026474,      0.51944913,      0.51968019,     -0.56013217,      0.63916175,       1.2731727,      0.65570451,     -0.87310978,      0.72498273,        1.626283,      -1.3758646,    -0.049202615,     -0.41455833,      0.77680634,      0.44479481,     -0.35003205,       0.5242558,    -0.032669329,     -0.28703188,     -0.78398671,     -0.84822379,       0.6730003,      0.18627843,      -1.0321701,        1.540288,       1.6181492,     -0.43591014,       2.1706366,      0.89588646,    -0.063755512,      0.22134277,      0.52180568,      -1.3680345,        1.184213,     0.031116702,     -0.33814029,      -1.3794424,       2.1171622,      0.77745557,     -0.74730915,     -0.06683065,     -0.27354031,      -1.6501405,      -1.3188923,      0.22944345,     -0.32880434,      0.35682494,       0.5790378,        1.333502,       1.4481008,      -2.0651519,       1.0310857,     -0.41068675,     -0.77654574,     -0.70932538,     -0.79556601,    -0.012513604,      0.93717759,     -0.57779208,       1.9402918,       1.0851824,       -1.168354,     -0.20158352,     -0.45889268,      -1.3291633,     -0.89405339,     -0.18795961,      -1.0004591,      0.39018431,     -0.92304963,     -0.93395036,       1.1806226,      -1.1874817,      -1.8231206,     -0.70660102,     -0.20994346,     -0.31265923,      -2.3648297,      0.87623202,    -0.066335679,       1.2749921,      0.13070277,       0.9179621,       1.0356895,     -0.35549035,     -0.81531075,       0.1276368,      0.83942015,     -0.05955739,     -0.20500863,       1.2491175,       1.5441962,      -1.9810032,     -0.97017921,     -0.17665764,     -0.82504338,     0.069966282,      0.17996719,       1.3671172,      -1.0010981,     -0.35790682,      -1.4430896,      -1.0777171,       1.0954366,      -1.4200905,      0.69455143,       0.9715866,     -0.36062043,      0.53143094,      -1.7413347,      0.27298555,      0.13227894,        1.770566,     -0.40559265,      0.48092265,      -1.6746382,       1.2854946,      -1.3023087,      -1.7878016,     -0.95851019,     -0.61268366,      -1.4209832,     0.011538588,     0.042875432,      0.55621452,      -1.3808621,     -0.10060268,     -0.36902942,      -1.8102028,      0.85245709,      0.79387243,       1.6824266,      -1.7778988,       1.0421994,      0.27025184,     -0.10333772,      -1.0084775,       0.7892888,      0.41724245,     -0.50020021,      0.89662918,      -1.3663131,      -1.8067722,     -0.48042293,       1.3870376,     -0.84506233,    -0.034951429,      0.57938861,      -1.0972845,      0.63358257,     0.056715176,      -0.6651582,     -0.16988503,      -0.3262552,     -0.19178923,      0.62101624,     -0.69898403,       1.7672594,      0.34800744,       1.5211411,     -0.49102359,      0.52922226,      0.36080566,      -0.6123164,      0.38986564,      0.77786411,      0.30061927,      0.24418636,       1.2156282,     -0.10257133,      0.45387535,     -0.53061973,     -0.35923736,     -0.55225334,    -0.072036718,      -2.0290201,     -0.52018042,       0.3266947,     -0.66547598,       1.5295406,     -0.41564986,    0.0017497204,      0.61274028,      0.43867472,     -0.72933061,     -0.85374117,      0.24528358,       1.0719102,      -1.5759422,      0.15863408,     -0.11315678,     -0.71475893,       1.0822095,      -1.4958402,       1.0315286,      0.42522961,      -1.1066931,      0.96279132,       2.3135314,      0.74854676,     -0.65963165,     0.014344461,     -0.28417513,     -0.18216912,      -2.2499309,      0.89409299,     -0.20720337,        2.113631,    -0.041704249,     -0.17165601,      0.55069194,      0.26114523,       1.3722008,       0.6231986,      0.61643137,     -0.85990554,      -0.4765486,     -0.31558468,       -0.876691,      0.51907161,     -0.96848178,      0.76163199,     -0.31728021,       1.7246129,        2.335467,       1.7022038,       -0.679919,      -1.2482253,    -0.074075247,      0.34047964,      0.24557815,       0.1928089,      0.91815776,    -0.011344857,       1.6261178,      0.94221514,       1.2347601,       1.2274909,     -0.14445365,     -0.34350356,     -0.35278985,      0.42536855,   -0.0023369068,       1.6719849,        -1.14485,      -0.6980218,       1.4651313,    0.0026092837,       2.0992504,    -0.087406341,      -1.6930282,     -0.14895682,    -0.044130219,      -1.4445554,      -1.6841893,      0.25255956,     -0.60175925,      0.64554972,      -0.4572433,     0.047138712,      0.60076661,       1.0480217,      0.89184314,     -0.11127121,      0.74149003,      0.58814104,      0.20114803,     0.035294861,      -1.0869381,     0.040981863,     -0.53801884,      0.24516847,      0.57223022,       1.9603543,      -1.6466586,     -0.15150187,      0.13903756,       1.0013224,       1.1950436,      0.11906198,      -2.9858077,      0.65005818,     0.083093631,     -0.48223314,      0.48159358,     -0.46696816,      0.20793842,      -0.1216422,      -1.8822024,      0.50937319,      0.60721699,      0.78466416,      -1.1235088,      0.95290125,      0.67638452,      0.34966579,      -0.2055431,     -0.20993111,      0.78239977,      -1.2027984,     -0.86075412,      -0.3667573,       0.2735959,      0.07691408,      0.64481648,      0.42693676,     -0.66344199,     0.028978328,      -1.0293308,       1.4295109,     -0.80068854,     -0.30578469,      -3.1286631,    -0.037238413,     -0.80991653,      -0.7117804,      -2.4081544,       0.5201519,     -0.80475977,      0.30776184,      0.86157528,      -2.1328361,      0.11991928,      0.92436212,     -0.12193792,       1.4030812,     -0.50771428,      -1.2822133,       2.4500059,        1.446868,    -0.067453802,      -1.4793744,     -0.49093487,     -0.49377177,      0.15705606,      0.85206221,      -1.5013686,      -1.8772531,      0.10590602,        2.013091,       1.3086195,       1.6495421,     -0.05183861,      -1.3787349,       1.2079319,       2.1127979,     -0.51265337,      0.65107622,       1.8121172,      0.39182815,       1.7916436,       1.0000832,     -0.11615676,     -0.11349425,      0.15064417,      0.52504187,    -0.031457156,     0.046236964,      -1.4484441,       2.1460449,       -1.280112,      -1.6664539,       1.7713414,   -0.0057835215,       1.2297367,       0.6975457,     -0.35697352,     -0.54873172,      -1.7445657,       1.0566193,     0.086916131,     -0.37357047,      -1.7335639,       1.2486814,     -0.65810764,      0.67587554,     -0.44745769,     -0.16490525,      0.61020653,      0.21146996,     -0.90277663,     -0.67787646,      0.55926596,       -1.263284,     -0.97048596,       1.2042542,      -1.4362583,     -0.34155516,     0.068315885,     -0.88356996,      0.98446102,       2.0392682,      0.46073554,      0.44050929,       1.1943141,    -0.093970089,       1.0899251,     0.052423102,       1.2956529,     -0.36803916,     -0.46271653,      0.16044848,     -0.18511258,     -0.93001855,     -0.86000355,     -0.69528491,       1.0614921,      0.19108438,     -0.46634098,      -1.0369303,       1.7358657,      0.56560626,     -0.62050259,   -0.0053277371,       1.7824538,       1.1490135,      0.84766081,      0.41665493,      -0.2717153,     -0.23514533,      -1.4471471,      0.48208703,     0.045151787,      -1.1928874,      0.84154194,     -0.11068299,     -0.53051137,     -0.47197099,      0.46130744,        1.426095,      0.40524435,      -1.6773387,     -0.15834312,   -0.0094698108,     -0.23405213,     -0.58275521,      0.19695536,       1.0033795,     -0.83855826,      0.15595945,       0.4259364,       1.5389036,    -0.012939279,    -0.047296308,       1.6427365,     -0.76773178,      0.67840695,       2.4381172,       1.2167239,     -0.73592711,       1.8068964
+2002Y,     -0.39558553,      0.87207169,       1.7128325,      0.50338243,     -0.31739159,      -1.8305242,       2.2023758,       -0.695076,       1.4549449,     -0.90807978,       1.9581955,      -2.5763551,      0.25433351,       1.6203377,     -0.28379426,      0.22635962,      -1.0579301,      0.28387323,       1.2611091,       1.1761115,       2.0776325,     -0.30646263,       1.0216955,      0.68185716,      -1.6578204,      0.13684541,     -0.98370177,     -0.96738916,      0.78459942,      -1.9621259,      0.46441277,      0.27014781,     -0.85799528,       1.0060694,    -0.097977822,     -0.64279221,       1.2518152,     -0.50431173,      0.75152412,      0.89480125,      -1.1846483,      0.42683558,      -1.0815782,      -1.3228994,      -1.5696538,     -0.23539825,     -0.64840158,     -0.13497705,      0.88788541,     -0.48233859,      0.58596404,      -0.9508253,      0.48087706,       1.5848643,       -1.211217,      0.86668453,    -0.025947663,      0.72303559,      0.20291565,      0.43260123,      -2.1191898,      -0.9648436,     -0.17776976,      0.87139443,      0.58924407,      -1.0394136,     -0.62073217,     -0.63735724,      0.47100314,      -0.4336569,      0.46914566,     -0.53105692,     -0.20715834,      -0.5189533,        2.796604,      0.19581351,      0.25504464,      -0.2404562,      -1.5790672,      -1.3687542,     -0.48211056,      -1.3182888,      0.44460423,      -1.0335318,       0.6928481,       1.8879253,      0.92788165,      -1.9883993,       1.0649823,      0.92929429,      -1.7041393,      0.76819113,      0.77560631,       1.1525195,     -0.20395419,     -0.33882861,     -0.47817803,       1.3061366,      0.49276031,     -0.95520698,       0.5952215,      0.39183283,     -0.74402213,       0.3674386,     0.038256933,     -0.66759994,     -0.24332761,    -0.053034145,    -0.066543981,      -1.6990288,      -1.2083644,       1.2752396,       1.4367376,      -1.4760791,     -0.83996069,       1.3767064,      0.36662619,      0.28449872,      0.85552592,       1.5202468,      0.25369062,      -1.1916744,     -0.37376677,       0.4687299,      0.47343606,      -1.4380391,     -0.12751551,      0.71845176,     -0.82108586,      -1.9686537,       1.1740756,      0.82110195,      0.27561073,      -1.0896291,     -0.21996456,      -1.3151553,       1.4515353,       1.8815707,     -0.80101554,      -1.1832252,   -0.0056639719,      -1.2949141,  -0.00064125288,      0.84355096,       2.1314839,      0.76979921,        1.396895,       1.1185652,       2.5120505,      0.26007943,       0.7426644,      0.92079486,      -1.3814555,     -0.31009716,     -0.37417534,      -1.5731726,      0.54736547,      0.83973765,        1.659189,      0.20712878,      -1.2337836,      0.19231627,      0.47938835,     -0.12042794,      0.09418953,       1.4017126,      -0.7323663,      0.39783991,      -1.4006292,      0.35632922,     -0.55766203,      -1.1034048,     0.016950483,      -1.0144812,     -0.62338317,      -1.6811837,       -1.297149,        0.650513,     -0.10289806,      0.15200818,       2.1582844,       0.6838087,      0.14107615,     -0.71567683,       1.1871423,      -0.6476117,      0.78404719,     -0.12218075,     0.071655686,     -0.42406031,      0.58551162,      0.48803115,       1.6281543,      0.37239938,      0.26043687,       1.4323233,     -0.85826243,      0.16275142,     -0.14949871,     -0.36438704,      0.98536927,     -0.42577641,     -0.52993154,     0.027145017,     0.063528717,     -0.87781436,      -1.3772499,     -0.67292693,      -2.3056919,      0.54713546,      0.27059609,      0.28567003,      -1.4345311,      0.89251259,      0.77999834,     -0.80188703,     -0.15789934,     -0.10413284,    -0.035439853,      0.36639113,    -0.092092086,       1.3069919,     -0.60552176,     -0.88079505,       2.2826968,     -0.27345218,     -0.28781496,      -0.4022766,      0.11820812,    -0.067467332,       1.1822901,       1.6876531,     -0.20860376,       1.2073756,     -0.64851705,      -1.4227413,     -0.72814948,      0.39020647,      0.63497879,       1.1776202,        1.323894,      0.45838527,      0.47713488,       1.7885454,      0.32890978,      0.71536206,       1.0259289,     -0.39951301,    -0.032689608,      0.11197327,       1.3122729,     -0.10514784,     -0.64685982,      -1.1264457,      0.45721546,       -2.073284,      0.10188239,      -2.5181571,      0.74077092,      -1.4570769,       1.2183025,     -0.12941763,     -0.92056377,      0.23978681,     -0.17386037,      -1.4102627,        1.066493,    -0.053818461,       1.2922485,     -0.82413733,      -1.0799234,      0.39531005,      -0.6011292,       1.0175625,       1.1410124,       1.0389175,     0.044396393,       1.4693429,      0.80139192,      0.69946174,      0.12058093,      -1.1836589,       1.4748641,      0.33825397,     -0.54986492,      -1.0521835,     -0.57309215,      0.35337107,     0.052330598,      0.15820357,     0.026067729,     -0.39410049,     -0.18683209,     0.035413544,       1.3844459,      -1.7161549,       1.3461727,     -0.56493008,       2.2736162,     -0.62389894,   -0.0084185955,     -0.32497047,     -0.12034819,     0.010581634,      0.13876991,      -1.2798373,       1.1674344,     -0.23134783,      0.75861206,       1.4029431,     0.034975152,     -0.49826422,      0.38139804,     -0.26195018,      0.95658976,       1.0325723,      0.90430079,     -0.30962583,      0.39960125,      0.24323309,      0.67437631,     -0.16509254,     -0.15868217,     -0.72549358,       1.0868777,    -0.059916449,      0.42886871,     0.080857879,     -0.37715801,     -0.97512334,       1.4152442,      -1.0442146,      0.59580411,      0.40834135,      0.70167647,      0.42795526,     -0.67295874,     -0.58760102,      0.31282162,       0.4339034,      0.40216648,     -0.83685173,      -1.3587034,      -1.1304692,     -0.50750982,     0.014127783,      -0.3786659,     -0.21173738,      -1.1399906,      -1.0083116,     -0.30930191,       -1.331146,     -0.67264979,       1.4414941,      0.64451035,     -0.56471993,      0.45873669,    -0.092359993,     -0.16503551,       1.7337146,      -1.6310124,     -0.11303196,       1.4785343,       1.0375731,     -0.85667893,     -0.21625195,      0.20243238,      0.65360861,      0.87473521,     -0.19821035,      0.78554462,       0.8918798,     -0.36636161,     -0.22105599,      0.14630774,      -1.3240138,     -0.20042957,     -0.39396464,      -1.4072576,      0.31842043,      0.83517762,     0.075940317,      -1.2912782,     -0.32057065,    0.0073651408,     -0.27374086,      -1.9497211,       1.6711044,     -0.29473007,     -0.42597356,      0.50978977,       1.5434341,     -0.38538338,     -0.20806797,       1.2997684,     -0.31196035,      0.76818514,      0.94830885,      0.37499135,      0.65741357,        1.689494,     -0.74532243,     -0.73328361,      0.22806609,     -0.85108918,      -2.4881466,      0.10666798,       1.6418658,      -1.0129253,      0.22940809,       1.2251629,     -0.60361745,     -0.17297343,     -0.54891631,     -0.18398438,       1.0735317,      0.99760923,     0.045150796,       1.0260651,      0.19883207,       2.6110916,       2.4800393,       1.4272041,     -0.77985162,      -1.0726788,      -1.3797678,       1.3405552,       0.1975905,      0.13855319,      -0.5167905,     0.033808557,      -2.4234049,      -1.8207882,       1.0058235,      0.74675507,     -0.68659251,       1.1949124,     -0.39643444,      0.18825953,     -0.47776375,     -0.75497757,      -1.6785489,      0.47520272,     -0.91935632,      0.63757007,       0.8515308,     -0.13483829,     -0.58914338,      -1.5595594,     -0.26696738,     0.098372383,      0.62247183,       2.0347249,       0.1401126,     -0.18589351,       -1.586515,     -0.18018697,       1.1693501,     -0.12517189,      -1.1815519,     -0.13165593,       1.3550157,       -1.455972,      0.10950908,     -0.32165906,      -0.7160966,      -1.1926191,    -0.081482477,      -0.5131481,       1.6856915,      -1.8484073,     -0.27302762,      0.10194286,       1.1468683,      0.78165127,     -0.57899548,      -1.1687845,    -0.020590525,      -0.2216587,     0.052959816,      0.46969686,     -0.50524838,      0.43325084,      -0.4003994,       1.6560444,      -2.2631391,      -1.3177292,       1.5022019,      0.96497634,     -0.21782961,     -0.25052652,      0.33497859,      0.63393349,     -0.61112105,     0.057444186,      0.40936264,     -0.80853905,     -0.31729291,      0.10410263,     -0.33162808,       1.3662175,       1.0927975,     -0.77349998,       0.2100149,     -0.80173205,     -0.92655793,     -0.32415615,        1.747683,       -1.262191,      0.91226486,      -0.4619435,      0.22950968,      0.74179961,     0.072291889,     -0.73595186,      0.80125215,      -1.3542037,     0.069082441,     -0.66837408,      -0.4560032,     -0.49360742,      0.85211189,       1.8693501,     -0.71004969,      -1.5610762,     0.042435903,      0.76305325,      0.52737016,      0.56497645,       0.6146381,       1.0279249,      0.17162315,       1.1353623,      -2.7907337,      -1.6696256,     -0.27255886,       2.5045485,       1.2170489,       1.1493038,     -0.75957128,     -0.72699461,      0.15019834,      0.57293722,       0.5238788,    -0.093174352,      0.47176168,       1.1107162,     -0.24070677,      0.93104258,     -0.67716325,      0.46728119,      -1.4512067,     -0.78506975,       1.1399067,     -0.81022119,       1.5003362,      -1.0527377,       1.2418995,     -0.26941599,      0.82926988,       1.7051128,      -2.0171758,     -0.12018529,       2.2122454,      -0.3235397,     -0.85427578,      -1.3715992,      0.61585471,     -0.39888733,     0.080046238,      -1.0235558,      -1.0223197,       1.1471211,      0.67281152,     -0.75065916,      -1.9381913,       1.0535725,      0.28411464,      -0.5969363,     -0.29538813,       1.1866693,      0.92271185,     -0.15212457,      0.80963268,     -0.75596921,      -1.5017087,      0.50860749,      -1.9436279,     -0.13145448,       0.7199168,      -1.3828682,     0.079466395,     -0.24338928,    0.0036595259,     -0.78927279,    -0.098688403,      -1.5998061,     0.046524304,       2.0642394,      0.41987007,      -2.1328728,      -1.3768707,      -1.1048688,       2.6321696,      -1.3734811,      -1.1157969,      -2.1479393,     -0.31306887,       2.3588863,      0.84384074,      0.73661646,     -0.86443363,        0.687627,      -2.1917833,       -1.359084,     -0.55286493,      -1.0964893,     -0.28170808,      0.81145728,      0.68966004,       1.1664409,       1.2525604,      0.81438738,     0.067403899,     -0.43653764,       0.1449822,       1.7590963,      -1.3544713,       0.2961222,      0.48098342,      -1.4027314,      -1.0244986,      0.78557256,      0.94968732,     -0.48290472,      0.14365691,     -0.20366858,      -1.6170197,      0.38399086,     -0.78370464,      0.37699387,     -0.67692037,      0.54478498,     -0.78802487,     -0.77245504,        2.760885,     -0.10648578,     -0.50664621,      0.43484469,     -0.63852419,       1.0568396,     -0.45500052,     -0.90080807,        1.102779,      0.69253043,       1.4968028,      -1.1966487,       2.5862514,     0.098765811,      0.72337767,      -1.0210875,    -0.091855521,      0.27950783,       1.6068708,      -2.1431865,      -2.1683188,      0.78027412,     -0.65217679,     -0.52519573,     -0.17818649,      0.80987752,      -1.2990148,       1.1234761,       -0.216622,      0.89557961,      -0.8613337,       2.1269026,     -0.83343876,      0.38533592,      -1.0136616,      0.71520801,     -0.13537139,     0.029239086,       1.7187806,      -1.4308297,     0.090418099,        2.306932,     0.044758811,     0.088218021,       1.2566543,       1.1104371,      -1.0988224,     -0.23744124,     -0.31367572,     -0.25743149,       2.1317191,      -1.2282792,      -1.0052571,     -0.28420044,      -0.4110394,       -1.778585,     -0.48161103,     -0.15274397,       1.1320071,      -1.0687488,       3.1719974,      0.94798814,     -0.69941349,       0.7107045,     -0.47172406,      -0.4475697,      0.88062206,     -0.30237741,       1.2931071,       1.0821575,       1.4807965,      0.57842005,     -0.65998111,       1.7841153,     -0.66648075,       1.0861611,       0.3155044,      0.14191151,      0.31223527,      0.71897946,      0.91122699,      0.64708304,      0.44959479,      -1.8131776,       1.0126981,      -1.1183219,     -0.63152007,       1.2041545,      0.48816982,      -0.6069684,     -0.41807924,     -0.24446464,      0.39525765,     -0.58288957,      -1.5258163,      0.11493818,      0.93294718,      -1.5654115,      0.53459553,       1.6328733,      -1.1867148,      0.54588565,      -1.2972642,      -1.2372968,      -1.2580532,     -0.93997658,      0.74011685,     -0.42768603,      0.39937148,       1.3271828,      -1.1290623,     -0.78085467,     0.015404449,      -1.5104884,      -2.2488654,      0.99259623,     -0.51696991,     -0.74708809,     -0.50642636,      0.68002214,     -0.12506711,      0.62171064,       0.4483794,      -1.3745102,        1.070261,     -0.42393224,       1.7906217,      0.18282113,     -0.47678874,      0.71168385,     -0.80313469,      0.59468012,      -1.7649968,      0.72793255,     -0.68285216,      0.73759815,     -0.82849273,       1.0367264,       1.2600984,       1.8137561,      0.26049784,      0.89723811,     -0.66314435,      0.52833564,        1.822881,      0.29729865,      0.95267231,     -0.50632683,      0.18557201,     -0.40478779,     -0.33336803,       -0.875595,      -1.2458566,      0.20099509,       1.2276561,     -0.50750342,     -0.41749972,       -1.338531,      0.86580043,      0.55252934,       1.6937297,      0.10933665,       1.9173049,     -0.69843294,       1.3315818,      -1.2542514,     -0.16668735,      -2.1990263,       0.6095376,      0.13006741,     -0.45449929,     -0.24145067,      0.94989016,     -0.45437101,    -0.069584522,     0.034702859,       1.3521438,    0.0068370316,       0.2397076,     -0.29208096,      -0.6339136,    -0.032920907,       1.6047334,     -0.70413882,      0.44291913,       1.4957215,       0.3136236,      0.50051634,     -0.88334524,      -1.9348798,     -0.70323532,     -0.65819778,      0.12618685,      -0.8289466,       1.5142434,      0.38364501,      0.31169494,     -0.17455188,      0.13157103,      0.82855415,      0.48724141,       1.4386463,      -1.1861432,      0.54634873,       2.0825495,       1.0145624,      -1.0495539,     -0.48972138,      -1.0685076,     0.095948863,      -1.6625757,      -0.6603086,       1.4371977,      0.67817443,     -0.26189285,     -0.10657504,    -0.035927815,     -0.11299336,      0.86378014,      -0.1601489,     -0.11702978,    -0.019840835,       1.8205594,      0.62659868,    -0.013005821,      -1.3986766,      -1.4632806,        -1.35267,      0.93094419,      0.84163126,     -0.45560965,     -0.69171721,       2.8299589,     -0.88909353,      0.31179777,     -0.94623272,     -0.39592036,       1.0857837,     -0.89106511,      0.45938103,      -2.5497101,       2.4984228,       1.2029386,     -0.89761688,     -0.24546154,     -0.71893629,       0.2196518,      0.11476189,      -1.7472357,     -0.30617631,     -0.14794721,       1.4415828,       -1.481457,     -0.43496469,      0.57213505,    0.0070551447,      0.88026688,       -1.331112,      0.32695383,     0.071748835,      0.45562589,      0.91419413,       1.2103397,     -0.92565556,     -0.93991691,       1.3866892,      -1.2308318,     -0.64510804,      0.70499198,       1.5039457,      0.55107092,      -1.4781524,    -0.047425559,       2.1500952,      -1.9983245,       1.2239156,      0.93430402,      0.10956417,      0.25205378,     -0.42502656,       1.6558267,        2.091537,      -1.7186455,     -0.59268547,      0.70655964,      0.68104473,     -0.62589597,       1.3316252,      0.15418898,      -1.8838468,       1.9603002,      0.19970733,      -1.2806221,       -1.737815,     -0.28808472,      -1.0215959,      0.66015102,      0.56774518,     -0.64991539,      0.68512266,       1.3278748,      0.11012719,      -1.3309668,      -1.3699203,     -0.48445352,      0.10991166,      -3.7124965,     -0.74040294,      0.40714583,      -1.0396089,      0.67358981,      0.37938765,      0.30744748,      0.58599654,      0.15691118,       0.6212341,      0.39208349,      -1.9620444,      0.38937243,       -2.225729,      0.55902389,      0.20309537,     -0.40400573,       1.2121057,    -0.034332384,     -0.39018922,      0.34895317,      -1.0764886,      -1.8441905,     -0.79599036,       1.9658747,     -0.28570643,      -1.1047609,       1.3905719,     -0.69552611,       1.1846833,      0.19657856,      0.70026519,     -0.33337299,      0.68859568,       1.0232009,       1.9539723,      0.94385778,      -1.8066404,      0.33322838,      0.62842239,     -0.19882324,     -0.67035838,       1.4792706,      0.48589874,       1.5288387,      -0.3810013,      -1.2285941,     0.055341084,      0.45441885,      0.57330628,     -0.70129308,       2.1188212,     -0.19805648,     0.052513535,      0.92749147,      0.65100258,     -0.58134168,      0.23982527,      0.83518279,     -0.63594847,     -0.38321012,      0.66526936,      -1.7257203,      0.71675608,     -0.54485801,      -2.2507907,      0.40292903,     -0.83101196,      -1.4724242,     -0.46655315,      0.11935417,     -0.58285215,     -0.49266074,    -0.066444782,      0.14668043,      0.11916817,      -1.8500892,     0.039677513,      -1.8700191,      0.35184515,    -0.047122017,      0.78956811,      0.27753907,      -1.2482865,     -0.30569433,     -0.42684359,      -1.3896871,    -0.043414984,     -0.48067857,     -0.38302422,    -0.093547259,      0.50246979,     -0.21581437,     -0.87100992,     -0.70480548,      0.19202633,     -0.29079808,     -0.47695835,      0.87667757,       2.4246606,      -1.8327702,       1.1307605,       -1.505549,     -0.46535471,     -0.26129166,       1.2105046,      -1.0422301,       1.8362888,      -1.2752638,       2.4122661,     -0.59331062,     -0.34408797,      -2.3124974,      -1.0753127,    -0.083987069,      0.82556625,      -0.7948794,     -0.39644717,        1.014804,       1.5123261,      0.24415291,      -1.0688768,     -0.67131101,       1.3902705,      -1.6709088,      -1.0441481,     -0.80010161,      -0.3915654,      -1.6258831,     0.067457531,      -1.0314003,      0.63985756,      0.73066956,      0.93195072,     0.082085045,     -0.91009604,      -1.5649956,     -0.61971402,      0.64407663,     -0.42252394,       0.2830495,       1.4822166,       1.3710754,      0.90498243,       -1.007438,      -2.2809189,     -0.23919153,      -1.2549206,      0.93646083,      -2.0856998,       0.4318305,      0.60443467,      -0.4504462,      -1.0732924,       2.4980612,    -0.034418293,      -1.4987822,     -0.97580903,      0.64932214,      0.67476311,     -0.39955625,        1.964585,      -1.5992629,      -2.2667982,     -0.27086568,      -0.4904076,      -1.6072134,     -0.36251968,      -1.2144645,     -0.80298075,     -0.92592477,       0.7150192,     0.010735117,      0.21966867,     -0.64182222,      0.27803598,     0.018787799,     -0.47493432,      -2.0501472,      0.12077743,       1.0952383,      -1.6152867,      -1.9819177,      0.64666867,    -0.015611625,      0.97239946,     0.064347781,      -1.6860123,     -0.62817312,       1.8821233,       1.3039357,      0.68416261,     -0.52041507,    -0.015123846,       1.0366252,      0.56732667,      -0.3712172,      0.65485936,     -0.18642942,     0.061017393,     -0.74089441,      0.87231864,      0.19205325,      -2.3109241,      0.50222664,      0.96187682,       -2.065516,      -0.7785903,    -0.070925206,       1.4944948,     -0.89754119,     -0.60649944,    -0.036892527,     -0.31331243,     -0.78628404,       1.6850988,      -1.2086713,      0.45316353,      0.84907303,      -1.1769863,       2.7978486,     -0.63407318,      0.21105111,     -0.24941863,        2.625444,     -0.95365422,       1.2263451,      0.39740904,      -0.9523841,      0.70076391,      0.70240977,    -0.083448759,       0.3621548,       2.3837748,     -0.75185361,      0.38375423,       1.2248644,     -0.15541734,       1.0607767,      0.48587695,     0.074328639,        2.566551,      0.15212105,     -0.36837202,        1.418041,       -2.397222,      0.10541621,     0.025987578,      0.21740686,    -0.013687233,      0.36719176,      0.36927954,       1.0602354,      0.11613497,      0.50851398,      0.20787759,       1.0119957,       1.3233141,      0.32867845,      -1.5372424,     -0.92690181,      0.28379798,     -0.70066206,     -0.11408959,      -1.8167266,      0.29519975,     0.048754179,      0.16221061,       0.7273599,     -0.23208631,      0.84222454,      0.81649044,      0.46241525,      -1.1621993,      0.71546803,       -1.468261,      0.65055363,    -0.049282288,     -0.66667256,      0.29607744,     -0.09812577,      -1.6771321,     -0.50302008,    -0.024464195,      0.52530329,      -1.4768654,        1.743153,     -0.15652969,      0.67067662,      -1.5010164,     -0.53144881,     0.057207685,     -0.46257228,      -0.3922256,      0.86242307,     -0.18543306,      0.54974606,     -0.20389599,      0.56666223,      -1.5817603,    0.0078689413,     -0.70564404,    -0.099059647,       2.1448791,      0.70173539,     -0.37015265,      0.53291794,     -0.83480919,      0.54088013,     -0.04329957,      -1.0979427,     -0.26833624,     -0.48907898,     -0.95352637,      0.02975545,      -1.3803071,      -1.4502367,     -0.24049608,       2.5768241,     -0.96731959,      -1.0372371,     -0.87699991,      -0.9597864,       -0.633505,     -0.79830868,      -0.8149994,       0.6853504,      0.52310399,       1.1493267,     -0.15001767,      -1.4532147,      -1.1839153,       2.3342993,      0.75189863,      0.92380309,     0.040996471,      -2.5475929,      -1.1886805,       0.7570952,     -0.44490512,     -0.42974258,     -0.46611383,      0.30087845,     -0.85494031,      -1.5960159,      0.79201821,     -0.28626041,      0.63721416,     -0.45511798,      0.58099612,       0.8907038,       0.4644565,       1.5939636,       1.1716209,      0.33059081,      0.61311387,       2.0761654,       1.1968095,      0.99460995,      0.80233919,     -0.34889706,    -0.050645949,     -0.54113536,      0.61619533,      0.26343134,       0.4114665,      -1.0601391,     -0.57853373,     -0.12431179,      -1.3633065,     -0.84678374,    -0.087182245,       1.8233804,      0.35993557,       1.1398343,     -0.38878222,      -1.1668139,     -0.54393477,      -2.7335411,       1.9957544,       1.7436838,      0.19194614,     -0.95405231,     -0.86139267,       1.5119283,       0.2219609,      -1.0320251,      0.72809062,      0.47694813,      0.51672178,     -0.95754225,      -1.2192889,     -0.81144606,      -1.3749581,     -0.54465686,      -1.4112802,     -0.96839174,      0.52864252,      0.21706059,       1.3906172,    -0.092868484,     -0.72294217,       1.4087037,     -0.23161092,      -0.3551441,     -0.57634868,       1.4918702,     -0.97513961,      -1.0233733,       0.4462784,      0.44587473,      0.54678702,      0.42618199,      0.61723101,      -1.6274315,      0.66584903,     -0.17961793,     -0.84875946,       -2.260628,      -1.2409534,      0.11427518,      0.35338416,       1.0269423,       1.3828386,      0.55815986,      0.74627174,      0.47633222,       1.2852583,      -1.7525477,       1.0688237,      -1.0878882,       1.6061986,      0.10619868,      -1.3274326,       0.4591703,      -2.0059625,      0.81854321,     -0.26431042,      0.55039766,      0.31996267,       0.6184896,      0.66950289,      0.16359001,     -0.88130925,    -0.037117135,      0.95660666,       0.1590804,     -0.25866359,      -1.7940078,     -0.22706242,     -0.19022693,     -0.74132374,      0.37757627,       0.3500196,      -1.3785858,     -0.14982458,       0.4817127,       2.2367005,     0.036729779,     -0.31900042,      0.26235942,      0.59783144,    -0.062032748,     -0.46197511,        0.477177,     -0.82270965,     -0.02995251,      0.76268667,     -0.34333516,     -0.62005675,      0.73498008,      0.89555333,      0.11191177,       2.2547753,      -1.2806375,      -0.2493059,     -0.84005245,       1.1825133,      0.78189331,       1.3510132,      -0.2729466,      0.60397893,      -1.4727923,       1.1299137,     -0.59874899,     -0.84117321,      0.82187827,       1.0328321,       -1.716145,      0.55540047,      0.73286443
+2003Y,     -0.19288271,       0.4448775,       1.4521744,      0.10325501,     -0.60858913,      -1.8290331,      0.84319724,       1.8194606,       1.6562721,      0.48560462,      -1.1752097,    -0.064110977,      0.13625892,     -0.74946592,     -0.93709873,     0.038501587,       -1.705175,     -0.89238865,     -0.82411987,     -0.56052811,       1.5363006,       1.2009275,       1.3858144,     -0.28109976,      -0.5762176,      0.98078223,     -0.88488945,       1.5754294,     -0.59020624,      -1.4294872,    -0.084422686,      -2.0319874,      0.29164876,      0.46476862,      -1.4983998,       1.7667633,      0.16276859,     0.014009158,       1.1867663,       1.5477641,      0.72802232,     -0.39843597,     -0.72308277,      -1.9170169,      -1.4271833,     -0.73745916,     -0.85767762,      0.57606757,      0.31956516,     -0.77136385,     -0.92406842,        1.271369,    -0.074580234,      -0.3140083,     -0.45218032,     -0.25527097,       1.1528473,       1.1918584,      0.75110109,      0.50304351,     -0.59637817,     -0.24679373,      0.69378128,      -2.4325275,      0.19081766,       1.6842466,      0.56383202,      0.49277846,     -0.85325074,       2.2440089,     -0.28358482,       -1.611467,     -0.51696326,     -0.94232245,      -1.9454182,      0.47350616,     -0.60132653,       1.8483271,      0.51535499,     -0.32396342,     -0.57003441,      0.73872137,       1.0837467,     -0.39466177,      -2.7122672,      0.23141507,       2.4073334,      0.47417643,      -1.5990336,      0.85293381,       -1.363566,      0.20811946,       1.1215772,      0.38315492,     0.074872053,       1.4490471,      0.21044537,       2.0226803,       1.8825046,      0.65142939,     -0.98095765,     -0.90913552,      -1.7988641,      -1.5552435,     -0.60009247,     -0.15791417,    -0.052254023,      -1.3130825,      0.42848963,      0.29110533,      0.80085954,      -2.3307111,    -0.090506651,      0.49113833,       1.2146258,     -0.21747749,      0.68131111,       1.6169814,      -1.4869599,      0.46919873,     -0.02541286,      -0.6699621,      0.45635925,      0.67711721,      0.79219075,     -0.92700933,      -1.1352355,       2.1239181,     0.074004393,      0.30946046,       1.3931233,      -1.2413292,     -0.69354358,      -1.9135275,      -1.9339799,      0.28016684,      -0.9261488,      -2.1770661,     -0.04663457,       1.8343312,     -0.73648605,      0.85366877,       0.9602162,      -1.0594454,      -2.1868213,       1.2032812,     -0.99855953,     -0.77885139,     -0.64061745,      -1.7588434,      -1.0270015,      0.30144714,     -0.53334685,     -0.37545455,      -2.0546441,     -0.61156319,      -1.0711727,      -1.0536073,       0.6254349,     -0.52684496,       2.6156804,      0.61328439,     -0.38760723,     -0.58906752,     -0.79584276,     -0.58501824,       0.8453273,     -0.89736592,     -0.14659936,     -0.53925734,     -0.50880202,     -0.85518012,      0.10304985,      0.38628699,      0.47710156,      0.33702896,    -0.022672277,      0.54491731,        1.495099,    -0.049141884,      -1.5438022,      0.31277644,      0.84399454,      -0.6881794,     -0.34991932,      0.65568184,      -0.4729248,      -1.0166802,    -0.056493755,     -0.15565966,      -1.7743973,     0.011729898,     -0.73068243,    -0.067000209,      0.15728153,      0.69299794,     -0.47148667,       1.5211044,     -0.38283282,      0.73497002,      0.23969239,      -1.3889123,       0.8240112,     -0.25233612,      -1.3343641,      -1.0246963,      0.30567318,       1.0182308,    -0.018287274,       -0.359117,     -0.87360056,    -0.079259098,      0.13997988,      0.52092658,      0.42917141,       1.4267147,      0.49763857,      0.31162453,     -0.18542597,    -0.018136545,     -0.90453276,        1.175533,      0.59869136,      -1.3863464,     -0.23667108,     -0.93758426,      -1.2082309,     -0.86301534,      -1.0022922,     -0.19369164,      0.83973698,       1.5882336,   -0.0081246168,     -0.12477877,      0.89158257,      -3.0543572,     -0.52620805,      -1.4633299,     -0.46753766,     -0.38829245,      0.26221368,     -0.99942938,      0.20383985,    -0.054134935,   -0.0069519953,      -1.5769614,     -0.54902599,    -0.069370873,      0.86315771,      0.52276146,     -0.63492258,      0.81543997,      0.72286175,    -0.092708433,      -2.7271828,      0.22555333,     -0.74101785,     -0.18905518,      0.49300498,      0.57074162,      0.78192048,       0.5434162,      0.52072468,      -1.1596629,     -0.25635853,      0.53642746,      0.12730398,    0.0088986731,     -0.84587957,      0.11299953,      0.28545387,      0.44860681,     -0.18468602,      0.99613962,      0.40835006,      -1.0836863,       1.2936013,     0.016693421,     -0.91262955,     -0.66961554,     -0.65158987,       1.3348307,      -0.7072416,     -0.27164991,      0.98855064,     -0.99715874,      0.48247586,      0.16153958,    -0.016434484,       2.0335569,       -2.607394,    -0.090562293,       2.1416493,      0.89832544,     -0.65838925,      -1.1561832,      0.53253578,     0.028082283,      0.20382076,      0.34339985,      0.23692043,     -0.49534888,       -1.104919,       1.2127038,     -0.47186978,      0.83632047,     -0.56881872,     -0.87572629,     -0.29666179,      0.86941961,      0.46147005,     -0.07830552,     -0.26792528,     -0.62570109,     -0.32973195,      -1.5585576,       2.8072182,      -1.2222287,     -0.14880318,      0.59842242,       1.7203874,     -0.67040475,       0.6459144,     -0.32392143,       1.6890265,      0.64948798,      0.18291287,     -0.11546916,      -2.9709263,     -0.91776118,      0.46784474,      -1.0456019,       1.3857748,        -1.31346,      -0.2120302,      0.34693647,       1.1688858,        1.107835,      -0.2319794,     -0.62111811,     -0.10556025,     -0.75421647,       2.5633473,      0.57013178,      -2.7211522,     -0.62292583,       0.4837927,      -1.2988115,    -0.011795663,     -0.48745031,     -0.30109086,     -0.22318005,       1.4448223,       1.2414878,     -0.70627551,     -0.34171131,      -1.5271869,       0.9919401,      0.17373031,      0.55199443,     -0.22052369,      0.30607964,      0.72070444,       1.4668332,       1.7280439,      0.42248501,       -0.229506,    -0.047799571,      0.81699062,         1.81718,     0.056763835,     -0.14461449,     -0.12543904,       1.4692393,       0.8933059,      0.81252577,      0.58458894,      -1.9807027,     -0.61345024,     0.054522564,       1.5177721,      -1.9511387,       1.0752119,       1.7577477,      -1.6520994,    -0.024240474,     -0.82205484,     -0.96786546,      0.48936505,      0.15853853,     0.061927334,      0.15007404,      0.74252004,     0.095902953,     0.015620469,      -1.1289453,     -0.33187535,      -0.1667496,      0.31227877,      -1.5918685,     -0.55118005,      -1.0189508,       1.4945824,      0.37440031,        1.046128,       0.5121367,     -0.98396737,     -0.14023206,       -1.093385,       1.3963444,      0.53731116,      0.35020161,     -0.13149241,      0.98142115,    -0.058340133,       0.3192648,       1.1126072,      0.91399844,     -0.36214162,      -1.0901558,     -0.40794067,     -0.76757887,     -0.61390038,     -0.27323369,       0.6301262,      0.50943325,      0.43484274,       0.3360482,     -0.94741176,       1.1522221,     -0.88396691,       2.2164153,       1.0220384,     -0.42587534,       1.7987471,      -1.6614668,      0.21461332,      -0.2262922,     -0.38125974,     -0.80426704,     -0.58416123,     -0.43111032,     -0.37712806,       -1.221326,     -0.14283534,      0.91068427,     -0.14376396,     -0.16303854,      -1.7555678,     -0.83482827,      0.37983072,    -0.050905584,     -0.34378951,      0.58541235,     -0.74182713,       0.2930932,     -0.85115345,      -1.1692458,      0.64586493,       3.0420987,       1.4808801,       2.0261492,      0.26207869,      -1.2600113,      0.48789975,      0.17591736,     0.028295582,       1.2643447,     -0.44523752,       -1.671699,       1.1228263,     -0.90519213,       0.1530341,       1.0151022,      0.97391483,          1.1339,      0.57145019,      0.14946878,       1.4832894,      -1.3978174,     -0.91869862,     -0.10118897,      -1.4429544,      -1.6471459,    -0.045145377,       1.1954787,      0.49253442,      -2.5434803,     -0.70858764,      -1.1497027,      -0.5881704,       0.2436174,      -2.0572309,    -0.057311124,     -0.77814505,     -0.09945737,      -2.1223426,     -0.72249666,      0.75468075,      -1.0235224,     -0.46554121,     -0.43148462,      0.81547921,      0.52247204,     -0.97035745,       1.5255142,      -1.3104757,      -1.5275257,      0.27694417,     -0.26381175,     -0.17198303,     -0.81277469,     -0.78667272,      0.62272203,      0.76530191,     -0.30627915,      0.18033831,       1.3192375,      -1.0013465,      -2.1766985,       -1.534936,     -0.15335177,   -0.0049510705,      0.32591496,      -1.2209171,     -0.72062605,     -0.24231707,      0.48488885,     -0.21999103,      -1.4067478,       2.2338704,      0.73198293,     -0.86259646,       1.6706003,      -1.0131401,     -0.43701735,     -0.85829024,      -1.5928622,      0.24194727,     0.069047826,     -0.87131668,      0.85152493,      0.87422496,       1.0027865,       2.1843922,     0.061016872,      0.12867689,     -0.90226019,      0.59052671,      0.96882959,     -0.16736554,      0.18508873,      -1.4582033,      0.84404572,       1.2814788,       1.1191562,     -0.10051404,        1.173998,       1.4212152,      0.76695215,      0.65286236,      -1.8887729,      0.27726955,      -1.8005427,     -0.66207355,     -0.34373178,       -1.207238,      0.48887212,     -0.69280603,       1.3072873,      -2.4380243,    -0.098530106,       1.6676855,     -0.31744146,       2.4499156,       1.6152532,      0.43320429,      0.64826069,      0.12295457,      -1.0933048,     0.065860064,       0.3939349,     0.046187393,     -0.53343143,        1.829909,     -0.14928721,     -0.35431636,      -2.0912114,      0.40896634,       1.5353497,     -0.54283148,       1.5156406,      -2.0597511,      -2.2773024,     -0.11983038,      0.22701356,      0.34822502,      -1.1901983,      -1.5015515,       1.1764872,       1.2490787,      -2.1788692,      -1.5803688,      0.58374276,     0.019302252,     -0.84833582,     -0.88820512,      -1.6281783,      -1.5336662,     0.056912848,       1.3200354,      -1.4761958,      0.32886187,      0.91565087,      -1.0229667,     -0.02249932,     0.039375699,      -1.8601658,      -0.1200529,      0.27460483,     -0.25110642,     -0.78112217,     0.046490164,      0.44945497,      0.33482691,     -0.80596015,      0.61542928,      -1.3353165,      -1.3072115,       1.6192544,      0.87423639,       1.2309462,     -0.94871301,       1.6517758,      -0.8198086,      -1.1084906,       1.6082148,     -0.22727563,      0.52545595,      0.13877398,     -0.17203282,      0.67731424,     -0.57975204,     -0.75775449,      0.31018379,    -0.080972252,      0.49854303,      0.49154902,     -0.69209719,     -0.47867405,     -0.96157934,       1.3767155,    -0.085766034,     -0.69091887,       1.6028835,      0.56641827,     -0.36814821,     -0.45189337,     -0.84377951,      -1.4238186,       1.1574879,      -1.5419095,      0.36974359,       2.3028442,      -1.9586944,      -1.1129167,     -0.23357056,      0.96075848,     -0.89251244,       2.2774767,      0.22844447,     -0.24359154,      -2.3050059,      -1.3219106,       1.2012459,       0.8946016,     -0.23022655,      0.53954094,       1.6075609,     0.024865156,      0.30884148,      0.69751528,    -0.024421171,       1.5091729,      0.21311285,       1.2583469,       1.7251369,     -0.90567668,       0.3305555,   -0.0028849504,      -1.3439825,     -0.43948376,     0.078230274,      -0.2011346,       1.1319492,      0.95478762,       1.4905843,     -0.24768229,       1.4373472,      0.25473253,     -0.13951528,       2.3877533,      0.33900045,       1.7120009,      0.59514026,     -0.96981953,      -0.1292808,      0.94758362,       1.6058122,      0.98010791,     -0.28189015,    -0.051561346,     -0.45911863,     0.065753637,     -0.63835474,       1.0663736,     -0.64026495,      -1.5709509,       2.1789425,       -1.106916,      0.19492005,       1.9224741,      0.71608886,       1.8180013,      0.91179884,     -0.27312388,       1.2546136,      -1.5280535,       1.1652082,      0.83768028,      0.62945949,       0.9795351,       -1.143311,     -0.25288882,      0.32507345,      -0.5774655,       1.0472964,     0.049167581,      0.63086735,      -1.0667653,      0.76156494,     -0.11668453,       1.7202516,      0.84645409,       1.8012935,       1.3318501,      0.15843146,      -0.1452936,       0.2294617,      -2.1695062,     -0.49326861,      -1.0327708,     -0.83698543,     -0.98837187,      0.60367322,      0.71992491,      0.52243187,     -0.13059128,      -2.3267059,       1.3903132,       1.1292001,  -0.00061804074,      0.40960871,      -1.8948518,      0.91640791,     -0.59162285,       1.0040214,      0.67018264,       0.5154446,     -0.39791032,     -0.41642906,      -1.6478095,      0.97443771,     -0.20571962,       2.1708573,      0.97324343,     -0.26112207,      0.95235269,      0.17532525,      0.14539666,      0.65707175,     0.049866921,     -0.64988548,     -0.15095637,      0.13652736,     -0.95176462,       1.3291366,      0.38641731,     -0.91168865,       0.2510276,     -0.69893667,      0.45783417,      0.49013145,     -0.29078274,      0.34953865,      -1.0027113,     -0.93229875,      -1.8510396,        1.992632,      0.99312623,      0.74685568,      0.16135931,     -0.93121034,     -0.92187346,     -0.18860073,      0.24198271,    -0.085158892,      0.74158648,     -0.54744526,     -0.23430827,      -1.9917723,      0.94326959,      -0.6408962,      -0.3034187,       1.1184174,       0.7212804,     -0.99441483,      0.46779874,       1.3465663,      0.22827932,      -1.6507031,       1.1345221,      0.61666441,     -0.96619178,     -0.88331281,     -0.43424307,     -0.07809622,       1.5741329,      0.48334036,      0.85882771,      -0.3958989,       2.2181091,      0.62065063,      0.99263063,       -1.124533,    -0.085100898,       1.6041273,      -0.1911295,     0.023996728,      -1.9712721,     -0.84080618,       0.3508142,      -1.2900106,      0.57696847,    0.0084672112,      0.55293395,     -0.57995191,      0.22170465,      -1.5839708,      0.46625726,     -0.37533632,      0.16126118,       1.5994143,       1.2555759,        2.148811,      -2.2646416,       2.5851431,     -0.40315944,      0.74650251,      0.56227839,      -1.0324259,      0.28582074,      0.60417367,     0.093964648,     -0.73333723,    0.0022725415,      0.36932734,      -1.0194548,     -0.15306814,      0.64026184,      -1.1039617,    -0.028496433,     -0.86589619,      0.79603247,     -0.46545201,      -1.6910901,     -0.11226675,      -1.2097268,      0.11926688,      -1.2031002,      0.66138106,       1.3803273,      -1.8237928,     -0.17676005,      0.84543614,     0.034357589,      0.13516935,      0.45864895,       -1.242624,       1.6835342,       1.5571167,       -1.047779,      -1.4721009,       -1.203866,      -1.3378872,     -0.23574374,        2.357724,      0.97098128,      0.13221221,      0.62917599,      0.56098782,     -0.68404898,       -1.610084,      -2.5590487,      0.81737913,     -0.89342185,     -0.47006299,      0.42831591,      -1.6405041,      0.41325447,      -1.2461884,      0.62134027,       1.7906783,       0.1911513,     -0.75288744,      -1.2479947,    -0.047569724,       1.8510523,      0.18545267,     -0.63491152,       1.7640325,      0.50928101,      0.54271959,     0.053618151,     -0.22061394,      -0.1543022,      -1.7922255,     -0.97332049,      0.99918447,        -1.42221,     -0.18699879,      -1.1004545,      0.34626522,     -0.84217781,     0.063428213,      0.15435284,     -0.86849273,       1.1229462,      -1.6772488,     -0.10970753,     -0.41345526,      -1.8355523,       1.0936125,      0.99779106,     -0.39705723,        1.577313,    -0.072200897,    -0.029973282,       1.6869289,      -1.2465696,        1.384214,     -0.82588027,      -1.2580952,      0.91702529,      -1.2352273,      0.37611361,     -0.66156105,      -2.1272697,      0.13416909,      0.41862967,       1.2783176,      0.40103871,    -0.038992619,       2.0451249,        1.619224,   -0.0025791665,       1.4165064,      0.83948722,     -0.97436424,     -0.38344506,       1.5412047,      -1.0089803,      0.56806527,     -0.79857777,      0.74532947,      -1.2924157,       -2.249038,       1.0672949,     -0.61316099,     -0.18973522,     -0.54467879,     -0.54486941,       1.0544216,      0.93655671,     -0.11548257,     -0.26558564,      -1.3066951,      0.46237017,      -0.9804429,       0.6919358,      0.22666911,      0.03715366,    -0.066407606,      0.33389611,      0.51775716,       1.2985284,      0.53800927,     -0.56870175,    -0.036152506,     0.013537954,      0.71702821,     -0.58207538,      0.33020808,     -0.18390679,      0.14539011,      0.71970015,     -0.88250806,     -0.54521852,       1.1027639,      -1.4873151,       0.9110034,      0.31217181,      0.62930639,      -1.7176133,      -1.9868519,       1.6065238,     -0.55318694,      0.23767169,     -0.45289545,      0.13195692,      -2.2981675,   -0.0049224738,      -1.2166678,       2.2100897,      0.60727275,       1.6645854,      -1.3580376,     -0.95379415,      0.27306552,      0.28482838,     -0.48685504,     -0.81588108,       2.0433957,      0.13271935,       1.2568688,      -1.0052526,      0.70927518,      0.51865147,       1.5076392,       1.8996735,      0.36466952,      0.93029283,     0.059361576,       1.9774508,      -1.7046341,       1.4959195,      -1.6196479,       1.2788535,      0.49131889,       1.4522569,     -0.71238249,      -1.1303668,     -0.75081901,      0.97742062,      -1.5143902,       1.6156254,       1.1449643,    -0.063978954,      -2.0333529,       2.0480773,     -0.40828244,      0.46431066,      0.20546233,      0.95562942,      0.06965162,     -0.38619684,     -0.76119291,     -0.68104426,     -0.14310069,      -1.4222487,       -1.128895,       1.3328521,      0.10066446,     -0.31871573,      -1.9482554,      -1.3946674,      0.81910755,     -0.18542814,    -0.051077571,      0.34852956,     0.061743799,      0.29183126,      -1.2040534,     -0.40612899,      0.63816409,     -0.71981037,      0.19584295,      -0.2978371,      0.56238092,     -0.85062804,      -1.1291834,      0.41211796,     -0.45368922,      -1.1901106,      0.96918857,      -1.9581696,     -0.21899611,      0.88729873,      0.43246374,     0.015927825,       -1.337337,      -0.6939526,       0.2191596,      -1.0366847,     -0.92872263,        -0.73435,       2.2231553,      0.34480505,      -1.3018449,      0.86715454,      0.57752044,     -0.72633382,      -1.0259712,       1.2253569,      -1.9608203,      -1.0722092,      0.12590255,      -1.9910974,     -0.95817072,      0.37139456,     -0.34382321,       1.3278848,     -0.61360414,      0.28446276,       1.4110804,      -1.1399811,     -0.28442359,      -0.8583189,      -1.7350062,      0.26583991,      0.31853178,     -0.29894399,      -1.2248608,       1.2304119,      -1.4270495,      0.93040063,      0.80087262,       -1.075775,      0.92843364,       1.4713044,       1.4294793,       1.3868315,       1.6484437,     -0.38608428,     -0.97102502,      -1.6044348,     -0.72948045,      0.77911016,      0.60303251,     -0.98064616,       2.8640198,       1.9209586,     -0.40677721,     -0.37031792,        1.245599,       1.5339068,     -0.75078539,      0.66958464,     -0.61733038,       1.0998699,     -0.24563041,      0.86194961,      -1.9771849,       1.3296677,      -1.1067458,      -0.6839618,       1.9072251,      0.72989798,      0.45066145,      -1.7198192,      0.34633209,     -0.41078953,      0.83219836,     -0.61350306,      -2.3883329,      -1.8232924,     -0.49303749,      0.88599795,      0.36722101,     -0.96487125,       1.9219827,      0.52572501,     -0.94683865,      0.72587265,     -0.36597148,      0.17518577,      0.91293548,      0.51547513,      0.93669222,      -2.4854559,      -1.6123735,      -1.0752924,       -1.439328,      0.63651559,     -0.76037368,       1.3665651,      -1.6108985,       0.1728434,     -0.72463768,      0.86900513,       1.7383871,       1.2065586,      -1.2162619,      0.56627804,      -1.1989205,    0.0078284501,       1.2121958,      -1.5735537,     -0.54497607,      0.21736527,     -0.83868168,       1.8239942,       1.0683915,      -0.9532485,      -1.7602598,     0.015419131,        -1.66866,      -2.0947973,      -0.7824534,      -1.8431717,        1.087159,      0.59366166,     -0.81476561,      0.67886758,     -0.41519362,     -0.22618162,    -0.012037313,      -1.3713298,       2.1752671,      0.76164595,      -0.6237726,      0.73333517,     -0.91424158,       0.0682681,      0.22627731,     -0.19110187,      0.11663769,      0.47298249,    -0.027831919,      -1.1794005,      -3.2495263,       1.4609529,     -0.19487284,  -0.00031562135,      0.32908684,     -0.60150012,      -1.2278202,     -0.28879908,       2.6313524,     0.074825065,      -1.3404082,       1.2579397,      -0.6530567,     -0.84991705,     -0.51931789,      -1.5512767,     -0.83301981,       1.2994083,      0.87720323,     -0.72136571,     -0.27576349,       1.3333685,      0.22690868,      -1.3372578,      0.11759763,      0.20430015,       1.1090728,     -0.35193262,       0.4527999,      0.70643955,      0.99058487,        1.308343,     -0.16540002,     -0.24377596,      0.89986052,      0.41080491,      -0.7216067,       1.3616775,    -0.099963449,     -0.30015116,      0.41395954,      0.50370299,      -2.0469734,     -0.76327244,      0.34418408,     -0.26337207,       2.2622083,      -1.4021484,       1.4227968,       1.0103844,   -0.0047124523,      -1.1918804,     -0.35874802,     -0.92974791,     -0.82440493,      -2.0136107,       1.3114857,      -1.0661279,       1.5405602,      -1.1077647,      0.38798001,       1.5055938,      0.88780624,      0.12099821,      0.92439527,    -0.094676565,     -0.15449527,       1.1072586,      0.64049471,      0.16258468,       1.6097938,       1.0071316,       1.5469279,     -0.85572249,        2.369746,      0.27878548,    -0.036714369,     -0.78732932,      0.31382252,      0.66277997,   -0.0025379016,       2.1469052,      -1.6856148,      0.93329972,      0.87387272,     0.064934921,       1.1612051,      0.93510743,      0.45275726,      0.69621005,      -1.7995946,      0.97293173,      -1.6226622,      0.64104379,      0.47700545,      0.33505891,        1.024894,      0.99928242,  -0.00075622084,      0.44872163,      0.67970703,       0.2119064,   4.6032107e-05,      -2.3105665,    -0.019288858,       1.2018772,      0.25415038,      0.10515499,      0.26920407,      -0.2663834,     0.019209439,     -0.36407246,      0.15381314,      0.96501891,     -0.11642269,       0.0145587,     -0.11620205,      0.51305905,       0.7158426,      0.93659593,       1.4085275,     -0.87395139,       1.2103415,      0.12239551,      -0.4809808,       -1.273028,     -0.79529274,     -0.81102552,     -0.11229144,      0.55153677,     -0.43264735,     -0.59718221,       0.9205896,       0.6394438,       1.1948223,      -1.1969186,      -1.5346209,      0.19088468,      -0.8422805,      0.75493047,     -0.29046624,      -1.8910914,       1.3503198,     -0.80496085,     -0.92155748,       1.1566059,       1.5320999,      0.51497407,     0.046400352,      -1.4111425,      0.37377588,      0.50264267,        1.768945,     0.039517091,      0.93622111,     -0.13899275,      0.48572819,       0.9741849,       1.0065134,     0.075540915,       1.5026117,       1.4725917,       1.1035362,      -0.2787506,     -0.57004966,     -0.23968684,     -0.23258702,     -0.30831643,      0.28076966,      0.65044006,     0.061765237,    -0.085352895,    -0.043601749,       0.6840598,   -0.0074443087,      0.13925376,     -0.45576589,       1.5177342,      -0.8098856,       1.5406895,     -0.36514537,     -0.86535579,      0.39238747,      -1.4041827,      0.31704499,       1.2229556,      -2.2557875,     -0.78831231,     -0.50775268,       1.2454951,     -0.66299891,       2.0240013,       1.0012071,      0.57820386,    -0.013070999,      -2.1904444,     -0.16669984,     0.087656896,      0.50097867,      0.89870572,      -0.2752761,      -1.4750563
+2004Y,       0.9862541,     -0.17103476,      -1.1139815,      0.64173792,      -1.2195693,      0.60978824,      -1.3288813,     -0.35286412,     -0.15315015,      0.16678869,      0.17690418,     -0.39732339,      0.63294512,     -0.57802794,     -0.57202254,     0.069706314,      0.48221795,      0.42203262,      0.42978697,      -1.8334088,     -0.21478615,     -0.44592846,       1.9788716,       -0.102289,       1.1672726,      -1.9035571,     -0.95212916,      0.77709058,      0.37138517,       -1.530497,      -1.2844144,     -0.60634997,       1.2191694,      -1.9906078,    -0.081831309,       2.6591479,     -0.25539253,     -0.94939581,      0.61894938,      -0.6353008,       1.2831891,      -1.0043822,      0.15132993,      0.74502738,     -0.88633096,       1.7065043,      0.61070028,       1.1465383,    -0.035729581,      -1.3709317,      0.34129669,    -0.039598238,       1.3013504,      0.18270901,     -0.62800945,       1.7100431,     0.058020275,       -1.547819,     0.064148985,     -0.78521963,      0.32683562,      0.51019026,      0.31169573,     -0.15768885,       1.1912049,       1.7028601,     -0.20215409,       1.6245369,       -1.155871,     -0.72574773,        -0.55856,     -0.51950411,       1.1642907,     -0.31847496,     -0.33392055,     -0.29448752,       0.6219915,      0.11125417,     -0.86645652,     -0.56885993,       1.4056834,      0.30378584,      -1.1701088,      -1.7967599,      -1.8905397,       1.0446678,      -1.8555909,      0.35489913,      -0.4760147,      -2.6053948,       1.5978979,      -1.4671725,     -0.22583841,     0.037026169,        2.185891,     -0.61589236,      0.82868777,     -0.13861462,     -0.47547195,      -1.1394615,     -0.59815503,      0.24014784,      -1.2200776,    -0.069637142,     -0.11909365,       2.3487315,       1.1886527,     -0.75731164,      0.85407195,      0.87966083,    -0.079432935,      -1.7597294,      0.23835624,      -1.5418209,       -1.038498,     -0.30415762,    0.0026729315,      -1.1160758,     -0.80156867,      0.62735145,      -1.9225634,      -1.5020182,       1.3718268,       0.1334268,      -1.3866796,      0.22108186,     -0.41720481,       1.3187026,       1.5861513,     0.056503789,      -1.0696815,      0.43521428,     -0.16615025,      0.45171647,       1.7666744,     -0.62811218,     -0.67139413,       1.7946082,       1.1750464,       1.4126455,       -1.377159,      -0.7891977,       -1.762377,     -0.33026408,      0.57898988,      0.58560279,     -0.48355974,     -0.69369079,     0.071629984,       1.7531232,        1.405467,     0.089683587,      0.27661325,     -0.19398708,        0.247363,      0.71348952,       1.1936533,       1.2701447,      0.73341193,       1.2359647,      0.86541026,      0.53279638,       0.2826933,      0.93195899,     -0.51623987,      0.62498723,     -0.14742045,      0.16512322,       0.7136588,     -0.75748835,       -1.313613,       -1.140366,       1.2328828,       2.0055623,      -0.7041422,      -0.8563511,      0.35469607,     -0.41569666,      0.53646301,      -1.3787566,     -0.74753683,     -0.11683022,      0.47553864,       1.2385979,       1.3544733,      0.73858017,       1.4127651,     -0.51491713,     0.012732437,      -2.3864519,       -2.861109,     -0.36855536,     -0.58584577,      -1.3905137,     -0.10666949,     -0.26348961,   -0.0014389351,       1.1653008,     -0.37190315,     -0.23674272,      0.51914189,     -0.28150726,     -0.22126457,       -2.127538,     -0.74494068,       1.5515547,     -0.94461097,     -0.41913864,     -0.88038521,      -1.3394466,      0.53227624,     -0.15039883,      0.70732648,     -0.37403837,      0.57962077,     -0.34044283,      -1.4816966,       0.5889863,      0.19274062,      0.48306891,      0.85751079,      0.56163244,     -0.50272598,     -0.89269714,      -1.0649867,      -1.1847822,       1.7339207,      -0.2928094,       1.1756182,      -3.1494067,      0.63678085,      0.24016811,      0.55496938,      0.49510592,      0.44088011,       1.3577367,      -2.1237614,      -2.4851584,       1.1693121,       1.8451305,      0.65826279,      -0.5755696,     -0.42211896,      -1.3939498,       2.0739168,       1.5350552,    -0.089795873,      0.68264437,      -1.1019218,   -0.0069091238,      0.60114864,     -0.18489116,     -0.93807022,      0.69020466,       1.5532028,      0.54069419,      0.54920199,         1.30751,     -0.93082029,      0.52903731,      -1.0474863,      0.55766139,     -0.39898562,     -0.11912542,     0.041370754,      -1.2949116,      -1.0196527,      -1.6031481,      0.31209038,     -0.73077152,        1.602258,      -0.5616791,     -0.33393575,      0.81332982,     -0.75501901,      0.71594804,      0.23632529,     -0.28518079,     -0.22385216,      -0.2358924,     -0.84207622,      -1.9504671,     -0.57669371,     -0.13026469,     0.032921549,      -1.0958118,      -1.1061291,      0.63108249,     -0.30132269,      -2.0058659,         2.01254,     -0.40249589,     -0.38773826,      0.93920243,       2.0618971,       1.1617009,       1.5440057,     -0.71875299,      0.16618494,      -1.1708566,      0.34797525,      0.29617309,      0.44552104,      0.23953752,     -0.22709543,      0.20636341,      -0.7339909,     -0.79881331,      0.25038139,       1.7960331,      0.87720018,     -0.54225418,       2.0673769,      -1.1122306,       0.1047473,       1.1266539,       1.1170722,       1.1225626,       1.3549141,        -0.77993,      0.81154489,      0.33683333,      0.69813159,      -2.4907359,      0.93411875,      -1.0081474,      -0.9114639,      0.30229539,       1.5376474,        1.184147,     -0.32720018,        1.475654,     -0.78061918,      0.70512199,       2.4038917,      0.72753517,     -0.59544486,     -0.65300561,      0.80454065,        1.117811,      0.35486871,       1.2183456,      0.49976082,     -0.52466854,       1.6015372,     -0.86406083,     -0.47926768,     -0.43169549,      -1.5853841,     -0.93268737,    -0.038893809,       -1.610881,     -0.35625257,       2.1656317,       -1.999841,     0.041089578,      0.23652161,      0.11569991,    -0.025715727,      0.92079913,      0.40556019,      0.31255885,    -0.040077297,        1.265127,     -0.55585327,     -0.83087595,     -0.86300721,      -2.2224165,       1.2564165,       1.6054659,        2.489617,      0.51447138,       2.0334146,     -0.72753196,     -0.54660099,    0.0068258154,      -1.6043672,      -1.1976582,      0.90720206,     -0.94605073,     -0.55870645,      -1.4792151,       1.5573701,     0.097755525,     -0.10340853,     -0.20834204,       1.5317889,       2.8287691,    -0.085478873,      -1.0299431,       1.1688302,       1.5947985,      0.19906966,     -0.82219443,      0.39516657,       1.3396622,       1.1853873,      -1.3307896,     -0.92688574,       1.1494038,     -0.78730211,       -2.433653,      -1.1350062,      -1.1830762,      -1.1565404,    -0.054006672,     -0.90302541,      0.46945932,      0.24897621,       1.6299238,       1.3158132,      0.64978916,      0.91090085,      -1.4706902,     -0.38576352,      0.79206904,       1.1794045,      0.36314297,     0.086769615,      -0.4032223,     -0.95750415,    0.0051191101,       -1.752897,       1.4436326,      0.86467955,      -1.1260318,       1.1905465,     -0.32836629,       1.0184003,       0.5005253,      -0.2086144,      0.29325562,      -1.9672693,      -1.8841329,       1.1512342,      -1.8247588,     -0.57717395,      0.95503246,     -0.90848706,       1.0403589,       1.3049332,       1.4308617,     -0.56617809,      0.68641835,     -0.12452655,      -1.1545019,       0.6853276,     -0.36439478,    0.0012695542,      0.89347742,      -1.8358325,       1.1787937,      -1.3860931,     -0.16505176,       1.0094595,      -1.5058727,       0.7380534,      -1.7713788,      0.97378137,      0.62200725,     -0.24961244,      0.87787958,       -1.542561,     0.029818632,    -0.040116824,     -0.18565372,      0.75102022,     -0.99064087,      -1.2598238,      -1.1785218,     -0.51114024,     -0.68958301,      -1.3670933,        1.902533,       1.1174904,     -0.37384406,     -0.48058323,      0.14334846,     -0.16989642,     -0.73917262,     -0.70824391,       2.6185381,     -0.56472929,     -0.81304477,     -0.41492605,      -1.2554235,       -1.089838,     -0.61018111,     -0.57849006,       1.9405521,      0.86116043,      0.86392772,     -0.38486219,      -1.9295844,     -0.88992478,      0.38077981,       1.2128284,       1.4038071,      -1.2497929,      0.41800325,        1.227822,     -0.49903916,     -0.39542622,     -0.22748165,      -1.0354152,    -0.019432088,     -0.14803882,    -0.057919831,      0.23492907,      0.28414488,     -0.12246304,     -0.97096836,     -0.96110911,     0.094402294,      -1.6481041,       1.9624079,       1.3629413,      0.73216295,      0.68832285,      -1.2488252,     -0.68318559,       1.7656446,      -1.6157427,      0.75312376,       1.0912664,      -1.0819564,      -0.5009129,      0.86466544,       1.0467805,      0.57372993,      0.73194688,     -0.99039306,       1.9734616,     -0.52162241,       1.5929011,      -0.9440667,       -1.027541,      0.68355939,       0.2158753,      0.60245522,       0.4063398,      0.60969091,       0.6586762,      0.53061368,        1.266981,      0.14046669,      0.63343205,       1.7363391,     -0.81521265,     -0.14732336,     -0.99655821,     -0.41756204,       1.1012341,     -0.91963966,       1.1818095,      -1.1209631,       1.0518954,       2.3023772,      -1.1385016,      0.79112727,     -0.23485284,      -0.9826226,     -0.31095483,       2.5025933,    -0.091169149,      0.80750006,       1.0098333,      0.77463304,      0.52366549,      0.30897756,     -0.52344759,      -0.2628968,       0.2483488,     -0.48176485,     -0.12946194,      0.39993422,      -1.0860447,    -0.017678977,      0.43041926,      0.90797555,       1.6084399,     -0.39275769,       1.2574218,      -0.9383814,      0.44613926,     -0.43223929,       1.9667475,      0.43189467,      0.67975492,     -0.15300185,      0.41846557,       1.6066544,     -0.29730965,      0.98299474,      -0.9585936,       2.0389176,      0.10521279,       1.2498928,     -0.12362396,      0.60554398,      0.87508377,        1.165262,     -0.16580136,       2.3732013,      0.97440305,     -0.26417387,      -1.6215031,     -0.71976254,    -0.099982457,      0.10886662,      0.98712576,    -0.065474524,     -0.14040646,      -1.4716322,      0.32520057,        1.193656,      -1.2394162,      0.65558659,     -0.39980857,      0.67466491,     -0.37228124,       1.2008792,       -1.393603,       1.3840949,     -0.90340291,      0.53807345,   -0.0011138504,      -1.6051101,      0.16546119,     0.058709536,      0.20302005,      -1.2166758,       2.2099278,     -0.24959167,      0.32444342,       1.6634336,      -1.7365536,      0.58134615,      0.61887271,      0.56687729,    -0.063812005,      0.95748149,        1.590623,     -0.63108399,      -1.3186711,     -0.19806924,       1.4249598,      0.93360948,     -0.81647432,       1.9543467,     -0.21557212,      -0.6423529,      -0.4304629,      0.15986155,      0.72957148,       1.8952804,     0.047532273,      0.11471966,     -0.42767298,     -0.16000364,      0.97816201,     -0.81046813,      -1.4506464,      0.86695829,     -0.71909062,      0.85590771,      -1.0540373,     0.079573436,    -0.021232531,     -0.57875191,     0.078286341,     -0.33814339,      -1.0542583,      -1.3012906,    -0.035886201,     -0.77736672,      0.51491117,     -0.12538609,      0.66723889,      -1.1021689,       0.8013324,      -1.4449857,      -1.0737125,      0.52485227,     -0.33573591,     -0.52866064,      0.93720574,       0.1293845,      -1.6076313,      0.13510907,      -3.1464943,      -0.6007649,      -0.1209777,      -0.4337716,     -0.69802127,      0.84472684,      -1.1036509,     -0.56639916,     -0.17856445,     0.008987745,     -0.74956358,     -0.52797639,     -0.43364213,      0.59055203,       2.1104003,      0.31274969,      0.46733305,     -0.30093485,      0.41775004,       0.8691804,      -0.6087222,      -0.3577849,       1.6859786,      0.29188241,     -0.79652827,     0.093837585,      0.95979866,    -0.031764491,      0.95994522,     -0.39595505,     -0.82302236,     -0.78842967,      -2.4727011,     -0.89542008,      0.74307887,       0.4725184,      -1.3802284,       1.6601208,      -1.2996571,      -0.5113975,      -1.1238672,     0.039779402,      0.49745791,      -1.0122934,      -0.4681547,    -0.076177762,     -0.53714746,       1.0269936,    -0.022386196,      0.22662264,      -1.8413876,        2.372429,      0.68093146,     -0.22423299,       1.1696424,      0.45874532,      -1.2215291,       1.8650408,     -0.53127077,      -1.3986348,       1.0871565,     -0.92256538,      0.78940588,     -0.23368194,      -0.8347185,      0.47272908,       -0.594483,      0.58847297,     -0.26525565,     -0.55784963,     -0.62163934,      0.24578296,      0.39523949,     -0.62948723,      0.21472298,       2.0452131,      0.59149615,    -0.065770574,      0.51692281,       2.0518765,     -0.42218031,      0.43311637,     -0.56811178,       0.2640617,       0.6498245,      -2.2701711,     -0.91105794,      -1.4875744,      0.80225092,       1.8738461,       0.8895691,     -0.60265477,      0.99572421,       1.4608031,      -1.9337103,      0.27660879,     -0.22324989,      0.41699183,       2.3051135,      0.83763153,        -1.25891,     -0.27804641,      0.34444062,     -0.97513291,      0.45549472,     -0.33376859,       0.7218167,      -1.0936459,      0.27680501,      -1.1499306,       1.1041018,      -0.3957815,      0.28952195,       1.8250654,     -0.29091448,      0.32102923,       1.4726981,       1.0626926,      0.80457138,       1.3117004,     -0.20209954,     -0.94576576,     -0.63768412,      -1.8098518,       1.7917623,      -2.6885633,   0.00068662339,     -0.76387174,     -0.64257368,      -1.6583018,        1.765431,     0.069115954,      0.12918885,     -0.43472663,       1.2241433,      0.80764511,       1.6852066,     -0.51608372,      -2.7891478,       1.3520431,    -0.069258444,     -0.23926012,      0.11639758,      0.89153284,     -0.65124688,      0.17343581,     -0.92561293,     -0.98284319,      0.21337328,       -2.098104,      0.13771935,      -1.2893975,      0.57928187,    -0.023342163,      0.22325824,      0.53927289,       1.2038113,      -2.1603783,       0.5156887,      0.30654379,     -0.96623076,      0.66556316,       0.8798325,    -0.098195422,     -0.96956857,       1.6351885,      0.47019772,     -0.82650269,      0.12627648,      0.42502861,     -0.57779352,      -2.3949571,    -0.011954149,     -0.15761417,     -0.79837277,     0.081476841,     -0.83640807,     -0.26402086,     -0.54878999,       1.8994746,     -0.75752222,      0.99712348,      -0.4274899,     -0.98891538,      0.78528145,       0.5257942,      0.50600968,      -1.5380977,       1.0683295,    0.0011999944,      0.31525424,      -1.2393478,       1.0843309,     -0.58575525,       -0.235922,       0.1733569,       1.0748076,       1.3388082,      -1.1878463,      -1.0059918,      0.34469732,     -0.51675458,     -0.71038973,      0.48485063,     -0.76732071,      0.22960622,      0.21894328,     -0.96490368,      -0.5014263,     -0.28463179,     0.019001785,     -0.56709703,     -0.92809364,     -0.65620589,       1.0485191,    -0.097275357,      -2.2381188,      -1.2291453,       0.6085299,       0.1128542,      0.80633486,      -1.4215005,      0.56120423,      -1.1438604,     -0.62091419,     -0.44262808,      -0.2521807,    -0.076230611,      -1.5137653,     -0.61332509,      0.53358821,      -1.1531019,      0.17367312,      0.22706292,      -1.1623172,     -0.78200271,       1.5002348,     -0.19410937,       -1.731362,      0.25316266,       0.2901534,       2.1713707,      0.40914016,      0.34387209,       1.2061817,       2.3713535,     -0.34779005,       2.1885362,      0.46468901,     -0.78554688,     -0.31249234,      -0.7986992,      0.29095591,     -0.70776969,     -0.90403587,      -1.1164482,     -0.44639497,     -0.54973665,      -3.6293226,      0.22182328,      0.16664082,      -1.9733654,     -0.31914951,      0.11923027,     -0.57399787,      0.12324831,     0.023991811,      -1.5389438,      -0.1714472,      0.43548441,      -1.0867679,     -0.29877298,      0.83564897,     -0.31845321,      -1.2199284,      0.34291924,      0.64136586,       -0.945417,     -0.89035384,     -0.74211529,    -0.073491203,      0.77160636,       1.4944308,       1.4834021,     -0.47942739,     -0.12719381,     -0.80127194,       -1.506599,     -0.12000787,       1.4021487,     -0.26558957,     -0.51998124,     -0.12269385,       1.1246669,     -0.56406052,      -1.5589062,      -1.5645002,       1.2421544,     -0.40068148,      0.94124877,     -0.26376192,      0.22077674,       2.0936113,     -0.14264875,      -1.1296041,     -0.53900419,       1.2295436,      -1.6774362,       0.4533529,       0.9028558,      0.60516211,        -1.65593,      0.15555624,       1.2561676,      0.52706783,      0.40850172,      0.37966599,     -0.23906781,      0.26818756,      0.70380605,       1.0851658,     -0.83230249,      -2.1309719,      -1.1033406,      0.38457954,       1.0743142,     -0.81184123,      0.83943455,       1.0282287,      -1.2340226,       1.4942397,     -0.33485143,       1.4726621,      -1.1157672,       1.0534719,     -0.98066964,      0.53072936,       1.5403887,    -0.044365356,      -2.2102939,      -1.2400098,      0.43724692,     -0.18918717,       1.7238945,      -1.3761903,     -0.19016038,      -0.4223427,       0.2558109,       1.0154725,      0.29938061,     -0.37781527,       1.4912882,       2.0966411,      0.64180623,     -0.50115485,      -1.4919237,     -0.85054162,     -0.46395823,      -1.0327544,      0.53572967,     -0.14963991,      -0.9493047,     -0.51126887,     -0.65828752,      0.54078266,      0.35236199,     -0.15447233,      0.24333491,      -1.3323568,      0.99520719,      0.95966134,      0.28118843,      -2.6450559,      -2.4562406,       1.1529237,       1.4071376,      0.15398232,      -1.0968735,     -0.69553963,      0.15076708,       1.1817838,      0.30988493,      -1.4051372,       1.4277317,      0.38669338,      0.59532048,      0.56010467,     0.053363441,     -0.28172375,      0.89629206,      -1.2409029,       1.3376477,      0.65493382,      0.66840198,      0.49037384,      0.85078507,     0.033874785,     -0.49822953,      0.85053811,     -0.70114734,       1.0006911,      0.67997997,       1.5907794,     -0.23884445,      -2.4281277,      0.81105982,      -1.8938598,      0.67233995,      -0.8046624,      -1.5398941,      0.27306122,     -0.40055416,      -1.8998066,      0.19296908,     -0.45417212,      0.79797074,      -1.5890315,      0.59188943,     -0.92075428,      0.57382994,    -0.090766555,     -0.88433225,    -0.043738906,      -1.2653047,    -0.086244946,     -0.56217782,      0.30091554,      -1.0603387,      0.73666733,       0.7947488,     -0.10764957,     -0.83286263,      -0.1400221,      -1.5205321,     -0.60051213,       1.6411621,      0.31913585,    -0.093130049,     -0.82012822,     0.063605097,      0.78903023,       1.2658134,       1.9571778,     -0.56518559,       2.1319338,      0.76284128,     -0.43645052,      0.71880292,       1.0010547,       0.7898725,       1.3287015,       2.1940009,       2.1086702,       1.1119423,     -0.53835278,     -0.43599716,     -0.57061828,        0.177994,    -0.099956703,      0.17990361,     -0.37543665,       1.0450404,       1.0555397,     -0.14480072,     -0.40566198,     -0.35673874,     -0.31621758,      0.26450981,     -0.94618516,      -1.2740653,     -0.28560745,      -1.5461967,      0.75343438,       1.6809563,      -1.6133248,     -0.40946225,        1.006541,      -1.3119299,      0.50477809,      0.51727743,       1.4996793,      -1.8020988,      0.44673003,      0.55512908,      -2.0604448,       0.8642944,      0.14405562,       1.3607176,     -0.74930383,      0.20359519,      -2.4409334,      -1.0979385,     -0.68361524,      0.57070724,      0.58103849,      0.15159834,      -1.2035903,      0.24746944,     -0.63750579,      0.81769154,     -0.10732829,      -1.4924711,      0.12676081,      0.52726769,     -0.73170556,     0.051887574,      -0.4314996,       1.0187149,      0.25168273,      0.30328293,      0.19999853,     -0.26815998,       1.3056761,   -0.0054364277,      -1.8326732,      0.10912541,     -0.24417466,       -1.180778,     -0.86313869,     -0.82051411,      0.19853064,     -0.91692146,      -1.2481748,      -1.3017569,     -0.13251759,      0.13137466,       1.4583872,       1.4550687,     -0.42902655,     -0.54147935,      0.52249055,        -1.19221,       1.5689309,      0.26475486,     0.072197389,     -0.78161057,     0.058702448,      0.34570199,       1.0206413,     -0.44702177,     -0.35891849,      0.60046821,     -0.40353893,      -0.3605663,       1.8990165,        1.362873,       1.1160998,       1.5284883,     -0.78587526,       1.1314546,      -1.9825512,      0.21112869,     -0.40532357,      -0.1079875,     -0.49925292,      0.20704317,       1.7703497,    -0.011862905,      -1.5325418,      0.29421607,      -2.2105583,     -0.70770843,      0.13320912,      -1.0429087,       0.1726032,      -1.9547753,       1.9949695,      0.86785592,      -0.4537295,      -1.0800579,    -0.039971839,      0.55143247,      0.19585818,        0.112921,     -0.21399248,     -0.99922913,     -0.56412047,     -0.82577742,      0.60614219,      0.96082392,       -1.271377,       -0.795497,     -0.28855154,      -1.0789546,      0.46548437,        1.523387,      -1.2960062,      0.52023348,      -0.8398087,      0.68108845,     -0.75872458,     0.044166709,       1.1384129,     -0.11687805,     -0.29657203,       -1.344632,      0.85802183,      -1.4179204,      0.39568049,      0.96012081,       1.8693824,      0.12728275,     0.088149099,     -0.69053824,      0.75579881,    -0.072669633,      -2.3265016,     -0.39922685,      0.10015598,     -0.48580354,      -1.0289311,     -0.92902882,      0.59745688,       1.5474145,     -0.43083679,      0.89325167,     -0.21916436,     -0.10622488,     -0.21021309,      0.27392832,      -1.5142133,     -0.36790328,    0.0062497636,     -0.99289839,       1.0505635,     0.073290609,      0.20028895,      -1.2212721,        1.095251,        2.106642,      0.81957517,       0.5075993,      0.25317038,       1.0704631,       1.2710243,      -0.9560628,      0.94077833,    -0.041557131,      -1.1700591,      0.20952913,     -0.19217561,    -0.045472689,      0.57248089,      0.63163472,     -0.38014296,      -1.4094136,     -0.64671563,     -0.57594761,      -0.2101587,      0.16280914,     -0.80791478,     -0.17791895,      -1.2538018,      -1.1539516,     -0.17321832,    -0.035192602,      0.52355707,    0.0094285638,     -0.97321686,      0.53742449,     0.033622396,     -0.81407223,      -1.5497733,     -0.32095712,     -0.51316203,     -0.36919351,      -1.2904771,     -0.10780746,       1.1565948,     -0.70379968,     -0.61634744,    -0.081721471,      -1.9344366,      -0.6563781,      -1.1748805,     -0.36311515,    -0.028076221,      0.80239758,       1.2575595,      -1.1243802,     -0.10630931,     0.018778764,      -0.2745129,       1.0538351,      -1.4113634,     -0.98681953,      -1.0696958,     -0.83855519,       1.6107004,      -1.2764392,     -0.38631793,      -1.3220928,      0.81099329,      0.68293111,     -0.19510264,       1.0001665,      0.27303427,      0.68078879,       1.3571039,      0.14305387,      -1.0368603,      -1.4613282,     -0.62482035,      -1.5952172,      0.67978636,      -1.6336921,     -0.20154938,      -1.1310044,       -1.083195,     -0.83261936,     -0.14178341,      0.60272009,     -0.14613319,      -1.3947693,      0.69218009,      -2.8248983,       1.4117253,       2.7854704,     -0.84552746,       1.4536241,       0.4257478,     -0.16369522,       1.9878914,      0.28544933,      0.78565361,      0.12963575,      0.34071731,      0.44237746,     -0.45731646,      -1.7631551,      0.21628593,     -0.22222908,      0.25539598,       1.9177782,      0.71216603,       1.2445341,     0.060251403,       1.5132965,       -0.125152,      0.90226289,     -0.48938655,     -0.71770296,      -0.2792033,      0.53629078,      0.83610036,     -0.60400979,     -0.66282584,      0.25894993,     -0.63930556,      0.79724246,      0.74957415,      -1.3779044
+2005Y,      -2.2278447,     0.096708249,    -0.040877031,       -1.603745,     -0.02433838,      0.32151498,     -0.50980753,      0.83574995,      -2.0317527,      -1.0596383,     0.026681099,      0.62368214,     -0.10559071,       3.4133978,     -0.56078181,      0.18342739,      0.26373797,       -1.410617,      0.36385241,       1.0055109,     -0.50298517,      0.49637279,     -0.39788118,       -2.163702,      0.81678291,      0.77607663,       1.1176457,      -1.1996417,       1.8646617,      0.36686836,      0.81148913,      -1.3860202,      0.31314865,       1.3108834,      0.18535243,     -0.43427251,     -0.18045612,     -0.43034875,     -0.44386003,      0.32782486,     -0.51087485,      0.27384637,     -0.71215106,      -2.3480151,      0.92731672,      -1.4347553,     -0.15366255,     -0.36648123,     -0.97609846,     -0.31301423,     -0.88428463,      0.13320128,     -0.68639413,      0.29704493,      0.44403151,    -0.090855017,     -0.58646727,       0.3711123,      0.69795789,     -0.02052389,       1.4447915,      0.60584703,       0.7735073,     -0.07128016,     -0.78889154,      0.71142514,       1.1519936,     -0.18244852,      0.76222126,      -0.2063077,      0.88357371,      -1.2373977,     -0.33948663,      0.86347667,      0.30163753,      -1.6573508,      0.39225846,     -0.95762864,       1.3991817,      -0.8937121,      -1.5356085,      0.40708497,      0.33848835,      -1.7322278,     -0.67039431,       1.6295997,     -0.31801979,     -0.49083918,      -1.2440945,      0.53551178,      0.48057968,      0.65777016,     0.052996258,      -1.1286985,     -0.79232836,       -0.209804,       2.4319107,     -0.14311359,       1.6285148,      0.97268408,      0.70137017,     -0.71280219,       1.5133976,    -0.021411172,     0.042050764,      0.54857776,     0.092507722,      -1.3880987,      0.26271504,     -0.45291102,      0.03946072,    -0.035341221,      -0.8030954,     0.032696596,       0.3508316,      0.53540927,      0.11939732,     -0.14362352,        0.393303,      0.83888568,      0.23437113,      -0.5534335,     -0.13658251,      -1.4758741,      -1.2564327,      0.44943393,     -0.71984943,     -0.72675325,      -2.1265131,     -0.18466581,      -2.4351726,       1.9252082,       2.0540697,       0.4505577,      -1.5501415,      0.63029689,     -0.56326784,        1.215431,       1.4527568,     -0.88702907,     -0.71059954,       0.7858177,     -0.55468445,      0.38776953,      -2.9855079,       1.1042252,     -0.90375761,      0.13722379,      0.79126534,       1.6767003,     -0.38068112,      -1.3475441,       1.0066008,     -0.56045967,      0.98032341,      0.91373043,     -0.21519203,     -0.34014454,      -1.3651556,      -1.6231752,     -0.69328818,     -0.86645397,      0.46337736,      0.51674541,      0.65448286,     -0.84606037,       1.4108442,     0.071753811,      -1.2250602,      -1.0580947,     -0.50440638,      0.70065022,      -1.4342148,       1.2374587,      0.32887339,     0.031377664,       1.5820423,      -1.0186937,     -0.47881176,      -0.8283723,      0.69702362,      0.33200548,      0.28953299,    -0.065898358,     -0.39687286,      0.10263222,       1.0356652,      0.27294395,     -0.91282641,     -0.12562031,       1.1493431,      0.51319653,      0.43760846,     -0.91044006,       1.3645203,     -0.51444463,      -1.4216996,         1.36677,     -0.99171527,       1.2145061,    -0.026424355,     -0.62079231,     -0.52224747,      0.95967403,       3.2330127,      0.10170941,     -0.49631091,      0.10079568,      -1.3484585,     -0.43343095,       1.0333116,      -1.4078703,      0.21719967,    -0.091940612,      -2.2519797,      -1.2988596,      0.25719807,      0.74115528,     -0.84441687,     -0.31688543,     -0.99415054,      0.79000824,     -0.45364521,     0.068989722,      -0.8957565,    -0.044432686,      -1.2675694,     -0.13077963,      0.90176768,     -0.58844588,     -0.55660626,     -0.18949661,     -0.88516663,      0.81001185,     -0.40121182,     -0.53096945,     -0.99538314,     -0.43705192,      -1.6471235,      -1.4301212,       -1.781304,     -0.53799389,      -1.7825815,     -0.62821986,     -0.48093023,       1.3740673,     0.038299445,      -1.3798742,     -0.83009732,     -0.82773907,     -0.77476749,      0.27169501,      -1.2398949,       1.5130594,     -0.45518183,     -0.98984292,      0.85504346,      0.34414094,      0.79680046,      -1.4226828,      0.42452268,       1.4910218,      0.65727434,       1.1971046,     -0.11295279,       1.2018536,        1.281547,      0.12524152,     -0.13375735,      0.90926682,    -0.038017524,      -1.5857079,     -0.88933293,      -1.6137248,     -0.27917874,     -0.42651536,     -0.13828236,      -1.2865119,      -1.0591782,      0.80660551,     -0.95187545,      0.24215872,     0.078529465,      0.34657326,     -0.89325818,     -0.50915573,      -1.5076926,      0.69164147,      -1.4385156,      -2.0710278,      0.44828701,      -1.0488285,     -0.65952092,      0.91949227,      0.58723496,     -0.83817016,      0.43746876,    -0.084635067,        1.718073,     -0.83774581,       1.5113609,      0.58858778,     -0.11442155,     -0.24374544,      0.26568592,     -0.11123148,      0.93370188,     -0.74538835,     0.059803115,      -0.6826605,      0.11490723,     -0.48539055,      -1.4397524,       1.3274705,      0.82156859,       1.0141605,       -1.127787,      -1.1420931,     -0.37092031,      -1.0509633,      -1.5323879,     -0.20025516,      0.62094512,       1.4275971,         1.90615,      0.60371959,     -0.36926363,      0.47902062,      0.20059948,      0.59302977,     0.027188289,      -1.3449873,      0.85139831,       1.1199505,      0.26189265,      -1.4543819,     -0.69729921,      -0.5903776,      0.43655723,    -0.077208275,     -0.48306218,      -1.5646598,     -0.16361368,      0.38448944,     -0.31975988,      0.45501409,    -0.061479516,      0.46342307,     -0.86225883,    -0.032197509,      0.29380828,       2.1800031,      -1.2119828,      0.69009459,      0.44502236,      0.14350527,       0.4626233,      -2.3485975,     -0.32907872,      0.88750363,       1.8684866,      0.46300401,     -0.10763715,      0.56633358,     -0.44029577,    -0.071761426,      0.65967394,      0.46288221,     -0.25992554,      0.32683151,      0.77580527,     -0.27839352,     -0.39821955,      0.65343862,      -2.7303329,      0.49949092,     -0.16298649,     -0.98385548,       1.2531993,       0.4741621,     -0.33397022,      0.99244169,      -1.5527179,     -0.49964397,      -1.3032204,     -0.23317134,        1.130384,       1.1713877,      0.85355539,      -0.8309938,       -2.539717,      -1.1910829,     -0.96755935,      0.23564011,       0.1785794,      -1.0810821,      0.33698415,      -1.3743786,     -0.43470878,       2.1859724,       3.2985031,     -0.12594563,     -0.97540313,      -1.6784052,      0.68284752,       1.0597985,      0.57851612,      -1.2009541,     -0.68058592,     0.039762557,       1.0433664,     0.011678055,     -0.77427629,      0.69673743,       1.7611126,     -0.01127601,       1.3123583,     -0.43437115,       2.0129382,       1.4509499,     0.073636926,      0.24735785,     -0.14436647,     -0.94595416,       1.5649831,     -0.74445998,     -0.30050585,      0.19228679,     -0.78364446,     -0.74672935,      0.35645022,      0.31324178,       1.4831183,        1.246662,      0.56748673,       1.0541538,     -0.40728471,      0.69841116,      0.88582915,      -1.3933972,      0.41806036,      -1.0037659,     -0.76433429,      -1.1864194,     -0.41650388,     -0.28842254,      -0.3051742,     0.012001224,     -0.17875513,      -0.5072171,       2.4240427,      0.27180731,     0.023209218,      0.33757672,       1.8197728,       1.1318888,     -0.68731036,      0.15657037,     -0.87455614,       2.0072995,      -1.5315475,      0.47936678,      -1.7200743,     -0.18601462,      0.34543182,     -0.36793431,      0.88379735,       0.8101482,       1.1369243,      -1.7587223,       1.1648741,      0.41794263,      -2.2690199,       1.6594188,       1.2587432,     -0.11591683,     -0.66586251,     -0.52170162,     -0.83992873,     -0.20510199,     -0.41837404,       2.7311738,     -0.63685871,     -0.36854147,     -0.99741003,       1.4790045,     -0.59493361,     -0.94202904,     -0.75485679,      0.67098532,      -1.0351711,      -1.6839422,      -0.9091054,        2.442319,     -0.04836955,       -1.253539,      0.31031338,       1.3255503,     -0.53498119,     -0.78513202,     -0.83103753,       1.0622191,     -0.89578253,       1.1836869,      0.13743129,     -0.62806676,     -0.51881225,      0.59646506,     -0.18017414,    -0.076371278,      0.59139177,       1.4831801,      -1.3169375,     -0.93662659,     -0.83995853,      -1.9585098,       0.2237941,      -0.5518178,       1.3879839,      0.58878343,      -1.6325441,      -2.0370961,      -1.3517843,    -0.041935204,      -1.2992233,      0.70813245,        1.218168,      -1.1594562,      0.19174015,        -1.64075,     -0.23820708,    -0.037303841,    -0.019247713,     -0.23991444,     -0.54431522,      0.11765322,     -0.15198689,      -0.7081196,      0.49184096,      -1.1179676,       1.5107097,       1.6048239,      0.21625032,     -0.89635878,      -1.4539494,      0.48232254,      0.55521946,      0.31016726,      -1.9656806,     -0.83586959,      0.90977123,     -0.29341562,     -0.58829798,       1.3043638,     -0.67997845,    -0.088797473,     -0.71318151,     -0.85284127,     -0.10777482,      0.16077139,     -0.52924922,      0.60586124,     -0.11370279,      0.68012669,      0.15328892,      0.54221394,     -0.92213283,       0.2861146,       -1.639104,      -0.4886499,       1.4674938,       1.0122093,      0.64040932,      -1.0507436,      0.34040472,     0.082264487,      0.26490315,       1.3703234,      -1.4916938,      -1.3829345,      -1.4721314,      0.92923445,      0.99235625,       1.0570729,       1.2043155,      0.40965986,     -0.03676984,      -1.0550102,       1.1639958,      -1.1872973,       0.6052964,      -1.9457184,      0.83405416,      0.91198391,       -1.348586,      0.49525519,      0.52097401,     0.019838326,      -1.5916219,      0.70755559,        1.209179,     -0.56575033,     -0.69856426,     -0.41048248,       -0.795027,     -0.12206513,      -1.0063919,    -0.067158201,      0.89279559,      -1.8090269,       2.1573024,     -0.34819854,        2.036349,      0.11421909,       -1.207666,      -1.5371896,      -1.2275248,     -0.24500939,    -0.038247539,     -0.77109343,       -1.578539,       1.4365776,    -0.029011859,      0.77611369,      -2.4542639,     -0.50743383,      0.84282026,     -0.23286153,    -0.072532905,      -0.1362833,      0.92212198,      0.60324013,      -1.4704388,     -0.26386009,      0.47187283,    -0.010485964,     -0.47019736,     -0.69009494,      0.11336503,      -1.5689125,     -0.94723257,      -0.8557089,      0.90933857,      0.46122302,       1.1865538,       1.7131649,     -0.58268461,      0.12714982,      0.13168499,       0.9319836,       0.6091756,      -0.1951784,     -0.91431983,      -1.6278495,       2.5658335,      0.21254983,      0.68769312,      -1.7061945,      0.86282292,     -0.18655654,       1.0964384,      -0.9058726,       0.2092879,      -1.3495576,      0.31583607,      0.48769401,      -1.1917994,      0.51567235,      0.30280929,     -0.36709325,     -0.74367217,      0.52520242,       0.7054697,      -1.0196398,     -0.68046051,      0.98656437,      0.52831224,     -0.52788567,     -0.98845592,      0.36683027,      -1.5312916,     -0.11381373,     -0.97914207,       1.7986815,      0.83898308,     -0.42053499,      0.29057676,       1.3528849,    -0.077125823,      -1.1107679,      -1.3039981,      0.11704889,      0.16175106,       -1.849628,       0.6930288,     -0.39668906,      -1.3814112,     -0.24896268,     -0.95135834,       3.0469422,     -0.71529847,       1.2757326,      0.93419819,      0.24015516,       2.0664769,     -0.21283362,    -0.065925651,     -0.13557895,     -0.15390188,      -0.3319478,       1.8002452,        0.539653,     -0.52015216,     -0.16205918,       -1.392417,      -1.0170829,     -0.10389387,     -0.38433757,     -0.53529463,      0.13365735,       1.2405764,      -1.5143188,     0.048774557,     0.088891798,     -0.18120833,      0.65378221,      -2.1820905,     -0.80592819,      0.38808515,     -0.16019093,       1.7424218,       2.7518343,     -0.47074679,       1.6118864,      0.41921888,      0.20673234,       -2.064852,      0.16227179,      0.66954004,      0.11443219,     -0.88029168,      -2.7848012,      -0.3741868,       1.5576684,      -1.2527265,      0.20042255,       2.0579967,        1.308632,      0.56201146,      0.96640457,      -1.2620389,      -1.8140115,      -1.2025632,      0.65132616,        -0.62233,       1.2010336,      -0.1110414,      0.35510808,      0.37250329,      -1.4820434,     -0.32128841,     -0.10439983,     -0.76812519,       1.2019185,    -0.043246002,     -0.70168841,      0.41398454,      0.29906166,       1.6669117,       0.9324599,     -0.98923744,       -1.567767,        1.060566,      -1.0397058,     -0.61425154,      0.37485125,     -0.37817203,     0.094401402,       1.3083441,      0.26376602,    -0.078023096,     -0.93268376,      -2.0457317,       1.0707955,    -0.043658802,      0.26342937,     0.098363847,        1.242325,      0.49604261,      -1.1043971,      -0.5913719,     -0.91080793,      0.25757245,      -1.5599103,      -1.4446295,     -0.28444421,      0.21679263,       1.3205084,     -0.53520786,     -0.94560914,      0.36706911,      -1.1710929,     -0.98173426,       -1.596582,      0.29969852,      0.52590677,      0.36128016,     -0.69637563,     0.046974755,     -0.13251953,       -1.541975,      0.24532075,       2.0039207,      -1.3474688,     -0.19154131,       2.5154018,       2.7381888,       1.4648163,     0.087809578,      0.68765564,     -0.10452338,    -0.096698919,      0.81509923,      -0.1524378,       1.1092578,       -1.645192,      0.43367447,      0.78213472,     -0.15475588,     -0.94845584,       -2.186493,      -1.2586183,      -1.7665347,      0.64265342,     -0.59511329,      0.78902024,     -0.28376706,     0.066428516,     -0.95965833,       0.2931794,      -1.2814434,      0.31717573,      -1.4075999,       1.0458832,     0.024561602,     -0.87040734,      -1.3259575,      -1.2573574,     -0.99817172,     -0.75741284,     -0.35035395,     -0.11295367,     -0.88890498,      0.67640666,     -0.30863558,     -0.15818808,      0.60269292,      -0.6310681,      0.73227415,     -0.42964413,      0.81069936,       1.5210392,     -0.83613804,      0.16324634,     -0.57001852,     0.033597127,      -1.0397712,     0.031038871,      0.50967485,     -0.12084514,      0.12550558,      -0.3901981,      0.20168557,      -1.6857044,       2.3290546,     -0.40806356,      -1.2196226,      -0.2000159,      -1.1755391,     -0.75503649,      0.38738208,       -2.739013,      0.34053637,      -2.1364027,       0.1765253,      0.87957765,      0.98228175,      -1.3361366,       1.0666559,      0.90422299,      0.30945005,      0.87490969,     -0.38571427,      0.27213383,       1.0972239,      -1.3781612,       1.3177011,    -0.069161458,      0.37339623,      0.39800032,     -0.17356653,       1.0820081,      -0.4636413,     -0.28044452,     -0.23473728,     -0.38039172,     -0.40864952,      0.66737472,      -2.0091619,      0.50519316,      0.35164861,      -0.4817883,      -1.2742125,     -0.85602169,       -0.375577,      0.23898323,       1.5764271,      0.56670041,      -0.3367965,       1.1563897,     -0.20100659,      0.86173595,     -0.82100003,      -1.5685361,      0.38668926,      0.32194036,      0.60827816,       1.5062852,      0.34059394,       1.7451097,     -0.20736789,       1.7660658,     -0.74500875,      0.16526871,     -0.33456874,      0.45508494,      -1.4130412,      0.88519741,        1.210255,       2.1012383,     -0.34773068,      -1.2035881,      0.21587171,     0.049859795,       0.7469401,   0.00046093214,     -0.10146489,     -0.88261163,     -0.12398623,      -1.6626583,       1.0303145,    -0.062808153,       1.6132057,     -0.32418835,      0.60674955,      0.64828246,      -1.0192314,     -0.22607281,      0.25645058,      0.37521239,     -0.39497401,     -0.79254438,      -1.5386032,      0.23451325,    -0.013518636,      0.29335877,      0.64640165,     -0.99271991,       0.3422377,     -0.77267385,      -1.3634814,      0.43223492,       1.5122021,      -1.7158601,     -0.11620632,       1.1148437,      -1.0233706,      0.71722531,      -0.7391782,         1.49105,       1.9529835,     -0.73683128,      0.87377473,      0.87986177,    -0.097481293,     -0.51388459,     -0.43383161,      -1.2205051,      -1.0042327,      0.91966153,     -0.29984596,     -0.30878864,     -0.61250144,      0.77753738,     -0.85866998,     -0.87510984,      0.45385435,     -0.11792398,     -0.51608337,      0.16171262,      0.90334103,      0.12867588,        1.882616,       1.0160782,     -0.59010948,       1.0373989,        0.485614,     -0.65339086,     -0.15283432,      -1.0033106,      -1.7303181,      0.19254749,      0.74200247,      0.35675241,      -2.5710199,      -1.3439625,      0.90707263,      0.81942025,      -1.1759087,      -1.0473678,     -0.76125909,      0.24898912,     0.070387537,      0.96888672,      -2.1867498,      -1.4906563,       1.7854743,      0.33727978,     -0.74608742,      0.58280209,     -0.38284207,     -0.82722236,     -0.20896039,      0.55200102,      0.80120196,      0.93265673,     -0.56614489,     -0.76864872,      -1.1478369,      -1.0675481,      0.45995076,     -0.54717715,      0.16462843,     -0.59952654,      0.14346097,       -1.239614,      0.39048732,       1.3678572,      0.65988041,     -0.21893827,     0.096645439,     0.065976087,        1.339442,       1.5145824,      0.31452755,      0.89315214,     -0.76202941,      -1.6344942,      0.66329424,      0.58730781,     0.043386222,      0.59295096,      -1.2848662,      0.91609918,      0.50146141,      -1.7266513,     0.030087227,       1.2983917,      0.60983268,     -0.90128846,      0.94891953,      0.46721171,       1.7535308,       1.4634032,     -0.74346942,     -0.82498894,      0.74828515,     -0.59544521,    -0.064023166,       1.4037263,      -0.1193149,     -0.66338211,     -0.75404906,      0.43963701,     -0.38016702,       0.7485194,       1.7141861,       -1.057485,      0.15434697,      -1.2066796,      0.21860324,       1.2824149,     -0.20951651,       -0.917244,      -0.8282332,     -0.28942366,      -2.6248823,     -0.38069125,      0.79927655,       0.1249785,      0.77309256,     -0.57984809,     -0.78725564,     -0.39613921,      -1.1925188,      0.36388303,       1.0673506,       1.6558882,     -0.85061065,     -0.08711852,       0.7036263,     -0.68045232,      0.85738683,      0.70433029,      -2.6190953,      0.64175773,      -0.8983076,      -2.1783922,     -0.88597749,      0.62728547,      -1.2590054,      0.92393071,      0.25831198,     -0.13013571,     -0.80453673,  -0.00026415114,      0.38491299,     -0.15049754,     -0.64739782,       0.1163662,      0.42518025,      0.36415138,      0.95597646,       1.5746933,      -1.4713826,      0.55896654,       1.3939723,       1.2772652,      0.31001147,      0.93807197,       1.5295207,      0.69198232,      0.37680397,      0.85587662,     -0.83015006,      0.38553859,     0.056496756,       1.2120126,      -1.5593021,       1.3577462,       1.1948648,       1.4338091,       1.6914461,      0.89935684,      0.47199172,      0.44378684,      -1.5022483,       0.9065881,     -0.92998444,       0.6796584,      0.74099154,     -0.75063247,      0.55655576,     -0.21906357,      -2.0457361,     -0.18454564,     0.013268317,     -0.15598211,      -1.7305232,      0.12916402,      0.74594714,     -0.50498277,      0.16806378,      0.41606547,      -1.0037912,      0.64553024,     -0.88166504,     -0.66630203,     -0.16292444,       1.2955165,     -0.78945186,      0.39770718,     -0.91886854,      -1.3738064,     -0.74463102,      0.51287618,      0.48733693,      0.88047585,      -1.1883609,      0.83466653,      -1.9061446,      0.60726721,      0.43732634,      -1.1183056,      0.38583398,      -1.3476997,      -1.2476094,      0.20468445,      -1.0364839,      0.10724174,      0.24117845,      -2.0727596,      0.61643629,     -0.76318942,     0.072262979,     -0.11176189,      0.48846924,      0.16201288,      -1.0859991,     -0.46934599,      0.45259882,      -1.3590949,      -0.2556079,      -1.9195678,      0.96773183,      0.25391335,       1.4349068,       2.0725531,      0.34177328,      0.43457868,      0.97473214,     -0.62776791,     -0.48916457,    -0.052035875,     -0.89457497,       0.2136025,      0.50517297,     -0.71656033,       0.7937352,      0.44517609,     -0.63008067,      0.45120342,      0.53457762,     -0.20766046,      0.73850922,     -0.58772875,      0.87091077,       1.0002182,      -0.7526667,      0.01953161,      0.60038452,     -0.92785805,    0.0018355039,     -0.21302714,       1.7061211,      0.19092027,      -1.0849708,        1.900718,      0.78543769,      0.30537948,    -0.056319281,      0.87621715,     -0.74054469,      -1.7666843,    -0.086736146,      0.74986354,       0.9581779,      0.31800706,       2.1725983,     -0.59147125,      -1.6583135,      -1.4035335,      0.30008412,       3.1327647,       1.1188727,    -0.085557996,       0.5574051,     -0.70229285,      -1.2355806,   -0.0067628982,     -0.89791823,        1.323377,      0.88161166,      -0.4689227,      0.66863039,      0.37165549,      -1.4528162,       1.8595009,      -2.1282947,      0.11255548,      -1.0447099,      0.52567008,     -0.79570392,      0.25468022,     0.098917854,     -0.83304043,      0.55578957,     0.090971082,      0.40775847,      0.66554276,      -0.7910102,     -0.59048636,     -0.30271148,      0.37941258,       1.3366489,      -1.5086164,    -0.035314964,     -0.65107958,     -0.54204878,      -0.1454186,       1.4257983,     -0.22092516,      -0.1658117,     -0.68159055,      -1.7306803,      -1.4291296,      -2.1118623,     0.069640422,      0.49217819,     -0.39103848,      -1.5672491,      -1.3182382,      0.58086826,       2.3639548,       1.2508389,      0.47214883,      0.39194352,     -0.91978463,     -0.34424178,      0.01612252,    -0.051036845,      -2.9053273,      0.20378592,       1.2176742,      -2.1235567,       2.0113731,      0.99437688,      -0.3591172,     -0.98053196,       1.6320956,      0.35977603,       0.6611012,       2.0043007,       0.4098083,       1.4475337,      0.01171387,       1.1480768,      0.79404665,     -0.36332101,     -0.20373214,     -0.91775562,      -1.4189504,       1.9900561,      -1.3751008,    -0.079847265,      0.96221353,      0.71141832,     0.035489135,     -0.80236509,      -1.2102324,       0.5371799,     -0.78867783,      0.44025425,       1.3669062,      -1.5603374,     -0.59816451,        -1.39614,     -0.49376658,      0.18014217,      0.12625204,      0.57227029,      0.93547001,       0.1784713,      -1.5386451,      -0.3692426,      0.47036512,      -1.5751569,      -1.1325484,      -1.5187108,      -1.8995604,      0.75745643,     -0.69603399,     0.013294856,       2.0343105,     -0.54277507,      -1.8577027,      -1.0226208,       1.0035476,     -0.60298441,     -0.73524142,      -1.2101725,      0.14836754,     -0.32346176,      -1.0497624,     0.098725209,      -2.6691056,     -0.89814963,      -1.1697932,      0.60941036,       1.0793789,     -0.28501455,       0.2713074,      0.20352927,      -2.9727707,       1.0142697,     -0.15852447,      0.19012756,     -0.29839256,     -0.38771718,       1.4603626,     -0.67697045,     -0.38990273,      -1.4126439,      0.54532429,       1.9812011,      0.81127654,      -1.8231796,        1.776008,      -0.6190751,      0.52328239,       1.5723341,      0.21707618,      0.72402903,      0.26021839,    -0.031927167,      0.53895916,       1.6472813,      -0.7222611,      0.33855351,      0.05278569,    -0.053788643,      0.89667164,       0.1144807,     -0.89281615,       1.5256516,       1.2671326,     -0.49931535,     0.096303602,      0.76040813,     -0.34548504,      0.65430389,      -1.6825119,     -0.11609332,      0.29639918,     -0.32383056,      0.25853483,     -0.64975481,       1.3331688,      0.24959246,       2.1729625,      0.69598858,      0.56838752
+2006Y,      0.84621338,       1.4822307,      -1.3047872,      0.85653472,     -0.66015672,      0.18162159,      -1.1597167,     -0.43654604,       1.0018901,      0.16312302,     -0.75650196,      -0.2242286,      -1.4065186,      0.18608966,     -0.25951295,       -0.226614,     0.069734618,     -0.95963834,     -0.20639703,     -0.66377556,      -1.8505511,    0.0098422066,      0.80398741,     -0.12604707,       1.7341173,      -0.8545994,      0.68499682,     -0.21888107,      0.80402668,      0.21827757,     0.031349124,      0.22240297,        1.109183,      -1.7896176,      0.88915962,      0.17351803,       1.6438795,      0.64617318,       0.7469046,     0.061980986,      0.20017246,        0.311563,      -1.8970119,      -1.3515953,     -0.95199957,    -0.039029638,      0.85688935,       1.1283153,       1.5578257,        2.400999,      0.36419845,       1.0554542,       1.6531442,      -1.4398911,       0.7064697,       1.1283693,      0.24032154,      0.46012603,     -0.61202509,      0.38831673,      0.90000928,      0.12266666,     -0.78418923,      0.28994828,   -0.0052855432,       -0.619314,      0.77473178,      0.34713998,     -0.48512789,      0.61114046,       1.0786153,        1.200435,      -1.0610959,      -1.8177904,       1.4282762,     0.096586774,     -0.35150012,     -0.43802256,      -1.3056223,       1.2508492,     -0.91605092,      -1.4549897,      0.34634791,     -0.43194213,       1.4478272,      -1.2059589,    -0.013082662,     -0.86090566,    0.0073051479,     -0.57668483,      0.78919597,      0.53977438,      -1.2754828,       2.0472585,     -0.33665534,      -1.5517123,      0.26994472,      0.73035243,      0.80102426,      -1.1268265,      0.54820865,      -2.0636003,      0.17553593,        2.007246,      0.43267689,     0.070074308,    -0.035693742,     -0.12062854,      -1.4238729,     -0.97035423,      0.23984273,     -0.87066028,       1.3584524,     -0.13602662,      -1.3682654,     -0.39707397,      0.43343281,       1.1364091,     -0.76410817,     -0.30906293,      0.34565419,       -1.011636,     -0.20863305,      0.91151307,     -0.36781567,       -1.320297,      -1.2894602,      -0.2360748,     -0.37662302,     -0.44477787,       1.0538683,       1.0045908,       1.3525508,      0.21499107,       1.5260326,      -0.4254117,      -0.4809677,     -0.72677326,       1.4396603,       1.1632737,      0.68750692,     -0.38862519,      0.22331514,      0.45555272,      -1.2890124,      0.71537148,     -0.75410134,     -0.82192007,       0.4115875,     -0.21746455,      0.17937652,      0.23491255,     0.056004959,        1.325103,      0.79154572,      -1.5339233,     -0.53290705,      0.45742387,       0.2635848,      0.28502818,    -0.026926944,     -0.36442065,     -0.23978275,      -2.5022145,      0.20301016,     -0.24878738,       1.4344614,      -1.3472055,     -0.28342272,     -0.14348313,     0.063660579,      0.54596249,      0.16079218,      0.71226668,       1.4303659,     -0.14616121,       -1.096601,     -0.16493298,     -0.21389518,     -0.85045967,      -1.3517431,      0.45609778,      0.78679854,     -0.65675879,     -0.26956569,     -0.87234188,      0.90578219,       0.9457531,      0.62000385,      -1.0205125,     -0.97397241,     -0.70574476,      -1.5098198,     -0.99915796,      0.98047255,      0.10560069,     -0.61419989,      -2.5595499,      0.23007506,       1.1407572,      0.43086725,      0.85782441,     -0.65916877,       1.0423478,      0.31488043,      0.25753271,       1.2610347,     -0.45783688,     -0.29389654,       1.2380962,      -2.1966448,       0.3520064,       1.3955457,      0.50030724,      0.54921803,     -0.49971596,       1.1567831,      0.27785051,       1.7253341,     -0.30909069,      0.53493534,      0.20303649,       2.1461846,     -0.19922324,      -1.7710589,     -0.13077488,      0.51310279,      -1.5396289,      0.62070216,       1.1554458,       1.4436012,       1.3307945,      0.91417529,      0.44873779,       1.0237922,      -0.2536939,      0.25234671,      0.63868599,       2.8542575,      0.44036764,      0.81019993,     -0.53241381,    -0.038363395,      0.81586173,       1.3837952,      0.37096883,     -0.37785669,       1.3339539,     -0.41533578,       1.5990855,       1.0802101,     -0.43928612,      0.57567203,      0.86652669,      0.84431879,       0.2241664,     -0.63171466,      -1.1416521,       1.0799004,      0.54473235,      0.44643609,       1.1961872,       1.2351031,       1.8179756,     -0.68952114,       2.7162364,      -1.2696749,      0.72676247,      -0.3138147,       1.0316713,     -0.54139019,      -1.0264211,     -0.77790635,       1.4507216,     -0.79792566,     -0.14465709,     -0.32962382,       1.4577874,       -1.198546,      0.92968152,      0.63699561,     -0.49689788,     -0.11783287,     -0.85785704,      0.24694148,     -0.38260865,      -1.2627372,     -0.18543392,     -0.20425618,      0.29732362,     -0.88961253,      0.10916297,    -0.093257538,      -1.3728185,       1.2283221,      -1.0237861,      -1.2792071,     -0.58047213,     0.051024825,       1.0788817,     0.054088003,      0.33463597,     -0.37743384,      -1.0286715,     -0.22663796,       1.4966439,        1.294172,      -1.0377856,      -1.6447038,     -0.96910627,      -1.3505612,       1.0016656,     -0.85090851,      0.41991834,       1.0743309,      0.33388291,    -0.075682552,      0.55255539,    -0.060562007,     -0.64063823,     -0.84629753,      -1.3669236,      0.11564378,     0.089255017,   -0.0066705353,       1.1922706,      0.31439705,     -0.99788364,      0.81787866,       -1.363057,     -0.43876446,      0.91787864,       1.7980327,       1.6301849,       1.4925237,      0.70865584,      -1.4735932,       1.7593736,      0.19139138,        0.924794,       -1.252257,      -1.3984056,      -1.0015826,      -1.5986616,      0.65820085,       1.2181452,      -1.2121101,      0.26596673,      0.50317863,     -0.69787655,      -1.2934604,       1.1482061,       2.0952575,     -0.89061224,      0.49196149,      0.66744457,      -1.7182844,       -1.816608,     -0.40289775,      -2.4446719,     -0.75597788,      0.63790932,     -0.74132919,      0.40586589,      0.64710823,      0.76134542,     -0.33473326,       0.3650877,      -2.6142601,      -1.0636164,      0.11481759,      0.33948634,       1.7996716,      0.62618836,     -0.27324888,      0.82573128,     -0.17384981,      -2.6325463,      -1.2080961,     -0.57756054,      0.43749992,       -1.770761,      0.44870631,     -0.81302128,       1.7462046,     -0.42058311,       1.2467137,      -0.9758714,      -1.2579872,       1.0973811,      -1.2321916,      -1.0033937,      -1.0767874,       0.1526481,     -0.22510987,     -0.53369587,    -0.083357825,      -1.5691984,     -0.61551347,       1.2949213,    -0.024765626,     -0.12787307,     -0.39470026,      -0.7105091,     -0.49025879,      0.19965014,      0.28449421,       1.0019289,     -0.17478126,     -0.77906295,       1.0189613,     -0.36642676,     -0.40339187,      -1.6420475,      0.79820959,      0.12633917,     -0.15521513,       -1.038442,     -0.10911277,       1.9220968,      0.29973263,     -0.30694778,     -0.91508974,      0.58622215,      0.83226851,      -1.2888871,      0.19926725,        1.046975,      0.54664287,      0.78735617,       0.5425595,     -0.24820173,        1.014911,      0.78815708,     -0.54509314,      -1.0914083,     -0.35100438,       1.4983238,      -1.1744985,      -2.7286096,      -1.1018815,      0.41864022,     -0.56118502,      -0.4080575,     0.090924297,     -0.87457787,     -0.68205702,       1.4977949,     -0.39726966,      0.48610256,       1.7723845,     -0.45362869,      0.13799035,    -0.026466541,      0.76393166,      -1.4732006,     -0.49307621,    -0.052892205,     -0.01240481,       0.2765906,      -0.5569365,     0.042673051,     -0.59613997,       1.2449721,     0.097817938,      -2.3951873,     -0.84239174,     -0.51097035,     -0.50465612,     -0.51868251,      -1.0136654,      0.21760164,      -2.6608246,       0.1744454,     -0.49282799,       1.3217938,      0.49689757,       2.6793877,     -0.37533305,      0.32703304,       -2.709356,      -1.0481582,      0.44116719,      -0.2809558,      -1.5554177,     0.011824466,      -1.3073637,     0.014600991,      0.17178842,     -0.44272049,      -1.2613296,     0.088315282,      0.32758985,     -0.71626237,     -0.19934533,     -0.42584841,      0.56100425,       0.3516582,       2.6355496,      0.24091104,       0.6851055,      0.54799672,     -0.61723804,     -0.88302719,      -0.3722695,       1.4116059,      0.24083516,      0.48387064,       0.2472765,      0.31596258,      -1.1811977,       -1.539599,     -0.72570244,     -0.37971848,       1.6190189,     -0.78750198,       1.0741128,      0.88196191,     -0.38836397,     -0.20939502,     -0.21070925,     -0.27277098,     -0.15213472,       1.9259457,      0.74854042,     -0.21217286,     -0.78975464,     -0.87140556,      -1.1321598,     -0.24434936,     -0.29777476,      0.74937271,        1.432373,     -0.42033535,        0.604562,       0.3797156,    -0.058597571,      0.64118924,       1.3348568,      0.59946243,      0.25281176,       1.1596761,     -0.73255623,    -0.060691179,     -0.28744486,      -0.1750505,      -1.2115091,     -0.94608722,       0.3164558,      -1.7853094,      -1.4124905,     -0.18231043,      0.60009157,      0.58203223,      0.10665907,     -0.81563446,    -0.018343904,       1.5606675,      0.46095784,      0.79106942,      0.44596766,     -0.74646579,      0.17788045,      0.74641985,      0.90764901,     -0.38638578,     -0.25592123,      0.30942424,      -1.0200474,       1.0419327,      -0.9504143,      0.97647933,       2.9585219,       1.8287358,      -1.2774277,      0.21691974,   -0.0047841901,      0.46831162,      0.22105098,      0.81213215,     -0.50828104,      0.31945243,      -0.1493617,     -0.56817648,       1.3796537,     -0.29442304,      0.27026332,      0.67239318,       2.6854532,     -0.91474609,     -0.17765458,      0.36516086,     -0.17644549,     -0.99495475,     -0.47638833,      0.31280329,       0.7810215,      -0.6492342,      0.71526916,      0.85195709,      -1.1699476,      0.29696153,      -1.0164589,     -0.93718776,      -0.7175336,      -1.2704538,      0.15603255,      0.24999132,     -0.86241608,      0.51695251,     -0.54995751,        2.421567,       1.3236962,      0.53714996,    -0.029914247,     0.027960225,      -0.1235276,     -0.31581131,     -0.64047523,      0.20394299,     -0.38786965,      -1.3139822,      0.99581459,      -2.2355458,    -0.065610172,     -0.18510623,      -1.1320176,       1.8413191,     -0.11761292,     -0.98840234,     -0.77047037,       0.8214034,     -0.89673119,      -1.0136986,       1.3759497,    -0.053597886,     -0.83552214,       1.1584853,      0.63582589,    -0.092482997,     -0.49625849,     -0.49044259,     -0.25504309,       -1.638615,      -1.2865263,     -0.67662402,       1.1020498,      -1.2907569,     -0.41650546,     -0.26074939,      -2.5288934,      0.22561766,       -1.240499,     -0.99010899,       1.5220885,       0.3241682,     -0.23243853,       1.7745435,      0.12680746,      -1.3908414,       1.2308703,      0.77771524,      0.97309961,      0.23771803,     -0.77248133,     -0.65155415,       1.6475892,     -0.37238463,      0.26371763,    -0.096324481,       1.6128623,     -0.16584315,      0.68945912,      0.32119336,     -0.78240164,     -0.53600554,      0.15201297,     -0.88219894,        1.552073,     -0.26506207,      -0.4290175,       1.0148978,      0.21179147,      0.52128875,      -1.2315594,      -1.0670175,       1.4045595,      -1.1437805,      0.23689111,       1.1467663,      0.30867858,      -1.6268058,       1.0720226,       1.4878726,     -0.41028445,      0.42090224,      0.71579904,       1.7535334,       1.1479179,      -1.1151863,      -1.7346194,     -0.10219218,      0.93566392,       1.0512057,     -0.34719829,     -0.85974693,     -0.16809717,       2.0377776,      -1.5284221,       2.8772662,      0.61623216,     0.059465846,      -1.6067427,       0.6811015,      0.43961032,     -0.69789952,     -0.28123924,     -0.68981132,     -0.73075679,      -1.2737533,     -0.42494483,       1.2361734,        1.246146,    -0.038722724,       1.0259394,      -1.4065611,      0.38426834,      -2.1952083,      0.19348066,      0.34603158,      0.18115015,      -1.0009957,       0.4865403,      0.65991757,      -0.1606978,       0.2770799,      0.26061539,      0.48191859,      0.70643983,     -0.81001386,     -0.30243619,     -0.84515166,     -0.37064478,      -1.1112869,      0.75742583,      0.79992589,       1.0355558,      -1.5723228,      -1.3126924,        1.558791,      -0.3313094,        -2.60759,      0.56095094,      0.68532987,      0.23825741,      0.93055451,       0.4375652,      0.27500845,       1.4686214,      -0.3425669,     -0.90758263,      0.15545037,     0.068490278,       1.7388314,      0.95199146,      -0.5899727,      -1.7038308,     -0.67945554,       1.2877036,     -0.70405996,     -0.93513661,     -0.88765684,      0.19820265,     -0.22579195,       -2.113179,      -0.2853525,      -1.2768274,      -1.4072722,      -1.0872328,       1.6509063,      0.85107482,       1.2704571,    -0.030230624,      0.44984599,        1.026848,     -0.44261125,      0.44945906,     -0.44041771,      0.18670618,      0.63154689,       1.2265322,       1.1101056,       1.0656919,    -0.085076742,       0.2101835,       1.0353957,        1.165112,     -0.42862168,     -0.17641456,      0.72311055,      0.78165038,       0.6527811,      0.12494299,    -0.059124984,     -0.57381888,     -0.10937079,    -0.057798346,      -1.0351247,       1.4755252,      0.34400093,     -0.16326299,     -0.38226369,      0.93259061,       2.3318169,      0.34670105,      0.04371915,       1.2756909,      0.06173038,      0.65706183,       1.9365022,     -0.14137313,     -0.20664963,      0.74280175,      0.82633267,      0.12616579,       1.9291475,     -0.74922499,     -0.88354593,       -1.264169,        2.052511,     -0.44054761,      0.14440013,       1.0773252,      -1.0347537,     -0.20360938,     -0.16727422,      0.64853314,    -0.080095151,      0.18104501,      -1.7129858,    -0.047482643,       0.5012469,      0.35098398,      -1.2171815,      -1.0115204,     -0.93478807,    0.0070294472,     -0.12865738,      -1.5052195,      0.95550437,      0.33309734,     -0.14618055,      0.21949101,       1.9955325,      -1.1497582,      0.34013295,     -0.80176756,     -0.16953202,      -0.7628153,       0.3396961,      0.12728899,      0.37413219,       2.2658749,     -0.63202628,     0.046696815,     -0.40540821,       0.4942906,       0.1743912,     -0.65189999,      0.39176709,     -0.87123235,       0.0947459,    -0.032064917,      0.94852912,    -0.087199824,       1.8447184,      0.32365213,      -1.8842752,        1.726665,        1.924657,       1.6152803,      -1.5211751,      0.38674752,       1.3841408,    -0.094732848,      0.39145273,       1.0769507,        0.602937,      0.12642901,       1.4515122,      0.13281829,      0.52319059,     -0.46931646,     -0.48147343,    -0.089214147,     -0.94053332,      0.12042975,      0.60195651,      -0.9271974,    -0.014579579,      0.94828464,       1.5366403,      -0.7302513,     0.076748689,      -0.2783056,     -0.21580766,     -0.84258776,      0.66466104,      0.75059261,      -2.2233112,       1.3382677,       2.6349173,      -1.6357879,       -1.022045,     -0.14242135,     -0.28076904,      0.89979131,      -1.2361845,     -0.47477611,     -0.39588568,     -0.94491988,     0.021850851,      0.75720025,    0.0092009157,     -0.60975252,      0.46516798,     -0.29311138,     -0.73195367,       0.3227883,      -1.2237209,      0.10564429,      0.48709401,      0.24794887,      -1.1759904,      -1.1826942,      -1.9267553,     -0.38491229,      -1.9866177,     -0.26249453,       1.4543364,       1.8038942,      0.94689857,      0.25299053,      0.30350012,      -1.9128787,       2.3225081,    -0.046482752,     -0.96779206,      0.71811726,       1.0322636,      0.98120943,      0.48360377,     -0.11634547,    -0.015950622,     0.042602017,      -1.0571022,     0.067918882,      -1.4066703,     -0.40861926,      0.27911523,     -0.65047966,      -2.3808505,     -0.41979506,      0.95075814,      0.52137638,      0.79747474,      -2.0913128,      -2.3143829,       1.5307189,      -1.2123254,      -1.2034591,     -0.39716059,         1.14345,      -0.6088574,    -0.083775124,      0.63710998,       1.1963988,      0.47111587,      -2.3187666,     -0.60138355,     -0.40699255,     -0.51803499,      0.60903573,    -0.064779185,     -0.05011339,      0.37279075,      0.21046558,        -1.69136,      0.62759513,       -1.481498,       -1.126351,      0.78495241,      0.24319298,      -1.1599332,       1.2874114,      -1.4004677,       -0.439493,       1.2120991,    -0.081646756,      0.48933192,      0.15924719,      0.20590915,     -0.39851122,      -0.5923963,      0.26123784,      -1.9803235,       0.1175978,       1.1887017,       1.0781853,     -0.65932738,     0.017401331,      -1.4920738,       1.5119936,     -0.58333329,     -0.15843509,       1.0284851,      0.24818357,     -0.65086318,      -0.6852585,     -0.64636691,      0.53487474,    -0.060680553,     -0.18473993,       -0.767737,       1.6194469,       1.5448605,      0.26427766,      0.35846416,    -0.035119243,     -0.33593732,     0.075631113,       2.3280196,      0.13284956,      0.60664286,     -0.59050886,     -0.10807806,     0.085288959,     -0.23901773,     -0.18959795,      0.53264698,      -1.2572899,      -1.0372144,     -0.28051337,      0.51138592,      -1.8235903,       1.2062055,      0.23351858,       -1.120531,     -0.20208511,     -0.21596318,      0.50133129,    -0.040459245,     -0.64767718,       2.4472546,    0.0013747523,      0.13419968,     -0.55090916,      0.55729228,     -0.94962271,      0.47149718,      -0.1952704,     -0.66109909,     -0.20791567,     -0.88702505,     -0.67384535,       1.1117868,      0.20689959,      -1.0661683,      0.51760277,       0.3343856,       1.4596656,       1.3491074,     -0.75456381,       1.0149043,      0.81345286,     0.081583549,     -0.86563859,     -0.90986627,      0.24978947,     -0.54813352,      0.28590441,      -1.5735925,       1.3609799,      -1.7899404,      0.11003251,     -0.91444509,       1.5110512,     -0.42163532,      0.16764237,      0.89565301,      0.40407661,      0.67827643,      -1.6244568,      0.53585137,      0.84304352,      0.10161997,      0.07737807,     -0.74529222,       1.4596335,        -1.66891,        1.097941,       1.2226241,     -0.09916084,      0.58303944,     -0.14808113,     -0.83846708,      -1.0629131,      0.55797504,     -0.29420504,       1.5256778,      -1.3561578,      0.68005523,      0.18579135,     -0.47375012,      0.54634282,     -0.49094381,       1.1795037,     -0.56955071,     -0.92089276,       1.0585211,     -0.63373804,      0.82881969,      0.55111628,       1.2079786,     -0.30073003,       1.2075374,      0.76140333,       1.5272968,      0.13164163,       1.3324768,      0.90642194,      0.97229964,     -0.07079669,       1.4057015,       -1.410413,      0.31815758,       1.5500601,       0.1304912,      0.27104739,     0.090608075,      0.79995962,      0.40513548,     -0.84867386,      0.88464933,     -0.76715471,       1.6695823,      0.34658133,      0.61223633,       1.0068213,      0.29105372,      -0.8602653,     -0.52688344,       1.6626752,      0.88650764,      -1.4206417,       1.0739429,     -0.13745395,      0.17910612,      0.17237467,     -0.33721725,       1.3851892,     -0.28809594,     -0.30736066,       0.7516768,    -0.023773132,      -1.0818577,       0.2999811,    -0.073104615,       1.7866352,     -0.36313796,      0.56241662,        1.348379,      0.47588593,     -0.85774584,      0.49103298,     -0.87547686,     -0.88511592,      0.13832619,     -0.63900431,     -0.76457243,      -2.6939701,     -0.74433569,      0.96695494,      0.72277138,       1.5582596,       2.0432018,     -0.04182838,     0.018099105,     -0.10108326,     -0.74143764,      -0.9057348,       1.0564138,      0.06030815,       1.5199658,       1.8653452,      0.93092104,      -0.7221997,     -0.71491456,      -1.9250674,      0.81144794,      -2.1084902,     -0.33902391,       1.5693354,       1.3392637,      -0.5027626,       2.3379838,       1.8452432,      0.52198015,      0.10490679,      0.63337304,      0.77307889,       1.8860589,      0.68152826,       1.8525954,     -0.30810372,       1.6848285,     -0.66290104,     -0.40552002,      0.85817004,       2.3939873,     -0.43634317,       1.0200847,     -0.74075122,      0.47666978,      -1.1714143,     -0.29288542,     0.030102952,      0.02389707,      0.20410372,     -0.89929524,      0.97844748,     -0.54436976,     -0.56560025,      -1.6733526,        -0.49135,     -0.45214469,      -1.3044991,     -0.47755368,      0.47209677,      -1.0446686,     -0.62472603,      0.58887857,     -0.87160801,     -0.60930223,       0.7555713,       1.2676878,       0.5547127,       1.8095582,    -0.071919017,      0.84653688,    -0.081034199,       1.6560927,     -0.94846844,       1.2431707,      -1.7315924,     -0.16365301,     -0.09271999,       2.0100642,        1.180396,       1.1136121,      -1.6076309,       -1.118406,     -0.62656318,      -1.7579657,      0.73547191,      0.22260238,      0.98991219,     -0.68839661,     -0.92264907,     -0.50104503,       1.6187247,     -0.27851513,      0.60310964,     0.018690606,      0.38023646,     -0.89017912,     -0.33748638,      0.12855048,      -1.5299704,      -1.2757284,    -0.013365097,     -0.53577603,      0.94054702,    -0.095771679,       1.8791892,     -0.79574816,      0.92711403,      0.19156666,      -1.4117603,      0.86679297,       1.9653486,      -1.1890875,      -1.1030287,       -0.849525,      0.17689428,      0.44129798,     -0.88372526,     -0.58987303,      0.27242507,      0.23022244,      0.20285258,      -1.2434995,      0.75033542,      0.11294726,     -0.63037819,     -0.28009681,      -0.3606316,       -1.571772,        1.367462,     0.018935396,      -1.1505054,      -2.0441218,      0.59276652,        0.472124,     0.013374225,     -0.23355449,     -0.65209441,     -0.22323992,     -0.47136884,   -0.0084023395,      0.57987423,      0.71703236,      0.60290142,      -0.2053792,      -1.3355079,       1.6237291,     0.030766592,     -0.79912292,      0.85731466,     -0.83684989,      -1.2758366,    -0.077881238,      -1.3103844,     -0.11872804,     -0.11352235,     -0.72682763,      -2.0983649,      0.42844219,     0.090357823,     -0.13888988,      -1.3909844,     -0.43850632,     -0.28401271,      0.49635986,      0.96021286,     -0.24285523,      0.30834388,      -1.2332067,     -0.13110269,      0.41729817,      0.89226829,     -0.92070638,      -1.1186904,      0.61110341,       2.0016376,       0.9844171,       1.0892461,       1.7805442,       1.2831103,       1.8367884,      0.42178071,      0.13329079,     -0.97602619,     -0.15068501,       1.2010704,        1.098167,     -0.35782772,     -0.13263113,       1.5066923,      0.48840281,    -0.069557083,      0.23891089,     -0.31130988,     -0.21314073,      -0.8100593,     -0.24647346,      -1.1266542,     -0.65331294,      -1.8333224,     -0.97568612,      0.41629815,      0.31206364,       0.3814273,       -0.231682,     -0.62267793,    -0.057296983,      -1.2292349,      -1.2825668,       2.3001654,       1.6613143,       1.2698818,      0.18275264,     -0.87466794,     -0.23000833,       2.4211436,     -0.71362983,      -1.1328298,      -1.1630599,     -0.64398454,     0.054948004,      0.11844364,      0.44648732,     -0.31676207,     -0.11261583,      -1.1799196,     -0.31719397,     -0.93018533,      0.26968909,      0.38455146,      0.35539721,     -0.31098981,     -0.27329892,      0.41994607,     -0.24667983,     -0.39223006,     -0.86106125,      0.68752348,      0.34623498,      0.16558306,     -0.87157793,      0.11582558,     -0.92777659,     -0.73424782,     0.069333417,       -1.829544,     -0.25977406,      -0.2217835,      0.21619503,     -0.81734882,      -1.1532112,      -2.1650117,      -1.9227892,      0.25988951,      0.85484716,     -0.76806065,       1.1654001,     -0.88560165,      -1.1797537,      -2.4970759,      0.28495703,     -0.11282057,      0.15093924
+2007Y,     -0.33600002,       1.0803883,      0.80103651,        1.626715,      0.34952527,      -0.5286281,       0.2857031,     -0.29888869,      -1.3608845,      -2.4291118,     -0.68159324,      0.39035015,     -0.40961189,     -0.48269656,      0.73479926,     -0.18633089,     -0.21006627,     0.091569645,       0.6362506,      0.25368568,       1.1690436,      0.24369402,      -1.9938981,      0.36970444,       1.0471622,     -0.63552697,     -0.61416603,       1.4832192,     -0.20410965,      0.75927257,      0.32744111,     0.030793069,       -1.412773,     -0.40505608,      -1.0488435,      -3.1603319,      0.25744017,     -0.31368945,      0.65920469,     -0.11323662,     -0.13966666,      0.11166737,      -2.0389589,       1.2065582,       2.2285339,       1.6520656,       1.1440596,     -0.10072405,       1.9251957,     -0.26710293,     -0.70287468,     -0.29016733,      0.11922625,     -0.50540334,     -0.52445248,       1.8647161,      0.61772557,      -1.1435332,      0.37806554,     -0.10387053,    -0.016397256,      0.62895696,      -3.1248388,      0.80739693,        1.427344,      -1.8443245,     -0.37013482,      0.37212899,     -0.77824581,      0.16696714,      0.71868562,      -1.0632847,       2.2267079,      -1.3230613,      0.79423699,     -0.51353289,      0.17434409,     -0.38710947,     -0.36163301,      -2.8248196,     0.060098461,      0.20809355,      -1.1546463,       1.0840275,     -0.55550531,      -1.2800671,     -0.83392016,       -1.171211,      -1.1722665,      0.20925464,      0.94489582,      0.23011089,     -0.69148546,      0.11266739,     -0.47910534,       1.2180248,      0.48670327,     -0.96196187,       0.1764162,     -0.26381677,      0.42131419,     -0.89871104,       1.1582539,     -0.30640556,      -0.5423964,     -0.50989955,       0.5526101,     -0.56679522,      -1.5064601,      0.45957282,      0.85759601,      0.28196977,      0.87784678,     -0.69026755,        1.248985,      -1.9908709,       -3.189681,      -1.3162844,     -0.85123161,     -0.70435532,       0.8340525,     -0.19562765,      0.69757516,       1.2487728,      0.16359013,      -2.4316595,       1.2413722,       1.5836242,     0.066013395,      -1.2269918,      -0.7115901,     -0.94961392,     -0.25482029,      0.28679503,    0.0037569116,      -2.1072191,      0.58559179,      0.48244486,      -0.7540409,     -0.32593605,      0.35231788,      0.22563047,      0.10545632,      -2.5393354,      -1.7700382,      0.49324344,      0.09013426,      0.38522723,     -0.81293557,      0.12351968,     -0.41890276,     -0.23364347,     -0.46883773,       1.4646967,       1.1273672,     -0.61461019,     -0.24760738,     -0.18893983,      0.15349898,      0.47404222,     -0.56762734,     0.005056921,      0.22061519,      -1.0665404,    -0.097941241,        2.058522,      -1.2588671,       1.6908905,     -0.36279149,     -0.69516597,     0.041678073,      0.14644066,       1.6916108,      -2.2932209,     -0.44645728,      -1.4637641,       0.2695157,      0.16513377,     -0.17241308,      -1.5539277,     -0.82351874,      0.45831875,      0.15229727,      -1.9614365,       0.1434222,      0.63917067,      0.59632308,       1.3467999,     -0.56957048,      -1.8992135,     -0.10197987,     -0.53980442,     -0.12669578,    0.0051988709,      0.41119209,     -0.73561895,     0.053228782,      -1.3598231,     -0.31216145,      -2.0748251,     -0.23584599,      0.44241645,     -0.28504037,     -0.77056499,      -1.3318277,      -1.5828279,      0.41961969,      0.94272982,     -0.62032559,      0.19660053,      0.71345151,       1.1505863,     0.046240748,     -0.13068851,      -1.1656743,      -0.9203258,      -2.1791217,      0.34140782,      0.19307244,      0.46772441,      0.62792751,       -2.046271,       1.3432436,        1.025189,       1.4122933,     -0.99345871,       1.5430367,      0.36757778,      0.40132515,      0.78396359,     -0.57317681,       1.0777972,      -2.0717732,     -0.33708532,     -0.74206194,      -1.1652397,       1.7025544,      0.45004578,     -0.90213534,      0.65135334,       0.5794249,      0.38967164,     -0.24820057,     -0.49097073,     -0.83925702,      0.59910062,      -2.0673062,      -1.1227314,      -1.7274975,      0.75705955,     -0.50159033,      -1.4212542,      -1.5463359,      -1.0321168,       1.7530997,      -1.1988375,      0.69152555,      0.41026937,      -1.7541216,      0.80064861,     -0.87813311,    0.0085860334,      -1.0666467,      -1.0292273,      0.52719683,      0.15156701,       1.5167568,     0.065136881,     -0.58403778,       1.6981356,     -0.99600057,      0.44255673,       0.7969438,      -1.0514231,      0.63688143,     -0.12608258,      0.81637542,      0.93415153,      0.35859603,       1.7381161,      0.28631525,     -0.63438654,      0.27735204,      0.34877518,      0.47102138,      0.47612989,     -0.06996677,     -0.67074109,     -0.44799111,      0.36299107,     -0.10616763,        1.032853,      0.55977395,     -0.16418204,     -0.90537687,      -1.6206865,     -0.76361852,     -0.71692962,      -1.5882297,     -0.72987218,      0.92602999,        1.093066,     -0.40624071,      0.47171771,      0.81213868,      -1.1058182,      0.54647822,     -0.37817611,      -2.0124432,      -1.6164216,       1.0824974,      -1.0927947,     -0.14477325,       1.1972179,      0.44827388,      -1.0534203,      0.12217221,      -1.1872462,     -0.18742235,      -1.2577951,      0.16504685,      0.40829102,      -0.2648999,      0.59514967,     -0.48122596,      -1.6422218,      0.18518799,     -0.41617427,     -0.30296898,       1.6762331,       1.3067083,      0.43488294,      0.53206514,     -0.88458983,      -1.3954634,     -0.45949014,       1.2382921,     -0.52349274,      0.97109866,     -0.53457978,     -0.72711512,     -0.35897195,      -1.2029147,      -1.1180009,       0.4489511,         1.88735,    -0.014979887,      0.73508849,       1.4137448,       1.2375325,       1.6952668,     -0.14510166,      0.21286457,      -1.6434491,       0.8855923,     -0.16358819,     -0.48367194,      -0.7351747,       1.1779732,       1.7499581,      0.42098886,       1.1494409,      0.33238062,      -2.2758538,       1.0658028,     -0.78223024,      0.14318416,       1.3374338,     -0.66776014,    -0.073716852,     -0.41585158,     -0.45832679,       0.6941054,      0.17396266,      0.53151557,     -0.90571093,     -0.55574349,     -0.58898449,      -0.2763378,      0.96893997,     -0.95108435,      -2.3392269,      0.62368279,     -0.27623024,      0.63684721,     -0.56247985,      0.35386348,      0.72019943,      0.38570704,     -0.36957062,      -0.5283671,      -0.2877061,       1.6708726,       1.2606536,       -1.854266,     -0.73520558,      -1.2044206,      -1.6895816,      -1.9323239,       -1.085749,     -0.99446334,      -1.7156732,      -1.2077857,     -0.32114967,     -0.79868528,     -0.53590069,      -1.6450294,     -0.46947806,     -0.34477384,        0.410871,      0.92547165,     -0.83705913,      0.77790163,      -1.6606403,      0.81533376,       2.4566248,       1.1905242,     -0.89433522,     -0.31344687,      0.42339774,     -0.24960298,     -0.31473946,       2.3250238,       1.4653153,      -1.0926635,      -1.3481013,      0.62508098,      -1.1557999,      0.70431538,     -0.04302301,      -1.5823056,     -0.18446873,     -0.93892213,     -0.22406173,       1.4364813,     -0.20487741,       1.4227207,    -0.021815192,      0.27830191,       0.8380015,      -1.1618105,      0.61793704,     -0.19148747,      0.63589823,     -0.53886297,     -0.47729398,      0.66097734,      0.61884945,      0.15271194,      0.77218847,      -1.2273832,      0.10334466,       1.3220647,       1.2395035,    -0.044153127,       1.2526069,     -0.61022152,       1.1806963,     -0.16239689,      0.41140748,       1.1571382,      -1.1972991,    0.0011981612,     -0.60738209,      0.56578383,      0.34095109,     -0.44653535,       2.4541489,     -0.12528469,     -0.33411922,     -0.86996401,       1.5462715,     -0.46753307,       1.5041395,      0.98261565,       1.9057226,      0.10596466,      -0.5295483,      0.35221882,     -0.95431252,       1.4463255,      -1.3649062,     -0.62091891,      -2.0251731,      -1.5032317,     -0.20145245,       2.7333608,      0.96912662,     -0.82100545,      -0.4349584,      -0.8772056,      0.69406735,      0.85646056,     -0.13493505,     -0.44235653,     -0.13735074,      0.64578445,    -0.046443907,      0.73564208,      0.26720462,     -0.12899251,    -0.084587209,      0.89677307,      -1.1820713,      -0.1068031,       2.2207178,     -0.88834983,       1.1268651,      -1.2922819,       1.4058262,       1.1127205,      0.25900085,      -1.7280063,      0.50526263,       1.3312533,      -1.0867055,      0.66665326,       1.8852369,      0.31922302,      -0.6024394,       0.6691975,       1.6266998,     -0.41902162,      0.04172544,        1.185621,      0.67816362,     -0.23604173,     -0.63375048,     -0.44999229,      -1.7383679,     -0.47388686,       1.2817416,      0.83767852,     -0.10151709,     -0.13760414,      -1.9864284,       1.8550289,       1.0439978,      -1.0312523,       1.8743586,     -0.60786932,      0.16700796,      -1.5998811,      -0.8044759,       2.3205236,      -1.0982778,   -0.0020015931,      -1.1681862,       1.4603005,      -1.7634094,      -1.9363341,     -0.16176992,      0.61147251,      -1.5133105,     -0.15968561,     -0.44196314,       -1.286862,     -0.35783983,       1.6501231,         1.11927,     -0.42929696,      0.42483752,     -0.13956623,       1.1652987,     0.082538538,     -0.26298292,     -0.25776481,      -1.9099643,      0.51770054,      0.52374131,       1.8762559,     -0.39345643,     -0.88329969,      0.13301159,      0.11823614,      0.13750322,     -0.40285399,     -0.84124852,       1.1831545,      0.53329911,     -0.98693035,      0.81284219,     -0.39985562,     -0.72875915,      0.33378355,      0.31597502,     -0.37716779,     -0.22214843,      -1.0615693,      0.13250161,      0.17602546,     -0.71610339,     -0.39406172,       3.1796002,      -1.3537296,       1.5669015,     -0.70489361,      -1.5126504,     -0.30385115,     -0.49912382,      0.01516608,       2.3623162,     -0.50127024,     -0.87290573,      0.76901275,     0.042596172,      0.72299839,       1.0396007,     -0.64864029,     -0.55837875,      0.98698721,       1.1311692,      0.66534533,      -1.7472288,      0.71765156,    -0.030790793,      0.90705399,     -0.63725868,     -0.20697082,        0.309775,       1.0535769,     -0.67098974,      -1.3168759,      -1.9719582,     -0.63258881,     -0.51965652,     0.015882693,     -0.35722257,      -1.3187381,     0.094205157,      -1.6583086,       1.0715455,       1.0989663,       1.8972421,      -1.0612364,      0.29013402,       1.2481467,     -0.10848454,       3.1337349,     -0.22858204,     -0.73285224,      0.74079673,       1.9089245,      -0.6735622,      -0.6401548,      0.49964602,     0.091411571,        -1.00533,     0.048454619,       1.3615953,      0.94522822,      0.20517348,      0.27669734,       1.0315409,      -1.5992294,      0.97261744,      0.11854166,       0.1240152,     -0.25723565,      0.39565925,     -0.68492486,     -0.38787615,     -0.33295823,      0.28846312,     -0.08101061,     -0.23083352,      -1.2508621,    -0.011070663,       1.1836754,      0.46174687,       2.6043552,      0.14914046,     -0.96261768,      0.25416172,      0.18365194,     -0.48044593,      0.16029341,     -0.40886353,      0.59381423,     -0.65013371,       2.2139862,      0.70124723,       1.0250157,      -1.3340205,     -0.19654351,       -1.487592,      -1.1146485,       1.3333449,      0.89231912,     -0.30926265,     -0.18287786,       1.5249735,      -1.0276954,      -1.2318091,       2.7111746,     -0.48280155,        -0.46771,      0.21307462,      0.70855736,      0.88125541,       1.7551051,      0.38758911,      -1.4384365,       2.2457958,    0.0041951529,      0.76181381,      -0.3641211,       1.1140199,       0.8344366,      0.31783672,      0.71300477,       -1.441288,       1.4949374,     -0.38182526,    0.0081790802,     -0.32198635,     -0.85456976,       2.4493346,     -0.53015249,      0.37635986,      0.54773794,     -0.48794929,       -0.791079,     -0.34741706,      0.34335167,       1.2644114,      -1.5015444,      0.34246433,     -0.81976142,     -0.12241708,      -1.4977539,      -1.3222102,     -0.37323054,      0.80979178,       1.6578974,      0.25286288,       1.5486633,     -0.24986547,       1.6051506,       1.2223101,      0.12230074,      0.36064802,       1.3052866,       2.0996241,       1.2108536,      0.24470442,      -1.0459879,      -1.1561072,      0.78784168,     -0.65100332,       1.3337904,      0.90436549,      0.52377842,     -0.38728349,      -1.6759665,      -0.2151062,     -0.97730859,      0.63366907,     -0.56884598,      0.44479301,     -0.61787542,       1.6223075,      0.41021339,       1.1574242,     -0.20313406,       0.2766307,      -0.1688055,      0.60339814,     0.051383336,     -0.11640783,    -0.043156153,      -1.7182703,       1.6653798,     -0.53879721,      0.43148109,      0.36328646,   -0.0058409794,      0.54923506,       0.3300226,        1.072394,     -0.39975333,       0.6955058,      -0.2246759,     -0.25921598,      0.96770661,       1.9189399,      0.95983622,     -0.96358731,     -0.30209575,      0.03093731,      -0.6785371,     0.057905447,     -0.47381906,      0.14858548,      0.89340653,      -1.2809123,     -0.74530433,      -0.1333059,     -0.70363539,     -0.53537554,      0.73821966,    -0.077256223,     -0.32065873,      0.89837884,      0.28734884,      -1.2230104,       -1.300654,     -0.19386333,       0.3650868,      0.13674742,      0.31999207,      0.61812204,    -0.020954669,       1.1632107,       1.1803555,     -0.72804052,       1.4852249,      0.30695762,     -0.27645242,       2.1604333,      0.64477604,    -0.088743971,      0.54069082,    -0.017653689,     -0.64858708,      0.67331762,      0.74141026,       -1.189247,      0.50343825,      0.83757262,       1.3385165,     -0.68686579,      0.45211864,       1.2311397,     -0.61562073,   -0.0086204547,     -0.79613912,     -0.35651215,       1.0851841,      -1.1097097,      0.31974863,     -0.40295526,       0.1290225,       1.2108132,      0.75777338,     -0.32054042,      0.16403126,    -0.051232864,      0.99254133,      0.31467092,     0.056531971,     -0.94383241,     -0.94055834,    -0.052524232,      -1.8508912,     -0.98688143,      -0.8205441,     0.042527814,     -0.27005731,       2.0075815,       1.5272177,     -0.92472953,      0.39180913,     -0.96038528,      0.12352208,     -0.10260883,      -1.8321417,       1.6526828,     -0.25134981,      -0.6939517,     -0.28677317,     0.098000864,      0.38144437,      0.48135602,      0.25570214,     -0.75719054,     -0.62938062,       -1.721144,     0.081709159,      0.15563635,       1.2614615,       2.3257794,      0.50643001,      0.38030124,     -0.87339632,      0.48824178,       1.0249613,      0.46672821,     -0.69153941,      0.16495025,       0.1571589,       2.1860867,      0.98964113,     -0.55649132,     0.039264922,       -0.191765,     -0.85307206,      -0.8064208,      0.32571894,    -0.047573849,      -1.1374074,     -0.66555642,       1.3275977,     -0.93369479,      0.90246591,     -0.19265205,       1.0443031,     -0.48361159,     -0.81817489,      0.44485492,     -0.60058769,      0.24593251,       -2.034285,       1.4665874,      -1.0325384,     -0.53923428,       1.0457688,     -0.28183574,     -0.28166766,     -0.22817108,      0.02263952,       1.9470956,     -0.44869731,       0.2014721,        2.062955,       1.8872088,     0.069674478,       1.0130841,        1.309973,      -1.4446916,      0.43835779,       1.1107836,       1.4426867,     -0.41523977,      0.96868154,      0.55824746,     0.018827054,    -0.055589515,       2.2934948,      -1.8175004,      -1.4809312,    -0.080113402,         1.09963,       0.5959871,     -0.62528392,      0.51734924,      0.51077073,     -0.57592419,      0.01686134,     -0.73364004,      -1.2844291,       0.3686599,      0.60273193,      0.30110468,    -0.077383398,    -0.076483475,     -0.73242697,      0.69112377,      0.48807874,    -0.042524112,      -1.9270111,       1.6268558,     -0.11996875,       3.7451877,      -0.8687828,     -0.43442772,       0.1450254,       1.5466736,      0.14306476,      -1.8119741,      -1.7571337,      0.61758945,     0.010669859,      0.39945643,      0.08174803,      0.62197293,     -0.68770515,     -0.26275119,       1.8296122,      -1.4937445,      0.19858484,      0.16835143,     -0.57002327,       1.0873864,     -0.34397788,     0.086925229,      0.25055313,     -0.21842889,      0.20052334,     -0.78297854,     -0.66916869,      0.41524137,      -1.1091728,      -1.5438903,     -0.82557606,      -0.3175965,      0.11207751,      0.66897195,     -0.21882186,     -0.82497743,     -0.97591203,      -1.9912519,      0.30077885,      -2.1432001,       1.0774862,      -1.7045404,       -1.903381,       2.7255374,     -0.87301205,       1.2282786,      -1.0651825,      0.74688262,      -2.2611388,       1.9218986,       0.4625665,     -0.20133969,      0.33356582,     0.070773909,     -0.76388341,     -0.70946691,      0.42604652,      0.87175191,      0.42285339,      0.70722194,     -0.56849975,      0.43687565,      -1.9462173,      -1.5735395,      -1.2158688,      0.52513607,     -0.56047445,       0.2501502,       1.7919567,      0.24010846,      0.13914808,      0.42953379,       1.1215583,     -0.64998998,      0.99535897,       0.6938829,      0.33406123,     -0.81179838,      0.61781299,      0.98246336,        1.125023,       1.4018505,     -0.43927545,      0.69825048,      -1.2498031,     -0.96344999,      -1.0997855,      0.27826859,      0.27684004,      -1.0176651,       1.0628017,      -2.2285776,      -0.2851056,       1.2134847,      0.12618725,     -0.47535011,    -0.017855325,      0.38456326,     -0.15243996,      0.70794101,       1.1711668,      0.31014194,      -1.6579044,     -0.37205581,       2.1545855,       1.0163313,    -0.078948439,      0.39801305,     -0.39288771,      0.75853223,     -0.11392129,      0.82701119,     -0.46834471,     -0.47336759,      -1.6678744,      -2.6741983,       3.6779426,      -1.3961612,     -0.67075524,      -0.2241887,       0.3092481,     -0.97044496,      -1.7127197,     -0.29131538,    -0.051466445,      -1.7028779,    -0.038259233,      0.82704161,       1.1580699,      -0.5646184,      0.34528128,      -1.9587808,     -0.55842219,       1.9794018,      -1.4899988,       2.2025913,      -1.2588806,       1.3991688,     -0.53803776,     -0.14405204,      -1.4199674,     -0.27504445,      0.34650079,      0.56726261,      -1.3051934,      -1.1962026,      -1.3858203,      -1.3863849,       1.3795211,      0.42727513,      -0.2137107,     -0.15295911,      0.79592389,      0.92581298,      -1.1876603,      0.94752205,       1.4230675,      0.43222589,      0.09906704,       1.2458721,       1.3210431,      -1.2122855,    -0.052644876,       -0.817018,       1.9851695,       1.6126911,      0.73416665,      -1.6085912,      -1.0787918,     -0.59414705,       1.2831546,       1.5132462,       1.9057374,      0.95403402,       2.6072978,      0.30674071,       1.1188534,      0.58800694,     -0.88623712,      0.22047968,      0.52558081,      0.19683291,     -0.88693048,       1.0799052,     -0.28610062,       2.6115586,     0.056785443,     -0.52395522,       0.6907917,      0.78398741,       1.5234043,     0.055081792,     -0.19286623,      0.33597077,       2.1825939,      -2.6976232,       1.9562699,     -0.10912238,      -1.4541593,       1.3152472,    -0.045322368,       0.1172702,       2.1232512,     -0.56479723,      -1.3392324,      0.29443079,      0.44092235,      -0.6452189,     0.019791021,       1.0166289,       1.2706064,      0.57748526,     -0.56317113,      0.56179224,      0.47846535,      -1.3959608,      0.42248138,      -1.7241198,      0.38843527,     -0.60867235,     -0.15912064,       1.0731259,     -0.40511194,      0.63190671,     -0.22268075,       1.1343928,     -0.81520873,      -1.0725912,       1.1420415,      0.78644553,     -0.52035037,       1.0366679,       1.7276065,      -1.4922707,      -0.5886894,      -1.4086683,     -0.78911413,      -2.2599781,      0.87842152,     -0.48497175,       0.1356231,     -0.71476563,       0.2637607,      -1.2923852,     -0.43908999,      0.70160564,     -0.11805401,     -0.50383741,     -0.05498224,      0.16095409,        1.065273,      -1.5940619,      0.28137651,      0.46983254,      0.56289608,     -0.80859922,    -0.005384042,     -0.55028328,      0.31604699,      -0.9841013,     -0.30186322,      -1.6079591,       -2.158918,      0.68548086,      0.88808941,      0.61749959,     -0.65159223,     -0.99380108,      -1.7111913,       2.0413895,      0.56931157,      -1.4118215,       1.3862772,       -2.191124,      -0.2954556,      0.38279349,     -0.30013085,      -1.3741238,     -0.15311007,      -1.7011514,       1.0697756,     -0.84460897,      0.28774044,      0.38736268,      -1.0758628,     -0.59935349,     -0.97984419,      0.93613219,      0.83154182,     -0.21046636,     -0.29678671,     -0.84420287,     -0.12353132,       1.8673662,       1.6855859,       2.2372497,     -0.49164168,       0.5064665,      -1.2998526,      -1.6787573,      -1.1603679,       1.0967582,      0.79011724,       0.5452908,     -0.34691272,    -0.077166714,      0.49750429,     -0.34113041,    -0.028879503,      0.68287774,      -1.7801089,    -0.032933058,    -0.091431502,       1.8277884,      0.17307491,      -0.2216123,    0.0010757281,     -0.51449702,      -2.0554467,     -0.99422317,      0.52869825,     -0.76573312,     -0.10347018,      0.22545886,       1.1304589,       0.9198677,      0.90638557,      0.45170348,     -0.64401666,      0.41670257,       1.2598973,      0.70812228,     0.029041167,     -0.42478688,      0.70940091,     -0.34099849,      0.75653101,       1.0389262,      0.38219033,       2.0326433,      0.68003198,     -0.03796869,      -1.3279947,      -1.1366685,    -0.053085432,     0.090993026,      0.75387592,       1.4548182,      0.30027236,      0.32466805,    -0.027798608,       1.3596973,     0.020495194,      0.09485021,      -1.2834817,     -0.11863726,     -0.35610573,      -0.8980846,      0.95927361,     0.016014193,       1.0914216,     0.077922498,     -0.14606617,      0.14052605,       1.4814255,     -0.15004996,     -0.67149414,      0.43874705,       1.0173095,     -0.23883188,      -1.3342558,       1.5502925,      0.77217882,      0.42180053,      0.57288468,     -0.29557592,       1.0181382,      -1.4707061,     -0.65647604,     -0.55934563,     -0.16959637,      0.83566743,       1.4842069,      0.29788199,      0.33585123,      -1.2920587,     -0.94256748,       2.3204666,      0.53196118,       1.2912832,       1.7144232,      0.19433417,      -1.6260119,      0.25051557,       1.5524083,       1.1085638,       0.9718197,       1.2616243,      0.41939267,      -1.6549927,      0.28430735,       1.1524957,       2.0247985,     -0.12276194,     -0.41819021,     -0.73267299,      0.24071995,     -0.58706903,       1.1639403,     -0.92378512,     0.069114784,       1.5449212,       1.8989022,      0.91124331,    0.0044867191,       1.2838435,      0.19207181,      0.02678898,       1.0651468,      -1.7292399,      0.90661503,       -1.494858,     -0.30996595,       1.5652483,     -0.90656953,     -0.13016681,      0.52037794,     0.066665554,       1.1995272,       0.2404316,       1.2763568,       1.4061049,    0.0033616589,      0.76767493,       1.4013647,       0.3547559,     -0.39451063,      0.18468756,      0.80608089,      0.57457028,     -0.91306364,       1.3959688,      0.66940884,    -0.030003991,       -1.554042,      0.32633447,       2.0959651,     0.069062638,      0.41294893,       1.9585125,      -1.5283389,     -0.33316124,       1.6394568,      -2.4870887,     -0.33890774,       1.4128685,      0.71748953,      -0.7860764,      0.37799329,       1.5705671,      -1.3999278,      0.68091081,      -1.1603358,      -2.7676576,     -0.57421568,         0.50577,     -0.22067904,      -1.1816471,      -1.6986194,      0.55664236,      0.53292771,     -0.59933713,     -0.23680121,      -0.7412325,     -0.46534606,       2.5971647,     -0.78864121,     0.099221604
+2008Y,       1.4710531,     -0.88344847,      0.24467618,       0.2507215,    -0.012580138,     -0.51999489,      -3.3999472,      0.25026302,         1.85513,    -0.035733157,       0.4571617,      0.14492769,      -0.4648383,     -0.39593712,      0.33441327,      -1.5137549,     0.042968991,      -1.7426936,      -1.4840908,     0.084575205,     -0.18260207,      0.77275595,     -0.31778398,     -0.62184562,      0.81596068,       1.4997689,     0.042137073,     -0.34888779,      0.57797545,       1.9465712,       3.0865371,     -0.34125714,      0.96413063,      0.64762436,      0.93281886,      0.83926777,      -2.0939454,      -0.7224935,      0.77619929,     -0.35755371,     -0.40350341,     -0.78944927,      0.73594514,      0.95730837,      0.26874585,     -0.41232108,      0.59532575,      0.44132987,       1.6255118,      0.42119357,       1.6322533,      -1.9411593,       1.3697245,      -1.9297333,      0.99091524,     -0.17981643,     -0.74688721,      -0.6377373,      -1.9071901,     -0.40408933,      0.66199205,     -0.08546108,     0.079252409,       0.1402901,      -0.7581465,      -2.6803989,       1.0980266,      0.25338578,       1.1160707,      0.62726177,     -0.22777599,      0.42949007,      0.24957881,      -1.2839822,       0.1242327,      -1.3510669,      -0.6144679,      -1.1326568,     -0.26720284,       1.3813287,      -1.8398451,      -1.7728053,      -2.5693219,      0.47263892,     -0.52868162,    -0.079066185,      0.57980352,      0.30818444,      0.12165088,     -0.69382868,     -0.92043865,     -0.44312472,      -2.7483374,     0.011389834,       1.8733524,      -0.9581473,       0.7415474,     -0.21689713,      0.22050873,      0.71980277,      -0.9015332,         1.04482,     0.018925693,     -0.38443669,      0.82703391,     -0.68238342,      0.77881755,     -0.40165192,      0.16735721,     -0.31915484,     -0.68878282,      -1.8087686,      0.94777183,      0.37703038,      -1.2040187,      0.44391606,      -1.7042136,        0.233138,        1.333247,     -0.29906714,     -0.97835686,      0.11378272,     -0.46770093,      0.10289156,       1.7634476,      0.73722194,      -1.1070477,      0.85128338,      -2.7405317,      0.39178527,     0.055722072,      0.89283541,     -0.64667833,      0.49971058,      0.27883871,      0.40542929,       1.6249341,     0.061712301,      0.63000019,     -0.88612486,     -0.58325906,     -0.56340695,      0.35307566,      -0.5031368,      -1.5030362,     -0.12548437,      0.31109445,    -0.067162379,     -0.29417914,    -0.099865891,       0.9073168,      0.44807393,      0.31158883,      0.84760418,    -0.049349543,     -0.86590483,     0.033704913,      0.41672819,     -0.64424889,      0.41862796,     -0.71326271,      -0.8041105,      0.51337349,      0.49471384,     -0.11760594,      -1.2184993,      -0.3278325,       0.2068417,     -0.33339929,     -0.29199692,      -1.6116758,     -0.70916486,      -0.6789724,     -0.66588227,       1.6443932,      -1.4838943,      0.68410731,      0.18127784,    -0.051870708,      0.61998767,      0.20701081,       1.0052194,     -0.94650689,      -1.5750702,     -0.22266194,      -1.3110343,      -0.8488212,      -1.1602638,      0.18723954,      -1.0521826,      0.47762266,     -0.90785366,     -0.57037253,      0.45186573,      0.61405456,      0.16146854,       1.1720069,      0.13112618,     -0.30441142,      0.88687683,     0.076274959,      0.44602787,      0.10509363,     -0.78892636,      0.60681902,      0.38032798,     -0.74947934,      -2.0115892,     -0.49846724,       0.4186422,      0.12167764,     -0.74876571,      0.67817664,       1.3543309,       1.8542426,      -1.3075907,       0.7071018,     -0.81194321,     -0.19277293,      0.66213585,     0.010051081,     -0.78221748,     -0.44724541,      -1.9241494,     -0.87591426,     -0.98983595,      0.21036476,       0.5661704,    -0.047497514,      -2.2311042,    -0.026238251,      0.14024115,      0.16772686,      0.52908044,      0.90937187,      -2.0056628,     -0.21788534,      -0.6766412,     0.088529121,      0.45282767,     0.051092341,      0.70809491,       1.0997351,       -2.195043,         2.10371,       1.3058472,    -0.046360067,     -0.46732464,      -0.7273886,      0.26802192,       1.9051592,      0.15569201,     -0.50422699,      0.88332912,      0.39598484,       1.5488702,       -1.128055,     -0.53587895,       1.2818788,       0.3402547,      -1.2467572,      0.50067571,      0.28312884,     -0.17003466,      0.51655628,     -0.93804984,       -1.661807,      -1.7209166,      0.72359435,     -0.64663584,      -1.7805597,      0.83889223,      -0.4887892,       2.2885341,      0.23045961,       1.5440983,       1.4607787,     -0.18598083,      0.25017159,     -0.70035888,      -1.1294633,      -1.1622212,      -0.9990522,      0.55494842,      0.96889973,     -0.22979308,     -0.52482652,      0.46042467,     -0.83629899,     0.006035292,      0.42973912,       0.8886091,      0.13919014,      -0.6179218,       2.2796159,      0.18246871,      0.24201245,       1.2825974,     -0.47396691,      0.73548178,      0.10070969,       1.1361638,     0.058348605,      -1.3894083,      0.49485261,     -0.37618494,      0.36471623,      -1.7511732,     -0.99825291,     -0.77198785,      0.29787354,      0.22747343,     -0.12443972,     -0.79246161,      0.75859063,    -0.079367979,      -0.4997443,       1.2326193,      0.34545337,     -0.21827622,      0.11399606,        1.665353,       1.3452313,    -0.013677997,       1.9334493,      0.46927908,      0.03428784,      -0.1851698,     -0.18664991,    0.0088742776,     -0.83632755,      -1.5534085,      0.46151194,     -0.83882579,       -1.264185,      -0.0733528,      0.24288805,      0.35740684,     -0.75692706,      0.62202427,       2.0440146,      0.28627322,      0.62836373,      -1.0230549,       1.2634998,       1.2049514,      0.10704607,       1.2882041,       2.4153018,    -0.056298824,      0.66959863,      0.38813695,      -0.1433967,      -0.8538808,       1.0884108,      -1.7991126,    -0.057696639,      -1.1165925,      0.45148682,      0.16553951,      -1.7078669,     0.005499071,     -0.21625356,      -1.2429903,      0.74856212,      0.27018398,      0.52812624,     -0.89924914,    0.0060870908,      0.94759691,       1.8444463,     -0.93984802,      0.97099676,      0.34105929,     -0.69914829,       1.2526438,     0.050450306,    -0.043741939,      0.53832726,      0.48248369,      -2.1888649,      0.25044627,      -1.7196755,      0.69400049,      0.79805883,      0.34522311,     -0.76832218,     -0.26479718,     -0.25879236,      0.50572236,      0.27205981,      -0.4922302,     -0.85871742,     -0.19506253,     -0.80953142,      0.97462648,     -0.84418145,      -1.1773745,      0.96732611,     -0.30731258,     -0.55279683,      -0.4732998,     -0.43982338,      0.49022216,     -0.75875241,      0.90269414,      -1.6392344,      -1.8382019,      0.60567208,      0.84092783,      0.54788913,     -0.82530656,      0.32395929,       2.5468612,        1.135851,      0.87305449,       1.7360361,       0.7971122,      -2.3510832,     -0.60062567,    -0.026145661,       1.0394467,       1.3669568,      -2.1963074,       2.1956145,     -0.48033822,      0.16304867,       1.7999321,      0.79798253,      0.98682591,      -1.8001441,      0.21689001,     -0.80597029,      0.41815237,       1.2674087,      0.48108684,      0.55496159,       1.9511883,      0.19397797,     -0.34751737,       1.3623781,      -1.0833205,     -0.20966474,     -0.45599034,     -0.40574601,     -0.51767042,        1.009498,      -2.1885758,      0.90190144,      0.41310342,      0.42707499,      0.62575773,      -1.0637324,     -0.42762119,     0.074033019,         0.26431,       1.0554304,       2.1465294,     -0.14509266,      0.45416766,     -0.51710083,       1.6540663,      0.31077224,     -0.24605253,    -0.021843352,       1.6588805,     0.025121264,     -0.35643404,      -1.3381075,       1.2707905,        1.284803,      -1.0392189,     -0.72221708,       1.7245542,     -0.39729106,      -1.2249305,     -0.99737559,      -1.7596014,     0.093607527,      0.78625553,     -0.51602569,      0.68891156,       0.7743145,    -0.011957751,     -0.37510902,      -2.4703875,      -1.0194973,      0.36547141,      -1.2841313,     -0.58883472,     -0.35021021,      0.45851279,      0.58432364,      -1.8416365,     -0.11713556,       1.8094122,       1.1328694,      0.23625531,      -1.1875529,      0.24758504,      0.63893383,      0.52163996,     -0.90126962,      -1.3494725,     -0.88671595,     -0.19497066,    -0.024714203,      0.25432315,    -0.017822783,      0.83572147,     -0.87301922,     -0.51762097,     -0.64635788,       1.5325503,       1.2874629,     -0.67726768,     -0.83693687,      -1.5384425,      0.17434172,     -0.79927592,      0.53109457,     -0.47263307,       1.1448879,     -0.38239422,      -1.5542948,      -1.4558231,       1.1715874,     -0.73166693,       1.2471647,     0.051136403,      0.21528945,      0.79273771,     -0.77600951,      0.95078384,     -0.22111413,     -0.41943474,      0.53348532,       1.0138133,      -0.9672673,       1.6510773,      0.57645899,      0.61838424,      0.22813589,       1.0655556,     -0.94680615,     -0.96159088,       1.2450619,       1.7381165,      -1.2546718,      0.27458636,      -2.0762668,     -0.71873907,      -1.3218973,       1.9729338,      -1.0206614,      0.26480764,        1.205536,      0.71921946,     -0.65231532,      0.24026121,      0.68073594,       1.6518738,     -0.92140554,        1.115096,    -0.098867801,       1.0052044,     -0.79212546,      0.17962106,     -0.65177264,     -0.12468834,     -0.42639539,     -0.30062734,     -0.72523608,     -0.48605747,      0.91127958,     -0.81335474,       -0.916643,     -0.69615626,       1.9612694,      -1.9016975,       2.4900782,       1.2024363,       2.3631795,      0.25935768,      -2.0345874,      -1.6448738,     -0.78542017,      0.71748984,      0.19862419,      0.25325237,      -1.7734474,     -0.61229629,      0.40654506,     -0.12814764,     -0.93661841,       1.5632809,     -0.27389521,      0.27737809,      0.95538566,       1.3112599,      -1.2083556,      0.40494825,    -0.067632206,      0.95476887,     -0.38006993,     -0.92145274,     -0.62905955,     0.035122012,      0.14825291,     -0.43978817,    -0.032510597,       1.0305152,      -1.5900631,       1.6070446,     -0.14019021,       1.2723059,     -0.28977568,     -0.77200769,      0.98004602,       0.1390054,      0.80705621,     -0.55148321,       1.1084479,      0.29164608,      -1.5284487,     -0.10047499,      0.90201026,      0.90659269,      0.84191512,       1.6429435,      0.49491141,     0.043371296,       1.2090274,     -0.93741554,      0.76591498,       1.3656158,       0.5161467,      -1.9161032,     -0.24176264,       0.4513606,    0.0087147817,      0.55741235,       -2.097803,      0.48253689,         1.21348,     -0.52097429,      0.50880137,      0.65580832,      0.66281599,      0.49074773,      0.83531199,      0.98692315,        1.283881,     -0.74076497,     -0.59931821,      -1.8828435,       1.2631006,     -0.96847509,     -0.04442297,     -0.17092895,      -1.2996092,      -1.4091748,      0.30421809,    -0.032746853,      0.87529373,      -1.2607292,      0.29010851,      0.57937991,      -1.5338727,      0.53347896,      0.32900124,       1.3957584,        1.528947,      -1.8172283,     -0.45797006,      0.24500524,       1.1609276,     -0.21875652,     -0.21234535,     -0.26632602,      -1.5728196,     -0.38004789,      0.73271549,       2.2636319,       1.0595848,        1.279518,      0.72401305,     -0.21490944,       2.1905734,       1.8315257,     -0.39152212,      -1.3414137,      0.19768507,    -0.050543052,      -1.3955424,      -1.5089055,       1.9168965,     -0.47173525,    -0.070621936,     -0.72288629,     -0.77409971,     -0.77634569,      -0.5958824,      0.53442575,     -0.64078191,      0.90998892,     -0.23764931,     -0.44514991,      0.62988099,      0.90909483,       1.7359281,     -0.77751677,     -0.38919009,      -1.1445004,     -0.49996188,     -0.35179051,     -0.81371299,       1.6285878,      0.38253256,     -0.63760355,      0.29946377,     -0.39526863,       0.9996853,      0.87462878,      -2.1448686,      0.33506969,       -1.341187,     -0.33909885,     -0.77125435,       1.4492937,      -1.0365157,     -0.11665208,    -0.075103492,     -0.96259101,     0.039348633,      0.24879373,       0.3923077,     -0.76192402,     -0.38144916,      0.15777958,      0.83151005,         1.67553,         1.15734,     -0.15051257,      0.74698676,     -0.61795119,      -1.0191435,      0.31713074,      -1.5508377,      -1.3355077,      0.43251749,      -1.4429458,      -2.6724729,        1.148056,        1.135466,      -1.6425795,      0.62816869,      0.40627161,     -0.46119878,       1.8466588,     0.018771909,      -1.8748572,       1.1041385,      0.42192774,      0.52985805,       1.6755502,     -0.25521285,     -0.93016284,     -0.95907675,     -0.43145328,       2.2813118,      0.69005441,    -0.060583825,      -1.5001581,     -0.80457748,      -1.3153616,       1.6787385,      0.68867695,     -0.64280969,       1.4259256,     -0.39511118,      0.98800862,       1.2562274,      -1.1316536,      0.31139075,      -1.1145717,     -0.59510475,       0.1518115,     -0.51136109,      -1.3454631,     0.062185973,       1.1545353,     -0.11120859,     -0.23242838,     -0.53697808,       1.8219889,       1.3844337,       1.0670715,      0.46592606,    -0.092423096,      -1.3355055,     -0.97554792,     -0.89795702,       1.5990736,       1.7138175,       1.8833697,     -0.41862658,     -0.28854921,     -0.74265559,     -0.12341256,      0.92919012,    -0.060781109,       1.3003471,      -1.2960933,       0.2380907,       -1.466815,     -0.58826149,      0.39009216,      -1.4455879,       0.4808831,      -1.8320179,     -0.22764272,       1.2988939,      -0.0568516,      0.56429836,      0.71621961,       -1.426606,      0.59028935,      -1.5310947,       1.0141828,      0.48645513,     -0.67276494,      0.58067609,      0.57891559,     -0.70544056,      0.42263042,     -0.15721318,       1.4471024,       1.2241155,       1.4664591,      0.54071981,      -1.3054067,       1.3106503,      0.52787374,       1.3847945,     -0.48564416,     -0.33419047,        1.063906,     -0.95394162,      0.73977897,       1.6214378,     -0.54499952,      -1.6854565,      -1.2727348,    -0.068678736,       1.6084082,      0.98022705,      0.51791008,     0.086551503,      -1.2202591,      -0.5008852,      -1.5562807,      -1.5702835,     -0.31487909,     -0.41648872,     -0.11286747,      -1.0029471,         2.53344,      0.20633865,      -1.2524361,        0.208892,       1.7930548,     -0.32344489,     -0.71311258,      0.59606682,      -2.3364962,      -1.7778853,     -0.56392738,       1.9743678,      0.11897961,      -1.0995321,     -0.26640004,      -1.2521839,    -0.034636129,      -1.5583233,     -0.84079438,      0.36057273,       -1.456851,       0.2931496,      0.90172711,      0.87792489,      0.48324567,     -0.35723349,       1.2216717,     -0.18687241,      0.98154567,      -1.1653801,      -1.0462878,     -0.57592141,      -1.2424096,      -1.1277698,       1.7297308,        1.494819,      -0.8435259,      0.98729541,      0.43375454,      -2.0427377,      -1.5599891,       0.6840444,     -0.27021111,      -0.7620569,     -0.72029813,      0.32615714,      0.91414348,       1.7462387,        2.448289,       1.1609921,       1.9109537,      0.17807604,      -1.8134752,       1.0764918,       1.4875024,     -0.86250589,      0.43381312,      0.51158517,    -0.012469127,     -0.82528265,      0.25555525,     -0.15414871,     -0.19218092,      -0.7693541,      0.42811668,    -0.087603981,      0.72934752,     -0.21955219,        1.448194,     -0.39608834,     -0.75673548,     -0.87151434,      0.12816673,      -2.7236934,     -0.39403435,      0.99688107,     0.085997674,      0.16621241,      -1.2068238,     -0.94104731,      0.88588142,     -0.46036841,      -2.0442414,      -1.2965294,      -1.8830806,      0.42617888,      0.54082201,      -1.9534935,      0.40940123,     -0.13962724,      0.54064072,      -0.4981314,      0.74841726,     -0.81289108,      -1.2159135,      -1.1549142,     -0.14458305,     -0.37061563,    -0.077129534,       1.2850726,     -0.64358964,      0.90373189,      -1.2359043,      -1.8515848,      -1.1968478,      0.74097769,     -0.11888117,     -0.44707103,      -1.2648431,      0.16460471,     -0.45375027,       2.0762595,       1.6685535,     -0.21644301,     -0.48904448,      0.98299147,       1.9096934,      0.59186002,    0.0033765108,      0.25183244,      -1.5120052,      -2.3542567,      0.70705851,      -0.9132968,      0.67329916,      -1.6956133,       1.0933421,    -0.022400819,     -0.23248796,      -1.5172093,     -0.35558244,    -0.049632258,       1.5638407,       2.0927984,    0.0061985846,     -0.33794149,      -0.3087125,      0.54948992,      -2.0089181,     -0.20486039,      -1.3751467,     -0.92273238,      -1.1566571,      0.40035915,      0.34499831,      0.57146787,      0.76931685,      0.12821846,       -1.276042,       1.6582544,     0.012598139,        1.138346,        1.083164,      0.61668437,       2.2000353,       -2.335416,        0.143268,       1.5626476,       2.3569929,     -0.15064045,       -2.544787,      0.32606059,       1.5413472,      -1.0979618,      -1.0072499,     -0.21818585,     -0.58936673,      0.69209667,     -0.45660174,    -0.010110806,      0.32387594,       1.2467282,       1.8841324,      -1.2979032,      -0.9453881,       1.9165504,      -1.0976495,      -1.6282815,      0.79190913,     -0.14468545,     0.020344442,     -0.37280726,       -1.310786,      0.11003105,      0.55650464,     -0.45495753,        1.071346,     -0.99320545,      0.91908654,       2.0149361,       2.6059602,     -0.38827149,  -0.00070373114,     -0.48503303,      0.58227742,       1.6889237,     -0.69368945,     -0.77435473,      -0.7299533,     -0.39884537,       1.4926822,        1.056286,       1.1584762,      -1.1444562,      0.84817812,      -1.0021737,      0.60473082,      -1.3908111,      0.11048942,        1.396174,       1.9234875,      0.88965212,     -0.92930968,       1.8940065,     -0.27267609,     -0.34041177,      0.21972652,     -0.29294149,      -1.3187956,     -0.13614111,       1.5748075,     -0.70578067,       1.8177727,     -0.33231045,      -1.1591931,      -0.5352915,     -0.18386605,     -0.67941732,      -2.3426013,     -0.69895695,     -0.33678707,      0.66545541,      0.82964168,      0.16354948,      0.82605831,       1.4852663,      -1.8151927,      -1.3380599,     -0.49374913,      0.62731307,       0.3984679,      -1.6994413,      -1.2549149,      -1.1563843,  -0.00073434203,      -0.8858923,       0.3657054,      0.78343443,      -1.1557239,      0.17160628,       -1.667342,      0.10751448,     -0.65633606,      0.39344201,    -0.093887448,      -1.1612587,      0.18917651,     0.016036704,       1.3113641,    -0.024498906,     0.055141374,     -0.90621419,     0.056743208,    -0.088427276,      0.34677289,       -0.393145,     -0.64718878,      0.92080257,     -0.85902216,       1.1899116,      -0.2013131,     -0.59760927,      0.49326655,      -0.2151595,      -0.2427619,       1.0265646,     -0.72872903,      -1.0262944,   -0.0062165772,      0.49520057,     -0.50357576,     -0.10780063,      0.86473698,     -0.97355968,      0.81855749,      0.82286231,       1.4562158,      0.62890305,     -0.46125104,      0.89031022,      -1.5632603,      -0.1276707,      0.14395968,    -0.032950587,     -0.70433861,       1.0389227,      0.61355018,      0.52647134,      -1.0158456,      0.11872548,      -1.6456113,      -2.3736784,      -1.0381877,      0.20408707,       1.7350142,      0.55546556,      -0.5501304,     -0.60053228,       0.6058221,       1.5104331,      0.68739164,      0.64215767,     -0.12626546,        1.145712,     -0.52207713,      -1.6742505,      0.25537419,     -0.61227299,     -0.66022525,       2.6468585,       1.7217954,      0.52509443,      0.35327308,      -1.4143287,     -0.52798409,       0.1082883,      0.80576908,       1.4426377,     -0.24689841,      0.75615095,       1.0779702,    -0.061119228,      0.39197342,      -1.2350159,     -0.87874047,      0.89829209,     -0.24191434,      -1.7168756,      0.20578257,       -1.113615,      0.16585945,       1.8080709,      0.66449203,      0.95617891,     -0.12869732,     -0.22592483,    0.0092597928,       -1.969996,        1.298217,    -0.027038235,     -0.04817325,     -0.55791849,       1.6329412,       1.3371278,     -0.90971351,    -0.049250765,     -0.21484426,      0.16832672,     -0.30591054,     -0.25706412,      0.97475401,      -2.4412175,    -0.066507036,     -0.61897614,      0.39355359,      -1.4953309,     -0.62902053,     -0.15210192,      -0.6715475,     -0.47238525,     -0.88443769,      0.07091656,       2.0532158,      0.38827185,     -0.88406042,      0.41210092,      -1.2352139,    -0.028069102,     -0.39532504,    -0.019970802,       1.3299565,        0.220468,      0.86357815,       1.3084575,     -0.26705355,      -1.4516886,      -1.8766452,     -0.57516329,       3.2693664,      -2.2971395,      0.31929906,       1.8127728,      0.11686262,      0.79198712,      -1.0769813,     -0.28277102,     -0.38015603,      0.48647045,        1.598703,      0.52931493,     -0.64951227,       1.5909873,       0.7158213,       1.7089858,     -0.10120131,      0.59576695,       1.1799021,     -0.18721807,      -1.7506126,      0.76212399,      -1.6416889,    -0.022152095,       1.1591967,      0.43413429,      0.21958471,      0.05485767,      -1.2744798,     -0.26779188,        1.181394,     -0.85447704,      0.44927038,       1.2609233,      0.58783388,      -2.0886386,       1.7010982,       2.2121942,     -0.20236934,       1.7313323,     -0.43379171,       -0.346053,       -1.122229,       1.1385224,     -0.53943553,      0.34850622,     -0.30607627,      -1.1057016,       1.4794747,      -1.2167174,      -1.0606474,    -0.028630832,      0.37027197,      0.20667035,      0.26730839,      0.21161066,     -0.86573917,        1.486021,        0.602692,     -0.06154358,     -0.36882521,     -0.50022618,      0.31457118,       1.4472819,     -0.12041507,     -0.38965538,     0.022085757,      0.18146696,     -0.62299016,     -0.17743424,     -0.81460575,     -0.15753529,     -0.12225444,     0.026845539,       -0.450701,      -0.5370155,     -0.24894323,     -0.77268867,     -0.65436369,       1.3455166,     -0.79158785,     -0.77384583,     -0.19250666,     -0.58295641,      0.83229997,       0.7629541,    -0.054247172,       1.3118873,      0.56634908,     0.042734923,      0.67059484,      0.53258741,     -0.63347899,       2.2045803,      0.53636576,    -0.051940139,      0.48817118,       1.1116452,      -1.3080244,      0.77381175,      0.54956891,      -0.5761466,       1.0040175,       1.0812722,       0.5182761,       0.6235018,       -1.674119,       1.0737148,      0.69194812,      0.78230094,      0.87810826,    -0.048824765,       1.4564316,       1.1280888,      -0.5385708,       1.4471862,      -1.9202076,      0.48195565,      -2.1322871,      0.40678088,   -0.0047503954,       1.0471764,       1.6034325,      0.26217763,       1.4724723,      -0.5427679,      0.71769671,      -1.2550478,      -0.7073453,     0.013397424,       -1.231323,     -0.46407896,     -0.67468642,      0.22697354,      -1.0372906,     -0.75748248,       1.2755166,      -1.9117364,      0.96311008,      0.10633044,    -0.062822066,      0.20513486,     -0.21238975,      0.45265787,      0.23608814,      0.36901906,       1.3139331,     -0.49380654,      -2.1116541,       1.1866197,       1.1239139,      0.54844494,     0.033913166,     -0.50543471,      -1.3087485,     -0.85615817,      -1.3779997,      -1.3875851,     -0.80020574,     0.036981614,       1.7428164,       1.4361273,     0.065933924,     -0.29454893,     -0.15955864,     -0.26792342,      0.27715858,    -0.035432653,      0.86764426,     0.095103177,      0.72404771,    -0.062021766,     -0.81393359,      0.48124057,      0.89725338,     -0.73513311,       1.7348953,     -0.74401385,     -0.37622288,       1.2104438,      0.34022228,      0.63733888,      0.91238053,      0.74057359,      0.75853228,       1.0663192,     -0.40163171
+2009Y,      0.46237667,      -2.1451268,      -1.0753643,     -0.21693555,      -1.2681176,     -0.50114337,     -0.78667603,      0.43580932,      0.41255579,      0.14733645,      -2.1588658,      0.34205366,     0.030229892,     -0.75939035,     -0.70896264,       1.3417284,     -0.17750157,      0.48515851,      0.31685687,      -1.4121212,      0.63044234,       1.0602987,       0.9339659,       1.3911283,      0.21884305,     -0.44606471,      -1.3474661,       2.2234451,      -1.8912523,       1.5486152,      0.23028126,     -0.39444894,     -0.25504152,      0.57073661,      0.64957344,     -0.67747187,      0.61177385,     -0.83759364,     0.057007849,      -0.2497603,     -0.59758698,      0.47656215,      0.81668887,       1.4331942,    -0.055568489,     -0.21758848,      0.17789251,     -0.10159998,    -0.051722846,      0.32079081,        1.316539,        1.573387,      0.62526512,      0.72334107,       1.1719343,       1.2037285,      0.72624827,      0.44061474,      -1.0209889,     -0.51305973,      0.81569755,     -0.57003821,       1.4780367,    -0.054522993,      0.19990597,      0.25893167,      0.53029167,      0.39412073,       1.6101905,       1.4890993,      -1.1393641,       1.0235232,      0.50953878,      0.29547199,      0.86644142,       0.9382046,      0.26974573,       1.1481324,       0.7621352,     -0.86548601,     -0.25090354,     -0.71863051,       1.0108102,     -0.35352261,      -1.4851504,       2.3831739,     -0.53911594,       1.4348136,     -0.17504501,      -0.5658718,    -0.058456729,       1.2967511,     -0.19178092,      -1.1922847,      -1.0738815,    -0.026615992,     0.018848705,       -1.241185,     -0.19077713,      0.71555627,       1.1652851,      -1.0464019,     -0.77639173,      0.78222465,      -1.9018242,     -0.47018911,     0.021528834,       2.4676726,       1.6310175,      0.80681463,      -1.4510062,      0.91286318,      0.31778283,       1.6606894,       0.6642592,      -2.0570739,     -0.89635178,       1.5632357,       0.7903524,    -0.058905267,      0.48433215,      -1.3405288,       1.4175123,      0.64774553,     -0.59517253,      -1.7018974,     -0.33595943,      0.15694496,     0.094524091,     -0.73766997,     -0.81074275,     -0.31309431,       -0.759327,       0.8232119,      0.74386327,    -0.030573617,     -0.15402265,       1.3150905,     -0.55182762,       1.3277108,       -0.611987,      -1.7734415,     -0.59992119,       0.7223131,      0.66017504,      0.84163153,       2.2828082,    0.0046313973,      -1.1098808,     0.086332744,        1.487038,     -0.11421484,      -0.4829934,      0.48000132,     -0.47749768,     -0.86878001,      0.50792864,       1.7485748,     -0.67010472,      0.71177779,       2.9304245,    -0.044571418,      0.46624464,        1.078052,     -0.77129805,       1.7903054,       0.3248285,      -1.0376232,      -0.5284903,      -0.4547684,      0.38209796,      -1.2991117,      -2.5266117,       1.2392889,      -0.3752425,        1.025038,      0.49394052,     -0.99828741,      0.93257514,      0.98914294,     -0.11245234,    -0.043943222,     -0.72700629,     -0.57646705,       1.0778864,      -1.3110549,      0.90260379,     -0.87377051,      0.49434362,      0.14099808,      0.55888046,     -0.95180058,     -0.23641313,      -0.2424253,       1.1783874,       1.6307386,      0.26953916,     -0.26909682,    -0.084054271,      0.70745162,   -0.0084449476,     -0.40047587,     -0.95179598,      0.19336693,        2.128332,       1.4535389,       0.9747754,      0.94283679,      0.16970863,      0.42853164,       1.1675414,     -0.36342261,     0.048670477,      -0.8430326,     -0.75474427,     -0.65619166,      0.90104306,     -0.29569827,      0.30216602,      0.64785324,     -0.68715863,     -0.29097306,      0.78153099,     -0.64445946,     -0.23784453,       1.4832576,      -1.6288956,      0.53086617,      0.82868136,     0.019880919,      0.24210012,       1.5148442,      -1.6122519,       1.8452085,      0.38504725,     -0.76695549,      -0.6363791,      -1.4432531,       1.4052534,     -0.38810843,     -0.37075653,     -0.60967458,     -0.38681274,      0.72259701,   -0.0031169011,       1.2944697,      -0.2131466,       1.4598427,     -0.30721967,      0.55692477,      0.17341624,     -0.28051743,       1.1988569,     -0.77437568,       2.3863619,     -0.42858189,       1.2095483,     -0.27315622,       0.1387391,     -0.30143558,      0.61376394,     0.019180974,     -0.43717788,      -1.6151898,      0.13665898,       1.5948822,      -1.1995155,      -1.3190786,      -1.8546715,       2.0486489,     -0.37707937,     -0.69578321,     -0.91526909,     -0.40378325,     -0.29289205,      0.36519236,     -0.91411913,       1.0499338,      0.68721426,      0.16748639,       1.0204367,      0.15940866,      -1.9788552,       0.1079121,      0.77828406,      -1.3252117,      0.60325705,      -1.7834632,      0.48547409,       1.4336784,      -1.2230357,      0.48541012,       0.8831461,      0.54106598,     -0.10817081,     -0.46551979,      0.81929029,        1.658201,     -0.24639795,     -0.11764139,      0.27649714,    -0.056968239,      0.17661669,        0.532632,      -1.2265246,      -1.0047536,       1.2241591,     -0.50513258,    -0.059298373,      0.34568215,      -1.2375347,     -0.79285025,      -1.5951862,      0.67169211,      0.73576971,      0.37683412,     -0.58776154,      -1.4944985,       1.9717911,     -0.12954109,       1.1591553,     0.039953094,     0.074550927,         1.34415,     -0.45113891,     -0.99516203,       0.1504253,      -1.0361956,    -0.075266184,     -0.34803752,      0.46939435,       1.8152435,      -1.1034747,    0.0071040917,       2.2559319,      -1.1779627,    -0.063088761,       1.5402276,      -1.0427755,    0.0042813594,      -1.9094446,       0.1060481,    -0.084488703,      0.63928473,     -0.26226282,     -0.52221011,     -0.38781975,     -0.67777575,     -0.64356623,      0.71197624,       1.0987521,       1.4821264,     -0.50324998,     -0.19553379,       1.2792593,      0.60974601,       1.3934745,     -0.68887124,      -1.0945283,      -0.4157567,     -0.84772143,     -0.28873843,        2.131618,     -0.34072229,     -0.39130233,        1.265437,       0.6238223,      -1.1318824,     0.017046015,     -0.31282598,       1.9827693,     -0.59355254,     -0.19019421,     -0.50756854,      0.65688146,     -0.42058636,      -1.6187736,       1.8158091,       1.2657513,        1.021062,      0.37161226,      0.78453932,     -0.37048789,      0.85771449,      -0.7243459,     -0.36059254,       0.1916099,      0.19040364,      0.34092755,      -1.1380214,      0.36497559,    -0.042042567,     -0.74199046,     -0.84134936,      0.34899931,      0.78351527,      -2.1149233,       1.2211432,      0.19827273,     -0.39603987,      -1.1053738,      0.32072696,       1.1674437,       1.2227873,      0.99371071,      -1.5963952,      0.79145411,      -1.1070706,      -1.4016605,       0.1456521,      -1.1309768,      0.68336403,       0.5521005,      -1.5644031,       1.2349817,      0.17216177,      -0.7923236,     -0.08879175,      0.15515051,      0.40386146,      -2.1204282,       1.3434872,      0.39546085,        1.553385,      0.29194859,      -1.8949668,    -0.012375064,      0.90485145,      0.15145959,    -0.051827143,     -0.18250832,     0.041849937,     -0.62235831,       1.9765579,       1.3412884,      0.35451035,      0.61986197,      0.34578488,     -0.40572272,       0.2559969,     -0.51222837,     -0.10391297,      0.35302296,      -1.5077998,      -1.7877353,     -0.31038783,      -1.1406005,      0.65556647,       -1.868868,       1.3825887,     -0.85521619,       1.1526614,       1.0610903,     -0.48627162,      -1.6997665,     -0.63712359,     -0.61676789,     -0.81230955,      0.35107369,       1.2351004,     -0.20991763,     -0.34021946,      -1.9798486,      0.92602075,       1.8454212,      0.50445662,      0.21786803,     -0.25211754,       1.5575515,     -0.89638197,      0.42035518,       1.3813193,      0.56722952,      0.12063125,      0.82435777,     -0.61632215,     -0.93388209,      -1.1448785,      -1.7062207,      -1.1855118,      0.22488391,     -0.82856542,      -1.0269145,      0.53941416,       -1.000247,       1.5187774,       1.7713588,     -0.39063625,      0.99706153,       1.4913546,       1.2271875,      -1.9255839,      0.11755168,       0.2173126,       1.5294165,     -0.96052832,      -1.4147615,      0.60176919,      0.52782013,      -1.6757612,    -0.031689152,       0.5686878,       1.0683611,     -0.75954756,      -1.1856951,      0.57941692,      0.72746951,     -0.67224702,      -2.0232674,     -0.99537375,     -0.37353017,     -0.03909117,       0.7625922,      0.07495024,      0.80580312,       1.4235749,      -0.7783896,      -1.3120206,      0.28521981,     -0.82021239,     -0.55431546,     0.081473775,     -0.28221941,       1.6214124,      0.56132874,       1.0865223,     -0.11190265,      -1.8645915,       1.4160465,       0.8575999,     0.037857858,      0.64954967,       1.1864604,    -0.047657013,      -0.1884652,       1.6547979,       2.8098595,      -1.8203773,       1.4434012,     -0.33326351,       0.5985928,     -0.31103602,      0.06719268,       1.2536103,      0.57060667,      0.33665916,      0.10965626,       0.4726333,      0.83298853,     -0.43405091,       1.3876596,      0.96166567,      0.15662377,      -1.5914205,    -0.029901456,       1.9276779,      0.33003911,     -0.20980388,       1.4372767,      -2.5547937,     -0.48295216,     0.074012554,      -3.1083604,       0.6746681,      0.45611271,     -0.40315019,     -0.81343533,      0.15785285,     -0.65919252,      0.39942371,      0.40623322,      -1.3943726,      0.35686304,     0.098378037,      0.89760644,      0.59442241,      0.24210087,     -0.41845648,      0.39989683,       0.2369188,       0.8906618,      -0.0946818,    -0.039237639,       1.2346319,      0.17488406,     -0.81281008,      0.24062129,     -0.12290401,      0.42351637,     -0.20935863,     -0.72738451,      -1.0462852,       1.2090549,      0.16438226,      0.28384723,       2.1795878,       0.4678667,      0.40344937,       0.5434815,      -0.1911787,     -0.48897969,      0.64309434,      -1.3212924,       1.9846251,      0.91986563,       1.0549849,       1.2787834,     -0.39384204,     -0.89848733,      0.30788841,      0.55582748,      -1.7109036,      -1.0825709,     -0.19406526,      0.13927629,      -1.8297287,     -0.46072027,       0.7869056,     -0.88527938,     0.052177876,      0.14938376,      0.26532556,     -0.93764016,     -0.49882517,       2.0047422,       0.2133818,      0.65176929,     0.094717981,       1.3651711,     -0.75559029,      0.79121639,     0.088495939,      -1.0401363,     0.065749044,      0.49544201,       1.5221972,     -0.32467946,      0.31171914,     -0.17512727,      0.32389852,      -2.5210599,    -0.057454772,      0.22602092,      -1.5122877,      0.75055402,       1.8542908,     0.059862094,     -0.58513047,      -1.5337299,     -0.58944057,       1.5036044,      0.73926194,      0.49973838,      0.98099221,      -1.4027606,      0.50598097,      0.24700199,      -1.8532092,      -3.2106219,     -0.55382594,      0.55371118,      -1.2470284,     -0.18812904,       1.0952928,     -0.25839655,      -0.7967385,     -0.80216291,      -1.0274604,      -1.2945131,     -0.99041479,      0.75246631,     -0.29536582,     -0.03411496,       1.1788382,      0.45405954,      -1.7692511,      0.10901227,     -0.20590765,      0.18837635,       1.2148844,       1.4802558,     0.074934179,       1.4697483,     -0.66738839,      0.32481943,      0.42970373,      -1.0834442,      -1.6124748,      0.98919725,     -0.90000631,     -0.79488596,     -0.74446307,        1.541201,      0.40497741,      0.40744249,      0.50325919,     0.032776547,      0.66122766,       1.2173635,      0.99140669,     -0.35673792,      0.48406021,      -1.4275608,      -1.2569026,    -0.074044688,     0.060211922,     -0.24978413,      -2.4759694,      0.71163759,     -0.96101701,      0.86205275,      0.72285398,    -0.016454971,      -1.7422806,      0.20059729,     -0.41040487,     -0.44839926,      0.21136314,     -0.55954203,      -1.3732466,       0.7474311,       0.2557268,       2.3056511,     -0.63611236,      0.40922752,     -0.35492254,     -0.14080404,       2.1069338,     -0.19724541,     -0.83819117,      0.80429521,     -0.49235937,      0.51580145,       0.5506072,       1.8974956,    -0.020826119,      0.46214268,     -0.82128042,     -0.34905268,      0.10289397,      -1.5056714,      0.91264981,      0.24678693,      0.89911616,       1.3368239,     -0.30035241,      0.55628103,      0.63928121,       1.6401949,      0.39685167,       1.8893039,    -0.039006434,     -0.56398184,       1.6192088,       1.0629409,      0.72900025,      0.35209583,     -0.55289131,     -0.31772274,      0.40956475,      0.13677091,      -1.6179508,     -0.59539692,      0.30006813,     -0.26884504,      0.28096489,      0.95555871,        1.030579,      0.12857863,     -0.32004693,      -1.7583927,      0.76635823,      0.58239408,     -0.23519229,      0.73997622,     -0.51021434,     -0.89640853,      -1.7801672,       1.4655291,     -0.44589509,      0.15296389,       2.9190503,     -0.32797926,     -0.62187392,      0.57841995,       1.3243621,     -0.47371496,      -1.1452053,     -0.17612885,     -0.60177051,       1.1426766,      -1.8486169,       1.2190017,     -0.32278796,     0.027017202,      -1.2487876,       1.2815322,      -1.8813812,      -1.4439548,      0.82596586,     -0.72468908,       1.1944575,     0.077983223,     0.032718456,     -0.66440298,     -0.13915904,       1.0011935,     -0.32641834,       1.8239479,    -0.017043685,      0.86241726,     -0.10320391,       1.4623541,       1.6420437,      0.16867545,      0.99839597,      0.28867666,        1.035251,       1.1485231,     -0.77178203,       2.1069628,    -0.092119099,      -1.0328633,      -0.1738399,       2.1072983,       1.1733636,     -0.55211058,     -0.51999834,     -0.75090578,     -0.65790742,      0.26936327,      0.15428585,      0.32678024,      0.75801021,    -0.019819543,     -0.43525672,       1.4660778,      -1.2373629,     -0.57168679,     -0.38496518,      -1.4828039,      0.03862288,     -0.56786708,       1.3336916,      0.50796792,       -1.020019,       2.1434537,     -0.24847696,      0.43536679,       1.2210855,       1.2600937,      0.33726345,   4.8315267e-05,     -0.95688177,     -0.10922246,     -0.16451011,       1.6112856,      0.98288915,      0.49255344,      0.87031818,       0.8483699,     -0.14056918,       1.5467041,      -1.0974898,      0.24541811,      -1.0838961,       -1.116052,      0.68830863,    -0.082405991,     -0.33572025,      0.75405319,      -1.1190066,       1.0467354,      0.79486522,      -0.0376122,      -1.1338871,       1.1968248,     -0.68053794,      0.93561885,       2.2648973,      0.62316791,    -0.078537738,      -1.1418121,      0.69120785,     -0.47799995,      -2.5533987,       1.2304808,     -0.69084827,       1.0926863,       -1.837554,     -0.38607037,     -0.39050964,     -0.92755458,      -1.2277819,      -1.1327358,     -0.10614115,      0.39056676,      0.75595345,     -0.47194386,       1.3541939,      -1.0634775,       1.2682968,      -1.5835786,      0.12239908,     -0.83841135,      0.60704369,       2.0711892,   -0.0074245736,     -0.73978403,       2.3045513,      -1.2274982,      -1.0224658,     0.074545973,     -0.61714241,     -0.50908166,     -0.72112242,    -0.049577688,      0.70293922,     -0.36761283,     -0.12317822,       0.3371555,      0.88873177,    -0.093793309,     -0.92627602,     -0.58709507,      0.27745875,      -1.0752671,     -0.29993927,     -0.49948536,      0.92651968,     -0.22039704,     -0.20341543,      0.38759418,     0.077015783,       0.8217562,      0.31705866,      -2.3272911,     -0.61406822,     -0.17785521,     -0.18070228,       1.0327915,      0.41562328,     -0.94494547,     -0.40302047,       -1.127111,    -0.013968505,      -1.8123232,    -0.054282711,      -0.6920403,     -0.94380929,     -0.51543082,      -1.0756968,     -0.99775342,    -0.085632985,      0.63237576,      0.21125283,      0.83408281,      0.48865032,      0.24446378,      0.27372396,       1.0720101,      0.89144359,     -0.33306357,      -1.2220398,      -1.0072179,      0.61931536,     -0.46259778,     0.054325973,      0.44615492,       1.1646337,     0.066915068,     -0.31601681,       1.5851657,      0.15872976,      -1.0593496,     -0.81221497,        0.627322,       1.5940273,       1.4711237,      -1.1489496,      -2.0866016,     -0.49751324,     -0.43963196,     -0.19416595,       2.5885254,     -0.41084414,      0.96245232,     -0.11831627,     -0.59058588,      -0.7761378,       1.6527546,      0.47031246,     -0.55683386,      0.31198451,     -0.11131006,       1.1004671,      0.45667885,     -0.29563504,     0.079181645,     -0.40122205,      -1.1766121,      -0.3224191,     -0.68170307,     -0.56570064,      -1.3649052,    -0.076412909,     -0.43129419,      0.81474216,     -0.33900732,       1.8624423,       1.1434629,      -1.1756744,     -0.78279768,      0.56076444,      0.35045848,        -1.17369,       1.3138244,     0.038265842,       2.5460129,     0.027285109,     -0.52630689,     -0.10470269,     -0.98154899,      0.87169799,      -2.2752602,      0.84912273,     -0.83526987,      0.74311665,      0.97034947,      0.52302316,     -0.65759638,     0.022602995,      0.23906639,      0.76322302,     -0.20783619,      0.38072524,      0.23436427,       1.0281323,       2.5491264,     -0.94010304,      0.64795626,     0.031123985,      -2.3570451,     -0.51968449,       1.0446568,     -0.20997604,       1.1625151,     -0.20154431,       1.1061803,       1.1086129,      -1.5686483,     -0.28380607,      0.48356403,    -0.068985854,      0.20089941,      -1.3395767,     -0.79791884,     -0.27442505,     -0.16903147,      -2.2641885,     -0.62798373,     -0.80291676,       1.2083927,      0.90066547,     -0.77141545,      0.28153135,       2.7116072,      0.33725513,      -1.7864792,      0.17374958,    -0.060897755,      0.46576045,     -0.68923795,     -0.10866926,      0.69733951,      0.40597452,     -0.23069918,       1.0596761,       1.1160096,     -0.37219311,       2.6828317,      0.30867413,      -1.4117274,       1.1034697,      -2.2045959,     -0.42731933,        1.984043,      -1.3497721,     -0.71440918,      -0.1583799,      0.56122433,      0.32814949,     -0.95316754,     -0.96254787,      0.89054173,      0.21306447,      0.77742388,       1.2795138,     -0.62368735,       1.7300152,      0.76382847,      -1.7664612,     -0.64284809,        1.065426,       1.3074361,      -1.4358638,     -0.27405969,      -1.7984375,      -1.7893834,       1.9379583,      0.26739703,      0.34528176,       1.4950922,      0.31403599,      -0.7487116,     -0.53035523,        1.278595,       1.5378939,      -1.1370947,      0.75938046,      -1.3608741,       1.3254278,       -1.072809,     -0.07197797,     -0.43918947,    -0.041025587,        1.293416,       2.8886794,    -0.034398952,     -0.87422557,      -1.2906813,     -0.35679361,      0.31705881,      -0.3447525,       2.2333426,      0.37804445,     -0.60510898,     0.032486365,      -3.1753584,      0.57310338,       1.0557835,    -0.069996259,      0.06335041,       1.7260298,      -1.0956345,       1.1823759,      0.74380963,      -1.3172271,     -0.63322992,       1.2500037,      0.24817914,      0.57301216,     -0.41830903,       1.0801309,     -0.81613944,     -0.96237607,      0.40510555,      -1.0159621,       1.4264998,    -0.046582166,       1.2593862,     -0.20547565,       1.2255367,      0.94268321,     0.099730004,     0.034167854,     -0.55018309,     -0.96311627,      0.92877183,     -0.32186789,      0.61520073,      0.43843331,        1.047211,      -2.9542927,     -0.40672265,       1.1735063,      0.96067532,     -0.73241174,       1.9187729,       -1.105555,       1.6843584,     -0.85573319,     -0.80909189,     -0.87008025,     -0.71033517,     -0.75062955,      0.28152451,      0.22595003,     -0.94860105,     -0.82921572,      0.66101823,     -0.26072368,      0.59493759,     -0.58608917,     0.018419214,     -0.86129684,       1.1856918,      -1.2539537,      0.65771243,      0.77724018,     -0.52963154,       1.3651753,     -0.15530711,       -2.128718,    -0.012660317,      -0.3078687,      -1.7364644,     -0.10323234,      -1.0381937,       0.1642892,      0.72515575,      0.69937039,     -0.89154795,     -0.41812753,         1.95902,       1.2709753,      -1.2588609,      -2.6997263,      0.36367782,     -0.10296991,     -0.93361805,       1.8204696,     -0.11007016,      -1.3164497,     -0.23201758,      0.19459463,     -0.37302678,      -1.4149628,       0.3911208,     -0.75566354,      0.84298227,     -0.23278451,     -0.60870677,     -0.30545378,     -0.84699032,     -0.52354166,    -0.037472559,     -0.62409447,     -0.49034667,     -0.82366936,       1.7200447,      0.55464122,       1.7805534,      0.90846739,     -0.97000908,      0.29002225,       1.4550187,     -0.34905309,      0.68320223,       0.4176587,      -1.4116762,     0.033447101,     -0.14058287,      -0.0448692,      0.51313388,     -0.32935951,      -0.9308964,      -1.3494828,     -0.54173352,       1.2004254,   -0.0060976094,      -1.3431269,      -2.9135376,     0.042535255,      0.24484066,      0.74910922,    -0.092942468,     -0.48932427,        1.300786,      0.52806084,       -1.391181,      -1.4100408,      -1.8927645,      0.66702128,     -0.60174588,       1.0496615,      0.43517678,       1.5957895,     -0.41499022,      0.66471482,       1.3110811,    -0.067951527,      0.63141794,     0.081411148,       1.0646517,     -0.40431808,      0.10611575,      0.46492135,      0.40410496,      0.80756908,      -1.5991524,      0.38131608,     -0.95800006,      -1.2029827,       0.7681233,       2.3083362,       1.5907135,       2.3613924,       1.4526313,     -0.32078679,     -0.60089902,      0.48543302,     -0.65878563,      0.22133034,      0.38967578,     -0.44031162,      -1.8147284,      -1.6885662,       1.0747699,     -0.53016988,      0.15995708,      0.63698488,     -0.05001438,       1.0080349,     -0.80490543,       1.6054142,      0.53465668,     -0.46691119,      0.31034309,      0.12359957,      -1.6788656,       1.0204704,     0.098255141,      0.10989814,      -1.1303849,      0.40182487,        1.039288,     -0.50161984,      -1.8319141,       1.0192489,     0.030447498,      0.62963779,    -0.053146725,      0.58061554,    -0.011339252,     -0.28162396,     -0.17111004,     -0.35501298,      0.54647986,       0.3268524,      -1.7233288,     -0.74533909,       1.3007041,     -0.58930787,       1.0451162,     0.094582119,       1.8759073,     -0.78324665,     -0.35566305,     -0.65252734,      -0.1092786,       1.5048902,     -0.69846577,     -0.13024868,      -1.5342196,     -0.66349637,    -0.023509857,     0.071029443,      -1.6672491,       0.4720114,       1.1036334,      0.93495721,       1.2735151,     -0.68385349,       1.7627292,      0.82031786,      0.15490966,     -0.53849435,      0.15656002,      -1.6391434,       0.7617701,      -0.3832542,     -0.76665825,      -2.5418446,     -0.85455559,      0.38066027,    -0.067359625,      -1.0929247,       -1.353655,      0.67616401,      0.97113497,    -0.030528642,       1.2965226,     -0.94889653,     -0.06934561,        1.883146,     -0.11024638,      0.24244263,      -2.1667227,      0.61034038,      -1.5226857,     -0.35244797,     -0.84835093,       0.5727476,       1.2396531,    -0.086784389,      0.39209167,     -0.12905684,     -0.53243016,      0.39799308,      0.65841348,        -1.02338,       1.1171513,     -0.53691322,       1.6218304,      0.89559989,       1.4942979,       1.8074349,      -0.4438928,     0.028297793,      0.99934432,    -0.018047738,     -0.21922101,     -0.20993965,       -1.077856,     -0.20937063,       1.7740968,      -0.2018127,     -0.22657608,      0.74430491,       1.1939761,       1.3940424,       1.7489186,       -0.561629,      -1.7475661,      0.91243869,      0.65681397,      -1.8012101,      0.56138119,       0.6413273,       2.7207514,       0.5780559,      -2.8945983,       1.2045334,      -1.3638353,      0.52009403,       2.3998416,      0.29329484,      -1.0286798,      0.30490856,     0.016106266,     -0.19413539
+2010Y,       1.0828479,     -0.27329051,     -0.62217353,     -0.25064677,     -0.10910728,      -1.4108451,       1.5764732,       1.9450686,     -0.69746397,       1.4242492,     -0.17945283,     -0.13263315,     0.080121824,     -0.79764685,     -0.26288007,     -0.95702143,     -0.60741672,       1.0200477,     -0.65272058,      0.92996895,     -0.13451893,       2.4356368,       0.2984635,      0.29764754,       1.0234475,       1.6482623,     -0.49255189,     -0.74602474,      0.82682702,     -0.55093791,      -1.5801157,     -0.18913475,      -1.0014646,     -0.43384957,     -0.56303953,     0.026586802,       1.3837715,      -1.1059647,     -0.50566067,       1.0788214,     -0.51131821,      -0.3177456,     -0.44648945,     -0.82641015,      -1.6851289,     0.068930751,      0.15527111,      -1.0692109,     -0.53130603,      0.32639216,       1.5445019,       1.4268467,      0.48431225,      -0.8565084,     -0.74844317,    -0.048579753,     -0.84761436,     -0.81013564,      0.10939327,      0.65937188,       3.4195911,      0.21048668,       1.8282811,    0.0041762609,      0.75987676,      -0.1718432,      0.19959653,      0.52969657,       1.1105078,      0.19470287,      0.49413909,       0.1419757,        1.482253,       0.3395198,      -1.6666337,      0.91062846,      0.78593174,     -0.86897224,      0.19862746,       1.5534711,     -0.61927465,     -0.89883393,      0.74654382,     -0.88550573,     -0.15151632,      -1.0097717,     -0.33704268,     0.098113084,     -0.39055817,     -0.19507904,     -0.72819162,     -0.13219158,      -1.5777934,   -0.0041272296,     0.036887061,      -1.2744783,       1.0702588,       1.7638722,     -0.71277208,      0.83549748,      0.18041043,      0.70981758,      -1.9937429,     -0.12383334,     -0.67648078,     -0.15774169,      0.16902748,      -1.7862239,       2.0898457,     -0.44301399,      -1.4434374,       -2.113362,     -0.10435044,       0.3236756,       1.1194487,      -1.3910032,     -0.34179782,     -0.10559915,     0.064448656,     -0.55685892,     -0.13633553,        -1.02965,     -0.38658173,     -0.54204477,      -2.8593047,      0.29927428,      0.59103669,      -2.2539647,      0.87715315,       1.0124133,      0.49773062,      0.28377728,      0.18248581,       1.3276015,     -0.69134895,      -1.6281781,      0.86276109,      0.36476574,      -0.5320811,      0.17178953,     -0.56389838,     -0.92439378,       -1.191456,      0.91760494,     -0.16217699,       -1.027739,      0.65422472,       1.7204181,    -0.040601027,      -0.9177526,      -1.1041595,     -0.01094527,     0.050614488,      -2.1234683,      -1.5806894,       1.3071252,      0.17164447,       1.5155753,     -0.11119365,     -0.37540639,      0.70245589,      0.38216311,       1.9871084,      -0.1889703,     -0.52641503,     -0.48917172,      -1.7534202,       1.6118464,      -0.7179413,      -1.2307143,       1.8464371,      0.70567536,     -0.77881781,       0.9132079,       1.4192826,     -0.56352077,      -1.0925307,      0.10675513,      0.27474122,     0.029939301,       1.6835621,     -0.25387316,     -0.93981474,     -0.50698494,     -0.72415348,      0.25566776,      0.56303496,       1.0434721,      -1.5308982,     -0.73914621,     -0.11953383,       1.0421444,       1.1699214,     -0.60767997,      -0.1744689,     0.042353409,       1.0621635,       -1.533205,       1.0797532,      -1.6169564,      -1.4478352,      0.32467891,      -2.0007749,       1.6795337,      0.40703003,     0.060178185,   0.00023040686,     -0.12686733,     -0.80010653,      0.82257698,     -0.47302361,     -0.69970527,      -1.1055122,    -0.082554674,      -1.1296443,     -0.31028557,     -0.49359927,    -0.049978019,      -0.5612468,     -0.46721417,      -1.0711219,      0.45084805,     -0.29231729,       1.4781129,     0.018885648,     -0.65548302,      -1.0870232,      0.35199966,      0.24009271,      0.29882357,      -2.2064121,       1.4387872,      0.89237975,       1.8092752,      -1.1347975,       1.0004046,      0.32171553,       1.0065233,      0.20747391,      0.89682323,       1.2708372,       -1.100364,      0.73958536,      0.83007589,     -0.69326212,     -0.78918296,     -0.81803714,       1.2440686,     -0.28385109,       -1.004271,     -0.87250508,      0.18680041,      -1.7426267,     -0.13281089,      0.54482929,     -0.63058529,      0.61282214,    -0.077282872,      0.60580409,    -0.055386204,     -0.63392602,     -0.22275489,       1.3560876,     -0.42964723,     -0.46778694,      -2.2403539,     -0.94991501,       1.2605884,      0.23969372,      -0.5625148,      -1.3115609,      0.95728166,      -1.5594636,       1.4547479,      0.39011238,      0.98857698,      -1.5843964,     -0.61237946,     -0.65096895,      -1.1953782,     -0.78610917,      -1.0362951,       3.7828534,      0.30306556,      -1.8506891,       1.0838836,      -1.6232437,     -0.79558139,     -0.43920862,      0.88375464,      -1.0056914,     -0.12597182,     -0.17752073,      0.58062441,      -1.0220747,        -1.15606,      0.94396638,        1.959738,      -1.0813538,       1.6392409,     0.018464914,      -1.1987581,     -0.52375285,      0.27347476,     -0.12720683,        1.648176,      0.41776691,      -1.2022419,      0.82747831,      0.11099639,      -2.3337529,      0.95869076,      -1.2710832,      0.39835971,      0.86270226,     -0.91953729,       0.6651358,     -0.26463599,      -1.0194359,       1.0409645,     -0.91774349,        -1.05607,       3.0342794,     -0.35961779,     -0.58782199,      0.74080817,      0.89286086,      -1.3106078,     -0.66321194,     -0.57927285,      0.31416258,      0.43752404,      -0.7591079,     -0.43253193,     -0.17947306,     -0.30497237,       1.9766148,      0.21346255,       2.0716664,      0.30129772,      0.82806608,      0.45622998,       1.1856818,       0.3498512,     -0.71529935,     -0.45516612,      0.59666504,      -1.4880689,     -0.54786731,       1.0783516,     -0.71718121,     -0.92958808,      -1.2137057,       2.4221968,       -1.127648,       2.8710425,     -0.73345678,      -1.2066562,      -2.0487368,      -1.1255384,       1.0323882,     -0.30267898,      -1.3237972,     -0.21334487,      0.70808774,     -0.24748814,     0.077305408,      0.67993757,      0.76083337,       1.5093985,     -0.24416628,      -1.6462828,       0.2800059,      -2.0420651,       1.8608353,     -0.13679293,      0.66449353,     -0.37926752,       1.0037481,      0.15263473,      0.19078033,     -0.21983571,       1.3455434,     -0.56672258,     -0.96947182,       2.2196291,      -2.1275361,      0.80820998,     -0.64270684,     -0.56033131,      0.24717959,      0.82821076,       1.6777867,     -0.55597905,     -0.29576352,      0.60266172,    -0.036470813,      -1.0948616,       1.6479773,      0.34077339,      0.41602573,      0.41010211,    -0.079907714,       1.3962656,      0.17455543,       1.2797423,      -1.1517464,      0.35659802,       1.7556878,       1.0580299,       1.7758157,      0.46636012,     0.033553402,     -0.30594988,       1.0613391,     -0.83944965,      0.32857481,      0.63079904,       1.0326541,      -1.0876794,      0.68447251,      0.08364858,     -0.99123827,     -0.93004805,    -0.097912778,       1.0976884,      0.50007202,      0.46194128,     -0.40928156,      0.43408003,         1.24736,     -0.71892771,       1.2303679,     -0.47851375,      0.02922489,      0.57126793,      -1.6896463,      0.23900569,      0.65128211,      0.25422724,       2.3006526,       1.0473307,      0.30379319,       1.0318622,      -1.9548812,     0.080855487,     -0.18365292,       1.2644039,     -0.67016785,      0.68513708,     -0.47262472,    -0.082880458,       0.4448671,       0.2952569,     -0.11920467,      0.22198735,      0.85258679,      -1.5662549,      -1.0753787,      0.66965644,     -0.25525453,       1.0960622,      0.31469277,      0.86073165,     -0.37001808,       0.2281294,      -1.9374323,      0.78400194,     -0.19972868,     -0.63715079,     -0.38448928,     -0.92500159,     -0.48705078,      0.12736526,      -0.1535393,      0.17076165,     -0.34339177,     -0.51849855,     -0.82422003,    -0.086742875,      0.32855876,      -1.4003078,       0.3563547,      -1.1242447,    -0.097573238,     -0.20435905,      0.34687191,     -0.14064776,      0.46686441,       0.4795053,       1.9342039,      0.22482552,      0.49900804,      -0.1186742,      0.23392357,      -1.2060045,        1.172083,        1.038319,      0.38575709,      -2.0044019,      0.87525769,      0.69370895,       2.0629681,     -0.30125423,      0.53475244,     -0.29827257,      0.72713621,      0.92226463,      0.35608955,      -1.0394046,      0.38997961,      -0.4373664,       1.1338097,      0.18655815,      0.21178556,      0.27353917,       1.8006406,      -1.6471784,      -1.5350539,       0.2678707,     -0.23346898,      0.33595996,      0.46255727,      0.31381105,      0.18221425,      -1.2949606,     -0.46383462,     -0.37266197,      0.24576523,       1.7701727,    -0.057553571,     -0.34040527,       1.0701591,      0.94228686,     -0.15670229,       0.6045216,       1.2006074,     -0.76561698,     -0.80565042,     -0.11386569,      0.19551507,      0.41841459,     -0.78435593,       1.1420005,      -0.1187807,       1.1429363,       1.1737508,       1.1186182,      0.48574138,      0.40392974,     0.047529227,     -0.59779371,      0.72543079,    -0.038610691,      -1.6625498,     -0.91359174,      -1.1557524,     -0.48322085,      0.38162565,      0.53328604,      0.93710676,     -0.43787619,      0.40249642,      0.53945916,     -0.52055052,     -0.94615119,      0.65080201,       1.6100892,       1.2196628,     -0.17255471,        0.644921,     0.042030942,       1.2906049,     -0.50352604,      0.62456369,      0.55354683,     -0.71169706,    -0.044076643,      0.36725125,     -0.61969185,        1.105909,     0.086565547,      0.57629837,       0.3944964,     0.073950531,      -1.0803498,      0.71317505,       1.0628527,     -0.66352174,     -0.89760936,     -0.10662133,       0.1304553,       1.3999247,       1.3736703,      0.24050891,      -0.3467234,       2.5312672,      0.42602602,      0.31236753,      -1.1591711,      0.51105802,     -0.42935865,         1.00677,      -2.4495982,     -0.68107762,        2.502229,       -0.141036,   -0.0055152585,      -1.2842484,      -1.4378942,     -0.35850845,     -0.17929393,      0.79857682,     -0.31261756,      0.16157543,    -0.042508388,     -0.21929175,     -0.72867907,       -1.178556,       1.4405238,     -0.12916805,      0.13334882,     -0.55576261,       1.1369289,      0.87837037,      0.54742053,      0.23965211,      0.52447996,       1.1956474,      -1.1768463,     0.035912837,      0.11718189,      0.96056967,      0.74183664,       1.6631246,       1.0729412,     -0.18213684,      -0.1397981,      0.28599141,       1.1455962,        1.704014,      -1.0395109,     -0.65569926,      -2.2882603,       1.2652889,     -0.42184421,     -0.52936673,      -1.1188516,     -0.15622145,     -0.80864855,     -0.98427177,      0.51918276,       1.6583254,       1.8116632,      0.34834926,      0.37899148,      -1.1351855,      0.29807339,       1.3820688,      -0.9960267,      0.50581419,      -1.7237907,       1.9362057,       1.0871929,      0.60889195,      0.88861668,      -1.7475116,    -0.012852327,      0.33965389,       1.1990097,    -0.086427698,      0.76917423,     -0.87067949,     0.016673086,     -0.59764634,      0.89802509,       0.9675328,     -0.40354562,     -0.19800795,      0.63187275,      0.86821657,     -0.47673349,      -1.6195462,      -1.4320525,      -1.0040765,     -0.58662396,     -0.48162101,       1.4569132,       1.1835808,     -0.33103521,     -0.42587387,      0.46192125,       0.2903358,      0.44304431,      0.11447026,    -0.057005974,     0.093152854,     -0.22736379,     -0.91105589,     -0.32756179,      0.37924709,     -0.13586719,      -1.4573685,     -0.17412125,      0.38888476,      0.16440578,     -0.49082136,     -0.79250127,      0.19801155,       1.3586831,       1.1034872,      -1.5306867,      -1.3194432,       -1.130081,      -2.2050129,      0.52130369,     0.089742868,     -0.39748089,     0.027271777,       2.1027455,        1.784389,     -0.94633843,     -0.68004727,      0.24985286,      0.75338289,      0.64211643,      0.13285481,      -0.2076741,      0.76872009,      0.57655804,     -0.83585569,       1.0318322,      -1.1068848,     -0.56322065,      0.96956117,       2.1443646,      0.40059079,       2.1326161,     -0.27081571,      0.61903933,     -0.67692424,       1.1492672,       1.3269455,       1.4413402,     -0.23410491,      0.38432872,     -0.67561583,       1.8682502,        -1.95027,    -0.064561792,      0.61907749,     -0.47617977,     -0.23559185,     -0.84331102,     -0.57479425,      0.71185524,     -0.18315696,     -0.22866994,      0.86719517,      0.22583978,      -1.7079799,     -0.26529068,       1.5040076,       -1.004251,     -0.52871886,       -1.079604,    -0.016488564,       2.2358705,     -0.98775234,     -0.11520023,     -0.44905017,      -0.8573488,     -0.49415098,      0.45088269,     0.010300909,     -0.50453805,     -0.25250794,      0.60916279,      0.35370299,      0.76834433,       2.8200898,      0.51804199,       1.1514257,      0.38706246,      0.32833077,     -0.16031834,      -2.0686048,      -1.8220992,      -1.1360279,      0.47126326,     -0.98673437,      0.04234578,       1.2157185,     -0.57587657,     -0.95050221,     -0.66736617,      0.64581658,      0.94857326,     -0.84965353,      0.60889939,       1.3410871,        1.533661,      -0.7775517,      0.71999926,     -0.49641952,     -0.65178808,      -1.1769727,      0.98750933,      -0.4823212,      -1.2716181,      0.76697663,        0.386839,      0.13654127,      -1.2875253,      -1.3884559,      -1.1009527,      -1.2733353,      0.89303006,      0.99975627,      0.88469598,      0.74657048,      -1.0644821,       1.6487568,     -0.35136365,     -0.16184931,     -0.21385387,       1.1733209,     0.091674088,      -1.3104486,     -0.88573703,     -0.31292792,      0.38778535,        1.944917,      -1.1569446,       -1.670049,      -1.1754707,      0.45375937,     -0.17351511,     -0.84479971,      0.36543259,      -1.1717563,     -0.39065414,       0.9712505,      0.94299932,      0.95848199,       1.3670573,     -0.23347111,     -0.37387038,       -0.874842,     -0.64643704,      0.15781611,       -3.482773,     -0.12240085,      -1.8610329,      -1.3486189,     -0.66265919,      0.10266012,     -0.84677176,     -0.89122709,      -1.3008161,      0.78846441,       2.2539352,      -2.0468263,     0.061359777,      0.48378916,     -0.12081453,      0.45468047,      0.21721546,      0.58172033,      0.47646323,     -0.78708564,     -0.30546107,      0.83069217,      -2.2291126,      -1.0959418,       1.5061784,      -1.2442237,        1.240797,    -0.018891952,     -0.97250656,     -0.71397236,      0.73948557,      0.50192458,      -1.4845335,      0.37790552,      0.14691888,      -1.2764116,      0.60348822,       1.3025103,     -0.47717799,      -0.4628155,     -0.34765189,      0.79030845,      0.82259214,     -0.67887119,     -0.89194314,        0.443333,      -2.2725584,     -0.54127387,     -0.41911896,     -0.18018001,     0.037938591,     -0.65533028,      -1.0408694,      -1.9263281,     -0.60140354,      0.25773427,     -0.54895923,      0.78322812,      0.48629741,     -0.33796035,     -0.58308485,      -1.0634527,      -0.2688928,     -0.26649794,     -0.65841787,       1.4572431,       -2.157763,      0.94439224,      0.31685425,     -0.78835684,      -2.1507484,     -0.56007144,      -1.0814636,      0.73645902,      0.26030771,     -0.56249752,     -0.11401072,     -0.30072741,     -0.35001926,      0.69834552,       1.4156502,     -0.12898562,      -1.0020532,      0.79104656,     0.076890953,     -0.29914394,     -0.65399317,     -0.55064251,      0.11856723,     -0.88272019,      0.38554457,      -0.2852998,      -1.1595119,      -0.2731306,       2.3302835,    0.0064145466,      -1.6163606,      0.76713635,     -0.11592293,     -0.42071948,      0.49409225,      0.78788936,     -0.30616077,     -0.63448465,      -1.2604879,      0.51887292,      -1.1591443,     -0.62375124,      -1.5425012,      -1.0914594,      0.81181845,    -0.054286882,      0.61401161,      0.28788193,       1.3328384,    -0.058027515,      0.41613721,     -0.46169721,      0.94214441,     -0.87838794,      0.50408291,       1.2447005,      0.54400513,     -0.82445313,     -0.81366007,      -1.7287214,       1.1561614,     -0.53163138,      0.44868237,       -0.372924,      0.46453696,     -0.52435191,     0.010491979,       1.9629086,     -0.71702831,     -0.52782219,     0.035351792,      -0.1476092,      -0.6666997,      -1.8323754,     -0.72644629,      -1.6234614,      -0.3429467,      0.60884842,      -1.2006263,       1.7519184,     -0.28935263,      0.28411237,      -0.1068801,      0.16216399,      0.88521098,      -0.7436357,     -0.99694796,     -0.03059152,       1.1411924,     -0.61208835,       1.3774014,      0.39997263,      -1.5597955,      0.28605348,      -1.3065047,     -0.84375604,      0.44882625,      0.22158535,      0.35345721,       1.9243092,       0.1913127,        1.292019,      -1.0321006,     -0.13571437,      0.95100259,       1.6369964,       -1.180964,     -0.42748937,    -0.073472902,     0.097291484,    -0.087118658,      -0.2772347,      0.63615704,      0.55095968,      0.31379782,      -1.9897888,     -0.85050732,       2.0474232,      -1.7487673,      0.54913309,      0.73774168,       2.5950632,     0.089874169,     -0.37522059,   -0.0043747957,     -0.80207273,      -1.9856119,     -0.36593377,       1.3442552,     -0.98769703,     -0.68351345,       1.4265366,    -0.023807877,       1.4741971,        2.759896,      0.37936542,      0.32484147,     -0.77533608,    -0.053393441,      -1.1876679,     -0.21425561,     -0.43607177,     -0.55761702,      -1.1395219,      0.91718674,      -0.9048155,      0.34553126,     -0.43598122,     -0.43251899,     -0.86413407,      0.59311573,     -0.67841832,     -0.72085459,     -0.58820646,      -2.4347062,     -0.24511695,     -0.14514099,      0.69694583,      -1.2405023,       1.6970071,      0.73229695,      -1.6552572,      0.51075659,     -0.85885747,     0.033860973,     -0.27869788,     -0.49599979,     -0.38257579,    -0.084723984,     -0.84866726,    -0.089489311,      0.68078077,      -0.7896079,      -0.8259462,     -0.19222099,      -1.1729168,       1.6606516,     -0.49575801,        3.061479,      0.27074673,      0.51039524,       -1.750401,       1.7465253,     -0.41022604,    -0.090160147,      -2.1053443,     -0.52968857,      0.31750185,      0.43051261,    -0.073006065,      0.29191925,       1.2206068,      0.23066408,     -0.67506553,      0.23935036,      0.14156866,     -0.86700531,     -0.36877416,      0.74166292,       1.5418921,      -1.9827724,     -0.68882265,      0.44367215,     -0.38115632,      -1.0750125,      -1.7772315,      0.48530496,      -1.2493829,      0.37351301,      -1.4938824,      -1.5709216,      0.04063096,        1.410816,      0.33426124,      0.36875669,     -0.89720733,      0.94481548,      -1.3376733,      0.68154668,       2.1578082,       -0.221966,     -0.19420596,     -0.18851319,      0.76226813,       1.8808768,      0.56630407,      0.19552515,       2.0659209,      0.39302758,       1.7646168,       1.4575714,     -0.54199726,      -0.8475261,      0.81027809,       -1.009195,     -0.17948029,      0.16388766,      -1.3515908,       0.4555534,     -0.80122573,      0.63772381,     -0.55495964,       1.8474767,      -1.0435857,      0.79890299,         1.47849,       -1.132561,       1.5163949,        1.408594,       -1.083195,     -0.23374664,     -0.93219779,      -1.1032218,     0.055183465,       1.6395829,     -0.47784515,       1.8687319,     -0.87022892,      0.20317923,      0.17041016,     -0.17889217,     -0.37773997,     -0.42881787,     -0.55773457,      0.17977016,      -2.3964037,     -0.61278058,      0.23389082,      0.46595686,     -0.29109306,       -0.403161,      -0.7173637,       1.2460259,      0.84415303,     -0.98708749,      0.91294872,     -0.75378084,      -1.3061733,      0.47474474,      0.41853348,      0.49895199,      -3.0541596,     -0.29800314,      -1.0296762,      0.49814091,      0.44876771,      0.17814156,     -0.62706182,      0.53795836,     0.086404189,     -0.29684765,   -0.0039159704,      0.13480611,      -2.0995297,       0.5584927,      -1.0300107,      -1.2787541,      0.26257408,    -0.059677719,       0.1592039,      0.74595535,      0.91464048,     -0.17814242,       2.7799536,       1.2582684,      -1.4966929,      -1.2338308,      -1.6621213,     -0.27229354,     -0.37295674,     -0.17456472,       1.5068374,      -0.3475257,      0.38135222,     -0.15185116,      0.29827997,      0.10066556,     -0.41415045,     -0.55680661,       -1.055633,      -0.9314852,      -2.2180943,      -2.1024112,      -1.6886607,      0.20092621,     -0.58964815,       1.1467967,       1.4151506,      -1.0249829,       0.1083415,      0.35451059,     -0.55776695,      -1.0907954,       0.9490701,     -0.61671231,     0.097144879,     -0.21576808,     -0.53775555,    -0.039376547,      0.57514795,       1.2460291,     -0.14187008,        2.027569,      -1.1686101,     -0.69593954,     -0.83795171,     -0.99272018,      0.93347192,     -0.64846764,     -0.96745718,       1.0784713,     -0.23849499,      0.22377631,      0.19451459,      0.61309847,     -0.39999935,      0.38596091,      0.23448454,        0.644128,        0.700208,       1.4062422,      0.23734655,      0.49202929,     -0.32674899,       1.8965858,     -0.73148179,     -0.11433185,      0.48221609,     -0.39384854,      0.56112091,      -1.3976398,      0.44310013,     -0.87385093,       1.2187266,     -0.70806531,      0.53876019,      0.94512367,     0.061097348,      0.59584134,       1.3888614,      -0.3884687,      0.46268793,    0.0034113657,     -0.25373579,    -0.008105951,       2.1400991,      -1.6429203,      -1.7207646,      -1.5993739,      0.58274678,       0.1523277,      -1.4036326,      0.29087293,      0.31571437,       0.4314914,      -1.4501551,      -1.3065451,      -1.2293859,      0.35597087,      0.99470617,      0.99525956,      0.41583984,      0.29443174,     -0.49472361,      0.53091686,      0.76502346,      0.30878221,      -1.6017736,      -1.2202806,       2.6819869,     -0.34917191,      -2.7608802,      -1.1747852,       1.6473785,      0.62663375,      0.95706369,      0.66813487,      -1.1389827,      -1.9748258,      0.90752439,      -0.3647219,       0.7840787,      0.49728322,       1.9367346,      -1.1955652,     -0.11528669,      0.90423493,      0.57423864,       1.3442029,     -0.44663494,     -0.28124373,     0.095377734,      -0.7726816,      0.70859058,       0.1801553,      0.43726759,      0.81512748,       1.1663161,     -0.26701786,      -1.0470658,      -1.3781016,     -0.19264995,     -0.86616653,     -0.15343866,      0.54748293,      0.87762156,     -0.94476423,      0.14047306,     -0.68087996,      0.62050613,    -0.001125749,      -2.2113929,      0.85417069,    -0.084380078,      0.21889291,      0.85730476,     -0.20213788,     -0.49627048,     -0.27408073,      -1.1648564,     -0.68126235,      0.58194392,     -0.70918936,       1.1117687,      -1.4044572,      -0.3329387,     -0.49819343,      0.49336536,     -0.23318422,     -0.50171944,      0.14254125,     -0.90057761,     -0.29890394,       0.2357267,      0.35135174,     -0.56278442,     -0.35382662,      0.46184539,     -0.49105015,      0.30146596,      0.66799068,     -0.41079848,    -0.056456143,      -1.0807643,     -0.37677241,     -0.28771721,     -0.98553902,      -1.2568901,     -0.95114308,      0.24234883,     -0.58401963,     -0.71780195,      0.28268685,     -0.80684423,      -1.0029003,      -1.7109351,      -1.3113569,       2.2925922,       1.4395627,      0.82157851,       3.0648509,      0.69178529,      0.49181797,      0.49903822,      0.45962159,     0.040176084,      0.29618959,     -0.77723549,      0.74919678,      0.19964843,       1.8750975,      0.62328207,        1.241643,       1.1835536,       1.5968808,     -0.82405685,      0.47153531,     -0.72613161,       1.2920752,     -0.60846477,      0.68295933,      0.34468112,     -0.66266819,     -0.20644133,     0.065173063
+2011Y,      0.77874908,      0.37429338,       2.2840714,       2.3637129,     -0.40848089,     -0.61390802,     -0.79759604,     -0.40743217,      -0.3255201,       1.6470353,     -0.61555858,     0.020306887,      0.31220752,       0.5393948,     -0.90606726,      0.58490788,     -0.20708587,         0.61152,      0.73744805,       1.0417608,      0.46239379,     -0.35876559,      0.60127282,     -0.58414743,      0.65797847,     -0.95581468,       1.1994363,       1.7248005,     0.041190767,      0.60275419,     -0.69493888,      -1.9424066,      0.66771484,      0.93219568,     -0.48443442,       -1.514993,     -0.16980024,      0.96727957,      0.69799517,      0.13077897,      0.57903818,     -0.96724117,       -1.416675,     -0.14793655,      -1.8359845,      -1.4711252,      0.99984938,       -1.655232,      0.49361116,      0.38709373,      -1.5463509,     -0.84517096,     -0.89697554,      0.18091181,      0.51447861,       1.3061047,     -0.48096078,      0.77987212,     -0.84730205,       1.5845173,      -1.5897395,      -1.2261798,     -0.44056904,     -0.12107519,      0.66002908,      0.77193254,     -0.73048937,      -1.7429733,    -0.076713416,     -0.42037556,     -0.26108551,     -0.87193295,      0.83753316,     -0.93681164,       2.4224926,       1.0382795,      0.71484417,       0.7488186,     -0.86615302,      0.26998933,     -0.79733793,     -0.36468644,     -0.28271949,      -1.2918144,       1.0272113,     -0.27163695,      0.81365602,       -1.048205,      0.38643526,     -0.85796314,       -0.793589,       1.2298191,     -0.78375643,      0.94564593,      0.22883288,     -0.76243349,      0.12393675,      -3.4387907,      -1.6423173,     -0.26081384,       0.5763616,     0.059978022,       2.0640041,      -1.0264038,    -0.014444311,     -0.80269602,     -0.49371659,      -0.3300351,      -1.2156078,     -0.42887932,     0.085741589,       0.7857038,       1.4628181,     -0.84527818,       1.3510597,     -0.77163871,      -1.1974008,        0.132186,      -1.6199721,    -0.044093752,      0.57943364,       1.6224514,     -0.87860148,     -0.83147089,      0.14348979,      0.90393106,     -0.32348923,      0.65621935,     -0.18536152,       1.1546462,      0.94292577,      -1.0387888,     -0.28753495,       1.0005969,      0.64100889,      0.70373419,       -1.714393,       2.2279235,     -0.23601683,      0.93567567,      -2.0172482,      -0.1756665,      0.91576473,     -0.15165118,     -0.12024258,        2.000422,     -0.51661573,      -0.7766461,      0.48776267,        1.938671,    -0.079253635,      -1.3344557,      0.66649463,      0.90038156,     -0.50111482,      0.81804058,     -0.36099294,      0.21790189,   0.00022475759,      -1.8005087,      0.97877883,      0.12562442,      0.65579842,    -0.025372545,     -0.24895117,       0.3815452,       -1.201808,     -0.33934312,     -0.46982508,      0.35174174,       1.4249345,     -0.46546687,       1.1442542,     -0.10278716,     0.063714284,      -1.5694692,       0.2274552,     -0.38558317,       1.0195789,    -0.092028553,      -1.2599085,     -0.31646215,        0.891756,       -0.917894,     -0.41841228,      -0.2389967,       1.8384098,     -0.26411023,      -1.0384006,      0.69213435,      -2.0514867,      0.34671264,     -0.09047665,       1.3551759,     -0.68933777,      0.30927723,     -0.27196981,      0.10613888,    -0.036377569,     -0.80273553,       0.4438063,      0.14275247,      -1.8006184,     -0.36549916,     -0.59701006,      0.59533626,       -1.980418,       2.2674829,      -0.2528519,       1.0168969,       1.3154496,      -1.8575111,      -0.8165125,      0.80017385,      0.28878476,      -1.4364392,     0.067653442,     -0.99245948,    -0.021852585,     -0.70372101,     -0.41414544,       1.7866674,     -0.19401816,       1.0640202,      0.55302132,      -1.2216014,      -2.7864665,     -0.37181831,      0.37472274,       1.9500039,      -1.0688201,      0.54293882,      0.50640447,    -0.010505702,      0.55832703,      0.42342122,     -0.31150588,     -0.94241747,     0.058884968,      0.34236068,     -0.85441266,      0.86326229,      0.11105817,      -0.8258973,      0.58529892,       1.3748182,       1.1685169,     -0.28997376,     -0.43670492,       1.7234958,      0.50726165,      -1.5809963,      0.79487079,       1.9559265,       1.1998811,      0.77984542,     -0.98240728,      0.92521191,    -0.071761628,      0.83449818,      0.50980156,      -1.3591491,      -1.4766036,      0.58445719,      0.94809121,     -0.81105194,     -0.88914073,     -0.57493261,     -0.70213076,      0.12437528,     -0.76716077,       1.3903135,      -2.4271845,      0.18740021,      -1.3220331,      0.82823908,    0.0076722962,       0.7088654,      -1.1399234,    -0.071242664,      0.68817727,      0.93233368,       0.5546947,     -0.25628027,       1.3563361,      -1.2706103,      0.77376145,    -0.037014995,     -0.86889179,       1.8008071,     -0.11043716,       0.6977595,      0.79265561,       1.3927643,     0.024788019,       1.4806905,       1.6088581,     -0.91009226,     -0.50446376,      -1.6529281,      -1.8547118,     -0.70546305,      -2.1146338,      -1.1389677,       -1.459073,       1.1430658,       -1.350624,     -0.80792663,       1.2766291,     -0.40799061,      0.92374671,      -1.4382176,      0.49354237,     -0.13042556,     -0.11118205,       1.3173438,       1.0129973,        1.521189,     -0.19273535,     -0.27255519,     -0.40377076,      0.31697094,      -1.1760295,      -1.9188368,      0.58305023,     -0.17049218,     -0.88475411,     0.089555402,        1.364169,      0.60936985,      0.95993874,     -0.43843256,      0.85637228,     -0.84422517,     -0.53696251,     -0.26073101,      0.64615409,      0.12685014,      0.16377708,      -0.2719453,     -0.33392434,      -1.6089393,      0.80355946,     -0.47922008,        1.366261,      0.99225144,      0.45390977,       -1.897939,     -0.97322427,     -0.73468222,       0.8855547,       0.1629051,     -0.21209794,     0.034106414,      0.12585707,       2.0659704,      -0.1554857,      0.25006406,      0.29384058,     -0.64786746,      0.18955884,       0.5817585,      0.34814075,      -3.4096455,       1.3022552,     -0.61723127,      0.46282524,     -0.71334731,      0.56793222,      0.45002206,     -0.32210695,     0.048145409,       2.0707122,     -0.37671387,     -0.25807561,     -0.73554257,     -0.26372447,       0.1282302,      -1.1365065,        1.777121,      0.29156944,       1.5505535,       1.1337016,     -0.56047807,       -1.247863,      0.16356134,      -0.5421975,    -0.074762101,     -0.13972089,       2.4943054,      0.75014375,      0.39935698,       1.1021288,     -0.72179959,      -2.1541091,      0.64144625,      0.58724524,       1.4695335,      0.10226838,       1.4323068,       0.5408584,     -0.65193488,       1.5141853,      -0.1764289,      -0.6695805,      0.34635917,      -1.2409579,     -0.61926966,      0.53964318,      0.92611277,       1.3477675,      0.73082848,       1.9360021,       1.0767795,      0.82899668,       1.7051217,       1.0175339,     0.094869553,     -0.95038127,       1.1421161,     -0.47513123,      -1.4421248,      0.94794811,     -0.68985539,       0.8559074,       0.2461487,   -0.0064627359,     0.024224259,      0.43306088,      -1.9531933,       0.2650361,     -0.61296242,      -1.9059418,      -2.6396123,       1.7681634,    -0.085020074,      -2.0275518,     -0.17136726,     -0.96633596,       1.9881591,      0.98632354,      -1.2727598,      0.39384314,      0.44258433,     0.057995074,      0.43004072,      -1.6679202,      -1.2681184,      0.10865305,       1.0613642,     -0.37648486,     -0.77791001,       1.2085337,      -2.1753728,     -0.21964107,      0.65126391,     -0.34156311,      -1.8732708,      0.59805649,     -0.54287269,     -0.41990387,     -0.20415867,     -0.93839171,     -0.95075865,    0.0010094429,      -1.0838204,       1.2733853,      0.50479268,      -1.0147701,       1.1580048,     -0.19372257,       1.1490131,      0.58847652,      0.32982578,      -1.2412782,      0.34682086,     -0.46232097,     -0.53445791,      0.18568107,     -0.14522746,       0.3839998,      -0.1002936,      0.78368929,      0.36002867,       2.5176145,     -0.76098921,      0.32814669,      -1.3503982,      -1.4428446,      -1.5645967,      0.61937381,      0.74077864,      -1.6648988,       1.2144862,     -0.36220919,      -1.1886659,    -0.035700612,      -1.6137396,     -0.12914782,     -0.15940622,     -0.10548555,      0.27946073,     -0.32223388,     -0.54261183,     -0.29347956,      -2.4266603,      -0.6956519,      0.62660034,     -0.73690266,      0.50791732,     -0.13217213,     -0.21036656,      0.37778698,       0.9183532,    -0.067895781,       1.2049646,     0.095156391,       1.1334776,      0.91723487,     -0.54636466,       1.5571989,     -0.83721657,       1.3763521,       1.4432513,       0.3906922,      -1.1026538,     -0.29248668,      -2.9448851,       3.2760123,      0.53941086,      0.83024679,      0.95780866,     -0.45023367,      0.86891428,         0.31037,      -2.6399966,     -0.45403561,    -0.053083885,     -0.11423914,     -0.62193941,      0.37535695,       -1.042813,       1.8579717,     0.020734946,       1.1894837,      -1.1880818,      0.25419775,     -0.92158664,      0.37499891,     -0.13470965,      -0.3053297,      0.70383109,       1.5427626,      0.18420617,      -1.0244804,       2.4952194,      0.11227539,      0.77691632,     -0.61361556,      -1.7786584,     -0.14681432,      -1.7643735,      0.75262736,      0.22156456,      0.96614946,      -1.0932454,      0.94911408,      0.48374305,      0.48042648,       1.5888477,       1.7992629,      -1.9055497,       1.0348808,      0.70460189,      0.92246666,    -0.032718836,       0.8491276,       1.1299444,     -0.24745378,     -0.93178601,       1.3976991,       0.1676078,     -0.82278933,     -0.24971097,     -0.21122541,     -0.38068176,     0.070005846,      0.84576473,      0.21030436,      -1.0718172,     -0.19801884,       1.6529434,     -0.62908579,      0.72392804,      0.66643262,       0.4382185,     -0.68718716,     0.049569651,      0.35821398,       2.4572243,     -0.64728266,      -1.0296537,     -0.16704525,      -1.3019477,     -0.98036599,     -0.95622863,     -0.56117802,     -0.37144714,      0.64781953,     -0.24218363,      -1.4107054,     -0.78289505,      0.66064001,     -0.10440727,      0.82574252,       1.4530097,       0.2059906,      0.46208043,     -0.20893769,      0.77955662,      0.32024754,     -0.89294295,       -1.654551,      -3.2789448,      0.38284932,     -0.19421299,      0.37354837,       1.3530437,    -0.011372825,       1.5206247,    -0.014300578,     -0.40675842,      0.82814629,      0.54727649,      0.99125083,       0.8784792,       1.4091207,      -1.5624426,     -0.92346687,      -1.0556751,      -0.7323041,      0.94740953,      -1.3253322,      0.49447437,     -0.59077179,      0.11873322,      -1.8455742,      -1.2403333,       0.2908622,       1.9481493,      -2.0994749,      0.31699713,      -1.2314041,      0.67446323,     -0.82232366,       2.3693091,      -1.0344044,       1.2358443,     -0.61057499,     -0.41945358,     -0.52202507,     -0.44512141,      -2.2280324,       0.6476725,     0.011578049,       1.4262752,       1.0740192,      0.17867998,      0.50725002,     0.042959175,     -0.01904712,      -1.4629667,        2.758704,      0.38128274,        1.303018,     -0.42825545,       1.2836374,      -1.1957638,      -1.4895249,      -1.0558522,       1.4972893,      0.78931895,      0.54818054,     -0.70888888,      0.87471842,      0.22023936,       1.0619135,     -0.94352928,      0.22171529,        0.721658,     -0.97708675,      0.52740775,      0.58067841,      0.69987977,     -0.88053355,     -0.38850462,     -0.49909386,      0.29448314,     -0.81000056,      0.75797675,      -1.9774545,     -0.33120987,     -0.41501484,      0.18550009,     -0.18004966,     -0.35742651,      0.55209253,       1.2843546,      -1.2296948,     -0.64369163,       1.6228981,      0.38847738,      0.87019096,    -0.065154199,       0.6910692,       1.3022986,     -0.44385426,        1.572025,     -0.27408646,        1.358459,      0.23901647,      -1.1594981,     -0.77038857,       -2.305163,       1.8112983,     -0.50853328,      0.12657389,     -0.06988085,      0.54274237,      -1.0195025,       1.3984726,       2.0036502,       -1.243154,      0.93297906,     -0.48312938,     -0.13069662,     -0.58511593,      -1.0658122,     0.043768642,      0.50165571,      0.73148267,     -0.87930288,      0.55927283,       1.0855282,      0.75737136,       -1.638968,     -0.47886749,     -0.53593507,       1.1161198,      0.33916424,     -0.85668541,     0.048114987,    -0.037220936,      -2.2517746,      -2.3819151,      -1.9036397,      -1.8441238,      -1.1111791,     -0.21627549,       1.2153454,      0.41259139,     -0.48880518,     -0.69852204,     0.083829042,     0.059829634,     -0.61568186,      0.36933018,        1.426088,      0.69266992,     -0.27619137,     -0.39860012,        1.493792,         1.62834,     -0.10852414,      -1.3191676,     -0.31567216,    -0.062975251,     -0.88583786,      0.76531933,      0.71227575,     -0.81866666,     -0.26664036,      0.89360284,      0.11449992,     -0.74180305,       1.0868323,      0.62018566,       1.4436187,      0.50907208,     -0.71541846,      0.36989078,       1.4972578,       1.0972496,      -1.4497773,       1.2975992,      -1.7917613,       0.5955588,     -0.45192932,      0.57376751,       1.8865832,     -0.66193056,      -1.2495016,     -0.10581098,       1.3677705,      -1.4530841,      -0.8134879,      0.35846958,      0.74715619,       1.2335104,      0.98178121,        1.762842,       0.4668605,     -0.46944261,     0.010795341,      0.70332302,     -0.30906042,     -0.72144147,       1.4189594,      0.51009088,       -1.028002,       1.2538764,         -1.1357,     -0.26385694,     -0.01392733,      -0.2962969,       0.6836308,     -0.81212786,      0.88250134,    -0.082470487,      0.87041138,      -2.0082534,     -0.80906618,      0.61177267,      -0.7193202,     -0.73266109,      0.08323583,        1.270932,       1.3345826,     -0.33852757,      -1.0132002,     -0.32548194,     -0.50491296,      -0.9227009,      0.66995322,     -0.36765384,       1.5291554,       1.4555493,      0.21715354,      0.17314054,   -0.0072156559,     0.099242049,       -1.013422,      0.69057829,     -0.12965843,       1.2309366,     0.031682582,       0.6216504,      -2.4382539,    -0.065699253,     0.064275564,      -1.3045118,     -0.18358319,       1.1330458,       1.1108571,      -0.9925924,      0.93272372,     -0.55126974,      -1.0705342,      0.21718417,      0.26607971,     -0.27362188,     -0.48502475,      0.75271976,        1.137281,      0.75925922,     -0.47186186,      0.63294085,     -0.39452906,      0.95387137,     -0.62456833,      0.61567483,      0.44522833,      0.03909268,      -2.8526595,      0.16683467,     -0.64953741,       3.2870853,      0.60965319,     -0.86624794,     0.022129875,      -1.7417421,      0.73354101,      0.41191022,       1.9892376,      -1.3250705,      -1.2939388,      0.60014541,      -1.9481944,      0.46855583,      -1.5665628,      0.32268477,      0.61143576,      0.16926114,      -1.3354163,      0.80528078,      0.44283428,     -0.66648694,     -0.29737378,       1.7459118,      -1.2352733,     -0.24149704,       0.7454983,      -0.7079793,      0.47842409,       0.1629796,      -1.2394821,      0.99669804,      -1.8684744,       1.2711802,     -0.90494502,      0.36985924,     -0.57351675,      0.14950053,      0.78318169,       0.5646724,      -1.5211157,       0.2003451,      -1.5344413,      -1.1672628,      0.19187356,     -0.29911064,      0.73392502,     -0.28033259,      -0.4751599,      0.03385957,        1.584802,      -0.1862322,      0.35054873,     -0.35032701,     -0.62604164,       1.8448581,      -1.1666793,     -0.41080554,      0.38480854,      0.95412562,       1.1082551,      -2.0634433,      0.17179972,        1.072077,     -0.95875201,     -0.59714542,    -0.055220466,       1.8343298,    0.0062828502,     -0.49971717,      -2.0213269,      0.31822723,       2.1869219,      0.58898164,       1.3830636,     -0.61343401,      0.77052157,     -0.56355198,      -1.0523968,        1.263787,      0.95207942,      -0.6250248,     -0.36483865,      -1.5984504,       1.0320996,      0.19606671,     0.069175771,      0.18268222,       1.0242632,      0.14918593,      0.73156236,       2.6763637,      0.36746543,       1.2450556,      0.39212054,      0.66916382,      0.22875531,      0.71188668,      0.17136434,     0.061608549,       1.0337452,      0.87602863,     -0.44056062,       1.2237321,       0.4050487,     0.056410272,     -0.32854607,     -0.45867267,    -0.087560599,      0.40774331,       1.6427086,     -0.52654395,     -0.85409278,     -0.10273467,       1.1222159,      -1.2072528,       0.5493009,     -0.54650977,     0.041179298,      0.58624227,     -0.23969235,      -1.3167863,      -0.7636834,     -0.74424267,     -0.86714557,      -2.3644214,     0.027581011,       1.5967383,      -1.0277932,     -0.62350712,     -0.36964106,     -0.24928767,     -0.23662251,      -1.3755093,       1.2659548,     -0.42861502,    -0.013935785,       -1.138194,       0.6720588,      0.74506319,     -0.16067047,       2.2206829,      0.52690518,     0.058265484,      -1.8445596,    -0.063142941,       1.1912597,      0.49172036,     -0.23380516,     -0.15569682,      -0.9610044,      -1.3207199,   -0.0067144747,       1.7198156,      0.62371764,      -1.0268814,     -0.95721039,     -0.60155866,        1.277738,     -0.94767809,       1.6895455,     0.035599188,     -0.18231773,      -1.0120489,     -0.63510037,     -0.32745591,      -2.1364048,      0.80169286,     -0.90174763,      0.32152321,      0.36887416,      0.84354888,       1.7032357,      0.35066428,      0.57801383,       1.2375631,      0.56079117,     -0.77292972,     -0.61743536,       2.1589854,      -0.4476428,     0.005511154,        1.686738,     -0.30057053,     -0.34154338,      0.20636513,       2.1237428,     -0.32851098,     0.053819662,        0.309759,      -1.5690126,       1.1954846,     -0.77081508,      -1.1411482,      -0.1820254,       0.3961426,       1.9951447,       1.2047851,      -1.1330373,     -0.78263079,     -0.73907986,       1.9188312,     -0.11650987,      -0.6129042,      0.19583802,      -1.8472783,       1.2513863,     -0.34587826,       2.0384364,        1.707277,      -1.2368692,     -0.18614114,     -0.61849549,      0.77731832,     -0.89837977,    -0.052136449,     -0.11844018,      -1.0795852,      0.27296901,     -0.59058683,     -0.15123459,    -0.003623076,     -0.80272419,       1.3849971,    -0.026702136,       1.1195301,     -0.90088398,      0.77039252,       2.0098259,      0.29523777,     -0.76967605,      -1.0617108,      0.83571685,      0.76070911,      0.11810026,      -1.3594182,      0.54725142,       1.0043606,     -0.71543219,     -0.96069139,     -0.40135145,     -0.48588112,     0.022037461,      0.56548422,      0.64492219,       0.1093621,      -0.3222877,      -1.1148105,      0.46160167,     -0.37475801,      -1.2402526,      -2.1057975,     -0.12561872,       -1.743268,      0.53123827,     -0.14389559,     0.027175587,      0.68960977,       1.0688259,       2.1331141,       1.0676538,     -0.45139673,       1.6995004,     -0.65802517,      0.23240199,      0.48039643,     0.064242249,     -0.47120654,       -0.575629,      -1.6427932,     -0.12669355,      0.89580651,     -0.82181997,     -0.50635779,      0.79004534,     -0.41478107,       1.4248046,      0.42556622,     -0.15512144,     -0.03628381,      0.30744086,     -0.59633929,       1.2023456,       -1.495149,       1.1100089,      -0.4124252,      -1.2775489,     -0.51709161,     -0.76868147,     -0.27151473,      0.26020075,       2.0663014,     -0.13100172,      0.73011531,      0.09980018,       0.8815031,       1.1717499,    -0.055003259,       1.8885969,     -0.63675772,     -0.29714279,      -1.3860225,     -0.37362816,      -1.0489647,     -0.22725573,     -0.23773028,     -0.47030394,     -0.98733296,      0.37350566,    -0.089437781,    -0.071112863,      0.31868575,       1.4508908,      -2.6341595,       -2.088221,     -0.25511673,      0.89373363,      0.48484013,     -0.39486757,       1.2040742,     -0.74608106,    -0.031289345,     -0.35423721,      -1.2036421,      0.60616462,     -0.13785108,     0.043044659,     -0.14039084,      -1.8574923,     -0.55460499,      0.70481677,     -0.56325707,      0.28969949,       0.5854126,        1.302365,      0.69185894,      -1.3660978,      0.61469254,      -1.5466661,      -0.4515144,     0.054308007,     0.049889459,      0.38394736,      0.15175221,      -1.7417453,       -2.667952,     -0.28122834,     0.038114452,      0.65507948,      0.11943677,       0.9271719,      -0.2366844,      -0.2282501,      -2.0104049,      0.20931158,       1.8049147,     -0.76153152,      0.61063101,       1.4484398,      0.14276388,      0.31202303,     0.082907502,     -0.91870679,       0.2047449,      -1.3182306,       1.0196989,      -1.3405666,     -0.12112962,    -0.063460559,       1.3449163,      -1.8101482,     -0.53953071,      0.60053479,      0.60410997,        1.288036,       1.7668579,     -0.17316387,     -0.84294175,      0.41790905,     -0.36775974,       1.5621306,     0.031425552,       0.3940462,      0.83264399,      -1.0199169,     -0.11234163,      0.52448964,      -1.1049775,      0.30278133,      0.37660486,      0.13644205,      -1.5337685,      0.73235317,      -1.1801949,     -0.89979837,     -0.10816702,      0.89792577,       -1.499767,      0.18539966,     -0.46112927,     -0.24005583,      0.46091835,     -0.69336125,       1.4176948,      0.12023261,     -0.93491381,     -0.30440665,       1.2628894,       1.6828191,    0.0092026972,       1.6800993,     0.053921104,      0.72165899,       1.3814184,     -0.70153102,      0.48334398,      0.32828582,     -0.85965839,      0.36263925,      -1.8637689,      0.11911779,    -0.008817809,     -0.83977223,      0.28223343,      0.99124091,       1.7012654,     -0.99528965,      -2.6563976,       0.8585596,      -1.0935109,      0.89304353,      0.40384433,      0.74299828,      0.54423516,      -1.2568709,       1.1625283,     -0.25067357,      0.41125563,      0.43516001,      0.24589747,      -1.1214693,      -1.7206744,     -0.50218997,    -0.061750611,       1.4020899,     -0.71633226,     0.049392653,     -0.27377183,       0.8288495,       1.0040975,       1.7900567,      -1.3605308,       -1.995252,     -0.85574941,        1.270989,       1.3172998,        1.669892,      -1.5888418,      0.39685438,      0.61090365,     -0.70278063,      0.16935468,      -2.4023676,      0.45818645,   -0.0080082412,      0.53234588,      0.68276587,      0.11369592,       1.0653061,      0.63066897,     -0.26891688,       1.0177179,    -0.020936153,     -0.40231086,     -0.33677413,     -0.60128434,      0.41708655,     -0.89012392,      -1.2317835,     -0.93878582,      0.29085232,      0.13452945,    0.0030993924,      -1.9356317,      -1.2121512,     -0.72913643,      0.36504406,     -0.46704135,       1.0476315,      -1.8998503,     -0.81217975,       1.5104731,      0.06675691,      0.13534634,      0.40590491,      0.31255973,       1.5825316,      0.13844936,       1.0977011,      0.99133208,     -0.67315109,     -0.61059713,      -0.2833527,     0.017741295,      0.50961704,       1.0735701,     -0.59750946,       1.5738598,     -0.34660412,      -1.8753429,      0.84294866,     -0.12690359,       1.0522112,      -1.1828258,       0.7262446,      0.61889569,     -0.21058695,     -0.41757686,      0.15012418,    -0.018911214,       2.7151886,      0.22492436,       1.1592759,      -1.5799821,     -0.32160134,      0.54933724,      -1.3075276,       1.2760808,     0.086153779,      -1.3734911,     -0.67967126,       1.2620207,     -0.89614325,     -0.10954352,      -2.2882389,     -0.86048023,     -0.63451507,      -0.6880001,       1.1745965,     -0.15905675,       1.0362347,     -0.40215875,       1.7611777,      -0.5551874,     -0.19556545,      0.28293574,      -1.8604439,      0.97891458,      0.83694455,      -1.6400023,      -1.0274991,      -1.3810196,        2.796497,      -1.8115049,      0.35650406,      -0.3585482,     -0.88109023
+2012Y,      -1.0516841,       0.7513541,      0.93540122,      0.46226984,      0.32165409,      0.94942216,      0.29654451,     -0.15602659,      -1.2833037,       -2.368832,     -0.47664588,     -0.39649443,     -0.17191536,     -0.58447777,     -0.65128092,      -1.5968663,       1.0652946,      -1.4435267,      -0.4274541,      0.25340964,       -0.127835,     -0.40266268,       1.1007263,      -1.3776213,       1.7465354,      -1.1386434,     -0.56664726,      0.26020998,   -0.0079963511,     -0.59527855,      -1.0075529,     -0.25217068,     -0.94540735,      -1.0359852,     -0.53741845,     -0.46365725,     -0.99164204,      -1.5891104,     -0.43094891,     -0.31082105,      0.50143112,     0.082527292,     -0.53235974,      -1.5621775,     0.051385293,       1.4647876,      -1.2335825,     0.069685801,     -0.61428178,    -0.045104408,      -1.4502838,      -1.3930623,      -1.0135264,      0.81059373,     0.035954774,      0.13283346,      0.36286289,     -0.27284148,      -1.9641702,     0.030329028,     -0.48670871,      0.90827558,     0.064609607,     -0.78678903,      0.23430917,      -1.7428071,     -0.24046351,     -0.34152517,      -0.1521471,      0.59266802,      0.74777103,     -0.57503508,      0.67147062,      -1.0433699,       0.8536522,      -1.5174129,      -1.0020699,   -0.0049579321,      0.21893289,     -0.57515794,     0.016640801,     -0.45937387,      0.40489361,       0.6863931,     0.065872771,      -1.5830707,     0.075793542,     -0.53639836,     -0.40843234,     -0.85639815,       1.2858371,       1.3905917,        -0.77184,      -2.0554537,      0.80207848,       1.2734461,      -1.0072032,     -0.70426307,      -1.2941743,    -0.041513574,      0.19948776,       1.6679643,       1.6018486,     -0.33536438,       1.0816171,      -1.3003203,      -2.0214065,     -0.59451257,     -0.27134634,      0.54552674,     -0.96273042,     -0.71759891,      0.92498325,     -0.73168792,       0.1840538,      -1.4100548,      0.97731364,      0.45931367,      -1.0427824,     0.050673544,     0.082718045,       1.3989832,      0.29638311,      0.79706909,     -0.79296523,      0.39901051,      -0.5623547,        1.503242,     -0.48372835,     -0.99928752,       1.5459932,      0.29691576,      0.97195897,   -0.0074937866,       0.4497691,    -0.070585743,     -0.21278581,      0.56951715,      0.18065635,      0.28863058,      0.40426469,      0.35796167,      -1.1184585,        -1.39164,      0.66706699,       1.0185316,       1.0626855,     -0.80610199,       1.1138843,      -1.2526658,       1.1963494,      0.57627842,       1.7039599,    -0.071645042,       1.5199305,       0.4522197,      0.63387645,      -1.4403931,      -1.4897996,      0.15734638,      -1.3336999,     -0.33857616,       1.9350038,     -0.59444908,        0.826564,     -0.56156189,     0.083096429,     -0.69647065,      -2.1584659,      -1.6731008,     -0.41709676,     -0.56837331,    -0.061673003,        1.681858,      -1.1199721,       1.5596752,     -0.67614647,     -0.65450077,      -0.5357971,      -1.7616675,      0.60920626,      -2.4159686,    -0.044173457,     -0.51404539,    -0.029093877,     -0.33302345,      0.55005944,      0.20956499,     -0.16677931,     -0.55408135,       1.1376789,       1.4703028,     -0.75201679,      -1.5531476,       1.2627868,     -0.18662707,      -1.0208391,        1.497767,      0.66177354,      0.38319256,       1.7946171,      0.89390771,      -1.4553291,        0.144978,      0.38383949,      -1.2997618,     -0.47015852,     0.063346474,      -1.9007875,      0.14589117,     -0.34581396,     -0.68998873,     -0.78360957,     -0.28419965,      0.49252773,      0.57125827,       1.2119078,      0.73650016,    0.0049142218,     -0.85794147,     -0.90030976,      -2.0560241,     -0.49479187,      -1.1444579,       1.5815982,     -0.53275086,      0.21787656,    -0.073996316,     -0.25890308,      0.43347774,   -0.0043508346,       1.2041329,     -0.62776974,      0.28533931,       0.6578167,     -0.33445783,       1.0607771,     -0.55748282,        1.066198,     0.069353902,      0.22255666,      -2.0509852,     -0.75809185,      -1.1797025,       -1.628384,       0.1416449,     -0.10652579,      0.84129308,     -0.19451616,     -0.46234297,     -0.65087103,     -0.16093076,       1.3755535,       1.3484978,    -0.051069429,     -0.33772138,      0.54707855,       1.3211363,     -0.26844289,    -0.096463113,      0.46901997,      0.36932523,     -0.16576575,       1.2800688,     -0.60530078,     -0.49397964,     -0.91785024,      0.67767543,      -2.6056456,     -0.71674227,      -1.5517552,    -0.025050865,      0.21067839,      0.30542956,      -2.1719458,    -0.092876188,      -1.1294842,     -0.65460982,   -0.0021818434,     -0.35270485,      0.57730343,    -0.074149221,      -1.3456815,     -0.39374017,     -0.79943625,      -1.5216751,      0.29011445,      -1.5856192,     -0.35477722,      0.96780245,     0.064877788,     -0.43907649,      -0.1429842,      0.54041938,      -0.7128696,      0.78424684,     -0.31672402,     -0.76323623,      0.13573349,       1.7408023,      0.49488595,       1.1750849,       2.2275315,       1.1944175,     -0.43603894,     -0.69116337,     -0.53273492,     -0.16503167,       2.0663497,     -0.66858683,       1.3940433,     -0.68704669,       1.0900646,      0.92823895,     -0.66766282,      0.69406998,     -0.19064967,      0.85550028,     0.058809516,       1.6415662,       1.1404959,      0.87568865,      0.63558388,      0.91996375,       1.2573994,      -1.5891861,     0.099528979,     -0.65563095,     -0.37558809,      0.77679535,     -0.73289614,      -1.5396277,      -1.5705079,     -0.84554793,      0.28224905,     -0.13537666,      0.45215982,      0.60577235,     0.056910911,     -0.82360809,     -0.38588924,     -0.72263946,       1.1038902,      -0.9577545,       1.4120157,       2.5073383,      0.35049092,      -1.3698236,      0.65897928,      0.68709729,      -2.1380631,      -1.3496766,     0.016056867,       0.2835358,      0.75987311,     -0.92346587,      0.26740644,      0.54899176,     -0.32066204,      0.81892966,      0.15329903,      0.21988841,     -0.21994711,      -1.5906034,     -0.40141801,        1.361465,       1.6852721,       2.6465117,     -0.70933123,      -1.3274812,      0.15080008,      -1.0762661,     0.001463669,     -0.39274361,     -0.27220401,       1.4278445,     -0.36794904,       1.1928903,     -0.36755465,      0.85949505,      0.17282399,      -2.5250533,      -1.0617026,     0.039320449,     -0.44231969,      -0.4026217,        1.122097,     -0.30006645,     -0.18571496,       0.8789529,      0.28931137,      -1.1838701,     -0.78981364,      0.27901844,      0.26826413,      0.20746781,      0.19038449,      0.11410367,       2.0823526,    -0.056308429,       0.8248421,     -0.31151678,      0.67546182,      0.35609316,      0.25176693,      -1.4715743,      -1.7196117,      0.72046352,      -1.6425405,       1.3089352,     -0.61887581,      0.38605826,     0.053349861,      0.41011803,     0.094282868,     -0.69450159,      -1.7073078,       1.8553214,      -1.9993088,      -1.7153754,      0.36195393,       -1.459607,      0.28964548,       1.8212015,     -0.44815102,     -0.25938305,     -0.74536015,      -1.5946207,        2.494671,       1.9841825,      0.38724668,     -0.27891522,     -0.10484322,      0.23472738,     -0.16302482,      0.30969255,      0.53776278,     -0.48573911,     0.068142138,       2.1909647,     -0.19360307,     -0.24984133,      0.43193726,      0.32360126,       1.1941428,     0.098895503,      -1.1932824,    -0.037342054,     -0.38056752,       1.1611716,       1.3895636,   -0.0060713722,      0.77391463,      0.95088354,       1.2428023,       1.8258137,      0.03121615,        1.900368,      0.65691372,       1.4719419,       1.0533552,      0.83231843,       1.4055111,       0.4459292,      -1.2648805,     -0.41857569,     -0.12449965,     -0.60879942,     -0.41926832,     -0.90610759,       1.5004346,     -0.67629893,      0.16872512,       1.4441275,     -0.68237045,        1.400313,      0.55940807,       2.0532491,       1.1426664,      0.72103882,      -1.6558478,      -1.9726681,       1.3350535,     -0.82427819,     -0.28323629,        0.220561,      0.18791939,      0.60053209,      0.13551847,      0.47594675,     -0.33376038,      0.12054191,      -1.2128686,      0.13735762,      -1.0874659,      -2.1880314,     -0.73752964,     -0.44472429,     -0.97675393,      0.48295093,      0.57708661,       1.5120356,      -1.7842111,      0.91697079,      -0.5046134,     -0.24757115,     -0.59730323,      -1.2988319,       1.3904806,     -0.10888667,     -0.87209581,      0.76498208,     -0.62545011,       1.0062285,     -0.21829525,      0.15715265,      0.42632843,       1.4056099,      0.58027607,      -1.0214255,      -1.5610433,      0.32273506,     -0.75185277,     -0.98489328,     -0.33642348,     -0.44190811,    0.0060445582,      0.74947401,     -0.36323434,     -0.78849245,       1.7465722,       1.2522641,     -0.74122707,        1.183355,      0.49734528,      0.41280011,     -0.49671381,      0.87511879,     -0.82593681,     -0.50312956,      -0.6211283,     -0.81023797,      -1.0227487,     -0.48097815,      -1.1622623,     -0.25735234,     -0.25449066,       1.2679113,     0.017067088,     -0.13030571,      0.79438924,       2.4109193,      0.19128938,     0.099877056,     -0.91280247,       1.3077574,       1.0635572,     -0.14758269,     -0.30520034,      -0.2255898,     -0.66211446,       1.6467336,     -0.33443234,      0.72954599,     -0.48887796,     -0.83769015,      0.70772883,      0.28978309,      -1.8843773,      -2.2677482,     -0.34878077,      0.93451476,     -0.15381538,     -0.95077768,      -2.6420579,     -0.39377229,     -0.92328842,      0.26057197,      -3.4576238,      0.79229681,      0.52979916,      0.12386958,       1.2088811,     -0.68382698,      -1.2384209,     -0.47616192,      0.84839025,     -0.46445624,      0.26412098,      0.78636869,      -1.7274669,      -1.7470821,      0.10737558,       1.9179964,      0.86383801,       0.5339933,     -0.52646774,      0.56181365,      0.27829663,      0.89581933,      0.70808191,      -1.1811151,      0.12230997,        1.278545,      -1.0875548,      -1.8600902,      0.20319918,      -1.0373769,      -1.5869434,      0.16827752,     -0.75147591,       -1.589242,     0.091793433,      0.16502131,      0.48032443,     -0.25129295,      -1.0003395,       0.9840693,     -0.31535377,      0.65107513,       2.2918975,       1.0072328,     -0.15873848,      -1.3374621,      0.48160211,      0.44770812,       1.9198084,      0.23048637,     -0.40822508,     0.017907557,        0.267851,      0.51367452,      0.13068591,     -0.40544481,      -2.5487121,      0.36746173,      0.13165478,     -0.68449724,      0.88549651,     -0.63288139,    -0.047223735,      0.74816532,      -1.0381275,       1.1252527,      -0.8421852,      -0.1342835,     -0.80264112,      0.36014137,       1.3260186,      0.85794802,      0.10987076,     -0.75782873,      0.15439725,      0.64635182,    -0.041532535,       1.0792854,      0.20511787,       1.0479539,      0.20490452,       1.4030065,      0.36887288,      0.43636173,     -0.60365102,     -0.98617215,      0.89463841,      0.27272987,       -1.799015,      0.43948768,     -0.15956449,     -0.42790772,       1.2666042,    -0.064037331,     -0.78838155,        1.024262,      0.49081874,      0.07828379,     0.079528938,      0.60829965,      0.62075106,     -0.20309762,    -0.053961712,     -0.34572969,      -1.1509698,        1.721611,      0.38067248,      0.56528465,      0.85665744,      -1.8629526,       1.0450635,      -1.0820029,     -0.12397324,     -0.44072757,      0.49805218,     -0.46761988,       1.4594467,      0.49936903,     -0.43503045,      -2.2291945,     -0.45742375,      0.64065495,     -0.28979654,     -0.38339318,       1.5110373,     -0.60563673,      0.29221196,      -1.5823334,      0.42321561,      -1.2288979,       0.1415891,      0.60278833,      -1.2249764,      0.30846774,     -0.72074273,     -0.37646985,       -0.776329,      0.25471481,     -0.36981962,      -0.9287604,       1.2201403,     -0.68982131,     -0.62425225,      0.91081199,      0.79257929,      -0.2139573,      0.47738863,      -0.1323828,      0.48584236,      0.30747652,      0.51099539,       1.3367117,       0.3705317,      0.10736335,      0.56305795,      0.42508857,     0.098261496,     -0.57054924,     -0.17843377,       0.4932805,     0.077817563,       0.5162898,      0.78300582,       2.2460116,     -0.42288872,     -0.57205691,     0.081075872,      0.59394896,     -0.71368998,      -1.3067821,      0.88242878,       1.1053735,     -0.65539996,       1.9385464,       2.4949231,      -2.1199178,      -1.0743188,     -0.59481414,      -1.3227278,      0.51109582,      0.67107813,       1.7061313,     -0.99459521,      -0.2469895,   -0.0080922657,        1.027884,       1.5972564,     -0.57953708,    -0.074079257,      -1.3234526,       1.0684242,      0.82751818,      0.46805164,      0.27428832,     -0.34646617,      0.76724145,      0.88143092,      0.28946481,      -1.4030279,      0.30514978,     -0.11945744,      0.70662422,      0.71439763,       2.7275352,     -0.42802847,      0.70380335,      0.44883472,      -1.0197402,      0.84732288,      -1.0976909,       2.2674325,      -1.2046628,       1.4343495,      0.30026577,     0.016948728,      0.16030137,       1.1753325,     -0.10890396,      -0.3609654,     -0.64592184,     -0.58663497,       2.8998329,     -0.92353638,     -0.50618695,       1.9255349,      -1.5732093,       1.6119899,     -0.20472765,     -0.17269163,       1.1172358,    -0.096966465,     -0.50745706,    -0.061880629,     -0.44200743,     -0.67465161,      0.49171089,        2.282611,     -0.44063373,      -1.2582313,       1.1058578,       1.5616707,     -0.38674289,       0.7372463,     -0.70910536,      0.25560009,      -0.9532749,      -1.8095322,      0.40673125,       -1.651193,      0.54776571,      0.72992996,      -1.6609306,      0.89696284,     -0.75400426,      -1.5838847,     -0.24953934,      -0.5337261,      -1.7720695,     -0.45547775,      0.23139932,      0.74130186,      0.98756287,       2.3584265,     -0.79478652,      0.82352239,      0.41829065,      0.19083555,       1.0549608,     -0.37653014,      -1.6586494,       1.3107044,       1.3919315,    -0.081485242,      -0.4726397,        1.178133,      0.61194683,       1.3810653,       1.5508921,      -1.5967124,      0.64852732,      0.61096073,      0.74348665,         1.33421,     -0.71954644,      0.55125297,      0.29735982,         -0.5423,     -0.79105786,      0.60343778,     -0.13131694,     -0.31740081,      0.16895472,        1.372509,     -0.66560811,     -0.12677734,     -0.35594606,       0.3889958,     0.074028245,     -0.19465578,      -1.2012351,         1.23526,     -0.25129416,       0.6471354,      -1.1893011,     -0.87146505,       1.4640616,     -0.49004113,      -1.3562603,      -1.1998083,      -1.5659628,     -0.76840225,       1.4644269,      -2.0167314,      0.72601209,     0.054703314,      -1.3273151,      0.25020673,       1.6958106,      0.84903521,        1.040716,     -0.53488797,     -0.42423974,      0.27283948,       1.7956858,      -0.4590915,     -0.20131617,       1.1528872,     0.020893075,     -0.12839902,      0.97513246,      0.10830444,      0.27291987,       1.4778987,      -1.8698706,    0.0012180555,      0.57334826,       2.2206108,      -1.6116924,     0.068069177,    -0.097248492,      0.81213922,     -0.43934136,        1.859562,      0.54338463,    -0.056936682,        1.379238,      0.82224465,       -2.148431,     -0.70964629,      0.43646082,      0.82882153,     -0.76043223,      0.95504015,      0.89494718,      0.20799942,      0.25695216,      0.14704147,      0.99196373,      -1.6134794,       2.0509857,      0.43293593,     -0.40579462,       0.4363746,      0.75523165,      0.52199785,       1.3342372,       1.0163785,       1.0709907,     -0.55469712,      0.92200947,     -0.18053896,       -0.654874,      0.91423918,     -0.27020093,    -0.092275667,    -0.085240418,       0.5731977,     -0.77408737,      0.51523456,      0.84138192,      0.20580114,      0.70591869,    -0.026705006,      -0.3817744,      0.81117647,      0.88258143,       1.3057408,     -0.99015436,     -0.32432079,       2.5489533,       -1.040718,     0.094372082,       1.5295221,      0.70319559,     -0.87273196,     0.016083424,       1.4276515,     -0.59646337,      0.81941767,      -1.7873698,     -0.29539663,     -0.54988508,     -0.51372021,      0.50258306,      0.26247907,      -1.7491347,     -0.79209502,      0.24208962,      -1.0462865,      0.64349041,      -1.8045188,     -0.49352586,      -1.1153739,     -0.97786469,      0.12562719,       1.9361345,      -2.0257321,       1.1314908,      -1.6316989,      0.35657512,      0.84549757,     -0.24790536,       1.7763707,      0.86008442,      -0.2956517,      -1.3395583,     -0.96024474,     0.020801813,    -0.075031198,     -0.68862738,      -1.7941897,      0.32121183,    -0.058968897,      -2.2402179,      0.21186611,      -1.6542276,      -1.4027035,     -0.40158533,      0.86328876,     -0.95336496,    -0.060679146,     -0.78159558,       1.0702478,     -0.83051392,       1.1546663,      0.72367663,      -1.5405644,       1.0754228,       0.8297957,      0.37992864,      -1.4078438,     -0.51840664,      -1.4550398,      -0.9574981,     -0.36301482,      0.17208469,      0.57300097,       1.1264496,      -0.6859523,        0.642305,      0.71775574,      -1.6031504,      -1.1245238,      -2.2801829,       0.3514699,     0.053958093,     0.070200925,     -0.65363696,       1.3648266,      -1.5114187,     -0.20927092,      0.96062835,      0.37216938,       1.1194158,     -0.33515593,       1.3058348,     -0.96587572,     -0.35933792,       -0.991738,       1.4848241,     -0.62834573,     -0.86183478,     -0.43688784,     -0.53363887,       0.1800599,      0.35902222,      -1.6126564,      0.49680138,     0.099039443,     -0.64807789,     -0.31632355,       1.1395817,     -0.20210522,     -0.28894992,      0.49021538,      -1.1537684,       1.6919401,      0.63281478,      0.36521695,    -0.019428236,     -0.19164779,      -0.6743937,     -0.19942698,    -0.071047023,     0.034974885,      0.48677008,     -0.13675171,      0.49605844,      0.90842705,      -0.5335478,      -1.7508158,     -0.13328771,      -1.5175639,      0.40639505,        1.216232,     -0.51826332,       1.7411489,     -0.48780618,      0.14131413,     -0.97886916,     -0.66729726,       0.8503023,       2.1527236,       1.1484153,     -0.68597367,      -0.3978276,      -1.7024574,      0.96249066,      0.23750488,      -1.0647383,     -0.42053926,       1.7122381,    -0.043079028,       1.9614523,       1.4843226,     0.073118081,      0.32449118,         2.32653,     -0.49094335,      0.97490964,      0.54225204,       1.4254137,       1.6209106,     -0.62531168,     -0.36898978,       1.5691617,       1.2939593,       1.2661064,      -2.7043673,       1.0367663,     -0.45987337,     -0.74519696,      0.74903959,       2.3523997,      -1.4586757,     -0.07320674,       1.3692037,       1.0454003,     -0.57974744,       2.1587037,      0.65616372,      -1.2800439,      0.38613132,     -0.29597004,    -0.078073338,      0.26359687,     0.046936055,     -0.57557404,       1.3822186,       1.0669539,       1.3750967,    -0.016629029,      0.84333662,       1.6836339,       1.2709872,      -1.3280269,       1.4312764,      -2.6639077,      -1.6045308,       2.0247645,     -0.46491854,      -0.4484016,      0.83548149,      0.56236451,       1.2457144,     -0.32920549,     -0.53801064,     0.040340302,      0.16388264,        1.590421,     -0.61927878,       1.3348421,   -0.0033860785,       1.9242214,     -0.85914719,       1.0530045,      0.24149771,     0.052937838,     -0.77929662,       0.9273878,     0.062389372,        1.205283,     -0.94423542,     -0.17339793,      0.31349657,      0.53025617,       0.8825616,      0.60792336,      0.20644195,      -1.1182378,     -0.50385923,    -0.024979677,      -0.8315222,      0.77550144,     -0.51166962,      -0.9772396,     -0.41326455,     -0.21804683,     -0.35673538,     -0.37438912,      0.47232365,      -1.1580085,      0.51240489,      -1.7195246,     -0.21562542,      0.30174783,      0.29947657,      0.94094135,      -2.4084383,      -1.3482965,     -0.55368239,      0.32431476,      -0.3981667,      -1.0384522,       -0.459099,     -0.52568522,      -1.3247506,     -0.30516438,      0.21926519,     -0.16259282,       1.0508861,       1.0356572,     -0.39246792,      0.44402575,     -0.70501754,     -0.13578035,      -1.2873527,       1.0063806,      0.70751624,      0.42729892,     0.093630256,      0.11556118,      -1.0088765,     -0.90319825,       0.2252298,      0.31231554,       1.7227853,       -1.056059,      0.90589138,      0.33663647,      0.20361461,      -1.8985167,     0.029132419,       1.1353609,       2.2662637,     -0.17598755,       1.3133341,      0.82639309,     -0.51861643,      0.16099694,       2.0215803,      0.98673354,       1.2131162,      0.60893912,       1.0996612,       0.4595717,     -0.97320594,       -1.049263,        0.807811,     -0.96386771,     -0.73853499,      0.75295258,      0.10449099,      0.53231944,      0.24705016,    -0.028875739,       1.1075053,       -0.682141,      0.12809447,      0.22558607,      -2.1604096,     -0.26202703,       1.4984132,      0.33676401,     -0.39304448,     -0.68114387,    -0.041955736,     -0.22487007,     -0.91398039,      0.74488519,       1.6910086,     -0.43365767,     -0.25009867,      -1.0019083,      0.37506235,      -1.7743928,     -0.94568088,      -1.1898597,      0.83388006,     -0.72480654,       0.1510618,      0.51254007,      0.56226715,      -1.1698096,      0.80445568,      0.13652585,     -0.40873888,      -1.5773327,      0.22215719,      -0.6413492,     -0.79475688,     0.095459155,     -0.57939913,      0.21336351,     -0.19337125,     -0.68340236,     -0.98178603,      -0.4841876,      0.21534787,      -0.7682565,      0.54665719,       1.0940627,      -0.3791795,   -0.0010307332,      -0.4478282,      0.63458799,     0.044756628,      -1.2366007,       2.6357886,     -0.22317732,      0.68472449,     -0.87370456,      0.65854086,      0.42196299,     -0.34794903,     -0.60722802,       1.1584387,     -0.35096712,      0.67226985,      0.23925923,     -0.81426558,     -0.92549462,      0.62745205,      -1.5565566,        1.307855,       1.4099752,      0.32285838,     -0.21908912,     -0.89233827,     -0.68103817,      -1.2903277,       1.3411482,      0.34266369,      0.61767455,      0.13150742,       1.3528424,       1.4060681,      -1.6932281,     -0.15411089,       1.5799368,      0.28539281,        1.007111,      0.60446278,      0.36847618,     -0.32763348,      0.15668957,        1.322865,     -0.93492016,      0.15927014,      0.36114282,       1.0101139,       -1.266339,     -0.38016949,     -0.46505156,      -1.1025393,     -0.24524142,      0.48675773,       -1.084364,      0.65296385,    -0.083052538,      0.93664426,      0.95529176,      -1.5694655,     -0.76807247,      0.32699243,      0.15152034,      0.44705096,      -1.9601432,     -0.21085149,      -1.0007694,     -0.27686603,     -0.19967789,      -1.3751106,       1.0611436,      0.64319302,     -0.57679023,     -0.52063731,      -1.1377755,    0.0076079208,     -0.14240658,     -0.27523105,       0.3281991,      0.70720571,    -0.077206432,      0.21235549,      0.95578666,       1.4840472,     -0.67367551,     -0.91131556,      0.86905834,      0.52652081,     -0.60270248,     -0.25113458,       0.5860696,      -0.1710286,      -1.4567186,      -2.6697692,     0.011947005,       1.0795407,       1.5160034,       1.3705924,       0.1419843,       0.3851414,     0.091938533,       1.5363012,      0.38583796,     -0.39546964,      0.22221957,      -2.0152382,     -0.19835072,     -0.33065961,     -0.28625979,     0.034134344,     -0.12397998,      0.21464629,      0.25619918,     -0.26899898,     -0.53751723,       1.9376375,      0.70463928,      0.85374532,     -0.67617373,      0.43185175,     -0.40473289,       2.6365836,       1.5512442,      -1.3898907,      0.65002418,        2.099569,     -0.16095785,     -0.82078057,      0.60718248,      0.81997562,      -1.1122894
+2013Y,       2.3852201,       0.2838352,     -0.57335144,      -3.1717071,      -1.4036063,       0.5061678,     -0.67560155,      0.61489373,     -0.21563564,       1.7637693,     -0.99832445,      0.26673445,     -0.37449083,      0.24980822,       1.4089656,      -1.0476652,     -0.68233915,        0.639192,       -1.934051,       1.3909205,      0.31015433,     -0.29651863,      -1.6998566,      0.58487463,      0.57782123,       0.6550419,       1.4665342,    -0.067584719,       1.2232572,     -0.61313515,      0.96622469,       1.3850658,    -0.038212562,      -1.5164557,     -0.38620154,     -0.20198416,       -1.591911,       2.0935979,      0.19751376,     -0.67281223,     -0.27831977,      0.52388428,      -1.3832639,       1.2067027,      -1.2283765,      0.88575858,      0.58878361,       1.2164946,      0.04679464,       1.1151104,     -0.69167751,     -0.92643358,      0.25278069,      -1.2442942,     -0.66286463,       1.1821633,      0.84265058,     -0.78717092,      -1.5547446,      -0.3454591,     -0.70073181,      -1.6083041,      -0.8154916,      0.56051454,     -0.49775305,      -1.1416851,       1.5589704,       1.1463145,      0.44062365,       1.4166793,     -0.84014178,    -0.064754432,     -0.19619083,     -0.99224437,       1.7708968,      0.37691667,      -2.0509464,       1.2339894,       1.1094916,     -0.66488248,     -0.57765566,     -0.90298983,      0.95167849,     -0.38554532,     -0.76026159,     -0.12563983,      0.37232325,      -1.0402615,      0.06454717,      -1.4242324,     -0.33720583,      0.11657606,       1.0468758,      -1.3049862,     0.051451832,       1.6416087,    -0.043995788,     -0.57529348,      0.16436816,       1.1508713,      -1.0965995,      0.91658141,     -0.78229519,     -0.51588279,       1.8771601,       0.5921699,       1.0051707,       2.2414284,     -0.84825209,     -0.88085229,     -0.15823418,      0.29586637,     -0.74966108,      -2.0781522,      0.41488319,     -0.51748427,       -2.202493,    -0.093369741,      0.99586584,       -0.492057,       0.5346279,      0.23261588,     -0.19242278,      -2.4949815,       1.1049192,      0.37532694,     -0.69865336,     -0.91869668,     -0.58181226,       1.4647323,     -0.58953097,     -0.28932773,      0.22278609,     -0.31631501,       1.2424965,      -1.6513247,     -0.34414114,      -1.4052701,      0.08383654,      0.60998833,      0.90171365,    -0.025993742,      0.73614423,     -0.23330478,     -0.23089075,    -0.040832726,      0.90828489,    -0.037313386,     -0.47975822,    -0.018362415,    -0.045124449,     0.088910896,     -0.13084974,       1.3965599,     -0.68713267,      0.35178365,       0.0402153,       1.4058429,     -0.11022527,     -0.11896274,     -0.85178192,      0.73094143,       1.6172552,      0.52608596,      -1.2860338,      0.81926805,      0.88604213,     -0.41179479,      -1.3721602,      -1.0644249,       1.4264085,     -0.71452526,      0.89788837,     -0.46491811,       1.6969541,      -1.0465691,      0.18134993,       1.2402383,      -1.5884113,      -1.0575876,       1.4042671,    -0.048851647,     -0.97361195,      0.68563281,      0.10142082,      -2.0378824,      0.17199719,       0.1346553,       1.8474619,     -0.29735142,      0.73716694,      0.50552513,     -0.11552919,     -0.18576483,       1.1793298,     -0.88775018,      0.51252212,     -0.71653038,      -1.8282853,      -1.1774591,       2.0063207,   -0.0053071231,        0.566841,      0.34173446,      -1.0494332,      -1.0488259,      0.34662761,      0.76815015,     -0.21370656,      -0.5354759,      -1.2452876,      -0.0496849,      -1.5560835,      -1.7925257,      0.90963836,       1.4114916,     -0.23272253,      -1.7435804,     -0.95832394,     0.084809836,     0.074038813,      0.87828213,      0.68024073,      -2.1882193,       0.1107086,    -0.010991716,       1.7201925,      0.63480386,     -0.24683381,     -0.86115495,      0.97369191,       1.3091567,       -2.307078,      -1.0507882,      0.65999649,     -0.12309934,      -1.1882783,     -0.61948418,       1.8284991,      -1.0139853,     -0.98085574,     -0.42476341,    -0.039191396,      0.84218354,    -0.062569012,      -1.5594692,     -0.29659221,      -0.1045988,      0.31493514,    -0.036340613,     -0.46817502,      -1.7575411,     -0.14853729,       1.4227519,       2.9028452,    -0.079889585,      0.54524789,      -1.1005017,       1.4853368,    -0.015495954,      -1.6757436,      -1.4724514,      -0.6945796,     -0.68084628,    -0.050093823,       1.9620346,     -0.66219715,       1.6359713,     -0.69376594,       2.2900591,      0.20340115,       0.1328501,      0.62719753,     0.075799526,      -1.4011112,       0.1295743,     -0.80267131,      -2.4460366,     -0.80358735,       -1.589696,     -0.96919684,      -0.1856092,     -0.41681443,      -1.2131698,       1.3096393,      0.87412658,      0.81663183,      0.96664746,      0.23559888,       1.9630871,      -0.2094752,      0.25623217,     -0.21225947,      0.29229122,     -0.26250445,     -0.64192192,     -0.69619894,      -1.2125235,      -1.1151539,       1.1520252,       1.7098157,        1.458872,        1.475109,       -1.161575,     -0.09336523,         1.02886,     -0.80971996,      0.52970648,     -0.78143947,     -0.52473185,        1.173995,     -0.28609038,      0.91821943,      0.97234165,     -0.35281649,     -0.46905479,      -1.0782003,      0.11869002,     -0.39774879,      -2.3373536,     0.033252866,      -1.4803829,       2.6459806,     -0.80768509,     -0.80940776,      0.64500804,      -1.1599304,      -1.3899739,     -0.41987677,       1.2544886,      0.46536557,     -0.68532173,      0.56457691,     -0.24847768,      -1.3564894,     -0.23364892,      -2.1431579,     -0.12244949,       0.3942025,     -0.24718198,      0.41505356,     0.060056525,       1.5457629,     -0.55893615,       1.0762925,      -1.4890377,       -1.355341,      0.95545361,       1.1214756,     -0.69942271,       1.2685369,     -0.47896443,       -1.429407,     -0.20796898,    -0.074977711,     -0.46628893,      -1.5185558,      0.45229789,     -0.88730421,     -0.46804833,     -0.53258901,     -0.48563503,      0.18546179,    -0.084589407,      0.29793418,      0.14103152,      0.22093169,     -0.76995008,     -0.46235684,       1.8620914,      0.25639668,      0.44478524,      -1.8434979,       1.2139403,       1.7664804,      0.65291181,     -0.28258605,      0.79419213,      -0.2065866,     -0.28857266,     -0.76419993,      -1.5085226,     -0.80537146,    0.0014734406,       0.2558335,      -1.1205938,        0.496467,      -2.2049406,      -2.4638649,      0.88868574,      -1.5547186,      0.20953485,      0.61114025,      -1.9881994,      0.83604102,     -0.14894936,       1.8104573,       1.4206739,       1.0260992,    -0.023039213,     0.039889238,      0.24872204,     -0.37210597,     -0.79720281,      0.40391016,      0.23620459,      -1.3332561,      0.24625655,      0.43894611,     0.068957783,    -0.086905686,       0.3403254,      0.45566676,     -0.92983249,       1.6974726,     0.038726428,      0.36323047,     -0.76191121,     -0.65555681,       0.5589028,     -0.52686862,       1.2673933,       2.0825628,      0.53341291,     -0.16052836,      0.15686141,     -0.89023504,     -0.12091914,       1.3369768,      0.84227664,     -0.61137778,     -0.11292912,     -0.19933528,       1.0946218,      -1.7015635,      0.18220733,      0.16639159,      0.46290998,       1.1735539,       -1.517036,      0.70658571,      0.93513345,      0.16007762,      -1.8918559,      0.67119417,     -0.67523361,     0.096584912,      0.36553002,        1.657894,     -0.46986548,      0.49603409,      0.12227271,     -0.87665202,       1.7996361,      -1.1798258,      0.89117242,      -1.0016326,      -1.2439752,       -0.631886,     -0.58736486,      0.48805104,     -0.16528064,       0.3996008,     0.013268018,       1.0055475,      0.40096358,       1.5725928,      -1.4255064,     -0.92813048,     -0.11451447,      -1.4699198,      -1.5025033,      0.76232208,     0.070518832,     -0.74126411,      -1.9352513,      0.33252191,       1.1132586,       1.9342022,     -0.36972649,      -2.4975242,     -0.89610254,     -0.48136852,      0.12977714,       -2.182221,      -1.3573656,     -0.24807579,      0.33593329,       1.5293308,    -0.048549359,      0.25709131,     -0.19708203,       1.2822123,      0.81347985,     -0.25092693,      0.94253111,      0.14913653,      -0.0693486,       1.0050529,       1.4961803,      -2.5015868,     -0.65447386,      0.84829295,     -0.29108849,      -2.7044888,       1.0754807,    -0.048289488,      0.87021557,       1.8818363,      -1.8730269,      -1.4489621,     -0.91851637,     -0.18487883,      0.27508526,       1.0525473,       2.1423774,     -0.57056998,       2.2302875,      0.99790954,      -0.8299428,     -0.98019993,    -0.092442597,       0.8435843,      -1.7068806,       2.3341662,     -0.38820973,      0.48985718,      0.81840557,       1.6803582,     0.048422465,      -0.1331659,      -1.6276129,     -0.39666969,     -0.31885989,      -0.5543697,      0.56482022,      -2.1763729,      0.82443099,      -1.4527528,      -1.1039947,       1.1890277,     -0.39954615,      -1.1765844,     -0.51164125,      -1.6740338,     -0.32745621,      0.63135975,      -1.1058018,      0.11973449,     -0.46078661,      0.73970446,    -0.078514123,      0.82741593,        0.865125,       0.6337513,     -0.21286123,     -0.73161575,      -2.0659946,        0.409799,      0.91804231,      -1.5428874,       1.2437905,     -0.63798158,      -1.0628626,      -1.1965496,     -0.71611567,     -0.69349865,     0.071288382,     -0.95121771,     -0.45782173,     -0.26773446,      -1.0809599,     -0.64690876,       -1.761009,      -1.2519941,     -0.13057386,       1.0582828,      0.46621453,      0.87701511,      -1.4080124,      0.32222061,      -0.7512712,     -0.44258698,      -1.1704152,       1.4196596,        1.044675,       1.0880974,      -1.5945541,     -0.13558144,      -1.7217162,      0.95095447,      0.14020356,       1.1139313,     -0.69527976,      -3.1501646,      -1.9068208,     0.028140394,     -0.15752903,       1.0630466,       2.0617611,      -1.1820958,      -2.0048444,      0.54915603,        1.278095,      -1.5564903,     -0.18909631,      -1.1927049,       0.5434843,     -0.59900529,     -0.20061913,        1.086454,      0.02751203,     0.064731584,      0.88673079,      0.05685749,      0.35628192,      -1.6579705,     -0.40284354,      -1.1431762,     -0.19529259,      -1.2485985,      0.40265916,       1.5682333,     -0.72724963,        0.141833,       1.4404127,      0.98161697,     -0.45196541,       1.4835347,     -0.53730688,      0.12817658,       1.7334366,       1.6493129,    -0.068217512,      0.98994065,      -1.4612883,      0.43113049,     -0.91979144,     -0.61406214,     -0.99742741,      -1.3059367,     -0.74703042,     -0.64730672,      0.27435612,      -1.0707857,     -0.23801829,      0.64560093,       -2.651033,       2.1421451,     -0.82815362,     -0.47977749,    -0.046401337,      0.85378694,      0.80194061,       -1.445562,     -0.29773078,     -0.46214769,      0.04976452,     -0.34119857,      0.20304972,    -0.020339002,     -0.39955421,        2.194094,     -0.16211633,     -0.77453402,       1.2538325,       1.4006396,       -1.036626,     -0.96152742,     0.061447043,      0.56920154,     -0.84255849,      0.52295967,      -1.0377937,       1.3550322,      -0.4394107,      -1.6623298,       2.0688568,      0.87256737,      -1.1167347,      0.44559816,     -0.54749793,      -1.0007315,     -0.61250333,      0.21299352,      -1.1357459,       0.8045429,     -0.64867008,      -1.3139249,       1.4845798,     -0.53160257,      0.72785984,      -2.4793537,     -0.32211398,      -1.1756471,       1.3102575,      -0.7116426,     -0.35061464,       1.9501851,      0.65967904,     -0.26240259,      0.28471194,      0.67507142,     -0.26024488,     -0.54025123,      0.49740204,    -0.015229697,      0.21651939,      0.95163373,    -0.093175611,      -1.1339086,      0.69927228,      -1.0670131,     -0.85615721,       1.4169855,      0.34030269,        1.356927,     -0.84769931,      0.91019085,       1.1493718,    -0.022860479,     -0.53716382,      0.47723416,       1.0328088,     0.091180403,     -0.59091503,       1.0008424,      -1.6894121,     -0.37111023,      0.23660254,      -1.2863366,      -0.8964414,       1.4680381,     -0.25338065,      0.11624692,      0.21891632,      -2.1799526,       0.2735863,     -0.05159798,     -0.72088059,      0.17096324,     -0.51178515,     -0.70305884,     -0.95664901,        1.083497,      0.76226882,     -0.67918557,       2.0039293,    -0.020632635,     -0.37774276,     -0.29583078,      0.58910725,      0.85786273,     -0.71098389,      -0.1676759,      -1.5772415,     -0.17957488,      -1.1273097,     -0.14380329,       0.2222431,      0.20845199,     -0.72918517,       1.7951246,     -0.30735318,      -1.0699918,       1.1761187,     0.019505484,       2.2376524,       1.0532039,      -1.9054404,       0.8732492,      0.24839899,     -0.55349337,       1.0262005,       1.2269945,      0.29559568,      0.88668578,     0.012049499,     -0.60261644,      0.49684984,     -0.79040399,      -2.5742466,      0.50063659,      0.48587016,     -0.41078248,      0.77446211,     -0.83475135,      0.52380472,      0.29305928,      0.10960781,     0.016781842,      -2.1373945,     -0.84466802,      -1.0373904,     -0.36847209,      -1.2457043,      0.21616274,       0.9831683,      -0.8254229,     -0.22437391,      0.54086869,       1.5459878,     -0.18439228,    -0.047749433,       1.0415501,     -0.93450896,      -1.2765929,     -0.19477003,    -0.074061526,      0.83657904,      0.14763729,      0.24066832,       1.4550984,       1.1708165,      0.85097328,     -0.66279611,     -0.08346918,     -0.53816389,     -0.48492751,      0.39063972,       1.9609635,      0.77667543,       0.3233389,      -1.2287996,       1.0399679,     -0.69209101,      0.74433453,      0.88047952,     -0.51148528,     -0.41953786,      0.15842109,      0.56812359,      -1.2918452,      -0.3124559,      0.30834596,      0.50992423,      -1.2769085,      -1.3838147,      0.54531137,      0.14922452,       1.6942936,       1.6410012,     -0.11683919,      -1.7503552,     -0.17032805,     -0.23772427,     -0.77685041,      0.42817724,      -2.0322428,     -0.12268738,       0.2712279,      0.23747014,      0.10682982,       2.2006238,       0.7472401,      -1.0648754,    -0.053469972,     -0.33475345,     -0.15956786,      0.23449102,      0.13232479,      -0.5368423,     -0.25974412,      0.40789393,       1.1026399,       1.1670276,       1.1747453,      0.78867995,      0.46175904,     -0.32907136,     -0.35147516,      0.21920188,      0.55919666,     -0.35324469,        1.159205,    -0.004203268,      0.85457862,      0.25170246,      0.60271518,      0.25548702,      -2.1510881,     -0.94974918,     -0.25041781,      -0.7661622,       1.2292641,       2.0549109,     -0.43482602,      -1.2841766,     -0.26666235,    -0.046658535,       1.2302802,      -1.3710696,      0.15364117,      -1.2232005,       1.9702315,      0.18920351,      -1.2911958,      0.61616554,      0.68588869,       1.3325649,    -0.012684501,     -0.48149467,      -1.7851781,      0.50741772,     -0.78792531,        1.257323,     -0.84635098,      -1.1108816,      0.81229537,      -0.9640053,     -0.62889451,     -0.57420012,     -0.19126295,     -0.64111109,    -0.017546676,     -0.22158882,       1.2046307,     -0.12024274,     -0.16757431,       1.3356917,      -2.7755451,      -1.1823024,       1.1395171,      -1.7811893,     -0.71650885,      0.81373575,     -0.25664113,      0.51153738,   -0.0018251847,      0.10608033,      -0.5565029,      0.78376936,      0.52144253,       1.3665065,     -0.75207695,       1.4423439,    0.0046285145,      0.16518166,     -0.21369122,       0.9715282,      0.11279132,      0.70595474,      0.40774716,        1.642136,      0.87507055,     -0.79891411,     0.035413211,       1.2084456,       3.1334638,       1.0178557,       1.2342479,     -0.18752251,      -1.2651695,     -0.72225878,       1.1299447,     -0.38904281,       1.0953878,       -1.027302,     -0.84451738,      -2.3322788,     -0.69398402,      0.17388553,      0.56343069,     -0.41943199,     -0.48835649,     -0.64908674,      0.29275225,      -1.2904122,      -2.8881384,      -3.1461665,     -0.46555168,      -1.4224554,      -1.1399376,       1.3082719,      -0.4186911,     -0.36520211,     0.054529319,        1.403407,     -0.30056003,     -0.24313655,     -0.46464069,     -0.83809268,     -0.72223038,     -0.31335532,      -1.1910962,     -0.38585932,      0.25468742,     -0.17422779,       3.1241307,       1.3389579,       1.9977239,     -0.43115284,      -2.2437325,      0.19067847,       1.1901886,     -0.66350483,     -0.65781765,     -0.54919507,       1.6607734,     -0.46347388,      0.10585314,     -0.76028217,      0.12778944,      0.96963328,      0.30915376,       0.3388021,      0.80769415,      0.84870659,       -1.595059,    -0.012066696,     -0.33370493,     -0.92117876,     -0.38865643,      0.89904705,      0.33622088,     -0.83755668,      0.80805386,      0.28356064,       1.0971514,       1.6447611,     -0.34522107,       -1.087101,      0.39090411,       2.0046833,     -0.57923753,      0.50626527,      -1.6958695,      -1.7122698,      0.27682651,      -2.5079128,       1.0079728,       1.1471385,       1.8036548,      0.71868817,      -1.0361177,      -0.1252884,      0.45570597,      0.21854162,       1.1447907,     -0.13882704,     0.022400045,      0.49373319,     -0.50045402,     -0.82405709,      0.69252155,      0.85669391,      0.63126843,     -0.79474986,      0.18197831,      0.29946807,       2.2275797,       -1.366096,      0.89445251,      0.77880929,      0.66219728,    -0.036593775,      -1.4211892,       0.6238749,      0.17690246,     -0.52831618,      0.24183192,       0.3259133,     -0.97312231,      0.96825589,      -1.9892332,      0.67328903,      0.36466021,     0.011488224,       1.9778786,     -0.77179675,      0.16547916,       0.8838356,     -0.55884632,      0.14752162,     0.046426208,       1.5658187,     -0.84235321,      -1.4743372,     -0.35283559,      0.96176369,     -0.95149732,      -1.1696026,     -0.92828408,      0.20475574,      0.61233983,     -0.30308519,      0.90731009,     -0.54471617,    -0.035504194,       0.2377297,       0.9330835,       1.8464113,      0.50722696,       1.8131548,      0.47377553,        1.055376,     -0.84151618,      0.88339216,       1.4890734,      0.40306038,       1.1355166,     -0.82128341,     -0.76221396,      -1.6746962,     -0.76522344,    -0.033794552,      -0.2537031,      0.59344049,     -0.57887398,      0.80620744,     -0.99899808,      -1.7667038,      0.16521166,      0.64388259,      0.86611683,      0.17391914,      0.98467792,    -0.094434626,       -1.771148,      0.44516515,     -0.76733121,     -0.12672624,      0.49464603,      0.15795023,       1.8346252,      0.62018412,       1.4512963,      -2.3064233,      0.50730563,      0.81216014,       1.0745848,     -0.14758404,       1.3756035,       0.2168488,      -1.1186468,       1.0435585,       1.9399758,     -0.66536846,     -0.74655465,     -0.61712529,      -1.4511633,      -0.5090768,     -0.32701166,      0.88158841,     -0.34605837,      0.42760946,     -0.97575098,       1.4929144,       -0.151464,      -1.0682348,     -0.36410215,     -0.74577701,     -0.91576881,     0.068564024,      0.24812722,     -0.79707148,      0.77070057,       2.2269772,     -0.24096111,     -0.79772532,     -0.98941462,      0.95256602,    -0.056358993,       1.2816831,      -1.1099196,     -0.29967347,       1.3538479,     -0.81968558,      -0.3940733,     -0.80054635,      -1.0040405,      -2.2104503,     -0.41487542,     -0.23353019,       1.2031482,     -0.17683923,       1.2018212,        2.069136,      0.80352024,     -0.15949448,    -0.025046326,      0.29852894,      0.37072609,         1.19246,       1.2825105,     -0.33815953,      0.50113882,       1.4882277,     -0.45324613,     0.087113992,       1.3233645,       1.2728189,     -0.61387897,     -0.53634743,      0.21733212,       1.2655267,     -0.35144885,      0.77203825,     -0.37661276,     -0.70959222,      0.72270224,      -1.5999648,    -0.069187341,      -1.2552872,     -0.54735508,     -0.70854376,      0.74966114,       2.2224812,       0.4773147,    -0.081749364,     -0.70450891,       0.1735471,       -1.013457,     0.051831553,     -0.79669731,     -0.95394074,      0.54367197,     0.072697765,     -0.11864414,       1.3127775,      0.59164187,      -1.2153157,      -2.0815959,       1.3730029,     -0.44039565,     -0.39489327,      -0.1985912,      0.91617086,       2.7018729,      0.64015715,       0.1517464,      -1.2725898,     -0.81058475,     -0.89756649,        2.166709,      0.60187269,      -1.4032178,     -0.63429554,      0.37778382,      -1.3111424,        1.367556,      0.62746858,      -1.3835665,      0.69258072,      -1.8727954,       1.3320479,      0.15750882,       1.4300015,      0.72149716,      -0.7438792,      -1.4376044,      -1.1788474,      -1.3187182,     -0.76604998,      0.72756513,     0.060477888,      0.39281431,     -0.15674103,        1.388267,       2.0505544,    -0.038933299,      0.55118879,       2.2887039,     -0.16464306,     0.041153815,     -0.27515597,     -0.40291793,     -0.98473513,      -1.7075292,      0.55026902,       1.3849139,      0.78150008,       2.1617642,       2.3238461,      0.62186665,       1.1566313,      -1.9355256,     0.043492637,      0.35062734,      0.61397892,       -1.688653,     -0.13806732,       1.2358784,     -0.84853265,      -1.7318568,      -3.0280054,      0.57844592,     -0.68799078,      -0.3244131,     -0.40006261,      -1.0387071,     -0.89899182,       1.9246359,      0.83559659,     -0.66173563,      0.99580318,     -0.38479461,       1.0967881,      0.86156388,      0.48886557,    -0.064358504,     -0.91597164,     -0.14542669,      0.44163812,      -1.2250379,      -1.1396832,    -0.047113183,      0.82918217,      0.35105089,      -0.9065422,     -0.70513849,     -0.32004437,     0.086385203,      0.84679805,      -0.5320461,      -1.5116017,       0.9255811,      -1.3597577,     -0.98864795,     0.030298722,      0.70370118,      -1.0172946,    -0.062256681,       1.0338903,      0.63176745,      -0.4036051,       1.1922679,     -0.29877529,      0.14602056,      0.89479705,     -0.50899835,       1.0086791,     -0.52564279,      0.42925637,     0.015577317,      0.35309081,      -0.1106089,     -0.37601345,      0.59325925,     0.057078724,      -1.0005327,     -0.28867606,     -0.89368697,      -1.0998091,      0.30436858,      -0.1403378,      0.96654187,     -0.82555869,       1.1182197,      -1.2949057,     -0.17800563,      -1.5928804,       1.3043737,     -0.13297997,      0.72340188,     -0.24400459,      -1.2588093,      -1.3281829,      0.11041439,     0.048142106,     -0.33073936,       1.4328179,    -0.021494141,      0.18414458,      -1.8930256,      -2.8832034,     -0.50279076,    0.0048012163,     -0.16664452,     -0.57804364,      0.19778047,      -0.4940804,      0.72523657,       0.5239999,     -0.45384211,     0.015876129,      0.26792319,       1.1763364,     -0.87444586,     -0.17687125,      0.75311641,      -1.3304222,      -1.9192105,       1.0176444,     0.010790737,     -0.94265919,        0.394348,       3.4275944,     -0.48575703,       1.5087038,     -0.34719615,      0.71632331,       0.6580073,      -1.3268086,      0.36847773,       1.9117693,     -0.15199555,     -0.56656167,      -1.2472568,       2.5695111,     -0.15716166,      0.30640375,      0.52178221,       1.4599445,     -0.26837117,      -1.8839034,      0.67709115,     -0.22586158,      0.78345959,     -0.63170458,      -1.7995416,      -1.5516366,      0.10801154,      0.89476192,      0.63011016,       1.8122334,     -0.36615961,      0.33410697,      -1.0535153,      0.51352795,       1.4809425,     -0.71296233,     0.022608467,      0.93647461,     -0.36149037,      -1.8401753,       2.7610016,     -0.97161938,     -0.98513927,      0.77342422,      0.87335248,      -1.3498036,       1.8579643,       1.2552393,      0.66646749,      0.68744993,      0.33137648,       1.3531621,       2.6134914,     -0.36069551,      0.91867144,     -0.65101963
+2014Y,     0.068352044,      -1.7384234,      0.52779694,    -0.099392253,      -1.3695231,      0.63899691,      0.46511001,      -1.9304544,      0.89657526,     -0.35748163,       1.2976901,     -0.65164695,     -0.96882671,     -0.39790067,      -1.3793011,     -0.82854343,      0.24603419,      0.74486366,       3.0559008,      -0.7748916,      0.81120845,       0.3958852,      0.43737944,      0.79451757,     -0.60826673,       -2.185884,     -0.37875929,      0.93494039,     -0.54921142,      0.49993872,      0.93077683,    -0.077190143,     -0.91583893,     0.081970803,       2.7463426,       1.3621806,       2.0004159,     -0.22774023,       2.0530933,      0.64492909,      0.14878183,     -0.67183003,     -0.42863644,     -0.78347336,       1.2621188,      0.33408002,       -1.205405,      -1.4864618,      -0.7691246,       1.7526885,      0.20511626,     -0.84821427,       0.4987017,      -1.0847633,      0.59314652,      0.18700277,     -0.74720946,      -1.7389959,     0.051981702,      0.94968939,      0.71796899,      -1.5756335,      0.98134862,      -1.5140422,      -2.6065711,     -0.15014004,      0.37903127,      -1.2936939,       -1.151478,     -0.35824419,      0.12010096,      0.12252919,     -0.74145723,        1.360695,      -1.4002322,      -0.2033513,       1.1644071,      0.33477305,       -1.227509,      -1.4500838,      0.62668289,       1.0942678,      -1.5961826,      0.31041238,      0.67452744,      0.68619006,      0.68684684,    0.0039691185,      0.73802887,       1.1109966,     -0.29543301,      0.49392286,       1.0492197,      -0.3471478,      -1.4767912,      0.47693366,      0.35126202,     -0.52100663,     0.060683674,     -0.56286153,     -0.24305341,      0.62757337,      -1.4841093,     -0.23283522,       1.6830801,    -0.078938185,       2.0212998,      0.59977315,      0.46127104,     -0.95234826,     -0.27752325,      0.42911029,      0.26946426,      0.89268702,     -0.21075973,      -1.0625262,     -0.72766554,     -0.81469591,      0.75613981,       -1.099451,      0.36393154,       1.8147236,       1.5462238,    -0.095903167,      -1.3991924,      0.33559548,      0.72819102,      -1.4182353,      0.90242937,     -0.73141516,      -1.3182487,      0.94376224,      0.59658321,      0.21003946,      -0.7733308,      0.15437906,      -1.9361116,      -1.5751263,      -1.4923747,      -2.3813561,     -0.44149416,      0.92220733,     -0.79227659,  -0.00045509344,       2.0699648,      0.29820681,      0.84487293,      -1.4804191,      0.82161627,     -0.43283966,      0.40068009,       1.4139429,      -1.0429969,    0.0075014486,       1.1711604,     -0.18611104,       -1.227675,      0.06456755,      0.09628645,      -2.5313852,       3.0424477,      0.14366971,      0.41997312,       0.1540741,      0.10404245,     -0.36072478,     -0.82067981,      -1.2160887,    -0.038939175,       1.3117929,      0.75473842,     -0.64540448,     -0.20320433,      0.58525873,      -1.8507758,     -0.59806903,     0.031361523,      -1.6158046,      -1.1122174,       1.5836339,     -0.65625645,      -0.2009743,     0.068324393,      -1.2271842,     -0.60777068,      0.15646795,      -1.5830447,    -0.045018379,      -1.1345604,    -0.015281449,     -0.38894185,      -1.4692626,      -1.0030701,     -0.70012705,      -1.6276765,      -1.3958149,     -0.83865259,     -0.13842498,      -1.5452711,       1.0327079,      -2.2811853,      0.77778243,     -0.11754405,      -1.2141008,     -0.15456132,      0.66138001,      0.31470786,     -0.49466069,      0.23957373,      -1.5649106,      -1.2849298,      0.52403643,     -0.08256583,       2.1424938,     -0.21946432,      0.78605076,       1.3921535,     -0.11997774,      -1.0710808,     -0.94268383,     -0.39247485,      0.30137648,      -0.1398555,     0.012089778,    -0.041370572,      0.30836959,      -1.0692369,     -0.58958524,    -0.093724542,     -0.15495994,      0.27750258,     -0.73164749,     -0.11746438,     -0.22212575,      0.23014109,     -0.58928245,     -0.22296263,      -1.5024417,      0.94601511,      0.81730375,      -1.2449209,     -0.19911349,      -1.2967149,       1.5252424,     0.032932502,     -0.19981396,      -1.5496236,       1.1765704,      0.35843491,     -0.27739984,      0.49129778,    -0.086555658,      0.91249094,      0.30020197,     -0.18322896,      0.20891554,       2.3961099,       1.1941733,     -0.75032779,       1.2189418,      -1.7081682,      0.53194771,      0.37062351,     -0.24426963,     0.063209846,      0.65152941,      0.96015356,    -0.044176588,      0.95285938,     -0.76390028,      0.57324464,      -1.7617334,       1.1307689,     -0.97890814,      0.61381382,      0.13474148,      0.07306424,     -0.63139242,      0.91916393,    -0.058753605,      0.98636532,       1.9694906,    -0.032535819,      -1.5606375,     -0.37425509,      0.94256129,     0.088050824,    -0.054072012,     0.085558287,      -1.2229736,      -0.1273709,    -0.060500252,     -0.61446971,      -1.9423663,     -0.73695319,     -0.33450286,      0.35763209,      0.41099162,      -1.1485555,       2.0643477,       -1.577763,    -0.029633554,      0.58050658,      0.82232726,      0.59166851,      -1.5642584,     -0.82615007,      -2.2210381,      0.81457035,       -1.720556,      0.75414884,     -0.93971284,       1.0986985,      0.21092694,       1.1854054,     -0.45926617,     -0.31590499,      0.26170206,       1.0516789,      0.97981683,      -1.1481622,      -0.3200654,      0.61353712,      -0.3280754,     -0.98075717,      0.40757291,      0.32479608,      0.50192545,      0.10493866,      0.44551313,      0.45603017,      0.13975709,       1.3677044,      0.55124055,     0.099642109,      0.16637435,       2.1139569,       1.2262536,       1.2907133,      0.43601802,      0.85807071,      0.49530072,     -0.42147969,      -1.0114243,     -0.42298947,      0.51804299,     -0.88463502,     -0.54406418,      0.13922361,     -0.88706198,       0.6008492,       1.1321489,      -1.9728236,       1.1381691,      0.90354038,      0.63937302,       1.1970465,      0.65938026,       1.3051245,       1.0348145,       0.7371014,     0.060561656,       0.4435182,      -0.1805803,      0.72894596,      0.03623826,     -0.95895098,      0.54817128,      0.95918076,     -0.70472682,      -1.1620656,    -0.044360796,      0.31343732,      -1.2484601,      0.43800732,       0.3697733,     -0.81562041,     -0.84171891,     -0.75001821,         1.04876,     0.012193152,     -0.88262722,       1.7060746,      -1.1671059,      0.31248405,       1.1036541,       -1.970202,      -1.3582698,      0.36828991,       1.1048991,       1.5025616,      -0.3088219,       1.1336498,      0.71798597,     -0.96454852,     -0.40025002,     -0.78231319,     -0.69149704,      0.48045214,     0.041516366,      -1.0621542,      0.95157861,    -0.093544423,     -0.38161179,      -1.4609269,     -0.86983745,        1.061895,     -0.65003927,       1.2704545,     -0.83896525,      0.16773642,      0.27087378,     -0.36809397,       1.4877835,      0.11742122,     0.071309283,       1.3724197,      0.42815185,      -1.6678079,       1.0516642,     0.011074998,    -0.016937713,       1.5201653,     -0.32701371,   -0.0031333633,      -1.5786469,       2.0409638,     0.058085801,       0.7488169,      -1.0966785,       1.2703729,   -0.0049408164,     0.035976703,     0.074362282,    -0.050352526,     -0.47723419,     -0.68433968,     -0.28060207,       1.0751785,      -0.9321224,        1.594344,      0.33434191,       2.3655245,      -1.0478982,     -0.47522082,      0.93230656,     -0.81213907,     -0.27277555,       1.3143044,      -0.8029029,       1.2919167,      0.64113327,      -1.2897022,       2.3000898,      0.32506527,      0.57898495,     -0.87684094,       3.0483502,       1.5075297,      0.88678643,      0.97577398,      0.69897431,      0.88732889,      0.31739868,      -1.8351118,       1.2433715,      0.93465616,     -0.55573956,      0.69118458,       1.0268511,       0.7814311,       1.6788664,      0.11208365,     -0.18167829,      0.54561941,      0.66054728,      0.81163291,      0.34431496,      0.50637321,       2.1129469,      -2.4211142,      -1.0565366,     -0.24134179,     -0.60474361,      -1.8988848,        2.044973,       1.1598996,       1.2479491,     -0.44412215,      0.66746093,       1.0628646,      0.97111189,      0.11244615,     -0.43670429,       0.8502357,      -1.5639199,       -0.105293,     -0.35043649,     -0.73530593,     -0.80684355,       1.3861011,       1.0742433,     -0.81650879,     -0.71113093,      -1.8481204,       1.8280149,     -0.61116962,      -1.4618778,      0.27922575,      -1.9121759,       1.7119372,      -1.2184927,     -0.89370492,       -1.731655,        -1.26957,       1.1955803,      0.57569959,      -1.7782781,      -1.5323038,      0.55466476,     -0.94599631,   -0.0056253218,        1.570229,    0.0031158186,    -0.092593409,      0.53386755,     -0.20895284,      -0.4811923,      -1.4235811,     -0.70631337,       1.8251515,       1.8606285,     -0.50716481,     -0.15144018,       1.4664456,      0.73409301,     -0.10487483,     -0.15032872,     -0.56380244,      0.19850485,       1.9317091,     -0.13873155,     -0.28240077,     -0.23227908,      0.85090095,     -0.24271864,     0.010020501,       1.7208228,      0.74004169,      -1.7714017,      -1.4070208,      -1.0058683,    -0.020895686,      0.51380566,      -1.7279212,     -0.49239271,       1.4465253,        1.461789,     -0.91434339,      -1.8498615,       0.3277559,      -0.6275739,      -1.4706667,     -0.57003931,      -2.2012031,      0.35237037,     0.042045637,    -0.085216333,     -0.83421312,      0.14606877,      0.16650859,      -1.2687489,      -1.1820629,      0.95662111,      0.79139967,       1.0317929,      0.30504974,      0.24362596,     -0.76322027,       -1.946495,     -0.14401127,     -0.54902652,       0.1065298,     -0.13945803,     -0.58371415,      -2.5925628,      0.28368783,       1.8485162,       0.6820669,      -1.9303265,       3.3378955,    0.0080098226,      -1.0616015,       1.1670882,     -0.10830361,      0.15541729,     -0.63459576,      0.59205998,    -0.029528207,     -0.38728611,      -1.0043951,      0.40664604,     -0.31041689,      -1.2734208,     -0.27832583,     -0.43868738,       1.3375072,     -0.20833959,      0.82856399,       -1.679624,     -0.79751014,       1.0911208,     -0.44738359,      0.13438217,      0.26860273,      -2.6907276,      0.93305591,     -0.94786786,       1.0012248,      0.67883313,      0.36507262,      0.25666238,      -1.1805714,       2.1434521,      0.81400171,      0.76207957,      -1.0208659,      0.86589645,     -0.90822771,   -0.0036574742,       0.4033059,      0.91733963,      0.60356794,     -0.17574488,      0.81939824,     -0.56007764,      -1.2503723,     -0.67857642,     -0.17529623,     -0.40471935,     -0.34733042,      0.34399219,       0.3836195,      -1.0589369,     -0.52600944,         0.63431,     -0.36498062,     -0.62832942,     -0.26806505,      0.38389479,      0.33536938,      0.10141652,      -1.3926406,      0.26191679,     -0.58593649,     -0.82382173,      0.62461117,    0.0076313115,     -0.28733103,       1.2745475,     -0.40162137,      -1.5999859,      -1.0716833,      -3.1532665,     -0.71261041,      -1.0417636,       1.0261519,        1.119995,     -0.24462977,      0.14654771,      0.39246414,      0.34188103,     -0.68283188,      -1.3378812,       1.1359465,       1.3288848,       1.1970734,       1.6480017,       1.1669285,      -1.3749127,     -0.98088532,     -0.36386058,     0.097850063,      0.15350088,      0.16783323,      -1.5907095,      0.49117824,       -3.441864,      0.17774692,     -0.58600379,      -1.8255844,     -0.86907564,     0.074066739,     -0.23575473,     -0.55756868,        1.039201,     -0.74711984,      -1.7906208,      0.46927346,     -0.10711443,     -0.60314123,      0.96081839,       1.1427447,      0.27866511,      -1.3716314,     -0.79456258,      0.36831355,      0.73922919,       0.1968669,      0.32228096,     -0.60652795,     -0.21596672,     -0.18083569,      0.11471075,      0.63390919,      0.10300526,       1.1665804,       1.9788258,      -1.3339575,    -0.053748216,     -0.23344131,      0.79106429,       1.1613688,    -0.057930162,      -1.0943949,      -1.0765885,     -0.73790139,      -0.5056616,     -0.52742127,      0.27154302,     -0.41564158,      0.40709088,      0.66681426,    -0.010355874,      0.47439531,      0.43959957,     -0.62121495,    -0.034922709,     -0.43885371,     -0.16545676,     0.027507412,    -0.084401737,     -0.81844885,      0.24183743,      -1.7453665,     -0.92906225,     0.087808797,       1.5170588,    -0.032951623,     -0.53689955,      -0.5811457,     -0.92314048,       1.7190933,      0.60752439,      0.83387388,     -0.12108531,       1.0077371,       2.2807461,      -0.8094284,      -1.2224008,      0.33122785,   0.00055199292,      0.54818584,     -0.68606251,       0.1987749,     -0.21964986,      0.08657721,       1.6225587,     -0.10955616,      0.83279633,      0.52062058,      0.44551191,     -0.26770632,      -0.9479234,         1.25868,     -0.43747963,      0.98220045,       1.3357153,       1.0552308,      -0.5966316,      -2.1167905,      0.19819527,     -0.43368697,      0.72420343,     -0.80326699,      -0.2012304,       2.5525983,      -1.4231509,     -0.55800883,       1.1314226,     -0.75710182,      -1.3163645,     -0.78350524,      -1.1399971,        0.282459,      -1.6424172,       1.7097051,      -0.3942319,       1.4124899,     -0.38624328,     -0.36286012,      0.48672142,     -0.55301967,     -0.35935883,      -2.5690933,     -0.36059698,       1.7641873,      0.12159597,      -1.2089824,     -0.81979562,       -1.013747,      0.48007211,      0.50791243,       1.0180357,      0.24410906,      -1.7394171,     -0.58840431,      -1.1075633,       1.7203262,      -0.8094169,      0.47654356,      -1.6240293,    -0.075746376,       1.2647598,       0.1955499,       1.5645295,      0.52283442,      -1.9716692,       1.5550361,     -0.73330226,       1.3961579,       1.9826214,      -1.2712766,     -0.91893206,      0.05927273,     -0.10328002,      0.11251987,     -0.44608856,     -0.83356101,     -0.14124779,     -0.39031027,       0.2533845,     -0.80693806,      -1.2141252,      0.77524909,       0.2736138,     -0.49099278,      0.11446329,      0.57986909,     -0.13623077,        1.070394,      0.28262863,     -0.32791721,       1.8237786,     -0.75365571,     -0.69808713,      0.13888627,      -1.1620793,      0.13812552,       1.0938193,     -0.67105325,      -1.0446554,    -0.054033001,      0.67590403,     -0.45643159,       -1.763963,     -0.61624335,      -1.2586971,      0.56900228,      0.90272962,     -0.17980766,      0.21415562,       1.0813585,     -0.91262594,       1.3253578,     -0.10345857,      0.21024695,      -2.2442279,     -0.95934574,       1.0441261,      0.51798836,      -1.5838325,    -0.080412864,      -1.1970368,      -1.9083873,       1.7363153,       1.1863897,      0.72471172,      0.77694984,     -0.95645733,      -2.8725903,      0.81336865,       0.3383195,     -0.43376718,     -0.34190916,      -1.9132864,     -0.22361286,      0.35259201,      -1.7558931,     -0.22233282,      -1.8668955,      0.35443183,       2.3268648,     -0.81251225,   -0.0071623503,     0.045112622,       1.0952444,       1.8182431,     -0.76045131,      0.63496378,       1.2780546,       1.6833336,        1.215407,      -1.0582494,      0.64088399,      0.82565194,       1.4240746,     -0.84771403,     0.088705517,      -1.8614679,      0.83694451,    -0.013748135,      -1.1743758,      -1.8393211,     -0.21918784,      -1.1383905,      0.26739626,      -1.1029586,      0.96845427,     -0.71678989,       0.6769181,     -0.53001474,     -0.90483673,      -2.8206165,     0.017713342,     -0.28545366,      -1.2788945,      0.81527701,      -0.4320685,      0.91752953,      0.49445216,       1.2817813,     -0.83183259,       1.5562176,      0.68865781,     -0.93031699,     -0.30317928,     -0.72398481,      0.92036753,      -1.8391722,     -0.18135418,     -0.52922084,      0.48117306,      0.38638078,       1.7688802,      0.59399572,       1.3836644,      0.95859394,      0.80365745,      0.32840318,       1.3320179,      -1.6625434,       0.9115735,       1.0207612,     -0.31069792,     -0.45847876,      0.63494386,       1.1931943,      -0.1126845,        1.019878,      -1.7796066,      -0.9387187,      0.15928461,     -0.40986369,     -0.89244738,     -0.90323868,       2.3482855,     -0.55283006,     -0.43086834,     -0.76387149,       1.8696382,     -0.40759778,      0.31893509,     -0.52119202,     -0.11295342,       1.0687046,      -1.5496772,       2.1301302,       0.8840196,        2.172194,     -0.33527278,     -0.99143725,      0.73651125,       1.0402607,    -0.030241066,      0.18440665,       -1.065249,     -0.58398517,      -1.9771423,      -2.1736725,     -0.63582735,     -0.28714125,     0.016737278,      0.97858292,     -0.53183244,      0.83057898,      -1.3362853,       0.8435604,       0.1260141,     -0.34251942,      0.49844852,     0.036529601,      0.45803767,      0.23989121,      -1.0394425,      0.80335088,     -0.35206517,      -1.1912249,     -0.69977908,     -0.80068183,      -1.8456481,     -0.29532662,     -0.51904376,     -0.68722143,     -0.29190015,       1.0413187,     -0.38551584,      -1.4006037,     -0.45090202,      0.74628767,      0.24850849,       1.4029518,      -1.0588534,       1.7778441,     0.010382425,     -0.68637812,       1.3648767,     -0.80586283,      0.93595733,      0.63156509,      0.55645307,     -0.22100604,    -0.039076664,      0.04269512,      0.84903092,      0.70797377,      -1.3749459,     -0.18485892,     -0.10822905,      0.88319311,     -0.55653137,     -0.20417427,     -0.12736921,     -0.79631961,      -1.2397335,      0.56704814,       2.0171909,      0.37475447,        1.149115,      0.18803897,      0.74722412,     -0.88930332,     0.048356943,     -0.21781442,      -0.6655173,       1.0683651,       1.5721781,      -1.7591524,   -0.0011782065,     -0.50000234,       1.2485021,       -1.710832,      0.32575318,       1.1639928,      -1.1194129,      -1.7912106,      0.68929988,      -1.9749749,       1.7247193,     -0.97526536,      0.86921602,     -0.70640224,      -1.0202289,     -0.36130857,    -0.041272441,     -0.93478367,     -0.27865271,      0.93705284,      -0.4941538,      0.71318481,     -0.85145517,     -0.75540668,     -0.40946206,       0.4014239,      0.43284058,      0.01177975,     -0.24241873,      0.34652045,     -0.42983105,      0.56597755,      0.23475913,      0.44239899,     -0.18801004,      0.33576011,      0.45659675,     -0.42159775,     0.063611097,      -2.3104219,      -1.6295044,     -0.38112739,     -0.32379404,      0.66628083,      -1.4012832,    -0.050300625,    -0.003341481,      0.53830571,       -1.135153,       1.1739561,       2.0215916,     -0.26918936,     -0.28810324,       0.9267984,     -0.49776002,      0.31444197,      0.33131262,     -0.35306935,      0.26937855,     0.069087755,      -2.3644953,      -0.8484014,      0.72078278,      0.92574141,     -0.35212342,       1.8680508,     -0.43193081,      0.65560014,      -2.4823809,      0.10383627,     -0.13753078,     -0.96634011,       -2.534669,      -1.0239708,      -1.9441436,      -1.4383046,      -1.0146462,      0.59503759,        1.367682,       2.6175997,      0.41994254,       2.3725991,      0.45472708,      0.85073358,     -0.63891462,      -1.5530695,        1.068117,       -0.442536,      -2.0446449,      0.36562081,     -0.95951916,      0.91371126,     -0.46811489,      -0.9878484,      0.57666509,     0.033926674,        1.286558,      0.53357061,     -0.85493714,      0.48720462,     -0.55010773,      -1.9843468,       1.0187484,     -0.38226245,      -1.1165551,      -1.8274761,     -0.98386446,       3.1775711,       1.0105955,     0.012876318,      0.98059342,     -0.66537671,      -1.9883007,     -0.54917346,       1.0228106,       1.1361821,     -0.95441733,      0.70987341,    -0.017222145,     -0.78782936,      0.70431546,      -2.4800781,      0.53674541,     -0.54904644,       1.9939551,      0.42021977,    -0.078195651,      -1.3108782,      -1.3536391,     -0.97311451,     -0.60379397,      0.32676318,        0.503094,     -0.71912238,      0.14212235,      -1.8300417,      -1.3747384,      0.30415823,      0.50704501,      -0.4300049,      -1.2110106,      0.92889494,      -1.4259774,       -1.794191,      0.44036503,    -0.017604839,       2.3041561,       0.5300805,     -0.30565474,      0.36250652,      -0.8448728,       2.9795329,       -1.120881,     -0.45799061,       1.4039772,       1.1599452,      -1.3004154,       1.1286989,      0.66822558,     -0.59018284,      -1.3305379,     -0.36495181,     -0.33904741,      0.16667918,       1.9318013,       3.0191102,      0.37132959,       0.4346845,      0.83550263,     -0.39592731,     -0.79615957,     -0.98360448,     -0.51130685,        0.319175,     -0.85060048,      0.12097574,       1.8498103,      -1.5159764,      0.50829391,      -1.5187172,     -0.83804556,      0.90226963,      0.14433811,    -0.075928035,       1.2580865,     -0.62817347,      -1.3730092,     -0.73819946,     0.082258449,       1.1514663,      -1.0599034,       1.6695906,     -0.79534549,      0.56479239,    0.0036178228,       1.3447332,     -0.84137854,     -0.30457782,      0.39472058,      0.24992764,     -0.56379118,    -0.063822088,      -0.1514239,       2.0659135,     -0.41982611,      -1.7057602,      0.26211722,      0.12863468,      -1.2924066,      0.35506623,      0.10692212,     -0.27046552,      -1.6718923,     -0.66302587,   -0.0079716355,     -0.60660264,      -2.5388898,       1.2771584,     -0.82476276,      0.18254618,     -0.44587662,       -1.868709,      0.39483104,      0.29398263,   -0.0039894137,      0.17915429,      -1.0527313,      -2.0716062,       0.6815136,     -0.51198296,    -0.011652535,     -0.40407524,     -0.91253962,     -0.48047779,       1.2732566,       -1.132252,      0.13299988,      0.37380575,      -1.3502671,     -0.34158512,     0.029530253,     -0.38261484,      -1.2618742,       1.0513197,     -0.23572284,     -0.34766972,     -0.95099931,     0.097829977,      0.48113828,        2.273218,     -0.55855483,      0.20291255,      0.90217801,        1.282338,     -0.72813459,     -0.29345441,      0.54417437,      0.55146871,     -0.56986746,     -0.29071318,     -0.34578439,      0.27295253,       1.1511391,      -2.4227485,      -1.7308357,      -1.1278749,     -0.25264856,     -0.97371885,      -1.3877622,     -0.13572239,      0.53487473,      0.38561867,      -0.7361171,      -2.2417328,     -0.10182868,      0.39803474,     -0.16754025,      0.06848184,       2.0985883,       1.3665395,       1.4426004,       1.9873687,      -1.5034393,      0.89749764,       2.2373537,       1.0124075,      0.15221278,     -0.14676227,       0.6181022,     -0.29694966,     -0.20591719,      -1.1158699,      0.86548686,    -0.058526535,       1.9892943,      0.71692136,       2.2001827,     -0.52315378,      -1.4453523,      -2.7266309,       2.5290792,      0.24905281,     -0.55182726,     -0.10603901,      0.17941515,     -0.70891609,      -3.2151251,       1.1350605,      0.45751082,      -2.0173432,       1.2693151,      0.49454379,     -0.40644426,    -0.076954888,      -1.0938602,       1.9056365,      -1.1345289,      0.93328702,      0.53032267,     -0.12470648,      0.69461246,     -0.18010537,      -1.4518377,     -0.89656127,      0.75234221,      -1.4741921,      -1.1753892,       0.3235444,     0.094012732,       2.3607094,       1.3958247,      -1.4773229,       1.0167816,     -0.26088162,     -0.86228235,     -0.17387543,     -0.38551332,      0.36221817,      0.47110928,       1.4078156,     -0.16163673,       1.4066266,     -0.36047378,      -1.0430092,        1.331189,       0.5369745,     -0.71099192,      0.21740731,     -0.42623505,       1.9548834,      0.92882424,       1.3105306,      0.98204875,      0.14324901,       -1.963108,      0.29184703,     -0.10206494,      0.35961457,      0.95365562,      0.56102707,     -0.22827369,      0.58620543,       -0.764364,      0.37412791,    -0.056733094,      -1.1147971,       0.6510343,     0.091255926,     -0.95361858,    -0.072559351,      0.88654748,     -0.17084865,      0.40506713,      0.73546207
+2015Y,      0.28171035,       -1.282106,      0.95297314,      0.82721262,      -1.3606686,     -0.91881175,       2.9206684,     -0.99383699,     -0.50149573,     -0.45799781,       0.2272431,     -0.12618163,      -1.4573152,      0.80237995,      -1.3719712,      -1.2848351,      -0.1542619,      0.29904806,    -0.092503599,      0.24798599,     -0.62346921,       1.2654554,     0.050643355,       0.6113411,      0.29024323,      0.30226926,      0.86015085,      -1.9071818,       1.3314871,      0.10274675,       0.4012871,       1.7612812,     -0.16853764,      0.25830779,       1.0860242,      -1.4989095,     -0.58470238,      -1.2058924,      -1.3278163,      0.25437444,     -0.83328949,       1.9772934,       1.0291375,      0.66260467,    -0.029166042,       2.9096106,      0.92441406,      0.27675348,       1.0201063,       -0.522432,      0.62481835,      -1.4243701,      -1.1692613,     -0.62845101,      0.59256045,      -1.2446979,       1.3930453,       1.0872456,     -0.46582001,      0.24525516,         0.24634,       1.6669758,    -0.029728281,     0.095505025,     -0.65023547,      0.91647481,      0.76827386,     -0.62400309,      0.70463158,       1.1270473,        1.963772,    -0.059824068,       1.0884402,      0.19733762,       1.2259597,     -0.34713668,      0.57236462,      -0.5732336,      0.11891007,      0.27028895,      0.91505774,      0.74815277,      -2.2589408,      -1.0618055,       1.3596929,     -0.21097473,       1.1862383,      0.10439926,      -1.6566689,         0.66687,       2.1197222,      0.29231272,     -0.53370598,    -0.099877981,      0.15524185,      0.13694046,    0.0027657977,    -0.015854624,       1.0693071,       1.0343529,       1.7651965,       0.2389574,     -0.36515723,       1.1501582,     -0.04757197,      0.25748856,     -0.82620191,      -1.7554929,      -1.7381278,      0.30292472,        2.865558,      -0.0678129,     -0.49501886,      0.80842508,     -0.53926749,      0.65827386,      -1.5592817,      -0.9949968,      -1.3447266,    -0.073434679,      0.50316741,       2.1661041,      0.51604799,       1.3053505,      0.32251084,       -1.000624,      -0.4747399,      0.28315658,      0.68549298,     -0.31841777,       -0.637195,      -2.2745278,      0.75258641,     -0.72500226,     -0.55339568,     -0.52884497,       0.6180941,   -0.0029831334,        1.216187,     -0.51729831,      0.55017833,       -1.173322,      -1.1270699,      -0.8971278,     -0.11972772,       1.6989293,     -0.56602232,      0.40785725,      0.49242848,     -0.25100358,      -1.8174918,       2.5015561,     -0.91231508,     -0.84810673,     -0.60254645,      -1.1247649,       0.4268366,     -0.77066868,     -0.91575096,     -0.54126931,      0.76023951,      0.40736047,      -1.5957228,      -1.0110655,      0.28322245,      0.21899132,     -0.22331342,        2.014498,      0.73194409,      -2.4880148,    -0.024857163,     -0.10094717,   -0.0042118915,       1.9081683,      0.44139553,     -0.30020797,       0.5810615,     -0.29299989,     -0.87436364,      0.73472515,      0.63217185,      -1.0503109,      0.48807983,      0.97000192,     0.023145083,     -0.56193474,      -2.3383328,      0.90239243,     -0.71913339,       1.4767811,     -0.37168604,     0.069935992,      0.26814623,       0.2902655,     -0.24702347,      0.80278968,      -1.1234798,     -0.46368206,     -0.18843784,      -1.8001712,      0.77289547,     -0.73003728,      0.63885027,      0.34378215,      0.46066805,       1.1311672,      0.88864167,     0.056805937,       1.0638063,     -0.29808269,       2.3650472,      0.13939494,      0.28157966,     -0.21027526,       1.1597687,      -1.6833048,       1.1607649,       1.2015077,      0.80336286,      -0.8681901,      -1.5003245,    -0.032538921,     -0.12955534,       1.4423196,      -1.4076455,      0.79258045,       0.6122389,     -0.61359878,    -0.061950622,      0.11395058,     -0.22342109,       -2.246796,     -0.77174036,      -3.6016972,      0.60427842,       1.0904851,       -1.820181,      -1.7752063,      0.74383284,       1.6453156,      -1.4518691,     -0.56075776,      -1.1955476,       2.4365816,       1.5785154,      -1.2172667,      0.75089335,      0.51722443,     -0.34933434,       1.0139577,     0.030206116,      0.84309477,     -0.73556846,      0.64328326,     -0.55559138,      0.24426674,      -1.4619799,     -0.55438632,    -0.026252921,     -0.48357212,      0.28133067,     -0.13814177,    -0.051998036,      0.42785795,      0.30320905,       -1.831065,      0.82434449,       2.0432061,       0.6053059,      0.56996137,       1.6441416,      0.30203625,      0.88897563,      0.73193464,      0.13814533,     -0.78702874,      -1.8437365,      0.65432785,       1.0886728,      0.19498715,       1.0581921,     -0.30706617,     -0.16059592,     -0.45331154,       0.3730472,     -0.12815901,       1.1241895,      -2.2096294,     0.021713461,      0.11007963,     -0.85061436,      -1.0714822,     -0.41062829,      -1.5837139,      -1.0977637,      -1.9561735,      -1.7743128,     -0.19524672,      0.71144945,      -1.8447411,      0.11830011,     -0.45381804,      0.10874649,      0.72537636,       2.2833271,      -1.4671675,      -1.0968747,     -0.94611351,         0.93334,      0.45208061,      -0.8768799,     -0.43353344,      0.27394407,      0.21443642,      -2.1034309,      -1.0047991,     -0.92945542,       1.3933302,     -0.80956027,       -0.337035,        1.770322,      0.86016099,      0.73090968,      -1.2208752,     -0.78467849,      -1.0741133,      0.66788184,     -0.56195143,       1.3430115,       1.0628355,      0.94435456,       0.1107732,       -1.197751,      0.87488099,      0.46818525,      0.32156094,    -0.002001935,     -0.31004258,     0.049488807,      0.24066934,      0.40477037,     -0.69736992,     -0.22838618,     -0.15868805,     -0.41341217,       1.4417146,     -0.35949329,     0.053434623,       1.2174941,      0.40003169,     -0.94886041,      -1.3303194,      0.73178672,       1.4763967,       1.0769526,     -0.55485476,     -0.19283168,      0.54877049,       2.1112552,       1.7461317,     -0.84581777,       2.4867165,      0.56938523,     -0.37842525,       -0.537887,      -2.4020843,      0.02590326,      0.42906446,      -1.4949509,      0.37029591,      0.94329456,    -0.022304372,      -1.3237734,      0.51298769,      -1.3301798,       1.3303036,     -0.82791884,       0.1666357,     -0.22519776,     -0.17400338,      0.86262418,      0.37260385,      -1.5629006,      0.85461882,     -0.48467636,      0.20093571,      0.13855488,      0.85049207,     -0.24962529,     -0.49460219,     -0.15858644,     -0.45580176,      -2.1900349,      0.29731633,     -0.22149476,     -0.13048396,      -1.3086976,       2.1590883,      -2.3463748,    -0.018671739,       1.1693881,        1.286501,     -0.12907935,      -2.0489228,       1.8145016,      -1.0618193,      0.19668429,     0.072482145,     -0.72026906,      0.29961244,       1.6956207,     -0.63966758,       1.5312445,      0.22026981,      -1.4106465,       2.1490703,     -0.45314833,        1.053759,     -0.42630005,     -0.28634895,      -1.5242249,       1.6997928,      0.43654704,     0.087459673,     -0.16593488,     -0.16829318,     -0.19183364,      -2.2412404,      0.11541651,     -0.93396067,      -1.0276211,     0.080595989,     -0.17284573,       1.0832012,     -0.98998433,      -1.1861926,      0.85388961,       1.1078974,     -0.15760266,       2.5349726,      0.53386406,      0.90245887,      -1.6698291,     -0.31519414,      0.69233548,     0.076125356,       1.4262843,      0.49384504,      0.34028036,      -1.5360287,       1.3403563,      0.11293183,     -0.14126327,      -1.0353332,      0.15255066,      0.70999635,      0.82931401,     -0.50226026,      0.71489712,     -0.74815503,      -1.5286009,     -0.85774977,      0.63191002,     -0.31894424,     -0.77021541,       1.0448545,        -1.27692,     -0.15742387,      -1.9425422,     -0.42058602,      -1.2177591,      -1.1890349,      0.76063292,     -0.83057855,    -0.019286138,     -0.61808287,     -0.49837445,     -0.21457454,      -1.1787496,     -0.32650036,      0.54537315,        1.552978,      0.80400954,     -0.91725215,      0.78568307,       1.0496332,       0.9535479,     -0.12133259,      -1.2998082,     -0.70266348,     -0.84067489,     -0.62217178,      0.53734799,      -0.8376266,      0.95166533,     -0.20814492,     -0.02766099,     -0.32109451,      0.12498753,    0.0085163445,      0.42376126,      0.31624163,       1.3604978,     -0.41014741,      -0.6723214,       1.2450416,      0.11068822,     0.021341204,      -1.0761196,      0.33204684,       -1.286779,       -1.173143,     -0.56053056,      -2.0772487,      0.83321392,      -2.4332688,      0.63418606,      0.47500585,     0.019948888,       1.2367663,     -0.49727347,       2.3626535,       0.3338143,      -2.1757958,      -1.4708486,      0.84989506,       2.3889339,      0.65011713,      -1.8803877,       -2.920491,      -1.3740158,       1.3000802,     -0.88441016,       1.0667422,      -1.6075078,     -0.90131129,     -0.53160291,        0.498646,     -0.08381188,       1.2445439,       1.3160248,      0.77273995,      -2.1212621,     -0.75498811,       2.2481048,      0.80617229,     -0.70414998,      0.12701712,       1.0042117,       1.3169809,      0.36705383,     -0.70137357,    -0.014149575,     -0.68519161,      -1.0192762,      0.48777206,      0.68995578,     -0.65617607,      0.39211816,     -0.15052326,     -0.82501701,      -1.9800426,       -1.500876,       1.2474931,       1.9320228,      0.71797359,      0.70808446,     -0.15056713,       1.2561302,      0.60424256,       1.4316557,       1.2516733,       2.1312892,      0.47575628,     -0.94143616,     -0.90137653,    -0.038812789,     -0.72832811,      -1.2913904,     -0.14164033,     -0.16414169,     -0.10869235,      -1.6446097,      0.30161662,       0.9349259,       -3.128079,       0.5995856,      0.80717867,       0.3261594,      0.90185401,     -0.59876134,      -1.3196023,      0.44100686,      -1.4318093,       2.3583298,     -0.60638835,     -0.59390135,       0.7121037,    -0.090241605,     -0.43075284,      -1.4753194,     -0.44366463,     -0.61034374,     -0.15585693,      0.35952482,       0.7494771,       2.0010753,     -0.44051706,    -0.077118477,     -0.68570906,     -0.71259662,      0.13072868,       0.2418715,       2.0832601,     -0.31684218,     -0.74698822,      0.39939702,      0.36637816,       1.3000291,       1.2236996,        1.312524,      -1.4820915,       1.9545571,      0.84590348,      0.55360312,       2.7645365,       1.1289482,      -1.0308464,      -1.3635106,      -1.4324867,     0.054935293,     -0.37855623,        0.555111,     -0.62403512,      0.17198077,       1.1357652,       1.1962017,      0.83738671,      -1.3895595,     -0.75834293,      -1.0659997,     -0.51167963,      0.98795322,      -1.7527032,       0.1275116,        1.539529,     -0.86564473,      -1.9450831,       1.2814275,       0.9966775,      0.16092869,       1.6078931,      -0.1904158,     -0.30676404,      -2.5722014,       1.0299617,       1.2741312,   -0.0021335872,      0.17312064,      0.64142647,      -1.6122915,       0.8906626,      -0.6977047,      0.32174086,     -0.98901565,      -1.6291287,       -2.088721,      0.49674144,       1.3779523,      0.67522973,       2.0191038,     -0.87519805,       -1.125689,       0.8024991,       1.8983241,      0.89782843,      0.29047745,       0.3353983,       1.2133207,       2.2602622,     -0.92023856,     -0.24479841,        1.711038,      0.17409636,     -0.97396298,      0.78458667,     -0.40907768,      -1.1821551,     -0.38085596,     0.091460201,     -0.60032083,     -0.89159271,        1.274973,     -0.36846034,      0.78866035,     -0.68133534,    -0.027678787,     -0.60064632,     -0.97802908,       1.7670542,     -0.91167928,       1.4238163,       1.4084191,      0.07560591,       1.6289319,       1.4950407,      0.12950486,     -0.11009246,     -0.76372064,      0.13452295,      0.81219439,      -1.1901439,      -1.2081861,       -2.196403,      -1.6025741,       1.8011015,      -0.6506545,      0.82764919,      0.58439989,      0.50159465,      -1.0028391,      -1.1451589,      0.39497743,      0.89754863,      -1.2828467,       2.0633807,     -0.34439965,      0.32056126,    -0.078404118,     -0.75505094,     -0.52563747,       1.6752148,      0.77210939,     -0.45680202,      0.50596634,     -0.64848353,      0.58748164,      0.30380345,       1.1063953,      0.31903962,       1.6887003,       1.5495699,      -1.2256477,     -0.83410342,       1.0169165,    -0.051138155,      -0.5597311,    -0.032985806,     -0.60195246,      0.93265681,     -0.25009121,     -0.53867039,     -0.65889566,      0.68027784,     -0.59785377,       1.9159357,     0.050914537,     -0.38332494,      0.12203518,     -0.56885709,      0.20180601,      0.52768796,      -1.8144506,     -0.69105652,       2.1417743,      0.45629003,     -0.51254647,      -1.5278887,        1.348203,      0.78791894,      0.67304352,     -0.10504251,     -0.10460554,      -0.6776448,     -0.24225741,      -0.4200811,       1.6527831,     -0.76085949,       1.0204451,      -1.4447955,      -2.4893489,     -0.27877752,      -1.0544795,     0.022299672,     -0.67160774,      -1.0775124,       1.0563172,       0.9245874,     -0.23391157,      0.71981954,       0.7374007,      -0.6959909,      0.92524498,      -1.5014455,      0.48010794,     -0.73189132,        1.557091,      0.17172399,     -0.61415593,      -1.3161348,      -1.0507196,     -0.51225328,      0.89060362,       1.7872565,      0.32340883,     -0.41473285,       0.2757755,      0.47552998,     -0.15838554,       -1.325584,     0.038927849,     -0.26180313,      -1.7956462,      -1.3067806,      0.52692612,      0.32643988,      0.70898786,      -1.0635954,      0.41201205,     -0.25643094,     -0.14861174,     -0.03161451,      -1.4888927,    -0.025989134,      0.59333029,     -0.43180036,       1.9314996,      -1.4362657,      0.46292939,     -0.95103052,      0.49567126,      0.44450905,      0.18353966,      0.53142036,      -2.5769018,     -0.72285199,       1.3540484,      0.79811893,      0.23542611,       0.1096269,     -0.33830684,      0.14744354,       1.4736098,      -0.6927464,     -0.28994234,     -0.90346553,      0.38899946,     -0.43036703,      -1.2659937,      0.63915379,     -0.40611911,     -0.59537444,   -0.0079864596,       1.4713256,       1.2880714,      -2.2658373,     -0.35455339,     -0.13041337,       0.7198194,      0.22333495,       1.0143181,      -0.2168806,      -1.1551943,     -0.33992323,      -1.6029615,      0.27780387,     -0.17143849,       -1.399021,     -0.66564316,      0.89022902,         0.94497,      0.84026494,     -0.31015636,     -0.81159856,     -0.49010341,      -0.7385757,      0.13897579,      0.80965041,      -0.7880314,       1.9103172,      0.48066766,      0.42201572,      0.69001129,       1.0655468,     -0.25081686,      0.21100418,      -2.1188535,       1.2487945,    0.0086397403,     -0.04163297,      -1.4987029,      0.48876007,     -0.75611759,      -1.0218335,      -1.2908867,      0.95039475,     -0.25934415,     0.013548717,      -1.0458581,      0.12301369,      -1.7474574,      -1.3274667,      0.85360798,      -1.4555599,     -0.88227049,      -1.5568868,       1.7081141,     -0.74461086,       1.2158049,     -0.51801672,     -0.43202116,    -0.022531932,       -1.287316,      -1.6811598,      0.26010277,       1.0887782,      -2.4126519,      0.41233788,     -0.31423966,      -2.3221844,      0.14007431,     0.043854204,    -0.062230646,      0.88173103,     -0.29139974,      -1.7528305,      0.66039573,      -2.3134717,      -1.1057955,     -0.39999795,       1.4592278,      -1.6370465,       1.4069127,       -1.369651,      -1.2673803,      -2.2306676,     -0.35331628,      -1.1130765,      0.41827147,     -0.12751384,      -1.3843513,     -0.90172103,       1.6795235,       1.1629382,      -1.3114124,     -0.77305502,      -2.1079543,       1.6885806,     -0.20936426,      -2.3502401,      -1.8486669,       1.1206147,         1.28545,       0.1629189,      0.51888259,      0.77722135,      -2.0879464,     -0.48752467,      0.24355416,     -0.75719824,      0.15313699,       1.5240915,      0.94087844,      -1.1090965,      -1.5376247,     -0.26964213,      0.71976159,       1.6053073,     -0.52536876,       0.2523457,      -1.0089464,      -1.3214568,     -0.98464249,      0.15347374,      -1.0286824,      -1.1362193,      -1.5266524,      -1.4634781,      -2.1931294,      -1.5199156,      0.84966888,     -0.16534517,       1.0371509,      0.90008822,       0.4902802,       1.2332144,      -1.0322843,      -1.3752039,     -0.71313321,      0.46729166,       -2.456594,      0.30427555,       -2.150132,      0.37118638,     -0.50812017,      -1.2895147,      -0.3835599,      0.19133674,      -2.0321217,     -0.12217372,      -1.4018671,     -0.01413751,        0.872368,     -0.95584443,      0.18731059,       -1.944739,      -1.7509187,     -0.78459017,      0.15594801,      0.93649105,     -0.14699152,      -1.7633525,      0.16778415,     -0.18915991,      0.93584794,       1.8971852,    -0.029352164,      -1.5002684,       2.3017538,    -0.019048704,     -0.24742718,      0.47593025,     -0.62219144,     -0.43978469,       1.5386795,     -0.91981897,      0.89178872,      0.04888951,      0.78342312,       1.2974202,     -0.33469459,      0.25897616,      -2.1175078,       1.3903738,     0.016300413,     -0.34110929,      0.26395789,       1.0953021,     -0.81997765,     -0.64876278,      0.18275723,    -0.099844016,       1.2124232,      -1.0382828,     -0.46308471,       1.1774683,       1.2044851,    -0.078928422,     -0.60005113,      0.21385176,      -0.5690214,     -0.55969471,      0.17570716,       1.1708332,      0.95335948,      0.23230072,      -1.4080626,       1.0694581,      0.53319073,      -0.6525549,      -1.3432431,     -0.28585103,      -0.0572237,     -0.39150266,        1.141814,     -0.26648486,      0.34844141,      0.38336824,      0.28359086,     -0.24843878,       -2.766979,       -1.847608,      0.67430868,      0.20570298,    -0.047214127,      0.70525679,      -1.3660605,      0.86540383,     -0.39825359,      -1.8167343,     -0.59437928,      0.45646735,        2.077857,      0.78802159,     0.090271851,      0.26756317,       1.3223784,      0.13664049,      -1.3312931,       0.7971992,      0.94332122,       0.8690061,       1.6643789,       1.7283445,     -0.42417302,     -0.88819607,        0.666308,     -0.72611332,       1.0843507,       1.3902007,       1.4237749,       1.2603582,      0.24729329,       1.1615781,       1.8864755,     -0.74057146,     -0.87045036,     -0.74822009,       1.6988581,      0.30696592,       0.2638069,     -0.42155624,      0.35375916,      -1.2286229,      0.17212177,     -0.71833028,       1.1034267,     0.043535096,    -0.016203809,     -0.13354316,      0.28588828,       1.2797254,      -0.6112968,       1.6273035,     -0.49400448,        1.617342,      0.10652167,      0.27415734,      -2.7109296,       1.3021441,      -1.3401424,      -2.2925407,       0.1737342,      0.63366636,     -0.66907204,      0.20875131,       1.3899307,      -1.5352944,     -0.75917753,       1.7293943,      0.32123384,      -1.3978517,     -0.41758127,     -0.95147695,      0.62993421,      -2.6164511,      0.98354571,      0.53610422,     -0.55005644,      0.29550147,       0.8163178,       1.3323238,      -1.0185188,   -0.0098798813,     -0.15093919,       0.2226038,     -0.42245799,      -1.4777586,      0.97217853,       -2.375499,     0.036731924,     -0.34565909,      0.99886855,       1.5134035,      0.76373995,      0.80623343,      0.66286781,     -0.21054742,       1.1424672,      0.49942585,      -0.6298754,     -0.49043858,      0.51851514,      -1.3916845,      -1.1398635,     -0.31090137,      -2.5356926,    -0.061702724,      -1.1633907,       2.4151891,     -0.06523837,      -0.2197926,     -0.86420941,      0.29269897,      0.95133649,      0.87124656,      0.80888709,     -0.15113246,     -0.96571415,     -0.37789842,       1.0980043,      -1.7989861,     -0.98244064,     -0.77461242,     -0.48288244,      -2.4475331,     -0.51198799,      0.14257828,      0.13858857,      0.09147838,     -0.43514414,     -0.64852395,    -0.078394007,      -1.0048635,      -1.3660626,      0.69170851,      -1.7293553,      -2.2557957,     -0.67266638,     -0.74624649,       1.3223263,       1.1168616,     -0.71785347,    -0.096490155,     -0.64835658,     -0.11727371,     -0.35390458,     -0.57043327,     -0.96960793,    -0.070629566,      0.31339812,      -1.8406083,     -0.26576153,     -0.55724248,     -0.41444852,     -0.53898359,      0.14204485,      0.10356824,      -0.7617599,        1.929092,       1.1688385,      -1.4885543,      0.18669224,     -0.28622715,      -1.0541549,       0.4635031,      0.29907453,     -0.14810067,     -0.75340401,      0.16508156,    -0.018701937,      0.92295718,      -1.0927736,      0.24377518,       0.5443355,      0.61366837,       1.4494737,     -0.86554511,     -0.92225562,      0.42398314,      -0.7703466,     -0.82122795,      -1.0451394,       2.9380937,      0.87130019,       1.3493593,       1.5786387,     -0.53775484,    -0.082967419,         2.27878,      0.58818515,      0.15097039,      -0.4177153,       2.1183201,     -0.17362339,      0.12670263,      0.60681264,      0.83893657,      -1.8168573,     -0.64912042,     -0.14760982,      -0.9763387,      -2.1909947,      0.45788859,      0.99322051,      0.83912277,       1.3342421,        1.817273,      0.35763608,      0.35006728,     -0.55723363,     -0.12183359,        1.480494,      0.10306548,      0.83361544,     -0.97925328,    -0.024123207,     -0.59186506,      0.60401604,     -0.33840806,      0.71462667,     -0.47034257,      0.49799884,      -1.1359834,       1.0799965,      -0.1633451,     -0.26400234,     0.056679332,     -0.27744856,      0.49885121,     -0.27927838,      0.96534149,        1.026792,    -0.040543314,      0.38932136,      0.49047497,    -0.060532092,      -1.9675412,       2.2561675,    -0.090028739,     0.068798704,      0.86613927,      0.13628222,     -0.24539199,       1.6871081,     -0.70997011,       1.1025442,    -0.044181184,      -1.3776781,        0.544823,      0.53071519,      0.15372763,      -1.2977554,      0.16540241,     -0.16227918,      -0.6559515,     -0.49206224,      0.38633035,       1.6037497,       1.7536138,     -0.55260949,      -1.5020925,       0.5088204,      0.29155481,       1.0939349,      -2.0424558,      0.87608288,      -1.0525596,      0.53804512,       1.3338891,     -0.17322979,       1.9565622,     -0.25963728,      -2.2704649,     -0.50463133,     -0.19211333,    -0.058383782,      0.64910705,     -0.65375109,       1.1932216,      -1.5300819,       1.4335298,       0.3355152,     -0.98117459,      0.68788982,     -0.52656909,      0.38331186,     -0.48537877,      0.29116121,     -0.98930014,       1.2718167,       1.5777188,     -0.21257056,      0.55488711,     -0.65923522,      0.35353591,       1.5187416,     -0.31602473,      -1.2717047,       -1.062889,      -0.4658948,     -0.05941282,       3.3645788,       -0.175266,      0.13893121,       1.3619803,      0.30720937,       0.7437178,     0.040066475,      0.40045829,     -0.66080557,     -0.72265968,     -0.36213647,     -0.88146989,     -0.58068697,     -0.53874323,       1.7938828,       0.7788607,     -0.72742873,      0.35924377,     -0.42783231,     -0.88773144,      0.65255169,      0.93077122,       1.2213634,      0.53221772,     -0.40238982,       0.9014082,       -1.269402,      -0.4402384,     0.078631829,         1.95632,       1.1537377,       1.7265085,      0.53408071,      0.38759259,     -0.71439229,      0.50113515,      0.53624324,      0.44912899,    -0.026444295,      -1.9861192,       0.5642833,      0.33898466,      0.14200777,       1.8747603,      0.39268093,      0.21674707,     -0.82000368,       1.0629137,       1.9614425,      -1.4180306,     -0.88271176,       1.1996649,       -0.687905,     -0.64735111,     -0.72958665,     -0.29619618,      0.17466463,     -0.23640648,       1.0357158,     -0.54823809,     -0.33905501,     -0.99103015,     -0.99400092,     -0.75832653,      0.30891269,       0.1617708,     -0.67876116,       0.4617432,      -1.2655174,     0.056781443
+2016Y,       1.3013333,       -1.009301,     -0.34040294,      -0.7853369,       1.0148079,      0.41805131,      -1.5545652,      0.51505131,     -0.93435258,      -1.9842988,     -0.16918511,     -0.36258801,      -1.5091965,      0.49012962,    0.0022337637,      -1.5126771,       1.7005006,       1.2199566,      0.20858554,     -0.48852258,      -0.2489436,      0.14223823,     -0.69454415,      0.47178855,      0.59167859,       1.0803617,      0.62856624,      0.69573355,     -0.39070834,     -0.95361427,       2.9501854,      0.23617897,     -0.53955812,        1.288612,      -1.4109378,     -0.10092589,     -0.55046869,      0.38045047,   -0.0097881116,     -0.44975712,      -0.1066614,      -1.7457148,      0.62782514,      -1.1692479,    -0.073921863,      -1.5888394,     0.017797356,     -0.84640807,      -1.0061834,      0.57742569,     -0.62731624,       1.3501867,     -0.68267927,      0.37838212,     -0.10976011,     -0.57959466,     -0.73407151,      0.11036268,      0.72029967,       1.3543329,      -2.3987711,      0.32182436,     0.038011884,      -0.2050572,       0.9413139,      0.20747798,      -1.8661638,       0.2081771,     -0.30135128,      0.57006661,     0.046341273,     -0.01938004,      0.37291634,     -0.10517947,     -0.20842087,     -0.43706365,     -0.13979575,      0.11109943,     -0.13572713,     -0.81819711,      0.80470359,        0.818932,       1.4499858,      0.33729418,     -0.64686312,      0.66634408,      0.23552689,     -0.33840702,      -1.5471542,      0.19920638,       1.1999304,     -0.20580131,       1.1033409,     -0.27475227,      -1.3655396,     -0.74515955,    -0.076234939,     -0.40062765,       0.2995334,     -0.68874766,      0.80640243,      0.10025022,      0.10049087,     -0.62754172,      -0.4701917,      -1.4505375,      0.49664817,      0.25022948,       1.5999687,     -0.23862904,     -0.56799366,     -0.43214911,       -1.056639,      0.13735678,      0.45058679,     -0.42845411,       1.3072624,       1.2325611,       1.6296026,      0.17516362,     -0.48386229,      0.94367218,      0.33707465,     -0.56284531,       1.1256684,       1.5755573,     -0.50827265,      0.55398838,     -0.40455275,     0.043086401,     -0.80246008,      -1.3388069,       1.2105513,       1.2343938,       1.5376336,     -0.51196279,      0.28447039,      -1.0440391,      0.48939597,         1.34501,      0.95489309,      -0.6581342,       1.8255244,     0.051681741,     -0.35241157,      -2.4933901,     -0.82172179,     -0.19796262,       1.1632066,     -0.18649245,      -1.0193404,      0.36735263,     -0.94795807,     -0.29679646,     -0.79517261,     -0.64224363,     -0.11776563,      -1.0073901,       2.0037296,    -0.027886668,      -0.8674376,     -0.88755829,      0.79014778,      -1.6819641,     -0.52219307,      0.64543179,     -0.30039403,      -1.4333555,     -0.12569278,      -1.2533499,     -0.50668121,      0.27876065,       1.1856988,     -0.35968685,      -1.7186763,      0.55905647,      -1.0379764,      0.43035958,      0.39503867,       0.5239095,      -1.5971971,       1.7449056,     -0.17909147,      0.58290067,      0.48141331,     -0.33061264,      -0.5820523,     -0.43885911,     0.061342342,      0.62283225,     -0.30470247,      0.34714615,     0.071309347,      0.65596811,     -0.23362105,       1.2185343,       -1.954938,    -0.064630904,      0.78355998,       1.0106188,     -0.66346174,      0.16045586,       1.8633942,       0.7067111,     -0.20935104,      -1.2023652,     -0.58413532,      0.54279367,      0.22854807,        0.231925,       1.6784059,      0.26705956,       1.4393602,      0.10597496,     0.083981329,      0.42445416,     -0.15043778,      0.31916845,       0.5167071,      0.50113117,      0.43381074,     -0.72590464,     -0.25471624,      0.19345336,      0.47774468,      0.25783019,     -0.25514717,       -0.481029,      0.27687778,      0.13310108,       2.4603739,      0.51997013,     -0.71355297,     -0.82711179,       1.2833547,      0.15256388,      0.62788946,       0.2394828,      0.23830687,      -1.4416253,      0.89609514,       1.2112502,     0.061665397,      0.87691471,      0.93419125,       2.8844704,    -0.016339274,    -0.093502354,      0.72350545,      -1.2969388,     -0.72037345,      -1.4514991,      -1.3649485,      -1.7997569,      0.43942478,       1.0670731,     0.023107652,     -0.42663361,     -0.58216008,      0.73714257,     -0.51321068,      0.68418099,     0.086265566,      -1.0634385,     -0.82241064,     0.016311548,      -0.8050354,      0.82216307,     -0.21272167,      0.80046578,      0.40554412,      -1.1534555,      0.75667349,      -1.2720232,      -0.3523858,       1.8876006,      -1.4385894,        -1.59778,     -0.47268859,       1.3452843,      0.48772944,      0.56027656,      -2.3082412,      0.55779108,      0.11679604,       2.3534336,      -1.1652439,     -0.47339676,       0.7804042,      -1.1374203,     -0.79988918,      0.83718815,     -0.35265367,       1.0059078,     -0.40040387,     -0.72199252,      -1.3127628,       0.7585841,      -0.2532807,     -0.15133978,      -1.0605203,      0.21374052,       2.0681757,     -0.39433796,       1.0970994,     -0.76098905,    -0.018043209,       1.4777357,      0.71540839,     -0.67042469,      -1.2968527,      0.58106109,        -1.37347,     -0.29701543,     -0.61883832,      -0.6902823,     -0.73226039,     -0.35769355,      0.12535454,     -0.26441314,      0.30769261,      0.44833477,      0.78951911,      0.34083809,      0.20563123,     0.084363691,      -2.0322115,      0.70301254,    -0.021284747,       1.1130729,      -1.6272572,      0.15334209,       1.7419025,       1.2117226,     -0.51742003,       1.4831322,      -1.0268873,      0.34180252,     -0.87585542,     -0.56633038,      0.11114933,     -0.51101929,       2.5501501,     -0.31339132,     -0.57450719,      0.49978655,      0.40808118,      -0.0871119,      0.90649239,      0.38447842,    -0.046772392,     -0.91079456,      0.28084476,     -0.55008117,       1.1379847,    -0.059969705,     -0.87972361,      0.83293439,      -0.4674642,     -0.10055481,      -1.7841574,      0.81311252,     -0.63760894,       2.0522413,   -0.0076251689,      0.12639369,      -1.2520792,      0.68521502,      0.23130215,      0.62782364,      0.69933853,      -1.1431217,       1.8761238,      0.64738609,     -0.83732431,       1.2101587,       1.0892243,       1.2689654,      0.95545484,       0.9667771,      0.04241098,       -1.081088,      0.75083854,       -1.404441,      0.17936765,     -0.12798334,      0.81076066,      -1.0004349,       1.8250749,   -0.0053489103,     -0.55735026,      -1.9888444,     0.017634682,     -0.49247497,     -0.51770488,      -0.4372943,      -1.1032805,     -0.80187301,      0.51798187,      0.36935456,        1.384049,       1.1558833,     -0.98016756,       -1.692711,      0.87109175,     -0.95031302,      0.53622309,      0.40789375,       1.0751685,     -0.31286958,      -1.5830672,    -0.088066935,      -1.5488571,     -0.54526847,      0.13928605,     -0.15165397,      0.37400569,      -2.2990585,      0.71518285,     -0.29596609,        -1.89689,      0.15331245,     0.037772727,       -1.146641,     -0.17485448,      0.49628742,      0.48501768,      0.31601198,      0.84860976,      0.34918667,     -0.27710657,       0.4653652,     -0.72671168,      -1.3913611,     -0.88368112,      -2.0275447,      -1.3714962,      -1.7992516,      0.24462156,     -0.20179439,      0.62056801,      0.79422321,     -0.22131627,      -1.0316915,      0.94909883,     -0.91911925,        1.461955,      -1.1133101,      -1.7073959,     -0.90707488,       -1.914126,      -1.5286605,      -1.1418577,      0.65007907,       1.3926404,       1.4467558,      -1.7213436,       0.4083255,     -0.61442922,      -3.4742394,      0.57887632,     -0.43307144,      0.27509508,        1.656184,    -0.015921958,      0.28010466,       1.2711917,       1.3854216,      0.94218269,    -0.023740544,      0.57035716,      0.44528804,      0.96625979,       1.6958875,       1.3067786,      0.01978909,      0.38647362,     -0.61562937,     -0.96184479,       -1.177334,      0.13347197,      0.64061025,      -1.2694596,       1.4655843,     -0.64164625,     0.022079662,      -1.3950037,       1.8600739,       1.0727137,      0.20645237,       1.9571103,      0.45399053,     -0.94050971,      0.86506431,       1.0841871,     -0.56783854,      -1.7724479,       2.2664028,     -0.28770018,     -0.71626132,       1.3354555,       2.2543029,      -1.2428921,     -0.95113538,       2.0765906,      -1.6061958,       -1.682912,     -0.79346541,      0.22677061,      -1.1156962,      0.31810568,     -0.16224145,      0.11240271,       1.1996895,      0.24786181,     -0.31306517,     -0.58350442,       2.0215096,     0.099423259,      -2.3536069,      0.35401132,       1.6914835,       1.1677788,      0.59178374,      0.93066467,      -1.5437673,     -0.48187686,      0.57728737,      0.94971843,       1.1755447,      -0.8613846,       1.8675548,      -0.4098316,      0.24048947,      0.45063969,     -0.53303689,       1.8283508,     -0.79048737,     -0.38279346,     -0.70184281,    -0.013613859,     -0.61225811,      -2.1244888,      0.54796428,      0.59199201,      0.44451103,      0.47481927,       1.0780751,       1.0808539,     0.061511648,     -0.35575649,     -0.46218953,      0.39320288,       0.7959046,      0.18382481,     -0.76665006,     0.021254105,     -0.49524759,     -0.81115942,       1.1338841,      0.36817897,       1.4184096,       1.3908977,     -0.05816504,      0.69626901,      0.44842352,       1.3018594,      -2.3330457,      0.67329728,      0.62758644,      -1.8785505,     -0.49040498,      -1.3567007,     0.035447141,     -0.57810548,      0.51441796,      -1.8691448,     -0.74256142,     -0.62162615,       1.5363585,     0.083757099,     -0.51270199,      0.11847639,       1.1066888,     -0.43987788,      0.33778141,     -0.11408834,     0.029397913,       1.8945083,      -1.1704119,      -0.7458737,      -1.2538088,       2.0056378,     -0.83955213,     -0.47260259,     -0.45398757,       0.3978262,      0.24627884,       1.1520532,      0.18631916,     -0.48152394,     -0.38824573,     -0.31818662,      -2.1583378,      0.44955451,         2.06183,      0.10028983,     -0.37701021,      -1.4453973,      0.68025975,       0.1782976,     -0.77846364,      0.26723999,     -0.97181612,      0.47141435,         1.49588,      0.88362546,     -0.20367471,      -0.3180355,      0.89952453,      0.25990251,     -0.74737392,       1.0912912,      0.96419547,      0.37508744,       1.1411942,      0.69123526,      0.92197356,      0.28596773,       0.5942777,     0.080407109,      -1.7147706,     -0.78035125,      0.51376413,      0.55553594,       1.4545077,      0.24362722,      0.48803116,       0.6791514,      0.71557055,     -0.48498946,     0.094817915,      -2.2392366,       1.2074493,       1.0759342,       1.8005504,      -0.3646324,       1.0377466,       1.3410184,      0.77666541,     -0.67420835,     0.093421527,     -0.25476333,       1.2592152,      -1.0559996,      0.85887416,    -0.057013177,       1.6032307,      -1.0818278,     -0.48107327,     -0.45602987,        1.096368,     -0.74269687,       0.9678466,     -0.88278048,     -0.12825938,      0.58093308,      0.48103289,       1.7582301,     -0.46113967,    -0.066426196,      0.71350646,      -1.2324738,      -1.0853961,      0.27669006,      0.93580426,      0.50926172,      0.51495174,      -1.1844399,        1.319438,     -0.65724351,       -1.339839,     -0.54692487,       1.4521336,     -0.20435803,     -0.44719226,      0.78131436,    -0.016602642,      -1.6579283,        0.333273,      0.24983493,       0.1949349,     -0.20061788,      -1.1211767,     -0.87874984,     -0.80636873,     -0.56880668,     -0.39023106,     -0.59747554,       1.1317709,      0.10858842,       1.1823589,     -0.52135971,       2.9765049,       3.2658378,     0.080192548,      0.10468121,    -0.010699967,       1.3291029,     -0.52896522,      -1.3463463,        1.852665,     0.037547165,      -1.9679651,     -0.32771115,     -0.27464872,      0.15396879,      -1.8046005,    -0.029887832,      -1.3387521,       2.2609577,     -0.72596232,     -0.78088358,     -0.80629261,      -0.5202618,       0.4830874,      -1.0157559,     0.061491961,     -0.27144643,     -0.32955153,      -1.3389793,     -0.73562128,      0.34012619,      -1.2586145,      -2.2371677,      0.19892096,     -0.81803898,     -0.29723735,       1.9752593,      0.82281909,    0.0083869538,          1.2326,       3.0650137,       1.0431828,      -1.2084045,     -0.58884674,       1.2199844,      0.29274978,     -0.41056908,       1.3699975,      0.55911633,      0.59419375,      0.92293122,     -0.22749526,        2.173381,     -0.51450761,    -0.089212327,     -0.52676842,     0.066942113,      -1.0086033,      0.26525101,       1.0469995,     0.060146669,     -0.40330591,       1.2847316,       0.7019678,      -1.4509768,     -0.44643615,      0.51638657,      -1.1857605,     0.049011441,     0.015202208,      -1.3357321,      0.12728543,     -0.25590092,      -1.1715218,     -0.35461413,       1.3477353,       0.7376365,      -2.7154667,      0.46416753,     -0.49574751,     -0.30391367,       1.3193158,     -0.29826757,     -0.57961202,      0.88941794,     -0.72317339,     -0.36156574,    -0.096065598,      0.71339198,      -1.3974715,        1.720239,      0.40176542,        2.066877,      0.29184006,    0.0023251063,     -0.75473844,      0.27810862,     0.014854318,       1.0587115,        2.142573,     -0.73466803,      0.98669725,     -0.98347025,      -1.9008637,      0.26231551,     -0.79382437,       1.4025014,    -0.033731949,     -0.48219933,       1.8359143,      0.78995811,     -0.73017998,      -1.3071364,     -0.10899144,     -0.87783592,      0.78857141,      0.65746562,     -0.41802694,      0.23398713,      0.24916806,     -0.49631615,      0.97981779,     -0.17158183,      -1.0659652,        1.053554,     -0.33164923,     -0.14200545,      0.33613711,      -0.3069436,      0.13961379,      0.20778289,      0.81298632,       1.0658772,      0.75626867,       1.5268436,      0.13949821,      -1.3796823,       0.4106972,     0.098513813,      0.23533079,      0.87867332,      0.37696782,     -0.68287437,    -0.059518497,      0.01517933,       1.4918837,      0.92199508,      -1.3670682,      0.49613594,      -0.6211795,       1.6692496,      -1.1646094,       1.2643917,    0.0039595013,      0.79292539,       1.6208702,     -0.34759427,     -0.50341633,     -0.56060572,      -1.0345739,       -1.089354,      -1.1053219,     -0.80282929,       1.5327993,        1.442843,       1.7693279,       1.6712421,        1.468106,       1.0371081,      -0.7604698,     -0.27442421,      0.45847776,      0.93335041,      0.65807468,      -1.9611285,     -0.36352664,      0.91833929,     -0.82526869,      0.10292134,      -1.6782461,       2.1106687,      0.31709583,   -0.0074928728,       1.4846545,     -0.86070212,      0.27789223,      0.58814611,       0.4852736,      0.16760599,      -1.5330947,      0.63750506,     -0.73487786,       1.3697515,       0.4462179,       1.0357864,       2.1272846,      -1.1673026,      -1.2271619,     -0.86164126,     -0.59839128,      0.27910753,     -0.66880293,      0.57879864,     -0.70757355,    -0.082474662,     -0.45616989,      -1.4730937,     0.049787517,     -0.28626164,       1.5513525,       0.4242017,      0.49059068,      0.72117971,     0.038041591,     -0.42459903,        2.219961,       1.0179258,     -0.57572295,      0.53886822,       -1.614435,     -0.60180825,       -1.689195,    -0.063692143,       1.5825462,     0.065961047,      -1.6981644,     0.045472721,      -1.8860929,      0.86878659,      0.76009013,    -0.072499842,     -0.41273788,     -0.53003135,       1.1735272,     -0.35485396,      0.43070299,     -0.76451393,      0.31186033,     -0.85142153,     -0.46699718,     -0.55496351,     -0.69702354,        0.011841,      0.46425391,       2.2105772,      -0.6856623,       1.0804753,     0.036415815,     -0.33018753,      0.31945257,     -0.69993269,       1.3736342,      0.81908573,    -0.082378691,     -0.71962377,      -1.1317626,     0.065795834,     -0.77532821,     -0.47776988,       -1.761508,     -0.20024372,     -0.30036002,     -0.37168073,      0.88542973,      0.70386117,     -0.45958908,     -0.29936633,     -0.19485042,       1.4478741,      0.81293631,      0.42450181,     -0.27174351,      -1.2458397,       1.0564553,     -0.84645705,      -1.0256231,       1.7702247,    -0.051151939,      0.12266095,       -2.668546,     0.013658411,      0.10982693,     -0.62886905,      -2.0237762,     -0.44985603,    -0.089339667,       1.1605889,     -0.29671311,     0.014536517,      0.40074665,       2.1669163,      0.24838108,      -0.1435875,       1.4676539,    0.0038152318,        1.003409,      0.72154739,    -0.026414891,      -1.1200293,      0.52203167,       -1.110635,     0.024818919,      -1.4419945,      0.27416146,      0.50509566,      0.73314801,    -0.081834789,     -0.66004623,     -0.40481445,      -1.3533967,       0.3707014,     -0.39147765,      -1.7185674,      0.70977486,      0.48812386,     -0.68001033,    -0.010730044,        1.371145,      -1.5601586,       1.0527907,      -1.4859398,      -1.2824945,     -0.72717678,      0.19361161,     -0.10081015,     0.036794557,      0.22092371,        1.677584,     0.047365294,      0.46344158,     -0.77986869,       1.1395265,     -0.38979109,      0.49481669,      0.85874917,     -0.73155215,     -0.75038085,      0.52759315,       2.3441109,      0.16480862,     -0.93101799,      -1.7377378,     -0.56220876,      -1.5728987,     -0.95306095,      0.14669589,      -1.5447781,     -0.58335014,       1.9287953,  -0.00068082069,         1.03296,         1.41223,     -0.57919866,      -0.5735355,     -0.28820343,      0.86612947,      -1.2128181,       2.1449977,     -0.68684883,     -0.23917355,      0.64457344,      -1.0362663,       -1.651119,    -0.072280485,     -0.14426375,      -1.1679063,       1.9294639,      0.83951366,      0.76224076,       1.1907385,      -0.6776002,       1.1705646,      0.23199805,     -0.78244427,       -1.660528,     -0.26682609,     0.071571501,      0.35506875,       1.3717322,      -2.6260794,    -0.029756162,       3.3684452,     -0.36828407,      0.51282199,     -0.41906205,     -0.81302161,      0.94301463,       1.8128223,      0.94554509,      -2.1438786,     -0.18059616,      -0.1491994,      -1.9075135,     -0.19811303,      0.87095847,     -0.69069564,     -0.17569068,     -0.42873297,       1.8636351,     0.033468361,      0.46383699,      0.80616843,      0.17453407,     -0.75445099,       1.2781017,      0.51736226,      -1.0715496,       1.1821095,      -1.7473602,     -0.46012525,     -0.33917163,      0.87198911,       1.1956472,     -0.86531745,      0.49186257,       -1.794198,      0.80422191,     -0.29860925,     -0.23370665,     -0.23677334,     -0.34839907,     -0.34125535,       0.1958106,      -2.6699807,      0.42336301,      0.14105124,      0.45098263,     -0.43074449,       1.1510788,      -1.7534378,      0.07609977,     -0.73171379,     -0.51850353,      -1.3663619,     -0.49818003,     -0.14082125,      -1.2868453,     -0.59587186,     -0.20953127,     -0.49637598,     -0.89205097,      0.41475751,     0.047881999,      0.18098132,     -0.75441333,     -0.37754829,       -1.565105,       1.0505436,     -0.21765377,      0.44334775,     -0.58740944,       1.1319498,       0.3993275,     -0.53960213,    -0.034178267,     -0.40439119,      0.59242011,      0.16247558,     -0.84580711,       1.0856547,     -0.57964645,     -0.98226692,       2.0480272,      0.17156218,     -0.27288214,       0.6980827,      0.35248423,      0.93049865,       1.7460332,      0.95724344,      -0.6317845,     -0.42475088,      0.73938285,     -0.26799458,     0.080178485,      -1.6694114,      0.52898377,      0.99769339,      -1.4313922,      -2.0628934,        1.740419,     -0.30548687,     -0.61143864,       -1.801074,      -1.1596522,     -0.26896536,     -0.33578333,      0.84456111,      0.14104539,      -0.6493411,      -1.6460154,     0.035641356,     0.018542786,      0.41273473,     -0.90124897,       1.8936444,      0.35610047,       1.3309561,      0.13117411,     -0.48517236,      0.36313893,       1.0036676,     -0.52876674,      -1.2050557,     -0.45785762,     -0.25008583,        -0.11456,      -1.2406182,     -0.83079586,       -1.336954,      0.28404882,    0.0090584588,      -2.1941885,      0.92382314,     -0.57561482,      -1.3057374,     -0.96937224,      0.64930734,      0.60865387,    -0.015426458,     -0.33157597,       -1.307503,     -0.66064736,     -0.62160348,      -1.5052927,     -0.69899959,       1.0583194,     -0.33852678,       1.4161601,      0.88625037,       2.3222012,     0.041746942,      0.46876819,     -0.46796637,     -0.69461846,      0.37940504,    0.0062650777,       1.4244551,      -1.0345272,     -0.64218838,    -0.087629146,      0.84740005,       1.0747214,     -0.18112382,     -0.34378563,        1.269103,      0.43377005,      0.74279038,     -0.22964309,      0.12009497,      0.31663952,      0.44888764,      0.17748648,      -2.9891551,      0.25394288,     -0.74892411,      0.88549521,     -0.54695433,       1.9971551,    0.0067368791,       1.4341545,     0.078960804,     -0.28055824,       1.2259327,       1.9840344,       1.0879436,      -1.6411711,      -1.6243111,      -0.4792885,      0.74524549,     -0.63115321,     -0.32935789,      0.55389582,       1.3482825,       1.7462914,     -0.15929784,     -0.28267642,     -0.74178437,      0.85505217,      0.41441275,      0.44032686,     -0.18421131,      0.18646667,     -0.29003899,     -0.50092545,      -1.1563359,       0.4537871,     -0.49370347,      0.46154055,    -0.078410822,      0.45558186,       1.2203804,      -1.1259382,      0.23035213,    -0.011763755,      0.71613586,     0.070259386,       0.4694112,      0.71007024,     -0.18115845,      -1.0802167,      -0.1271229,      0.94596526,      0.19712421,     -0.81225189,      0.22374097,      0.59968517,     -0.71159075,     -0.47450897,    -0.094991284,      -1.2509115,     -0.12565261,      0.34246053,       0.9780984,     -0.89660912,      0.81837384,       1.1326758,      0.36172043,      0.47331925,      -1.3268386,     -0.86882535,     -0.49638526,      -1.0180616,       1.6311819,     -0.32151911,      0.41041865,    -0.094498125,      -0.9590391,      -1.4149118,     -0.12880087,       1.1467971,     -0.82179569,      -1.0969658,     -0.97366274,       1.1447118,     -0.35553439,      0.54034962,     -0.82133754,     -0.63888285,     -0.25490833,     -0.24254918,     -0.60918315,       1.0251376,       1.2111989,      0.98909773,       2.2323494,       1.6825925,     -0.91714162,     -0.53378924,       1.0826225,       1.5454466,       0.2259581,      -1.5790582,    -0.024398978,       1.6347841,      -2.1985833,      0.96622908,      0.21694349,     -0.40835335,       1.5784265,      0.74722166,     -0.55194035,     -0.32614658,       -2.169906,    0.0066445736,      -1.4628615,       2.3869077,       1.4043957,     -0.40567586,      -0.4298945,     -0.43756967,      -1.8933762,       1.3989114,      -1.2196028,       0.8015551,      0.41695279,     -0.14096262,     -0.59021792,     -0.33228886,      -1.4477295,     -0.10487088,      0.58792408,      0.86503487,      0.71991246,      0.11923763,     -0.30984073,      0.73595203,     -0.31467469,      0.90368159,      -1.4263438,       1.7158164,       1.2617852,      0.30459779,      0.22611391,    -0.065045907,     -0.49791702,      -1.1272441,      0.35835168,     -0.12823646,      0.25246457,      0.93097458,      -1.6268321,      0.50060499,     -0.24160396,      -1.1576882,      -1.3731338,     -0.36335331,      0.66135918,       0.1270713,     -0.95705751,     -0.06940776,     -0.45388122,    -0.026087177,       1.3836787,     -0.37178934,     -0.21375284,      0.56292253,       1.7978913,       1.0587943,       1.3664284,     -0.30318706,     -0.82186641,        1.365034,      -1.1996639,       1.0951642,       1.0770715,     -0.31427869,      0.04293076,      0.44192204,     -0.96879702,     -0.19371516,     0.084236506,     -0.30099715,     -0.57825666,      0.89410532,     -0.55410285,     -0.82826508,       1.9521407,       1.0003245,      0.66657867
+2017Y,      0.64933082,     -0.54458541,      -1.1827692,      -1.1548148,       1.0833207,     -0.21384563,     -0.37771536,     -0.24577749,       1.6930025,      0.23222804,       2.1635414,       1.0509904,     -0.38227687,     -0.46603866,     -0.29744701,      0.97939901,      -0.9828107,      0.54862343,     -0.30412743,     -0.39214065,     -0.23675334,      0.83311885,       1.3265909,     -0.47486013,       1.2378068,     -0.86604005,     -0.17615852,     -0.99036703,     0.030508984,      0.23963671,      0.64739673,     0.053539154,      0.99292991,       2.0404995,    -0.056659653,        1.474782,     -0.69293357,     -0.47117292,     -0.61036186,       1.0865966,       1.1798424,      -1.8158923,      0.44169088,        1.246971,     0.048478346,      -1.8010984,       1.6134642,      0.35100999,     -0.53072847,     -0.41580709,     -0.32227483,     -0.79731465,      -1.7525146,     -0.22162503,      0.24195926,       -1.046791,     -0.89754269,      0.96357727,        2.009752,      0.75080578,    -0.051487465,       1.0394298,      -1.3930929,     -0.13540953,       1.3305403,     -0.77002726,      0.36055087,      -1.3967358,       1.5167852,      0.94075813,        3.345438,       0.8672399,      0.96666132,       0.4205365,       1.6973425,      0.46711334,      -1.7264334,      -1.1471572,     -0.72667239,      -1.0006257,     -0.42022391,    -0.060992605,      0.31077753,     -0.31870964,       0.1816248,       2.0287837,      0.75605854,       1.5664416,     -0.41473379,       1.0527211,     -0.72780863,      0.74186043,      -1.2108998,      -1.4672563,     0.090578615,      0.81923716,      -1.8715995,      -1.6004213,     -0.55159461,      0.37414219,      0.37800976,      0.10859682,   0.00032216436,      0.22200697,     -0.13316196,      0.56730188,       0.7821835,     0.051157642,      -0.2801721,     0.036474303,     -0.27467365,     -0.96340986,      -1.3192678,      -1.4500915,      0.99857245,       2.0791538,     -0.49647814,     -0.12608827,     -0.80277378,      -1.2075069,      -1.0739252,     -0.20074988,      0.92427221,       1.4995396,    -0.054630704,       1.3022663,       0.3260081,        0.692366,     -0.61396254,      0.48132198,     -0.34552591,       -1.623635,      -0.0224386,    -0.026910468,      0.49537505,     -0.81621831,    -0.074841652,     -0.33209741,     -0.50251221,     -0.68825247,       -1.719326,       1.2173379,     -0.74986053,     -0.71956854,      -1.0215049,       1.3717523,      0.52164248,     -0.41398559,     -0.80928624,      0.78670954,      0.53098178,       1.4845258,     -0.16390522,       1.7625267,      0.70590576,      -0.5725707,      0.31331304,      -1.8227413,     -0.83650339,      0.51234095,     -0.74265073,     0.058226452,      -1.0439727,     0.071495682,      -1.0994047,      0.23622289,       1.0167773,      0.62622376,     -0.01754415,      -0.5412639,      0.75088438,     -0.41952047,     -0.32963825,      0.10145225,      -0.8813681,       1.3480447,     0.071460529,       1.0006344,     -0.39550428,      -1.5818158,      -1.7331038,      0.25816575,      -0.3665949,     -0.38361004,     -0.88427219,    -0.054556588,       1.8777801,      0.58139354,       0.4935473,     -0.95793954,       1.7346767,     -0.70217722,      0.90296258,      0.50849744,      0.35343386,     -0.24917179,      -1.1651352,      0.85484755,       1.7124405,      0.86144536,      0.88042921,      0.69198122,      0.34342954,     -0.89385349,     -0.11906343,       1.2670715,     -0.23454778,      -1.3750721,      -1.1738162,     -0.66497126,     0.027854444,      -1.1878807,    -0.027918554,       1.1595943,         2.24188,      -0.5858407,      0.52115019,      0.69962928,      0.95479785,      0.44438199,    -0.029693853,     0.084187807,      -1.1402687,       1.6908159,      -1.2119268,      -1.4424991,      -1.1458219,      -1.4054788,     -0.58407198,     0.087838271,     0.096995498,     -0.41194007,     -0.22483484,       1.3266718,      -1.5323645,      -1.6737257,     -0.38585457,     -0.71274869,      0.35327893,      0.19219292,      0.23437479,     -0.16667779,      0.75853407,      -0.8450054,       1.4143029,     0.027102019,       1.8051039,       1.3403379,     0.055224699,      -0.5454976,      0.67312481,     -0.34323951,      -1.0398603,       1.6414493,       0.5928054,      -1.4099471,      0.21008079,      -2.5457487,      0.49747974,    -0.013166137,       2.7087964,        1.018183,       2.1396269,      -1.1601518,     -0.75305988,     0.072562106,       2.0194854,       0.3238742,      0.59029794,     0.072143316,     0.090170664,      -2.0083842,      0.54919809,      -1.0542248,      -1.7799888,     -0.98399839,       1.6517177,       1.2726213,      0.14035897,       0.7410639,      -1.4486604,       2.1612239,     -0.65150348,      -0.3321142,       -2.027717,     -0.42018023,       1.2232898,     -0.93311646,      -2.9200342,     -0.12526529,      -1.0516978,     -0.83779749,      -1.4015437,     0.020280846,      0.50352663,      -1.2570961,    -0.064106645,      0.40368388,       -1.080079,     -0.17627751,     -0.36812305,      0.49311816,     -0.39647556,      -1.1544387,     -0.79715435,     -0.67771564,       2.3705024,      -1.0075286,     -0.32512307,    -0.096960539,      -1.5511411,     0.089080709,     -0.78970189,      -1.5346419,     0.048462881,      0.16319763,       1.1383606,      -1.0372188,     -0.52127269,      0.11847253,    -0.019216548,      0.89901697,      0.74520422,      -1.3026564,      0.47983522,      0.32297403,     -0.57285858,     -0.97136348,       -1.431783,       1.0235697,      -1.6360011,     0.072690566,     -0.02298768,     -0.71126525,     -0.17348389,      0.60893607,       1.0572397,     0.091097148,     -0.24527526,      0.47256654,     -0.55315223,      0.81186477,      0.35873718,       1.4167424,      -0.7196434,       2.0072192,      0.69681408,     -0.41397133,      -2.1108813,      0.65014246,     -0.26618827,      0.62366174,     -0.33711292,      -1.8773884,     -0.45601014,     -0.79189741,      -0.8831282,    -0.087444036,      -1.4397113,      -1.2489133,     -0.35491301,     -0.12631914,      0.63783614,       0.3750737,      0.12399403,       0.1645045,      -0.7051831,      0.96123351,      0.53025559,      0.25227844,       1.6681241,       1.1438942,     -0.14060978,      0.27207562,     -0.60981114,      0.70274025,     -0.60521203,       0.7243672,      0.45829107,      0.28629459,      0.64481153,     -0.65187096,       -1.256231,      0.50151966,     -0.51621565,     -0.47805436,      0.49458095,      0.33793191,    -0.083864982,     -0.12252584,       1.9108503,      0.19442574,     0.041372689,       1.4557883,     0.047010948,       0.6804652,      0.51410501,       1.2288104,       1.9117392,      -1.1175961,      -1.7604169,      0.35509943,      -2.1785845,        1.734352,     -0.30645228,      0.43336909,     -0.26375696,      0.75360309,       1.2159577,      0.88024807,       1.6224971,      0.81872301,      0.39795128,      0.63231953,      -1.9300695,     -0.25671457,     0.094104782,     -0.56825417,       1.1208775,     -0.22381277,      -1.1571766,      0.38117402,      0.85910076,     -0.79823187,     -0.24958382,     -0.16502441,      0.95450586,      0.61771008,      0.43112692,    -0.099676331,      0.24214714,      0.61674925,      -3.1386342,      0.87364448,       2.1821638,      -0.1255366,     -0.39636288,      0.96535051,      0.71896968,       1.7149475,      -1.6407852,       1.4014222,     -0.24856306,     -0.73701933,      0.32253572,      -1.1479332,      0.83863112,      0.60205658,      -2.2974054,     -0.92094295,     -0.39691757,     -0.56933551,      0.39311273,       1.7905617,     -0.48543481,       2.4499206,      0.83292741,      -1.9784415,      0.31174552,     -0.41808224,       1.5995406,     -0.37615184,      -1.1008706,      0.15097787,       2.2251068,      0.32300657,     0.047185936,        1.010977,      0.75942265,      0.20200425,     -0.42730425,     0.016168864,     -0.70941783,     -0.88189492,      0.35449166,     -0.33481302,        0.433101,      0.65497372,      0.40275373,     0.057432087,      0.93496996,      0.74358391,        2.683924,     -0.17515135,      0.26295976,       -2.047221,     -0.49433232,     -0.41829546,    -0.029952251,      0.78661012,       1.3275435,     -0.62124955,      0.23498201,      -1.2603581,       1.0834019,     -0.64111675,     -0.14186947,     -0.93232847,     -0.38473561,      0.27771476,        0.721475,     -0.58617178,      0.61079752,      -1.4993233,       1.0679263,     0.092692822,       2.0241509,     -0.77067725,       1.9048482,      -1.0748692,      -1.4555303,       2.4704696,     -0.18047051,      0.32625973,       1.9590735,       1.1461508,      -1.0198735,       1.7340615,     -0.49332172,     -0.82003364,     -0.77329373,    -0.010110455,     -0.18589414,     -0.74663093,     -0.74520357,      -1.4163355,       1.5125268,      0.63428517,      0.47566938,    -0.076229632,      0.29462414,      -1.9046303,      0.22460656,      0.51773053,      -1.1496096,       1.2631143,    -0.084617008,     -0.84806218,    -0.049766548,     -0.11795669,       3.2736317,     -0.36677457,     -0.32936696,      0.19619608,     -0.49952971,       1.7393642,      0.73177225,     -0.78266247,      -2.1682372,     -0.48087516,      0.40371927,       1.0144515,      -2.2403782,      0.30930484,     -0.20829007,        -2.06464,      0.96596306,     -0.12640446,      0.90137125,      -0.7599785,      0.45308524,     -0.96082952,      0.47188579,       2.1939837,       0.3503477,       0.2506457,      0.25548151,     -0.42787772,       2.4355906,      0.48576827,     0.030004359,        1.236756,      0.84516449,      0.70196914,     -0.07598734,      -1.2905516,     -0.60316417,       1.7666639,     -0.16491527,     -0.90737498,      -0.9837124,     -0.16214286,    0.0019921287,       2.0447511,       0.1211345,       1.4111802,      -2.9671994,      0.10284593,      0.13554472,     -0.92268192,      0.59062053,       0.7285416,     -0.44106517,     -0.56319329,      -1.4083053,     -0.92547902,      0.27922989,     0.042136526,     -0.67591346,       2.6775011,      0.69123593,      0.28614143,     -0.24865995,     -0.75962463,      0.54570156,      -1.8711588,      -1.3099386,     0.081648138,      0.50572946,      0.79425564,     -0.09355567,      0.58424449,     -0.24230072,       -1.670387,      -1.1834397,     -0.16632531,      -1.9582371,      -1.3438884,      -0.4478424,       2.2355696,       1.0233301,      -0.6603823,     -0.34673937,       1.1953017,       1.7471875,     -0.20049005,      -1.1628944,      0.85906558,     -0.69126863,     -0.59165035,      0.54082545,       1.0252848,      0.02277679,     -0.56071793,       1.5769723,      -1.8092403,    -0.097516879,       2.1232703,       1.0365859,      0.95138754,     -0.73135196,     -0.36893197,      0.15641474,    -0.084064727,      -1.0878182,       2.3513533,      -1.0075384,       -1.242508,      -1.0128862,      -1.1759503,     -0.14724333,      -0.5087154,     -0.80053987,     -0.30951733,     -0.36996259,       1.1030408,       2.7448748,     -0.17883127,       3.1917683,      0.70185122,      -2.2074419,      0.39774267,      0.48083147,    -0.050888225,      0.19637129,    -0.067845613,      0.27447327,      0.86196211,      0.58178541,     0.071511544,       2.1608245,       2.1787505,      0.42140791,     -0.23125656,       -2.069166,     -0.71688735,     0.010580067,     -0.51833324,      -1.5118268,      -2.2910289,     -0.80189796,      0.55164688,     -0.32343002,     -0.19792654,      0.41451766,       1.1798107,    -0.071425675,     -0.38469404,         1.99249,      0.58756361,      -1.1754385,        1.225949,       2.6522417,      0.63605835,       -0.366508,     -0.42621815,      0.21749587,      0.22578077,    -0.035988391,       2.6770305,       2.0230154,      -0.2525422,      0.93335155,     -0.28720755,     0.029438907,     -0.17681165,       1.1154956,      0.59839756,     -0.75780679,      -1.8050971,     0.074374303,     -0.26286145,      -1.0681383,      -0.9210029,      0.72998471,      0.73252204,       0.9363182,     -0.77016632,      0.32759659,      0.28783428,      -1.5345817,      0.91608636,     0.010068012,     -0.10766701,       1.3608912,    -0.018130705,      -1.1159261,       1.5921992,     -0.52145888,     -0.32955609,     -0.92276077,     -0.74460867,       1.3564531,     -0.75664096,      -1.4772878,      0.52403905,      0.24872165,      -0.2697185,      0.20757554,     -0.13923594,      0.32337898,      0.13355991,     -0.73735581,      0.39065684,      -1.2225746,      0.20084637,      0.25145452,     -0.21609105,      0.68038748,    -0.084121767,      -2.8858232,     -0.66023753,       1.6105257,      -1.5256263,      -1.6513732,     -0.62446843,      -1.8214221,     -0.18495196,      0.14022276,     -0.90600335,      0.10346888,       1.5310871,        1.850958,      0.44431529,      0.53947934,       1.2687579,      0.45695658,     -0.46021534,     -0.49644309,       1.8199009,       1.0774926,      -1.4429467,     0.015200051,       -1.801087,      0.75680609,      0.94298507,      0.57895372,      0.76749759,     -0.59664676,      -1.0007731,     -0.72514947,     -0.73396556,     -0.81960939,      0.65985968,      0.55523602,      0.24335907,     -0.69736746,     -0.13674885,     -0.97268305,       1.1176785,     -0.54083716,     -0.33005371,       1.3628593,   -0.0075290141,     0.010979609,      0.50523255,       2.9881407,    -0.092886474,      -1.0828594,      0.60521436,   -0.0087789911,      0.75748236,      0.41672914,     -0.95900834,      0.94598593,     -0.90467617,      0.91429174,      -0.8773769,      -1.4988316,      0.25417349,     -0.86917658,       1.2678306,      -0.5502941,      0.78846157,     -0.18367216,     -0.11695232,      -1.3285086,      0.34620771,      -1.8723565,      0.27437014,     -0.82343692,     -0.39938912,      0.49621735,     0.020489345,     -0.12122214,        1.022007,      0.21247895,     -0.67360345,      0.49649929,      -1.0223671,       1.0565615,      -1.7209388,     -0.25683966,     -0.76943814,      -1.5546002,      0.81724856,      0.64771921,      -1.1247054,     -0.17891502,       1.2869882,      0.13145796,      0.71242772,     -0.67423653,     0.014961057,      0.25777602,      0.85477379,       1.1733109,      0.50902617,      0.19520135,      -1.0885821,      -1.6742636,     -0.49244536,      0.28517873,     -0.22562499,     -0.72269425,     -0.47718614,       -1.773189,      -1.7441331,     -0.43666164,      0.93143794,     -0.62317008,     0.069255688,     -0.60108124,       2.0516558,      0.65272032,     -0.55466956,     -0.10498904,       1.3602385,     -0.72150724,      -1.3457777,      0.78433948,       2.3309895,        1.175599,      0.78395198,      0.60083285,      -1.1004626,     -0.21543328,      -1.3002559,      -0.8135452,       2.0388786,      -1.2309332,       1.3285453,     0.037413587,     -0.57166156,       1.1005663,     -0.70637953,       1.0259085,       1.1052098,       1.7799373,      0.30981649,      0.19738925,      0.47036056,      0.96560917,     -0.57193993,    -0.055489201,     -0.30393087,     -0.76585409,      -1.2195646,      -1.0178014,      0.23010272,       1.4896555,      -0.9078163,       1.3655799,       1.4907479,      0.16311994,       1.0206412,      -1.3659911,       1.9317582,     -0.52350425,     -0.16910451,    -0.049703018,      0.33172273,     -0.36902037,      0.81481754,    -0.006876599,     -0.13811522,      0.85733894,      -1.0499481,       1.1913633,       1.2193376,      0.57333452,      0.63341713,      0.58977577,       1.6256506,       1.5735141,      0.35875172,      0.76639518,     -0.20389991,      0.73201952,      0.29267455,     -0.47225604,     -0.88995271,     -0.40637543,      0.64367439,     -0.32095008,       1.1769515,     -0.18839603,     -0.52064787,       1.4839541,     -0.22050623,      -2.8122322,      0.17506696,     -0.98200127,       -2.523317,      0.30731811,    -0.032087825,      0.18350601,      0.69767822,     -0.14391856,        0.589373,       1.3023927,      0.26524657,      0.80081285,     -0.14670717,     -0.24130936,     -0.50121991,     -0.59011868,       2.0421171,       1.8975577,      -1.2007535,     -0.53013017,      0.65340798,     -0.72503255,      -1.1393847,    -0.063400771,     -0.20962831,     -0.65492257,       1.3195291,       1.4803757,     0.063321111,       -1.356276,      0.49952927,      0.18269574,     -0.21766405,      -1.8690406,      -2.1373733,     -0.94125262,     -0.43072485,     -0.74530308,     -0.83575266,    -0.030023258,       1.1894988,      0.71925641,      -1.7386959,      -0.9163891,     -0.64606456,     -0.77135824,      -1.3852726,     -0.22139229,      0.59183528,     -0.08628584,      0.77611227,    -0.024592249,     0.034263419,     -0.32627049,       1.7363162,      -1.0277612,     -0.80242764,     -0.28550528,      0.78171125,        1.506317,      0.67745352,      0.48713202,      -0.4854222,      -0.5767845,     -0.95773083,     -0.70579233,      0.11962388,      0.68138129,     -0.12549736,      -1.1537573,       1.0149714,      0.43121704,       1.1808685,      -1.2783072,      0.60966689,      -1.7593952,      0.71809273,      -1.1033857,       2.0936224,     -0.29995399,      -1.7976705,    -0.073034156,      -1.1094264,       1.1452289,      0.12087588,       1.7346739,     -0.51080298,      0.95605606,       0.2973571,       1.1074003,     -0.59366962,      -1.3376717,      0.97128862,       0.4079573,      -1.6959202,     -0.32785416,     -0.65785812,       1.0290964,       1.0745595,     -0.91594825,      0.11827323,       1.2359727,       1.3331501,     -0.96733549,     -0.22451611,       1.4794454,      0.52454884,     -0.66510061,      0.61848559,      0.14849722,     -0.44583138,     -0.44953032,     -0.37203567,       1.9280286,     -0.89846254,     -0.72679913,     -0.55424336,      0.49139551,     -0.65785244,     -0.82806559,     -0.60841275,      0.44678869,      0.90872889,      0.77090392,     -0.15907374,      0.76917163,      0.17798082,     -0.35970218,      -1.0214828,      0.84687802,      0.04616014,     -0.85345453,       1.1122362,       2.0880888,       2.3431516,      0.47737518,     -0.82595611,       2.2253665,      -1.2520641,      -1.7338733,       1.5528605,     -0.35257059,      0.20521297,       1.4084919,      -1.1698449,      -1.5951654,        3.119353,     -0.72349313,       1.1676292,      0.17703361,       -1.320994,     -0.81402341,      0.87571487,     -0.43970106,     0.088602949,      0.13540114,       1.1895052,     -0.47654427,       1.1680843,    0.0074162763,      -2.9102847,      0.98893697,     -0.79805682,      0.24037334,       3.0933883,      0.41362037,     -0.49936983,      0.44368425,      0.68072716,     -0.11866709,      -1.2430416,      0.16930143,      0.53962093,      0.61624472,      0.27460388,      0.17440978,      0.24539859,      0.95312076,      -1.0365505,    -0.078243419,     -0.73930413,      0.99400327,      0.44030958,      0.13734061,      -1.9634893,     -0.59056186,      0.51668163,      -1.0610946,     -0.84053854,         1.29643,      0.54947775,     -0.46469728,     -0.29309719,       0.7718635,    -0.097825909,      -2.5593113,      0.42756671,      0.85137318,     -0.71017206,      -1.1114244,       1.1410752,      0.26824703,     -0.81571238,       2.8041273,       1.3697949,       -0.690509,      0.33552802,     -0.74587271,      0.56628192,     -0.20092146,       1.2597457,    -0.007865542,      0.64855049,      0.23478788,      -2.0584952,   -0.0058423977,       1.1519472,      0.73442092,     -0.58886371,     -0.22318152,    0.0044594441,        1.127796,       1.3777505,      -1.0447302,     -0.46754964,      0.19127446,       1.3199341,      -1.3171525,      0.76745349,      -0.3465273,     -0.21417396,      0.46507991,      0.90018628,     0.091174868,     0.033186369,      0.46213512,     -0.63407045,       1.3888816,     -0.64024363,      0.10999168,     -0.80859764,      0.33369001,      0.74839238,      0.30718365,     0.047849573,       2.9015881,       1.5463873,      0.56517859,     -0.52900219,     -0.44659741,     -0.72627182,     -0.81900375,    -0.068407453,     -0.78442849,      -1.2589536,     -0.69205394,      0.83463378,     0.082017664,      0.51824494,       -1.391795,       1.0773306,      0.73071852,      0.57863922,     -0.24624373,      0.57253302,      0.14849711,     -0.76487431,     -0.21679021,      0.73941632,      0.42813225,     -0.13088361,     -0.23301928,     0.057698832,     -0.98607742,      -2.0424921,       1.9841294,      -1.1364973,      -1.2661201,       -0.273628,      0.69126443,       1.8575884,       1.0266297,     -0.41476517,      0.71467167,      -1.3618538,      0.66996261,       -1.826648,      -1.1948638,      0.40665724,       1.6363785,      0.62779438,      -1.2127461,      0.30268088,      0.12307769,     -0.81515642,     -0.20500806,      -1.8744701,      -1.3693728,     -0.67391897,      -1.9596509,    0.0085496622,     0.067337776,       1.2773995,     -0.49795347,    -0.039504268,       2.4442029,       1.2098382,     -0.10514011,     -0.18876425,     -0.58796635,     -0.85165021,      0.43553212,     0.042573712,      0.62943165,     0.045010966,       1.7194723,     -0.27678969,     -0.17827996,     -0.76798868,      0.45262438,    -0.077723494,       1.2225044,      0.64524127,     0.063945515,     -0.14410215,      0.49753116,      -1.0034716,     -0.33046516,     -0.28685586,     -0.31852057,      0.64702542,      0.13814124,     -0.95945301,      -0.7018383,     -0.53276546,      -1.0032885,    -0.038060791,      -0.5054048,      0.21823034,      -1.4967108,      -0.8669273,      -1.2814158,      -0.1378334,     -0.65200174,      -1.6333257,     -0.63879997,     0.087977062,      0.85553366,     -0.81244004,       1.4856573,       1.1203415,      0.37165193,     -0.72889064,       -0.217447,      0.55930022,      0.63819476,      0.68761529,      -2.6322683,     0.073632688,     -0.54198269,      0.36002142,     -0.63607751,      0.90768744,      -1.1728282,       1.4007505,     -0.64791628,     0.071205722,     -0.40762896,      0.56248483,     -0.45989176,      -1.7703009,       0.9686964,     -0.32633509,       1.0945861,      -1.7896377,     -0.86152021,      -1.0433748,      -1.0323737,     0.042393159,     -0.12639919,       1.6270715,      -1.2320755,      0.69182412,     -0.49118164,      0.37050007,      0.11289284,        -0.29303,      0.47962236,     -0.25164251,     -0.88855979,      -1.4999133,      0.11730382,      0.05157945,       1.0695825,       1.9850698,       -1.818375,     -0.93415809,     -0.85510968,     -0.38234756,     -0.80578874,      0.61063872,       1.0544875,     -0.91327386,     -0.74033094,      0.98631611,      0.43135495,      -2.6896478,      -0.1878235,       1.9882453,       1.3713026,      0.27064156,     -0.73080673,       1.1575763,       1.3655856,      -1.9245606,      -1.0181511,     -0.32533791,      0.83174871,     -0.45691656,      0.99506194,      -2.9332826,      0.91109517,      0.45797543,      -1.4415539,     -0.14891852,      -1.3627202,      0.14065796,     -0.43600757,       1.3760057,      0.90172987,      -1.3379089,      0.17965553,      -1.2878929,       1.5566022,      -0.3719998,     -0.76611538,      0.26183289,      -1.2019897,     -0.67823667,      -1.3120899,     0.079290899,     -0.39820714,     -0.50893889,      0.64855212,     -0.22907748,     -0.94315445,     -0.59127526,      -1.5614134,       1.1830941,      -1.4935237,      0.52277892,      -1.7370869,      0.71638756,      0.24062901,     -0.72285885,     -0.71109668,     -0.45234859,     -0.77310388,     -0.27092628,     0.037296603,     -0.29762885,      -1.7723108,     -0.15587332,      -1.7512055,    -0.082147965,     -0.37708413,      0.70564347,     0.056662916,       1.5809513,      0.81647621,     -0.35150579,     -0.18235377,     -0.86683733,       0.7242781,      0.90670068,        1.069304,     0.054509251,      0.55065108,     -0.14141574,    -0.050920484,       -1.804439,      0.21666396,      0.20458536,       0.8643792,      -2.4901602,     0.075067019,       -1.290488,     0.005097628,     -0.93717904,     -0.79090511,      0.03358814,       1.7193639,      0.95232771,     -0.20618761,      0.48737655,      -1.5282146,     -0.49851206,     -0.77886887,      -2.4633301,      -1.6295936,      0.34925853
+2018Y,     -0.26480738,      0.38247499,      0.92721068,     -0.41627902,      -1.1276239,       2.1168774,      0.33875814,        -1.52378,      -1.4600495,       1.1152092,    -0.021706971,        1.048667,      0.12127237,      -2.1261629,      0.50837965,     -0.67462578,     -0.47424948,      0.35372521,     -0.64440576,     -0.11718152,      -1.0241237,    -0.028991489,      0.74943695,     -0.86704292,     -0.65070739,     -0.19274963,       1.5850097,     -0.74423109,     -0.22319018,       0.9409975,      0.39959079,     -0.94652683,     -0.51741845,      0.61698985,      0.79137137,       1.1339534,     -0.88925104,       1.4907994,      0.31169343,      0.30755738,    -0.009319406,      0.43944065,     -0.46593697,      0.71035071,      0.27824041,     -0.16516715,      -1.3037578,    0.0070931635,      0.60728531,      0.46947542,     -0.80117111,       1.5887733,     -0.77029704,     -0.60128917,     -0.87064054,     0.053466708,     -0.81913914,      0.86695826,       1.6204097,      0.33632711,      -0.6591412,      0.28953886,      0.50633974,     -0.32780168,       0.2548515,      0.76506285,       1.2747795,     -0.18168683,       2.4596382,       1.2410147,      0.33385197,     -0.63486295,     -0.14909446,      0.41143853,       0.4721167,       1.3649471,      -1.1666587,      0.14428478,     -0.21808111,     -0.52639537,      0.10404743,      -3.3671539,      0.31457395,      0.59685989,      -1.6540486,       1.3932613,     -0.15978432,      0.29535629,     0.070297664,       2.3713759,       1.9065457,       1.7192451,       1.0829425,     -0.21848644,       1.9820262,       1.3879084,      0.60714113,      -1.1178269,       1.5617087,     -0.38738796,     -0.08762604,     -0.70466368,     0.030305739,      0.63634842,     -0.96526198,     -0.81885746,      -0.4960197,       1.1416785,       1.2423968,      0.19801436,      0.69387875,      0.77980754,        2.730216,     -0.57343677,       0.8008508,     -0.78156139,      -1.8412916,     -0.74954106,       1.0414372,      -1.8105597,      0.80960173,      -1.2475246,       1.0549632,     -0.72782048,       1.9390009,      0.51643424,     -0.41440189,      -1.0432828,     -0.31827569,       0.1121464,       1.2309462,     -0.11748326,       1.3634438,      0.22181415,     -0.79852311,       -1.387628,      0.66643591,      -1.0888056,     -0.77924825,       1.2888721,       1.2191764,      -1.5125241,       1.5245038,      0.08385583,     -0.37791173,      0.11833523,       1.3041173,      0.33928429,      0.72911455,      0.85210376,     -0.32696673,      0.36230296,     -0.80429511,     -0.58348027,       0.5780438,     -0.64999128,       1.0065083,     -0.44980917,      -0.3721277,       2.1982108,       1.3969697,       1.7014703,      0.32345463,       2.0226366,    -0.057044248,     -0.24274936,      -1.4593628,        1.411044,       1.5115085,     -0.83204092,      -1.0620222,      -1.1116765,   0.00043352983,     -0.99659909,       1.3433968,     0.072048489,     0.012918639,       1.1079122,      -1.1161865,      -0.4318651,      0.13305249,      -1.2235071,    -0.067146956,      -1.3125823,      0.95505505,      0.69108931,      -1.9832638,      0.40705061,      0.31035445,      0.55257539,      0.67106037,     -0.63680326,     -0.75351949,    -0.089853279,       0.3463674,      0.41039497,        0.667176,     -0.21580067,      0.22496948,       1.1724094,     -0.46993445,     -0.61685778,      0.13215941,      0.63078165,      0.96108812,       1.9365598,      0.46932217,     0.018668826,     -0.10054015,    -0.031710952,       1.2046132,      -1.2613876,    -0.056444904,     -0.51022911,      0.70244433,       1.0963093,     -0.34970467,        2.011291,      0.42298447,   -0.0056891165,     -0.16278183,     -0.40668135,  -0.00048669806,       0.6498925,       1.7754703,      -1.5429967,     -0.27197344,       1.1206989,      0.75589336,     -0.31730523,      0.00134594,      -1.5216773,      0.75033644,      0.43896034,      -1.5088214,       1.0021834,       -1.301649,      0.61308827,       1.5330878,     -0.29664555,      0.76825143,       0.6331012,     -0.77745676,       1.2810565,    -0.075785361,      -1.3507228,      0.46625055,      0.77588594,     -0.82954895,       1.4937728,       2.0983338,      -2.6801292,      0.47492465,     -0.89356161,       2.3271379,      0.47277178,      0.49201291,    0.0046567817,        -2.15502,       0.9148254,     -0.28024026,     -0.49610827,      0.66013889,       1.6470225,      0.36424613,       1.6984781,      -1.3002729,      0.68535189,     0.053150861,      -1.3281409,       -2.446161,     -0.64204311,      -1.3124354,      -0.1996243,       2.1369972,     -0.82526818,       1.4045996,     -0.17567433,      -1.5732006,      0.21705643,      0.39165083,     0.057992631,       1.0737673,      0.77039723,       1.0380203,     0.084853218,     -0.21980857,     -0.81924837,      0.94322031,     -0.81212337,     -0.22186297,      0.70026986,      -0.4957348,       2.0150802,      0.44238217,       -0.199083,       1.6042461,      0.39750356,     -0.11111076,      -1.4700078,      -3.1517537,     -0.19886256,      0.27578932,     0.070305722,     -0.67303543,      0.54456928,      0.80288416,       1.0956862,      0.50567351,      0.32543376,     -0.29883918,      0.24391616,      -1.1040471,     -0.42200446,      -1.9251151,     -0.19253083,     -0.54126469,     -0.26077109,     -0.41331253,      0.60525181,     -0.85753783,       1.1483464,      -1.2230449,     -0.11853998,      -2.5782232,       0.5881353,     -0.79123266,     -0.51984095,     -0.67372517,      -1.4879494,      0.40398602,      0.21358163,       1.1700297,       1.8754364,     -0.45530828,      -1.8459292,       0.5635269,      0.47002473,      0.27276717,     -0.45971292,       1.2046398,   -0.0054271874,     -0.21136294,       1.6007201,     -0.80594224,       1.4839275,     -0.40957406,      -1.3612404,    -0.052326369,     -0.36779173,     -0.40106072,       -1.725559,       1.5482859,      0.56106517,       1.5830856,     -0.50097198,       1.1316404,      0.64546947,       2.0469501,     0.060871157,     -0.80447402,      0.72679774,     -0.87246488,     -0.15722759,       1.1045758,      -0.2625156,      0.32399335,     -0.21958137,      0.97549452,       0.1320729,      -1.1922822,      0.79779817,      0.29054714,       1.4985829,       1.3293829,    -0.094773289,      0.13848641,      0.91886306,     -0.38262351,      -1.7868445,      -0.8954912,     -0.89382487,      -0.1245154,      -0.8927952,     -0.39192649,      0.64020346,     -0.36441789,      0.45294367,     0.041091767,      -1.0580642,      0.27085667,      -1.1318881,      0.45997056,     0.094648796,     -0.60543323,      0.15719602,      -0.4321681,      0.06381491,      -2.2497852,       -1.299053,     -0.38423468,      0.33145179,     -0.61712717,      0.49001418,       2.5826614,       2.1998358,      0.23159023,       1.8965505,       1.2474258,     -0.12966222,       0.7305321,      0.94579637,      0.90776248,      -1.9581865,       0.9412452,      0.81109108,     0.077448518,     -0.57874124,         1.37369,      0.54630614,     -0.26469636,      -0.3219372,     -0.22417746,      0.86489728,     -0.16857545,      -1.3094929,      0.53425822,      0.83737723,     -0.11897356,      0.37080686,    -0.010628806,      0.90409946,  -0.00033749198,      0.14496606,       1.5406703,      0.73668726,      0.85203412,         1.02702,     -0.26827061,      -1.4022058,      -1.2457004,      -1.7575985,       0.3831547,      0.46142087,      0.41093745,      0.77529635,     -0.32369963,      -0.8904179,    -0.098335377,       1.2550717,       0.2618283,     -0.86274139,      0.59257935,     -0.32642141,     -0.65476399,     -0.14690446,       1.3226277,      0.23623111,      0.16093236,     -0.96623641,     -0.51190981,      0.51462762,      0.37036662,      0.73511349,      0.11898007,       1.4837055,      -2.0569336,      0.24031612,     -0.46408005,      0.10419495,      0.52676815,     -0.83937261,     -0.25290883,     -0.41622246,      -1.0418046,      0.15640008,     -0.50755333,    -0.017784957,      0.22693667,       1.0197499,     -0.04436449,      0.28455575,       2.2078322,      0.68875527,       1.2245697,      -2.4132265,      -1.3400951,      -1.8674959,     -0.43605872,       2.2875398,      0.82923603,       1.1949567,     -0.77917497,      0.68589995,      0.82946437,      0.21946448,       0.3844156,     -0.22973973,      -0.8421929,      -0.1073346,      0.65953673,     -0.18364931,       -1.285911,     -0.72469291,      -2.5870759,      -1.1278324,     -0.58609997,      -1.1523703,      0.13374067,     -0.53544493,      -2.6587732,       -1.085936,      0.69277805,      0.69368353,      0.21352307,      0.78580123,      0.22444684,    -0.093632597,      0.63580731,      0.24157943,     0.065077135,     -0.17509722,       1.3660865,      0.21092944,       2.2725993,      0.55350921,       1.1867985,      0.81485247,       1.1115156,      0.46312371,      -2.3398073,      0.23587348,      0.44557682,     -0.94256907,      -1.1679689,      0.49330618,       1.1180785,      0.46718281,     0.066276755,       1.7901158,      0.17835877,       1.0596035,     -0.33401457,     -0.34291391,     -0.78337176,     -0.33545367,      0.15816282,       0.3936476,      -1.4037854,       -0.242811,       -1.346218,     -0.43929149,       1.4476763,      0.35134205,     -0.45447197,       1.2606511,       1.5636804,      0.91048649,     -0.86815393,        1.038047,     -0.56859245,       2.2341335,     -0.10571167,     -0.72998014,      0.73716659,       1.6614393,     -0.82203122,       -1.033839,      0.41954394,         1.31539,      0.52883079,      -1.0364082,      0.68166485,     -0.88471962,      0.23963692,      0.63325115,      -2.0876968,     -0.64581683,      0.63160666,     -0.39041435,      -1.2048077,      -1.0387155,     0.075878346,     -0.38738126,      0.18596125,      0.78409551,      -2.0821284,     -0.55796529,     -0.31934856,      0.80362032,    0.0099478609,      0.53849024,      -0.4558375,      -0.9202105,       -1.126175,     -0.75904978,      -2.1546446,      0.90018586,       1.3760318,       1.0224152,       -1.903449,      0.82123835,     0.069400287,      0.11945893,       1.2405646,      -1.0341757,      -1.1477322,      0.26363589,      0.73006051,       1.3525698,        2.159676,      0.91093916,     0.020525513,      0.18125466,     -0.76300607,      -1.0837352,      0.88279709,      0.12986425,     -0.90769399,      0.95937907,      0.46597166,       1.3663085,      -1.6305575,       1.0682288,      0.54554195,      0.94077374,      -0.7627295,      -1.8432781,      -1.8479655,     -0.83871133,      -1.2177488,      0.60258553,         1.21715,      0.52289994,     -0.46172035,        1.856658,       2.9815259,       1.1584895,     -0.74941773,       1.4855781,      -2.1160723,      0.27415583,       0.2403027,      -1.9715775,      -1.7736355,     0.021444279,     -0.27737859,     -0.83849123,      0.15277767,     -0.82060468,      -1.2664375,       0.7193521,     0.070823212,     0.081936934,     -0.36802406,       0.7251258,      0.49046214,      0.31568389,    -0.041495995,      -1.8993063,      0.10211154,      -1.0809166,      -1.1314338,       1.6330302,      -2.6939321,      0.76559893,       2.4201314,      0.30718527,     -0.59035964,      0.46897571,       1.4519487,      0.58537014,     -0.91031667,     -0.27432598,     -0.43845774,     -0.35980392,     -0.75463505,       1.6367634,      0.61730132,      -1.6365789,     -0.87345566,       0.2145714,       1.1280125,      0.38275629,     -0.79616833,      0.47775825,     -0.37189687,     -0.61372302,      0.49818267,       1.2014189,     -0.86724375,      0.77208493,      0.56814688,      -1.4964255,     0.029162522,      0.84162279,       1.0376032,       1.2439612,     -0.23897088,      0.42958634,      -0.9113706,     -0.15465055,   -0.0036582402,     -0.79083502,      0.90570823,      -1.8373034,      0.89448963,      0.69244958,      0.27194397,       1.4993204,       1.6285671,       1.4491443,     0.062575945,      0.37265535,     -0.14971724,     -0.51495759,      0.41785467,      0.71220618,      0.04749699,       1.9250085,       1.1472761,      0.29844381,      0.20905077,       0.4273031,    -0.097072028,      0.53476804,       1.5137034,       0.5887089,      0.41406159,     -0.99059397,      0.58222649,      -1.3440961,      -2.1528936,      0.38637947,     -0.26742706,      -1.9396595,     -0.79922598,     0.023555043,       0.7728679,       1.8760821,      -1.4327464,     -0.47584705,      -1.3838461,      0.16645492,    -0.085188351,      0.48610238,     -0.21600565,      -1.4930561,      0.82325927,      0.86659535,      0.58609211,     -0.33949757,      0.66624312,      0.71888437,      0.11626979,      0.47475352,      0.44346531,     -0.16510736,       1.4112447,       0.7846136,     -0.47934264,     -0.53822864,      -1.3169706,      -1.7505578,     -0.16921856,     0.062714035,     -0.44230687,      -1.9230758,     -0.31772432,       1.2150548,     -0.56646747,     0.059370979,       1.4430238,     -0.95913629,     -0.66465645,        1.513261,     -0.43916104,       0.8446779,     -0.78960496,       1.1053902,      -1.9717398,     0.019413061,      -1.4728082,     -0.39080483,      -1.3772793,      -1.7624091,       2.2195149,       1.4509576,      -0.3936306,      0.90573164,     -0.56080725,      0.86789536,       1.3103705,      -1.7093641,     -0.16483762,      0.10793402,      0.10293112,     -0.22098062,      -1.2990835,       1.1700352,       1.4017896,     -0.63169296,       2.7305588,     -0.58789847,      0.80344919,     -0.94480483,      0.14443546,      0.73372765,     -0.33318584,      -1.1517956,      0.79694406,      0.29003233,     -0.20575661,      -1.6017476,     -0.99214189,      0.22780041,      0.91695041,     -0.89009464,     -0.68739795,       -1.622613,      0.02957773,       -1.857053,    -0.055845205,       3.3580297,     -0.16371291,      -1.9557585,      -1.6251017,      0.71652974,      0.37364862,     0.047655068,      0.96022039,     -0.73057023,      0.52113525,      0.17042155,      0.90440012,       2.0755251,      0.39708587,     -0.78044067,     -0.34776059,        1.653418,      0.27930716,    -0.077287973,      0.60156034,       0.3376363,      0.41967116,      0.80462323,       0.5063536,       0.7218463,       -1.111045,      0.51857463,     -0.76625314,       1.6315686,      0.75873363,      0.41585785,      0.34956668,      0.87796203,     -0.37533592,       1.0223868,      0.99140371,      -1.8729904,      0.30607399,      -1.2729345,     -0.95940538,      0.29314528,     -0.47547716,     -0.36592123,    -0.031269272,      -1.4832927,     -0.77086032,      0.15964218,     -0.58860058,      0.87004335,     -0.39351051,      0.58611402,      -2.0908311,      0.35439437,     0.034343586,      0.74090505,       1.2282572,      0.60169659,     -0.82328498,       1.0968816,       1.2417482,      0.29505125,      0.10272898,     -0.91931347,      -0.7686131,    -0.077556203,     -0.54579339,     -0.72586822,     -0.19470801,       1.2616459,     -0.54606315,     -0.90994889,      -1.9784823,       -1.192698,       1.1545427,      0.59185653,     -0.20889727,       0.1076255,     -0.57291726,       0.7784916,     -0.01668541,      0.82937834,      -1.2027536,      -1.4066754,      -1.1030064,      0.28612643,       1.7399014,       0.1299442,      -1.3855494,      0.23869541,       0.3542754,       1.0252645,    -0.073873084,       1.1550992,      0.70595124,      0.59164267,       1.7909555,      -1.7710083,      -1.9679842,      0.71632933,      0.14712613,     -0.93273538,        1.091585,    -0.040532676,       0.8802448,     -0.74328838,      -1.3162316,     -0.94378339,      -1.5747669,       1.0335391,      -1.6850278,     -0.15397966,    -0.085163259,       1.7967317,      -1.5861296,     -0.49052106,      -1.8760003,      0.29875739,    0.0052203875,      0.26820331,      0.59599814,      -1.0180605,      0.53056818,    0.0071941409,      -1.5153741,      -2.2338555,      -1.3112411,     -0.27597801,      0.34941957,      0.91441768,       1.5964667,       1.6109488,    -0.098026686,      -1.9332995,     -0.11394547,      -1.1772736,      0.95167433,      0.63644368,      -2.1190696,        0.778083,     -0.10802328,      0.45133645,      0.54708754,    -0.049546799,      0.40995684,     0.011638424,     -0.10384942,        1.119397,      -1.6489111,      0.72939051,      0.57087094,       -1.215927,     -0.37979098,     -0.47157486,      0.82127432,      -1.0405398,      0.34454114,      0.20009762,     -0.47459253,      0.18416373,      -1.3441619,        1.263397,     -0.32726799,      -1.8464674,     -0.72419821,     -0.65018046,      -1.3871973,       1.1416501,      0.58876318,     -0.18394548,      0.44174002,       1.1371384,       1.7565026,       2.4845493,     -0.92858096,      0.51654955,     -0.07825766,      0.80786502,        1.035666,       1.5900684,    -0.053873917,      0.77726611,     -0.10514103,      -0.1974115,      0.25107325,     -0.77623439,      -1.6885792,       1.2503214,     -0.88083676,       2.1572768,      0.63053863,     -0.27159889,      -1.4106535,     -0.44329085,      0.23212407,     -0.15362267,      0.11765208,     0.078347175,       1.7372466,     -0.72937241,     -0.84069032,     -0.98297232,       1.4155923,     -0.68242566,     -0.33636572,       1.0982631,     -0.61824043,      0.30310218,     0.019409831,     -0.71454986,        1.500268,     -0.52490377,      -1.3276773,        0.321664,      0.97269776,      0.29563146,      -1.6929096,        2.165477,      0.85683164,      0.61757364,     -0.23099579,     -0.15236327,      -2.1161322,       -0.687286,     -0.63846083,     -0.30119123,     -0.17288179,      0.73781792,      0.53859027,    -0.091720974,        1.058027,     -0.12151455,     -0.24129754,       2.4395801,      -1.5415579,     -0.67680587,    -0.026856583,      0.32138194,       1.4903476,     -0.93850622,       1.9164443,     -0.20028369,      -2.0203083,    -0.063770757,     -0.16218815,    -0.047929934,       1.2089769,       2.2214505,       1.3311572,      0.64910988,     -0.17570595,       1.6232198,      -1.8403586,       1.1520125,      -1.0124826,      0.72570543,     0.096222451,       0.5588706,       1.0999377,    -0.097312831,       0.5267643,     -0.15385848,       -0.285814,      -1.1517049,     -0.73342925,     -0.59388557,     -0.24259353,      -1.0403519,      0.88324517,     -0.59973536,       0.6328319,       1.3412459,     -0.98437726,      -1.1710819,         1.97605,      0.47982682,      0.71215846,     0.043270728,     -0.30031637,      0.44483098,      -4.0094732,       2.5499175,     -0.90416149,        1.388149,     -0.15382052,      -2.5957532,       1.5024261,      0.49523289,       1.8251784,      -0.5445541,      0.66349745,      0.49302976,      0.45041053,      0.72974865,     0.057333719,       1.2313069,      -1.1145392,      0.77292195,     0.047205329,       1.5695158,      0.31127989,      0.74105528,     -0.93871785,      -1.1879792,       0.5793944,      -1.3102273,     -0.15699373,     -0.40121507,      0.90529547,      -1.9478652,     -0.70587593,       -1.241348,       1.3710131,      -1.1239999,     -0.14536131,       0.1151167,     -0.79267521,      0.46671429,      -1.6934366,      -1.2171256,     -0.98253428,      -1.6514241,     -0.87856765,      0.55609177,      0.86472106,     -0.34352071,       1.1177014,      0.36352973,      0.91553257,      -0.6131368,       1.8549103,      0.58371143,     -0.58622015,       1.3205254,      0.92666672,     0.030384546,      0.44242941,       0.1886901,     -0.53382224,      0.71613335,     -0.48180304,     -0.94720834,      0.98111928,      -1.1686883,     -0.83608043,     -0.26199082,      0.45592698,      -1.2129235,      0.42455267,     -0.99835101,      -1.7601693,       1.2888033,     -0.74792757,     -0.11674184,     -0.68566693,      -2.2668443,     -0.10504157,     -0.50191049,      0.44323264,      -1.7496053,     -0.56006069,      0.60365085,      -0.7130511,      0.19432809,       1.8091686,       1.3906909,     0.010886088,      0.90417572,    -0.065915413,      -1.9454518,      -1.3890646,      0.43199241,     -0.77347843,     -0.41326176,      0.26067411,       0.3038516,     -0.95236137,       1.1364437,       1.0387218,      0.27294543,      -1.0940819,      -1.1134567,      -1.4917298,       1.0502131,      -1.9060501,       1.8506158,       0.3502493,      -2.2208773,     -0.78834287,      0.28027491,     0.084942849,    -0.066296083,       2.3655286,      -1.6132548,      0.64002385,     -0.11488614,      0.82845744,      0.42955097,     -0.62243298,     -0.94642631,       1.8701704,      -1.2288875,      0.61151764,      -1.8134329,      -0.5433023,     -0.21425084,      -1.0921365,     -0.20445147,      0.22637946,     -0.76633775,     -0.40677317,       2.6666954,     -0.21679731,       1.2840235,     -0.98101378,     -0.55148634,     -0.64096117,     -0.33397813,      -1.1136277,    -0.091120588,    -0.037786317,     -0.46253402,      -0.1530555,        1.361168,       1.2446191,      0.34329876,       1.6508773,        -1.12631,       0.4043393,     -0.28649372,      0.43750291,       1.2226157,      0.42895827,      0.17123759,     -0.26957353,      -1.1015804,     -0.69741474,    0.0044341672,     -0.95056616,     -0.39796468,      0.44395607,       1.2832607,     -0.88864565,     -0.46182543,      -1.2810243,      0.59289951,     0.083185646,      -1.2587201,       1.0742055,       0.7679649,     -0.73999087,        2.101853,       -0.635582,       -2.371888,      -1.1242181,       1.3470589,     -0.32300919,      0.80678388,     -0.64767552,      0.64717405,     -0.20786987,      -1.0016554,      -1.7560678,         -1.8456,     -0.13324873,      -1.2754667,       1.1234245,      0.24928291,     -0.50666689,      -2.2538404,      0.20785015,      -1.6766338,     -0.85004659,      0.12985951,      0.24574862,     -0.33530531,       1.5579319,      0.34495727,     -0.78588539,      -2.4120266,     -0.50498422,       1.4259298,   -0.0088599076,       0.1502772,       0.5932655,      -1.3662158,       0.7182259,     -0.46978417,      0.18463568,     -0.13527362,      -1.1933111,     -0.22953976,     -0.17269675,     0.097913911,      0.87778888,     -0.96253868,     -0.25482559,     -0.80153975,     -0.34706826,      0.50578577,      -1.1838512,       1.0438632,      -0.6541225,        1.016571,      -1.6178029,       0.3404198,     -0.96946385,      0.23412657,       2.0648549,      -1.5773639,     -0.14005123,      0.26351084,     -0.90453954,      0.44052276,      -2.1483574,      -1.9952668,     0.062051362,     -0.66809104,     -0.53696392,     -0.20229089,       1.1649319,     -0.49191502,       1.2375211,     -0.98752225,       1.1704212,       1.5574044,       1.5313264,      0.37581848,      -1.4223251,     -0.45306787,      -1.9260115,       1.8447368,      -0.2159165,     -0.15194148,     -0.40918177,     -0.42601929,     -0.54891962,      -1.0796704,      -1.3659765,     0.064140413,      -1.2789462,      -0.6858741,      0.17471316,      0.25726689,      -1.2608885,     -0.66785908,    -0.044138219,     -0.87622769,      0.43571666,      -1.1392707,      -1.0274466,      0.85004984,     -0.82167902,      0.05163549,      0.39126922,       -1.358773,    -0.027104168,       2.3150415,     -0.98521162,      0.40635862,      -1.7117933,      0.11466986,      0.30393079,      0.71037422,      -1.4043675,      0.77328808,      0.62041886,      0.70118779,      0.59955842,      -0.1607956,    0.0028204861,      -0.9096888,      -0.6037081,      0.55325971,     -0.45690363,      0.38405156,      0.88519271,     -0.83177106,       1.0366382,     -0.53626352,      0.91771192,      0.19794609,     0.011613375,      -1.5620296,     -0.74937415,      -0.9735481,       0.3859434,        1.261576,      0.79317079,     -0.65844425,     -0.77234937,       1.4069655,     -0.90845673,     -0.36046378,      0.45818695,      0.50940017,      0.59936038,     -0.33323916,       1.9186543,       1.1967527,     -0.62721328,      0.21315561,       1.1555758,      0.65140937,      -1.7844038,      0.34047709,      0.85369689,      0.83367748,    -0.078440182,      -1.8002409,    -0.018287248,      0.15596114,      -1.2132455,      0.67288521,      -1.6442138,    -0.072820159,      0.60466377,     -0.49855153,      -1.4213155,       -2.958499
+2019Y,      0.83678188,       1.6727908,       1.5580525,     -0.70366043,       -1.031888,     -0.40284145,      0.41231847,     -0.57015598,      0.51379261,       0.7413949,       2.0833611,     -0.81144263,      0.36893696,    0.0048112464,        2.378243,      -1.5389763,      0.34609777,     -0.37898663,      0.14692593,       1.5870651,      -1.2454453,       -1.036732,      0.45127749,     -0.91835472,     -0.35137966,      0.71019717,       -1.148347,      0.79563633,       1.4079771,      0.27696209,      0.25064564,     0.070708865,      0.77239413,     -0.43762629,       1.3579665,      0.70721804,      -1.5398524,      -1.1564681,      0.97488704,      0.57877164,     -0.44096295,     0.054308196,     -0.11309429,      -2.1909563,      -1.7496101,     0.023950173,     -0.38896296,       1.0292413,      -1.1543838,     -0.46408729,      0.87718734,      0.13079398,        1.726534,      0.12621394,    -0.078999086,      -1.5429449,     -0.30413544,      0.51882016,       1.2630154,       1.5907982,      0.13008367,     0.022497584,      0.40224208,       1.7937487,     -0.83781281,      0.38817064,      0.31003988,      0.62291563,     0.040438501,      0.58468506,      0.20853419,      0.99287119,     -0.49688991,      -1.2315601,     -0.08126723,      0.81460923,      0.34630971,      -0.8798895,       -1.016982,     -0.27073648,        1.138081,      0.36120036,      -1.1870732,      0.49810499,      0.11763392,      0.85960264,       1.2278183,      -0.6379651,        1.219993,      -1.3514227,      0.28467235,      -1.3892916,      0.99290677,     -0.54111685,     -0.50472245,      0.43456678,      -1.5019914,      0.20554053,       1.8143748,      0.10989088,      -1.2458169,     -0.34465454,        2.064398,     -0.94009369,       1.5209386,      0.33033662,     -0.26310559,      0.11028585,      0.45270277,       2.4983808,     -0.93742637,      -1.5482548,      0.49734041,       1.0491734,      -1.9538789,      0.22081679,     -0.65782668,       0.5107538,       1.0043343,     0.075734053,      -1.2095968,       2.5843705,      0.43379772,      0.78826168,     0.020821989,       1.2413659,    -0.043854714,     0.056086329,     -0.30007707,      -1.4860045,       0.6191602,       1.1901417,       1.0256887,      -1.3301772,       1.4104526,     -0.61837723,     -0.16643622,      -0.1167954,     -0.37381739,     -0.15662707,       1.2004793,      0.92982719,      0.31790604,      0.41916856,       1.1334118,      -1.1666597,      0.48054762,      -1.4307664,       2.3735097,     -0.26800153,       1.6275114,    0.0041425798,     -0.40609251,      -1.1699071,        1.052497,      -0.8042539,      0.95979186,       0.5462517,       2.0980688,      0.79699312,      0.66308397,      -1.2305352,     0.089010533,      0.45049071,      -1.1174282,     -0.11519405,       1.0376931,       1.2075036,        1.261338,      0.73955048,      -1.3984407,      0.76417465,       1.6389751,     -0.85516708,     -0.60867938,     -0.94748456,     0.080723897,       2.0264935,      -2.5818235,      0.75305345,     -0.20870987,       1.4805653,     -0.25407532,       1.5173899,       1.6556756,     -0.30553247,      -0.8018276,     -0.43239757,      0.34475319,      0.52188218,       1.5932867,      0.43960831,       1.4980741,     -0.92089032,       1.5866069,     -0.59720166,      -1.2283621,     -0.62984424,      0.22085896,      0.19707305,       -1.085756,      0.68896963,     0.052848378,      -1.0451279,    0.0074377019,      0.77779362,      0.40445633,      0.30655722,      -1.0746019,       1.1073085,      -2.7589512,     -0.80574709,      0.52023023,     -0.69007832,      0.20353592,      0.57040982,      0.40202738,     -0.39343537,      0.49904245,     -0.42750389,       -1.016513,      -1.0028398,      0.15802835,    -0.074800125,        -1.76125,     -0.13057384,      0.93819618,       0.3442257,      0.66274601,     -0.48324765,      0.91922852,     -0.37997185,      -1.3379337,       1.4917966,     -0.83410616,    -0.052932217,      0.11410304,       1.1100321,       2.1309488,      0.44602822,       1.5615544,      0.81755341,      0.80524101,      -1.0117254,     -0.89229027,      0.53461191,     -0.35440296,      0.21271135,      -1.8855312,     -0.19023795,     -0.66592691,      -1.4781162,        1.244478,       1.8872381,       -2.013724,     -0.56798522,      0.61158332,       1.5806393,      0.68994392,     -0.72447001,      0.17267163,      -1.0291247,     -0.63954263,      0.23994314,      -1.0076466,     -0.73319643,      -1.9492348,      0.10036198,        1.421289,      0.91639147,     -0.35463164,      -1.2364763,      -1.6708052,      -1.3454808,       1.4993853,       0.1942556,      0.48447967,      -1.2778744,       0.9344692,     -0.11109191,      0.48149346,       1.4213594,      -1.5289019,     -0.46334498,       0.6752087,     -0.12387998,      0.22884177,     -0.44425113,       -2.093268,      0.20473159,     -0.51132896,       0.9940142,      0.79765847,      0.55726315,      -1.3871178,        2.177458,      0.22818914,      -1.7548506,     -0.61626309,       1.2069839,     -0.32748832,       1.3508178,       1.0678396,    -0.017666289,      0.68339845,     -0.39120738,      -1.4172091,      0.35180764,    0.0058691952,      -3.7954973,       1.2558263,      0.87408249,         1.45164,      0.14218147,     -0.78378092,    -0.093438129,      0.86787867,      0.42384521,     -0.34216601,     -0.75070048,      -1.8671527,     -0.41384537,     -0.16995777,    -0.051286109,      0.54439695,      -0.3223294,       0.7558154,    -0.076607076,      0.25094039,      0.12680579,      0.18095538,       1.1742078,       1.4106989,      0.60368994,     -0.69111142,      0.59197345,     -0.60113145,     -0.35652576,       1.0554312,      -1.1284331,      0.57437983,      0.94341243,      0.57629548,      0.55008542,     -0.08633895,     -0.12209989,     -0.05549352,      -1.1900312,     -0.67521133,     -0.72006674,      -0.9142116,        2.644957,      0.44858836,      0.11041139,       0.9046566,     0.073704865,      0.60432335,    -0.073218549,     -0.16721098,    -0.019464789,       1.2297368,      0.38524156,      0.14718495,         0.94892,      0.70769757,       0.4806948,       1.2184579,      -1.2051837,     -0.62068161,      0.71415439,       1.8989255,      0.01417988,      0.63536286,      0.68932364,      0.30555797,     -0.35575421,      0.74218466,     -0.33518137,      0.82942083,    -0.074386784,     -0.54853259,      0.32347629,     -0.73730107,      0.56144556,      -0.7259456,        0.146881,      -1.0796606,      0.34739742,     -0.95919131,     -0.49535525,      0.69200167,      0.36539053,      -1.1883997,     -0.25350993,     -0.84887059,      -1.3333609,      0.91355875,      0.75653223,      -1.7217961,       1.3988771,     -0.30406005,      -1.2266697,     0.086474662,       0.6451708,      0.28601091,     0.070154403,    -0.071207795,      0.72137815,    -0.033996544,      0.15724493,     -0.85002757,      0.22211356,     -0.20321363,     -0.56490309,     -0.29286872,      -0.4947945,      0.38660705,     -0.10915271,       1.5648725,      0.52481871,      -2.3319531,     -0.67507481,       -1.971002,      0.40113478,     -0.42040238,     -0.19691444,       1.4394897,       1.2441185,      0.16524558,      0.79325409,      0.14012564,       1.3419415,      0.39220281,   -0.0028481724,       0.7203141,      -1.3610855,     -0.13357455,      -1.8268119,      0.56250302,      0.11883677,     -0.12452286,     -0.87433209,     -0.47270829,     -0.93139926,      -0.4902647,     -0.92790733,      -1.2106463,      0.38245832,     -0.58080099,      0.46776913,     -0.73152233,     -0.78335809,     -0.32736537,      -1.0520865,     -0.98926332,    -0.065576168,      -0.9137981,     -0.86939224,       0.7082165,      -1.3917523,      0.80097212,      0.08606152,       1.7373426,       -1.057118,       2.0066217,     0.071204756,      0.91971836,     0.053272669,      0.27344396,     -0.15843858,     0.028085982,     -0.24660921,       2.5204928,      -1.2980183,      -1.2396224,      -1.0786091,      -0.3725622,      0.26235357,       1.4463025,      0.70398119,      0.69343316,      -1.3901795,     -0.77393294,      0.19738223,       1.3506381,      0.53317602,      -1.6891282,      0.88338376,     -0.62178052,       -1.425661,      -1.6486346,     -0.95396725,       1.3024832,     0.060956352,      0.27331128,       -1.158073,      -0.2716278,     -0.10985383,    -0.091523143,      0.21387121,    -0.050907453,       0.3513956,      0.78228191,      -0.1084839,     -0.70581012,      -1.3522889,       0.3189417,     0.016288356,      0.25951048,      -2.0865282,       1.3916191,     -0.82367076,      -1.0461333,     -0.55800197,     -0.73290143,       1.1103134,     -0.47073342,       1.2066247,      -1.5846778,    -0.044222282,     -0.22060067,      0.52709365,       1.9180625,    -0.087385828,   -0.0029930949,      -1.2774985,     -0.95220764,     -0.26134769,      0.11827546,      0.54094123,      -1.0087295,   0.00038763115,      0.18664648,       0.5787019,     -0.31123043,     -0.55409592,      -1.6827638,     0.031084017,      -1.3049094,      -1.5105832,     -0.63627791,     -0.17713816,      0.43802335,      0.76334238,      -1.2512813,      -1.3704218,     -0.86029224,      0.31063322,     -0.35213521,     -0.20618986,      0.65855105,    0.0085504749,      0.89010271,      0.46861899,      -1.5444619,      -1.0284933,       0.7391674,     -0.11097148,      -1.1270696,     -0.92950446,     -0.59412946,       0.6886124,      0.87609272,        1.255414,       1.4472059,      -2.0597727,       1.2249969,     -0.25268739,      0.15304777,     -0.81508587,      0.23920664,      0.35121627,    -0.074638128,     -0.52806395,      0.33829284,     -0.24525582,     0.061558806,       1.3439346,       1.2216872,       1.0462684,      0.76447963,       1.0191888,    -0.065223943,      -1.1511624,     -0.30687005,      -1.6782991,     -0.27379461,       1.5855693,      -1.6727863,     -0.49626108,      -1.1874057,     -0.94317158,      0.24219919,      0.11171616,     -0.33722907,     -0.35739096,     -0.91429009,       2.2200001,      0.78221009,     -0.34325554,      -1.4373291,     0.047742232,      -1.5388741,      -1.2442896,      -0.8062685,      -1.6852991,     0.053489881,       1.1033943,     -0.65124488,      -1.0266142,      0.65186237,      0.10303856,      0.36919342,     -0.49995491,      0.50057441,    -0.048096045,     -0.33146493,      0.46976712,     -0.10480626,     -0.94786865,      -3.7357654,       1.0693078,     -0.80987317,       1.5323213,     -0.11581768,      0.35983053,     -0.35814014,     -0.66527251,     -0.31495038,     -0.59457022,     -0.47292239,    -0.036227548,      0.84581391,      -1.1102728,     -0.77062644,     -0.20135175,      0.24111542,     -0.77258882,     -0.19508909,       1.3001972,       1.3858682,     -0.83726949,       1.2475515,     -0.19934076,      0.42669438,    -0.028570146,     -0.37136262,     -0.15108997,     -0.18615554,      0.31741781,     -0.83428322,     -0.83476311,      -1.5591972,      0.47170528,     -0.16054503,       1.0580426,     -0.98689816,       -1.419547,       1.3605319,     -0.79652608,      -1.1175433,      -1.1029442,      0.42037752,     -0.73263151,       -1.270938,     -0.20032739,     -0.25946067,      0.96104954,     -0.89437099,        -1.13271,     -0.48946968,    -0.064664233,       0.2931422,      0.91567364,     -0.39527597,    -0.063345093,      0.77650489,     -0.23017334,      0.35062636,      -1.0468038,     -0.54057438,      -1.0031067,      -2.2289358,       2.7678933,     -0.36575456,       1.2550772,       1.0970297,       1.5329528,      -0.1254083,       1.2350386,       0.6930442,     -0.65943655,      -1.0067737,      0.42805252,       1.3784843,     -0.85319137,      -1.7753763,     -0.51149697,       1.4033681,       1.6645438,      0.29674173,      0.33520077,      0.58975074,    -0.084755923,     -0.66059728,      0.50940379,     -0.54663565,     0.048680819,      -1.8223832,       0.8992766,      -1.2695456,      -1.3668072,        1.343714,      -0.4089377,      0.46974347,      -1.6818806,      -0.2636902,      0.56327577,       1.5644623,      0.18835157,      0.26989462,       1.8226728,      0.96343946,     -0.23497378,       1.9667045,      0.22032045,      0.58370765,      -1.1738728,       2.0358138,      -1.7130115,     -0.41138337,      -2.1244723,      -2.3723109,      -1.3806496,    -0.014182025,       1.7486153,       1.5205839,       1.1700609,      0.24591783,     0.048458433,     -0.74621418,     -0.72894444,     -0.85149305,     -0.28085577,      0.85041656,     -0.41920047,      -1.3940018,      0.78982123,     -0.95586121,      -1.3240274,    -0.044113511,     0.046058314,      0.91323798,     -0.62371948,       2.1945375,     -0.89365121,      -1.3727488,        1.280405,     -0.69323468,     -0.51447293,       1.4805259,      0.22992006,      0.48611041,     0.087822382,     -0.77935944,      0.60886906,     -0.25197385,     -0.68272538,      -1.0440627,     -0.37950406,     0.067856965,      -1.0794631,     -0.25649998,      -1.7301806,      -3.0482378,       1.3576485,     -0.91835946,      0.54569758,     -0.49304534,        1.678533,      0.52127216,      0.98176094,      0.23243721,     -0.69612658,      0.31590548,      -1.2498005,       1.0941951,     -0.34340476,      0.47740124,     -0.58830258,     -0.66050352,      0.74808629,     -0.37126685,       1.0382162,       1.0845319,       1.7172094,      0.13524788,     -0.82146621,        0.855259,     -0.18884871,     -0.42022436,      0.72079168,      0.07148733,      -1.6705825,     -0.21039462,      0.35719555,     -0.25508815,      0.34213926,      0.78659565,      0.32135911,     0.049733426,     -0.56004423,      0.06132492,      0.40516883,      0.19965666,     -0.22000819,      0.45520924,     -0.76835235,      0.51455331,       1.1269483,       1.5490065,      0.94059105,      0.13900419,      -1.1563901,     -0.28361496,      0.66224501,      0.57832633,      0.33317846,       1.9473493,       1.1655351,      -2.1039469,     -0.74970545,      0.18239694,      -1.4941273,      -0.7184809,       1.5596425,       1.0612129,      0.90643216,     -0.07440052,     -0.85398029,       0.1703489,       2.0967485,     -0.35790129,      0.11211719,     -0.16518807,     -0.93280107,       -1.355387,       1.9856047,     -0.48084815,       1.2857822,       0.6803951,     -0.55415688,      -1.5491275,       1.5630002,    -0.007128993,      -0.2937807,      0.59626342,      0.80505866,      0.29244383,      0.41516021,      0.74605707,     -0.76363902,      0.69305481,     0.066495321,      0.85691637,       2.0659922,      0.46316866,       1.1241658,      0.42907998,      0.84999099,       1.3480393,      0.28386827,      -1.0493403,      0.71055107,     -0.14052002,      0.77152368,      0.46917763,       -1.720793,      -1.1076784,       3.4715408,      -1.0398972,       1.0851264,     -0.28184826,      0.77282256,     -0.73721124,     -0.38916619,       0.5386588,      0.21883192,      -1.7003581,     -0.28852976,       2.3611342,     -0.12883323,      0.65320177,       -1.845894,     -0.11160732,     0.012262797,      0.77969224,     -0.89567359,     -0.56715016,     -0.25113294,     -0.13407145,     -0.45616276,      -1.0121301,      0.89019857,     -0.33231275,      0.65173886,      -1.6187861,      0.49743928,     -0.26339435,      -1.0541153,      -2.3250291,     0.021128313,    -0.077989215,      -1.8368549,      0.23324651,      -1.7594398,       2.2437169,      0.35389664,       1.8619279,       1.2935512,     0.043413864,     -0.27636493,       0.8741688,     -0.38113856,     -0.68147207,      0.18699475,      0.35159864,      -1.5523116,      0.76043731,      0.40430849,     -0.17850553,      -1.2892404,      -2.9520188,      0.44576225,      -1.4823162,      0.91543694,      -1.1504175,     -0.31651822,      0.04396686,     -0.36144736,       1.8131627,     -0.36779435,      -0.2835591,      -1.3655243,       1.7416551,      0.80028063,      0.90840179,      0.90873998,     -0.81540824,       1.9086753,     -0.15187266,     -0.20370324,    -0.031022532,   -0.0015895352,      0.60843643,      0.24296943,       0.1592127,      -1.4920659,       1.3633223,      -0.6747766,         0.85897,      0.97075196,     -0.80330569,      0.28927032,     -0.37393933,      -2.0710076,      0.54385367,       1.0766675,      -1.5886183,      -1.5067662,      0.19235316,       -1.426668,     -0.69003071,       0.5463604,      0.64411483,     -0.76636425,       0.6549067,      0.83962772,     -0.88018837,     -0.59689324,    -0.043566643,       1.9001854,      -1.3404387,      0.52513816,       -1.377686,     -0.82068822,     -0.21908115,       1.2074034,        1.319154,       -0.799702,      -1.0917844,       1.2928678,      0.72434956,      -1.2461831,        -1.19293,      0.29293889,     -0.78127752,      0.22969611,      -1.0458827,      0.82016242,      0.47188874,      -1.1379645,     -0.84386548,       1.1798929,      -1.0558125,      0.27935837,     -0.66030442,      -1.4092714,     -0.53778076,     -0.42526537,     -0.48585757,     -0.31893092,      -1.5018194,      0.88410426,    -0.061703324,     -0.35721836,     0.097367381,     0.076421292,     -0.86712358,       1.1973971,      0.45895622,       1.2884854,       1.4781266,      -1.1418292,     -0.49638925,     -0.63640056,     -0.80240227,      -1.1076488,      0.20164001,     -0.45850006,     -0.96347725,       1.1204685,     -0.62216545,      0.90107567,      -1.0517079,      0.64086861,   -0.0031148549,     -0.25293324,       2.6518554,      0.89449516,      -1.3706722,       1.2997853,      0.91500846,      0.66677551,     -0.67714774,      0.82571908,     -0.10117393,      0.30635066,     -0.46382982,    -0.090911448,      -1.4950612,       1.7403948,      -2.1315086,     -0.33087659,    -0.057771052,     -0.32386437,      -1.6584099,      0.32630709,     -0.56220642,     -0.63619718,      -1.4310001,     -0.73481485,       1.5109775,       1.2388128,      0.30160822,      -0.3472911,      0.11928934,      -2.2091793,      0.22050936,      0.59280249,     -0.46855811,      0.20984547,       3.0532147,     -0.32379169,      -0.6265005,      0.97586154,     -0.43469441,      -0.9836055,     -0.59807814,       2.2116473,      0.19468352,       2.0137272,      0.16698417,      0.51747379,     -0.49839542,     -0.13380779,      0.13404663,     -0.46296144,       1.1109827,     -0.72125795,       1.4758157,       1.5051835,      0.57399123,     -0.67132926,       0.3958261,    -0.097881473,     -0.80189904,      0.69222307,      0.85288089,        -1.98898,     -0.65063118,     -0.85870976,     -0.47312132,      -0.7464516,      -2.2064277,      -1.3033812,      0.48610237,       2.8779774,      -1.3793837,     -0.70186644,      0.74800178,       1.2869769,      0.64391166,     -0.15145238,       1.8572074,     0.053559052,    -0.011053408,      0.77834536,      0.29801256,    -0.043997444,      0.65156441,     -0.72253678,       -1.071425,       1.8004834,      -0.2920661,      -1.9733034,     -0.23542306,     -0.71985255,       -1.203241,       0.3122891,     -0.16245287,       -1.297266,     -0.14505406,       1.4307662,       1.2394061,      -2.1839232,       1.7710329,     -0.34902781,     -0.82326713,      0.74092681,      0.41512011,       2.0928737,       1.8518563,     -0.48134261,     -0.84727576,      0.88337542,     -0.27490315,     -0.36000624,       -1.317144,      0.31999357,       1.5764185,       -2.266545,      0.84769384,       -1.018304,       -1.545216,      0.15260442,       2.9806358,     -0.26370464,     -0.69768794,     -0.17388024,       -0.574541,       1.6535311,       1.1551224,    -0.090948442,      0.92949463,     -0.24375119,      -1.7510679,     -0.75749512,      0.73387296,     0.031381179,     -0.93928809,     -0.54013285,     -0.67580983,       1.5073361,     -0.58986493,     -0.92414966,     -0.81695089,       -2.519228,      0.21293162,     -0.64803821,      0.71544759,      0.91814988,    -0.047318853,      -1.1407506,       1.5479443,      0.54960953,       0.5732735,     -0.68616304,      0.35725247,    -0.027560404,       1.1308987,      -2.2378583,       1.0133323,     -0.76459427,      -1.3794703,      0.66322459,     -0.31253417,     -0.13806992,     -0.65733736,      0.32457245,      -1.0544091,     -0.21394123,      -1.1455858,      -2.4715439,     -0.38460227,     -0.28665091,     -0.26204888,       1.4844313,     -0.26116276,      0.66297609,      -0.1894939,      0.61160353,      0.34728992,     -0.33453706,      0.78461596,     -0.63518134,     -0.86583083,     -0.11707351,      -0.7436348,   -0.0014698923,        -1.23152,        1.080242,      -2.4254139,      0.71518921,     -0.06139279,     -0.30265188,       1.2212786,     -0.28356292,     -0.89626283,      -1.7330896,       1.4769792,       1.3387748,       0.1309105,      0.14758788,     -0.92324131,     -0.93705685,     -0.38254257,       2.3841781,     -0.35684042,    -0.028660053,     -0.36159966,      0.94156015,     -0.87087015,      -1.4332844,      0.68774123,      0.74028432,     -0.91753245,       1.4409318,     -0.70440516,      0.01175762,      0.60607541,       1.0751889,       1.3079379,       1.3340549,       1.1173363,      -2.2004575,      0.12394375,     -0.42595509,       1.4048927,     -0.56201399,     -0.11866975,      0.21893629,      -2.4529137,       1.1205324,     -0.23024274,     0.093586569,      0.60828283,      -1.1873023,     -0.77491148,      0.48440552,       1.1281923,     -0.96652037,      0.86224364,      0.23090103,      -1.3294468,       1.3193005,      0.48505944,     -0.28644434,      -1.0680122,      0.72756711,      0.22932627,      0.67861853,      -1.1235866,      0.29956994,     0.031403802,      -1.2824042,     -0.30069612,       1.2833915,      -1.1836871,     -0.59621048,     -0.54155136,         -1.0813,      0.37546456,     -0.39376768,    -0.077390184,      -0.4005184,      0.53395633,      -2.8198285,      0.88692368,     -0.91642469,       1.0901293,      0.56371159,      -1.1381154,      0.34732674,      0.50405541,      0.64542226,     -0.61090883,      -1.0582541,       1.1308394,       3.1767327,     -0.44155178,      -1.0925318,     -0.64396339,      0.36563585,      0.67322037,      0.16085656,      0.77142083,       1.1856446,      0.80166271,       2.1235381,     -0.53037827,      -1.8504569,     -0.65104725,      -2.1743487,     -0.21519105,      -1.0139483,      -1.0476437,       0.1228691,       1.4875336,     -0.21101271,      0.74359741,      0.52556661,     -0.96866355,     -0.10107188,       2.7176661,     -0.59130822,      0.71005431,      -0.4362845,     -0.22153058,    -0.039067753,      0.48136292,        1.480489,        0.952184,      0.48242129,     -0.84527066,     -0.84665558,     0.021908641,      0.42644002,      -0.7453726,      -1.3485459,     -0.12584521,      0.27602688,      0.25712081,      0.23941055,      -1.7736993,      0.41047079,      0.21074991,      -1.9176244,      -1.2099588,     -0.28904793,     -0.10569794,     -0.50445595,    -0.090983041,       1.5225886,      0.60817506,      -1.9304799,     0.036863652,     -0.40502091,      0.61814991,    -0.010612328,     -0.32916841,      -1.1272495,      0.99144641,     -0.28725893,      -1.1337768,       -1.279293,      0.23422713,     -0.61662577,      0.22187468,     -0.86573212,       1.3005015,       1.1619659,     -0.24808499,       1.6807781,       1.7602383,       1.2455157,     0.092739251,     -0.28839526,     0.058573301,     -0.48919166,      0.78897416,      -0.3172138,       1.6234644,      -1.4122444,     -0.11380058,      0.88211619,      0.12262416,       1.6042254,      0.16477283,      -1.4375318,     -0.64853653,       0.4865752,      -2.4424283,     -0.51897391,     -0.44375761,       0.3646754,      -0.9784066,      0.91389347,      0.62827039,        1.676847,     -0.51936867,        1.353317,     -0.81917215,      0.06363312,     -0.41103412,      0.63970089,     -0.53702327,      -1.2572984,      -1.1844255,      -1.1413008,     0.080914627,       2.0804576,      -1.1824822,     -0.30620417,     -0.82618917,       1.1857293,     -0.45906334,     -0.55547577,       1.1622843,   -0.0067173144,     -0.17032436,      0.37026743,     -0.27492242,     -0.21111574,   -0.0027222607,        1.555306,       1.2847579,     -0.45943022,      0.90237577,      0.50358162,       0.2778101,      0.55212847
+2020Y,     0.084956573,    -0.012927338,      -1.0161634,      0.21517469,     -0.29323178,     -0.36716074,       1.4641164,     -0.27723205,      0.64153564,    -0.058532224,      0.67075678,      -1.0945138,      -1.1167721,    -0.085485398,     -0.61162461,      0.20429554,     -0.34240608,    -0.086760975,      0.98770459,     -0.36612298,     -0.88644151,      0.44250612,     -0.23788385,      0.66028311,       1.2307153,      0.22871597,      0.44039857,      0.48431891,       1.1308147,       1.3660455,        -1.32275,      -1.6539645,     -0.43595168,     -0.14984072,      0.17346978,       2.1387562,     -0.40519643,      0.20747141,      -2.3375848,      -1.3077911,      0.36406269,     -0.26280197,       1.2128172,     -0.48063415,     -0.13833414,      -1.4681988,      0.23268778,     -0.49404237,      0.33761595,      0.70154748,       1.2716983,     -0.13761752,      -1.6053471,      0.26945838,      0.30851821,      -0.8384216,      0.84713246,     -0.35960072,      0.15697604,      -1.0300083,      0.18976604,       1.3602091,       1.2041471,      -0.2485902,     -0.66330843,      0.95130603,       0.7053494,     -0.28285349,      0.66307028,      0.77642144,      0.26960781,       0.8387161,         1.88541,      0.67671948,       1.7821549,      0.84546746,       2.2542952,     -0.92609295,     -0.52405538,     -0.72761751,     -0.47603751,    -0.036702631,      -1.4947959,      0.21752299,     -0.85225503,      -1.3443594,      0.78192394,     -0.13333642,      0.37993829,     -0.33125025,       3.0347098,     -0.73441126,      0.18899478,    -0.091742769,        0.498336,     -0.47212454,      0.87565902,      0.57905148,     -0.64775588,      -1.3460278,       0.5337583,    -0.035628425,       2.0777053,      0.46482349,       1.6410615,      0.17259518,      0.39661061,      0.70479527,      -0.4318077,      0.16613086,      0.30923258,       1.3013925,      0.53670365,     -0.32072354,      0.70907176,       0.7212421,      0.79853141,      -1.2640162,       2.0419391,      0.73805512,     -0.25535219,       2.9693547,      0.74538883,     0.086361945,     -0.58182345,    -0.016574389,     -0.78979002,      0.07533857,       1.1992932,       0.7057262,       1.1130262,      0.66570954,     -0.65693741,       1.1174821,       1.3066355,     -0.76598653,      0.74507306,     -0.12331458,     -0.83772892,     -0.13688942,      0.26143561,      -0.3410993,       1.1775208,      0.91494315,      0.16876611,     -0.52016469,       -2.447859,       1.1539035,      0.45565729,     -0.33816005,      0.22682828,      0.25517783,      0.89259186,       2.2366879,      -1.2819797,      0.28357886,     -0.45174548,      0.65100757,      0.90494562,     -0.79722133,      -1.0416619,    -0.073297799,     -0.28182964,      0.19362543,      0.78531299,     -0.42385187,     -0.45869766,       1.8654215,     -0.30773237,       1.0905026,      0.24250751,       -1.024464,      0.68040051,      0.22756991,     0.025138084,      0.93116349,       1.1398142,      0.33891644,      -1.0115293,       1.1104421,      -2.2086738,     -0.34622124,      0.24876317,    -0.043098033,     -0.50809049,       1.3475465,     -0.34424011,     -0.16355715,    -0.058610486,     -0.64119029,      0.69734204,      -2.4585302,     -0.26841534,     -0.21622596,      0.70238579,     -0.43837798,     -0.19785218,       1.3366908,      -1.8674039,      0.23987177,     -0.70638133,    -0.026308384,     0.023594743,      -1.2612487,    -0.052966872,       1.3807271,      0.37493343,      0.78307399,      -1.8135671,     -0.67116422,      -1.3272784,       1.7292115,     -0.57538674,      0.40025926,      0.49128497,      -2.3861839,     -0.49480469,     -0.28395676,     0.076227436,       1.5661693,     -0.12372656,       1.9508751,      0.57587821,      -1.0553662,      -2.3176923,     -0.45143724,    -0.016813009,     -0.78831524,      0.74334752,       1.3682951,       1.9611334,      0.92218691,     -0.57829821,      0.75039031,     0.040723784,       1.7294746,     -0.22223602,      0.94401644,     -0.72555274,      -0.7497744,       -1.463748,     -0.46541822,       1.8161196,      -1.8913455,      -1.3089678,     -0.95544424,     -0.39365291,      -1.8526416,     0.023948379,      0.12452569,      0.43219802,       1.5441192,       1.1402379,     -0.47603802,     -0.25117768,    -0.073246371,       1.2133302,     -0.98138983,      -1.1163563,      -2.1417245,      0.18848211,     -0.31294301,      -1.2298025,    -0.022973864,     -0.92896028,       1.0404793,       1.9063374,     -0.44549514,       1.5565214,      -0.3632878,     0.076821776,      0.33500513,       1.7850193,      -2.1901738,       1.3326272,       1.1313215,       2.7383185,      0.60551602,       1.0467106,     -0.30461552,     -0.62462945,       1.4615347,     -0.34804287,     -0.22195475,      0.81541195,     -0.49067926,     -0.45816806,       -1.283132,      -1.4931119,      0.45708172,        2.758528,     -0.82424821,     -0.17014798,      -1.4409916,      0.94492711,    -0.024664588,      0.91602897,     -0.47647475,       3.1336257,     -0.82737882,    -0.034556734,       1.3045217,       1.3252035,     -0.44831535,       1.1690544,     -0.32798614,      0.48651431,     -0.46050909,       0.8764739,     -0.69876152,      -1.3906725,       1.0944979,     -0.81460614,      -1.5247982,   -0.0064535607,      -2.3024251,     -0.53806652,       1.0057117,       1.4920675,     -0.19940541,     -0.56139445,      0.39314691,        0.219798,      0.27127997,      -1.5268953,      0.77178761,       1.4842531,     -0.22386437,      0.56861181,     -0.92058146,     -0.65722818,     -0.41699769,      -0.2712493,     -0.44499604,     -0.47494336,     0.029629818,      0.70733943,      -1.4999095,      0.97342098,      -1.7848265,       1.0946491,       2.7217739,      0.25328545,      0.47147906,     -0.73207888,        1.446932,     -0.69993819,     -0.35023898,     -0.29820743,       0.4883821,      -1.2019577,      -0.9137163,       1.5302168,       2.0351938,     -0.73741977,      -1.4481439,        2.103731,      0.07881749,      0.61740226,      -1.7288961,     -0.74748271,      -1.9804615,      0.75345741,     -0.38688351,       0.4498173,       1.4925878,     -0.24863313,    -0.061273417,      0.25900916,        2.123252,      -0.3732597,      0.34921165,        0.374807,       0.4819378,     -0.16360954,      -0.1349249,       1.6612183,     -0.18213802,      0.79239041,     -0.67187027,     -0.24254353,      0.18517754,     -0.28478511,      -1.0899961,      -1.4008322,       0.1835051,      0.50223051,       1.4097577,     -0.43436584,    -0.098440853,     -0.35486991,     -0.33496614,    -0.014836432,      -0.5511274,      0.16121871,      0.75930294,      0.73073989,     -0.97585188,      0.51740194,     -0.29613448,      0.39438319,      0.42920417,     -0.60277619,      0.49907011,       1.2683329,      0.75052878,      -1.6854378,      0.73763127,        1.321196,      0.60572947,      0.45215901,     -0.65543074,     -0.71386228,      0.27114609,       1.3680959,       0.2689728,       1.0970099,       1.3889242,         1.08028,      0.25613685,     -0.52928674,     -0.48335525,      -1.6021963,      -1.2308475,      0.81489103,       0.3344522,      -2.1012758,      0.51638086,      -1.8778237,      -1.0082014,     -0.01586802,      0.74394299,      0.19503707,      0.11161679,      0.89446691,     -0.54329152,     0.028170759,     -0.22426136,      0.03323447,    -0.058985938,      0.31859881,     -0.64091487,       1.0244454,      -0.5198856,      0.48964396,     -0.35938283,      0.18661589,      -1.2926068,      0.11107658,    -0.083112007,     0.087665927,      0.12050173,      0.89842802,     -0.52036331,     -0.26922408,     -0.81917346,       1.1651878,       0.6891491,     -0.24657139,      0.97206883,      0.81342052,    0.0069731523,       1.1178176,      0.09209136,     -0.35039272,     -0.44891533,    0.0043566384,      -1.4892879,      0.84353092,     -0.43731794,     -0.24247822,       1.5047522,     -0.21194806,        1.723385,      0.73589327,      0.87099015,     -0.28861383,      -1.2305789,      0.71709362,      0.25931683,       1.3757829,     -0.87125374,     -0.29286628,       1.6173844,     -0.54523484,    -0.081466232,     -0.75998323,      0.61055977,      0.21361173,      -2.1277522,       1.1322901,      0.63748237,      0.23158768,      0.59900478,      -1.5096447,     -0.80145224,     -0.16707635,      -0.5784495,     -0.19684656,      0.34417761,      0.58497464,      0.10354385,      0.86668089,      0.54055473,      -1.7506147,    -0.082563842,     0.023462022,     -0.98419187,       1.3976263,     -0.65633346,      0.52870898,     0.072876807,     -0.83711156,     -0.73940771,    -0.029376893,      0.38596839,      0.95589196,       1.0843073,       1.1134669,     -0.91204345,       2.2388728,       1.0100798,      0.79906065,      0.26607017,       1.1369869,      0.61616915,     -0.61855844,      0.39089554,      0.76108357,        0.266546,      -1.0829134,     -0.63207024,       0.9251562,      0.23211963,     -0.50082579,     -0.43453811,      0.52363172,      -1.4024477,       1.1967915,      0.66461924,      -1.0755735,        1.274042,      -1.2749104,      -1.3369455,      0.45512086,      0.92283241,       1.6662079,     -0.72198014,       1.2673374,    -0.055475968,      -1.2504588,      -1.1599404,      -0.9826666,      -1.4053533,      0.61422124,     -0.41355295,     -0.43006038,      0.13763878,      -1.0385377,      0.89130891,     -0.42291582,     -0.76715128,      -1.0485724,        1.321864,     -0.91390151,       1.0520032,     -0.39429806,      0.60809833,    -0.081592781,     -0.13031303,     -0.33595438,       1.2093833,      0.20512705,      0.46819056,    -0.066418155,      -1.1465418,     -0.92086936,      -1.5138573,       0.1688576,      0.49887281,      0.48192412,      0.21288443,      0.47437598,      -1.1151615,      0.34559254,       1.2565165,      0.63402477,      0.41809777,       2.0436318,       1.2152593,      0.89063533,      0.42290229,    -0.057085856,     0.032190662,      -2.1020767,    -0.045424599,     -0.30077674,      0.23317641,      0.44651709,       1.0083373,       2.0636478,      0.73813171,     -0.15200732,      -2.2639971,       -1.567146,      0.58897969,       1.2622671,       2.1260959,     -0.23421669,      0.27237382,      0.26100519,       -1.890125,      0.13986326,     -0.42884622,     -0.53343534,     -0.91363397,      0.63368544,     -0.59661888,      -2.5400808,      0.11808934,      0.39358618,     -0.22335289,      0.60888329,       1.3169895,      0.26684282,     -0.70855934,       1.6911324,     -0.94941256,     -0.65866132,    -0.080119688,     -0.16606189,     -0.02242293,     -0.40646993,      -1.0980528,      0.16949957,     -0.75492834,     -0.19698751,      0.93720085,      0.18626143,     -0.45915783,       1.3313121,      0.54911544,       0.3487063,      0.40912303,      0.53150747,      -1.5222269,     -0.33414803,      -0.4241963,       1.2500342,     -0.26268695,      0.77612347,     -0.32644025,   0.00085471809,      0.20780913,      -1.6002455,      -1.1602663,    -0.015967594,      -1.1467318,     -0.65235439,      0.67230679,     -0.29396496,     -0.24001724,     -0.89440665,     -0.43098626,       -1.448902,     -0.54788353,      0.86573465,     -0.14137145,      0.18020468,      0.19703699,     -0.54188856,     -0.85470818,     0.089180471,      -0.4546004,      0.58612861,      -0.1692213,      0.14409012,     -0.10427821,      0.32655989,       2.3909699,     -0.66003069,      0.46083159,       1.0888972,     -0.67194449,     -0.16863126,       1.1126866,      0.22817166,     -0.92418997,       1.1594436,      -1.0120839,      0.39552806,      -1.4322399,      -2.3916622,     -0.65327523,         1.47129,      0.05532367,      -1.5225628,     -0.51531712,     0.045593435,     -0.61760001,       1.4697774,      -1.7677292,      -1.0326191,      -1.1731606,     -0.10002119,     -0.63895401,     -0.20505236,     -0.30297604,       2.3306471,     -0.41362063,      -2.0295814,       2.3272929,       1.2762045,      0.93656379,       1.4405314,      -1.5650042,     -0.93444959,       0.6585617,       1.5819439,      -1.6300972,     -0.47248409,      0.90014453,      0.13981334,       1.5753977,      -1.0186065,     -0.61754276,       0.5349974,      0.54287342,      -1.2132943,     -0.97706526,     -0.53404303,     -0.52401534,       1.3168003,       -1.148904,     -0.45196129,       1.9287411,       1.9947316,       1.8372949,     -0.76576697,      0.22609157,       1.1484432,      0.28853755,     -0.39892206,     -0.36955415,      -1.7033048,     -0.38710234,       1.6025257,       0.1008011,      -1.1240262,       0.3677812,     -0.28744305,       0.2609194,       1.3336561,      -0.7524422,      0.35273078,     -0.58810782,       1.4720421,      -1.2452226,       0.9571791,        2.052197,      0.13877735,      -2.0018933,     -0.31338676,     -0.82371695,      -1.2828375,       1.9535759,      -1.5826195,       1.7957584,     -0.17769584,       1.0671292,       0.4538277,     -0.82818979,      0.36204164,      -1.2648522,      -1.5251385,    -0.096673217,     -0.87977223,      -0.2452364,     -0.78688963,      -0.5935951,       2.1375824,      0.76447929,      0.49789046,       1.6892288,      0.26034489,     -0.76355369,      0.29051971,     -0.70581172,      -1.4914706,      0.96223093,     -0.60404561,       1.4234654,     -0.95661801,     -0.84047725,     0.099052466,      -0.8143302,       1.5741049,      0.11419125,      -1.4211964,      -1.2408533,     -0.22410919,      -1.0485508,     -0.15286628,       1.6393143,      0.14852639,        1.371748,      -2.1796002,    -0.047833889,      -1.1133491,      0.32343414,     -0.77898151,      -0.1517461,      -1.5356423,      0.24443518,     -0.78363625,      -1.3772614,       1.9702848,      0.82636099,      -0.5870049,     -0.84733239,       0.4632441,      -1.4664336,      -2.0865656,       0.5564464,     -0.31064587,     -0.83156582,       1.6283469,      0.45538081,       1.1268436,     0.082600081,      0.83810461,      0.42284071,      0.49907901,      -1.3851775,      -1.0151343,     -0.21655519,    0.0016445488,      0.72554324,      0.68325364,       1.3377279,     0.070555003,      0.44110291,     -0.15882624,       1.5657914,       1.1995238,     -0.96117448,      -1.0841294,      0.93085919,     -0.42676065,     -0.70288236,      0.04533439,      0.76560458,     -0.81935927,      -1.0587358,       1.7077377,       1.4667751,      0.39839843,      0.14773585,       -1.529781,     -0.29136359,       1.5669174,      -1.7612447,      0.31096263,      -1.4922841,      -1.6383939,       1.2493439,     -0.22340423,       1.8163948,     -0.26258336,     -0.31356986,       -1.874501,       1.3557865,      0.64574213,     -0.58091117,      0.30901524,     -0.60962654,       -1.072101,      0.21951642,      0.14744819,      0.21482306,      0.15475479,      -2.9685435,      0.28539746,       1.6464402,       0.1745533,       -1.124435,     0.013273227,     -0.03694536,     -0.94291614,      0.88759079,      -0.1128828,     -0.79609993,    -0.012651667,       1.3069019,       1.5834605,     -0.32015279,    -0.072192365,     -0.16285262,       2.2744987,      -1.0475095,      0.45851074,      -1.4333938,      0.12533062,      0.23959726,     -0.23402657,      0.38819955,     -0.90158877,      -1.4130634,     -0.94582036,      -0.8002653,     -0.65623008,      -1.5399296,     -0.75909093,       2.4866224,     -0.58150188,      0.43340716,      -1.0887972,      0.72559162,     -0.28057746,       2.3484407,      0.21368649,     -0.14806986,     -0.66677539,     -0.97883797,      0.24117989,     -0.23910933,      -1.1995871,     -0.91512427,     -0.70265584,       1.0766076,     -0.17295812,      0.31734153,       1.6070689,      0.78504669,      0.80205635,      0.81633321,     -0.79438453,     -0.93654406,   0.00020761986,      0.91473896,      0.54371258,     -0.01359541,         1.56857,       0.7808172,       1.5866687,     -0.57873847,      0.65725985,     -0.44175265,       1.0692534,        1.069623,      0.78301233,     -0.89670448,      -0.9416262,      0.36067436,      0.48644813,      0.14529144,      -1.4642023,       1.3818531,      -2.4247353,       1.3643345,      0.63997857,       1.4406578,      -1.3782177,       1.0882351,       0.4724963,      0.79046575,     -0.33170327,      0.74061814,      0.81555634,     -0.29431721,     -0.35916794,      -1.0488161,      0.19774341,     -0.35390348,      0.59589139,      0.66025809,       1.8461536,     -0.27943376,      -0.6352008,     -0.48737077,     -0.80864449,      -1.0641075,      0.10854917,       1.2833886,      0.73872079,      -1.3043167,      0.29391035,       2.3894187,     -0.77840335,      0.39916634,      0.72807533,      0.28584469,      0.14693277,     -0.54329506,      0.69527536,      0.72758516,      -1.9274783,      0.65967226,      -1.1495467,     0.042828152,     -0.14453797,      0.73048654,      -1.1506342,       2.2950528,     -0.75077434,     -0.33670298,    -0.073164297,      -0.6206849,     -0.65666089,      0.50167127,      0.46138597,      -1.3385363,     -0.88718526,      0.52231402,      0.28664741,     -0.56971377,        1.660861,       1.3049143,      0.88702855,      0.60247107,     0.092540082,    -0.061405514,      -1.1047237,         1.04036,       1.2185714,      0.10044827,       1.2576251,      0.94664854,     -0.70729186,     -0.89439863,      -1.5135091,      0.33530482,       1.0473525,       0.7923356,     -0.84987073,      -1.8136969,      0.77943419,    -0.013734662,     0.057963489,     -0.32813683,     -0.06041929,     -0.24284212,      0.47007398,        0.645801,       1.4212865,        2.188946,      -1.2431078,     -0.59205252,      0.05422337,     -0.99067557,       -1.518986,      0.43856025,      0.84073845,       1.2070695,     -0.72469057,     -0.44786851,      0.94833154,      0.69608365,     0.052814982,      -3.3122636,       1.1735204,     -0.33507318,      0.89305536,     -0.77323289,      -0.7941321,      0.28072862,      -1.1749658,     -0.88330421,      -1.8869961,     -0.68988398,    -0.023330404,       2.7430735,      -1.2585088,     -0.30169653,    -0.035185432,      -1.3572575,     -0.80896348,       1.1951521,       1.3967961,     -0.71618852,      0.99210868,     -0.46884105,      -1.4802661,       0.2112644,      -0.9669005,     -0.72800403,     -0.89740557,      -2.3676467,      0.18388211,      -0.9888626,      0.36531748,     -0.37675488,    -0.055789054,     -0.48001787,      -1.0543695,     -0.44415817,     -0.54144561,     -0.35936085,   -0.0092109294,      -1.3870642,      0.73697057,     -0.17426577,       1.5558634,     -0.20769938,      0.31858168,       2.4032808,      0.52738405,      -0.1194781,      0.49572036,      -1.4508683,     -0.42995526,    -0.093302044,      0.24674945,      0.23999826,     -0.80478006,       -1.428939,     -0.94930364,     -0.40876895,       -0.484022,      0.64887691,     -0.13297071,      0.72089262,      0.91354236,      0.57376948,      -1.1711399,      0.44800943,      0.06356367,      -1.0633706,     -0.53728898,      0.45451137,      0.19158411,     -0.21714304,      0.53294228,     0.018661738,      0.21026478,       2.4287344,     -0.16358799,       1.7315591,     -0.94767194,       1.9049338,    -0.021762352,      -1.2410923,     -0.29464701,       0.4380326,      0.79011328,     -0.62136473,       1.4360293,       1.0651532,     -0.63241438,     -0.24017862,      0.10927152,     -0.47862625,      -1.0926064,     -0.79037116,      0.02923293,     -0.60751959,      0.53425805,      -1.0239868,      0.29469617,      0.99126337,     -0.20385305,     -0.85028102,      0.75480393,      -1.1034648,      0.42761439,       1.5262385,      0.39454384,      0.74920598,      0.67968451,     -0.93692934,      0.88726306,       1.0967786,     -0.80508551,      -1.7440881,      0.37718577,      0.10733263,      0.39977719,      0.49352976,      0.95288571,      0.98924564,     -0.50166291,      -0.2949108,      0.64897798,      -1.5679729,      0.67497032,      0.92380544,     -0.92946515,      0.65799303,       1.6049257,      0.73412054,      -1.1773588,     -0.64228077,       1.1964907,      -2.3962636,       1.0453012,       1.0820207,      -1.3251596,     -0.28174957,       1.1173077,       1.1732726,      0.71929405,     -0.79149965,    -0.029818199,      0.83878093,      0.12097352,     -0.37348745,     -0.50842067,       1.1891558,     -0.91544963,        1.531636,     -0.87609202,       1.0925923,      0.44099048,     -0.15289508,      -1.7534547,     -0.55057732,      -1.6552136,      -1.0410526,       2.2096568,       0.7959223,     -0.64058071,       -2.548567,     -0.38236094,      -1.1557939,      0.59381574,      0.25661301,    -0.098275203,       2.3307362,      0.84854681,      -1.1860006,     -0.87071025,      0.93814116,      0.62717483,       1.0983297,      -1.2338647,     -0.65478042,     -0.71581832,      0.83631564,      0.26869671,     -0.69582141,       1.3470263,     -0.31943541,      0.72267294,      0.67932137,      -1.0665664,    -0.078135839,      -1.4125332,     -0.60728162,     -0.31333662,       1.6319011,      -1.9123869,       1.1856846,      0.90659542,      0.25069069,     0.070479797,       1.8325976,       0.1219992,      0.87933984,      0.94240948,     -0.86310279,      -1.1253296,       1.4206075,      -0.1985971,      -0.1509016,       1.0079029,      -0.3373724,      0.61975923,     -0.52211788,      0.23198719,      -1.3261129,       1.6727842,     -0.85365531,       1.2755147,      0.98346478,      0.49428848,      -1.3748931,       1.3234158,      0.27183512,      0.94721429,      0.21628715,    -0.076230045,       1.0501698,      0.62932182,      0.93501608,      0.55457629,      0.59463141,       1.5511086,     -0.17974107,       1.1066467,     0.074838744,      0.29052746,      -1.4843358,       1.5540194,     -0.43814822,     -0.57574729,     -0.25607718,       1.1521047,       1.0601653,      0.64353385,      0.70478145,    -0.064540205,      0.57663388,      0.19609139,     -0.97924731,      0.20501032,      0.22102473,     -0.33430033,      -1.7041363,     0.099125569,     -0.97980298,     -0.22210824,      0.45219699,      0.28830137,     -0.47706911,       1.1330944,      0.47945596,     0.074850552,     -0.71576638,     -0.43848405,     -0.97577684,       1.0047947,    -0.085769827,      0.57292583,     -0.64937806,      -1.2539871,     -0.96492264,     -0.13682161,      0.30152519,     -0.21962659,     -0.74748433,       1.0964827,      0.31345396,      -1.1139773,     -0.48331187,      -1.7484548,     -0.53720416,      0.47664271,       1.5491679,     -0.80489579,     -0.30552442,     -0.82122861,       1.9313938,     -0.66978044,     -0.32771813,     -0.45700764,      0.51694961,       1.1094723,     -0.21540851,       1.7935438,      0.12788425,     0.012147289,      -1.6657861,      0.19093168,     -0.14012762,       1.3698169,      0.52915237,       1.1064821,       0.3828035,     0.017261675,     0.012816699,     -0.67724032,     -0.22609281,      0.39479978,      0.31725416,      -0.3999926,     -0.69307669,       1.9988685,      0.76195464,     -0.01586066,     -0.97199672,      0.14700819,      0.71339284,       1.3549099,      -1.1740965,       -1.271709,     0.093213752,      0.38325352,       1.1567233,      0.35357661,      -2.0003961,       2.6954959,      0.95645552,       1.1842498,       0.4420143,     -0.44207671,      -1.3713072,     -0.11693723,       2.0250727,        1.971056,      0.63881397,      0.28341792,     -0.85705763,      -1.2446905,       1.4177824,       1.9045448,     -0.33546418,      0.99020757,     -0.27096759,       1.1626863,     -0.51918055,      0.20187372,       -1.176692,      -1.7749466,       0.9445526,       1.1349909,       1.3000529,       2.0162749,      0.23492107,     -0.10415455,      -2.4639956,     -0.48872544,      0.30287841,    -0.053758724,      0.76912031,     -0.80543378,      -1.0495536,      -1.3266885,       0.1352939,      0.39297004,        -0.11355,     -0.70594921,      -1.2229294,      0.83166939,      -0.4119483,      -1.3400799,     -0.30270025,     -0.79499522,      0.67511265,       1.0136414,    -0.015727048,        1.210468,      0.64949602,   -0.0060795293,       2.2705967,     -0.67070605,      -1.0418773,     -0.23303174,    -0.018436671,       1.2009242,     0.099011277,     -0.16415083,     -0.17776943
+2021Y,      -0.3842875,     -0.12495067,       1.2139917,      0.66095987,      0.89213694,     -0.24122431,      0.83243096,      -1.6834885,     -0.60249831,     -0.22273783,      0.26190051,      0.45383835,      0.33443002,      0.48773175,      -1.0523266,       1.2216246,     0.017126088,     -0.44278956,     -0.18872126,      -1.1256232,       1.3038268,     -0.38873584,       1.4451853,       1.7396886,      -1.0602631,       1.3869914,      0.72374242,      -1.1432201,     -0.83659791,     -0.80386662,       1.1196535,     -0.36257997,      0.96956533,     -0.74656271,      0.19502579,      0.20863294,      -1.2256558,       -1.151775,      0.60987835,      0.78149832,       0.3141598,     -0.47838216,     -0.64155951,     -0.45453828,       2.8995117,      0.48176943,      -1.1350471,      -2.2133552,     0.008477777,    -0.017348261,      0.32868133,     -0.61238814,      -1.5240223,    -0.048620164,     -0.96183941,      -1.2377154,     -0.14068957,     -0.90163635,      -1.3497743,       0.2593947,     -0.39336189,     -0.53109269,      -1.3929395,      0.55569496,      -1.2272678,       -2.346075,     -0.50966701,       1.6977174,      0.34882847,      -2.2643158,     -0.83038178,       1.5633225,     -0.63404634,      0.71397487,      -0.4362733,      -2.0854661,       1.2867212,      -1.1763718,     -0.66918556,      -1.2611652,    -0.072672672,     -0.29694692,     -0.68355063,       2.0350784,      -1.0211993,      -0.1443385,     -0.32274493,        1.819412,      -1.9323917,     0.037842488,      0.54344757,     -0.61210838,      0.38152793,       1.6982189,      -1.3590355,      0.49986528,     -0.65988145,     -0.22653498,       1.3828563,      0.87150178,       1.2668534,     -0.27247735,      0.18228178,     -0.71743441,      0.16680167,      -1.4233371,       0.8251085,      0.55755035,       1.1756764,      0.44001244,      -2.0436599,     -0.78059434,     -0.42035375,      -1.1618655,      0.33131632,     -0.32985717,     -0.61515824,      0.80618361,      0.13192064,     -0.47063738,     -0.81318639,      -1.4823856,      -1.3700414,     -0.68338987,     0.072925963,      0.10396843,      0.90677989,     -0.38432997,     -0.70895511,     -0.28066221,      0.21787848,      -1.4524817,      0.60870249,     -0.36404498,       0.4748961,      0.16815642,       0.6514016,      0.17680074,      -1.1420885,      0.83509113,       2.5642895,     -0.60099559,      0.70087873,      0.52042815,      0.36671268,      -1.7693177,      0.18064764,   -0.0097362645,      0.79020072,     -0.78475141,      -0.9522927,     -0.97461624,     -0.16839741,      -2.4272585,      0.40954185,     -0.29680723,      0.21216169,      0.53464401,       2.0493308,     -0.67770624,      0.54992613,      -1.4882945,     -0.92990634,       1.4712949,    -0.040651911,       1.1167182,      0.77119872,     -0.78347088,      -1.9773563,      0.97140886,      0.71752275,      0.88429739,     -0.79027007,     -0.17124966,      0.78841553,     -0.88881697,     -0.48461924,     -0.49263741,       -1.435938,      0.74205413,      -1.1740246,      -1.3795953,     -0.58335087,        1.336398,     -0.28659883,      -1.6762159,       -1.052692,      0.24079445,     -0.80764949,      0.61265866,       0.9514999,     -0.90110891,     -0.16895523,     -0.19284309,      0.22224089,       1.9206155,     -0.66165692,       1.4195649,      0.01242571,     -0.42268229,      0.51212043,      0.99178538,     -0.60555597,     -0.63169774,     -0.89936358,      0.18132904,      0.51486395,     -0.76581604,     -0.32276478,     -0.71454929,      0.33903794,      0.36513628,      0.44188923,      -1.4969069,       1.7633772,     -0.11678133,     0.057502516,       -1.720664,      0.11418316,       -1.269314,      0.78161205,       1.2149206,      -0.7647172,       1.1919946,      -1.3002689,      0.61274096,       0.8959972,      -1.5969071,     -0.13564177,       1.4536441,     -0.28451969,      0.20662799,     -0.33837493,       0.1432879,      -1.0109508,     0.015704466,     -0.76606453,       1.3892924,       1.1069081,     -0.72435358,      0.16146215,      -1.2249563,      0.40064709,      0.67014291,     -0.12204865,      -1.6552158,     -0.92244113,     -0.33575628,      0.63131126,     -0.35844756,      -1.5190758,      -1.2471535,      0.57404442,      -1.4205825,      -1.0209763,      -1.2712976,     -0.52478254,      0.64823387,      -2.5292309,      0.37126768,     -0.55404522,       0.1079729,     -0.30784846,      0.82317534,     -0.99642681,     -0.26003294,      -1.7010999,     -0.26079255,      0.22281073,      0.85761472,      -1.8098167,      -1.1541885,     -0.47769895,       0.6829213,     -0.40442397,      -1.1705054,       -2.261635,       1.3053519,      0.42785003,     -0.56564048,     0.093186924,      0.29682039,     -0.76396302,      -1.5110907,      0.46553655,      0.28192231,       1.3386105,     -0.39763851,      0.10491842,      0.17476037,     -0.49589359,     0.071490538,       0.2550122,      0.93441092,     -0.36298206,       1.3623674,      0.29750071,      -1.0974657,       1.8479402,      0.64667271,     -0.59023837,    -0.072906073,      0.50463157,      -1.1140111,       2.4664819,     -0.24758726,      0.77813819,     -0.83004936,      0.93564439,     -0.73809315,     -0.35613434,     -0.55224861,       1.2771327,      0.29879139,     -0.78858564,       1.3316962,      -1.1763558,    -0.046326418,       3.5652098,     -0.85678351,     -0.65300878,     0.046750058,     -0.50992207,     -0.81279735,      0.33433662,      -2.6661504,      0.72339326,       1.0350894,     -0.42885098,     -0.17666764,     -0.50915627,      -1.4500143,     -0.36173471,      -2.3764123,     -0.26543838,     -0.73989333,      -1.0656135,       1.1850081,        1.249199,      -1.9990891,     -0.14407587,      -1.8603343,     0.060272281,      0.46571435,     0.025202996,       1.4947802,      -1.5071936,     -0.57026144,     -0.51128337,       1.5792046,     -0.91443495,      0.04444144,     -0.40850908,       1.6106826,     -0.19668064,     -0.79506746,    -0.010046231,     -0.66900282,     -0.53064449,       1.0478473,    -0.061431421,       1.3716086,       1.2847024,     0.076935803,     0.056527597,       1.1479213,     -0.57357733,      0.65440794,      -0.5646934,     -0.54815871,       1.0391563,      -0.8913612,       1.1059626,      -2.4572247,       0.1906267,     -0.85293401,     -0.51009899,      0.50210093,      -0.8308567,     -0.43787125,       1.5468173,      -2.0240138,      0.60402408,     -0.96079059,      -2.1769792,        -1.73478,      0.66810888,     -0.64642102,      0.29539833,    -0.018707942,    -0.096905615,      0.54383429,     -0.75760742,      -0.3073126,     -0.48566407,      -1.1136627,       1.5050649,     -0.52489562,      0.81768022,      0.46983951,       1.6849465,     -0.56361437,    -0.051715736,     -0.66273195,    -0.065083776,      0.83556525,      0.44238494,        1.270269,      -0.8174697,      0.03641464,       0.3130853,      0.60992336,     -0.92528186,      0.34936014,       1.0974589,    -0.045273743,      0.29310881,     -0.58266306,      0.86199839,       1.6179592,      -1.0669735,     -0.44775183,      0.60568067,       2.7243114,       1.9868533,     -0.69988862,        1.247097,      -1.0620841,     -0.73674929,     -0.20443631,      -1.1386114,      -1.1199525,      -2.6599231,       0.7002255,       1.3329357,       1.4271068,     -0.84448898,       -2.225444,      0.58567324,      0.65753945,    0.0035830255,      0.64402419,       0.4456126,      -1.0816752,       1.1587931,     -0.12871004,       -1.099778,     -0.37496494,      -1.3887052,       1.2226879,     -0.19069267,     -0.67844892,     -0.54820715,      -2.6463334,      -1.2152671,      0.65498659,     -0.98185101,      -0.2030389,      0.74859011,     -0.73001104,      0.78752516,     -0.99884808,      0.23962351,       1.5057559,      -2.3015952,      0.32436771,       1.3758429,      -1.6706733,      0.13500208,       1.3566003,      0.48698355,      0.44759846,      0.54931934,    -0.037826419,      0.41258372,       0.2856503,      0.97932988,    -0.047389541,      0.25525627,       0.1751211,      0.82427481,      -1.6549261,      0.86283847,      0.98338781,      0.31985368,     -0.66962388,     -0.67675041,       0.1431427,      -1.0088552,      0.18220383,      -1.5711203,       1.2463497,      0.19980169,      0.54762237,      0.20082106,      0.35440084,       2.3863906,      -0.1208782,      0.94447637,      -1.2580445,     -0.39359591,      0.65282378,      0.25241309,     -0.48375462,       0.8424016,     -0.44446006,     -0.55283156,      0.68812943,     -0.96071546,      0.29487771,       2.5362671,    -0.045985132,      -1.3996291,      0.63155659,      0.71702394,     -0.40109321,      0.34635692,      -1.8294108,       0.9868204,       0.8487765,       1.3366039,      0.62485548,    -0.024222119,      0.99917231,       1.7064727,       1.6611896,      0.29384952,      0.40938044,      -1.7626384,      0.32462992,     -0.50190344,     -0.63295602,     -0.75661238,     -0.80672142,      0.28134793,       1.0653289,      0.90548184,     -0.20398306,      0.30345911,     -0.39364954,     -0.77796431,       1.0885854,     -0.62114606,     -0.40414271,     -0.32875718,    -0.028544316,      0.18730487,      0.20724038,      0.29619192,     -0.46214455,      0.50639918,      -1.3635097,       1.0872549,        1.567779,     -0.89309824,     -0.54513305,      -1.0205376,     -0.70468135,     -0.49984348,      0.66232488,     -0.91472542,      -1.1845283,      -3.4754515,      0.76092414,     -0.99912615,     -0.62560731,    -0.096720569,      -1.3497481,       1.3142427,     -0.71108662,      0.67135955,    -0.022847465,      -1.3532597,       1.1593435,      0.18421207,      0.41343806,       -1.503062,       2.5968234,     -0.33854227,      0.34208311,       1.3814446,      -1.1901001,      0.68428528,      -2.2606205,      -1.4604366,      0.90246676,       0.9519007,       2.2879092,     -0.69337867,     -0.81726793,    -0.092234385,       0.3443701,     -0.37794169,      0.17058358,      -1.0260826,     -0.88643807,      0.22610869,      0.59982696,      -1.2978117,       1.5636834,     -0.98398749,      0.74092258,     -0.64279622,     -0.22045118,      -1.0805002,       0.4186625,      -1.1260347,     -0.51647849,      0.45355154,       1.6558995,     -0.36754193,      0.27971386,      -1.1176192,      0.17473461,      -1.6828851,       1.1904166,     -0.30046345,       1.1561057,     -0.66660144,      0.29777119,       1.3237015,     -0.80541272,      0.42162529,      -0.9197946,     -0.29828742,      -2.0818734,     -0.15604736,       1.4884442,       0.9620376,     -0.35155162,     -0.31033327,     -0.26202928,      0.95399897,       1.4178266,       2.3987266,       1.3997456,       1.1584832,     -0.59357864,      -1.9243871,      0.47280064,      0.19574236,      0.97782016,      0.49075875,      0.70673012,     -0.60596413,     -0.59889077,      0.42845147,      -1.2625435,      0.97656563,      0.83605311,       0.9327244,       1.5996553,      0.24848413,      0.99912549,      0.78903845,      0.37832256,       1.7966788,    -0.046911384,      0.71608759,     0.012887863,      0.20309417,       1.6269232,      0.14082047,      0.47349295,     0.037572667,     -0.43291856,      0.19295791,    -0.043666372,     0.067329377,     -0.52290037,     -0.42489765,     -0.68753128,      0.23025263,        1.016025,     -0.40062329,      0.35623615,      -0.8677287,      0.44742004,      -0.1073852,      0.18166164,     -0.35958264,      0.40609663,      -2.4160186,      0.85378944,      0.28561728,       1.8586581,     -0.16425165,     -0.72792651,      0.48455741,      -1.0379449,      -1.9796254,     -0.29495472,      0.29171053,       1.6368644,      0.29779506,     -0.74598226,     -0.44797233,      -1.3489533,       1.2259454,     -0.34228676,       1.1968377,       1.7324989,     -0.61810095,       1.8179161,     -0.16715817,       1.0731969,       1.0778552,      -1.4596583,      -0.9719423,     -0.42416186,      0.37297663,     -0.29362986,      -1.0614836,     -0.53321464,      -1.6657732,       -0.662355,     -0.52579777,       1.2108639,      0.87789622,     -0.20460733,      0.34559471,       2.6335423,       0.6059191,    -0.064170662,       1.4009951,     -0.65503392,       1.7217992,      -2.7608588,     -0.16383391,     0.091241109,       2.8645625,     0.088071405,     -0.53748648,     -0.73746851,      0.13862269,       2.0738898,     -0.39173138,     -0.10988905,      0.96476975,      0.13679495,      -1.3003079,     -0.43710676,      0.26332632,        1.378164,     -0.34962082,       -1.776626,      0.94192068,     -0.99666092,      -0.6659066,      -1.2543557,     0.081680514,     -0.34363731,       1.5841919,      0.29041813,     -0.39538289,       -2.051146,      0.47969575,      -2.1352327,      0.58341937,     -0.83260541,       -1.568007,      0.81048308,      0.28571109,      0.57955045,      -2.4760939,       1.3636048,     -0.08559538,       1.5856539,     -0.91123311,     -0.23939947,      0.66566421,       1.6276651,      -1.7316255,      -1.0294325,      -2.4023677,      -1.0345901,       1.0711708,     0.042471612,      -1.3324772,    -0.003904253,     0.072445586,      -1.5362235,     -0.64881243,     -0.22745821,      0.88889538,     -0.20392549,      0.62539656,       1.6898697,      0.25289096,       1.3193871,       1.8108604,    0.0016184778,     -0.58594892,     -0.98377701,       1.8537253,     -0.21169444,     -0.67303997,       1.3222913,      0.15812487,     -0.13738743,     -0.13023224,     -0.78797459,     -0.47536573,      -0.4748843,      0.26001811,     -0.15060575,     0.043819963,         2.41908,      0.90246767,     -0.29946634,      0.87778204,     -0.83017515,      0.50507868,       2.2148389,     -0.53975044,      -1.5914286,      -1.5640865,     -0.68919523,        1.014855,       1.0331098,     -0.31681126,     -0.54127787,     -0.61622443,      0.47502604,      -2.6115583,       0.2301532,       1.8105162,     -0.18568222,      0.16468541,      0.67734825,     -0.53087654,      0.04840502,     -0.48579247,      0.84188067,     -0.86684056,      0.83758793,     -0.15093185,     -0.23945271,      0.79910235,     0.079859111,      0.66646504,      -2.2635332,      0.79368159,        -2.19411,     -0.22780956,      0.13001916,       1.4162558,     -0.25862534,     -0.49028946,     0.065074035,      0.23059782,      0.52278137,      0.60511635,     -0.99003429,      -0.7490685,     -0.58965668,     -0.45677595,       1.5444056,     -0.23731681,      0.28423593,     -0.21163664,     -0.52120321,     -0.42166956,      0.17184042,      0.35378133,     -0.87182978,      -1.2651883,      0.19879799,      0.75541615,      0.10930715,     -0.55275209,     -0.64982109,       1.3389665,     -0.45978774,      -1.2383982,      0.48292992,     -0.78275632,      0.14243579,      0.58559083,     0.021911382,     -0.90074566,       1.5650874,     -0.79368731,       1.4586577,      0.54036976,       0.5492784,      -1.7854093,        1.059491,      -1.3560009,      0.21960468,     -0.30524429,     -0.29869017,     -0.33506062,     0.085143474,     -0.78594749,      -2.9636098,     -0.48298803,      0.32714763,     -0.56538643,       1.9067445,      0.40300713,      -1.3925687,       1.2895848,       0.7989641,      0.11664404,      -1.3886738,      0.14889398,       1.4316303,       1.5057531,       2.8538572,     -0.68146062,      -2.2968101,     -0.30171279,    -0.017888047,      0.45129244,     -0.25648394,       2.0769115,      -1.9825418,       2.0233793,      -1.0837802,      0.50129452,       1.6096891,      0.80050528,      0.17856815,      -1.1389066,     -0.20624462,     -0.81838855,      0.52881584,     -0.93643178,      0.29119702,       1.1508885,      0.34522467,      0.92725825,     -0.85028611,     -0.67183889,     -0.20726195,       0.3612355,     -0.72540332,       1.5040517,    -0.082859643,       1.1958577,      -1.4090263,      0.39738307,     -0.35917023,     -0.97080602,       1.4935657,      -1.9577477,      0.17602422,     -0.39399887,      0.10806161,      -1.5461813,       3.6166601,      0.81981009,       0.3650345,      0.30964595,     -0.92925692,     -0.69246234,      -1.8882555,      -1.9152619,      0.96136428,      0.53478632,     -0.99846258,      -1.2834613,      0.36712299,       1.5135773,      0.38268872,      0.87028618,       1.2859701,      0.51055453,      0.98294807,       1.9873842,        1.382778,      -0.3504301,    -0.036780238,      0.24706342,       0.1734585,      0.88948536,      0.92968647,      0.58480061,    -0.031552086,     -0.91250208,      0.78163422,      0.37029958,     -0.98539477,     -0.84748727,     -0.34610872,     -0.92425465,      0.39037074,       1.3510859,        1.223076,      -1.0876891,      -1.4923774,     -0.42269496,     -0.69045615,      0.57362055,    -0.046796942,      0.61409771,      -0.2519837,     -0.12107376,     -0.20569515,      -1.3407666,      0.57663663,     0.080074187,      0.60632024,      0.74601827,     -0.82480031,      0.55345497,       -0.307676,     -0.64349437,      0.36839421,      -2.0957958,     -0.58451587,       1.8922137,      -1.5499142,      0.60703211,     -0.46655768,    -0.075257492,     0.081717865,     -0.21564092,      -2.0419912,     -0.19420044,      0.16616271,     -0.50781222,     -0.10550733,      0.88287375,      0.98667572,      -1.7882357,      0.26552178,      0.65029477,       1.1108175,       -1.149126,      -1.4641707,     -0.03945748,       0.6789709,      0.46755345,       1.2709758,      -1.0085843,      0.49951754,      0.32498704,       1.7254498,     -0.41625506,      0.40149538,      0.66341391,      0.27258823,      -2.1779544,       1.8619637,     -0.23226849,       1.4784135,       0.3080485,     0.020092394,       1.1839506,     -0.65197916,      0.66266805,      0.26501636,      -2.0506016,      -1.1762709,     -0.29923746,       2.0701261,     -0.59877673,       2.1621125,       1.7428215,      0.60349009,      0.22640308,       -2.182089,     -0.56386089,      0.69949239,     -0.50106295,      0.49980518,      -0.5473316,     -0.78296395,     -0.27100971,       1.1059752,       1.5885418,      0.38361182,      0.23994616,     0.055023726,      0.36863996,       0.7642976,       0.3393172,       1.1403241,       1.1976545,      0.82677496,       1.2791982,    -0.011235559,     -0.55684458,      -1.2584958,        0.560454,      -1.1684051,     -0.95384241,       0.8559755,     -0.62032156,     -0.42068279,      0.65705475,       -1.007966,      0.33799794,     -0.30435864,      -2.3941724,       1.0465598,     0.068181065,     -0.59521411,      0.96580382,      0.46421784,      -1.0137127,      -1.1487826,      0.21263575,      -1.5751464,       1.1643028,     -0.48476853,      -1.4366674,     -0.41081202,        1.141686,       1.2999269,      -0.7991916,      -1.5528459,        0.765617,     -0.19848329,      -1.5138919,      0.43921117,      -1.1526763,      0.71479871,     -0.61730823,    0.0042915168,     -0.15466631,       1.9873517,       0.6124348,     -0.92418093,     -0.53353169,        1.023172,         1.30175,      -1.5223855,     -0.79196607,      -1.6202947,      -1.0764836,      0.39674868,       0.7830431,      -1.3431011,     -0.88456076,      0.39937377,     -0.47413457,      0.68425446,     -0.88755287,      -0.1267821,      -1.0119317,      -1.2913869,      0.48985751,     -0.15261906,     -0.80519389,       1.4788849,       1.2553935,      0.26254161,     -0.21261318,     -0.62205081,       2.0123654,     -0.40397893,      -0.5427308,      -2.1259049,       0.7164685,    -0.021494612,      0.32913914,      -1.1959633,      0.26067353,       1.8548585,      -1.2374623,       1.0717613,      -0.3285943,      0.45124779,     -0.98233633,        1.193153,       1.1777766,      0.34083245,      -2.1260773,      0.82982527,      -1.1997843,       1.4206534,        1.097627,      0.25837206,     -0.10150308,       1.4525646,     -0.10618241,      -1.7198515,     -0.66692757,      0.37009532,       0.6999991,     -0.31466994,     -0.92636517,     -0.74129566,     -0.60862498,     -0.18984503,      0.82667759,      0.53445166,       1.2822146,      0.32225144,     -0.62379341,     -0.20037647,     -0.50716035,     0.084584968,      0.59829815,      0.40422713,      -2.3366872,      0.19525185,       0.1193882,      0.84527948,      0.69211172,      0.23586664,     -0.50686363,     -0.20423615,     -0.64981279,        1.328026,      -1.1554778,      -1.0698161,     -0.75682161,    -0.039552061,       2.1179679,       1.2057309,      -1.3033015,       1.5436357,     0.032994069,     -0.15693076,     -0.49521626,      -1.3870103,      0.45302046,     -0.46375663,      0.85451926,      -1.2320544,      0.58907119,       2.3437476,      -1.6055602,     -0.56215705,     -0.71319855,       -0.212645,       1.5303147,      -1.2111378,      0.12710849,      0.33986905,      -0.1273572,      -0.8424741,      0.67180682,      0.15714655,     -0.40931454,     0.096499861,     -0.39546208,      -0.5152961,     -0.14109569,      0.72637762,     -0.37232959,      0.29764383,      -1.5304064,      0.10247494,      -1.3613686,     -0.17697389,      0.06691618,      0.84565659,      -1.9144024,     0.092736002,      0.10330315,     -0.81754076,     -0.62233722,       1.0572867,      0.72786836,     -0.10749243,     -0.53449328,     -0.36446621,      0.97276552,      -1.3183195,      0.18225264,      0.90021301,      0.13879132,      0.39187813,      -1.0166505,       1.1328506,        0.239978,      0.94005517,      0.40773912,     -0.37702054,       2.0335357,      -0.4822366,       0.4889321,      0.11150104,      -2.4206006,     -0.17124038,     -0.20759952,      0.59559312,      -1.1462808,       -2.373335,      0.50053327,       1.4122322,      0.16377397,     -0.59297941,      0.86591362,     -0.79127401,        1.075521,      0.22686453,     -0.57886517,      -1.2656164,     -0.41390338,     -0.75014664,    -0.098215637,     -0.53131116,     -0.58469786,     -0.25048942,      -2.1978028,      0.58297821,     -0.16312505,     -0.66163178,       1.0630071,      -1.0298121,      0.35363258,     -0.54013474,       1.0689975,      -2.8336362,      -1.8072594,     -0.25518416,      0.46877826,       0.1408604,       1.6528256,      -1.0772142,         2.11363,     -0.26827962,      0.20740983,     -0.55224454,      0.29574856,     -0.58596564,       1.7512167,      0.31578314,      -1.1418413,      0.65264496,       2.7418557,     -0.43901793,      -1.0961321,     0.016067146,      0.83933077,      -2.1735848,     -0.59455319,     -0.10990639,     -0.48572304,       1.0173016,     -0.95971626,       1.9290296,     -0.32213757,       2.1797746,      -2.0007466,     -0.87562114,       1.0439152,     -0.28830287,     -0.99070834,      -1.8210002,     -0.43578877,      0.55913719,     -0.01784351,     -0.82429865,    -0.018798884,       1.0184616,      -1.2095083,      0.64310867,      0.80606745,       1.3638892,       1.3834203,       1.6050028,      0.36883694,      0.42565479,       1.0798959,       0.7572806,     -0.57083486,       1.4843386,      0.25127682,      0.96095175,      0.40921721,     -0.73134486,     -0.39858266,      -1.3069499,     -0.14880487,      0.55898501,       -0.751838,      0.22403124,          1.0456,     -0.41278449,     -0.96608998,      0.46135128,      0.71968456,     -0.32435334,      0.12861181,      -1.9037734,       2.4579079,      0.81244176,      -1.5285277,       1.0105428,       -1.028056,     -0.29981873,      0.66660575,      0.18661147,       1.6843602,     -0.77425326,     -0.25640358,     -0.10167944,      -1.0188092,        1.071669,      -0.2984742,       -3.375224,     -0.65501199,      0.49473183,       1.6087764,      0.53463562,        1.060525,      -1.4993779,      0.90636721,       2.1478153,     -0.83395849,   -0.0061019706,       -1.455076,      -1.9223807,      0.28518869,     -0.68337153,      0.57543164,     -0.16873588,      0.72743242,      0.85737984,     -0.62351553,       1.4905477,      0.93952963,       1.5971267,      -1.2725006,     -0.60353989,       0.6093228,      0.37014255,       1.1267739,      0.75382083,      0.36000666,      -0.4342987,      0.11438571,     0.092748459,    -0.082121881,      0.81845904,       1.4826764,     -0.72118093,     -0.65663294,     -0.11449938,     -0.19875645,     -0.23097157,     -0.30400949,      -1.4418357,        1.101091,     -0.30071925
+2022Y,      0.21708086,     0.015095725,       1.7666633,      -1.2459482,      -1.2798574,       0.8051692,        0.302514,       1.0237307,       1.1140488,     -0.25083583,      -1.1693876,      -1.6936352,      -1.8029803,      0.23846433,        1.979312,     -0.47842917,      0.01031472,      0.24890213,      -1.2606762,      0.12575458,     -0.76643384,      -0.8184558,     -0.73294649,     -0.54161939,       1.3772535,     -0.88766919,     0.074116676,    -0.061795733,      0.83556256,      0.39065133,     -0.71321978,     -0.84320424,     0.054531439,      0.11976257,     -0.47914881,      0.01316973,       1.0474302,      0.11444538,      0.44441097,       1.4297468,     -0.64336778,     -0.60770457,      -0.2585005,      -1.1081576,      -1.1574927,    -0.030077365,       1.6501366,      -1.3983532,        2.125885,       1.3908626,     -0.27074895,      -1.0348688,      -1.7447848,      0.26776766,     -0.30682218,      -0.4317178,     -0.99478819,      -2.5867055,      0.51624879,       0.1422024,     -0.72834836,     -0.86333097,       1.3864217,    -0.019254685,      -2.0666874,      0.83604482,      -1.0910359,      -1.7461778,      -0.3844996,       -1.773443,     -0.56913699,     -0.50806551,      0.14331383,     -0.87667313,     -0.96650548,      0.40541126,       1.2993433,       0.7150825,      0.53054536,      0.81336794,      -1.5739761,      0.26348692,      -1.4317246,     -0.77667126,       1.7453188,     -0.21380119,      0.50535127,     -0.33268953,     -0.61342298,     -0.34357392,     -0.50880794,       1.4660349,      -1.5472554,      0.43231642,      -1.2321626,     -0.61265713,      0.30948011,      -1.6436506,      -0.4000535,      0.27872268,     -0.99244314,       1.8108945,      0.79979355,      0.62115242,     -0.79853938,      -1.0714021,     -0.95721282,     -0.15654445,       -1.029913,      0.82027067,     -0.25967122,       1.6111804,      0.10456733,     -0.29466398,       0.2489349,      0.22581396,      0.16087619,      0.16036971,      -1.0409188,     -0.66606199,       1.1369648,     -0.57166822,      -1.3603566,       1.5807364,      0.45014237,      0.30471244,      -1.9781888,     -0.13264514,      -2.4284052,     -0.05347126,      0.35960338,      -2.6201729,     -0.29279125,      -1.1779845,       2.0525818,     0.073562001,       1.4126731,     -0.57005751,     -0.84630457,      0.92037745,    0.0047013264,     -0.64346966,      -1.4146143,      0.54259976,     -0.86471588,       -1.574877,       1.0258797,      0.88846912,      -0.7522841,      0.34106978,      0.69711895,     -0.50991948,     -0.70699256,      0.63798734,      -0.3986128,     0.036827141,      0.70467917,      0.29502504,      -2.8749335,      -1.1635567,     -0.43633918,      0.97010368,     -0.51818624,     -0.68623789,        0.288344,      0.64640738,      0.46415253,      -1.8719911,     -0.51010409,      -1.6120214,     -0.26061298,       0.1356619,      0.62249261,     -0.33739172,      -1.2117515,      0.26424132,      0.94159512,      -1.7268411,      0.38372925,        1.534754,     -0.34579724,      0.69937848,     -0.14048043,      0.63528927,     0.035880658,      0.05241794,      -0.3041238,      -1.0426004,      -0.3763764,     -0.41823479,      0.22258171,      -1.6436776,      0.85025977,      0.56820823,      0.21167872,      0.92880608,     -0.99296855,       1.7409366,       1.8080602,       1.5222467,      0.74087671,      0.33415108,      -0.3420454,      0.25122617,      0.33996941,      0.26333443,       1.8697281,     -0.29943433,     -0.96856207,      0.35096003,      -1.5258651,      0.77734526,     -0.49601828,      0.18399289,      0.91324445,      -1.2786104,      0.39042888,      0.15848253,    -0.055415102,      0.73773137,      0.71879773,       1.1556034,      0.22049959,      0.63115425,     0.086656701,     -0.84984968,     0.092856444,     -0.22003768,     -0.89042676,      0.50184643,     -0.52265469,       2.5392468,        1.857763,       1.5035861,       1.2576495,      0.77257688,       2.2360335,      -0.6359965,     -0.27345444,       1.5957494,     -0.79949063,       2.5079495,    -0.079856647,       1.2507678,      0.95871139,      0.28945291,       0.3523252,       1.3369051,     0.090586701,     -0.74711926,       1.0200234,     0.018233242,       2.5902687,        1.598929,    -0.030041661,      -1.7448536,     -0.44329125,      0.23050669,      -1.2143036,       1.5602241,       1.8618749,       0.3735441,     -0.49319912,      0.11329458,      0.25828788,      0.59879594,      -1.2313798,      0.40787944,      0.74055156,     -0.58801616,     -0.99825975,      0.68082893,      0.56852761,     -0.65578213,         1.94465,     -0.21614983,      -1.0282108,       1.7990474,      0.12401167,      0.12318092,     -0.56197025,      0.35326255,     -0.79035894,      0.22934468,    -0.065068481,     -0.54708623,    -0.012910083,       1.0647516,      0.62639007,       0.6999001,      0.88492043,      -0.3766028,      0.65300421,      0.73302504,      -1.2747592,     -0.63079856,     -0.36598119,     -0.39519739,     -0.25329044,        0.500277,       -1.609149,      -1.1954074,     -0.24977308,    -0.051411709,     -0.49332062,      0.54462748,         1.02565,      0.17388491,     0.092023746,      -0.8651528,     -0.89209571,       0.3668855,     -0.15615401,      -1.7609525,      0.77010501,     -0.83949249,      0.12274767,      -1.8552003,     -0.42789341,    -0.073290343,     -0.24061515,      -1.2295226,    -0.044419083,      -1.1869108,     -0.79442307,        0.496067,     -0.97824937,      0.70065088,      0.48031793,      0.86368178,      -1.2883925,      0.53052745,     -0.40311423,       1.1734883,       1.0437114,      -1.0201896,      -1.6236915,     -0.31013686,     -0.36004448,     -0.34458667,      0.63783921,      -1.4514353,      0.94156024,      -2.1036924,      0.87562163,      -1.6605366,       0.8764856,      0.83376127,       1.4731577,       2.3329205,      -1.2281312,      0.68072912,       0.5269763,      -0.4259113,       1.1206095,       0.8314003,        1.836737,     -0.67203627,       1.4614147,      0.50439756,      0.52368359,     -0.15259672,      -0.1713621,      -1.2422522,     0.063557138,     -0.14610635,     -0.62910913,      0.45719108,      -0.5668071,     -0.96086261,       0.7042226,      -1.6497704,     -0.56583459,      0.54348559,       1.3240804,       1.1526043,      -1.8472845,     -0.18615272,      -1.0691371,     -0.71666151,      0.49930817,      0.28426724,     -0.75331689,      -1.4588374,      0.20309157,       1.2767042,      0.78129267,      0.72512279,      -1.7303184,      -1.3322033,     -0.74805311,     -0.47177623,     -0.17213483,       1.6664105,     -0.50451135,     0.034826748,      0.40990656,     -0.89575755,     0.078587393,     -0.84633689,      0.31714069,      0.39211917,     -0.36743986,       1.5616839,      0.77134407,      -1.6355335,      0.59684399,     -0.56885141,       1.2391043,      -0.2337886,    -0.026835471,    -0.077868027,       1.9329985,      0.48054361,       0.3392909,     -0.22494944,     -0.60715946,     -0.43492727,      -1.2519061,      0.67355834,     -0.65839605,      -1.3582763,     0.015429395,     -0.50790099,     -0.99808392,      0.27785314,     -0.30827308,     -0.96054164,      -1.8152727,       0.4471993,      -1.1060719,     0.048734002,      -1.3696302,       2.4974817,      0.56559684,     -0.84490491,     -0.22776494,      0.40416837,     -0.60376947,     -0.23285522,     -0.78785129,      0.77631533,      -1.4082218,     0.071662922,      -1.9768431,       1.4741975,      0.28218928,     -0.81489592,      -1.5683168,      0.23814239,      -2.1074537,      0.18869707,      0.96175443,      0.26141143,     -0.77293602,      0.89356119,       1.6328793,      0.48507705,      0.57476188,      -1.2361485,       0.5015429,     -0.52007674,      0.52262277,     -0.79240292,    -0.097073884,      -1.5970104,      0.94749841,     -0.18330806,     -0.15700733,     -0.39167917,      -1.0979752,       0.2253746,      0.15530717,     -0.60584183,     -0.88162962,     -0.44286556,      -0.1731876,      0.24967271,      0.51241953,      0.29899549,       1.1141942,     -0.21253583,     0.017334898,     -0.44343032,       1.4792804,     -0.81135968,     -0.12654864,      -1.0863799,      0.27625774,     -0.33982321,     -0.44236115,     -0.88626461,      0.87928904,       0.9249402,      0.59592013,       1.5227303,      0.73221357,     -0.47273659,     0.059698855,     -0.24646184,      -1.2718996,      0.39053386,       1.5655294,      -0.6017057,     -0.44336896,     0.072400706,       1.0336209,      -0.6988919,     -0.53612283,       1.7449378,      0.56065976,      0.85188716,     -0.22296818,      -0.8857409,      -1.5151693,      0.68175873,      -1.4794026,      0.15242052,     -0.93071658,        1.671192,     -0.35677438,      -0.9771285,      -1.2643851,      -1.4161209,       1.9489813,         1.86913,      0.39700935,     0.071946285,     -0.15321252,     -0.72201313,     -0.87367718,      -1.0527911,     -0.56276591,      0.38400321,     -0.92630917,      0.68405305,     0.025493616,     -0.28001269,       1.1623599,      -1.8007886,     -0.44932735,      0.94398469,       1.3173461,      -1.4919377,      -1.5725817,      -2.7372276,      0.31734124,     -0.86609651,      -1.0189451,      0.68864151,     -0.27265788,     -0.11258396,        1.383775,    -0.067082335,      0.63318519,      -1.1249579,      0.62448138,       0.4615205,      0.69317355,      0.53015765,     -0.61188485,       0.6195472,      0.18741045,       1.2749192,     -0.71252373,      0.81131193,       3.1041254,       0.6415248,      0.95676233,      0.37011385,     0.081196558,      0.42304209,      -0.7475589,       0.8808195,      0.94165813,       1.3336408,      0.47072761,      0.48971102,     -0.32737263,       1.1110814,      0.26428162,     -0.57963473,      0.19360744,    -0.046212911,        1.590305,      0.42816867,      -1.0241682,     -0.16798414,     -0.70922736,      -0.6261692,     -0.55205042,      0.50433841,     -0.80884722,       1.7700612,     -0.78287377,      -2.9880558,      0.94914037,     -0.76500388,      -1.5790137,     -0.49190642,     0.085348472,      -1.1077044,     -0.87095025,     -0.79806924,       2.0152261,    -0.081274659,      0.28900977,      0.67211528,      0.12427137,      -2.1265936,      0.61076431,      0.58869631,       0.5344589,   -0.0039920923,     -0.67878671,      0.35243571,       1.4831557,      0.39199369,      -1.2854654,     -0.58634219,     0.019982961,       2.0495212,       1.2972527,     0.048783186,     -0.38258814,      0.70528595,      0.38950352,      -1.0960589,       1.8059687,      -1.7110535,     -0.61538168,     -0.10121576,     0.059504886,      0.57481882,      0.60886266,     -0.12475486,      0.20274706,       1.4204015,     -0.59290312,      0.61469271,     -0.66221693,      -1.7893572,      0.88648364,      -1.2482679,      -0.1019229,       -2.942722,       0.8131924,       1.7949938,      -3.0338897,         0.28053,      0.23710698,       1.7934986,       0.4456572,       1.1799294,     -0.34864604,     -0.59436372,       1.3292932,       1.3664704,     -0.51236918,      -0.1305817,      -1.8645161,      -1.6696197,     -0.81655606,      -2.3740284,     -0.71353189,       1.3605782,      -1.0766843,      -0.1909887,      0.33445102,     -0.60200029,     -0.25913406,      0.93920214,      0.30658375,      0.78572603,      -1.0546901,     -0.57547203,       1.1397394,       1.7074222,        -1.44619,     -0.93855783,     -0.23651273,     -0.61043758,      0.22197392,     -0.94608928,      0.52582743,     0.087313395,      -1.6332094,      0.50339683,    -0.028013873,        1.223062,    -0.059763708,      -0.9585385,     -0.75298181,     -0.45066898,       0.8583128,   -0.0089469568,     -0.26654096,      0.25746658,     -0.23662853,     -0.89276704,      -1.6686743,      -1.2236421,       1.1559571,      0.13814751,     -0.13290306,      -0.6982709,     -0.94755733,      0.12452756,      -1.3978946,     -0.57316808,      -1.5897116,       1.0504428,      -1.4456589,     -0.16012109,       1.0236351,       1.7439437,      -1.1460344,      0.66771574,     -0.14943833,       1.3030889,      0.65109758,     -0.38579986,      0.38892617,       1.7860614,     -0.72453644,      0.16496581,     -0.69916966,    -0.023643776,       1.8197839,     -0.20260572,     -0.37190854,      -1.2466189,     -0.93346018,      0.71861417,      -1.5944447,      0.19594981,     -0.65132615,      -1.3384662,     -0.19999936,     -0.61046013,     0.061863068,     -0.17859488,      0.45132046,      -1.7474207,     -0.56683102,      -1.7348178,       0.7786261,      0.81258225,     -0.65984509,      0.79580718,     -0.02805479,     -0.89641717,      0.10460794,     -0.74819407,      0.93719591,    -0.053404096,      0.33957602,      0.60519805,        2.740662,       1.3878807,       1.5581125,      0.89834048,      0.35582991,     -0.59308174,       -1.097762,       1.2177899,       0.9330922,      -1.6179894,     -0.59867927,      -1.0666026,     -0.50891787,      0.41607025,       1.0166278,       2.2078476,       -1.194232,      0.24947377,      -1.1687938,      0.36536656,     -0.10782303,     0.077301879,     -0.10082043,      0.99585522,    -0.094044538,      -1.2783493,       1.1981744,       1.5408325,      0.64516588,      -1.9190124,      0.84758877,      -1.9874497,       1.5734577,      -1.8986333,      -1.8039527,      0.72972179,      0.98803819,      0.77829997,       0.6143625,     -0.23713339,     0.041730554,     0.015389582,      -1.3243751,      0.23635355,     -0.16320284,      -1.6475687,     -0.97390013,       1.2439657,     0.046760911,     0.040884513,      0.62856961,     -0.64463732,       1.1999963,      -0.4726317,       1.1417593,       1.2466792,     -0.45488518,     0.014782687,      0.31909834,     -0.01060433,      -1.8209562,      0.20784212,     -0.35374125,    -0.040402928,      0.67545882,      0.59018487,      -1.7851402,     -0.32648925,     -0.73059559,      -0.3205327,     -0.17684937,      0.37939307,     -0.39933695,       1.3378562,      0.49467475,      -1.1843304,      0.83205948,      0.94121419,      -0.1253752,      0.19018477,    -0.062194081,    -0.066228902,      -0.4935736,     -0.17916569,     -0.07792568,       0.3032593,        1.062982,    -0.030043031,      0.10118093,     -0.28830492,    -0.072654324,     -0.58896085,      -0.3034573,       -0.774043,      -1.1233767,     -0.65732755,      0.49930341,       2.6956364,       1.2179961,       0.5597907,       1.1348768,       1.4909448,     -0.21775893,      -1.2390127,      -1.0120022,    -0.086340475,       1.3162614,      0.83406767,     -0.58944173,      0.37529218,      -1.3555797,       2.4952937,      -3.1960887,     -0.38889579,     -0.34155288,      -1.3479358,     -0.47444435,      0.52343015,      -2.1339315,       0.7396174,     -0.36525141,     -0.69504383,       1.3034573,      0.52472383,    -0.013530191,      -1.4880662,     0.042473114,     -0.43179543,      0.40435526,      -1.0924178,      -0.4829151,      0.43023772,       1.4118703,       0.2705783,      -2.0313149,      0.28175064,      0.74020666,      -1.2817539,      0.84092044,      0.24624122,    -0.033983221,     0.075152263,      -1.3710483,        0.381756,     -0.28107774,        1.892112,      0.56768279,     -0.54935488,       1.1811737,     -0.86746003,     -0.77683347,     -0.48295183,       1.1224501,       0.3617805,      0.24672734,      -1.1391043,      0.14484394,     0.070785243,      0.26476143,      0.92852972,     0.055444488,      -2.1845133,       1.7811328,       1.4621662,      0.37030573,      0.17510235,      0.33588432,       0.5919137,     -0.80122106,     -0.71209711,       1.0870279,     0.021209928,       1.2675912,       1.3190878,    -0.015410388,     -0.50854019,     -0.78426291,      -2.0621479,      -1.1644765,      0.78790505,      -1.0945297,     -0.49920023,      -1.2808387,      -1.3809844,      0.25731969,       1.3867496,      0.45427413,     -0.67559833,      0.61106761,      -0.3874093,      0.70369314,       1.1311963,        1.900202,      0.69354423,     -0.94409561,      -2.0878658,     -0.34776923,    -0.063152866,      0.72701988,      0.15089466,       1.8327076,       1.1063931,       0.2563579,       1.9293282,       0.5121924,     -0.47287608,        1.031145,     -0.51584786,     -0.22215472,     -0.62960216,      0.13525699,      -1.0697047,       1.5437268,      0.83771502,     -0.46437185,       1.3297468,      0.44438347,      -0.6915491,      0.21945998,     -0.32151681,      0.38486499,     0.022976772,      -1.0611043,     -0.64772919,     -0.59821359,       2.2459623,      0.89892483,     -0.83791354,      -0.3401784,     -0.52697835,     -0.22733255,       1.4280087,     -0.37559652,    -0.057956412,      0.60461461,      -1.0970914,     -0.45927943,      -0.5229089,      0.69217022,     -0.50732769,      0.36680687,      0.30881297,      0.55378322,     -0.81220382,     -0.41812555,     0.098296505,     -0.22184214,       1.1110713,     -0.36114907,     -0.86418038,       1.4851198,      0.28622828,       1.1346509,      -2.0970948,       1.9969645,       1.7427226,     -0.25498053,      -1.4178725,      0.28883738,     -0.61055915,       0.4645126,      0.26603938,       2.3585529,     -0.91391793,     -0.83082565,     -0.93690331,     -0.51793873,     -0.40617331,     -0.49630099,     -0.54002284,       1.8516373,      0.82957924,      -1.0091075,      -1.3803382,       1.1016019,     -0.25364465,      0.57555603,      -1.3294337,       -2.090087,     -0.21445783,      0.11630375,     -0.64683696,      -2.2171961,       1.8026631,     -0.38384203,     -0.27977038,        1.463591,      0.63271549,      -1.5549238,     0.092039557,       1.6837155,     -0.96728851,     -0.80323558,    -0.051830903,     0.056507461,     -0.51497575,      -0.6723871,      0.12045787,      0.15387481,     -0.73405948,     -0.02019929,     -0.93759075,     0.039950269,     -0.53434538,       1.6633639,      -1.3531895,      0.20665731,      -0.1161925,      -1.0490986,      -1.4156731,      0.80324718,      -1.0123479,      -1.7344557,       1.8516099,     -0.47185529,      0.16420109,      0.21617977,      -1.2763029,   -0.0056724354,     -0.42975526,      0.89693352,    -0.035283647,    -0.013625471,     -0.41373028,     -0.55397316,       1.4293128,     -0.67100333,      0.50581666,      0.04618408,      -0.6155068,      0.33800648,      -0.7355992,      -0.4034558,      0.39698567,      -0.4048894,       2.0005682,     0.025694985,       -1.303811,     -0.13500207,     -0.17820987,      -1.5356612,      -1.1403237,       2.1697854,        1.403914,      -0.2920819,      0.29132999,       1.9063706,     -0.96858607,      -1.2966408,    -0.045699149,       1.9855427,      -0.4901757,      -2.0816516,      -1.7568291,       0.7911798,     -0.97212013,       1.1111995,      0.80408431,       1.9453696,       1.4531486,       1.9421802,     -0.67189732,       0.5067636,       1.5996142,        1.122836,      0.22507882,     -0.59923263,       2.2732007,      -1.0897663,      0.91895701,     -0.93792188,     -0.73503273,      0.18473453,     -0.29694649,     -0.73447366,     -0.97429037,       1.7845509,       2.2199143,      0.80307557,     -0.24458612,      0.39071128,      0.60991374,      -1.7924515,     -0.25207171,      0.71791378,      0.63617572,     -0.40971314,       1.1166237,      0.64451006,       0.6389473,      -0.5970643,       -1.157508,      -0.6257039,       1.0540321,      0.57327575,     -0.96392161,       2.5767349,      0.54676746,       1.4058702,      0.74302631,        1.003112,     0.038779919,      0.28091595,       1.0064341,      0.95029068,      -2.0250577,       1.4490362,      -1.0657367,      -1.7836852,      -0.8237341,     0.035050727,       1.3037213,       1.8313211,       2.2174903,     -0.27665118,      0.67483903,      0.53621483,      0.39005982,      -1.1140663,      0.79768184,     -0.48726142,       1.2551141,      0.78029785,        1.226102,     0.065123284,     -0.28634079,      0.41344469,     -0.45141568,       1.8267578,     -0.86346792,    -0.019631314,     -0.79130963,      0.61696294,      0.64644517,      -1.7728317,      0.67439484,       1.2649654,      0.79644805,      0.19237491,     -0.43304673,     -0.39514511,     0.091518579,      0.77627224,     -0.57664321,       1.7891317,      0.52854732,      0.42112799,     -0.20999202,      0.38949638,     -0.83196263,      0.46060194,     -0.19328499,       1.0220954,       1.1447589,     -0.84383581,     -0.22241805,      0.65270516,     -0.13147692,      0.81872679,     -0.41314553,      -1.6891715,       1.1117311,      0.46842533,       1.0051723,       0.4762258,      -2.5341991,       1.3985636,     -0.32667882,      -1.1177488,     -0.28740167,      0.44812786,      0.22451591,       1.6987014,      0.33754455,      -1.8533988,        1.148143,        1.228067,      0.50040873,      0.56322384,        1.763598,       1.8603519,     -0.49811912,      0.47207193,      0.70128447,      0.38525488,      0.44151539,      0.14558339,     -0.51722019,       -1.331821,     -0.98352687,     -0.88806585,      -1.1454562,      -2.7035217,       1.8331262,      -1.6172251,     0.023624665,      0.93934145,       1.3799806,       0.4572203,        2.048764,      -1.1303224,      -1.7329109,      0.28383153,      -0.8308305,      0.72247929,      0.12449797,      0.11709362,      -1.6035903,     -0.51141791,      0.10724324,      0.21933916,     -0.32058171,      0.67328139,     -0.55304551,     0.021945442,      0.52227808,     -0.34482965,     -0.59110228,      -0.6698955,     -0.06744288,       1.9654769,      -0.4076279,        1.529793,      0.70492888,      -1.1989125,      -1.2509394,      0.53621616,      0.92717386,      0.30422217,      0.37527163,      0.37963495,      -0.1379689,     -0.22165123,       -1.018622,      0.53305541,      -1.1790931,      0.71339496,    -0.056925754,       0.1910725,      -1.5578369,      0.25914288,      0.29730325,      -1.4668826,     -0.61184813,     -0.77516525,     0.051624675,      0.45371557,     -0.20161213,      0.50946463,    -0.022354814,     -0.79370569,     -0.51852799,        1.989775,      -1.0165262,      0.91663719,      0.42181777,      -1.2009375,    -0.077163271,      -1.0119849,      0.21488889,       1.1644284,      0.13912565,    -0.047618064,      0.44546043,     -0.67727993,      -1.3504401,       1.5834736,       1.3906432,      0.34974161,      0.80147327,      -1.2221196,       -1.004255,      0.92583716,    -0.017441096,       1.4094488,      -1.0048956,       1.1569633,     -0.45957698,     -0.83990658,      0.65100594,      0.24005031,       1.5943077,     -0.54360876,       1.1635946,     -0.44869605,     -0.83252992,      -0.9395994,     0.043038496,     -0.19719747,     -0.66059208,       1.9742435,      -1.8639254,      -1.2784395,      0.92631683,      0.78146534,      -1.5668391,     0.039085623,      0.53028416,       1.2443536,      0.63554806,     -0.73639761,       0.6944086,      0.61923846,     -0.59178966,     -0.47306265,      -1.0725066,      -2.2166846,       1.4177499,      0.38684553,     -0.60434683,      -1.5350261,     -0.77659587,       0.5470415,     -0.98363505,      -1.1147556,      0.93368658,       1.4175348,      -1.0031827,     -0.20474161,      -1.2569248,      -1.7240515,       1.5694346,       1.5594657,      0.10750512,     -0.21182948,     -0.88685805,       1.8572202,      0.48634288,      0.81367821,     0.072820756,      -1.1625688,     0.061028527,       -1.222577,     -0.88146098,       1.4520309,     0.052700646,       1.1261248,       2.3151477,     -0.43621431,       1.6840429,     -0.55746551,      0.14251252,      -2.5962403,       1.1228111,      -0.2155951,      0.53574727,       1.0202643,       1.2648838,       0.5330253,     -0.10460217,       1.1507577,       2.6584317,       1.3789462,      0.35733886,     -0.23029404,      0.42353037,      -1.6307649,      0.13649435,      -0.2284641,      -1.0151353,      -1.7305791,      -1.8922914,     -0.57274809,      0.43724147,       1.6077587,     -0.57908124,      -1.8269628,      -1.6714775,     -0.31577628,       0.4272958,     -0.69051205,      0.47372815,     -0.41695892,       1.7823344,      -1.1461937,      0.59235702,       1.0864529,      0.91989781,     -0.53170491,      0.04376206,      0.89436654,     -0.54186975,       1.7210882,      -2.1151939
+2023Y,      -1.2739215,      0.21568854,      0.33330068,      0.49705894,      -0.9268293,      -1.3389381,      0.62504429,     -0.50638969,     -0.55934233,      0.23558977,     -0.26611016,     -0.72833375,     -0.95293808,      -1.3069108,      0.69219107,      -0.1618308,     -0.13517423,     -0.65805338,     -0.26500943,    -0.042409294,       1.7371751,     -0.70936965,       0.5354198,      0.84536142,       1.4495396,     0.068338098,      0.84926211,      0.71862298,        1.423958,     -0.63926288,       0.3326609,      -1.5217893,       1.6261393,      0.63158501,      0.76116357,      0.41828179,      -2.3295195,       1.5312775,      0.81738431,      0.87164166,      0.18745259,      0.20523525,     -0.65588863,      -2.3909746,     -0.48386561,      -1.1354092,      0.31738062,     -0.59690257,       1.4798765,     -0.27873566,      -0.8507361,     0.063443938,        2.507272,      -1.1855273,     -0.94910685,     -0.45154488,      -0.7488661,       1.0537716,      -1.5627041,      -1.2966502,      0.10669772,      0.79373605,    0.0067280225,     -0.74903661,      0.65258299,      0.21141032,      0.91569346,       1.1664599,     -0.49542335,      -1.2458568,     -0.50867611,      0.46952517,       1.6497917,     -0.79056926,      0.16090397,       0.1258394,        1.274586,      -1.1913796,    -0.032964915,      -1.1942307,     -0.56131934,      -0.5923847,     -0.68494648,     -0.47719075,      -1.7124345,      -2.0794649,      0.52198142,       1.2427195,       1.1962308,      0.18209664,      0.05021257,     -0.99678637,      -1.0513692,     -0.38157685,      -1.4370819,      0.84559196,      0.38227936,     -0.68048759,       0.2677496,      0.82492221,      0.60398131,      -1.0078758,     0.035496018,      0.16332921,       0.9835154,      0.97465014,      0.82766608,      -1.2230017,     -0.60937236,       2.8656022,      0.91156921,      0.92026835,       1.1277328,     -0.33699152,      0.58048621,      0.42745626,      0.11217937,      0.34001235,      0.23158458,     -0.65724461,      -1.8685355,      -1.3138663,     -0.88744926,      -1.6422323,     -0.29711194,       1.9589259,      0.76647716,      -2.4577327,      -1.2204926,     0.053180465,     -0.68962031,       1.4655465,      -1.0784652,      -0.3489745,     0.063212473,      0.34635195,      0.63935022,    -0.019769879,     -0.33510203,      -0.1610621,     -0.29321773,      -1.9981326,      0.85237423,      0.75168255,      0.88547845,     -0.77954108,       1.2568525,      0.89257717,     -0.58011217,      -1.1905657,     -0.11727106,     -0.47207416,      0.73778286,      0.94792958,     -0.29956177,     -0.33822861,     -0.45857328,     -0.87713706,     -0.36547962,       0.1971882,        0.689914,       1.4119754,      0.98821838,      -1.7734263,     -0.81366308,        1.224511,      0.58771208,      0.17236323,     -0.93081783,      0.19924791,      0.14959393,      0.59217468,     -0.81587035,      0.81729624,      0.70166312,      -2.0096633,     -0.86025226,      0.68908704,     -0.13751926,      0.55325488,      -0.5260387,     0.049834544,     -0.78546159,        1.594466,      0.93433256,      0.72884809,    -0.064396351,      -1.4020079,       1.5540087,     -0.60089899,      0.40624218,       1.2471583,      -2.8575235,      0.90697125,    -0.062929312,      0.34120294,      0.88023016,      -2.3749023,      -1.3651395,     -0.80808476,     -0.87225622,       0.5738166,       1.6842472,      -1.6618212,      0.29022627,     -0.66513184,     -0.12332366,       0.7315122,       1.9919817,      0.26242711,       2.1469037,     -0.93668459,      -1.3868936,       1.3857378,     -0.74427246,       1.3311411,     0.043504846,      -1.0314187,     -0.23666864,       1.5202508,       0.5212708,       1.1291678,      -1.3805385,     -0.30831017,     -0.98389471,     -0.10104936,     -0.30470326,      0.88973456,       1.4244822,     -0.70734466,      0.31258577,      0.17792286,    -0.067919115,      0.19129366,       1.1662063,       1.0089002,      0.21016159,     -0.99013895,        1.088691,      0.32275801,      -1.1762788,       1.5396499,     -0.93279039,      0.86374108,    -0.057277924,     -0.67803102,     -0.51217347,       2.0906265,      0.73483204,      0.86298612,      -1.0874409,       1.0619398,     -0.32036913,      0.85148837,      -1.9591164,    -0.030630949,      -1.0094803,      0.31409522,     -0.15777225,      0.39299761,       1.4255901,      -1.1749394,      0.29081404,       1.3320841,      -1.2133676,     -0.36790863,      0.27531402,      0.73783038,      0.37956939,      0.85617892,      -0.7968484,       1.9238855,     -0.39405885,     0.038064061,      0.40937165,     -0.89031816,      0.44262499,      0.60875527,      0.30099976,     -0.21618951,       1.3971288,     -0.63595184,     -0.70270274,   -0.0080266225,      -1.2364631,      0.27781317,       1.3340245,      0.46551051,      0.33306597,     -0.34409041,      -1.4660822,      0.38907428,      0.68171945,      0.74818252,     -0.66872429,      -1.0188088,    -0.068427401,     -0.30483059,      -1.8377118,    -0.067970653,      -1.3495443,     0.064057806,      -1.2530984,      0.32430331,       -2.495044,     -0.15520369,       1.1140906,     -0.27311908,       -1.207322,        1.876904,      -1.7701432,    -0.035932077,      0.76933118,     -0.57180461,      0.51886465,     -0.05514117,       -2.589901,      -1.0062988,      0.56716662,      -1.4753576,       1.3229676,      0.53700018,     0.038760135,      0.75142863,     -0.76594074,     -0.87997605,       1.2774847,     -0.67206442,     -0.34691203,      -1.3807639,      0.18471854,     -0.61571247,     -0.56923321,     0.096454609,     -0.89642519,      0.60983442,       1.6703585,     -0.21312867,    -0.059623525,     -0.46216069,       1.2052566,     -0.74855631,    -0.064018547,     -0.30368422,    -0.010859734,     -0.90641728,      -1.2256469,      0.78449908,      0.23636341,     0.042201819,       -0.110104,     -0.32460949,      -0.9253664,     -0.34528752,     -0.33970867,     -0.31645097,     -0.68855722,     -0.82430548,      0.18378705,       0.8182036,     -0.22527999,      0.51173982,       0.1403946,    -0.067179046,      0.89278759,      0.53465225,       2.2431759,      0.61442524,     -0.22124625,      0.97260393,      0.19521698,       1.9573408,      -1.0465679,    -0.019004799,      -1.1896104,      -1.1666835,     -0.32619528,      0.66381018,      0.59475885,      -0.6794782,      0.78223068,      0.14307673,      0.46611579,     -0.48948521,      -1.0429716,     -0.12670361,     -0.38590746,      -1.6081401,      0.11328848,      -1.3216274,     -0.44830218,      -1.1131072,       1.8703268,      -0.4322379,      0.98938329,      -1.2387009,      -2.1296432,     -0.61821227,     -0.50154762,    -0.021067812,      0.16961217,     -0.11033755,      0.55512754,      0.46950627,     -0.90857978,     -0.39026345,       -1.110047,     -0.88044467,      0.20102069,      -1.4642339,       1.6091347,    -0.077904322,      -2.3832326,     -0.92423321,       1.2907169,     -0.25866879,      0.40816524,      0.14862112,     -0.87481011,      0.78752683,     -0.74940779,       1.5151195,       1.5115806,     -0.98673892,      0.12868939,       1.3425587,     -0.70078127,      0.58865404,      0.62666166,       1.0848864,     -0.87854419,      -1.2138245,       1.7925877,     0.057985484,     -0.90371179,      -0.4723149,     -0.35710529,     -0.84646659,     -0.95026406,       1.1333986,      -2.9109594,      0.24434994,      0.26318535,       1.6965896,       1.5935683,     -0.91937711,     -0.57980574,       -0.299566,      0.09639596,      0.67494266,      0.33568308,     -0.84477719,     -0.97928915,      0.30346934,      0.10782233,     -0.98461967,     -0.94370896,      0.37995675,       1.0351069,     -0.23163613,       0.4235396,       1.1281185,      0.38428571,      0.82636354,     -0.13044428,      0.19492225,      0.96004742,      0.77476647,    -0.043583268,      0.52988337,     -0.96839208,      0.68028652,       1.3794917,     -0.04819321,      0.16946216,      -2.4660834,      -1.7400954,     0.038545493,      -0.3620804,      0.24511744,     -0.54082682,      0.56437391,     -0.56022246,     -0.52860687,       1.5683797,      0.15926972,      -1.1888812,    -0.035292669,      -0.4475075,        1.199947,     -0.73153138,     -0.97442062,      -1.0794679,      -1.1146333,      -0.1144429,     -0.64248904,      0.73749257,      -1.9080233,       2.1896333,      -1.8629186,       1.0909758,       1.4409628,     -0.12575774,     -0.46046926,      -1.3489567,       1.2014201,     0.018192154,       -1.189472,       0.6798662,       -1.001393,     -0.87751611,      0.78521457,       -1.263174,     -0.30642823,     -0.83129295,       1.2223348,     -0.20272814,      0.51805298,      0.36927783,      0.65892162,      -3.1074514,      -0.1907953,     -0.11970248,      -0.3891651,     -0.62077815,      -1.6832919,      0.65792023,     0.058243472,    0.0077526988,       1.6375001,        -1.83552,     -0.95873301,      0.38160383,     -0.21620732,      -1.4723466,     -0.55328727,       1.4518996,     -0.94902303,     -0.15608012,      -2.1049053,     -0.95607176,     -0.52609175,       1.5802672,        1.456462,     -0.11717806,      -1.8757412,      0.44105779,     -0.31386647,       1.2707067,       1.7434058,       1.1850752,      0.69787462,      0.63987482,      0.52650733,     -0.17309412,      0.75819941,     -0.29891176,      0.63309392,      -1.4293453,      0.70618098,      -0.4195911,        1.229842,       1.6432528,     -0.80616124,     -0.48394659,      -1.7954527,      -1.6878921,     -0.89401672,     -0.88734872,     -0.14592317,     -0.69298692,      0.51272736,    -0.009335442,      0.20166403,      -1.4252701,      0.53791599,       0.3844477,      -0.5972211,     -0.53042546,      0.39413641,     -0.19261436,       0.2402391,      0.94787591,      -1.0923562,      -0.1299624,     -0.89032529,      0.78648594,      -2.0946675,     -0.13820913,      0.52161513,      0.18010894,     -0.64546405,     -0.72937707,      0.27313374,      0.56500802,     -0.43205417,      0.64871773,      0.52057908,      0.11235449,     -0.57835192,      -0.9701958,       0.1903474,      0.76878168,     -0.21026065,     -0.10649579,      -2.0195531,     -0.89964745,      -0.2871121,      0.81466788,      -0.5446332,     -0.26728629,      0.15699295,      0.21975883,      0.79268802,       1.1258371,       1.2902874,       1.2268479,       1.7537515,      0.20731214,     -0.13210889,      -2.1538749,      -1.0574726,      -1.0462411,      0.66762069,      0.93927432,      0.48784643,     -0.30454192,      -1.2282193,     -0.16786293,       0.7871682,      0.60139568,      0.19709081,     0.080260712,      0.20529004,       1.3652561,       1.7371681,      0.60563464,      -0.7733198,       0.4279771,       0.2043767,      -1.3913298,     -0.19222542,       -0.868674,       1.1568791,     -0.75091391,       1.0587328,     0.090434178,       1.6608595,     -0.21532193,     -0.73884812,      0.21055098,     -0.83264367,      0.61308578,      0.16735251,      -1.7351841,    -0.062752384,       0.8445255,      0.90448752,     -0.57936324,     -0.41599692,     -0.18680874,       0.2429453,     -0.55158821,      0.89755984,      -1.1535117,       1.2270529,     -0.64828804,     -0.26029658,       1.2453426,     0.025331905,      -1.2478321,      0.13958845,      0.88463917,       2.0153037,      0.35517372,      -1.0000929,     -0.82647578,      0.45299385,  -0.00072502757,      0.95246589,       1.1519108,       1.2972174,      -1.5149751,      -1.1346698,      -1.7355381,      -3.2329368,      0.65305688,       1.1639333,      0.34874454,     -0.51584521,      0.74966491,     -0.20226581,     -0.57034759,      0.23845365,      0.66667359,     -0.85083914,      0.25815249,      -1.0768768,      -2.0785558,     -0.19136019,        1.625363,     -0.13735437,     -0.93146715,       1.0559966,     0.032817763,     -0.67931191,      -1.3275077,      0.37475787,     -0.16733337,       1.8189062,       1.7817163,      0.50601491,     -0.75540289,     -0.52207742,      0.38795019,     -0.55700073,      0.16221333,       0.1773165,       0.6188483,     -0.64764831,      -1.0743887,       -1.221145,     -0.28140158,       2.4535817,      -1.1291478,      0.47239558,       1.5026939,       1.4803419,     -0.22238151,       0.5276867,       1.9437545,     -0.66250159,      -1.0011706,     -0.69394785,      0.88228557,    -0.066266699,      0.22627292,      -1.0637791,     -0.70851742,     -0.31756334,     0.043837099,      -0.4744522,       2.0757997,      0.27547637,      -0.4706375,       0.1849507,      0.68075708,      0.45918778,      -1.0830157,      -1.4302646,     -0.63905229,      -1.7138951,     0.029194052,     -0.26248856,      -1.0623097,     -0.93061614,      0.56029455,       0.2112256,     -0.16574954,     -0.76547167,      0.42716695,    -0.035300883,     -0.50390695,       1.5922195,     -0.46650482,       1.1746741,      -2.1420249,      -0.2477735,      0.15850659,     -0.20817457,       1.1439504,     -0.50219213,   -0.0035122251,       1.8950228,      0.42662759,     -0.77490214,     -0.54060363,      -1.1818103,     -0.92064327,      0.79644626,      0.97621591,     0.015165971,      -1.6394379,     -0.83085519,      -0.1402448,    -0.085080629,     -0.50752952,     -0.83713937,     -0.35128997,     -0.41227705,     -0.20990021,       1.1178046,      0.64459125,      -1.1774319,      0.39253978,       0.9478408,       1.4828337,       0.8326744,      0.43741682,     -0.60581968,     -0.28495923,     -0.42681957,     -0.94206774,     -0.65463397,      -2.2990907,     -0.10102905,     -0.63311161,     -0.76244523,        1.057395,       1.6701886,    -0.062544015,        1.442286,    -0.088812869,      0.20055939,      0.36464929,      -0.2612372,     -0.47059687,     -0.52778127,     -0.14864353,    -0.094520268,      -2.2809118,      0.83016077,      0.20137276,      0.18889725,     -0.19402592,      -0.4919089,    -0.016700381,      0.66118781,       1.0765636,    -0.088019155,      0.09901292,      -1.5030396,      -2.1480655,        0.630775,     -0.90845575,      0.69162865,       -1.058268,      0.47038807,      0.18480873,      0.19949289,     -0.33358454,       1.3827525,     -0.94095541,       -1.434337,      0.47125329,     -0.53639122,   -0.0074927067,    -0.098786117,     -0.83016744,      0.44741461,     -0.15745975,      0.54110334,     -0.78205809,     -0.81125032,    -0.076733722,      -1.0933695,     -0.80796158,      0.69513237,       1.4888626,       2.0511063,     0.002707844,      0.22914079,     -0.63675474,     -0.90375704,      0.31343896,       1.0091818,      0.31181847,       2.0931656,     0.078356255,     -0.24028928,     -0.27799408,     -0.70444673,       1.8113289,      -1.3309126,     -0.86597352,       1.7295237,    -0.085532836,      0.88679913,      -2.4271014,       1.2080439,       0.8567546,      -0.4355989,     -0.27773649,      -0.3249122,     0.051765639,     -0.49937205,       2.0963367,     -0.67064816,       1.1313956,       1.1559816,      -1.2021986,       -1.279185,     -0.29481687,      -1.4888188,       2.5322545,       1.4492362,     -0.20689803,     -0.89883602,     -0.35895044,       0.3661277,     -0.47555666,      0.63179122,       1.1544306,      0.42484625,       -1.077956,       1.4007922,     -0.20026736,      0.37499329,      0.40216561,      -1.1619724,      -1.1196597,      0.93467038,      0.52220246,        1.612339,      -1.2114223,      -1.2601492,      0.10226364,      0.46632354,       1.0827471,      0.88406604,     -0.45689572,      -0.5102412,      -1.2176987,     -0.80792616,       1.2252122,      -1.3667477,     0.076099611,      0.38991565,      0.55825572,     -0.11702663,     0.085274061,     -0.71860046,      0.20538362,      0.88996027,       1.1794612,     -0.64820129,      -1.0582092,     -0.22477149,      -0.8218809,      0.49012245,     -0.13307314,      0.18072635,     -0.21871514,     -0.68021799,      0.93872967,      0.61968953,     -0.54951519,       0.2716935,      -1.0465183,       1.1111844,      0.67030834,     -0.75894538,     0.088230808,      0.14755663,       2.2152186,      -0.1547054,      -1.1563604,      -1.3769388,     -0.92499996,      -1.9099205,     -0.66858066,      0.73900487,     -0.41798405,      0.41785786,     -0.88050744,     -0.33359729,      -0.1231175,      -1.5839107,       2.2246572,       -2.538295,     -0.65189526,       2.3147106,       1.0271553,    -0.041204208,       1.7181163,      0.14397247,       1.1796074,     -0.28524108,     -0.68491411,      0.51102486,    -0.097482622,      0.65238818,     -0.13874634,      0.02223867,     -0.60478627,      -1.0092304,    -0.062759243,      -0.2234229,      -0.4142745,      0.85022604,      0.23054728,     -0.29273768,     -0.55901119,      -1.0007861,      0.52257518,      0.12606584,      -1.1514468,      -0.2265895,     -0.59816377,     0.055097078,     -0.44590507,     -0.33116628,    -0.094975395,      -1.6546214,      -1.4735147,     -0.39274662,      0.64187522,     -0.26904274,     -0.36194517,       2.1887202,      -0.8305973,      -2.0401098,     -0.66380583,       1.1522787,       0.3309453,      0.61372357,      -1.4779646,      0.80239407,      0.45814991,       1.5183991,     -0.17789485,     -0.68159684,       0.1696242,   -0.0010868426,     0.012322222,      0.65745049,       -1.040425,       0.4757409,      0.58382987,      -0.7166726,       0.1108197,       1.0879096,     -0.74914213,     -0.25656143,     -0.30793524,      0.99522489,     -0.84445687,      0.10147281,       1.9222717,      0.79342524,     -0.22502855,     -0.41247879,       0.6479098,     -0.76671133,      0.55969039,      0.32320073,     -0.36647943,     -0.58476661,      0.12701144,       0.6940198,       1.2765473,      -2.3631559,     -0.18112333,      -1.9225395,      0.75108131,      -2.5679117,     -0.94563443,      0.90766011,      -2.1179253,      0.98383251,        1.229352,     0.015076479,     -0.26974553,       1.2981882,     0.094554092,       1.4989762,      0.32568455,       0.3435247,     -0.12729587,    -0.069712679,       1.2915617,     -0.39885417,     -0.91444844,       1.2688735,      0.88197861,     -0.37727101,    -0.063337056,      0.66382555,     -0.43086694,    0.0056954494,      -1.4924019,     -0.23670435,      -1.2349894,     0.081718022,      -1.9279401,       0.5091901,      0.23005109,      0.67189435,     -0.49806506,       1.0419315,     -0.61028683,      0.74488492,     -0.68452694,      -1.1475032,     -0.99218231,     -0.44058441,     -0.76211053,     -0.13118088,     -0.15479864,       1.8377999,       1.9200567,       1.2899351,      0.94842054,     -0.94362394,       1.9431329,      -1.8893177,        2.461635,      0.58770309,     -0.34566946,      -1.1399571,    -0.071410401,      0.75007927,     -0.96297942,       -2.002481,     -0.60087108,      -1.4674646,     -0.15367262,       1.0953809,      -1.3129472,     -0.74011055,     -0.19591151,       0.4276294,       1.5153269,      0.19078119,      0.76668323,      0.62158622,      0.84655938,     -0.22729056,       1.3711326,     -0.38427635,      0.30396732,     0.069219834,      -0.5274411,      -1.6462756,     -0.94761686,       1.5225773,       1.3767443,     -0.89212228,      0.18584779,     -0.63329308,      0.22368385,     -0.77172347,     -0.57992722,        1.012983,      -2.2094023,      -2.0088977,    -0.052593319,     -0.65105764,      0.40871655,      0.45817345,       1.1831342,       1.4058136,      -1.9605393,      0.31748895,      0.18574812,      0.95949207,     -0.56607889,       1.2630462,      0.48685412,      0.51668196,     -0.12075703,       1.1725748,     -0.76194428,      -1.1617706,     -0.16330266,      0.77224861,     -0.22032316,     -0.58453892,        1.117615,       2.7025444,     -0.37896243,      -1.2835484,     -0.94342191,    -0.082863139,      0.22239076,     -0.37080447,       0.2242852,       1.4368839,       1.3243538,      0.26460834,       1.7312766,       -1.717218,       1.6819074,     -0.67350751,       1.0704944,     -0.10055629,      0.31467023,      0.78154274,      -1.2681574,      0.06617629,       1.0060758,       1.3746382,      -0.7715745,     -0.95792561,      0.42376453,       1.3066894,      -0.3145468,      -1.2333876,     -0.22158974,     -0.86384078,       0.8616305,    -0.022168574,      0.65908033,      0.89902633,    -0.021688117,    -0.094261903,       1.2076117,      0.40983587,      -1.3556163,      0.85682596,     0.016636181,      -1.0855337,      -1.8126288,      0.87174025,      -1.7245955,     -0.26101568,     -0.36402714,      0.19830889,      -1.2850945,       1.2960849,     -0.13532086,       1.5254701,       1.4640556,     -0.69990748,        1.440487,      0.39595409,      0.18794228,      -2.7359261,      0.37864132,     -0.27454962,     0.067807055,     -0.75477754,      0.54706808,      0.36883133,      -1.2933184,     -0.20994897,     -0.01862699,     -0.17327623,     -0.27318919,     0.051917792,      0.39874254,      0.61821281,     -0.77168843,     0.052321647,       1.3162862,      -1.3975426,     -0.13119878,      0.91911155,       1.4972526,     -0.46431151,       2.8128093,      -1.7290282,      0.15084959,       -1.291356,       1.8117381,      -1.6466354,     -0.76749425,      -1.4869135,     -0.30736286,      0.96225395,       1.4711402,      -1.0357043,      -1.3872689,      0.85544994,     -0.72110812,      0.42149967,     -0.20431825,     -0.71500665,     -0.24670375,      0.64224383,     -0.25639433,      0.66516067,      0.43730933,      0.31398525,     -0.33730449,      0.80757863,      0.22585908,     0.083784914,       -1.152136,     -0.78580458,      0.37575468,      -1.4826992,       1.0735108,     -0.14747612,        1.178411,      -0.5864937,     -0.68601699,       0.3969246,     0.080953929,      0.58903673,      0.39994701,      0.16072995,       1.5163319,     -0.36891894,      -1.3460235,     0.081229807,     -0.56996941,     -0.57254187,     -0.57273858,      0.74903763,      -2.0963683,      0.97161667,     -0.49720925,      0.48579129,      -2.3622144,     0.031947704,      -2.5562551,     -0.90490114,      -1.3181711,      -2.1732911,      -1.4223531,     -0.26259381,     -0.43665421,    -0.013688376,      0.21144922,     -0.31695304,     -0.77134074,      -1.8570372,     -0.98777216,     -0.43586781,     -0.47991719,      -3.1474291,     -0.11107974,    -0.021119163,    -0.023757218,       0.5051415,    -0.012524006,      0.15380294,       -1.109273,     -0.51027503,     -0.33129925,       0.5650998,       1.5262658,      0.18618016,     -0.58860428,     -0.58729779,      0.37697917,      0.69628021,    -0.026180297,    -0.042889171,      0.14824461,       -1.647081,     -0.33549607,     -0.76177323,     -0.12728894,     -0.91692895,      0.81693938,     -0.84048489,     -0.35897441,      0.68751318,        1.025899,      -1.0639668,      0.38296982,      -1.2370854,      -1.3005528,       1.3599637,        1.454796,     -0.19241439,      -1.3351715,   -0.0053690727,       1.7632933,     0.080599557,     -0.20261836,      0.58550985,     -0.79620948,     -0.46984039,      -1.7026268,     -0.58321493,     -0.58349662,     -0.17096662,       2.2545604,     -0.70436943,      0.29827501,     -0.35699099,     0.084978004,      0.33952226,    -0.099020438,      0.97694723,     -0.90178463,      0.56389896,    -0.019453595,     -0.42212697,      -0.5585337,       1.4975184,      -1.5912574,      -1.2045313,      -1.1875133,       1.1750432,      -1.1353746,       1.7888337,      0.86687269,       0.2596508,     -0.60005883,      0.51409627,     -0.10857096,      0.04981864,     -0.14874458,      0.63687472,       1.1315638,     -0.80264039,      0.83192247,      0.94618392,       1.2914176,     -0.58157299,     -0.54710136,     0.065255053,       -1.474215,     -0.43442428,     0.031197512,     -0.99883004,     -0.94641296,      0.13952335,      0.51492447,      -1.2940212,       1.9458319,      -1.1247048,      -1.8928097,       1.2608566,       1.1534965,     -0.61536897,       1.4637941,     -0.11079873,      0.36010732,      -2.0371281,       1.4380416,     -0.87050462,     -0.96365876,      0.24237847,     -0.90478999,     -0.23319846,     0.062773111,     -0.24008769,    0.0058030755,       2.1233774,     -0.24476523,      0.64286271,      -1.5921599,     -0.87942722,      0.48668899,     -0.24296634,       1.6601388,     0.094996352
+2024Y,     -0.16955414,      -1.0788081,      0.11505729,      -1.3271928,       1.4207798,     -0.74113483,     -0.22883948,      0.11551299,       1.9205369,      0.24762979,      -1.4139746,      -1.1870748,     -0.55789436,      0.77424579,      -1.4010897,     -0.49857478,      -0.4110606,      0.20224103,     -0.55892233,     -0.94599046,     -0.79111846,      0.56382356,      0.17293745,       1.5705422,      -0.7017133,      0.14157241,     -0.71021633,      0.96799939,     0.020300396,       1.3004208,     -0.75792312,       2.5497118,      -0.2125213,     -0.20806398,      0.30501188,      -1.2838574,       2.0020871,      -1.0925792,      -1.0494869,     -0.19715598,      0.33652579,     -0.16848972,     -0.57261572,       1.3656563,     -0.42335669,     -0.73742975,       0.6064414,       1.1917834,     -0.14913802,       1.3833209,     -0.17401835,      0.87000046,      0.46683845,      -1.3629432,      0.11652972,       1.3368916,     -0.55468645,      0.76852602,      0.74171426,     -0.41566648,       1.0085722,     -0.93860046,       1.3549574,     -0.47967206,      -0.8718697,      -1.0785001,      0.47085147,       1.0698728,     -0.75249221,      -1.5067005,        1.075356,     -0.55966972,     -0.15664872,     -0.98373726,     -0.30627477,     -0.55414028,      0.71025166,      0.13737692,       1.1387794,     -0.91950097,      -1.1365967,      -1.3152728,        1.627073,       1.5522674,      0.93320628,      -1.5134527,     -0.29393247,       1.4299299,       1.1742474,     -0.82956276,      0.72631146,     -0.75976762,     -0.50542188,       1.1063427,     -0.60191004,     -0.32308326,     -0.54498691,     -0.95456187,    -0.065414191,      0.77337732,       -1.771151,     -0.83282637,       1.2553611,       2.6748067,      0.21071383,     -0.33697213,      0.95510112,      0.45958911,     -0.56854718,      -1.0262447,      -0.9578158,       3.3398285,     -0.42818018,     -0.34581906,      0.95980601,      -1.0296101,     -0.89623534,       2.0996269,       1.4569904,    -0.018753643,     -0.59413125,    -0.071074884,     -0.84776265,     -0.23862995,       2.2328934,      0.13019207,      0.28177496,      -1.6439807,     -0.93908218,     -0.26303349,     -0.64163998,      -0.2685924,       0.9802003,      0.81642875,     -0.92099653,      0.88142012,      0.68110851,      -2.2382595,      -0.2573004,      0.40230466,       1.5334364,       1.7295825,       0.4297567,     -0.57406922,      0.62084674,      0.77959595,      0.15949731,       1.8237299,       0.4767523,      0.24120369,      0.78847944,       1.1018087,     -0.15814961,       1.6757716,   -0.0028061916,     -0.55416076,       1.7803452,     0.016799956,       1.4105568,      0.63793892,       2.6525789,       0.3160772,      0.47407173,     -0.56663892,       1.0720277,     -0.32761807,     -0.32312629,     -0.93995005,     -0.69120279,     -0.89493224,     -0.58395273,     -0.48266225,       -1.102358,      0.69450069,        -1.12858,      -1.4315603,       1.7076492,       1.7364054,       1.6159036,     0.087739654,       0.6253942,     -0.55681889,      -1.3480787,       1.2534427,       1.3101315,     -0.64427898,       1.4189229,      0.10275794,     -0.87589945,     -0.54226142,        1.488144,       1.1179835,      -2.1724026,       1.0136291,     -0.81896246,      0.99920058,       1.7962092,      -1.2024586,     -0.64202431,      -2.0400976,       -0.165067,      -1.0593994,      -1.0082513,        1.394604,      0.36758211,      -1.0655501,       -0.418761,      0.17023738,        1.443749,        1.326309,    -0.038785563,      0.47806172,     -0.13586711,      0.62806986,         1.08836,       1.5218214,       1.1706673,      0.59280144,      0.31095174,       1.9867123,      0.50049667,       0.8300884,        1.584152,      -1.2288003,     0.045689427,      0.97214753,    -0.057686773,      0.22873925,     -0.39256123,      -0.2407556,     -0.47355744,      0.87300447,      -1.2185321,       1.2371062,      0.64036279,       1.1710047,      -1.0648416,     -0.83774802,      0.85294976,     -0.48358149,      -0.6352163,     0.091148078,       2.1619816,     -0.72465004,      0.11212983,     -0.82319239,      -1.2087601,     -0.66555752,       1.0640992,      -0.4446442,     -0.23856693,      0.75412572,       0.7415206,      -1.6620728,      0.77372424,     -0.72922618,       -1.575334,      0.60507897,       0.5042158,       0.3222701,      0.74278355,      0.51064912,       1.6091348,      -2.4269006,      -1.8754243,      0.33885152,    -0.040175369,      0.51514436,      0.39207144,      -1.3007333,    -0.044512861,     -0.81507359,       1.4667652,      -2.2470673,     -0.22261314,      0.12718825,     -0.19969179,       1.5275264,      0.30920122,     -0.71876937,       0.7131263,     -0.75023108,     -0.46476598,    -0.080764881,      -1.3987493,      0.60145679,      -2.6521822,       1.1794726,       0.7010916,      0.49959535,     -0.97034254,       -2.781245,      0.30515823,      0.81099088,      0.70847924,       1.3193589,      -1.4119751,      0.45051824,     -0.30066395,      0.18982044,      0.28655821,      -0.7750449,     -0.10505902,     -0.17863351,     -0.43864383,       1.6768293,      -0.3565231,      0.71724121,      -1.1532644,       1.3047442,     -0.34821313,      0.64286407,     -0.19813338,      0.77112787,       1.0823522,      -1.8012707,      -1.0252973,     -0.87840017,     0.073810887,      -2.0270329,      0.12960798,       0.1419555,         1.31751,     -0.69660296,     -0.17870579,     -0.10396274,     -0.88320279,         1.29899,       1.2198755,     0.052988584,     -0.79313728,       3.1248682,     0.031476577,       1.2639241,      0.13845713,       2.0600564,     -0.10145011,      0.59606439,     -0.22869325,      0.36002432,       1.4027457,     -0.56784668,      0.46368099,      0.33985847,      0.12683761,      0.54706482,      0.14110803,     -0.26685326,     -0.17016133,       1.1381335,      0.29906018,      -1.3360685,     -0.48600753,     -0.59472098,    -0.048827334,     -0.84219189,      -1.0659914,      0.73267094,      -0.9480067,      0.11421843,     -0.62390805,      0.35116748,      0.31612297,      -1.3780089,      0.61118478,       -1.333143,       -0.333193,     -0.53778339,       1.1725952,      0.42722923,      0.62157159,      0.81886428,       1.3486217,     -0.77916957,     -0.28926938,      -1.3728112,     -0.45629514,     -0.61292172,     -0.37437405,       1.1465617,     -0.50483044,     0.057916929,     -0.75813489,      0.11275856,      0.41251801,        1.279746,      0.40559567,       0.2732654,       1.0687633,       1.9460647,     -0.59970852,        0.611527,     -0.39237954,      0.81251325,       1.9797008,      -2.0835357,      0.93761144,     -0.92168044,      0.92554798,      0.21753952,     0.014317906,       1.2117789,      0.49350675,     -0.90834336,      0.33644572,     -0.55498593,     -0.36528073,       1.3337737,       -2.340269,      0.58808704,      0.17077281,      0.71463706,      -0.4920937,      0.26568405,       1.0876778,     -0.21039196,    -0.061513681,      -1.3484809,      0.22035847,      0.22422486,      0.98809431,      0.55398338,       1.4181424,      0.37964854,       0.3404153,       1.4300779,      -2.7043585,     -0.48260033,         1.00541,      0.55205006,       1.2398731,      -1.3751301,      0.33974116,      0.32070909,     -0.86184118,      0.39028377,    -0.070227496,     -0.29054329,      0.21336209,       0.6691574,    -0.040923116,      -0.9976774,     -0.28385089,      0.67015965,       1.4040753,     -0.65222973,      -1.7391342,      0.75646276,       0.8632053,      0.16504241,     -0.60776744,       1.0599577,      -0.6546171,     -0.61234537,       -1.714622,      0.59806331,     -0.90869431,     -0.47556587,      -1.1926097,       1.2137475,     -0.74361016,        0.802239,     -0.33848901,     -0.23124548,     -0.33158744,       1.0609246,      0.44526022,     -0.70566013,      -1.5178315,      0.40887032,      0.50520427,      -0.1465564,     -0.72267899,       1.0629006,      0.27098441,     -0.20794741,      0.54293074,     -0.65575794,      0.15514714,     -0.94766423,       1.4128898,       2.5846978,      0.52339613,       1.3613469,      0.84656321,      -2.4970874,     -0.40423411,      0.66440957,       2.8843549,      0.75112261,     -0.69603882,     -0.29204527,     -0.59343446,      -1.6325005,       1.2696622,     -0.27883256,     -0.79792583,       0.6390029,      0.30102845,      -2.8392052,      0.63039434,      -1.0368505,       1.7519596,     -0.51774214,      -1.2441145,      -1.8617946,      0.84122091,       1.6347615,       1.1261675,      -3.0164171,       1.5302254,    -0.062263091,       2.0549267,     0.016946836,    -0.026679253,        1.278627,     -0.91684004,       1.2943892,       2.0272353,       0.5863138,     -0.35786161,      -1.2041428,       0.9241484,     -0.41143546,     -0.89286743,      0.78796488,     -0.20017967,      0.21874115,       1.8396918,     -0.28623621,     -0.47647143,       0.2010889,     -0.57598782,       1.1746156,      -1.0258595,      -1.6066927,      0.52065731,     -0.41153819,      0.78542407,      -1.7721584,       -0.258695,      0.62103857,      0.22219202,      0.96302416,     0.010045821,       -0.288193,      0.57054518,       0.2864497,     -0.68240896,     -0.38140205,       0.5800397,     -0.66300787,     -0.35920736,     -0.90141432,     -0.97306038,     -0.22073299,      0.53086022,      -1.7692895,      0.60052349,      -0.7502938,      0.18292998,      -0.5989973,     -0.56919689,        1.469367,      0.48773133,      -0.1110046,       1.3760969,     0.090207098,      0.72249168,     -0.55861121,      0.12042171,       1.2235098,      -2.1384001,        1.791586,       1.0687887,     -0.60839194,      0.93817476,      -0.8797292,     -0.62779976,      0.65946099,     0.073178566,      -1.1800768,    -0.082280623,      0.12040127,      0.25239598,    -0.013118084,       1.3116386,     -0.14447375,       1.6576589,      0.31605113,     -0.38477001,      0.32509136,      0.38200198,       1.0847967,      -1.1435779,     -0.46158348,     -0.56255534,    -0.099410669,      -0.8142847,     -0.27079226,      -1.1427558,       1.7027486,     -0.63328487,     -0.43572797,     -0.14083614,      0.25518046,      -2.3107723,      0.36024547,        -1.25395,    -0.031627248,       1.0063887,      -0.2916712,      0.50240357,      -2.4598398,      0.92903435,      0.52687633,     -0.31458164,      0.22266637,      0.67447272,      0.24163479,     -0.86815517,      0.11782294,      0.20619708,       1.2776694,     -0.86155496,       1.3963426,      -0.2527015,     -0.41396929,       0.1394241,      -1.5959681,      0.35326911,     -0.51723684,      0.11676926,       1.1336077,      -2.1276489,      -1.1698908,      0.83598176,      0.20279998,      0.26038417,      0.10204319,      0.68637329,      0.47616073,       2.1632449,      0.50492699,      -1.1599975,       1.3926654,      0.15876771,      0.83489008,      0.64463839,      0.23863765,      -0.9185276,      -1.0588131,       1.2753427,      0.31235964,      0.31491009,     -0.68242366,       1.5252269,     -0.13285341,      -0.7934949,       1.8671669,     -0.21367326,       0.1107739,      -1.0720785,     -0.21270029,      0.87303221,      0.13724098,      -1.2464807,      -1.6247321,      0.26275215,     -0.05308577,     -0.79885871,     -0.06003177,      0.18800274,      0.65664965,       1.1957536,      0.65288686,      0.27052454,     -0.96366461,       1.7826874,      -1.3466336,     -0.78612275,     -0.35285927,      0.85664184,     -0.68431897,      0.17217626,      0.52754156,     -0.20204081,     -0.18845512,    -0.081425345,     -0.81980753,     -0.12485539,        1.215242,      0.98931299,      -1.6301614,    -0.029402647,      0.32629029,      0.72040174,      0.44260214,       1.3052254,      0.67903858,      -1.5674903,       -0.225604,      0.14130937,      0.13852116,     -0.15017669,     -0.19088887,     -0.72550667,    -0.045440851,      0.23623325,      -0.1364153,      0.50340452,      0.62436736,     -0.58353474,      0.24924334,      0.60807699,    -0.091853366,       1.0187455,       0.2399869,        1.472679,      -2.0558233,      0.17946548,     -0.32524072,     -0.66656003,     -0.20778035,     -0.52836721,       1.4045136,     -0.62801816,      0.11204236,    -0.053371914,      0.98172567,       1.6538492,       3.3437618,     -0.66209725,      0.57484789,      -1.5893625,      0.77902243,       2.0243323,     -0.19083085,      -1.8506343,     -0.53386188,      0.66933194,      0.73713407,     -0.63343376,     -0.97840776,     -0.73728777,      0.79619608,      -2.4940552,      -1.2786425,     -0.51586816,   -0.0017125519,       -1.603058,     -0.40236481,       1.3340459,       0.8055337,      -1.5125645,      0.12137144,      0.66022976,     -0.20453871,     -0.28224073,      0.64958601,     -0.01687067,     -0.29416321,      0.56592771,     -0.70703406,     -0.56591709,    -0.036420395,      0.95542224,      0.18248046,      0.51577135,      -1.9961941,     -0.32760988,       0.4166922,      0.49346822,     -0.29043172,      0.19903518,      0.29878628,     0.066606115,       1.2960255,      0.77514732,     -0.46740662,     -0.16453311,     -0.92846178,     -0.10374228,     -0.22854044,     -0.12709396,      -1.3027571,       1.3135377,     -0.28841145,      0.37806467,     -0.49773501,       1.1823798,     -0.89686956,      0.15758439,      0.61633085,      0.72395911,     -0.64376329,     -0.56728236,     -0.50528565,     -0.17246158,    -0.022319776,        1.053195,     -0.37748983,      0.40413461,        -0.45509,      0.28031396,      0.42622626,      0.83433947,     0.038392122,      0.48608161,        1.464924,      0.29476575,       2.0878241,     -0.59502515,     -0.92333753,      -0.7811158,    -0.035140008,     -0.90083844,       1.6904334,     0.037137208,     -0.20929884,     -0.25612685,       1.3961225,     -0.01816655,       1.0348241,     -0.42796251,     -0.11531355,    -0.036415448,     -0.60902878,     -0.10033803,     -0.91103641,      0.29258576,     -0.32490845,      0.86979413,       1.3516355,        1.102482,      0.12645523,      0.11868414,       0.7206851,      0.24090017,   -0.0020965539,      0.69523241,       1.1811941,     -0.55501782,     -0.54473547,      0.57451228,      -0.2393464,     -0.55188214,     -0.39434715,     -0.63993813,       2.1545294,       1.3290406,     -0.38179378,     -0.35012593,      -1.1272649,       1.3930788,      -1.0366402,      0.36671637,      0.94168713,    -0.085253022,       1.4701121,      -1.1100957,      0.99412173,     -0.02416129,      0.11472299,       1.2419918,      -1.5835668,      0.31265836,       1.4584187,       1.5505817,     -0.45230037,      -1.6446698,      0.68494588,       1.0284861,     -0.41885395,       1.1830554,       1.6337479,      0.01018196,      -2.8758997,      0.60213328,      -1.0652904,    -0.061272196,      -0.9346511,     -0.56468527,      0.63010878,     -0.32690517,       1.1947345,     -0.69434868,     -0.34995402,      0.48851386,      0.99535416,      0.13295601,     0.038739272,     -0.19101137,     -0.80738774,      0.14263956,     -0.31020661,     -0.34715269,       1.2768662,      -0.3908969,      0.16595865,     0.098999397,      0.25285617,     0.059783092,     -0.61567215,      0.74780576,       1.3202592,     -0.43645407,     0.033002891,    -0.090476152,      0.23951666,     -0.96068941,     0.081826725,       1.4350352,       1.0865649,     -0.25031761,      -1.3390098,     0.051164451,      0.51536137,      0.62147738,      0.82514966,      0.11639432,      0.41710424,     -0.73667659,       2.0312754,      0.22871453,       1.0348083,      -1.1800782,     -0.42393589,     -0.10081842,      0.74371423,      0.76787882,      -1.7988488,      0.79568666,     -0.17550661,     -0.70210327,     -0.63127976,       0.3961887,       1.5191415,        1.000301,       1.0030973,      -0.2278289,       1.1950285,      0.37217045,      -1.1321123,     -0.43557288,     -0.89013532,     -0.66674269,    -0.086061566,     -0.41786818,       1.7287986,     -0.13525426,      -1.7090127,      0.80534164,      -2.3407447,      0.48111967,       1.0104371,      0.64314162,      0.59071555,      0.63331399,     -0.40142035,      -1.0339247,   -0.0068879969,     -0.15370791,      -2.3099734,       1.3711173,      0.15086777,      0.42381611,     -0.80698792,      0.26445036,     -0.69086956,      -1.0801867,     -0.80321121,     0.030042016,      0.60958962,    -0.090601926,     -0.15711573,     -0.49421902,      -1.9134814,      0.46514117,      -0.1039716,      -2.7730898,       1.2945031,      0.66495457,      0.38183945,       1.9249404,      0.67243611,       1.9912906,      -1.5659021,      -1.9856209,    -0.094028554,      -1.4246195,      0.99177023,      0.12536543,        -0.26497,       1.9427634,      -1.5487596,      -1.7922891,     -0.64358138,     0.066247998,      -1.5591367,      0.82363199,      0.01765864,     -0.21242385,      -2.3511133,     -0.34990153,     -0.39126065,     0.051165144,     -0.33266488,     -0.73370011,      0.62801642,      -1.5545075,     -0.26114122,       1.6999711,     -0.22036483,       1.3107193,     -0.38120107,      0.74481626,      0.30348005,      0.11234816,     0.080254121,      -0.2599485,      -1.7495267,      0.19647211,      0.16108314,        1.014731,     -0.38790411,      0.17797852,     -0.63980955,      0.26168106,     -0.95504431,      0.98452835,       1.0008515,     -0.65371912,      0.99322536,      -0.2563802,      -2.0628607,      0.25173766,      0.45399137,      0.75184196,       1.2023455,     -0.13003303,       0.5337487,      -1.5282265,     0.049035435,     -0.23799198,      0.13679854,      0.11422922,      0.16250384,      0.36861144,      0.77674387,     -0.21651965,      -2.2038791,      0.35053563,     -0.77165712,       1.5860824,       1.4476877,     -0.57660546,      0.77259666,      -0.7004086,       1.6708286,    0.0048793305,      -1.2487943,        1.193746,     -0.61557118,      -0.7679029,       1.0076743,       1.2974041,     -0.68353651,       -1.790841,      0.42679785,      0.14019841,       -1.999873,     -0.32104571,       1.6306381,      0.43927022,      0.70121778,      -1.1686236,      0.74353072,    -0.092453753,     -0.80087171,       0.4977514,     -0.65929307,       1.3954852,      0.86419275,      -1.1130052,     -0.79947297,     -0.54453827,       1.3618133,       1.6872289,    -0.050873643,      0.76474405,       1.5890716,      0.69284528,    -0.053240826,      0.64038716,       1.8579441,     -0.32546041,      -2.5343761,      0.96759365,      0.68833902,      0.26534406,     -0.10926997,      -1.8643523,       1.2321392,     -0.53551485,       2.8670244,      0.98627215,     0.042626615,       1.1678544,      0.37480199,      0.19905988,     -0.32441623,      -1.0742524,      0.10601539,     -0.64153837,      0.68795045,     -0.33792783,     -0.70112188,     -0.86548165,     -0.33402861,       0.7438369,      0.42057679,     -0.27452511,    -0.052147011,     -0.14352135,       1.6928033,      -1.2586756,      0.46302104,      -1.4713468,     -0.16820487,       1.5149768,      -1.9843488,      0.17253379,     0.046839241,       1.1275647,      0.73404606,     -0.82518894,      -1.0409608,       -1.155588,       1.8321811,     -0.99529934,     -0.95685743,     -0.58243539,      -0.2474168,      0.29595388,     -0.38707525,     -0.12361793,      -1.4724323,      0.81858209,      0.68166563,      0.69490204,      0.49673445,       1.4518699,      0.23392454,       1.5179929,      0.37076592,     -0.13225296,      0.29577351,     -0.89525184,     -0.32206295,      -1.9220364,       1.6285912,    -0.051604277,      0.73399569,     -0.46210272,       2.0475837,       0.4190511,       0.1331041,     -0.69794647,       1.9335748,      -1.4111654,        1.466473,       2.5243952,      0.74496637,       1.5196238,     -0.87106152,       1.9250164,     -0.66935427,      -1.2762275,     -0.05894346,       -2.740547,      -1.4575534,      0.97753407,      -1.6744332,     0.099091221,     0.091331431,      -1.5651316,     0.028586456,      0.20812946,     -0.91615653,     0.075370916,      0.12482038,      -1.4814589,      0.97770177,       1.8270579,     -0.64973475,     -0.33638947,      0.12240066,      0.34796096,      -1.2638833,     -0.22464919,      -1.3135899,      -1.3764738,     -0.95939867,      -1.2043835,      0.86646401,       -1.129452,       0.2918181,      -2.2179469,      -1.0155238,      0.71941948,      0.95830861,    -0.073476547,      0.22975254,       1.1314384,     -0.42162568,     -0.31129348,    -0.057172916,       1.0446429,       2.2052636,     -0.48631448,      0.34148806,      -1.0682467,       1.3679291,      -0.9561276,      -3.0345462,      0.44398724,      0.51409984,     -0.53455895,    -0.072534643,      0.41592004,      0.30205176,      0.23179999,     0.080094417,       1.0072736,       1.7610289,    -0.051003349,      0.50715779,      -1.3006468,       1.2460525,      0.37298305,       1.9868359,     -0.89551832,      -1.1823656,      0.32141632,       1.1034407,      0.87646037,     0.068308374,       2.0951029,       1.0665566,     -0.28117417,    -0.011219584,      -1.8008028,      -2.5116779,       1.8977119,     -0.38404108,       1.0264406,      0.80180721,     -0.95540732,      -1.5599091,      0.15420825,      0.25309943,      0.70652927,       1.3805915,     -0.99302607,       1.9407183,      0.29102044,      0.25095253,     0.068709515,     0.061336339,      0.13903883,      0.11897677,      0.61902529,      -1.3330516,     -0.13587059,      -2.4138194,       1.2694084,       1.2112342,       1.1779388,      0.88779913,       1.1353441,      -1.2711476,       -0.335174,       1.8956265,       1.1047149,       1.2637443,      0.33435059,      -1.7781166,     -0.11937559,      0.38727028,     0.008720229,     -0.47394438,     -0.44629843,       1.9835814,      -0.4936666,     -0.92587267,       1.1043368,     0.081967861,      -1.2856534,      0.71085953,       0.3171847,      -0.2207051,      -1.2942976,      0.36100595,      0.58374518,     0.085110377,     -0.55656922,      0.29747559,      0.76448769,       0.8482727,     -0.47059223,      0.65670143,       1.4106632,     -0.28527946,       1.0260636,        1.119394,      0.85759994,      -1.7927555,       0.5961442,     -0.23086608,      0.51615638,     -0.87708485,      -1.5459833,     -0.26188407,     -0.61533221,      -1.2173799,      0.09996207,     -0.64753915,      0.67338514,      0.92413611,       1.5294936,      -1.1536084,      0.25275054,      0.67887674,     -0.90180453,      0.59420443,     -0.97635787,      0.33467658,      0.60124986,        0.621195,       2.1938437,       1.9159278,     0.057601213,     -0.55062161,     -0.93789183,     -0.98436251,      0.14141361,      0.57413277,      0.93223017,       1.2431052,     -0.29480905,      0.52544894,      -0.2603168,       1.6869631,      0.70273389,     0.093765947,      0.83876572,      0.15819831,      -2.5273224,       1.1778677,      -2.4774007,     -0.19134731,      0.46761235,     -0.66311173,     -0.22716073,     -0.63819338,       1.1491584,     -0.19939085,     -0.43217181,     -0.95247226,       1.2440544,      -1.0869434,     -0.39088104,      0.43406044,     -0.55555592,      -1.6331151,     -0.29485954,     -0.28419155,       1.3672586,       1.6801538,      -1.8431964,      0.26341348,       1.2114694,     -0.22642615,      -1.2808014,     -0.49908545,       1.2094751,       1.8654105,      0.46735209,       1.0236866,        0.201833,      -1.6276953,      0.53947525,       1.1324915,      0.50620337,      0.74244399,       1.7627502,      0.64722566,     -0.13768569,     -0.71265802,       2.0443439,      0.26080329,      -1.8979231,       1.2480539,      0.42078719,      0.23910562,     -0.23194537,    -0.093248587,      0.52421113,       0.1218405,    -0.080911072,     -0.24050264,      0.81904867,     -0.26842248,     -0.15396694,      -1.2207046,      0.10970505,        1.984461,      0.60825846,     0.039398788,      -0.5934802,     -0.84698198,        2.004821,      0.38549351,      0.85002351,      -1.1875984,     -0.40447174,      0.34526467,        2.711176,     -0.46753194,    -0.029920904,      -1.5155599,      -1.6881392,       1.1043023,      -1.4101977,      -1.0765204,       0.6289115,      -1.4098981,      -1.4749895,     -0.25906049,      0.85530246,      -1.9781813
+2025Y,    -0.090249641,      -1.4355512,     -0.62190301,    -0.092041406,      0.83316778,      0.68020327,      0.68515305,     -0.13793944,     -0.16221519,     -0.38745678,     -0.34003286,      -2.9533624,      -1.1560143,       2.7818527,      -1.9558154,      0.38595788,       0.8615391,      0.75366668,       2.3231625,      0.37396923,       1.1815984,      0.10651191,      0.44867099,      -2.0610496,     -0.32550459,       1.1350261,      -0.9900947,     -0.55037802,       1.3840907,     -0.37984192,      -1.6714887,      -1.9497797,       -1.156896,     -0.32081304,      -1.1669059,      0.49445656,       1.1957975,    -0.046544638,      0.04637258,      -1.1509033,     0.022277771,     -0.42541207,     -0.19440294,      0.47484094,    -0.083103728,     -0.30814876,       2.1007954,     -0.11454123,     -0.81607155,      -1.2089832,       0.4397192,      0.10453845,      -1.4321435,      -1.4093786,     -0.42482575,     -0.57098464,    -0.053661185,       1.5300416,      0.71048793,      -2.1092584,     -0.67571886,     -0.84637971,      0.59293636,       -1.017373,      0.85708921,     -0.68374045,       0.8737986,      0.60357002,      0.86106863,      0.14320969,      -1.0214838,       0.8009747,       2.6834577,       2.2812523,       1.4788211,      0.73637343,    -0.044655736,      0.45226387,      -1.3739531,       1.6308559,     -0.62137272,        1.021399,     -0.28552813,     -0.26760002,       1.4778267,        1.435443,      0.48292262,       1.0453416,    -0.060641715,     -0.64716449,      0.77123782,       0.6276226,     -0.43782062,      -1.6695367,      -2.9575135,     -0.14401537,     -0.37767111,      0.49057335,      0.47891782,       -1.343188,      -2.0534638,      -1.2990077,      -1.8595419,     -0.43566032,     0.099196807,        2.216137,     -0.85490648,      -1.2720922,      0.44633315,    -0.047527314,      -1.1936154,     -0.81018966,    0.0084347288,     -0.57082259,      -3.4806441,      -1.7782031,      -1.4038889,     -0.22968959,    -0.035660828,      0.12550548,      -1.0689832,       1.9131147,      0.96686567,     -0.29998747,      -1.0507667,       1.0900609,       1.3944781,      0.59394638,        -2.01023,     -0.63458356,       1.3316056,     -0.49633317,      0.58942013,     -0.44524621,     -0.40866804,       1.1614412,     -0.13133155,     -0.99117256,     -0.43500048,     -0.54809826,      -1.5719093,     -0.83995031,       2.1626593,      0.16927825,      -1.9305451,       1.1443689,      -1.0587693,     -0.80124268,       1.6596097,       1.3743257,      0.53856479,    -0.061414091,      0.36148201,     -0.16625767,      0.22198028,     0.032796415,      -1.4167816,      -0.9392017,    -0.089039374,       1.5641812,        -1.65444,       1.1810485,      0.91291158,     -0.37470411,     -0.12642997,      0.17122644,     -0.76936358,      0.86613951,      -0.6217032,         1.25421,     -0.51362348,      0.97631724,     -0.56567307,      0.67347455,     0.031633949,     -0.62117454,       0.7043925,     -0.91865053,      -1.0876936,      0.89858336,     0.017193072,      0.43352774,       1.3297768,      -1.7981401,      0.24199881,     -0.50082849,     -0.71495529,     -0.19573741,      -1.9363591,      0.15951809,    -0.045889716,     -0.14371585,      0.46654779,     -0.35944719,      -1.1036347,       1.3690904,     0.098293217,    -0.031457409,      0.49432939,    -0.050808466,     0.042024628,       0.5158082,      0.82685924,     -0.22380415,      0.07831328,     -0.34888273,       1.2907256,     -0.26504787,     -0.75841213,       1.1060856,        1.319437,     -0.97935876,     -0.69264485,       2.0995535,       1.5016192,      -1.6041228,     -0.20794909,     -0.79328561,      0.79425687,      -1.0724519,      0.32029421,      0.72377167,       1.6847133,      0.81489538,      0.24743387,       1.0133904,      0.04583325,     -0.29222764,    -0.098323232,      0.57288824,      0.08481036,     -0.82122552,      -1.3703015,      -2.8439581,     -0.32255057,      -0.2600174,       1.1412387,      0.38136628,        1.402756,     -0.48904293,      -1.2943686,      0.43800014,     -0.54536496,     -0.20570658,      0.31957014,      -1.0916725,     -0.59230821,      0.61548099,      0.38639689,      -2.2507669,     -0.41132879,      -1.2181443,      -1.0214735,       1.5526267,      0.13013248,       0.1627425,       1.2102728,     -0.68995046,      -2.5467409,       -0.882231,      -1.2121094,     -0.47382501,      0.40395871,      -0.7705143,      0.20724489,      -0.1350549,     -0.95978259,      0.24531085,       1.2670165,      -1.7847225,     -0.25377736,      0.60981188,       -1.115832,     -0.69616964,     0.010042285,      0.32778891,     -0.88550012,     -0.91313006,       1.4549551,      0.77164547,     -0.26038787,        1.102981,     -0.26701296,     -0.20300178,      0.89966553,     -0.39961761,     -0.91311146,      0.26001332,     -0.88160659,      0.33435995,     0.053689576,      0.10109412,      -1.3308559,      -1.4697485,      0.46639569,     -0.60501997,      0.31044453,      -1.7158579,     -0.78485255,    -0.029617028,       1.2881082,       0.8771873,      -1.9997514,       1.7257054,       0.5206901,      0.75346983,      0.73110302,      -1.1152194,       1.7611042,      0.35902027,      0.98851271,      0.41953472,       1.4057808,       -1.210427,      -1.8504123,      0.85077123,     -0.60739747,      -1.4760793,    -0.047714633,      0.92149166,     0.056107669,     -0.63873465,      0.69152058,      0.91083575,      -0.7538324,    0.0021756912,       1.1408894,      0.34976795,      0.42344838,      -1.7305796,     -0.68577376,      0.45823426,     -0.66163603,      -1.8849983,      0.13955268,       1.6155122,      0.54664035,      0.89093324,     -0.43476172,       1.5776753,       1.0784288,      0.34998963,       1.2790077,     -0.21857599,     -0.62958554,      -2.1568361,      0.45813812,      0.96766503,      0.83705546,      -1.2378007,       1.2768887,      0.23255101,      -1.0735285,    -0.048691464,     -0.48399566,       1.0938166,     -0.21575413,      0.23058099,     -0.11844088,       2.1635898,      -0.3358565,     -0.35926508,       0.9119665,      -1.7845074,      0.66373727,      0.14421493,      0.50507064,      -2.1630491,      0.84444398,      0.52040898,      -1.7479084,      0.35073535,      0.24506073,     0.094528326,       1.5933512,     -0.54830666,       1.3944156,     -0.41763992,     -0.50633774,     -0.49320016,       1.3193929,     -0.10047321,      -1.4854743,     -0.27279008,    -0.063865856,     -0.57059046,       2.2910318,      0.31516155,     0.057086898,      0.41959339,      0.17810223,      0.20176703,       0.9849656,     -0.59997944,      -1.1588783,     0.013572616,      -2.7277413,      -1.2304065,      -1.5332314,    -0.037054941,     -0.24963927,      0.38012891,     -0.78560769,     -0.39660614,      -1.0109229,       1.1543104,      0.50445953,     -0.87253178,      -1.0492656,     -0.28308303,       -1.659423,      -1.2165865,     -0.35165825,       -2.473993,      0.22507825,      0.74962844,      -1.1742159,      0.91936409,       1.8767246,    -0.044652561,     -0.12742804,      0.43386488,      0.33677229,     -0.12129536,     -0.12230405,     0.071167977,      0.86829516,       1.3800575,      -1.5739937,     -0.77550608,     -0.33956314,      0.69864468,      -1.3758819,     -0.48795247,     -0.39045469,      0.56433672,      -1.6338311,      0.62599419,      -2.0965579,     -0.97987776,      0.25858248,      0.51516877,     -0.74154729,      -1.8841722,      -2.3703885,      0.71398122,     -0.83283465,     0.097912523,       1.1279044,      0.57739569,     -0.62646679,      -0.2862503,     -0.39787618,     -0.24603769,      0.24281418,     -0.17135319,       1.7280897,       1.0354281,      -1.0208265,       1.4029693,     -0.56509204,      0.25558448,     -0.09301975,       1.2357478,    -0.022345368,      0.63521319,      0.48450843,       -0.936941,       1.3977998,       1.3653386,       1.1417517,     -0.45271883,      -1.6162047,       1.1424505,     -0.55655134,     -0.81994996,       1.8175505,      -1.5286203,     -0.87214186,     -0.32459989,      0.13607603,     0.099794519,    0.0017493336,      -0.6120493,      0.27202447,      -1.4165486,       1.9550512,    -0.058902385,     -0.12316107,     -0.13018282,     -0.34443139,      0.28429207,      -0.8177907,      0.64809924,    -0.040827457,      -1.1287005,       1.2420796,      0.30872972,        1.162165,     -0.56838768,     -0.47553865,      0.81811529,      0.47565378,      0.26604528,      0.92010291,   -0.0073108282,      -2.6243015,      0.89178832,      0.13399556,     -0.29635113,     -0.43980416,       0.7375353,       0.1379601,       1.7382026,     -0.18987595,     -0.27859025,     -0.87850025,       1.9392971,       0.8218557,      0.50573255,      -1.5877966,    -0.030509479,       1.3495663,      0.13393016,     -0.62800292,      -1.6754942,     -0.87777925,       1.0625667,     -0.28076468,       1.1035663,      0.15638311,      0.22655339,       1.3842853,      -1.4598336,      -0.2133029,      -1.7190192,      0.12941882,     -0.71498604,     -0.63510277,       1.4735754,    0.0023649683,       0.7744341,      0.81305188,    -0.078417762,     -0.23391313,       1.2017803,     -0.36612841,       0.9047614,     -0.65424997,       1.0704204,       1.0747885,      -1.3647558,      -2.3892303,     -0.36658433,      0.25404906,       1.1768931,      -1.9773911,     -0.16279771,       2.3453619,       0.7125301,     -0.78102719,      0.67182586,       1.0735929,       1.5728438,      -1.0859621,    0.0069343941,       1.2570637,      0.95011973,       1.2503342,     -0.81667895,      0.59980755,      0.52327186,      0.10199739,     -0.48410592,     -0.25482545,    -0.056215556,     -0.41584769,      0.37824338,      0.42848219,       1.3108372,     -0.34583277,      0.92153514,     -0.75777899,    -0.017305361,      0.01122317,     -0.17185049,       1.0106508,       2.0894199,     -0.61620631,       1.2773657,     -0.86747996,      0.10094879,     -0.38388408,    -0.062697006,      0.39811345,     -0.89653167,       0.8041326,     -0.19287905,       0.1240482,     -0.32295098,     -0.31572209,      0.25910447,     -0.53976216,       1.1129035,     -0.43569658,       1.1527211,       1.7012782,       1.0380252,      0.71346529,     -0.69096048,       1.1321229,       0.3007685,       0.0581423,     -0.63291455,       0.1959128,         1.54922,      -1.1069809,     -0.50212698,    -0.067124015,      0.51085795,     -0.56186593,      0.66387884,     -0.73374652,      0.64669936,      0.25372141,       1.9705512,       1.4688684,      0.47139321,      0.89234222,     -0.38457997,    -0.074666045,      -1.3872835,      0.78022976,      0.40949437,       0.2398485,     -0.87163968,      0.63229794,     -0.16472557,     -0.57473961,       2.0635456,      -1.8191519,      0.29935537,      -1.2243193,      0.21523077,       0.3806941,      0.65732179,      -0.6542226,       1.8371254,     -0.94521341,      0.30915652,     0.072659662,      0.51321078,    -0.011527971,      0.41987807,       1.8183662,     0.067913399,      0.42033197,      -3.0947058,       0.7340721,     -0.31019007,      -1.4107865,     -0.76283849,      0.46770458,      0.94253683,      -0.5507257,       1.3101803,      0.96100545,      0.96603148,     0.095494791,      -1.5650643,      0.83313388,       -1.009044,       -1.329989,     -0.61993935,      -0.2582653,     -0.18603066,     -0.14679595,     -0.62560324,      0.27296171,       0.1747744,     -0.26424216,     -0.86785994,      -2.4709648,      -1.2984145,     -0.59345002,      0.95976374,      -1.2650804,       1.6145497,     -0.30172946,      -2.4311522,     -0.13211814,      -2.0722584,      -1.0009363,      -1.2846804,      -2.6002312,      -1.7754543,       1.1362494,     -0.36488522,    -0.095127933,     -0.28473595,       1.3125312,       -1.825265,         1.21709,    -0.052458574,       2.0235982,     -0.39389624,     -0.92447787,      -1.5842669,       1.0977559,      -1.3129419,     -0.85972487,      0.20391726,      -0.3241524,     -0.28706957,      -1.1372439,      0.80436428,    -0.035189706,      0.88698196,      -2.3538243,     0.025373614,      0.37569341,      0.59394351,     -0.33044828,      -1.1631466,       1.3945375,     -0.33212992,      0.39627886,     0.022709604,      0.57527608,      0.22645809,      0.57657985,      0.29281528,      0.55254021,      -1.6086211,     -0.83704696,     -0.34909681,      0.66513138,       1.6150789,      -1.4772707,      -1.6673106,      0.26990553,     -0.91567145,       2.1984077,     -0.03136444,       1.2818428,     -0.50155176,     -0.55768229,      -2.1543759,      0.68898194,     -0.83845994,      -2.1444835,       1.0081751,      0.82182463,       2.0208958,      -0.7391834,      0.33054232,      -2.1549237,     -0.26614232,     -0.32678266,      -1.6168866,      0.56803344,      -1.4027505,      0.43687867,      -1.2489079,      -2.1841799,     -0.98666461,      0.91536091,     -0.22866668,       1.2274759,      0.63941723,     -0.45780033,      -2.8239351,      0.26859887,      0.64556443,      0.65480809,    -0.081393363,      0.70454366,     0.068973655,       1.0642732,     -0.91895394,     -0.79167291,      -1.0779372,      -0.8436111,     -0.99012272,     -0.51403971,     -0.16846074,      0.90372472,    0.0022935865,       -2.341608,      -1.1344131,       1.5003449,      0.27864486,       0.7304207,       1.0395582,      -2.8511158,      -1.6806339,     -0.78228994,      0.89908092,        1.644892,     -0.13350743,    -0.029045398,      -0.3344602,      -1.2765416,       2.5432358,      0.53899983,     -0.42693183,       -0.549395,       1.6647064,     -0.74377077,         0.47934,       0.7004258,      -1.1864544,       1.0430662,       1.4929675,       -2.589777,      0.78601014,     -0.30807735,     -0.71855572,      0.26316209,      0.97708358,     0.059956386,    -0.011169172,      0.26284625,     -0.34143748,       2.7038946,      -1.0793224,     -0.23353107,       -1.206734,     -0.78259116,      -1.8785234,      0.69798355,       2.3277175,      -1.6029427,      -1.5091056,      -1.1330091,     -0.96970762,      -2.4263858,       1.5001539,       1.0505639,      0.24848442,       0.5750251,       1.8641698,    -0.014868195,       1.9922642,     -0.99838871,     -0.85428305,    -0.050440945,     -0.57273409,     -0.29322498,     -0.28718932,      0.71097064,      0.40916443,       1.8234142,      -1.1073016,       1.9785631,     -0.33370783,      0.82917573,       1.7131615,      0.89094245,       1.1895336,      -1.1381883,      0.42639944,     -0.38433112,      -0.8866836,      0.95764574,      0.85246771,       1.6899065,       1.5495007,      0.72122204,       1.4449246,       -1.042659,       1.4653196,       1.2360336,     -0.85655527,     -0.22813281,     -0.25553081,      0.15148591,     -0.40346883,      -1.0235594,     -0.30600861,      -1.6100093,     -0.89016633,      -1.9242039,      -1.4395321,      0.41064488,     -0.71434294,     -0.20012396,      0.28921017,       1.3747675,      -1.2077939,      0.89014774,     -0.85662634,       1.4662299,      0.32974766,      0.26327151,      0.68494682,       2.7131211,       2.6123155,     -0.42210622,      0.35668833,     -0.18049214,       1.2368546,     -0.84634488,     -0.86969187,      0.72966386,      -1.7875891,      -1.1794367,       1.1078914,    -0.069482304,      0.29453447,      -1.3277892,    0.0049802956,      0.75309658,       1.1247392,      -1.3440846,       -2.503361,       1.1022167,     -0.17845519,      0.26829226,      0.70958222,     -0.57499065,      0.55678668,      -1.0608226,     -0.33311518,      0.64246723,     -0.71656282,      0.03712121,       1.1022809,      0.48029955,     -0.11214864,       1.4272274,     -0.40928109,    -0.091686756,       1.5847485,       1.0938556,       1.2561912,      -2.1530581,       1.4558892,        0.566697,      0.89442964,      0.87518865,      0.55498693,       1.7324799,     -0.52653464,     0.053780616,       2.1334516,     -0.49558259,      -0.7712359,     -0.18934919,      0.58602513,       2.0248518,     -0.44578324,     -0.71930005,     0.029689133,       1.4571511,     -0.87716272,    -0.072188722,     -0.64277855,      0.18203647,      0.43349208,       1.5974272,      0.49330133,      -1.5158628,        1.049564,        1.252925,       2.0035521,     -0.90153211,      0.47335405,     -0.14407341,      -0.3275583,       1.5533202,      0.60556021,      0.92339523,      -0.7546367,      -1.7326635,      0.73472957,     -0.41863433,     -0.73932441,     -0.66128891,      0.60653082,     -0.85640796,     -0.49451435,     -0.27160063,      -0.3959375,       1.7560586,        -1.45182,      0.83037387,       2.8786543,      0.33181904,      0.76653689,      0.59213834,     -0.25647976,     0.031031086,      0.78807621,       1.6454751,     -0.98123303,      0.15244628,       0.4279927,       1.8398466,      0.85073464,       1.3223425,      -2.0955166,       1.4659478,       1.0020462,      -1.2204386,      0.20341924,     0.023327979,     0.047949639,      0.58881002,      0.21076486,      0.82234063,      -2.6976543,      -1.0889838,     -0.38169481,     -0.87100299,       1.0267504,      -2.9389913,     -0.33862174,      -1.2746589,     -0.90211804,     -0.98606816,       1.0463304,       1.1940603,     -0.29200583,       1.8753145,      0.12057019,     -0.19237748,      0.59093464,     -0.57820103,     -0.13875894,     -0.01250936,      0.37774304,       1.0031102,       2.1291156,      0.60948081,      -1.4076802,      0.26304385,      -0.2117421,      0.87526172,       -1.709173,     -0.44458112,     -0.61740416,     -0.19522057,       0.8252011,      -1.2668104,      0.61199748,      0.41341871,     -0.45123485,      -1.3759099,       1.1355144,      0.49043258,      0.88880125,      0.28812036,      0.36724323,      0.72341541,      0.72896347,     -0.46605016,     -0.19761125,     0.071708974,     -0.16848982,      0.68365633,      -1.5006217,      0.90289339,      0.51173501,     -0.24416084,       1.5128468,      -0.2920506,      -2.1298965,      -2.1244998,      0.76098154,     -0.77652986,      0.08983924,     0.045804363,      -1.4778635,       1.5475923,     0.057191354,      0.25227575,     -0.43484078,       1.6810034,      0.69675653,       0.3462926,      0.45829781,       1.6712207,     0.036604753,     -0.82780545,      -1.5148384,      -1.1323895,      -0.3832592,       2.1292836,       2.0992274,      -0.2570396,    -0.016816723,      0.35579455,     0.078806108,     0.082418528,       1.1864369,      0.69739317,       0.2920859,      0.98885733,     0.059385275,       1.1452177,       1.2089017,      0.84163635,     -0.84127612,      -1.0037119,      -1.0990346,      0.49461495,      -0.1358539,     -0.53866403,     -0.71740866,     -0.57798432,      0.83391535,      0.89771989,     -0.51462655,      -1.3803461,     -0.12550006,      -3.2983129,     -0.15077935,       -0.907169,      0.05987445,       0.1083331,     -0.81096506,      -1.4646057,       1.3887913,     -0.41142649,      -0.2712473,      -1.2877607,      0.20337268,      0.22806968,       2.8577872,       1.1884985,      0.12059445,     -0.39511311,       1.1706232,      -2.6310005,      0.66086357,       1.5605256,      -1.0454117,      0.94389742,     -0.97198788,       1.5711635,     -0.88238936,      0.83149446,      0.53362537,      -1.1128104,     -0.92093068,      0.39991505,      0.26496773,      0.75286816,     -0.40062487,     -0.92805407,     -0.79821523,     -0.11493268,      0.33613333,     -0.54710183,       1.2373399,      0.69094442,      -2.3344671,     -0.52398504,    -0.010472625,      0.27621643,       1.3637447,     -0.63793829,     -0.85646297,      0.29997261,     -0.73583994,     -0.71119775,       -1.033894,       1.1959266,    -0.016524719,     -0.69047754,       0.8774522,       2.3917762,       1.5595035,      -1.2560393,      -0.1080734,       -1.688215,    0.0066360522,     -0.78831596,      0.33326606,      0.96199249,     -0.28856866,       1.1555247,     -0.82706885,     -0.55996259,      0.36794039,      -1.0478734,     -0.73142877,      0.46959656,      -1.6626537,     0.082362793,       1.3320627,       1.1011591,      -1.2650192,       1.5522299,      0.31561197,     -0.78749149,     -0.44498392,      0.20361609,      -1.4921075,     -0.21293812,      0.21194453,      0.41323097,      0.10986199,       1.6998167,       1.0949065,     -0.42142658,      -1.0205336,     -0.89126763,     -0.11069074,       1.7757149,       1.3237504,     -0.54258743,      0.88212813,       1.0858305,      0.30335003,     -0.49965477,      0.56102687,     -0.51267484,       2.2828215,       1.9989932,     -0.14951736,    -0.052371297,       0.4542475,       1.3832827,      0.12038731,     -0.25208608,     -0.03788979,      -1.2317801,      0.61359957,      0.73400079,       3.4107396,      -1.9016662,     -0.13243975,      -2.5341115,     -0.12325356,     -0.85544805,       1.0330179,       2.7932913,       2.0968941,     -0.93361671,     -0.43998275,      0.26989938,     -0.11436821,     -0.69123632,       -1.230535,      -1.0158611,     -0.86177062,       1.6580698,      -2.8286978,      -0.8550352,      -1.1916884,      -1.5086918,      -1.1237829,      -1.2435815,      -1.2318286,     -0.63164627,      0.35074067,     -0.30293452,      0.25866265,     -0.90972163,     -0.31321454,      0.81163841,      0.62955438,      0.38227364,        1.069995,      0.75075239,      0.24860927,    -0.095217778,       0.6258818,      0.80856938,     -0.69197871,      -1.2150112,     -0.58265033,     -0.05375813,      0.22605045,      -0.1430708,       1.0616014,     -0.17330511,     -0.40306666,      0.58797219,       1.0887152,    -0.016558716,     -0.51200257,      -1.3162574,      0.64496635,     -0.28834296,     -0.84429936,     0.033005958,       1.3463555,      0.43597221,      -2.2234724,      0.96338955,       -0.772875,     -0.27266242,      0.39285276,     -0.29027143,     -0.62279924,      0.31007998,      0.91210193,     -0.20666756,     0.068609501,      0.21519587,       1.8358156,     -0.70270956,       1.4915753,      -1.2746833,      -1.5314628,      0.68506926,     -0.54953829,      0.24680158,    -0.015622748,     -0.34010315,       1.4311599,     -0.42164295,      -0.2640614,       0.1700434,      0.07320942,       0.4260997,      0.20772799,      -1.8481384,     -0.81071539,       0.9611672,     0.030599326,     0.031828329,     -0.55713894,     -0.64892544,      -0.1839475,      0.70327736,    -0.063712255,   -0.0062517581,       1.6753388,       0.2720903,      0.32249935,      -2.1732705,     -0.63736787,      -2.0962071,    -0.081524907,    -0.066526336,      -1.1001163,     -0.60595619,     -0.22366865,      -0.6421548,       2.3859122,     -0.46532295,      0.26692394,      0.31823704,     -0.71558512,      0.63067679,       0.1542661,      -1.2587271,      -2.2486196,      0.51755071,      0.84378278,     -0.15625643,      -0.5587143,      0.63563922,      -2.1310264,      0.68894259,     -0.73615948,      0.41361798,     0.026533858,      0.51193157,     0.027895171,      0.05070703,     -0.65227115,      0.17194283,      0.12290907,       1.3821322,     -0.74617248,     -0.76855135,      0.64822707,       1.0741015,     -0.23989314,      -1.3139056,       1.1921639,     -0.84680095,     -0.15731375,     -0.98194266,     0.013259184,     -0.32860445,       1.3678979,      0.41681263,       1.2547972,     -0.40179307,     -0.25966836,     -0.23062811,      0.14722123,       1.7890618,     -0.24947958,       1.3399654,      0.31899099,      0.72831206,      0.52215085,       0.6116245,     -0.20322935,      0.19752317,       1.4758986,      0.36804188,      -1.7868811,      0.90680023,    -0.040558109,      0.17767019,     -0.16231976,       1.3087091,       1.9237261,       -2.632933,      0.23632804,      0.05309584,      0.22640928,     -0.47828542,     -0.36910249,    -0.042908765,     -0.91984693,     -0.16166817,     -0.75649424,     0.057870036,       2.3445599,     -0.91138989,      0.48658675,       1.1876591,      0.18584722,      0.64528844,       1.0914332,      0.96748913,      -2.6825029,      -1.1191705,      -1.4314226,      -1.5594124,      0.72173604,      0.20986906,     -0.56610261,       1.4382459,     -0.29832762,     -0.82225058,     -0.63812781,     0.056263282,      0.44805634,     -0.55208667,   0.00092179335,    -0.055938128,      0.57798604
+2026Y,      0.82200564,     -0.74175332,       -2.102879,      -1.9191383,     -0.62333011,      0.63949565,     -0.25281039,      0.42216014,    -0.060988635,     -0.20470261,      0.40494891,      0.34534707,     -0.55411346,      0.12698264,       1.2449243,     -0.31150731,    -0.057045484,     -0.27519494,     -0.61863081,       1.2936591,    -0.047328702,       1.0878902,      -1.4554358,    -0.047172863,       0.8905575,    -0.084366198,     -0.33813568,    -0.055574968,      0.80436196,     -0.67170903,       1.2023933,     -0.85019388,      0.34598678,       1.8859545,      0.11773519,     -0.23936032,      0.17789539,    -0.028637446,    -0.034932664,      0.93950436,      0.91465327,     -0.50777635,      0.27574092,       0.1276026,      -1.0010546,      -1.3850013,       1.2842694,     -0.38854403,       1.5844342,      0.36752697,       1.1257156,     -0.13012966,      0.50436987,       1.6977981,      0.82746008,      0.75670805,      -1.9484373,      -1.7395107,     -0.89109723,     -0.73684439,      0.36563358,       1.2105288,      0.42532925,      -0.6853258,     -0.25077112,      -1.3066469,      -1.6155018,      0.52008711,      -0.3858462,     0.018643079,      0.90677001,    0.0021356704,     -0.21787324,       1.1307956,      0.13364277,      0.70129686,      0.24519765,     -0.63423708,       -1.046771,       2.0782289,    0.0020769224,      0.93053985,      0.66641588,       1.1677623,    -0.025953067,     -0.57543452,      -1.8977038,      0.76424002,      0.38856686,      -2.2663554,     -0.15346875,      -1.0857202,       2.0278445,       1.6022574,     -0.27613784,    -0.027905777,      -1.8400649,      0.36444244,    -0.028521462,      0.14823424,      0.48729388,      -2.4112066,     -0.94196292,     -0.25307627,      0.21703562,     -0.55823801,       1.5210615,     -0.31872244,       3.1019987,     -0.11750221,      0.70166513,      0.41483153,      -1.0454744,      0.33591745,      -1.0286413,      0.68651683,     -0.95842809,     -0.98721784,     -0.12867666,       1.4744311,      -0.7537855,     0.024441406,      0.89715907,      -0.2708057,     -0.57838453,      0.20783877,      0.65569447,       1.5479106,       0.1883293,      0.50808272,     -0.42157881,     -0.58762087,      0.17370519,      0.47685246,      0.17203221,      0.30711924,       0.3991315,      -0.2728555,     -0.60325391,      -2.5252053,     -0.35914613,       2.8619628,       1.4114336,     -0.44517491,      -1.7537888,      -2.1089421,     -0.88889861,       1.3071189,      -1.2859093,      0.84881346,      0.31046013,      -2.1616921,      0.62613274,       1.0652866,      -1.3992342,      -1.4143168,         1.72937,     -0.91720878,      0.35313842,     -0.86481622,         -1.1999,       2.1999149,      0.01699615,       1.0752741,     -0.33717251,      0.20078962,     -0.50460185,       1.0209377,      -1.2084394,      -1.4335116,         -1.0001,      0.99148704,     -0.65412406,      0.45480851,      0.22353471,     -0.96433046,      0.50461002,      0.33725006,      -1.5448972,     -0.64857836,     -0.59254037,     0.043634386,      -1.2552948,      -1.5637697,      0.96453245,     -0.18645103,      0.14176334,       0.1928551,     -0.78346335,      -1.7745231,       1.3098774,     -0.47897589,     -0.31726824,     -0.51754412,      -1.1120561,       1.2849821,    -0.090452258,      -1.6442947,       -1.716901,      -0.5060358,      0.72967884,      0.32660153,      0.14340959,     -0.57372933,      -1.7257201,      -0.6608705,       2.0925755,       1.9624478,      -1.6145962,      0.28420728,      -1.2407379,      0.55908709,       0.1714354,      -1.4963866,      0.12258351,     -0.99862559,      0.89350102,     -0.94026183,      0.96134926,     -0.17923236,       1.0720054,     0.044684395,     -0.89310907,      0.13448815,       1.3028267,    -0.049413447,      0.15947161,      -1.3465351,      -1.6543626,      0.39957262,       0.4360933,     -0.35837782,      -1.9341242,     -0.27631823,      0.16473292,      0.11726059,      -1.1928246,      0.14370914,       0.2934239,     -0.83037701,     -0.48396641,     -0.29619988,     -0.98351181,     -0.60832494,      -1.2077141,     -0.80920952,      -1.1343142,      -1.4477293,      0.19188212,     -0.19086159,     -0.40334649,    -0.055668558,      0.11640678,      0.78018784,      -1.4328753,     -0.70464781,      -1.7968523,      -1.7615813,     -0.42249573,       1.2331873,      0.47022807,     -0.55661004,      0.19267142,      0.12641922,     -0.13612869,     -0.30287626,      0.55166899,     -0.16872231,     -0.10591559,      0.33574432,      -2.1533561,       -1.567487,     -0.76287563,      -1.5480075,      0.77083902,      0.69717116,      -1.2659575,      -1.3497182,     -0.62748166,      0.25067182,     -0.43769853,     -0.77144417,     -0.63619624,      -1.3425457,     -0.47006977,      -0.6257228,      -1.1243538,       1.4070993,      -0.6241165,      -2.1583081,     -0.27466909,      0.87716088,      0.41585351,      0.53493085,       3.7229954,       1.3883292,     0.024200703,      -1.6449603,      0.16535876,       -1.020725,       1.1287035,     -0.45891495,      0.40574601,      0.98899386,    -0.011372948,       1.3553231,      0.17404565,       1.0207444,        1.611821,      0.22540681,       1.4869909,      0.48290594,      0.30457989,     -0.62049711,    -0.079438435,      -1.2394222,      0.87981229,       0.9083825,      0.82800851,     -0.41914615,    -0.046816734,       1.6960553,     -0.79800552,     0.099587722,       0.9094038,      0.70476295,      0.19636616,      -1.1170723,         0.37565,      -1.1486028,       1.2285526,       -2.116225,       0.9242727,      0.13274879,    0.0079727606,     0.034915525,      -1.3370778,       2.0350703,     -0.19246883,     -0.15737447,       0.3186652,      0.88518694,      0.63883501,     -0.35059122,     -0.63366847,    -0.086941167,      -1.0988259,     -0.23577922,      0.98549875,      -1.2465263,     -0.38331456,      -1.4288092,     -0.31182404,      0.30203293,      0.11666673,      0.56487828,      -0.9974569,     0.083672756,      -0.7885422,       1.2991936,      0.17976572,      0.52483282,     -0.98129653,     -0.41126863,      -1.3183946,      -1.8080803,      0.90858621,     0.032347401,      -1.2618483,      0.91269955,     -0.70014446,     -0.39855065,     -0.33197895,      0.94546736,      0.22030215,       1.0664643,       -1.612233,      -1.4923002,     -0.22672091,      -1.7646693,       1.0643442,       1.6139882,      0.24388782,        1.594977,    -0.050128932,     -0.84923505,      0.96091617,      -1.1841396,      -1.5358645,     -0.66900638,      0.57972962,     -0.52177893,      -2.4508425,     -0.24831475,      0.97834936,       1.3825958,      0.24535217,      0.41398306,      0.60956866,        1.569751,      0.68224958,      0.40778284,       1.9967172,       1.5302715,        1.930012,     -0.19022124,     -0.75065509,        1.531416,      -1.8894205,      -1.1834169,     -0.22688242,      0.24036091,      0.93667883,       1.7954222,     -0.49254229,      -1.4096184,      0.18715607,      -1.1705749,      -1.9855031,      0.21469088,       -1.292972,    -0.092184539,       1.1401885,     -0.46021961,    -0.094841943,       -1.197482,      -1.1559224,      0.79396697,      -1.3583147,     0.083903378,      0.14682817,      0.48781047,     -0.61279243,      0.38680457,      -1.6149269,     -0.45289656,       1.0241738,     -0.91985879,       2.0510844,      0.21447243,      0.18598697,     -0.36878667,      -1.3658523,     -0.48314887,     0.098302345,    -0.030323396,     -0.78044081,     -0.90872503,      0.53708835,       1.6402276,      0.43387954,       1.4774947,       1.9404394,     -0.65449446,     -0.96853928,      -0.7430913,      -1.0914333,       1.0138475,      -0.8038062,       1.8667465,     -0.15472469,     -0.79639173,      0.57486282,      -1.2606481,     0.039040971,      0.40203764,      0.51639475,     -0.46465619,       1.0084304,      0.87298595,     -0.26271938,       1.1761872,      0.97519321,      0.40980133,       1.6294067,     -0.27286379,     0.081590337,      0.47332485,       1.2146874,      -1.1125262,      -1.3079909,      -1.1505839,      -1.7421081,      -1.2314957,       2.4617772,     -0.80850452,      -1.5369648,      0.59308882,       2.2454607,      -1.1758251,      0.60895321,      -1.0184164,        1.871085,     -0.25306313,      -2.0556975,     -0.83562737,      -0.5684318,     -0.48561112,       2.7651564,      -1.4017556,      0.58196844,     -0.88519719,      0.42368523,     -0.35155025,       0.9436783,      -1.8422024,      0.41344696,       1.5146537,       1.9262809,     -0.52097953,      -1.2737215,     -0.10047486,     -0.90956059,      0.11681746,    -0.091950723,      0.27557099,      -1.4403873,      0.98583273,      0.32435254,      -1.8559211,     -0.74670691,       1.1495401,     -0.29910798,      -1.1191379,       0.3038401,     0.067803025,      0.81053112,     -0.35908589,     0.034193146,      0.82658541,       1.1969942,    0.0032876846,       1.6109403,      -1.1743121,      0.53881127,      0.24809278,       -1.912811,       2.3418675,     -0.48159812,     -0.73837384,     -0.58322035,        1.377896,      0.94691472,     -0.24291552,      0.59432512,     -0.49239779,     -0.40161866,     0.025028528,       1.6887229,      0.88462099,       1.1289256,      0.48513292,      0.17625081,      -1.2077739,      0.39533303,     -0.49992193,     -0.17357249,     0.036506059,       1.1735999,      0.47321854,     -0.58280918,    -0.061570742,      0.34330233,      0.30187587,    0.0019265617,       0.3554101,      0.87510817,      0.68398875,       1.4205844,      0.39597726,     -0.30808226,     -0.48878743,     -0.77476731,      0.25354938,       1.8429759,       1.1768206,       1.5653715,     -0.14378115,      0.18115606,      0.16512255,     -0.73164398,      0.98976263,      0.66360958,       1.9690155,      0.63846403,     -0.48746051,       2.3935636,      0.53860375,     -0.75156179,       1.1321167,       1.5055271,       1.3320267,       1.8005759,     -0.51880697,      0.36359599,     -0.25672932,      -1.5934576,      0.93566023,     -0.17040884,       1.4750079,     0.011586351,     -0.44766637,      -1.2227768,       1.2595613,       1.2986383,      0.20065994,      -1.4692823,      -1.2681503,       -1.165847,      0.49458384,      0.64588046,      -0.5335491,     -0.41598263,      0.93052481,      0.04523455,       1.1656277,     -0.69429777,     -0.86441181,      0.44523813,       1.2013157,      -1.8730859,        1.125121,      -2.3736504,     -0.53564365,      -1.5282584,       0.2854543,     -0.10491827,      0.32653698,      -1.4869901,      -1.6560779,      0.53452557,      0.61490538,     -0.37212854,      -1.5120853,      -0.6702815,      0.22112335,       -1.164866,      -2.5336166,     -0.10148566,     -0.89207812,       1.0940613,      0.49699667,       1.8501339,     -0.54647148,     -0.31700102,     -0.55075049,      0.53672869,       2.4045629,     -0.96051292,     -0.40192793,     -0.57676406,      -1.1377205,     0.022467411,       2.0811636,      0.66382252,    -0.066727951,     -0.16155976,      -0.5192911,      0.02603609,      0.64722934,      -1.2600977,     -0.60631408,      -2.0827033,      0.62392592,      -0.2558563,     -0.10312063,      0.53973137,      0.90419388,      -1.4850159,    -0.022789571,      0.77621111,     -0.31658199,       1.2105315,      -1.3666561,     -0.53431108,      -1.7505075,      0.58259863,       1.2601601,      0.79342928,     -0.11995837,     -0.82933343,      0.87627369,      0.43658984,     -0.97956581,       1.5476967,      0.68933666,      -1.1805018,      -0.1273799,     -0.34306715,     -0.74453301,       -1.910793,      0.69453265,      -1.7494902,    -0.099508534,       1.0607715,      0.49279082,      0.36132244,     -0.44850422,      0.42241011,      -1.4956407,      -1.2359041,      -0.4003757,      0.86576663,     -0.98390282,      -1.4214613,      0.69108001,      0.77217173,    -0.049356279,      -1.5582814,     -0.53172134,     -0.79112527,     -0.32626036,     -0.86226705,     -0.69962811,      -1.5557856,     -0.10371185,      0.69253853,     -0.67090812,     -0.57044743,      -1.0968761,      -1.0238422,      -1.2169531,       1.5189311,     0.068703884,      -1.3045087,       1.8529538,     -0.39585046,     -0.80949527,      -2.2926956,     -0.43002265,       1.4731398,      0.63905686,       2.3937263,      0.17672874,      -1.7795681,      -1.2728636,     -0.25666539,      -2.2499336,      -0.7620604,      0.79320279,     -0.36980117,      -1.2735593,     0.075206027,        1.145047,      0.14747053,       1.4158037,      -1.0065681,      -0.4478243,      -1.0937606,      -0.3538159,     -0.92112832,       1.0528905,     -0.90116826,     -0.89051334,       2.4175198,      0.24228649,      0.46980597,     -0.37228314,      0.50595876,       1.0781704,     0.025405153,     0.094631702,     -0.58789638,     -0.85041515,      0.17541773,      0.23159793,       1.8929636,     -0.43812073,       1.1716588,     -0.45084429,     -0.02012911,     -0.20367762,     -0.69807107,     -0.11492369,      0.21580062,      0.31640953,      -1.3902443,      -1.1689026,     -0.16009848,       1.3586006,      -0.2389311,     -0.58154255,      0.79895988,     -0.33196598,     -0.81146907,     -0.86908964,     -0.32275566,     0.024738341,     -0.22708574,      0.29834257,     -0.35413647,      -1.5058059,     0.093669549,      -2.0826452,       1.8840775,     -0.18558318,      0.12939243,     -0.37465675,      -0.6340577,      -1.6211745,      -1.2709226,     -0.75070551,      0.76005671,      0.72036327,      0.64982054,    0.0072403794,     -0.66261885,     -0.52232586,     -0.44575249,      -1.0654837,     -0.11449717,      0.78116933,      -1.6812407,      -1.9228621,       1.7509353,       2.2990291,      -1.7767751,      -1.6705491,      -1.2203738,     -0.12413956,      0.55494733,       1.3266604,      -2.8365152,      0.56234058,      0.50749977,     -0.99547064,       1.0980085,       1.0688877,     -0.40963669,      0.88020441,      0.11935898,     -0.45076024,      0.45909668,      0.87651505,      0.32604949,      -1.1356238,     -0.81969661,       1.7091049,      0.25249659,       2.6000863,     -0.98016869,      0.56268078,       1.1755375,     -0.22931808,      0.76002454,     -0.39250223,       1.2905969,      -1.6756591,     -0.16634267,      0.67783555,     -0.74659432,        1.324912,      -1.2466908,      0.91303787,      0.32908415,      -0.4041554,      0.11914241,      0.20569429,      -1.4315686,      -1.0865409,      0.44900595,      0.44858723,      0.73899061,        0.757778,     -0.34177802,      0.61636628,      0.65445144,       1.1089414,     -0.15828675,      0.56455779,      0.23925895,     -0.95145035,     -0.15579735,       -0.209514,      -2.4803051,       1.6127989,      0.56537054,       1.6558461,     -0.22066367,      0.26276483,     -0.33622953,     -0.35025633,     0.037280565,      0.61978458,      0.14315093,       1.5243531,       1.2338548,      -1.2984614,     -0.28412917,       0.7061462,       1.5989547,       1.0292806,     -0.81764525,       0.6854223,       0.2084905,      -1.0055082,      0.75867406,      0.58428662,      0.80605859,     0.060694764,       1.1834258,     -0.85250762,      0.89892606,       1.1850268,      -1.3665819,     -0.25356821,       1.6017353,       1.3081572,       1.2702276,     -0.33618794,      0.53280392,     -0.87721518,       1.1440748,     -0.62981779,    -0.062391798,       1.2275595,    -0.097526754,     -0.26839316,      -1.0284918,       1.1305745,     -0.47418323,     -0.59161245,      -1.0413428,      0.21552983,       1.5258578,    -0.050642533,      0.79291582,     -0.66955426,     -0.20414724,      0.67722804,       1.1143154,      0.57485153,      0.29253368,      0.98386908,     -0.84427415,     -0.14123504,       1.3580003,       1.0470766,       1.3103357,     0.076739642,       1.9720044,      0.58968652,      0.82223207,     -0.55550389,     -0.19261147,      0.48428073,      -1.6109589,      0.68537319,     0.080865142,     -0.12898464,     -0.13289458,      0.76534514,    -0.092709378,     0.024924918,      -2.4497455,     -0.62899995,      -1.3847759,      -1.6188711,      0.21942771,      0.28827669,       1.6323467,      0.34538479,      0.32358419,      -1.1631765,      -1.0684018,     -0.29810771,       1.8533052,      -0.7282782,      -1.8370447,      -2.1661375,     0.074267263,       1.2837453,      0.59825206,         1.56042,      0.10329961,     -0.55915378,     -0.99472038,      0.30094019,       2.9485976,      0.24435196,      -1.1187851,      0.03893995,     -0.79606522,      -1.1656747,       1.1097738,     -0.29674594,      0.59202056,    -0.073611393,      0.17033452,     -0.77040009,      0.38115862,     -0.12437394,      -2.3858267,      0.44521208,      0.94541476,     -0.25672852,     0.039211746,     -0.96542011,      0.31492716,       -2.432073,      0.68653228,      0.29515568,     -0.26791013,      0.40193095,      0.15096026,      -2.4728428,      0.82457538,      0.63557953,     -0.35055555,      -1.8036065,       1.9500455,     -0.37885589,      -1.3721463,      0.21258625,      0.16987245,      -1.3385649,       1.1925662,     -0.81284077,      0.80266464,      -1.3656549,     -0.54617862,       0.2577758,     -0.43444377,     -0.38020005,      -1.1150789,     -0.25075738,     -0.29390063,     0.014358635,     -0.92933244,      -0.7430733,      0.41392644,     -0.72350485,      0.28796728,     -0.65824851,     0.073093294,      0.86638725,       2.6911183,       1.8591079,      -1.8688187,     -0.61282193,     -0.75436949,      0.17662015,       -1.934714,       0.9190905,       -1.681212,      0.53829555,      -0.3044469,      0.81152227,      0.96859014,      0.53284828,      0.31710293,      0.80404615,      0.75814321,      -0.2932558,      0.31620167,      0.19454486,       1.7208051,       1.5580943,       1.0182081,      0.24594785,     -0.40135807,      0.35670286,     -0.14427039,       1.3152848,    -0.054897751,      0.42758545,      0.98808366,     -0.88694139,     -0.31371832,       1.2596376,       -0.333794,      -1.3419489,      0.31935546,      0.48398206,      0.51281342,       1.4158627,      0.37785623,     0.021339326,      0.25213352,      0.95720938,     -0.19859411,     -0.24507102,      -1.5422571,       1.4421538,     -0.54486514,      -1.7966042,       2.0741373,       1.0190577,       0.7345159,      0.35943057,      -1.0556936,       1.0229737,     -0.76161002,     0.023771925,      0.59591254,      0.78897282,     -0.32621119,      -1.9739517,       3.2811672,      -1.8868485,     -0.36068597,     -0.61871483,     -0.22622908,       1.0894823,       1.1859954,      -1.0321757,      -1.2253471,     -0.14850681,     0.033627113,       2.1060018,       1.1589191,      0.10097975,      0.39602356,      0.29298696,      0.56954599,        1.606055,    -0.093764323,       1.0575022,     -0.46602722,     -0.92908357,      0.18190068,     -0.15613251,      0.19885824,      0.13839431,     -0.37782887,     -0.52549611,     0.092504298,       -0.317268,       -1.081621,        0.972857,       1.9113117,      0.88190588,      0.21091669,      0.53936819,      0.69574364,      -1.1278907,      0.85051582,      0.40098206,     -0.46835612,      -1.0441559,      0.26613819,     -0.40772085,      -1.8466498,      -2.0134016,     -0.86582847,      -1.0288886,      0.31033573,     -0.28368881,      0.15351559,      0.30842268,       1.7907698,       -1.025444,      -1.0169897,        1.479079,      -1.7223025,      0.64242602,      -1.2640717,      -1.9496451,     -0.97321842,    -0.093901189,       1.7579187,     -0.32711567,     -0.58076322,       2.1112783,      -1.3134474,      -1.5429971,     0.090235301,     -0.32228579,     -0.35496856,    -0.021721613,      0.20637118,       1.7161073,      0.29794732,     -0.34225964,     -0.12026365,    -0.073375044,     -0.20075987,      0.25574829,     -0.46261034,      -1.4608963,      -1.5645482,     -0.75999607,      0.94119462,     -0.85366191,      0.96718378,      0.95758455,     -0.54045628,       1.3016114,     -0.86304474,     -0.82076638,       1.4689647,      0.16461219,      -0.1760062,     -0.78287246,      -1.5923568,    -0.029538028,       1.1164862,     -0.26269836,      0.47940752,       -1.466088,      -0.1297315,       0.7690664,      -2.3266176,      -1.6257455,       1.1517004,     -0.74356836,        1.567304,      0.05142736,       -1.034411,       0.2458023,      -1.1542062,       2.6832369,     -0.23089166,       0.3961766,       0.7716867,     -0.37598927,      0.45817817,      0.19008268,     -0.71655842,     -0.91247855,      0.73108603,     -0.13497364,    -0.083924123,      -1.1750775,      -1.8368043,     -0.13058731,     -0.34815905,       1.3932036,      0.84016712,     -0.58431054,     -0.95757169,      -1.7846548,     0.020617612,     0.019259889,     -0.92299842,      0.70954411,      0.73793433,      0.42763922,      0.36616605,      0.72311672,     -0.64257582,     -0.73608686,       0.4615996,     -0.45400809,     -0.63593175,    -0.074657635,      -2.1535083,     -0.54733235,      0.40050958,      0.23217161,        0.355397,       1.1719998,      0.26162128,       1.9486282,      -0.6126764,      -2.0223741,      -1.0029609,      -1.0531114,      -0.9314644,     -0.46082559,     -0.60529247,     -0.51290462,       1.6149012,      -2.3788568,     -0.74095577,      0.73194389,     -0.26784175,   -0.0053549663,     -0.28186144,      0.48994632,       0.5464862,       1.0893785,   0.00033056885,       1.2102483,       2.0664738,     -0.46320904,      -1.1971875,     -0.20027203,      -0.9706955,     -0.24136262,     -0.12545887,    -0.074742036,     -0.31159307,     0.042066578,       -2.151831,     -0.12402215,      0.72549103,       -1.837599,     -0.79611364,     -0.53591075,      0.22288404,     0.013511981,    -0.076271316,      -2.1165017,     -0.30102832,      0.88348708,      -1.5489488,     -0.59727696,     -0.25382836,        1.039433,       0.6456319,       1.4507674,      0.55812266,     -0.27477076,      0.70525686,      -1.3146113,       1.1852332,      0.81812741,      0.50913885,      0.62845671,       -1.555375,      0.16091164,      0.80013551,     -0.47653128,      -0.5039978,      0.28690523,      -1.3696362,    -0.075924749,      -1.5077768,       1.2153179,      0.31883071,      0.52820149,      -1.8393746,     -0.49850171,       0.6418146,       1.5302597,     -0.59028241,     -0.12352726,     -0.35197545,      -1.0571785,      0.82060777,      0.18254129,      -1.8746304,     -0.37223549,     -0.87087959,     -0.58695799,     -0.29036643,      0.13285589,     -0.59159631,    -0.075446636,        0.273434,       1.7544758,     -0.16288227,     -0.11927157,      -0.1787952,     -0.02303294,      0.15875875,      -1.4974206,      0.38633303,      0.54857105,       0.7662938,     -0.46907214,       -1.076789,      0.10765289,     -0.48378947,    -0.027644868,       1.5202742,     -0.23151034,      -1.3400193,      -1.8025318,       2.1860502,     -0.67159825,        -1.10295,       1.0433888,      -2.5283333,        1.035476,     -0.18868481,      0.67336587,       -1.663894,      0.98161088,     -0.51896824,       1.3057311,     0.072891111,      0.14636418,     -0.76299604,     -0.54446643,     -0.36530281,      0.71508191,     -0.62635461,       0.3753267,       -2.694439,      0.55827154,      0.38569372,     -0.55159184,      0.34367283,       2.3649385,      0.34378549,      -1.0079241,       1.2921299,    -0.091517601,      -1.0777656,      -1.6351388,       1.0266272,       1.0999676,      -1.7286057,    -0.086685068,      -1.1742451,     -0.68635835,      0.14064386,       1.0560202,      0.16596998,     0.049301214,      0.66728036,       1.6774182,      0.42455789,      0.53427206,      -1.5031262,      -0.2334501,     -0.17910692,       -0.610373,       1.2421254,       1.7267718,      0.26266748,       1.4686653,     -0.81736506,      -1.4125523,       1.4846363,  -6.1311764e-05,     -0.31230777,       0.3213451,     -0.26055898,      -1.6090256,      0.17417632,      0.13322769,      0.63181045,      0.36860723,    -0.055480835,     -0.97169393,      0.11912435,     -0.35450344,      -1.3766866,       1.2435074,      -0.3916324,     -0.18908217,       1.3412772,      -1.4156373,     -0.38892836,      0.46700175,      0.19746721,      -1.8115499,      0.36841684,    -0.072192244
+2027Y,      -1.6069254,       1.1203222,     -0.92392771,      0.43570874,      0.41480099,       -1.227554,     -0.21582427,     -0.82744771,      0.73552666,      0.59458101,      0.91129095,     -0.41127392,      -1.1120937,      -1.1297557,     -0.42628456,     -0.80933817,     0.086287558,      0.70670402,     -0.40615977,       1.2772729,      -0.7193572,      -2.2529758,      -1.2679513,        0.104206,      0.89213245,      0.25738401,       1.0299407,     -0.17514864,    -0.067962881,    -0.034977797,      -0.4467111,     -0.44349991,       1.0171657,     -0.01268126,      0.73014341,       2.7564531,     -0.68253743,     -0.50347568,      0.58403126,     -0.73485217,       2.4627928,      0.57470973,       0.7101886,      0.22190392,      -1.3531286,     -0.14383636,      -1.1720119,      0.88618345,      -1.3000098,     -0.15809904,     -0.54288202,      -1.1472556,       0.7255121,      0.50192017,      0.37164252,     -0.98471857,      0.10517261,      0.14363712,       1.1064165,      -2.0525217,      0.92272728,     -0.34936143,      0.46952514,      -3.2778697,     -0.80375016,       1.7847818,     -0.18371476,    -0.026985285,        1.691413,     -0.74409117,     -0.52047842,     -0.68350757,      -1.5634581,      0.62104136,      0.75438328,       1.1623006,      0.50578835,      0.45499972,     -0.48064732,      -1.5388984,      0.76706086,      -0.8993895,       0.4932915,     -0.15361565,      0.55831235,      0.34979952,      0.40816557,      -1.8127753,      0.48082197,     -0.38241494,       2.3022188,     0.046598196,    -0.046658789,       -1.806227,       1.7871693,      0.32566087,      -1.0665285,     -0.13059264,     0.003767929,     -0.88489233,     -0.25758383,       0.2700342,       0.8985186,      -1.9278201,     -0.21343064,       1.7909214,      -1.3208036,       1.2716328,        1.598981,      0.14646038,      0.19044415,      0.82588694,      0.37166561,      0.45929856,       0.3827465,       1.0982687,      -1.0144001,      0.77270545,     -0.45719404,      0.42180259,      0.71340778,     -0.19989666,      0.65511899,      0.52489101,      0.39699994,     -0.41212756,      -2.4839819,     -0.47424052,        2.588119,       -1.328327,     -0.15019445,       -1.324924,     -0.44611217,       1.4753689,      0.92806652,      0.24580137,      -2.1299336,        1.067015,       1.9122588,     -0.15356044,      -1.1031014,      0.77703543,      -1.9013731,      -1.5728166,      -2.0778325,        -1.11954,     -0.52961151,      -1.4469598,     0.041508935,     -0.50789193,      0.48480251,     -0.46368002,    -0.074888877,     -0.67921559,       1.0110893,     -0.54187689,      -1.6653511,       1.6832339,     -0.86691225,      0.92998625,       2.4073292,      0.33083802,      -0.2517538,      0.99352959,      0.47034546,     -0.23567903,      0.42166495,      -2.7675308,      0.81791191,     -0.34281319,      0.90386319,     -0.25984582,     -0.13676081,      0.70349797,      -1.3511805,        -1.00569,     -0.31689864,      -0.8781963,    -0.097115644,        0.840122,       1.2269382,     -0.83754587,      0.94243848,     -0.42596137,       -1.469619,     -0.60306963,       1.8897458,     0.096344165,     -0.98995233,     0.050671282,     -0.86157635,      0.14979583,     -0.91276079,     -0.11551741,      0.87369693,       0.5717673,        1.345485,      -1.0833826,       2.1781372,    -0.079056173,       1.0169886,      -1.9883549,       1.7275975,      0.35004505,       1.0388438,        1.751159,      0.10028795,    -0.041481801,       1.0829318,       1.0007232,     -0.44286165,      0.69985027,     -0.29731535,       1.5626955,       1.0248349,      0.91634996,       1.0519754,     -0.57599605,      -0.2441566,      -1.0072675,     -0.75346381,     -0.55836078,        1.355578,       1.5182618,     -0.74223035,      0.23404031,      0.55648018,     -0.52976455,      -1.1432769,     -0.80707884,       -2.169867,    0.0082859632,     0.082939253,     -0.66876435,     0.086442444,    -0.059413369,      0.86455784,      0.24175974,      -1.0861588,       0.6368804,       1.3459025,     -0.86521415,      0.67433358,      0.15291866,       0.8506045,      -1.8782267,     -0.84300853,      0.29838425,      0.99359051,      -0.2002954,     -0.10998383,     -0.64053352,      0.51889036,        0.697303,     -0.20667621,       -1.012916,     0.091081333,      0.32451045,     -0.89439211,     0.075431192,     -0.96506446,     0.053991848,      -0.1839859,      0.66019284,       1.2685855,       0.7709259,      0.83401422,       -1.753776,       1.4146392,      -1.1690812,      0.75524814,      -0.5172316,       1.6877072,      -1.3709739,     -0.27759483,       1.0913338,      -1.2303016,    -0.020708421,      0.68024065,      -0.2123085,      0.34951707,     -0.56480208,     -0.49289384,     -0.71957237,      0.14508291,      0.13245981,      0.31186144,     -0.51147113,      0.27013221,      -1.1189945,      -1.0017329,      -1.1898067,          1.1659,      -1.0402746,      -1.0121964,      0.87265074,      -1.3469862,   -0.0063207013,        1.950548,     -0.33087259,      0.34644056,      -1.7807052,     -0.41915047,     -0.49311363,     -0.55616763,     -0.99833528,     -0.23165698,        1.079236,      0.22390563,      -1.1845516,       1.6076143,      0.41967133,       1.5717027,     -0.87859031,      -0.7826043,     -0.50795228,     -0.67405891,      0.27318394,       1.9272966,      -1.0057074,      0.17469772,     -0.17596689,       2.6855741,       0.8537196,      0.26976104,     -0.36316558,       1.1184261,     -0.21850049,      0.90456052,      -1.4799537,    0.0091386253,      0.70767899,        1.000056,      0.36705068,      0.52962838,      -1.1401296,      -1.4557263,      0.80651268,       1.0794793,      0.38066921,     0.076980153,     -0.37838579,     -0.89900086,     -0.74704857,       2.5732863,      0.31423081,     -0.35701095,     -0.75484626,       1.4796639,     -0.21333676,       1.2140201,     -0.48485754,      0.94387862,     -0.28630511,     -0.52791367,    0.0022602521,      -1.5653457,      0.49667066,      0.63860561,       1.9904044,      0.54375385,      -1.0547345,      0.30359715,     0.014550964,       1.1518658,     -0.65143916,      0.12321248,      -0.1205568,      -1.2484755,     -0.87644789,       1.4412319,     0.037249686,      0.86053905,       1.3234282,      -1.1037988,       1.3837478,      0.26622961,       0.2983432,    -0.048594113,      -1.5956686,      0.17012667,      0.21924515,       0.3812686,      0.67478376,       1.0970971,     -0.46180419,      0.94430612,    -0.055997099,     -0.30744907,      0.78111733,      0.30570388,     -0.58362454,     -0.14627335,       -1.444428,       1.9827325,       1.1670596,      -1.1337661,     -0.67148445,       1.7046532,      0.79864121,     -0.93231018,      -0.2900782,     -0.96066798,     -0.49207124,     -0.59140165,      0.58645542,     -0.20875669,      0.45993565,     -0.13804603,       1.0755959,      -1.3770058,      0.72937142,      0.52003092,     -0.47847101,       1.1754322,      0.61155722,     -0.51112863,      0.64427983,    -0.063078928,      0.82927226,       -1.818823,      0.78467103,      0.66488137,      0.39383812,     0.085691398,     -0.99035095,     -0.40772409,      0.48870564,     -0.30672939,      -1.1163273,      -1.0819649,      0.64045768,     -0.48026145,      -1.3758998,       0.3949715,     -0.22328105,      -1.3506377,      0.37639082,      0.13838038,     -0.32072004,      0.91959899,       1.3601278,      -0.6868292,      0.22065297,       -1.436928,     -0.44795458,      0.15767903,       1.6531769,     -0.62538491,    -0.027196774,     -0.53070166,       1.0719107,     -0.71592011,      -1.2327993,      0.25525751,      0.16405202,       1.7109981,       0.3521528,      0.51563728,       1.0163702,      0.81537019,      0.54256297,      0.85037283,       1.1262656,      -2.0194688,      0.19111779,      0.27780611,      0.24431377,     -0.35753452,    -0.078902087,      0.22851794,       1.6383379,     -0.96426837,      0.11700444,       0.9336885,      -1.2966638,     -0.08255064,     -0.16842595,      0.49085738,      0.17332299,        1.251989,      -1.1563584,     -0.68886914,     -0.49394602,     -0.20934141,     -0.93135444,       1.4273499,       1.0746524,     -0.19368482,     -0.96012964,     -0.68225966,      -1.1926892,      -1.2883151,       2.0662147,     0.033465944,      0.72264388,     -0.52142434,     -0.65559437,     -0.18983117,      -1.3965875,     -0.38876394,       1.8576504,     0.055606398,      0.64145584,      -0.7467788,      -1.4255248,     -0.21962595,      0.48519796,      -1.7108198,     -0.72120931,       1.3881951,       1.6678725,      0.46577262,     0.085366823,    -0.023700081,      -1.2258937,     -0.92659724,      0.84261707,      0.99201892,      0.71932586,      0.96138851,       1.1360702,     -0.21365024,      0.91859303,       1.4412036,     -0.91217366,       -1.896375,     -0.26163995,     -0.14606582,       1.1958714,       0.4132658,    -0.079517375,      0.44673358,     -0.95436845,       2.1274667,      0.41141457,      0.66395658,    -0.053037449,       -0.589493,     -0.88151065,      0.29732933,     -0.80673462,      -1.6811672,       1.5354877,     -0.90137966,     -0.58445678,      -0.6109067,      0.42441982,     -0.83298846,     -0.44289349,       1.3449475,       0.2860763,      0.87622406,      -1.5142336,     -0.69176477,       1.0460746,     0.015616336,     -0.86679581,      0.69503782,      0.80005403,      -1.5524621,       1.0470595,     0.028356613,      -1.5554076,     -0.82925919,       1.1803714,      0.90135273,       2.6544991,      -1.1218933,      0.31963976,      0.99319497,      0.18594199,      0.28407776,     -0.86200256,      -1.0599126,      0.30957855,       1.6215905,       1.4467884,     -0.31950166,     -0.11955866,       2.2287808,      0.49663052,       0.1590622,       -1.440431,     -0.41602513,     -0.17254912,       1.3836373,      0.24913289,       0.7233053,         1.54883,      -1.0632702,     -0.38076895,      0.28204688,     -0.62567315,     0.097373422,     -0.76366589,       0.9466482,      0.28336752,      0.35070639,        1.016333,      -1.2589818,      0.07897274,      0.21050172,       1.0225485,     -0.38887896,    -0.028968283,       0.2700169,    0.0060218714,     -0.72835443,         1.64217,       1.0299119,     -0.51097588,      0.58838405,      0.39693168,      0.54771405,      -1.5869671,      0.26581993,     -0.00520133,    -0.072125563,      -1.8307624,       0.2658262,      0.65173559,        1.480751,     -0.48896936,     -0.63380853,     -0.18203873,      -1.1925534,     -0.72140197,     -0.65988601,     -0.88105555,      -2.0066956,      -1.1200324,     -0.23413323,      0.71603833,     0.033193964,      0.91010989,      -1.6322938,     -0.66217864,      -1.3584065,     -0.22470361,      -0.4012734,       1.5250471,      -1.4563194,     -0.31673249,       1.8759907,       1.3484459,      0.76047797,      0.72639171,      0.49037625,     -0.34731204,      -1.7241795,       1.3740521,      -1.4430698,     -0.69640182,    -0.075802601,    0.0029597691,      0.79996542,      0.23244328,       1.4369522,      0.09645912,      -1.1046396,     -0.14217055,     -0.33032756,      -1.5068073,       1.0279016,       1.5153972,      -1.6440537,      0.98118001,     -0.14977096,      0.74859491,      0.31438686,      0.78492465,      0.70280608,       1.1048663,       0.0420397,     -0.85197157,      0.89980524,   -0.0077970588,     -0.77030523,      0.30617932,      0.75844079,      0.26769658,     -0.75535074,     -0.19401751,      -1.2210396,       1.0908524,     -0.67093466,    -0.023978261,     -0.12437816,       1.1885955,       0.6030166,       2.5021988,      0.64197023,     -0.51001449,       1.5039527,      0.75219257,       2.1364176,      0.03129857,     -0.75050677,      -1.0196669,      -1.4219149,       1.1664938,     -0.18427122,      0.50721756,        -2.27441,     -0.72633215,     -0.45928876,      -1.2651456,      0.43440194,       0.3775755,       0.1033494,      0.24629684,       1.0784318,     -0.41257993,      0.73743018,      0.10728682,     -0.57572582,     -0.41620876,      -1.1955734,       1.4127747,      -2.2274591,       1.8707058,     -0.30313951,      0.67072698,     -0.71531929,     -0.76327855,       1.9071441,     -0.88138857,       1.0476683,      -1.4969117,      -0.8550935,     0.078323373,      -0.2527074,      -1.9994738,       1.1218055,     -0.89151229,      -0.5047118,       2.0950657,      -1.8418182,        0.475033,     -0.10815569,      -0.2042701,       1.7123135,       2.5288585,     -0.18508455,     -0.32205173,       1.8011922,        0.735511,      -0.9819071,      0.76871519,      0.16744216,     -0.93289568,      -1.2231221,     -0.33651963,    -0.065082482,      -1.0765614,       1.0767184,     -0.71763542,     -0.56994672,      0.11067415,     -0.94902579,       1.4038117,       1.3902264,     -0.27521656,     -0.22553232,      0.48225787,      -2.8671385,      -0.5205934,       1.1445026,      -0.3102051,      0.64272124,     -0.17165435,     -0.20419661,      -1.9303536,       1.4505129,     -0.40443266,     -0.26910646,     0.087043396,     0.090224132,     -0.94861301,     -0.41410308,      0.38071651,     -0.74182138,      0.24948102,     -0.62429529,       1.4010538,     -0.51117449,      -1.0015902,    -0.024797185,      0.35585544,      -1.2860306,     -0.19186556,     -0.69575405,       -1.928695,       0.4971127,    -0.011292931,       1.7063131,    -0.095317146,       1.9419115,       1.6936572,      0.25934504,      -1.4692648,       1.2243968,       2.8869906,      0.23591537,     -0.11622344,      0.77600635,       1.4487241,       1.1401388,      0.18909581,     -0.21788201,     -0.82390717,      0.27512512,     -0.58364582,     -0.73505326,       1.0327402,     -0.57446643,     -0.16172629,      0.83026664,      0.40774866,     -0.40407337,      0.62110115,      0.31370252,      0.56727067,     0.069220842,       1.2965138,      0.68575914,      0.97674292,      0.69495067,      0.40900295,      0.64127319,       1.0457788,      0.25250841,       0.7891671,      -2.1545771,      -0.8310048,      -1.9502748,      0.63112735,      0.22376336,      0.47046613,      -2.4060675,      -2.8723368,      -1.0161553,      0.75395375,       1.1892141,       2.5523756,     -0.83783628,      -1.1537987,     -0.70561565,    -0.031540337,      0.39522293,      -1.3035253,       1.9876686,       1.3002627,     -0.81116992,      0.63724422,     -0.60954417,      0.30338731,      -1.1285265,       1.1611657,     -0.49476124,       1.9225055,      0.72721763,      -2.3743867,       1.0488484,      0.81281372,       1.4213825,       1.4302615,     -0.72374275,     -0.72241449,       1.2258697,      0.21476863,      0.58827821,     -0.59627857,     -0.64699591,     -0.59371419,      0.51513499,       1.2436502,      0.48765503,      -1.3360937,       1.9240227,      0.17608591,      0.56134992,     -0.99328475,      0.51987066,     -0.14745624,       -1.787743,      -1.0723679,      -1.1665042,        1.009566,    -0.044990685,       0.5481026,       1.4975516,      0.51322285,      0.76628455,     -0.99678166,       1.0320697,      0.40368469,       1.5900696,       1.4807324,      -2.0283589,       -1.106067,     -0.21383145,     -0.92468914,     -0.11321725,      0.65931176,      0.81827552,     0.025484889,      -1.1150946,      -1.8387631,     0.065761029,      0.30581399,      -0.6715369,     -0.66956814,      0.87062404,     -0.29659195,      -2.7651752,      -1.6002016,       1.0481422,       0.9221164,      0.55309666,     -0.62792277,     -0.14833956,      0.26647158,       1.0476435,      0.36259923,     -0.16372105,        1.275537,      0.67191688,      0.57344754,      0.49300457,     -0.38506466,       -1.276723,     -0.45226158,     -0.50912891,       1.1533926,     -0.44561763,      -1.0876791,       1.2372642,      -1.7458986,     -0.54336029,      0.17102708,     -0.72737528,     -0.30107835,     -0.28320087,     -0.47074643,       1.4880951,      -1.1651321,     -0.08522794,     -0.17427941,       -1.119748,      0.13713724,      0.47265432,    -0.091390835,       1.2985391,       1.0631563,     0.068942086,       1.0068671,     -0.53566991,       1.2800154,       1.8983016,      -0.5188932,      0.64842074,      0.72517738,      -1.2135939,      -2.2256508,      -1.6895112,      0.94191801,     -0.90615218,      -0.9216975,      -1.4771265,      0.36112619,    -0.099861737,      0.45682127,      0.69206444,      -0.2777601,      0.53206092,         1.00766,      -2.2101496,      0.39380778,    -0.020191499,       1.9290192,      0.87256254,      -0.5024277,      0.49514748,     -0.16914259,      0.85123197,     -0.80439567,      0.51035451,      -1.2746209,      -1.4212065,      0.40510004,      0.22633199,      -1.9302631,     -0.44865459,       1.4183833,      0.24475393,       -1.619031,     -0.73016597,      -0.4804096,     -0.42704669,     -0.22675661,      0.42999942,      -2.0213617,      0.59558799,     -0.83450696,     0.097605774,      0.10585059,     -0.18577621,     -0.95494682,      0.34870176,     -0.23472242,     -0.78897154,     -0.71253674,     -0.15061469,     -0.27838929,     -0.52518889,      -1.8565832,     -0.42248876,       -1.040947,      0.67652795,      -0.9985408,     -0.99825023,     -0.72214637,     0.077305099,     -0.39413974,     -0.06804241,       2.7953976,      0.99330982,       0.2498658,      -0.1860611,      0.70981639,      -1.5301267,       1.3586195,       1.1890603,     -0.10971352,      -1.2717018,     -0.37421977,      0.15102844,      0.81968643,      0.84572635,     -0.60176985,      0.59414349,      0.30970088,     0.063705546,      0.37113688,     -0.90928256,      0.13487696,       1.1306443,       0.5302085,      -1.4036309,      -1.2428969,      0.12365275,       1.9334525,       1.0081493,      0.17257624,       1.1199207,      0.62134219,     -0.76222506,     -0.38092719,       1.1420988,      -2.3042467,       1.8781159,      -1.6127697,     -0.50084226,      -0.2947117,        1.454853,     -0.72849846,      0.18862553,      0.55326897,      -2.5078958,     -0.92389146,      0.19494836,       1.7559553,      0.55306376,      0.98048352,       1.1913523,     0.091490335,     -0.89827679,     -0.37738373,      0.89588903,       1.1491949,      0.45524094,      0.78961886,      -0.4246628,      -2.4983983,     -0.45945807,   -0.0061660911,     -0.23662499,      0.31324043,      0.41377283,     -0.44243292,      0.44155084,     -0.39116831,      -1.2630675,     -0.68670983,      -1.2219158,     -0.15525188,       -1.542862,      0.21667116,      -1.7739569,      0.75710274,      -1.0592633,     -0.90646775,      0.54888841,      0.82467933,        2.358392,       1.0688782,     -0.21788563,    -0.081829763,      -0.1955753,    -0.096827025,     -0.32039761,     -0.57530336,       2.8711007,      0.43051717,      0.30827635,       1.7788871,     -0.66283901,     0.068258517,       1.3693458,       0.5220343,     -0.70630372,       1.0504622,      0.88914714,     -0.36486656,       -0.327166,      0.44060629,      0.96411642,       1.6620996,    -0.013003551,      -1.0954338,      0.91404119,     0.070366018,     -0.88690322,      0.01541466,      0.92407971,       -1.082117,      -1.1525872,      0.64944884,      -0.2212596,       -1.143481,     -0.83482959,      0.89352688,     -0.13424432,     -0.71962905,     -0.50798435,    -0.097794287,      0.87254252,       1.0412768,     -0.51927632,      0.40319782,     -0.29494594,       1.5626603,       1.6036262,      0.91270317,     -0.42512913,       1.3618751,     -0.11826645,      -1.8608438,       0.1290978,      -0.3435499,      0.46377796,     -0.29050313,       1.3233854,     -0.15408009,      -1.7607267,      0.46673703,     -0.30074671,     -0.25458061,       1.7347568,      0.28393909,      0.21043166,      0.79063337,      0.88908265,      0.20203762,     -0.15586183,     -0.55537785,      -1.8634161,     -0.53408609,     0.099931498,      0.32544082,      -1.9277603,    -0.052160451,     -0.23020042,       1.3567112,       1.6990502,     -0.63681012,      -1.0505892,       1.9014582,       0.4334539,     -0.50028963,       1.4093484,       2.0311067,     -0.82409699,       1.3367602,      0.66343595,      -1.9290088,      0.30672365,       1.5380859,       0.2125186,       0.3948048,       0.1234216,      0.93173476,     -0.67091718,     -0.80592425,       1.9086915,      -1.0533843,     -0.78849524,       1.1545657,         0.71464,      0.89689721,     -0.15701393,     -0.61923519,       1.8008119,      0.67013701,      -1.4053956,     -0.17275772,     -0.33438993,     -0.24083357,     0.067313315,     -0.28294022,       1.4135471,       1.0362256,       1.8405902,      0.60946529,     -0.56503465,    -0.036441828,       1.0261552,     -0.99165494,      -1.4100965,    0.0067801457,       0.0778229,     -0.16249273,     -0.75966428,       1.4341349,     -0.32687715,      0.73637225,      -0.8544271,     -0.57232744,      -1.2448663,     -0.48209298,     0.097702396,       -1.006964,      -1.0639242,      0.70862216,      0.12291579,      -1.1403288,      0.78177268,       1.1853019,      -2.3946052,     -0.92256161,       0.4935403,     -0.63763235,        -0.18195,       1.2872198,      0.77513904,       1.3876519,      0.24954518,      -2.1740552,        1.228355,     -0.30595546,      -2.4660101,       1.0253575,     -0.27445811,      0.99347821,      -1.8816798,      0.73807188,      -0.7933363,      -1.0410146,      0.47826713,      0.27329324,     -0.52157028,     -0.14118264,       -1.388869,        -1.31255,    0.0010500594,      -0.2002389,      0.23227679,     -0.14060435,      0.40997229,       1.1398148,       1.9115578,     -0.17788036,        1.518554,      0.46396834,     0.007164038,      0.24502248,     -0.92867574,     -0.28744727,      0.19141443,     -0.08573061,      -1.0865474,      0.55249545,       1.6615298,      -1.3276442,     -0.53946597,      -1.0811302,     -0.42962958,      -1.1400067,     -0.91384325,     -0.67774804,      0.79534874,     -0.78751848,      0.76717587,    -0.066996151,      0.48889283,       -1.468115,      0.39823306,       -2.439127,       1.3477312,      0.29854616,       1.3113995,     -0.69466568,     -0.74441607,      0.73913881,       1.1260393,      -2.2913325,     -0.49390387,     -0.17309383,     -0.90799497,     -0.66837675,      0.64221707,      0.61910587,      0.45787595,       1.4159196,      -1.0449341,      -1.0645536,     -0.15830315,     -0.18413042,      0.04593022,      -1.8898661,       1.1323982,      -1.1767593,     -0.63559407,       0.2137469,     -0.21005423,    -0.009445602,       1.4209329,      -2.3609067,     -0.44121501,        1.580785,       1.3672442,       1.0714788,      0.76209875,      0.29500205,       -1.159429,       1.9144637,     -0.18522285,     -0.20963512,     -0.35830656,     -0.28076864,     -0.84392488,      0.50371244,     -0.41542754,      -0.3381992,      0.31816906,     -0.51808324,      -0.4349723,      0.45058326,      -0.5629329,       1.9431551,     -0.36000097,    -0.075107268,    -0.067037742,       1.0102108,       1.8332434,      -1.5488958,     -0.26039601,       1.1833069,      -1.2920759,      -1.2802387,      0.79349655,     0.052010262,      -2.2917439,       1.2086609,      0.40830937,      0.71508632,     -0.75052904,       2.2771243,       0.3166505,      0.29229435,      0.26172266,     -0.20611124,       1.0634136,      0.46730166,     -0.45919225,      0.15777152,       1.8580802,       1.2829203,      0.79880474,       1.6570808,      -1.9997024,     -0.32312113,       1.2157984,      -1.3275185,       2.0365547,     -0.95694329,      -1.1030474,      0.14257257,       2.2275209,     -0.15874333,     0.091964843,     -0.49417805,     -0.90033535,      0.49408962,     0.056742573,     -0.71047111,      -1.7895208,     0.018905556,      0.17422081,      -1.9079193,     -0.27754545,     -0.44917912,        1.025626,      0.63926365,     0.045477383,      0.41020351,       1.1019715,     -0.74242309,      0.27523406,      -1.2644241,      0.79407045,      0.17582237,       1.6403749,      -1.6039396,      -1.2125423,      0.50701189,      -1.2069993,     -0.52920481,      0.62056539,     0.065169642,     -0.29162803,     -0.30498678,      0.87171034,       1.5967053,       1.3733037,       1.1678524,      0.38836059,        2.250034,     -0.91651229,      -1.7090642
+2028Y,      0.62936933,       1.6177082,      0.51770772,      -2.0094024,       0.1985128,       1.4815257,      -2.3552078,      -1.2330785,       1.4794377,       1.1843581,      -1.3583383,     -0.23605708,       1.9603999,      -0.1849776,     -0.87882671,     -0.16255873,      -1.2101921,     -0.95738998,     -0.42637686,    -0.048005136,      -1.2252912,       0.2013566,      -1.6341802,      -0.1365917,      0.19954815,      0.68222455,       1.3562397,     -0.35364271,       2.4155215,      0.77236443,       1.6382254,      -1.1239572,    0.0051155461,      0.66494944,     -0.50658704,      0.60840142,     0.069845349,     -0.70546883,    -0.071414152,       -1.573654,      -1.0877367,      0.78411736,     -0.68739125,     -0.50482174,       -0.231044,     -0.29083656,      0.72845677,      0.23137204,       1.0201399,     -0.48762049,     -0.52302476,     -0.61713479,      0.12614434,      0.78310885,       2.2502657,      0.95600339,     -0.56233149,       1.4069154,      -1.3056267,      0.30424233,     -0.85966787,     0.089693705,      0.74454022,      -1.0866501,      0.25103344,     -0.34822033,     -0.69668623,      -1.3749858,      0.52013916,       1.4948635,       1.1939102,       1.5724383,      0.53118546,      -1.5117857,       0.3304096,      0.33327473,      -1.2837267,    -0.036211366,      0.23230165,      0.73897098,     -0.22439508,     -0.37171062,      -1.2650296,      0.40670298,      0.56025931,       0.2194823,      0.89736754,      0.35336595,    -0.020331411,      0.23439541,     -0.31804235,      -1.6948313,      -2.1194033,      -1.4149561,       1.6595689,      -1.3956826,      0.26476629,       0.6141184,       1.2640744,       -0.678028,      -1.6456171,       1.6273961,       1.0080499,     -0.72998395,      0.81396777,      -1.0554292,     0.036735495,      -2.2816687,      0.97223321,       1.2689115,     -0.82233258,       -0.742597,     0.054332916,    -0.070329273,    -0.017441795,       -2.127424,      0.45869884,     -0.10672195,      -1.2291289,     -0.73108146,     0.021278036,      0.94201673,      0.61663335,       -1.155348,     -0.92151734,       1.9539171,      -1.7322279,     -0.94417879,      -1.9968025,       1.6136055,     -0.83375096,    -0.031149967,      0.86131068,      0.75821908,      0.21819794,      0.25614266,     -0.15497812,      0.29476252,      0.11543734,     -0.32257581,     -0.53335369,      0.16403451,       1.2801921,       0.7796009,     -0.22966094,     -0.72826542,        1.318725,      0.10369851,      0.70507115,     -0.89143062,       -0.255527,        1.229723,     -0.71555091,     -0.28321504,      0.32079766,      -0.1575704,     -0.28106855,     -0.46120461,     -0.42632289,       1.0649757,       0.2275342,     -0.68475996,       1.8502912,     -0.34160152,     -0.89741917,       1.4202812,    -0.014401961,     -0.50860182,     -0.28955246,      -1.0361911,     -0.35477186,     -0.83319839,      -1.8083295,      0.28912941,       1.7493806,     -0.72543023,     -0.94328506,      -0.9438368,       2.8784884,     -0.85759741,      -2.0292579,      0.19795078,      -1.0547662,      0.73984804,      -1.2100208,     -0.71940885,      0.36638231,    -0.098719836,      -1.1295689,       0.3595627,      -0.4914496,     -0.37550305,      0.51235107,      -0.6204921,      -1.3355126,       1.8122369,     -0.32450169,      0.46144358,       2.1445436,      -1.1719651,     -0.27729264,      0.48665206,      -1.0552812,     -0.72660895,      0.32047317,      -1.1548251,      0.97955922,       1.5077637,      -1.2511248,     -0.52272202,     0.062131096,     -0.45940038,       1.7319056,      0.43572278,       0.2450245,     -0.55906674,     -0.41271525,      0.81127935,      -1.8789905,     -0.93970966,      0.12632262,      -2.2623579,      0.40437556,     -0.91769472,     -0.16518617,      0.32002439,     0.063858635,      0.12970552,        -1.49629,      0.55065537,   -0.0011743958,     -0.45844652,     -0.62387668,    -0.022774533,      0.56639713,     0.095533822,     -0.38433677,       1.8756132,      0.55305048,       2.9619481,     -0.88160932,      -0.2426436,      0.30854197,     0.035152747,      0.45072606,     -0.11784335,     -0.27810428,     -0.68384287,    -0.070501421,      -1.6217962,    -0.064044336,    -0.031698191,       0.4550339,      -1.6435705,     0.084883175,     -0.90141609,      -1.5939071,      0.57886094,      0.28837653,      -1.5503225,       1.2675126,       1.2727453,      0.62604978,     -0.33667867,      0.85111347,      -2.6875638,      -1.9722054,      0.16389979,      -1.3461405,       1.4026897,      0.21040556,      -1.0906156,      0.18718874,     -0.39960381,      0.55137306,      0.10759783,    -0.015483609,      0.71925121,     -0.54376084,     -0.17451977,     -0.58482312,      -0.3272111,    -0.093304728,      0.16847121,     -0.15860186,      0.53520378,     0.090555995,      0.55229496,       1.0358486,     -0.72129858,      0.48047076,      0.55689968,     -0.93340578,      0.23459546,     -0.62279082,    -0.074203287,     -0.88154513,     0.023459147,     -0.15009062,       1.6168778,     0.051442063,       1.2542421,       1.5361083,      -1.2534484,     -0.88523155,      -1.7098565,     -0.38866026,      -1.7750443,      0.40413915,     0.063303663,      0.74150271,      -1.2056237,      0.68985975,      0.17698456,    -0.031416285,      0.34564077,      -1.6235555,     -0.11620903,     0.068899738,     -0.14653035,      -1.2240173,     0.096290089,         1.18348,     -0.90608079,       1.4219651,      -1.5924491,      -1.1822624,     -0.55144925,      -1.3611315,     -0.10189753,      0.21720475,     -0.24876293,     -0.53940418,     -0.50362617,      0.80144271,     -0.74856816,       1.5537216,       -1.157091,      -1.8407572,      -0.2562111,       1.2183002,      -2.3946712,       0.3395021,       1.8039725,       1.0389314,      0.88631113,      -2.1864566,      0.24443291,       0.8305517,       1.3729369,      -1.3237971,      0.53806078,      -1.4383388,      0.41652098,       1.4489032,     -0.72179635,     -0.10742898,     -0.11377589,      0.46528321,      -0.2359169,      0.86740673,     -0.86908554,      0.10943977,      0.51381854,     -0.25730136,     -0.45519044,      -1.0011537,     0.019040824,     -0.61090636,      0.36474233,      -1.5034004,       2.1380636,     0.036069108,     -0.28831454,      0.95321226,      0.60507667,      0.64301609,     -0.37270676,      -0.6556801,      -1.0292297,      -1.5703438,       2.6467481,      0.66381317,       1.1608262,   0.00061537773,      -2.4049612,      -1.6330854,      -0.6037262,      -1.3527707,      -2.2020948,       1.1379629,       1.8258341,       2.0885598,      -1.5919295,       2.2330463,      -0.9432223,      0.82365656,       0.3769069,     0.096912432,      0.36842721,     -0.46034554,   0.00071281198,      0.88745213,       1.0350027,      -2.0766744,      0.81980386,      -2.1152547,      0.91698116,      -0.9016221,     -0.54141756,       1.1765255,     -0.48657843,      0.40381089,      0.37417012,     -0.56535684,       1.2637281,      0.41303558,     -0.25137572,     -0.01959086,     -0.83459813,      -0.6812658,       1.0346891,     -0.84340563,      0.67825328,     -0.29636261,      -1.0319746,      -1.5876601,      0.73512234,      -1.0529771,      -1.1445175,     -0.32058594,    -0.060613198,     -0.95267039,      -1.6881309,      0.22190459,      0.58422503,      -1.1941837,     -0.16667048,        0.762538,      -1.6534239,      0.34840169,       0.2017087,     -0.70142777,      -1.1107707,      -1.1852617,    -0.057695767,      0.27711138,     -0.84458437,      -0.5880283,     -0.38968418,     -0.43633124,       1.2158255,      0.82906749,      -1.5194239,      0.23051278,     -0.36695277,      -1.4849149,       1.9158183,       1.5430594,       1.3678057,     -0.31681849,       1.0478948,      -1.0220544,       1.1319519,     -0.39658273,      0.61593729,      -1.3818299,       0.3370629,       -1.826504,      -1.5911055,      0.62874466,     -0.34297129,      -1.2241274,      0.52585968,      0.61460338,     -0.38586858,      0.49124791,      -1.5282032,     -0.21137817,      0.28971133,       0.3210978,      -1.5899161,       0.8619562,       1.6797605,     -0.12663969,       2.1583973,      0.87597825,      -1.4609264,      0.16317361,    -0.020289013,      0.21812514,      0.85107201,      0.27621435,     -0.78674804,      0.14718382,      -1.4479524,     -0.63218482,      -1.2696325,      -1.6787183,      0.94983529,      -2.3586914,     -0.63537513,      -1.4892209,     -0.16179342,      -1.9560004,      -0.1014567,     -0.55026163,        2.601665,       -1.134834,      -1.1107696,     -0.76815205,        1.103387,      0.54566926,      0.83820398,      0.33562239,     -0.22762288,      -1.9857003,      0.68858558,      0.21623695,       1.1133313,      0.79749024,     -0.93327961,      0.47646272,     -0.76944995,       1.5826303,       0.5186662,      -1.9295182,      0.73013372,      0.77256968,     0.022011542,     -0.35866114,     -0.28196037,       0.7684426,     -0.40909718,      -1.2381464,      0.77126131,      -1.2817309,     0.027492069,        1.874442,    -0.043960788,     -0.70084824,      0.61546468,       1.1262219,     -0.66703188,     -0.23230748,      -1.2421851,     -0.75740157,      0.71382338,     -0.17780028,      0.33682824,       0.9361871,     0.076736865,     -0.52994585,      0.64823207,      0.34908308,       1.0626627,     -0.18574081,     -0.39349752,      0.44984576,      0.14528461,     -0.74278632,     -0.03987101,     0.038850461,      0.53787017,      0.32662974,     -0.20728906,      -2.3789742,      -0.1302493,     -0.19742238,      0.20502865,      0.18728536,      0.65353684,      -0.2342798,      -1.8721908,       1.6169105,       1.3446375,     -0.62130667,      0.64422442,       0.8950974,     -0.65112667,      0.75929341,      -2.0929862,      0.90157675,    -0.096507428,       1.6649419,       1.0113348,     -0.53711854,       1.3244122,      0.15531007,    -0.095273726,      -2.1183381,      -0.1277829,     -0.34278345,    -0.087668869,    -0.057077118,       1.7995579,      -1.4280161,     -0.65421785,        1.001929,      -0.8915054,      -1.9900641,      -1.1343869,      0.16269927,     -0.36130566,     -0.20470554,        1.460339,     -0.27913501,      0.80599843,      0.52161551,     -0.74697088,        1.029301,      0.43602596,       1.3899076,      0.69506565,      0.81557538,     -0.20612632,     -0.54703385,      0.52870318,      0.96686123,      0.72278091,     -0.60854407,    0.0081540934,      0.66805791,     -0.50721851,    -0.087125666,       0.1967693,      0.21224179,      0.42292249,      -1.5513102,      0.47569117,     -0.33663942,      0.88749723,      0.50912028,     -0.57927149,      0.96202769,      0.50644419,     -0.17195992,      -1.5858309,      0.63049156,     -0.40446178,     -0.86058159,     -0.78997908,      -1.4980919,      0.59363128,     -0.15587326,      -1.0582603,      -1.1369085,      0.43882847,      0.11303624,      0.78885044,     -0.83271563,     0.015426241,       1.1561449,     -0.34156212,      0.16342494,      0.70132587,      0.12614538,      0.55189244,     -0.42108708,       1.0420209,      0.99927189,      0.80593053,       1.5835813,      0.58899066,   -0.0078343619,      -1.2577739,      0.25302312,      0.35646432,       -3.237418,     -0.86817628,      0.18410617,      -1.3107796,      -1.8467126,      -1.4299923,      0.12170258,      -0.6177071,     0.091838294,       0.5256773,      -1.6896805,      -1.1930751,      0.38504358,      0.20573899,     -0.55942675,      -1.7548836,      -1.4725256,      -1.8989482,       -1.389125,      -1.3827289,      0.69063771,       -0.286299,      0.51524431,       1.2502072,     -0.18060939,        1.568233,      0.13045393,      -1.0097827,       1.9848935,      -1.1651589,     -0.20972529,      0.16774491,       1.2829951,      0.50304218,      0.64868725,      -1.0091585,      0.21286854,     -0.40257556,     -0.28619534,     -0.30436549,      -2.5097563,       1.4657945,      0.17554757,     -0.84711324,       2.3397403,      0.42471518,       -0.125905,      -1.0777446,       1.7890147,     -0.53731922,     -0.80753773,     -0.45036601,      0.85195628,     -0.58497445,      -1.2562372,      0.73616514,      -1.0721737,      0.73201667,      0.33601653,      -1.0809813,       0.6610853,      -2.1222078,      0.36996531,       0.6966325,     -0.36990324,      0.65150984,     -0.44831224,      0.14623286,     -0.24733296,     -0.18227995,     -0.29034301,     -0.79023351,     -0.32545183,     -0.81472531,      0.80745168,     -0.21564331,    -0.095821061,     -0.30604302,      -1.1595505,      0.39475358,     -0.70890458,       1.1043612,     -0.84178137,     -0.16485605,      -0.4177921,      -0.3117938,      -2.2906272,       1.6258265,      0.53605857,    -0.034919106,      0.83667338,      -1.0169663,     -0.93045009,      -2.1255566,      0.31626393,      0.61584489,      0.52063701,    -0.001236868,      0.84214857,      0.63501293,       1.4017084,     -0.51090401,      -1.1989437,      0.19386536,      0.97179693,      -1.5510086,        0.368778,       1.6544614,      -0.2864828,      0.93232989,      0.88838436,     -0.12488637,      0.43425964,       1.7922292,      0.78956669,      -1.1816699,      0.34958157,     -0.81480562,      0.68676778,      -0.7652477,     -0.52641175,     -0.47977053,     -0.79565148,     -0.48420662,     -0.18761599,        1.367279,     -0.38806886,      0.08542721,      0.11721815,      0.88007122,      0.12480224,     -0.69337223,     0.098845009,      0.44802343,     -0.66406435,    -0.082923917,      0.89412562,     0.012050024,      0.54202953,      -1.6909349,     -0.63600989,       1.2310723,       1.3959602,      0.11998418,       1.1084807,      0.81192183,        2.156207,      -3.1509013,     -0.45767051,       0.5676389,     0.056246604,       1.4126551,      0.13573042,     -0.46896925,     -0.11459047,      0.72247048,      -0.7209353,     -0.81461284,      0.38596831,      0.94618631,      0.85379242,      -1.2133311,     -0.14860825,     -0.11784038,      0.65614537,      0.44504777,      -1.5797057,    -0.065886774,      0.52463375,      0.89309022,      0.77578856,     -0.10068897,        -0.52034,       0.9528224,     -0.34909968,       1.4278304,      0.54898954,     -0.55074963,       1.8749443,     0.074541503,     -0.83860731,      -0.7523968,     -0.66093964,      0.26958997,       -1.537175,       0.3987084,      -2.1082129,     -0.43883859,       0.1668769,     -0.63807142,      -1.1217358,     -0.89228869,       -0.352344,     -0.95726732,      -1.0641329,     -0.52603676,         -1.5548,     -0.15416493,      0.12475309,       1.1233612,      -1.1464428,      -2.3227821,     -0.87258087,      -1.1622252,      -1.3092567,      -1.0292811,      0.74706068,     -0.86086694,    -0.010249714,      0.88956946,      0.87614354,     -0.68259092,     0.041758204,     -0.18520679,     -0.89414092,      0.21588813,     -0.80203881,        0.370148,     -0.06700498,      0.70044072,   -0.0012876394,         1.63826,      -1.5972553,      0.83733138,      0.15703071,    -0.094910544,      -1.6601377,      -1.6554707,    -0.099842134,     -0.20689566,       1.7355471,      -0.3750386,     -0.57621264,        0.489581,       0.3025988,      0.11162645,       1.2704193,      0.54379414,       1.7634387,      0.42804673,       1.2732178,       1.5346109,       1.5718035,         1.80626,     -0.80965045,      -1.2944487,      0.10880406,     -0.21759272,      0.67429624,       1.9921471,     -0.62718756,     -0.25253227,     -0.12722209,     0.092208077,     -0.61426232,       2.1613247,      -1.7070782,      -1.5655692,     -0.88500676,      0.21047158,       3.3180467,      0.31259644,      0.22291932,      -1.1482863,     0.086656405,     0.080332671,       -1.049407,      -1.4556175,       0.3994352,      -1.1686231,      -1.6168482,     -0.82789268,      0.05001551,       1.3678633,       1.5516826,      0.34199877,      0.33104365,     -0.90931647,     -0.57179119,    -0.092112748,      -1.5133779,      0.12175153,     -0.20242069,     -0.76711161,     0.059299171,     -0.11122704,       -1.321548,       1.8738279,      -1.0240529,     -0.33420968,      0.80233764,      -1.0363001,        0.830123,       1.3729191,      0.55060935,      0.25579448,     0.058623483,      -2.5560836,    -0.096644276,      0.28237171,     -0.45069789,     -0.51631993,        2.339961,     -0.57584762,      0.39771391,     -0.71913296,     -0.40028981,        -1.10518,     0.050632401,     -0.47314488,       0.4683304,       1.4964816,      -1.5625599,     -0.28930872,      -1.2087487,      -1.0167158,      0.90026371,     -0.36212404,        0.957041,     -0.66138714,      0.33449901,      0.35653156,      -1.7874615,     -0.03440234,      -1.1867304,      0.29641586,      0.40676737,       1.1607085,     -0.93944095,     0.091179452,      -1.0680595,       1.9161016,      0.13735481,       1.1714775,      -2.0846083,      0.65245701,      -1.7479465,     0.029358968,      0.80582408,      -1.0912755,       -0.466782,      -1.1457577,     -0.87295065,     -0.49731895,      -1.5381363,     -0.31821541,      0.36787314,     -0.42388724,       1.4070482,      -0.6588542,     -0.75712758,     -0.87159243,     -0.24430972,      -1.2240891,    -0.058874211,     -0.38130167,      0.22094544,      0.82027323,     -0.78305823,       1.2369894,      -0.3682747,      0.39073665,     -0.88402027,     -0.47148659,     0.034794118,       1.5052392,     -0.57697679,      0.37252588,     -0.31208748,      0.54085578,       1.3049138,     -0.17168806,      0.65300935,        1.876429,      0.80308503,    -0.080931445,     -0.44545496,      0.40746714,         -1.0171,      0.59693788,       2.3591169,      0.97445744,       1.8970103,      0.84113242,     -0.94826914,     -0.46978757,  -0.00030121002,     -0.36887926,       1.2628356,   -0.0059933437,       1.7473933,      -1.5754173,      -1.1948435,      0.23797303,      -1.2854902,      0.35278711,      0.16340867,      0.35478756,      -1.4528767,     -0.32216484,      -1.3936551,     -0.70206473,      -1.5208483,      -1.3375498,     0.062167862,       1.9837712,     -0.42525662,       1.3405108,     -0.03634009,     0.026957776,      0.89207601,     -0.29582854,      0.84052305,      0.56855516,      0.37542597,     -0.59886757,      -0.4814146,       1.1083863,      0.11571558,     -0.65388819,      -1.3141535,     -0.44362909,     -0.58648426,      -1.7961998,    -0.088674064,      0.14872272,      0.74847329,     -0.75179734,      -1.4020579,       1.3729426,       1.4913689,      0.59550958,      -1.7473625,      0.45075175,     -0.24258203,      0.59492487,      0.73173856,      -1.2964835,     -0.75195196,      -1.8283322,      0.99479217,       1.3171708,      0.96131196,      0.61311453,     0.019695721,      -1.5101079,      0.63282638,      0.51979659,      0.59698165,      -1.7588804,       1.1556605,      -1.3285238,      -1.2933448,      -0.1937798,      0.34104795,     -0.63214634,     -0.59315114,     -0.53231968,      0.66943259,       1.4934263,       1.0782965,      0.55653671,      0.17661982,       1.8237153,     -0.19329055,     -0.71916604,      0.34456967,      0.74435937,      -2.4298704,       -1.408414,     -0.68536297,     -0.40513391,       1.0070412,     -0.19594955,      -1.3625072,     -0.30536265,       1.4084492,       1.0523134,       1.5960938,       2.1565875,     -0.52865846,     -0.44351204,      0.29572041,       0.7249729,      0.95084936,     0.076876945,     -0.86261871,      0.89906839,       2.3463998,       1.4172024,      0.31294766,      -1.7556024,      -1.5908815,       1.8759824,     -0.31839273,     -0.73517552,      -1.0772807,      0.75991929,      0.74622598,     -0.83225932,     0.042642318,      0.93935727,       2.2760563,     -0.70900895,      0.57704415,      -1.1336687,       -1.018251,      0.34292467,        1.441229,       1.0328247,      0.86332839,      0.66180515,      -1.9039739,    -0.076753353,      0.85875104,     -0.95996314,      -1.2357891,     -0.75457145,     -0.39443888,    -0.064449687,      -1.1443389,      0.95238959,     -0.54394602,     0.095759439,       1.0844038,     -0.40892822,      -1.0798663,    -0.082795325,     0.088558083,      0.33268716,     -0.28293709,     -0.37772043,      0.83000127,      0.37154474,      -1.2962393,      0.24930655,      0.50417042,      0.31952706,       0.3750213,       1.1008213,     -0.42146874,      0.10185737,      -1.7443887,      0.44072281,      0.22930756,      0.31057011,     -0.22937707,       -1.720259,      0.45864137,    -0.037325167,      -1.4069797,      -2.1200033,      -0.2033038,      0.24545194,      0.10976252,      0.27882113,       1.6012389,     0.083164908,        1.331926,      -0.5850053,      0.18812546,      -1.0789137,     -0.76256364,      0.90251849,     -0.94049567,       1.2924218,    0.0026716037,     0.053966527,       2.2544339,       0.4928662,     -0.51706559,     -0.15776386,     -0.84268108,     -0.94781967,      0.60037628,    -0.021497031,     -0.63664124,     -0.50039269,     -0.75952259,     -0.80234918,      0.89660016,     -0.21859812,     -0.71296783,      -0.4738227,       0.9627472,     0.067876215,      0.38611964,      0.27938283,      0.30933874,      0.38127944,      -1.0629457,     -0.53596879,      0.07544499,     0.050600162,      -0.7598251,     -0.92855935,     -0.85362561,     -0.55561782,     -0.27017217,     -0.16194565,     -0.24042579,      0.73654867,    -0.038587679,      0.51966547,     -0.18850963,      -1.3877044,     -0.33921323,     0.084005638,      0.54639822,      0.30774442,      -0.1126546,     -0.44790954,      0.87231437,     -0.62590763,        1.127178,      0.77116464,    -0.035997166,       1.8752809,     -0.41137077,      0.24166732,      -1.8931416,     -0.33648668,      0.49790168,     -0.38231135,      0.27645104,      0.46911444,       2.6005049,     -0.53431709,      -1.4868229,     -0.44030748,      0.19038207,       1.1238018,       2.2839298,     -0.84911742,     -0.58089309,      0.36066791,       1.4126058,      -2.5233618,      0.65320508,      -1.6507621,     -0.65735935,       0.9266627,    -0.022896796,       1.2111698,      0.35150179,      -1.0803174,      0.41705515,       0.7474583,      -1.3335901,      0.16827233,     -0.66965965,    -0.045657511,     -0.90475885,      0.31280035,     -0.48370377,     -0.70687994,       1.7731904,     -0.25697407,     -0.49445056,     -0.40998974,     -0.66732997,     -0.69492977,     -0.83624798,      -1.4066536,      -1.8738451,         1.27035,       1.1730069,      0.16332711,      0.37957492,      0.86143974,      -1.6232461,     -0.29288525,       1.5477402,     -0.17664624,      -1.7306141,     -0.41581336,      0.60846656,    -0.084684766,     -0.15560078,      0.78694188,      0.32831895,      -0.5392386,       1.3097302,      0.62667292,      0.84606424,      -1.1804874,    -0.094589151,     -0.23143907,      0.12868408,       1.6781239,     -0.12803448,      0.72783551,      0.17993205,      0.19312863,     -0.26106405,     -0.39409655,     -0.69151209,       0.4505379,      0.52899944,      0.58830009,       1.3365633,      0.67011526,      -0.5466898,       2.0985565,      -1.4089514,       1.0944474,    -0.052550904,      -1.1028158,      0.92551232,     -0.16306285,       2.0761161,      0.68686733,       0.6954081,      0.19054327,       1.1494061,      0.87871287,      -1.5174372,       1.7188804,     -0.85930313,     -0.23495112,       1.3956834,       -1.226293,      0.13833094,     -0.88904833,      -1.6460988,       1.8758289,     -0.47664562,      0.97031445,      -2.0431098,      -1.0573851,       -1.341136,     -0.60169052,     -0.36095446,    -0.017347365,       1.4689282,     -0.49180288,      -1.5714404,      0.26927532,     0.065611013,      0.96942872,     -0.52216424,      0.10632948,       1.5082619,       0.3308966,      -1.1033281,      0.62195971,     -0.97449538,      -1.1734971,        1.437397,      0.72753786,       0.1579304,     -0.40159158,     -0.54148876,     -0.83125401,      0.55095657,      -0.5616201,      0.17329157,    -0.039810275,      -0.5240441,      0.39094623,      -1.0320734,      -1.1088707,      0.98379945,       1.2546696,      -0.9509652,     -0.15732787,     -0.29345721,      0.46863138,      -1.4610574,     -0.87369275,      -1.1217791,       1.5206481,       0.5045327,       -2.630982
+2029Y,     0.023605573,      0.15858424,       -0.760471,       1.1185877,      0.28715057,     -0.26969455,      0.15752089,     -0.79611625,      0.74495106,      0.49323924,      0.52010364,      -1.8954024,     -0.92882512,     -0.77924289,       2.3523914,      0.94685523,       2.1337174,      0.66904578,     0.063802701,     -0.43315954,     -0.67990077,     -0.15547496,      0.65322494,       1.2752022,      0.80739399,      -1.7095864,      0.29087259,      0.35098757,     -0.79435754,       0.2773696,   -0.0088082852,     0.076968425,     -0.35203095,        2.022613,     -0.62219991,       1.3965952,       1.0388948,     -0.59389422,     0.057321331,      -1.2704029,      0.14504911,     -0.14155458,      0.86968209,       1.0380287,       1.2235256,      0.97073988,     -0.22283733,      0.18413798,      0.36957679,      -1.3194326,     -0.53620368,      0.89208437,     -0.21728163,      0.71578803,      0.70457319,     -0.14633081,       0.6740785,      0.66963362,      0.43879339,      0.12252668,       1.2310503,      0.91821123,      0.48876968,       1.4035404,       2.2649273,       1.5021031,       1.5315269,      0.40545043,     0.018733059,      0.25912548,      -0.7266181,        2.587657,      -0.2944828,    -0.010231292,       1.0441852,      0.91933478,       1.7446946,      -1.2809009,       -1.217792,     -0.53521142,     0.019884213,     -0.13013522,      -1.8583283,      0.76061008,      -1.3005795,      0.11507201,      0.65114213,      0.39046511,       -1.037179,     -0.90534085,    -0.092372539,      0.21259653,      0.48856524,      -0.6503949,      0.68272084,      0.69392825,      0.17082997,      0.64773234,      0.44204922,      -1.7488387,       1.5605024,      0.64448781,      0.83919723,     -0.69880544,      0.58982893,     -0.41016035,      -1.5888957,     -0.76258124,     -0.04564294,     -0.54115913,       1.0002653,      0.61895031,     -0.54119178,     -0.42762496,      -1.4081903,       1.1537025,     -0.29567827,       1.2369404,      0.27700399,     -0.18553814,     0.053371652,        1.653023,      0.84959825,     -0.08711295,      -1.4525633,       1.0757497,      0.19633718,       1.4916751,     -0.19593976,      -1.5847809,     -0.24454179,      -2.6491906,     -0.76336972,     0.003440668,      0.94082658,     -0.16557079,      0.79929859,     -0.39623951,     -0.56699597,      0.86639424,     -0.72823987,     -0.79042157,       1.2800615,      0.20376245,     -0.54897367,      0.92544084,      -1.5471728,     -0.16788381,     -0.22847987,     -0.53498138,     -0.87473014,       1.9708475,       1.4653399,      -2.3842711,       1.4423199,        2.270684,      0.86577171,       1.6455317,     -0.06725632,      0.20123047,     -0.68049001,       1.4222954,      -1.7779317,      -1.5529839,    -0.042407096,       -1.401937,      0.70806028,       1.2571497,       1.6645479,     0.031455781,      0.79285716,      -1.5958974,     -0.78641517,      -1.7375082,      -1.4665743,      -1.3291329,     -0.36984723,     -0.59230589,     -0.79488815,     -0.46125319,     0.044479201,     -0.36879581,     -0.77953316,     -0.27670122,     0.066198855,      -1.1096614,      0.26976821,     0.013340604,       -1.465785,        1.666007,     -0.62319494,      -2.1921073,      -1.0410023,       0.2308661,      0.29603126,      -1.1482483,      0.79309134,      0.70831817,      0.98784148,    -0.023387714,     0.060512198,      -1.9780077,     -0.43963392,     -0.58234144,     -0.82326952,     -0.48007011,     -0.35735823,      0.48920353,      -1.7825381,    -0.010728687,     0.053433956,      -1.4564752,      -1.6682693,       1.7233752,      0.36524072,      -0.4379077,     0.036590917,      0.80684476,     -0.24368764,     -0.16602574,      -1.0651188,      0.76702337,     0.033544642,      0.84884037,      0.47295905,     -0.51669191,      0.47552129,       -1.238888,      0.35875567,      0.20258019,     0.048729048,      -1.0307634,     -0.42422367,     -0.79926307,       2.4592729,      0.32211986,      0.64791308,      0.56268842,     -0.64901509,      0.36436187,      0.90041821,      -0.8085061,      -1.2676212,     -0.89499782,      -1.9707046,     -0.91789491,    -0.038654678,      -1.0298931,      -0.3952314,      0.65631047,      -1.0386134,     0.051160254,      0.41220618,       1.1187642,       1.9328419,     -0.25123714,       0.8972471,      -1.2321708,       0.4003034,      0.50134345,     -0.50850922,     -0.23483955,      0.87840844,       -1.478631,       1.2270564,      0.59190643,      0.80636113,       1.2988303,       1.5467418,      -0.5739565,     -0.85652658,      -2.3097129,     -0.61905565,      0.89276228,      0.72139887,    -0.067530765,     -0.97314075,      -1.1125166,      0.87625626,   -0.0036799634,     0.078430225,     -0.72519704,       1.1713908,       0.6808244,       1.2322992,      0.81714479,       1.3045096,     0.031538399,       1.2304868,      0.97250199,    -0.084577599,      0.73624402,     -0.26123844,    -0.092734728,     -0.30157467,       1.4344455,     -0.10175435,       1.8000727,       1.2835469,     0.075289368,       1.1086444,      0.25810624,      0.43540331,     -0.31556603,      0.26547372,      0.86898711,       1.0346588,      -1.0611174,      -1.0810386,       1.0468203,     -0.15485858,      0.52099341,     0.013831384,      -1.4538824,      0.11959443,      -1.3000757,      0.96690513,     -0.57087378,        1.173538,      0.72004541,      0.72039884,      -1.6227656,       0.4331925,    -0.094918567,      0.80950057,      0.94940539,    -0.097669555,        0.796922,     -0.72128974,       1.9608815,     -0.39457367,     -0.13484203,     0.075894128,       1.0395336,      0.57551306,     -0.34284929,      -0.5385763,    -0.035965243,     -0.96651034,      -1.2561812,      0.39088179,      -1.2579754,      0.50861803,     -0.41484228,      0.39250482,       1.3945807,      -2.1134963,       1.6174841,     -0.77779208,     -0.91468451,      -1.9559849,      0.47388674,      -0.3412967,       1.4219289,     -0.30275109,      0.35558403,      -0.1250625,        1.205881,       1.8166775,       0.3539654,      -1.7646447,      0.65387128,      0.36684551,      0.44515947,      -2.2265574,      0.46941918,     -0.79972804,       1.5586387,      0.87065398,     -0.53819812,       1.6210706,        1.054477,      -1.3239046,       0.1733414,     -0.85931388,       0.3333493,       1.4290331,    0.0064198369,       1.2396699,     -0.97291662,     0.079860193,       0.5967081,     -0.17426334,      -1.1775166,      0.71177897,       0.5617666,      -0.9504984,     -0.51641648,       1.7127778,      0.84564229,      0.86962292,      0.42670342,     -0.26933537,      0.71329659,       0.2813415,      0.29270551,     -0.96806026,       1.2344862,      0.82457496,      -2.3895734,     -0.71202949,      -1.1336399,     -0.69412752,       0.1208224,      -1.4318006,      0.55247195,      0.14909388,      0.53325831,      0.34126487,      -1.3249077,      0.95546589,      0.24078121,      -0.7339566,     -0.56048123,     -0.69346409,      -1.4260507,      0.13884378,     -0.45303405,     -0.92905955,      -1.7413475,      -1.4712574,      -1.1879925,     -0.49269055,       0.4554762,     -0.18261584,       1.3593932,     -0.59331061,     -0.89691608,        1.529384,       1.5195639,     -0.59764724,    -0.053512744,       0.8807196,      0.27806421,      -1.6115381,       1.6683636,     -0.87063605,      0.76005352,       0.4002845,      0.93581548,       0.3090362,     -0.18628062,     -0.99310164,       1.2817597,     -0.99473062,     -0.56768778,       0.7557984,      -1.0503932,       1.3556484,     -0.73942857,     0.099446417,       1.0446013,      0.92458471,       1.4447339,      0.78331605,     -0.30244523,     -0.41962388,     -0.78198485,       1.6987356,     -0.58165747,      -1.2061841,      -1.2134135,      0.48467752,     0.077255154,   0.00018363759,     -0.37935625,      -1.8742988,       2.1551854,       0.2795542,     0.006634204,      -1.1934313,      -1.1343001,      -0.6655283,     -0.15939699,      0.50685866,     -0.77662219,     -0.10707284,     -0.89685206,     -0.33085835,     -0.37085078,     0.010593838,     0.088817652,       1.2704209,      0.12849859,      -0.8779536,     -0.87979979,     -0.22970032,      0.73746747,    -0.026214011,      0.17813547,      0.13005776,      -2.8585176,       -1.435594,       1.1811433,        1.037205,      -1.5952917,      0.33179261,     0.014300141,      -0.8132539,      0.58366336,    -0.012315328,     -0.79780843,      0.38582043,       1.1945185,      0.69139893,      0.94062721,      0.73499825,      0.14321093,       2.2739352,       -1.104188,     -0.67296697,       -1.355997,     -0.68619426,      -1.3109715,     -0.91542509,      0.48749811,      -1.0074943,     -0.26190645,      -0.8039626,      0.98458563,      0.66608936,      -1.3248273,       1.0555779,      -2.3251854,       1.0025525,      0.79198736,     -0.40633292,        1.912483,      -0.6930423,      0.93908663,      0.69965366,       1.2620954,       2.8209518,      -1.5643601,     -0.37070519,      0.01487146,      0.31903489,     -0.66501653,      -3.2536396,       1.5714597,      -1.3481872,     -0.90493696,      -1.1236475,      0.19442648,      0.17157398,       0.1644224,     -0.69287359,      0.40819603,     -0.76041472,     -0.99445624,      -0.8752998,     -0.52411316,      -0.9033735,      0.07881938,     -0.61567798,       1.4617753,     -0.52167632,       1.0127659,      -1.8456589,      0.12530407,     -0.24162618,     -0.81615184,       1.5092947,       2.5210458,     -0.95417757,      0.51634684,      -1.2050385,       0.5092699,     -0.97046995,       1.0379249,      0.05528139,      -1.3749801,     -0.44664237,       0.1774699,     -0.38077802,      0.85100692,       2.8882352,       1.2782507,     -0.37628236,       1.1941351,      0.87976056,     -0.76439941,      0.57167261,        1.231005,      -1.1769619,      0.62257939,     -0.19042846,      0.41212643,      0.12411548,     0.083391995,      0.80685982,      0.41198516,      0.66319271,      0.95016058,      0.90272366,       1.2847947,      0.76480935,     -0.73024821,      -0.7594573,     -0.61739062,     -0.90982072,      0.47634438,       1.1441118,      -1.1743029,      0.92866521,       -1.244234,     -0.14820605,      -0.5107761,       1.1502102,     -0.96651486,      0.19054959,     -0.43932962,      0.19910006,       1.9945532,     -0.58901768,        1.057549,      0.80315707,      0.91700146,      0.10207746,      -0.7017619,     -0.59308962,      -0.5995482,     -0.11980911,     -0.14494502,      -1.6263209,     -0.89254437,     -0.42934013,   -0.0052951432,      0.64309096,     -0.46819681,     -0.65015865,      -0.0531484,      -0.1075326,     -0.87040538,      0.13021415,       0.9019533,      0.64599301,     -0.77305902,      -0.7027535,     -0.44641006,       1.8752874,     -0.12931617,       -1.019113,     -0.51852577,      0.60220516,     -0.51927232,      -1.2578687,      -1.0172446,      0.27755294,       1.0305027,      0.44241145,      0.20498209,      -1.0181486,      -0.4037208,     -0.86106228,    -0.018511312,      0.94191959,    -0.044077695,      0.36623455,      -1.1879212,     -0.31923776,    -0.046250019,     -0.93442848,      -0.3070643,     -0.53755937,     0.023805683,      0.44941878,       1.1634095,     -0.16680071,       1.5660987,       1.1827863,     -0.35204757,    -0.014982099,       1.2441002,       0.9158154,       -1.199267,     0.076188186,       1.1257235,      0.40095898,     -0.95713517,     -0.38864073,      -1.1676254,      -0.3123128,      0.86453913,      -2.0414474,      -1.6392703,      -0.7068877,     -0.52003646,     -0.14606665,      -1.4657209,       1.4001654,     -0.56044132,       2.1361658,     -0.84028068,      0.71650919,      -1.6528941,      0.18344528,     -0.39212284,       2.6527519,     -0.59879106,      0.96253168,     -0.31699848,     -0.97109325,     -0.16796146,      0.13063739,       1.0751378,   -0.0077199009,     -0.79676619,     -0.22316372,      0.21547812,      0.45649502,    -0.087505809,      -1.3356529,        0.429085,      0.41388164,      -0.6384163,      -1.9948906,      0.37470814,     -0.68027352,     0.033175897,      -1.7266247,     -0.84964518,      0.89880767,      0.38474412,      0.89275184,      0.69109177,      -1.1823966,       1.0652364,       1.0315472,      -1.2878025,     -0.34373089,      0.45629926,        -0.18446,      0.40910313,     -0.33625768,     -0.65673352,     -0.28345151,     0.064470658,     -0.11710485,       1.4071477,      0.74814843,       1.0335985,       1.5653502,      0.21702643,       1.3212535,    -0.032036632,      0.45279951,     -0.17361259,     -0.23231492,     -0.12515921,      0.16264684,      0.19822917,       1.5823452,      -1.0396711,     -0.85533461,       1.6441229,     -0.76932615,       1.1732995,      -0.2420527,      -1.8138423,      0.53050391,     -0.49455835,      0.08788577,      0.71485962,      -2.1618613,       1.0795594,     -0.47229052,      0.43451082,     -0.26432398,       1.2257031,       1.0906068,      0.63870043,        2.010336,      -2.0925844,    -0.016759572,      0.03395756,     -0.76336126,     -0.81349014,      -1.3050213,      -1.2024074,    -0.018487294,     -0.43157186,      0.12804314,        1.216033,       2.0251493,      -1.2827164,     0.057229524,     -0.56633556,     -0.65182128,     -0.58157385,      -1.2005256,      -0.4708989,     -0.12124332,      -1.1212644,      -1.0268311,     -0.29091502,     -0.17948311,     -0.10199909,      0.73178424,       1.2557906,     -0.36977148,     -0.29294796,      -1.5339973,      0.36708185,      0.11784114,      -1.8020331,      -1.6435828,     -0.58725559,     -0.87155577,      0.50994012,      0.98895756,     -0.40921756,     -0.39742294,      0.33255784,     -0.33592763,      0.14188429,      0.96042543,       1.0733557,       1.0288334,     -0.17858377,     -0.61253064,      0.27478902,      -0.9028949,      0.93014993,     -0.14775715,      0.69783571,       1.0504714,     0.079418704,      -1.1248807,      0.98556837,      0.76831177,     -0.88570714,      0.25509095,      0.75816866,     -0.41439284,      0.39780183,      -1.7459329,     -0.11941835,      -1.2733507,      0.94839541,    -0.036206419,     -0.87321751,     -0.25357958,       1.5979235,      -1.4722279,     -0.64333532,      0.45678965,     -0.62437495,       0.1944516,      -0.5875693,      0.98274982,     -0.56205816,       -0.781033,     -0.94377282,      0.39869046,       1.0797312,       -1.670715,     -0.35169851,     -0.71759008,     -0.57663205,      0.40599402,     -0.42250922,     -0.98682784,      0.41434683,     -0.95258501,      0.14585519,      0.28164699,      0.57526373,    -0.068251825,      -1.0980836,     -0.33804088,      -0.2686225,      0.89623234,      0.44553297,      -0.1720462,      0.80209171,     -0.50591408,       1.7459572,       1.0019914,       1.9356985,       1.1588786,     -0.75492421,     -0.41995314,     -0.43301169,     -0.82869745,      0.71494634,      0.74000726,      -0.7564835,      -1.2074711,     -0.75439369,       1.2090264,      -1.2830102,     -0.90584052,        0.204418,       1.8590001,       1.4536369,     -0.16360184,      0.40047288,       1.2366292,     -0.99838659,     -0.52958629,       1.1540035,      0.33571642,     -0.53931117,       -1.014602,      0.51647228,      -1.0837623,     -0.43981241,      -1.5087004,      0.37142926,      -2.2898039,      0.81139405,    -0.001236917,       0.6373765,      0.89481177,      0.07370204,     -0.79076479,      -0.5245003,       0.1668333,       0.3585189,      0.91391982,     -0.97446563,     -0.95092702,     -0.95704967,     -0.34054369,       1.7632383,       0.9303363,      -0.7321091,       1.0374357,     -0.95396376,      -2.0925033,     -0.28178347,        -1.50806,      -1.0481588,     -0.79657146,     0.012017668,    -0.092628687,    -0.043109148,       1.4235768,     -0.46146588,      0.29297745,      0.21027957,      -1.1745528,       1.3798931,     -0.18018402,     -0.24477748,     -0.98811329,     -0.21530358,      -1.0098769,     -0.78502667,      -1.0327311,      0.39344527,    -0.086889917,      -2.6549858,     -0.96613397,      0.22144287,       2.0119586,      0.11751804,      0.93205722,     -0.64195276,     -0.18824163,     0.048576433,      0.68059405,       1.2553028,       1.0615858,      -1.2894372,       1.6644116,      0.89830523,      0.85296098,      0.36275308,       1.1619015,     -0.29133077,     -0.51050484,      0.61512874,     -0.11327183,       1.1500742,       1.1686633,     -0.49522862,      0.97024042,      0.42159073,     -0.36636204,       1.6202719,       1.0916731,       2.4388787,     0.059966093,      0.45113231,        1.568564,      0.36713672,      0.28340044,      -1.1845272,      0.68598894,     -0.40333312,      0.84741692,      0.68988236,      -2.1157668,     -0.15287202,     -0.24939463,       1.0644841,     -0.57972964,     -0.42767509,     -0.96159174,     0.018268112,      0.39545209,     -0.60714862,     -0.44638959,       1.0474296,      0.60288879,    -0.076301198,     -0.50383322,      -1.2431636,     -0.35445101,     -0.10730194,    -0.078323852,       -1.677784,      0.18929954,       1.4557797,      0.94771335,     -0.42850545,      0.66044162,     -0.39804561,      -1.1564752,      0.75964034,      0.54763858,      0.28312717,      -1.1743163,      -1.5919142,     -0.33296441,     -0.60703758,     -0.32364246,       -1.051866,     -0.88821469,       1.4204364,     -0.63116004,       1.0670114,     -0.12114192,       -1.331869,     -0.11067814,     -0.73732708,        2.002324,      0.42930463,     -0.81699669,       1.5962355,     -0.46077826,      -1.0022316,       1.0723953,      0.79005565,    -0.015374164,      0.51674746,     -0.16022313,     -0.41180009,      0.35578027,      -1.2845089,       1.3507876,      0.54585828,      0.58180888,      -1.9705646,      0.46569957,       1.2684319,      -1.2437275,      0.71123235,      0.68584431,     -0.97793298,       1.2154329,     -0.82987954,      0.80745101,      -1.3545602,        1.104811,       1.9395535,     -0.46812404,     -0.40392572,    -0.069262497,     0.059421993,       1.1827123,     -0.49448778,      0.20387594,       1.0032842,      -1.1262297,      0.23579311,      -1.0151349,     -0.26877278,       0.3491902,      -2.6690235,      0.89996202,       1.5234056,      0.24379521,      -1.9960743,      -1.7207896,     -0.44220016,     -0.84964798,      0.41692909,      -1.1582662,     -0.43467416,      0.25865306,      -1.5033838,     0.041680026,      -1.2790484,     -0.72227547,     -0.18733862,     -0.64967392,     -0.23663853,       1.2122038,      0.66342488,      0.44776694,      -1.1433325,     -0.23773072,     -0.42993781,      0.61261783,      -1.5827154,      0.37600912,       1.6508186,      -2.0248723,      -1.0187597,     -0.72035014,      0.14821346,       1.2367672,      0.89171877,      0.26180616,       0.7144818,     -0.37686212,     -0.70783525,      0.77581658,     -0.19036128,      -0.5470005,      -1.0474616,     -0.86223751,     0.055204775,     -0.87489997,       1.4824453,     -0.99066863,     -0.54637313,      -0.3687875,       1.0709627,      0.64835694,      0.53959575,    -0.068880103,       1.1304013,      -1.1481274,       -1.619432,      0.51120072,       1.7154875,     -0.85903856,      0.68971174,      0.47958707,     -0.60663277,      -0.1440299,     -0.61268405,      0.89628773,       1.0694436,     -0.32755598,      -1.3629278,       0.3218104,     0.054728879,      0.62158341,      -2.5103696,       1.5168458,       0.2020968,      0.45539274,       1.1891503,      0.68692139,       -1.319557,       1.9386369,      -1.1442227,      0.46431854,      -1.0450565,     0.082886224,        1.583339,      0.36578333,     -0.36373109,      -1.2023815,       2.4531929,       1.1411688,      0.78839199,     -0.86973064,     -0.46643906,     -0.16625252,      0.73359231,       2.3718128,      0.74774943,       1.0690859,      -1.4840718,       1.1013774,       0.5182759,     -0.50325338,      -1.7025679,     -0.43290389,      0.19860826,       1.1519021,     -0.14027324,      -1.6215741,    -0.034578539,     -0.74284481,     0.024482279,      0.20913807,       1.4814303,      0.34427421,      -2.3956558,     -0.56317708,      0.15749284,      0.83297607,      0.79519789,     0.080609796,       1.2160195,      0.51333273,     -0.97222973,     -0.90302461,      -2.5528638,    -0.068336618,    -0.031863404,     -0.19873879,      0.29717832,      0.44068757,     -0.48535604,       1.1339975,      0.75692159,      0.31356711,       -0.304494,       1.2198898,      0.46699117,       1.2908524,     -0.47887628,      -1.5999616,      -1.0981079,       0.7430065,      0.73737873,     -0.57951726,      -1.8657528,      -2.1794729,      -1.3488389,     -0.35008069,     -0.91464995,     -0.87738606,      -0.6590376,      0.18148812,      -1.6957105,         1.97293,       -1.399708,     -0.69543631,     0.079191959,     -0.28701201,      -1.1506203,      0.17520031,     0.012421552,       -1.993242,       0.1677326,     -0.96856998,      -1.5802146,      0.61982853,     -0.42338274,    -0.039416176,      -0.8391316,      -1.4301696,      -1.0385813,      0.22583759,     -0.10796422,       -1.448568,     -0.93354761,       1.4595899,     -0.10305584,       1.1020642,       1.7360425,     -0.39478799,      -0.1805318,      0.19334198,       -1.544091,    -0.037335675,      0.20496037,     -0.82557227,      0.82262381,     0.037242046,      0.29766303,      -1.4101597,     -0.16913169,      0.20376544,      -2.2663485,      0.47117747,     -0.66852819,      -1.2345864,      0.49640232,      -1.3352176,       1.8819749,       0.5558294,      -1.4649167,      -1.1857328,       1.5698714,     -0.72235285,        1.607436,      0.17122092,    -0.071194451,     -0.30814865,     -0.18798449,     -0.46723772,     -0.31153525,      0.18832881,      -1.3772258,     -0.26641206,      0.79580236,        -1.58204,      0.39297784,     -0.39761235,     -0.52535395,     -0.83282499,       -1.374212,      -1.8169345,     -0.64157246,       2.1306116,     0.074751743,     -0.76844831,      -1.2364387,      0.72605223,     -0.20371309,     -0.18687664,      0.30502342,      0.33002195,      0.14095824,       1.0444035,      0.36965032,     -0.11378571,     0.030197506,      -0.2538819,     -0.43163128,     -0.90548605,      -1.4295001,        1.707017,     -0.97058565,      0.94662531,     -0.33676344,     -0.82573986,      -1.4873036,       1.2977526,       0.2349127,      -1.8799142,      0.33305732,      0.80892529,     -0.58513852,        1.035765,      0.16638361,      0.49970176,     -0.65635019,      -0.9967434,    -0.074156534,    -0.090960035,     -0.67879952,      -1.3519275,       1.5346387,       -1.538907,      0.72526858,         2.45527,       1.2077414,      -1.0025036,       1.0207334,       1.3028201,       2.1545084,     -0.34190382,     -0.68718892,      0.17093529,     0.003006839,    -0.043239768,      -1.3597467,      0.70109466,     -0.11018496,        1.235229,      -1.4635872,       0.4909091,      -1.3604392,    -0.096524454,       1.1212292,      0.94225702,     -0.80416148,      -1.3037148,     -0.67892748,       1.2078549,     -0.22464617,      -1.1704368,       1.4792546,    -0.025378145,    -0.010905014,     0.087284155,      0.35527471,       1.0092361,      0.36511646,      0.13425182,      -1.5293322,       1.0846408,     -0.67896643,      0.11661568,       2.2883738,      0.82375262,     -0.58574072,      0.39782366,     -0.25255978,      0.58001381,       0.1602607,      -1.2357038,       1.6484127,      -1.0614092,      0.40619847,      0.19919002,       1.0640251,     -0.10512849,       0.4558829,      0.88879243,     -0.35455776,      0.47511297,      0.64025069,      0.10614823,      0.70862267,     -0.90473062,       0.3803343,     -0.66610336,       1.3999399,     -0.51512627,     -0.84799912,     -0.69611448,       1.1748869,      -2.5325735,     -0.31852338,     -0.29571456,       0.4568679,      -1.2581451,     -0.39574874,      0.83726784,     -0.72939747,     -0.89501082,     0.093331396,      0.97405708,      0.44885999,      0.38885374,      0.66913976,      0.18697433,      -1.0807794,        1.566125,        1.588386,     0.093194705,    -0.053567671,      0.10947781,      -1.5013074,      -1.0619702,     -0.46035904,      0.74013685,       1.3377839,       1.1832717,       0.7275043
diff --git a/tests/csv/ts1.csv b/tests/csv/ts1.csv
new file mode 100644
index 0000000000000000000000000000000000000000..e00974877de4b21ee83697862d5f31c185035589
--- /dev/null
+++ b/tests/csv/ts1.csv
@@ -0,0 +1,11 @@
+,A1,A2
+1Y,               1,               2
+2Y,               2,               4
+3Y,               3,               6
+4Y,               4,               8
+5Y,               5,              10
+6Y,               6,              12
+7Y,               7,              14
+8Y,               8,              16
+9Y,               9,              18
+10Y,              10,              20
diff --git a/tests/csv/ts2.csv b/tests/csv/ts2.csv
new file mode 100644
index 0000000000000000000000000000000000000000..348891b140440777873480b81a9f9222a7514e54
--- /dev/null
+++ b/tests/csv/ts2.csv
@@ -0,0 +1,10 @@
+1Y,               1,               2
+1Y,               2,               4
+2Y,               3,               6
+3Y,               4,               8
+4Y,               5,              10
+5Y,               6,              12
+6Y,               7,              14
+7Y,               8,              16
+8Y,               9,              18
+9Y,              10,              20
diff --git a/tests/csv/ts3.csv b/tests/csv/ts3.csv
new file mode 100644
index 0000000000000000000000000000000000000000..c8ebc713a623ae77086ee66b335f3efe6ba9b13a
--- /dev/null
+++ b/tests/csv/ts3.csv
@@ -0,0 +1,10 @@
+1,               2
+2,               4
+3,               6
+4,               8
+5,              10
+6,              12
+7,              14
+8,              16
+9,              18
+10,              20
diff --git a/tests/csv/ts4.csv b/tests/csv/ts4.csv
new file mode 100644
index 0000000000000000000000000000000000000000..073a770b8d9ceb94e417628d8462449acde13b2d
--- /dev/null
+++ b/tests/csv/ts4.csv
@@ -0,0 +1,11 @@
+A, B
+1,               2
+2,               4
+3,               6
+4,               8
+5,              10
+6,              12
+7,              14
+8,              16
+9,              18
+10,              20
diff --git a/tests/dates/fs2000.mod b/tests/dates/fs2000.mod
new file mode 100644
index 0000000000000000000000000000000000000000..79209edd1f297bc5a4785b56f61dc5074c6a1f05
--- /dev/null
+++ b/tests/dates/fs2000.mod
@@ -0,0 +1,88 @@
+// See fs2000.mod in the examples/ directory for details on the model
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+set_time(1950Q1);
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+//data(file=fsdat_simul, first_obs=1950Q3, last_obs=1998Q1);
+
+ts = dseries('fsdat_simul.m');
+rr = 1950Q3:(1950Q1+ts.nobs);
+nn = length(rr);
+ds = ts(rr);
+ds.save('fsdat_simul2','m');
+
+estimation(order=1,datafile=fsdat_simul2,loglinear,mh_replic=0);
+
+disp('First date is $1950Q3')
+// disp('Last date is 2000Q1') // This line would trigger an error because of the substitution of 2000Q1 by dates('2000Q1')
diff --git a/tests/dates/fsdat_simul.m b/tests/dates/fsdat_simul.m
new file mode 100644
index 0000000000000000000000000000000000000000..bc2c5a4fe385847554a2c724d095c71c73b3f69a
--- /dev/null
+++ b/tests/dates/fsdat_simul.m
@@ -0,0 +1,831 @@
+INIT__ = '1950Q1';
+FREQ__ = 4;
+
+gy_obs          =[
+      1.0030045
+     0.99990934
+      1.0172778
+     0.99464043
+      1.0253423
+      1.0150215
+     0.97772557
+     0.97832186
+      1.0159561
+      1.0085937
+      1.0102649
+      1.0007604
+      1.0112596
+      1.0163279
+      1.0173204
+      1.0103896
+      1.0006493
+     0.99447124
+      1.0196405
+      1.0089304
+     0.99650737
+      1.0139707
+     0.97865842
+      1.0192225
+     0.99139628
+      1.0141362
+      1.0196612
+     0.97483476
+     0.99686151
+     0.99594464
+      1.0000642
+      1.0172243
+      1.0025773
+     0.97199728
+      1.0217815
+      1.0219949
+     0.99490252
+      1.0190728
+      1.0111337
+      1.0003792
+     0.98969164
+       1.010438
+      1.0216309
+      1.0016671
+      1.0357588
+     0.98803787
+      1.0093457
+      1.0177035
+     0.98548204
+      1.0274294
+      1.0141377
+      1.0091174
+     0.96427632
+      1.0083272
+      1.0007882
+     0.99038262
+      1.0031336
+     0.99500213
+     0.98203716
+      0.9889452
+       1.011632
+     0.99451949
+     0.97291047
+     0.98750871
+     0.99992418
+     0.97657318
+     0.99930448
+      1.0008515
+      1.0044064
+     0.98133792
+      1.0091702
+      1.0087023
+      1.0119876
+      1.0143019
+      1.0311061
+     0.99340471
+      1.0057428
+     0.99197259
+      1.0071019
+     0.99448853
+      1.0061819
+      1.0070088
+      0.9950913
+      1.0302318
+      0.9817693
+      1.0072885
+     0.97355282
+     0.98782586
+      1.0136674
+     0.99863956
+      1.0205668
+     0.99611384
+      1.0073805
+     0.99691529
+      1.0089194
+      1.0030467
+      1.0112006
+      1.0260523
+     0.97803331
+     0.99423374
+      1.0043727
+      1.0140173
+      1.0111473
+     0.99524348
+     0.99775943
+      0.9958619
+      0.9982344
+      1.0210212
+      1.0022288
+      1.0014801
+       1.011456
+      1.0124871
+     0.99843599
+     0.99324886
+     0.99912838
+       1.003327
+      1.0072071
+      1.0115223
+       1.009266
+      1.0070554
+      1.0129916
+      1.0053413
+      1.0051638
+     0.99212952
+      1.0214422
+     0.98716707
+     0.99905788
+     0.98877357
+     0.98568476
+     0.99767393
+      1.0061791
+     0.98423439
+     0.99492949
+     0.98786999
+     0.99754239
+      1.0168619
+     0.99472384
+      1.0041658
+     0.98123181
+      1.0112882
+     0.99245422
+      1.0010255
+      1.0017799
+      1.0089968
+      1.0072824
+     0.99768475
+      1.0044726
+      1.0118678
+      1.0056385
+      1.0276965
+      1.0025122
+      1.0065161
+      1.0234338
+     0.99760167
+     0.98922272
+      1.0101918
+       1.011615
+      1.0085286
+      1.0074455
+     0.98866757
+     0.99959012
+      1.0129881
+     0.99127881
+     0.97971901
+      1.0185314
+       1.020054
+      1.0132605
+     0.98063643
+     0.99490253
+      1.0101531
+      1.0004526
+      1.0059109
+     0.98974491
+      1.0062391
+      1.0216488
+     0.99398446
+     0.97786609
+      1.0019274
+     0.99587153
+      1.0095881
+      1.0111887
+     0.99457649
+     0.97896734
+       1.000172
+      1.0142951
+      1.0034224
+      1.0037242
+      1.0016059
+       1.016556
+     0.99687023
+      1.0117844
+      1.0059212
+     0.98083159
+     0.98638851
+      1.0128713
+      1.0096232
+      1.0115891
+      1.0011213
+      1.0147105
+      1.0066344
+      1.0164429
+     0.99825038
+     0.99403411
+
+];
+
+gp_obs          =[
+      1.0079715
+      1.0074573
+      1.0153107
+      1.0152677
+      1.0011653
+     0.99950061
+      1.0328311
+      1.0192317
+       1.009827
+     0.99588916
+       1.007474
+      1.0113061
+     0.98696624
+     0.99978663
+     0.98240542
+     0.98861723
+     0.99008763
+      1.0185076
+      1.0052452
+     0.99447194
+      1.0092685
+        1.01208
+      1.0105237
+     0.98513875
+      1.0165628
+     0.99485934
+      1.0050255
+      1.0140756
+      1.0093128
+      1.0155868
+      1.0107023
+     0.99212762
+      1.0095465
+      1.0028435
+      1.0069437
+      1.0070473
+      1.0145902
+      1.0186922
+      1.0059917
+      1.0113072
+      1.0107386
+     0.99769196
+     0.99793444
+      1.0050791
+     0.98307821
+      1.0107594
+     0.99689982
+     0.98667064
+      0.9991662
+     0.98274722
+     0.98422032
+     0.99393016
+      1.0118567
+     0.99912781
+      1.0023744
+      1.0086662
+      1.0164773
+      1.0169327
+      1.0372478
+      1.0314242
+      1.0004256
+      1.0110541
+      1.0076575
+      1.0119851
+      1.0055188
+      1.0213959
+      1.0234416
+      1.0264917
+      1.0292725
+      1.0385184
+      1.0200999
+      1.0107697
+       1.008583
+      1.0200332
+      1.0030413
+      1.0108659
+      1.0185145
+      1.0168619
+      1.0180462
+      1.0239657
+      1.0205509
+      1.0189973
+      1.0246446
+      1.0135089
+      1.0352973
+      1.0099289
+      1.0266474
+      1.0279829
+      1.0101653
+       1.041216
+      1.0103861
+      1.0114727
+      1.0054605
+      1.0190722
+      1.0114837
+      1.0179213
+       1.006082
+      1.0049696
+      1.0143629
+      0.9971036
+      1.0005602
+      1.0078403
+      1.0240222
+      1.0195063
+      1.0355136
+      1.0218743
+      1.0171331
+      1.0049817
+      1.0140974
+      1.0168431
+      1.0049966
+      1.0045568
+      1.0156414
+      1.0273055
+      1.0197653
+      1.0030624
+      1.0154993
+     0.99782084
+     0.99711648
+       1.014408
+      1.0057417
+     0.99936837
+      1.0096934
+      1.0095138
+      1.0057734
+      1.0114497
+      1.0059784
+      1.0328889
+      1.0098032
+      1.0041114
+      1.0101247
+      1.0181588
+      1.0115712
+      1.0227509
+      1.0065104
+      1.0110902
+      1.0298169
+      1.0089532
+      1.0368733
+      1.0123033
+      1.0060763
+      1.0150937
+      1.0239325
+     0.99555536
+     0.99861271
+      1.0076201
+     0.99941535
+      1.0119522
+      1.0129183
+     0.99288924
+      1.0260784
+      1.0144982
+      1.0121985
+      1.0234916
+        1.02215
+      1.0190118
+      1.0172679
+      1.0118398
+      1.0002123
+      1.0092124
+      1.0071943
+     0.99508468
+      1.0019303
+      1.0030733
+      0.9964198
+      1.0027298
+     0.99797614
+       1.006942
+     0.99793928
+      1.0083214
+      1.0283732
+      1.0111102
+       1.016936
+      1.0229061
+     0.98846454
+      1.0015387
+      1.0201769
+      1.0079822
+      1.0064007
+      1.0095543
+      1.0092207
+      1.0135485
+      1.0198974
+      1.0140252
+      1.0128686
+      1.0092903
+      1.0141974
+      1.0023492
+     0.99731455
+      1.0026598
+     0.99303643
+      1.0036469
+      1.0160975
+      1.0368378
+      1.0139625
+        1.01493
+      1.0113531
+      1.0114548
+     0.99833441
+     0.99648401
+     0.97645361
+      1.0154053
+        1.01703
+
+];
+
+Y_obs           =[
+              1
+     0.99690484
+      1.0111781
+      1.0028141
+      1.0251518
+      1.0371688
+      1.0118899
+     0.98720726
+      1.0001589
+      1.0057481
+      1.0130085
+      1.0107643
+      1.0190194
+      1.0323428
+      1.0466587
+      1.0540438
+      1.0516886
+      1.0431553
+      1.0597913
+      1.0657172
+      1.0592201
+      1.0701863
+      1.0458402
+      1.0620582
+      1.0504499
+      1.0615817
+      1.0782384
+      1.0500687
+      1.0439257
+      1.0368658
+      1.0339255
+      1.0481453
+      1.0477181
+      1.0167109
+      1.0354878
+      1.0544782
+      1.0463762
+      1.0624445
+      1.0705737
+      1.0679484
+      1.0546356
+      1.0620691
+      1.0806955
+      1.0793581
+      1.1121124
+      1.0971458
+      1.1034869
+      1.1181859
+      1.1006634
+      1.1250883
+      1.1362214
+      1.1423343
+      1.1036061
+      1.1089288
+      1.1067125
+      1.0940906
+      1.0942197
+      1.0862174
+        1.06525
+      1.0511907
+      1.0598182
+      1.0513331
+      1.0212391
+      1.0057433
+       1.002663
+     0.97623167
+     0.97253165
+     0.97037865
+     0.97178055
+     0.95011397
+     0.95627969
+     0.96197747
+     0.97096053
+     0.98225794
+      1.0103595
+      1.0007597
+       1.003498
+     0.99246608
+     0.99656347
+     0.98804749
+     0.99122491
+     0.99522926
+     0.98731605
+      1.0145434
+     0.99330816
+     0.99759216
+     0.96814048
+     0.95296183
+     0.96362471
+     0.95925977
+     0.97682205
+     0.96993138
+      0.9743074
+     0.96821818
+     0.97413308
+      0.9741753
+     0.98237142
+      1.0054193
+     0.98044807
+      0.9716773
+      0.9730455
+     0.98405828
+     0.99220103
+     0.98444001
+     0.97919493
+     0.97205233
+     0.96728223
+     0.98529893
+     0.98452324
+     0.98299888
+     0.99145042
+       1.000933
+     0.99636447
+     0.98660883
+     0.98273271
+     0.98305518
+     0.98725774
+     0.99577549
+       1.002037
+      1.0060879
+       1.016075
+      1.0184118
+      1.0205711
+      1.0096961
+      1.0281337
+      1.0122963
+      1.0083497
+     0.99411874
+       0.976799
+     0.97146842
+     0.97464304
+     0.95587292
+     0.94779791
+     0.93266339
+     0.92720128
+     0.94105864
+     0.93277798
+     0.93393927
+     0.91216657
+     0.92045028
+         0.9099
+     0.90792098
+     0.90669634
+     0.91268867
+     0.91696661
+     0.91164685
+     0.91311495
+     0.92197825
+     0.92461222
+     0.94930422
+      0.9488119
+     0.95232353
+     0.97275278
+     0.96734995
+     0.95356817
+     0.96075548
+     0.96936594
+     0.97489002
+     0.97933106
+     0.96499412
+     0.96157973
+     0.97156334
+     0.95983765
+     0.93655215
+     0.95207909
+     0.96912862
+     0.97938462
+     0.95701655
+     0.94891457
+     0.95606317
+     0.95351125
+     0.95641767
+     0.94315807
+     0.94639265
+     0.96503697
+     0.95601693
+     0.93087851
+     0.92980141
+     0.92266844
+     0.92925206
+     0.93743628
+     0.92900826
+      0.9049711
+     0.90213859
+     0.91342916
+     0.91384707
+     0.91456681
+     0.91316822
+     0.92671976
+     0.92058549
+     0.92936541
+     0.93228212
+     0.91010921
+     0.89349322
+     0.90336005
+     0.90997873
+     0.91856328
+     0.91668007
+     0.92838606
+       0.932016
+     0.94545438
+     0.94070026
+     0.93172987
+
+];
+
+P_obs           =[
+              1
+     0.99948573
+      1.0068249
+      1.0141211
+      1.0073149
+     0.99884398
+      1.0237035
+      1.0349636
+       1.036819
+      1.0247366
+      1.0242391
+      1.0275737
+      1.0065684
+     0.99838346
+     0.97281734
+     0.95346302
+      0.9355791
+      0.9461152
+     0.94338882
+     0.92988921
+      0.9311862
+     0.93529467
+     0.93784681
+     0.91501401
+     0.92360522
+     0.91049302
+     0.90754698
+     0.91365103
+     0.91499228
+     0.92260749
+     0.92533824
+     0.90949431
+     0.91106924
+     0.90594116
+     0.90491334
+      0.9039891
+     0.91060772
+     0.92132842
+     0.91934854
+     0.92268418
+     0.92545127
+     0.91517169
+     0.90513459
+     0.90224212
+     0.87734878
+     0.88013667
+     0.86906494
+     0.84776403
+     0.83895869
+     0.81373437
+     0.78998314
+     0.77594176
+     0.77982695
+     0.77098321
+     0.76538611
+     0.76608075
+     0.77458654
+     0.78354767
+     0.81282389
+     0.83627649
+     0.82873051
+     0.83181309
+     0.83149903
+     0.83551261
+     0.83305985
+     0.84648418
+     0.86195421
+     0.88047436
+     0.90177533
+     0.93232215
+     0.94445051
+      0.9472487
+     0.94786015
+     0.95992178
+     0.95499149
+     0.95788581
+      0.9684288
+     0.97731917
+     0.98739379
+      1.0033879
+      1.0159673
+      1.0269931
+      1.0436661
+      1.0492034
+      1.0765292
+      1.0784865
+      1.0971624
+      1.1171737
+      1.1193675
+      1.1526119
+      1.1550265
+      1.1585277
+      1.1560166
+      1.1671172
+      1.1706294
+      1.1805791
+      1.1786896
+      1.1756876
+      1.1820789
+       1.171211
+      1.1637997
+      1.1636684
+       1.179719
+      1.1912538
+      1.2187959
+      1.2326986
+      1.2418602
+      1.2388704
+      1.2449963
+      1.2538678
+      1.2508929
+      1.2474781
+       1.255148
+       1.274482
+      1.2862757
+      1.2813665
+      1.2888943
+      1.2787436
+      1.2678886
+       1.274325
+      1.2720952
+       1.263492
+      1.2652139
+      1.2667561
+       1.264558
+      1.2680362
+      1.2660431
+      1.2909605
+      1.2927921
+       1.288932
+      1.2910852
+      1.3012725
+      1.3048721
+      1.3196515
+      1.3181903
+       1.321309
+      1.3431543
+       1.344136
+      1.3730377
+      1.3773695
+      1.3754742
+      1.3825964
+      1.3985574
+      1.3861412
+      1.3767823
+      1.3764309
+      1.3678747
+      1.3718554
+      1.3768022
+      1.3617199
+      1.3798267
+      1.3863533
+      1.3905803
+      1.4061004
+      1.4202788
+      1.4313191
+      1.4406155
+      1.4444837
+      1.4367244
+      1.4379653
+      1.4371881
+      1.4243012
+        1.41826
+      1.4133617
+        1.40181
+      1.3965683
+      1.3865729
+      1.3855433
+      1.3755111
+      1.3758609
+      1.3962625
+      1.3994012
+      1.4083656
+      1.4233002
+      1.4037932
+      1.3973604
+      1.4095657
+      1.4095764
+      1.4080055
+      1.4095882
+      1.4108374
+      1.4164143
+      1.4283402
+      1.4343939
+      1.4392909
+      1.4406097
+      1.4468355
+      1.4412132
+      1.4305562
+      1.4252445
+      1.4103094
+      1.4059847
+      1.4141106
+      1.4429769
+      1.4489679
+      1.4559263
+      1.4593079
+      1.4627911
+       1.453154
+      1.4416665
+      1.4101485
+      1.4175823
+      1.4266407
+
+];
+
diff --git a/tests/deterministic_simulations/homotopy.mod b/tests/deterministic_simulations/homotopy.mod
new file mode 100644
index 0000000000000000000000000000000000000000..cd17a513e1c07ce5a288bb5991a7addc05fb8116
--- /dev/null
+++ b/tests/deterministic_simulations/homotopy.mod
@@ -0,0 +1,49 @@
+// Example that triggers homotopy in perfect foresight simulation.
+
+var Consumption, Capital, LoggedProductivity;
+
+varexo LoggedProductivityInnovation;
+
+parameters beta, alpha, delta, rho;
+
+beta = .985;
+alpha = 1/3;
+delta = alpha/10;
+rho = .9;
+
+model;
+
+[name='Euler equation'] // This is an equation tag!
+1/Consumption = beta/Consumption(1)*(alpha*exp(LoggedProductivity(1))*Capital^(alpha-1)+1-delta);
+
+[name='Physical capital stock law of motion']
+Capital = exp(LoggedProductivity)*Capital(-1)^alpha+(1-delta)*Capital(-1)-Consumption;
+
+[name='Logged productivity law of motion']
+LoggedProductivity = rho*LoggedProductivity(-1)+LoggedProductivityInnovation;
+
+end;
+
+steady_state_model;
+  LoggedProductivity = LoggedProductivityInnovation/(1-rho);
+  Capital = (exp(LoggedProductivity)*alpha/(1/beta-1+delta))^(1/(1-alpha));
+  Consumption = exp(LoggedProductivity)*Capital^alpha-delta*Capital;
+end;
+
+set_time(1Q1);
+
+initval;
+  LoggedProductivityInnovation = 0;
+  LoggedProductivity = 10;
+  Capital = 1;
+end;
+
+endval;
+  LoggedProductivityInnovation = 0;
+end;
+
+steady;
+
+simul(periods=200);
+
+plot(Simulated_time_series.Capital(1Q1:25Q4));
diff --git a/tests/deterministic_simulations/rbc_det1.mod b/tests/deterministic_simulations/rbc_det1.mod
index e0a6877b6db659b789d73d5d58d3c94ce7c2b371..a5fe6f5b3e857705bdb54261f38e0063c032979b 100644
--- a/tests/deterministic_simulations/rbc_det1.mod
+++ b/tests/deterministic_simulations/rbc_det1.mod
@@ -69,7 +69,7 @@ histval;
 Capital(0) = CapitalSS/2;
 end;
 
-simul(periods=300);
+simul(periods=20);
 
 rplot Consumption;
 rplot Capital;
\ No newline at end of file
diff --git a/tests/deterministic_simulations/rbc_det6.mod b/tests/deterministic_simulations/rbc_det6.mod
new file mode 100644
index 0000000000000000000000000000000000000000..0bbb1008c5ba7617d558ab30c724f824827ab252
--- /dev/null
+++ b/tests/deterministic_simulations/rbc_det6.mod
@@ -0,0 +1,83 @@
+var Capital, Output, Labour, Consumption, Efficiency, efficiency, ExpectedTerm;
+
+varexo EfficiencyInnovation;
+
+parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma2;
+
+beta    =   0.9900;
+theta   =   0.3570;
+tau     =   2.0000;
+alpha   =   0.4500;
+psi     =  -0.1000;
+delta   =   0.0200;
+rho     =   0.8000;
+effstar =   1.0000;
+sigma2  =   0;
+
+model(use_dll);
+
+  // Eq. n°1:
+  efficiency = rho*efficiency(-1) + EfficiencyInnovation;
+
+  // Eq. n°2:
+  Efficiency = effstar*exp(efficiency);
+
+  // Eq. n°3:
+  Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi);
+
+  // Eq. n°4:
+  Capital = Output-Consumption + (1-delta)*Capital(-1);
+
+  // Eq. n°5:
+  ((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi);
+
+  // Eq. n°6:
+  (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption  = ExpectedTerm(1);
+
+  // Eq. n°7:
+  ExpectedTerm = beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)*(alpha*((Output/Capital(-1))^(1-psi))+(1-delta));
+
+end;
+
+steady_state_model;
+efficiency = EfficiencyInnovation/(1-rho);
+Efficiency = effstar*exp(efficiency);
+Output_per_unit_of_Capital=((1/beta-1+delta)/alpha)^(1/(1-psi));
+Consumption_per_unit_of_Capital=Output_per_unit_of_Capital-delta;
+Labour_per_unit_of_Capital=(((Output_per_unit_of_Capital/Efficiency)^psi-alpha)/(1-alpha))^(1/psi);
+Output_per_unit_of_Labour=Output_per_unit_of_Capital/Labour_per_unit_of_Capital;
+Consumption_per_unit_of_Labour=Consumption_per_unit_of_Capital/Labour_per_unit_of_Capital;
+
+% Compute steady state share of capital.
+ShareOfCapital=alpha/(alpha+(1-alpha)*Labour_per_unit_of_Capital^psi);
+
+% Compute steady state of the endogenous variables.
+Labour=1/(1+Consumption_per_unit_of_Labour/((1-alpha)*theta/(1-theta)*Output_per_unit_of_Labour^(1-psi)));
+Consumption=Consumption_per_unit_of_Labour*Labour;
+Capital=Labour/Labour_per_unit_of_Capital;
+Output=Output_per_unit_of_Capital*Capital;
+ExpectedTerm=beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)
+             *(alpha*((Output/Capital)^(1-psi))+1-delta);
+end;
+
+steady;
+
+ik = varlist_indices('Capital',M_.endo_names);
+CapitalSS = oo_.steady_state(ik);
+
+histval;
+Capital(0) = CapitalSS/2;
+end;
+
+simul(periods=500);
+fff = oo_.endo_simul;
+
+simul(periods=500, endogenous_terminal_period);
+ggg = oo_.endo_simul;
+
+t1 = abs(fff-ggg);
+t2 = max(max(t1));
+
+if t2>1e-5
+    error('sim1::endogenous_terminal_period: round off error is greater than 1e-5!')
+end
diff --git a/tests/dsge-var/dsgevar_forward_calibrated_lambda.mod b/tests/dsge-var/dsgevar_forward_calibrated_lambda.mod
index 6ebf5c2792bafd216bcd9aae08c4e39df6e438e0..abebf5d6f77514e0d0556c9e1b5d28f080df4074 100644
--- a/tests/dsge-var/dsgevar_forward_calibrated_lambda.mod
+++ b/tests/dsge-var/dsgevar_forward_calibrated_lambda.mod
@@ -1,10 +1,10 @@
-//$ Declaration of the endogenous variables of the DSGE model.
+// Declaration of the endogenous variables of the DSGE model.
 var a g mc mrs n winf pie r rw y;
 
-//$ Declaration of the exogenous variables of the DSGE model.
+// Declaration of the exogenous variables of the DSGE model.
 varexo e_a e_g e_lam e_ms;
 
-//$ Declaration of the deep parameters
+// Declaration of the deep parameters
 parameters invsig delta gam rho gampie gamy rhoa rhog bet
 	   thetabig omega eps ;
 
@@ -22,7 +22,6 @@ rhog=0.5;
 rho=0.5;
 
 
-//$ Specification of the DSGE model used as a prior of the VAR model.
 model(linear);
 
 	y=y(+1)-(1/invsig)*(r-pie(+1)+g(+1)-g);
@@ -35,17 +34,17 @@ model(linear);
 	g=rhog*g(-1)+e_g;
 	rw=mrs;
 
-	//$ HYBRID PHILLIPS CURVED USED FOR THE SUMULATIONS:
+	// HYBRID PHILLIPS CURVED USED FOR THE SUMULATIONS:
 	//   pie = (omega/(1+omega*bet))*pie(-1)+(bet/(1+omega*bet))*pie(1)+(1-delta)*
       	//   (1-(1-1/thetabig)*bet)*(1-(1-1/thetabig))/((1-1/thetabig)*(1+delta*(eps-1)))/(1+omega*bet)*(mc+e_lam);
 
-	//$ FORWARD LOOKING PHILLIPS CURVE:
+	// FORWARD LOOKING PHILLIPS CURVE:
 	    pie=bet*pie(+1)+(1-delta)*(1-(1-1/thetabig)*bet)*(1-(1-1/thetabig))/((1-1/thetabig)*(1+delta*(eps-1)))*(mc+e_lam);
 end;
 
 
 
-//$ Declaration of the prior beliefs about the deep parameters.
+// Declaration of the prior beliefs about the deep parameters.
 estimated_params;
     stderr e_a, uniform_pdf,,,0,2;
     stderr e_g, uniform_pdf,,,0,2;
@@ -61,19 +60,24 @@ estimated_params;
     rhog, uniform_pdf,,,0,1;
     thetabig, gamma_pdf, 3, 1.42, 1, ;
 
-    //$Parameter for the hybrid Phillips curve
-    //omega, uniform_pdf,,,0,1;
+    // Parameter for the hybrid Phillips curve
+    // omega, uniform_pdf,,,0,1;
 
 end;
 
 
-//$ Declaration of the observed endogenous variables. Note that they are the variables of the VAR (4 by default) and that we must
-//$ have as many observed variables as exogenous variables.
+/*
+** Declaration of the observed endogenous variables. Note that they are the variables of the VAR (4 by default) and that we must
+** have as many observed variables as exogenous variables.
+*/
 varobs pie r rw y;
 
-options_.gradient_method = 3;
-
-//$ The option bayesian_irf triggers the computation of the DSGE-VAR and DSGE posterior distribution of the IRFs.
-//$ The Dashed lines are the first, fifth (ie the median) and ninth posterior deciles of the DSGE-VAR's IRFs, the bold dark curve is the
-//$ posterior median of the DSGE's IRfs and the shaded surface covers the space between the first and ninth posterior deciles of the DSGE's IRFs.
-estimation(datafile=datarabanal_hybrid,first_obs=50,mh_nblocks = 1,nobs=90,dsge_var=.8,mode_compute=4,mh_replic=2000,bayesian_irf);
+/* REMARK 1.
+** The option dsge_var=.8 triggers the estimation of a DSGE-VAR model, with a calibrated dsge prior weight equal to .8.
+**
+** REMARK 2.
+** The option bayesian_irf triggers the computation of the DSGE-VAR and DSGE posterior distribution of the IRFs.
+** The Dashed lines are the first, fifth (ie the median) and ninth posterior deciles of the DSGE-VAR's IRFs, the bold dark curve is the
+** posterior median of the DSGE's IRfs and the shaded surface covers the space between the first and ninth posterior deciles of the DSGE's IRFs.
+*/
+estimation(datafile=datarabanal_hybrid,first_obs=50,mh_nblocks = 1,nobs=90,dsge_var=.8,optim=('NumgradAlgorithm',3),mode_compute=4,mh_replic=2000,bayesian_irf);
diff --git a/tests/dsge-var/dsgevar_forward_estimated_lambda.mod b/tests/dsge-var/dsgevar_forward_estimated_lambda.mod
index a0da9f718bce29508f542029c7403e9910799c16..9fd000d4345c690d92bc3e622e332bed4381c86c 100644
--- a/tests/dsge-var/dsgevar_forward_estimated_lambda.mod
+++ b/tests/dsge-var/dsgevar_forward_estimated_lambda.mod
@@ -1,10 +1,10 @@
-//$ Declaration of the endogenous variables of the DSGE model.
+// Declaration of the endogenous variables of the DSGE model.
 var a g mc mrs n winf pie r rw y;
 
-//$ Declaration of the exogenous variables of the DSGE model.
+// Declaration of the exogenous variables of the DSGE model.
 varexo e_a e_g e_lam e_ms;
 
-//$ Declaration of the deep parameters and of dsge_prior_weight
+// Declaration of the deep parameters
 parameters invsig delta gam rho gampie gamy rhoa rhog bet
 	   thetabig omega eps ;
 
@@ -21,8 +21,6 @@ rhoa=0.5;
 rhog=0.5;
 rho=0.5;
 
-
-//$ Specification of the DSGE model used as a prior of the VAR model.
 model(linear);
 
 	y=y(+1)-(1/invsig)*(r-pie(+1)+g(+1)-g);
@@ -35,17 +33,20 @@ model(linear);
 	g=rhog*g(-1)+e_g;
 	rw=mrs;
 
-	//$ HYBRID PHILLIPS CURVED USED FOR THE SUMULATIONS:
+	// HYBRID PHILLIPS CURVED USED FOR THE SUMULATIONS:
 	//   pie = (omega/(1+omega*bet))*pie(-1)+(bet/(1+omega*bet))*pie(1)+(1-delta)*
       	//   (1-(1-1/thetabig)*bet)*(1-(1-1/thetabig))/((1-1/thetabig)*(1+delta*(eps-1)))/(1+omega*bet)*(mc+e_lam);
 
-	//$ FORWARD LOOKING PHILLIPS CURVE:
+	// FORWARD LOOKING PHILLIPS CURVE:
 	    pie=bet*pie(+1)+(1-delta)*(1-(1-1/thetabig)*bet)*(1-(1-1/thetabig))/((1-1/thetabig)*(1+delta*(eps-1)))*(mc+e_lam);
 end;
 
 
 
-//$ Declaration of the prior beliefs about the deep parameters and the weight of the DSGE prior.
+/*
+** Declaration of the prior beliefs about the deep parameters AND the weight of the DSGE prior.
+** Note that dsge_prior_weight is not declared as a parameter at the top of the mod file.
+*/
 estimated_params;
     stderr e_a, uniform_pdf,,,0,2;
     stderr e_g, uniform_pdf,,,0,2;
@@ -61,20 +62,27 @@ estimated_params;
     rhog, uniform_pdf,,,0,1;
     thetabig, gamma_pdf, 3, 1.42, 1, ;
 
-    //$Parameter for the hybrid Phillips curve
-    //omega, uniform_pdf,,,0,1;
+    // Parameter for the hybrid Phillips curve
+    // omega, uniform_pdf,,,0,1;
 
     dsge_prior_weight, uniform_pdf,,,0,1.9;
 end;
 
 
-//$ Declaration of the observed endogenous variables. Note that they are the variables of the VAR (4 by default) and that we must
-//$ have as many observed variables as exogenous variables.
-varobs pie r rw y;
+/* Declaration of the observed endogenous variables. Note that they are the variables of the VAR (with 4 lags by default) and that we must
+** have as many observed variables as exogenous variables.
+*/
 
-options_.gradient_method = 3;
+varobs pie r rw y;
 
-//$ The option bayesian_irf triggers the computation of the DSGE-VAR and DSGE posterior distribution of the IRFs.
-//$ The Dashed lines are the first, fifth (ie the median) and ninth posterior deciles of the DSGE-VAR's IRFs, the bold dark curve is the
-//$ posterior median of the DSGE's IRfs and the shaded surface covers the space between the first and ninth posterior deciles of the DSGE's IRFs.
-estimation(datafile=datarabanal_hybrid,first_obs=50,mh_nblocks = 1,nobs=90,dsge_var,mode_compute=4,mh_replic=2000,bayesian_irf);
+/* REMARK 1.
+** The dsge_var option triggers the estimation of a DSGE-VAR model instead of the plain DSGE model. The weight of the DSGE prior, dsge_prior_weight,
+** is estimated. The prior of this parameter is defined in the estimated_params block.
+**
+** REMARK 2. 
+** The option bayesian_irf triggers the computation of the DSGE-VAR and DSGE posterior distribution of the IRFs.
+** The Dashed lines are the first, fifth (ie the median) and ninth posterior deciles of the DSGE-VAR's IRFs, the bold dark curve is the
+** posterior median of the DSGE's IRfs and the shaded surface covers the space between the first and ninth posterior deciles of the DSGE's IRFs.
+*/
+
+estimation(datafile=datarabanal_hybrid,first_obs=50,mh_nblocks = 1,nobs=90,dsge_var,mode_compute=4,optim=('NumgradAlgorithm',3),mh_replic=2000,bayesian_irf);
diff --git a/tests/ep/burnside.mod b/tests/ep/burnside.mod
index f6f1fb14d099f247421e39e9e3b237692f6ef74e..0bad36d87bcdca847b8e568f9f2d554f8713930d 100644
--- a/tests/ep/burnside.mod
+++ b/tests/ep/burnside.mod
@@ -43,7 +43,7 @@ set_dynare_seed('default');
 stoch_simul(order=2,pruning,irf=0,periods=5000);
 y_perturbation_2_pruning = oo_.endo_simul(1,:)';
 
-options_.maxit_ = 100;
+options_.simul.maxit = 100;
 options_.ep.verbosity = 0;
 options_.ep.stochastic.order = 0;
 options_.ep.stochastic.nodes = 2;
diff --git a/tests/ep/linear.mod b/tests/ep/linearmodel.mod
similarity index 82%
rename from tests/ep/linear.mod
rename to tests/ep/linearmodel.mod
index afc64ca4c38570d98e9ff07e604ed59d9d3f0d15..f773e651cdc81576fb3f740b615b54954ec320a8 100644
--- a/tests/ep/linear.mod
+++ b/tests/ep/linearmodel.mod
@@ -26,7 +26,7 @@ end;
 
 steady;
 
-options_.maxit_ = 100;
+options_.simul.maxit = 100;
 options_.ep.verbosity = 0;
 options_.ep.stochastic.status = 0;
 options_.ep.order = 0;
@@ -40,6 +40,6 @@ options_.ep.order = 1;
 options_.ep.nnodes = 3;
 sts = extended_path([],100);
 
-if max(max(abs(ts-sts))) > 1e-12
-   error('extended path algorithm fails in ./tests/ep/linear.mod')
-end
\ No newline at end of file
+if max(max(abs(ts.data-sts.data))) > 1e-12
+   error('extended path algorithm fails in ./tests/ep/linearmodel.mod')
+end
diff --git a/tests/ep/rbcii.mod b/tests/ep/rbcii.mod
index 881ab03577a1245ddd922daafd0f3b8ec21c7533..186679731201f7e6e316f788605313aad09a6ecf 100644
--- a/tests/ep/rbcii.mod
+++ b/tests/ep/rbcii.mod
@@ -1,6 +1,6 @@
 @#define extended_path_version = 1
 
-var Capital, Output, Labour, Consumption,  Investment, Output1, Labour1, Consumption1, Output2, Labour2, Consumption2, Efficiency, efficiency, ExpectedTerm;
+var Capital, Output, Labour, Consumption,  Investment, Output1, Labour1, Consumption1, Output2, Labour2, Consumption2, Efficiency, efficiency, ExpectedTerm, LagrangeMultiplier;
 
 varexo EfficiencyInnovation;
 
@@ -10,29 +10,27 @@ parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma;
 ** Calibration
 */
 
-
 beta    =  0.990;
 theta   =  0.357;
 tau     =  2.000;
 alpha   =  0.450;
-psi     = -0.500;
+psi     = -0.200;
 delta   =  0.020;
-rho     =  0.995;
+rho     =  0.800;
 effstar =  1.000;
 sigma   =  0.100;
 
-
-rho = 0.800;
-
 model(use_dll);
 
   efficiency = rho*efficiency(-1) + sigma*EfficiencyInnovation;
 
-  Efficiency = effstar*exp(efficiency-.5*sigma*sigma/(1-rho*rho));
+  Efficiency = effstar*exp(efficiency);
+
+  (((Consumption1^theta)*((1-Labour1)^(1-theta)))^(1-tau))/Consumption1 - beta*ExpectedTerm(1) + LagrangeMultiplier(1)*beta*(1-delta);
 
-  (((Consumption1^theta)*((1-Labour1)^(1-theta)))^(1-tau))/Consumption1 - ExpectedTerm(1);
+  ExpectedTerm = ((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)*(alpha*((Output/Capital(-1))^(1-psi))+1-delta);
 
-  ExpectedTerm = beta*((((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption)*(alpha*((Output/Capital(-1))^(1-psi))+1-delta);
+  LagrangeMultiplier = max(0, (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption - beta*ExpectedTerm(1) + LagrangeMultiplier(1)*beta*(1-delta));
 
   ((1-theta)/theta)*(Consumption1/(1-Labour1)) - (1-alpha)*(Output1/Labour1)^(1-psi);
 
@@ -68,7 +66,7 @@ copyfile('rbcii_steady_state.m','rbcii_steadystate2.m');
 
     steady(nocheck);
 
-    options_.maxit_ = 100;
+    options_.simul.maxit = 100;
     options_.ep.verbosity = 0;
     options_.ep.stochastic.order = 0;
     options_.ep.stochastic.nodes = 2;
@@ -91,7 +89,7 @@ copyfile('rbcii_steady_state.m','rbcii_steadystate2.m');
 
     steady;//(nocheck);
 
-    options_.maxit_ = 100;
+    options_.simul.maxit = 100;
 
     simul(periods=4000);
 
diff --git a/tests/ep/rbcii_steady_state.m b/tests/ep/rbcii_steady_state.m
index 69b6fcfc7c1edc9ffc75d9cf3ac5377421358482..5fc2dcb1ae5bb7aa7ef7dcd2db765c1cdbdfec40 100644
--- a/tests/ep/rbcii_steady_state.m
+++ b/tests/ep/rbcii_steady_state.m
@@ -35,7 +35,7 @@ function [ys_, params, info] = rbcii_steadystate2(ys_, exo_, params)
     ys_(5)=params(6)*ys_(1);
     
     % Steady state level of the expected term appearing in the Euler equation
-    ys_(14)=params(1)*(ys_(4)^params(2)*(1-ys_(3))^(1-params(2)))^(1-params(3))/ys_(4)*(1+params(4)*(ys_(2)/ys_(1))^(1-params(5))-params(6));
+    ys_(14)=(ys_(4)^params(2)*(1-ys_(3))^(1-params(2)))^(1-params(3))/ys_(4)*(1+params(4)*(ys_(2)/ys_(1))^(1-params(5))-params(6));
 
     % Steady state level of output in the unconstrained regime (positive investment)
     ys_(6)=ys_(2);
diff --git a/tests/estim_param_in_shock_value.mod b/tests/estim_param_in_shock_value.mod
new file mode 100644
index 0000000000000000000000000000000000000000..65d0e62d86fa5169116aee3fa4d4fa1bec2fd7ab
--- /dev/null
+++ b/tests/estim_param_in_shock_value.mod
@@ -0,0 +1,67 @@
+// Test for #469, should fail in the preprocessor
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del sig_e_a;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+sig_e_a=0.014;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr sig_e_a;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+del, beta_pdf, 0.01, 0.005;
+sig_e_a, inv_gamma_pdf, 0.035449, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+estimation(order=1,bayesian_irf,irf_shocks=(e_m),datafile=fsdat_simul,mode_check, nobs=192, loglinear, mh_replic=2000, mh_nblocks=2, mh_jscale=0.8);
diff --git a/tests/estimation/fs2000_MCMC_jumping_covariance.mod b/tests/estimation/fs2000_MCMC_jumping_covariance.mod
new file mode 100644
index 0000000000000000000000000000000000000000..f4614b4f45bff6d1968b8614752927fd13eb0078
--- /dev/null
+++ b/tests/estimation/fs2000_MCMC_jumping_covariance.mod
@@ -0,0 +1,85 @@
+// See fs2000.mod in the examples/ directory for details on the model
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, .1;
+stderr e_m, inv_gamma_pdf, 0.008862, .1;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+options_.mode_compute=4;
+options_.plot_priors=0;
+estimation(order=1,datafile=fsdat_simul,nobs=192,loglinear,mh_replic=1000,mh_nblocks=1,mh_jscale=0.8,mcmc_jumping_covariance=hessian);
+
+load fs2000_MCMC_jumping_covariance_mode hh;
+jumping_covariance=diag(diag(hh));
+save test_matrix.mat jumping_covariance;
+
+estimation(order=1,datafile=fsdat_simul,nobs=192,loglinear,mh_replic=1000,mh_nblocks=1,mh_jscale=0.01,mcmc_jumping_covariance=prior_variance);
+estimation(order=1,datafile=fsdat_simul,nobs=192,loglinear,mh_replic=1000,mh_nblocks=1,mh_jscale=0.0001,mcmc_jumping_covariance=identity_matrix);
+
+estimation(order=1,datafile=fsdat_simul,nobs=192,loglinear,mh_replic=1000,mh_nblocks=1,mh_jscale=0.8,mcmc_jumping_covariance='test_matrix');
diff --git a/tests/estimation/fs2000_MCMC_jumping_covariance_steadystate.m b/tests/estimation/fs2000_MCMC_jumping_covariance_steadystate.m
new file mode 100644
index 0000000000000000000000000000000000000000..1f7d9dbd6ddfd0038a2ae5562cc0f46349a297ff
--- /dev/null
+++ b/tests/estimation/fs2000_MCMC_jumping_covariance_steadystate.m
@@ -0,0 +1,73 @@
+% computes the steady state of fs2000 analyticaly
+% largely inspired by the program of F. Schorfheide
+
+% Copyright (C) 2004-2010 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+function [ys,check] = fs2000_MCMC_jumping_covariance_steadystate(ys,exe)
+  global M_
+  
+  alp = M_.params(1); 
+  bet = M_.params(2); 
+  gam = M_.params(3); 
+  mst = M_.params(4); 
+  rho = M_.params(5); 
+  psi = M_.params(6); 
+  del = M_.params(7); 
+
+  check = 0;
+  
+  dA = exp(gam);
+  gst = 1/dA;
+  m = mst;
+  
+  khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1));
+  xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1);
+  nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp );
+  n  = xist/(nust+xist);
+  P  = xist + nust;
+  k  = khst*n;
+
+  l  = psi*mst*n/( (1-psi)*(1-n) );
+  c  = mst/P;
+  d  = l - mst + 1;
+  y  = k^alp*n^(1-alp)*gst^alp;
+  R  = mst/bet;
+  W  = l/n;
+  ist  = y-c;
+  q  = 1 - d;
+
+  e = 1;
+  
+  gp_obs = m/dA;
+  gy_obs = dA;
+  
+  ys =[
+m     
+P     
+c     
+e     
+W     
+R     
+k     
+d     
+n     
+l     
+gy_obs
+gp_obs
+y     
+dA          ];
diff --git a/tests/estimation/fs2000_calibrated_covariance.mod b/tests/estimation/fs2000_calibrated_covariance.mod
new file mode 100644
index 0000000000000000000000000000000000000000..20d34c84ad003789a503dacafccffb98b81006b3
--- /dev/null
+++ b/tests/estimation/fs2000_calibrated_covariance.mod
@@ -0,0 +1,86 @@
+//two covariances are calibrated and one covariance of the ME. One of the calibrated covariances is superseded by estimation
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m e_f;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+varobs gp_obs gy_obs;
+
+shocks;
+var e_a; stderr 0.01;
+var e_f; stderr 0.01;
+var gy_obs; stderr 0.01;
+var gy_obs, gp_obs= 0.00005;
+var e_a, e_m = 0.00005;
+var e_m, e_f = 0.00001;
+end;
+
+steady;
+check;
+
+estimated_params;
+stderr e_m, 0.008862;
+corr e_a, e_m, 0.5;
+stderr gp_obs, 0.035449;
+end;
+
+estimated_params_init;
+stderr e_m, 0.5;
+corr e_a, e_m, 0.5;
+stderr gp_obs, 0.5;
+end;
+
+estimation(order=1,datafile=fsdat_simul,nobs=192, loglinear, mh_replic=2002, mh_nblocks=1, mh_jscale=0.8);
+
+if ~isequal(M_.Sigma_e(3,2),1e-5) || ~isequal(M_.Sigma_e(2,3),1e-5)
+    error('Problem in setting calibrated covariance of structural shocks')
+end
+if isequal(M_.Sigma_e(2,1),5e-5) || isequal(M_.Sigma_e(1,2),5e-5)
+    error('Problem in overriding calibrated covariance of structural shocks by estimated correlation')
+end
+if ~isequal(M_.H(2,1),5e-5) || ~isequal(M_.H(1,2),5e-5)
+    error('Problem in setting calibrated covariance of measurement errors')
+end
\ No newline at end of file
diff --git a/tests/estimation/fs2000_initialize_from_calib.mod b/tests/estimation/fs2000_initialize_from_calib.mod
new file mode 100644
index 0000000000000000000000000000000000000000..88375df9ced2ea9587e96fad010d7a5b555a8ed4
--- /dev/null
+++ b/tests/estimation/fs2000_initialize_from_calib.mod
@@ -0,0 +1,94 @@
+//uses a prior mean for bet that does not allow solving the model. Then uses the calibrated value to initialize.
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m e_f;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+var e_f; stderr 0.005;
+corr gy_obs, gp_obs = 0.1;
+var gy_obs; stderr 0.005;
+end;
+
+steady;
+//check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, normal_pdf, 2, 1;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, normal_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+corr e_a, e_m, normal_pdf, 0, 0.007;
+corr e_a, e_f, normal_pdf, 0, 0.007;
+stderr gp_obs, inv_gamma_pdf, 0.008862, inf;
+corr gp_obs, gy_obs, normal_pdf, 0, 0.007;
+end;
+
+varobs gp_obs gy_obs;
+
+estimated_params_init(use_calibration);
+//stderr e_a, 0.014000;
+//stderr e_m, 0.005000;
+//stderr gp_obs, 0.1;
+corr e_m, e_a, 0.1;
+//corr gy_obs, gp_obs, 0.000000;
+//alp, 0.330000;
+//bet, 0.990000;
+gam, 0.003000;
+mst, 1.011000;
+//rho, 0.900000;
+psi, 0.787000;
+del, 0.020000;
+end;
+
+options_.plot_priors=0;
+estimation(order=1, datafile=fsdat_simul, nobs=192, loglinear, mh_replic=2000, mh_nblocks=1, mh_jscale=0.8,prior_trunc=0);
\ No newline at end of file
diff --git a/examples/fs2000_steadystate.m b/tests/estimation/fs2000_initialize_from_calib_steadystate.m
similarity index 100%
rename from examples/fs2000_steadystate.m
rename to tests/estimation/fs2000_initialize_from_calib_steadystate.m
diff --git a/tests/expectations/expectation.mod b/tests/expectations/expectation.mod
index 97252145609e1182c2c98b29e53c67dadffdd62b..fde5eada504ea6ca992a7f950d675dcaa9fa33ee 100644
--- a/tests/expectations/expectation.mod
+++ b/tests/expectations/expectation.mod
@@ -28,7 +28,7 @@ initval;
 y = 1.08068253095672;
 c = 0.80359242014163;
 h = 0.29175631001732;
-k = 11.08360443260358;
+k = 12;
 a = 0;
 b = 0;
 e = 0;
diff --git a/tests/expectations/expectation_nested.mod b/tests/expectations/expectation_nested.mod
index 44cf44b031d7d7c72af8d87bbc69e30555ce73f0..0bc4069d8bce4734e1f653f98fe490efe99dd11b 100644
--- a/tests/expectations/expectation_nested.mod
+++ b/tests/expectations/expectation_nested.mod
@@ -28,7 +28,7 @@ initval;
 y = 1.08068253095672;
 c = 0.80359242014163;
 h = 0.29175631001732;
-k = 11.08360443260358;
+k = 12;
 a = 0;
 b = 0;
 e = 0;
diff --git a/tests/external_function/example1_1st_and_2nd_deriv_functions_provided.mod b/tests/external_function/first_and_2nd_deriv_fcns_provided.mod
similarity index 100%
rename from tests/external_function/example1_1st_and_2nd_deriv_functions_provided.mod
rename to tests/external_function/first_and_2nd_deriv_fcns_provided.mod
diff --git a/tests/external_function/example1_1st_and_2nd_deriv_functions_provided_dll.mod b/tests/external_function/first_and_2nd_deriv_fcns_provided_dll.mod
similarity index 100%
rename from tests/external_function/example1_1st_and_2nd_deriv_functions_provided_dll.mod
rename to tests/external_function/first_and_2nd_deriv_fcns_provided_dll.mod
diff --git a/tests/external_function/example1_1st_deriv_function_provided.mod b/tests/external_function/first_deriv_fcn_provided.mod
similarity index 100%
rename from tests/external_function/example1_1st_deriv_function_provided.mod
rename to tests/external_function/first_deriv_fcn_provided.mod
diff --git a/tests/external_function/example1_1st_deriv_function_provided_dll.mod b/tests/external_function/first_deriv_fcn_provided_dll.mod
similarity index 100%
rename from tests/external_function/example1_1st_deriv_function_provided_dll.mod
rename to tests/external_function/first_deriv_fcn_provided_dll.mod
diff --git a/tests/external_function/example1_no_deriv_functions_provided.mod b/tests/external_function/no_deriv_fcns_provided.mod
similarity index 100%
rename from tests/external_function/example1_no_deriv_functions_provided.mod
rename to tests/external_function/no_deriv_fcns_provided.mod
diff --git a/tests/external_function/example1_no_deriv_functions_provided_dll.mod b/tests/external_function/no_deriv_fcns_provided_dll.mod
similarity index 100%
rename from tests/external_function/example1_no_deriv_functions_provided_dll.mod
rename to tests/external_function/no_deriv_fcns_provided_dll.mod
diff --git a/tests/filter_step_ahead/fs2000_filter_step_ahead_ML.mod b/tests/filter_step_ahead/fs2000_filter_step_ahead_ML.mod
new file mode 100644
index 0000000000000000000000000000000000000000..43b013677795a12109e8c09808ba50ba5a5a0552
--- /dev/null
+++ b/tests/filter_step_ahead/fs2000_filter_step_ahead_ML.mod
@@ -0,0 +1,112 @@
+/*
+ * This file replicates the estimation of the cash in advance model described
+ * Frank Schorfheide (2000): "Loss function-based evaluation of DSGE models",
+ * Journal of Applied Econometrics, 15(6), 645-670.
+ *
+ * The data are in file "fsdat_simul.m", and have been artificially generated.
+ * They are therefore different from the original dataset used by Schorfheide.
+ *
+ * The equations are taken from J. Nason and T. Cogley (1994): "Testing the
+ * implications of long-run neutrality for monetary business cycle models",
+ * Journal of Applied Econometrics, 9, S37-S70.
+ * Note that there is an initial minus sign missing in equation (A1), p. S63.
+ *
+ * This implementation was written by Michel Juillard. Please note that the
+ * following copyright notice only applies to this Dynare implementation of the
+ * model.
+ */
+
+/*
+ * Copyright (C) 2004-2010 Dynare Team
+ *
+ * This file is part of Dynare.
+ *
+ * Dynare 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.
+ *
+ * Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, 0.356;
+bet, 0.993;
+gam, 0.0085;
+end;
+
+varobs gp_obs gy_obs;
+
+estimation(order=1, datafile='../fs2000/fsdat_simul', nobs=192, loglinear, filter_step_ahead = [1 4 8 12], forecast=20,smoother,filtered_vars) m P c;
+
+
+/*
+ * The following lines were used to generate the data file. If you want to
+ * generate another random data file, comment the "estimation" line and uncomment
+ * the following lines.
+ */
+
+//stoch_simul(periods=200, order=1);
+//datatomfile('fsdat_simul', char('gy_obs', 'gp_obs'));
diff --git a/tests/filter_step_ahead/fs2000_filter_step_ahead_ML_steadystate.m b/tests/filter_step_ahead/fs2000_filter_step_ahead_ML_steadystate.m
new file mode 100644
index 0000000000000000000000000000000000000000..2ac140da5dfd6585ea7168747c441eab7fa2770a
--- /dev/null
+++ b/tests/filter_step_ahead/fs2000_filter_step_ahead_ML_steadystate.m
@@ -0,0 +1,73 @@
+% computes the steady state of fs2000 analyticaly
+% largely inspired by the program of F. Schorfheide
+
+% Copyright (C) 2004-2010 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+function [ys,check] = fs2000_steadystate(ys,exe)
+  global M_
+  
+  alp = M_.params(1); 
+  bet = M_.params(2); 
+  gam = M_.params(3); 
+  mst = M_.params(4); 
+  rho = M_.params(5); 
+  psi = M_.params(6); 
+  del = M_.params(7); 
+
+  check = 0;
+  
+  dA = exp(gam);
+  gst = 1/dA;
+  m = mst;
+  
+  khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1));
+  xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1);
+  nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp );
+  n  = xist/(nust+xist);
+  P  = xist + nust;
+  k  = khst*n;
+
+  l  = psi*mst*n/( (1-psi)*(1-n) );
+  c  = mst/P;
+  d  = l - mst + 1;
+  y  = k^alp*n^(1-alp)*gst^alp;
+  R  = mst/bet;
+  W  = l/n;
+  ist  = y-c;
+  q  = 1 - d;
+
+  e = 1;
+  
+  gp_obs = m/dA;
+  gy_obs = dA;
+  
+  ys =[
+m     
+P     
+c     
+e     
+W     
+R     
+k     
+d     
+n     
+l     
+gy_obs
+gp_obs
+y     
+dA          ];
diff --git a/tests/filter_step_ahead/fs2000_filter_step_ahead_bayesian.mod b/tests/filter_step_ahead/fs2000_filter_step_ahead_bayesian.mod
new file mode 100644
index 0000000000000000000000000000000000000000..f9eb5652abcca392ea5877d91ae315b47bc21674
--- /dev/null
+++ b/tests/filter_step_ahead/fs2000_filter_step_ahead_bayesian.mod
@@ -0,0 +1,118 @@
+/*
+ * This file replicates the estimation of the cash in advance model described
+ * Frank Schorfheide (2000): "Loss function-based evaluation of DSGE models",
+ * Journal of Applied Econometrics, 15(6), 645-670.
+ *
+ * The data are in file "fsdat_simul.m", and have been artificially generated.
+ * They are therefore different from the original dataset used by Schorfheide.
+ *
+ * The equations are taken from J. Nason and T. Cogley (1994): "Testing the
+ * implications of long-run neutrality for monetary business cycle models",
+ * Journal of Applied Econometrics, 9, S37-S70.
+ * Note that there is an initial minus sign missing in equation (A1), p. S63.
+ *
+ * This implementation was written by Michel Juillard. Please note that the
+ * following copyright notice only applies to this Dynare implementation of the
+ * model.
+ */
+
+/*
+ * Copyright (C) 2004-2010 Dynare Team
+ *
+ * This file is part of Dynare.
+ *
+ * Dynare 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.
+ *
+ * Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+estimation(order=1, datafile='../fs2000/fsdat_simul', nobs=192, loglinear, mh_replic=2000, mh_nblocks=1, mh_jscale=0.8,filter_step_ahead = [1 4 8 12], forecast=20,smoother,filtered_vars) m P c;
+
+
+/*
+ * The following lines were used to generate the data file. If you want to
+ * generate another random data file, comment the "estimation" line and uncomment
+ * the following lines.
+ */
+
+//stoch_simul(periods=200, order=1);
+//datatomfile('fsdat_simul', char('gy_obs', 'gp_obs'));
diff --git a/tests/filter_step_ahead/fs2000_filter_step_ahead_bayesian_steadystate.m b/tests/filter_step_ahead/fs2000_filter_step_ahead_bayesian_steadystate.m
new file mode 100644
index 0000000000000000000000000000000000000000..2ac140da5dfd6585ea7168747c441eab7fa2770a
--- /dev/null
+++ b/tests/filter_step_ahead/fs2000_filter_step_ahead_bayesian_steadystate.m
@@ -0,0 +1,73 @@
+% computes the steady state of fs2000 analyticaly
+% largely inspired by the program of F. Schorfheide
+
+% Copyright (C) 2004-2010 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare 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.
+%
+% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+function [ys,check] = fs2000_steadystate(ys,exe)
+  global M_
+  
+  alp = M_.params(1); 
+  bet = M_.params(2); 
+  gam = M_.params(3); 
+  mst = M_.params(4); 
+  rho = M_.params(5); 
+  psi = M_.params(6); 
+  del = M_.params(7); 
+
+  check = 0;
+  
+  dA = exp(gam);
+  gst = 1/dA;
+  m = mst;
+  
+  khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1));
+  xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1);
+  nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp );
+  n  = xist/(nust+xist);
+  P  = xist + nust;
+  k  = khst*n;
+
+  l  = psi*mst*n/( (1-psi)*(1-n) );
+  c  = mst/P;
+  d  = l - mst + 1;
+  y  = k^alp*n^(1-alp)*gst^alp;
+  R  = mst/bet;
+  W  = l/n;
+  ist  = y-c;
+  q  = 1 - d;
+
+  e = 1;
+  
+  gp_obs = m/dA;
+  gy_obs = dA;
+  
+  ys =[
+m     
+P     
+c     
+e     
+W     
+R     
+k     
+d     
+n     
+l     
+gy_obs
+gp_obs
+y     
+dA          ];
diff --git a/tests/fs2000/fs2000_mode_compute_8.mod b/tests/fs2000/fs2000_mode_compute_8.mod
new file mode 100644
index 0000000000000000000000000000000000000000..8ea1ec5786ea128e58e5da4ff1ef3b5ddb83a66d
--- /dev/null
+++ b/tests/fs2000/fs2000_mode_compute_8.mod
@@ -0,0 +1,75 @@
+// See fs2000.mod in the examples/ directory for details on the model
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+estimation(order=1,datafile=fsdat_simul,nobs=192,mode_compute=8,loglinear,mh_replic=0);
diff --git a/tests/fs2000/fs2000e.mod b/tests/fs2000/fs2000e.mod
new file mode 100644
index 0000000000000000000000000000000000000000..83416a7917c9c2c6d804bb2f6ec23caf262e1bd5
--- /dev/null
+++ b/tests/fs2000/fs2000e.mod
@@ -0,0 +1,75 @@
+// See fs2000.mod in the examples/ directory for details on the model
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+estimation(order=1,datafile=fsdat_simul,nobs=192,optim=('NumgradEpsilon',1e-6,'NumgradAlgorithm',3,'MaxIter',100,'InitialInverseHessian','eye(9)*.0001'),loglinear,mh_replic=0);
diff --git a/tests/gradient/fs2000_numgrad_13.mod b/tests/gradient/fs2000_numgrad_13.mod
new file mode 100644
index 0000000000000000000000000000000000000000..26a86c1a381a202664a26a4cb1902f26526a4e94
--- /dev/null
+++ b/tests/gradient/fs2000_numgrad_13.mod
@@ -0,0 +1,73 @@
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+estimation(order=1,datafile='../fs2000/fsdat_simul',nobs=192,loglinear,mh_replic=0,optim=('NumgradAlgorithm',13));
diff --git a/tests/gradient/fs2000_numgrad_15.mod b/tests/gradient/fs2000_numgrad_15.mod
new file mode 100644
index 0000000000000000000000000000000000000000..a5b90ebeb29d9811f081b098ae72542e8d6462ab
--- /dev/null
+++ b/tests/gradient/fs2000_numgrad_15.mod
@@ -0,0 +1,73 @@
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+estimation(order=1,datafile='../fs2000/fsdat_simul',nobs=192,loglinear,mh_replic=0,optim=('NumgradAlgorithm',15));
diff --git a/tests/gradient/fs2000_numgrad_2.mod b/tests/gradient/fs2000_numgrad_2.mod
new file mode 100644
index 0000000000000000000000000000000000000000..c58a57a7000002d6c52b6332ce021c526b5e18ce
--- /dev/null
+++ b/tests/gradient/fs2000_numgrad_2.mod
@@ -0,0 +1,73 @@
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+estimation(order=1,datafile='../fs2000/fsdat_simul',nobs=192,loglinear,mh_replic=0,optim=('NumgradAlgorithm',2));
diff --git a/tests/gradient/fs2000_numgrad_3.mod b/tests/gradient/fs2000_numgrad_3.mod
new file mode 100644
index 0000000000000000000000000000000000000000..05a55e1bb0337506981385b86730eda1adf11c77
--- /dev/null
+++ b/tests/gradient/fs2000_numgrad_3.mod
@@ -0,0 +1,73 @@
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+estimation(order=1,datafile='../fs2000/fsdat_simul',nobs=192,loglinear,mh_replic=0,optim=('NumgradAlgorithm',3));
diff --git a/tests/gradient/fs2000_numgrad_5.mod b/tests/gradient/fs2000_numgrad_5.mod
new file mode 100644
index 0000000000000000000000000000000000000000..302eaecccc3d59c9654dfa4f10e74d9ada197f0a
--- /dev/null
+++ b/tests/gradient/fs2000_numgrad_5.mod
@@ -0,0 +1,73 @@
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
+gy_obs = dA*y/y(-1);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+estimation(order=1,datafile='../fs2000/fsdat_simul',nobs=192,loglinear,mh_replic=0,optim=('NumgradAlgorithm',5));
diff --git a/tests/internals/tests.m b/tests/internals/tests.m
deleted file mode 100644
index 14b3a778c215aa5bdddcf6b75a7fd5b8694ccdfd..0000000000000000000000000000000000000000
--- a/tests/internals/tests.m
+++ /dev/null
@@ -1,53 +0,0 @@
-% matlab script for testing matlab routines.
-
-% Copyright (C) 2011-2012 Dynare Team
-%    
-% This file is part of Dynare.
-%
-% Dynare 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.
-%
-% Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
-
-% Original author: stephane DOT adjemian AT univ DASH lemans DOT fr
-
-list_of_routines = cell(1);
-
-list_of_routines(1,1) = {'../../matlab/@dynSeries'};         % path
-list_of_routines(1,2) = {'dynSeries'};                    % name
-
-% list_of_routines = [list_of_routines ; { '../../matlab/kalman/likelihood' , 'kalman_filter' } ];
-
-
-
-% Temporarely add ../matlab/utilities/tests to the path.
-addpath('../../matlab/utilities/tests')
-
-% Copy output to a file.
-dirlog = datestr(now, 'dddd-mmm-yy');
-if ~exist(dirlog)
-    mkdir(dirlog);
-end
-diary([dirlog '/errors.log'])
-
-% Run tests.
-n = size(list_of_routines,1);
-c = zeros(n,1);
-
-for i=1:n
-    c(i) = mtest(list_of_routines{1,2},list_of_routines{1,1});
-end
-
-if all(c)
-    disp('Nothing to report!')
-end
-
-diary off
diff --git a/tests/k_order_perturbation/fs2000k_1_m.mod b/tests/k_order_perturbation/fs2000k_1_m.mod
index bb19c46fe963c33bb87e335c0025cb0ff9339c2a..80db2ae611a36b33e94c7aed99989811e32838d2 100644
--- a/tests/k_order_perturbation/fs2000k_1_m.mod
+++ b/tests/k_order_perturbation/fs2000k_1_m.mod
@@ -64,7 +64,7 @@ steady;
 stoch_simul(order=2,k_order_solver,irf=0);
 
 if ~exist('fs2000k2_m_results.mat','file');
-   error('fs2000k2 must be run first');
+   error('fs2000k2_m must be run first');
 end;
 
 oo1 = load('fs2000k2_m_results','oo_');
diff --git a/tests/loglinear/example4_exp.mod b/tests/loglinear/example4_exp.mod
new file mode 100644
index 0000000000000000000000000000000000000000..0ff804f37befb878b2ea23a8bbdbfc416a6810da
--- /dev/null
+++ b/tests/loglinear/example4_exp.mod
@@ -0,0 +1,68 @@
+/*
+ * Example 1 from F. Collard (2001): "Stochastic simulations with DYNARE:
+ * A practical guide" (see "guide.pdf" in the documentation directory).
+ */
+
+/*
+ * Copyright (C) 2001-2010 Dynare Team
+ *
+ * This file is part of Dynare.
+ *
+ * Dynare 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.
+ *
+ * Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+var y, c, k, a, h, b;
+varexo e, u;
+
+parameters beta, rho, alpha, delta, theta, psi, tau;
+
+alpha = 0.36;
+rho   = 0.95;
+tau   = 0.025;
+beta  = 0.99;
+delta = 0.025;
+psi   = 0;
+theta = 2.95;
+
+phi   = 0.1;
+
+model;
+exp(c)*theta*exp(h)^(1+psi)=(1-alpha)*exp(y);
+exp(k) = beta*(((exp(b)*exp(c))/(exp(b(+1))*exp(c(+1))))
+    *(exp(b(+1))*alpha*exp(y(+1))+(1-delta)*exp(k)));
+exp(y) = exp(a)*(exp(k(-1))^alpha)*(exp(h)^(1-alpha));
+exp(k) = exp(b)*(exp(y)-exp(c))+(1-delta)*exp(k(-1));
+a = rho*a(-1)+tau*b(-1) + e;
+b = tau*a(-1)+rho*b(-1) + u;
+end;
+
+initval;
+y = log(1.08068253095672);
+c = log(0.80359242014163);
+h = log(0.29175631001732);
+k = log(11.08360443260358);
+a = 0;
+b = 0;
+end;
+resid(1);
+shocks;
+var e; stderr 0.009;
+var u; stderr 0.009;
+var e, u = phi*0.009*0.009;
+end;
+
+stoch_simul(order=1);
+oo_exp=oo_;
+save results_exp oo_exp
\ No newline at end of file
diff --git a/tests/loglinear/example4_loglinear.mod b/tests/loglinear/example4_loglinear.mod
new file mode 100644
index 0000000000000000000000000000000000000000..482a39e7ebac1d7747d8c3456e905eb3afe54cd5
--- /dev/null
+++ b/tests/loglinear/example4_loglinear.mod
@@ -0,0 +1,105 @@
+/*
+ * Example 1 from F. Collard (2001): "Stochastic simulations with DYNARE:
+ * A practical guide" (see "guide.pdf" in the documentation directory).
+ */
+
+/*
+ * Copyright (C) 2001-2010 Dynare Team
+ *
+ * This file is part of Dynare.
+ *
+ * Dynare 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.
+ *
+ * Dynare 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 Dynare.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+var y, c, k, a, h, b;
+varexo e, u;
+
+parameters beta, rho, alpha, delta, theta, psi, tau;
+
+alpha = 0.36;
+rho   = 0.95;
+tau   = 0.025;
+beta  = 0.99;
+delta = 0.025;
+psi   = 0;
+theta = 2.95;
+
+phi   = 0.1;
+
+model;
+c*theta*h^(1+psi)=(1-alpha)*y;
+k = beta*(((b*c)/(b(+1)*c(+1)))
+    *(b(+1)*alpha*y(+1)+(1-delta)*k));
+y = a*(k(-1)^alpha)*(h^(1-alpha));
+k = b*(y-c)+(1-delta)*k(-1);
+log(a) = rho*log(a(-1))+tau*log(b(-1)) + e;
+log(b) = tau*log(a(-1))+rho*log(b(-1)) + u;
+end;
+
+initval;
+y = 1.08068253095672;
+c = 0.80359242014163;
+h = 0.29175631001732;
+k = 11.08360443260358;
+a = 1;
+b = 1;
+end;
+resid(1);
+shocks;
+var e; stderr 0.009;
+var u; stderr 0.009;
+var e, u = phi*0.009*0.009;
+end;
+
+stoch_simul(loglinear,order=1);
+
+load results_exp;
+if max(max(abs(oo_.dr.ghx-oo_exp.dr.ghx)))>1e-10
+    error('Option loglinear wrong, ghx not equal')
+end
+if max(max(abs(oo_.dr.ghu-oo_exp.dr.ghu)))>1e-10
+    error('Option loglinear wrong, ghu not equal')
+end
+if max(max(abs(oo_.irfs.y_e-oo_exp.irfs.y_e)))>1e-10
+    error('Option loglinear wrong, IRFs not equal')
+end
+if max(max(abs(oo_.irfs.y_u-oo_exp.irfs.y_u)))>1e-10
+    error('Option loglinear wrong, ghu not equal')
+end
+if max(max(abs(oo_.mean-oo_exp.mean)))>1e-10
+    error('Option loglinear wrong, mean not equal')
+end
+if max(max(abs(oo_.dr.ys-oo_exp.dr.ys)))>1e-10
+    error('Option loglinear wrong, ys not equal')
+end
+if max(max(abs(oo_.steady_state-oo_exp.steady_state)))>1e-10
+    error('Option loglinear wrong, steady_state not equal')
+end
+
+for ii=1:length(oo_.gamma_y)
+    if max(max(abs(oo_.gamma_y{ii,1}-oo_exp.gamma_y{ii,1})))>1e-10
+    error('Option loglinear wrong, moments not equal')
+    end
+end
+
+for ii=1:length(oo_.autocorr)
+    if max(max(abs(oo_.autocorr{1,ii}-oo_exp.autocorr{1,ii})))>1e-10
+    error('Option loglinear wrong, moments not equal')
+    end
+end
+stoch_simul(loglinear,order=1,periods=100000);
+if abs(mean(y)-0.0776)>0.02
+    error('Simulations are wrong')
+end
\ No newline at end of file
diff --git a/tests/loglinear/results_exp.mat b/tests/loglinear/results_exp.mat
new file mode 100644
index 0000000000000000000000000000000000000000..fad6d3f8f1d8ff6a74544ef4c6b7783094ffcc13
Binary files /dev/null and b/tests/loglinear/results_exp.mat differ
diff --git a/tests/measurement_errors/fs2000_corr_me_ml_mcmc/fs2000_corr_ME.mod b/tests/measurement_errors/fs2000_corr_me_ml_mcmc/fs2000_corr_ME.mod
index 0c9c29c1d20f5bb3c84d49fe5df1099db625dd3d..b6bdf7bfef3f95ddd7fa047413d75cd5ca8e1dbf 100644
--- a/tests/measurement_errors/fs2000_corr_me_ml_mcmc/fs2000_corr_ME.mod
+++ b/tests/measurement_errors/fs2000_corr_me_ml_mcmc/fs2000_corr_ME.mod
@@ -104,7 +104,7 @@ corr gp_obs, gy_obs,0;
 end;
 
 options_.TeX=1;
-estimation(mode_compute=9,order=1,datafile=fsdat_simul,mode_check,smoother,filter_decomposition,forecast = 8,filtered_vars,filter_step_ahead=[1,3],irf=20) m P c e W R k d y gy_obs;
+estimation(order=1,datafile=fsdat_simul,mode_check,smoother,filter_decomposition,forecast = 8,filtered_vars,filter_step_ahead=[1,3],irf=20) m P c e W R k d y gy_obs;
 
 
 
diff --git a/tests/ms-dsge/test_ms_dsge.mod b/tests/ms-dsge/test_ms_dsge.mod
new file mode 100644
index 0000000000000000000000000000000000000000..e11715b3e43c63ee6b083a5c1852139a61b60e82
--- /dev/null
+++ b/tests/ms-dsge/test_ms_dsge.mod
@@ -0,0 +1,38 @@
+var y, c, k, a, h, b;
+varexo e, u;
+
+parameters beta, rho, alpha, delta, theta, psi, tau;
+
+alpha = 0.36;
+rho   = 0.95;
+tau   = 0.025;
+beta  = 0.99;
+delta = 0.025;
+psi   = 0;
+theta = 2.95;
+phi   = 0.1;
+
+model(use_dll);
+c*theta*h^(1+psi)=(1-alpha)*y;
+k = beta*(((exp(b)*c)/(exp(b(+1))*c(+1)))
+    *(exp(b(+3))*alpha*y(+2)+(1-delta)*k));
+y = exp(a)*(k(-1)^alpha)*(h^(1-alpha));
+k = exp(b)*(y-c)+(1-delta)*k(-1);
+a = rho*a(-1)+tau*b(-1) + e;
+b = tau*a(-1)+rho*b(-1) + u;
+end;
+
+markov_switching(chain=1, number_of_regimes=2, duration=2.5, parameters=[alpha, delta, theta], number_of_lags=1);
+alpha.prior    (shape=gamma,   mean=3.22, variance=0.1^2);
+rho.prior      (shape=uniform, mean=322,  variance=2^.33, domain=[0.36, 0.88]);
+std(e).prior   (shape=beta,    mean=0.3,  variance=0.1^2, domain=[-0.1 006]);
+std(y).prior   (shape=beta,    mean=0.3,  variance=0.1^2, domain=[01 4]);
+std(c).prior   (shape=beta,    mean=0.3,  variance=0.1^2);
+corr(y,c).prior(shape=beta,    mean=0.3,  variance=0.1^2, mode=33);
+corr(b,c).prior(shape=beta,    mean=0.3,  variance=0.1^2);
+corr(e,u).prior(shape=beta,    mean=0.3,  variance=0.1^2);
+alpha.options(init=1);
+rho.options(init=1);
+beta.options(init=0.2);
+std(u).options(init=3);
+corr(y,c).options(init=.02);
\ No newline at end of file
diff --git a/tests/optimal_policy/nk_ramsey_det.mod b/tests/optimal_policy/nk_ramsey_det.mod
new file mode 100644
index 0000000000000000000000000000000000000000..772e69a66a7b7340fb510dce794bb89b6fb95e82
--- /dev/null
+++ b/tests/optimal_policy/nk_ramsey_det.mod
@@ -0,0 +1,96 @@
+//MODEL:
+//test on Dynare to find the lagrangean multipliers.
+//We consider a standard NK model. We use the FOCS of the competitive economy and we aim at calculating the Ramsey optimal problem.
+
+//------------------------------------------------------------------------------------------------------------------------
+//1. Variable declaration
+//------------------------------------------------------------------------------------------------------------------------
+
+var pai, c, n, r, a;
+
+//4 variables + 1 shock
+
+varexo u;
+
+
+
+
+//------------------------------------------------------------------------------------------------------------------------
+// 2. Parameter declaration and calibration
+//-------------------------------------------------------------------------------------------------------------------------
+
+parameters beta, rho, epsilon, omega, phi, gamma;
+
+beta=0.99;
+gamma=3;       //Frish elasticity
+omega=17;        //price stickyness
+epsilon=8;      //elasticity for each variety of consumption
+phi=1;           //coefficient associated to labor effort disutility
+
+rho=0.95;  //coefficient associated to productivity shock
+
+
+//-----------------------------------------------------------------------------------------------------------------------
+// 3. The model
+//-----------------------------------------------------------------------------------------------------------------------
+
+
+model;
+
+
+a=rho*(a(-1))+u;
+
+1/c=beta*(1/(c(+1)))*(r/(pai(+1)));               //euler
+
+
+omega*pai*(pai-1)=beta*omega*(c/(c(+1)))*(pai(+1))*(pai(+1)-1)+epsilon*exp(a)*n*(c/exp(a)*phi*n^gamma-(epsilon-1)/epsilon);  //NK pc
+//pai*(pai-1)/c = beta*pai(+1)*(pai(+1)-1)/c(+1)+epsilon*phi*n^(gamma+1)/omega-exp(a)*n*(epsilon-1)/(omega*c);  //NK pc
+
+(exp(a))*n=c+(omega/2)*((pai-1)^2);
+
+end;
+
+//--------------------------------------------------------------------------------------------------------------------------
+// 4. Steady state
+//---------------------------------------------------------------------------------------------------------------------------
+
+initval;
+
+pai=1;
+r=1/beta;
+c=0.9671684882;
+n=0.9671684882;
+a=0;
+
+
+end;
+
+
+
+//---------------------------------------------------------------------------------------------------------------------------
+// 5. shocks
+//---------------------------------------------------------------------------------------------------------------------------
+
+shocks;
+var u;
+periods 1;
+values 0.008;
+end;
+
+//--------------------------------------------------------------------------------------------------------------------------
+// 6. Ramsey problem
+//--------------------------------------------------------------------------------------------------------------------------
+
+planner_objective(ln(c)-phi*((n^(1+gamma))/(1+gamma)));
+
+write_latex_static_model;
+
+ramsey_model(planner_discount=0.99);
+
+options_.ramsey_policy=1;
+steady;
+
+options_.simul.maxit = 20;
+simul(periods=100);
+
+rplot r;
diff --git a/tests/optimal_policy/nk_ramsey_model.mod b/tests/optimal_policy/nk_ramsey_model.mod
new file mode 100644
index 0000000000000000000000000000000000000000..f2736f916bcac027dc04cdebc7f06d93177bffc6
--- /dev/null
+++ b/tests/optimal_policy/nk_ramsey_model.mod
@@ -0,0 +1,90 @@
+//MODEL:
+//test on Dynare to find the lagrangean multipliers.
+//We consider a standard NK model. We use the FOCS of the competitive economy and we aim at calculating the Ramsey optimal problem.
+
+//------------------------------------------------------------------------------------------------------------------------
+//1. Variable declaration
+//------------------------------------------------------------------------------------------------------------------------
+
+var pai, c, n, r, a;
+
+//4 variables + 1 shock
+
+varexo u;
+
+
+
+
+//------------------------------------------------------------------------------------------------------------------------
+// 2. Parameter declaration and calibration
+//-------------------------------------------------------------------------------------------------------------------------
+
+parameters beta, rho, epsilon, omega, phi, gamma;
+
+beta=0.99;
+gamma=3;       //Frish elasticity
+omega=17;        //price stickyness
+epsilon=8;      //elasticity for each variety of consumption
+phi=1;           //coefficient associated to labor effort disutility
+
+rho=0.95;  //coefficient associated to productivity shock
+
+
+//-----------------------------------------------------------------------------------------------------------------------
+// 3. The model
+//-----------------------------------------------------------------------------------------------------------------------
+
+
+model;
+
+
+a=rho*(a(-1))+u;
+
+1/c=beta*(1/(c(+1)))*(r/(pai(+1)));               //euler
+
+
+omega*pai*(pai-1)=beta*omega*(c/(c(+1)))*(pai(+1))*(pai(+1)-1)+epsilon*exp(a)*n*(c/exp(a)*phi*n^gamma-(epsilon-1)/epsilon);  //NK pc
+//pai*(pai-1)/c = beta*pai(+1)*(pai(+1)-1)/c(+1)+epsilon*phi*n^(gamma+1)/omega-exp(a)*n*(epsilon-1)/(omega*c);  //NK pc
+
+(exp(a))*n=c+(omega/2)*((pai-1)^2);
+
+end;
+
+//--------------------------------------------------------------------------------------------------------------------------
+// 4. Steady state
+//---------------------------------------------------------------------------------------------------------------------------
+
+initval;
+
+pai=1;
+r=1/beta;
+c=0.9671684882;
+n=0.9671684882;
+a=0;
+
+
+end;
+
+
+
+//---------------------------------------------------------------------------------------------------------------------------
+// 5. shocks
+//---------------------------------------------------------------------------------------------------------------------------
+
+shocks;
+var u; stderr 0.008;
+
+end;
+
+//--------------------------------------------------------------------------------------------------------------------------
+// 6. Ramsey problem
+//--------------------------------------------------------------------------------------------------------------------------
+
+planner_objective(ln(c)-phi*((n^(1+gamma))/(1+gamma)));
+
+write_latex_static_model;
+
+ramsey_model(planner_discount=0.99);
+options_.ramsey_policy=1;
+stoch_simul(irf=0);
+
diff --git a/tests/osr_example.mod b/tests/optimal_policy/osr_example.mod
similarity index 100%
rename from tests/osr_example.mod
rename to tests/optimal_policy/osr_example.mod
diff --git a/tests/ramst.mod b/tests/ramst.mod
index f5637b3d228355ceacbe8b12b7ac2d6fa424803a..cd05cc619abd04bdbbc3ddd5701486e9b0d1ec2e 100644
--- a/tests/ramst.mod
+++ b/tests/ramst.mod
@@ -30,7 +30,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 rplot c;
 rplot k;
diff --git a/tests/reporting/CountryGraphPage.m b/tests/reporting/CountryGraphPage.m
index 39bd37a3ce2b35afe5b96dec7dc68573b56069d2..6323649b29d5dd62f7833bfa8f99cb9bbd51ed61 100644
--- a/tests/reporting/CountryGraphPage.m
+++ b/tests/reporting/CountryGraphPage.m
@@ -16,75 +16,97 @@ function rep = CountryGraphPage(rep, countryAbbr, db_q, dc_q, prange, srange)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+startpoint = strings(prange(1));
+shaded = strings(srange(1));
+endpoint = strings(prange(end));
 rep = rep.addGraph('title', 'Interest Rate', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showZeroline', true);
+                   'showZeroline', true, ...
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 rep = rep.addSeries('data', db_q{['RS_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{['RS_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 
 rep = rep.addGraph('title', 'Output Gap', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showZeroline', true);
+                   'showZeroline', true, ...
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 rep = rep.addSeries('data', db_q{['Y_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{['Y_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 
 rep = rep.addGraph('title', 'Headline Inflation (y/y)', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showZeroline', true);
+                   'showZeroline', true, ...
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 rep = rep.addSeries('data', db_q{['PCH_PIE4_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{['PCH_PIE4_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 
 rep = rep.addGraph('title', 'Headline Inflation (q/q)', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showZeroline', true);
+                   'showZeroline', true, ...
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 rep = rep.addSeries('data', db_q{['PCH_PIE_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{['PCH_PIE_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 
 rep = rep.addGraph('title', 'GDP Growth (q/q)', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showZeroline', true);
+                   'showZeroline', true, ...
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 rep = rep.addSeries('data', db_q{['PCH_GROWTH_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{['PCH_GROWTH_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 
 rep = rep.addGraph('title', 'Core Inflation (y/y)', ...
+                   'titleFormat', '\Huge', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showZeroline', true);
+                   'showZeroline', true, ...
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 rep = rep.addSeries('data', db_q{['PCH_PIEX4_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{['PCH_PIEX4_' countryAbbr]}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 end
\ No newline at end of file
diff --git a/tests/reporting/CountryTablePage.m b/tests/reporting/CountryTablePage.m
index 4ff7c211718affb639e75ab0580fefc38292dbfc..06ce66ea5d580ad57c366c61aabe53e39366da68 100644
--- a/tests/reporting/CountryTablePage.m
+++ b/tests/reporting/CountryTablePage.m
@@ -1,5 +1,5 @@
-function rep = CountryTablePage(rep, countryAbbr, countryName, db_q, dc_q, trange, vline_after)
-% Copyright (C) 2013 Dynare Team
+function rep = CountryTablePage(rep, countryAbbr, countryName, db_q, dc_q, db_a, dc_a, trange, vline_after)
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -42,8 +42,10 @@ otherThree = {'EA6','LA6','RC6'};
 notForOtherThree = {'BLT_', 'UNR_', 'UNR_BAR_', 'UNR_GAP_'};
 
 rep = rep.addTable('title', countryName, ...
-                   'range', trange, ...
-                   'vlineAfter', vline_after);
+                   'range', {trange, dates('2012a'):dates('2014a')}, ...
+                   'vlineAfter', {vline_after dates('2014q4')});
+
+
 
 for i=1:length(seriesNames)
     if any(strcmp(countryAbbr, otherThree)) && ...
@@ -51,11 +53,16 @@ for i=1:length(seriesNames)
         continue
     end
     db_q = db_q.tex_rename([seriesNames{i}{1} countryAbbr], seriesNames{i}{2});
-    rep = rep.addSeries('data', db_q{[seriesNames{i}{1} countryAbbr]});
+    rep = rep.addSeries('data', db_q{[seriesNames{i}{1} countryAbbr]}, ...
+                        'tableDataRhs', db_a{[seriesNames{i}{1} countryAbbr]});
     delta = db_q{[seriesNames{i}{1} countryAbbr]}-dc_q{[seriesNames{i}{1} countryAbbr]};
     delta = delta.tex_rename('$\Delta$');
+
+    deltaa = db_a{[seriesNames{i}{1} countryAbbr]}-dc_a{[seriesNames{i}{1} countryAbbr]};
+    deltaa = delta.tex_rename('$\Delta$');
     rep = rep.addSeries('data', delta, ...
                         'tableShowMarkers', true, ...
-                        'tableAlignRight', true);
+                        'tableRowIndent', 2, ...
+                        'tableDataRhs', deltaa);
 end
 end
diff --git a/tests/reporting/db_a.csv b/tests/reporting/db_a.csv
index 41503972263f7c138d77f93540484214afb7145d..556afde0ddde74a1bfb78edd1a51409f72df9e51 100644
--- a/tests/reporting/db_a.csv
+++ b/tests/reporting/db_a.csv
@@ -44,4 +44,4 @@ Variables ->,BLT_BAR_EU_,BLT_BAR_JA_,BLT_BAR_US_,BLT_EU_,BLT_JA_,BLT_US_,GROWTH_
 2026Y,-2.070000,-6.540000,6.130000,-2.067539,-6.509621,6.138355,7.636512,1.932135,1.385371,3.968020,3.976296,2.512307,7.635981,1.931161,1.384639,3.967289,3.974788,2.512181,108.022752,54.550515,11.477568,273.279337,242.966419,74.514172,133.718400,62.169367,13.927414,276.545169,247.551785,80.075130,241.667620,789.493427,1333.297694,111.012352,97.112458,987.790288,241.667087,789.493854,1333.296543,111.013070,97.113437,987.789984,626.644015,503.806974,475.779145,687.440847,771.161760,580.122641,554.434262,590.111553,527.508693,491.452191,684.762958,665.839850,615.834929,576.977804,0.000923,496.898952,0.003723,156.569855,-40.670186,435.699205,1780.853001,163.274693,102.928082,-22.761718,501.848802,1584.389768,-4.195983,4.000000,3.500000,4.500000,1.969624,2.154941,1.632616,3.993261,1.992599,1.882165,5.975444,4.063698,2.628622,7.481693,6.489921,4.386310,9.951451,4.202369,7.200675,9.951205,4.202667,7.201038,-0.000533,0.000427,-0.001151,0.000718,0.000979,-0.000304,-0.028210,-0.096664,-0.034684,0.232220,0.137885,-0.095353,-0.028289,-0.096660,-0.034847,0.233372,0.139162,-0.097055,-0.031670,-0.087091,-0.039347,0.212223,0.124573,-0.079453,-0.031847,-0.087131,-0.039501,0.213199,0.125825,-0.081252,-0.026078,-0.089358,-0.032063,0.214670,0.127464,-0.088146,-0.026126,-0.089379,-0.032091,0.215831,0.128832,-0.090015,0.000628,0.001782,-0.003445,0.000814,0.000553,-0.000169,4.003519,1.905604,0.993107,3.494564,4.499353,2.502064,4.003461,1.900274,1.000065,3.519755,4.506056,2.500597,4.003535,1.904864,4.004796,1.904940,1.001466,3.552796,4.558476,2.506869,0.995059,3.505805,4.503769,2.502033,-0.000621,0.000225,-0.001299,0.000578,0.000707,-0.000339,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.003416,1.904738,0.995080,3.505615,4.503618,2.501983,4.003390,1.905447,0.993139,3.494644,4.499273,2.501985,4.003164,1.904468,0.995104,3.505221,4.503282,2.501861,4.003125,1.905119,0.993186,3.494817,4.499088,2.501822,-0.000675,-0.000123,-0.001513,0.000363,0.000360,-0.000416,-0.000510,-0.000164,-0.001398,0.000330,0.000408,-0.000410,0.000059,0.000095,0.000003,0.000012,0.000023,0.000000,-0.000000,0.000000,-0.000000,0.000000,-0.000000,0.000051,7.623533,1.916887,1.381562,3.966380,3.973030,2.512575,7.622724,1.915799,1.380747,3.965396,3.970808,2.512569,-0.264019,-0.330239,-0.059761,-0.032711,-0.025212,0.012181,4.118958,130.489635,552.369694,552.369691,576.974082,577.286291,451.596490,976.207011,2058.747977,470.162226,474.358209,-0.000575,-0.001782,-0.000958,-0.005884,-0.005056,0.000923,0.003723,0.003723,0.003723,0.003723,0.003723,0.003723,0.001689,0.002310,0.002152,-0.005149,-0.001936,0.001703,102.929490,-22.764156,501.847125,1584.439212,-4.168520,-0.001498,-0.002705,-0.001881,-0.006807,-0.005979,4.004274,1.900354,1.000308,3.522652,4.506982,2.500937,4.004323,1.905728,4.023411,1.913055,1.001832,3.766805,4.662138,2.508270,2.508270,4.006078,1.906146,1.002572,3.562670,4.567501,2.509152,0.995201,3.506971,4.027621,1.917264,1.006042,3.771014,4.666347,2.512479,2.512479,4.504962,2.502574,1.900000,1.000000,2.500000,0.003829,0.005182,-0.004917,0.006251,0.004187,0.002196,0.016828,0.005963,0.005398,0.239356,0.144601,0.004199,0.004199,0.035063,0.024197,0.023632,0.257590,0.141269,0.091667,0.049603,0.162835,0.022433,0.020181,0.009316,0.008751,0.242709,0.147954,0.007552,0.007552,0.000057,-0.000848,0.002019,0.012989,0.004881,0.000034,0.001056,0.001307,0.000224,-0.005422,-0.004131,0.004124,1.971042,2.158212,1.627847,3.993581,1.993459,1.882211,1.973108,2.161023,1.630468,3.987878,1.991475,1.884172,1.971925,2.158094,1.635515,3.987129,1.990567,1.884247,0.005820,0.008757,-0.003995,-0.011568,-0.002679,0.004145,5.975444,4.063698,2.628622,7.481693,6.489921,4.386310,-0.000003,-2.070000,-6.540000,6.130000,-2.067539,-6.509621,6.138355,0.011401,0.233225,0.137883,-0.000000,-0.000000,-0.000000,7.636512,1.932135,1.385371,3.968020,3.976296,2.512307,7.635981,1.931161,1.384639,3.967289,3.974788,2.512181,7.642163,1.934961,1.388903,3.969432,3.980554,2.515133,108.022752,54.550515,11.477568,273.279337,242.966419,74.514172,133.718400,62.169367,13.927414,276.545169,247.551785,80.075130,241.667620,789.493427,1333.297694,111.012352,97.112458,987.790288,241.667087,789.493854,1333.296543,111.013070,97.113437,987.789984,626.644015,503.806974,475.779145,687.440847,771.161760,580.122641,711.004116,513.764075,990.133467,2335.287262,717.708954,554.434262,554.434262,590.111553,527.508693,491.452191,684.762958,665.839850,615.834929,733.547659,536.307618,1012.677010,2357.830805,740.252497,576.977804,576.977804,474.358209,577.285716,451.594708,0.000923,0.001449,976.206053,2058.742093,470.157169,474.359132,474.359132,599.825536,474.134528,998.745873,2081.281913,492.696989,496.898952,496.898952,599.829259,474.138251,0.003723,0.005608,998.749595,2081.285636,492.700712,496.902674,496.902674,1.973294,2.163501,1.620183,3.994090,1.994537,1.882196,1.974983,2.165811,1.622336,3.988941,1.992601,1.883899,156.569855,-40.670186,435.699205,1780.853001,163.274693,102.928082,-22.761718,501.848802,1584.389768,-4.195983,102.926584,-22.764423,501.846921,1584.382961,-4.201962,4.000000,3.500000,4.500000,4.004266,1.906575,0.993182,3.493982,4.500081,2.502540,4.003821,1.905982,0.993112,3.494376,4.499613,2.502249,4.003749,1.900301,1.000143,3.520840,4.506403,2.500697,4.003829,1.905182,4.020658,1.911145,1.000481,3.745607,4.648788,2.506395,2.506395,4.005042,1.905050,1.001489,3.556362,4.561476,2.506907,0.995083,3.506251,4.024011,1.914498,1.003834,3.748960,4.652141,2.509748,2.509748,4.504187,0.022433,2.502196,-130.122932,-148.575474,385.950135,1533.831187,-113.172276,-304.653989,-130.121587,-148.574205,0.001345,0.001269,0.000511,-0.005152,-0.003934,0.003845,385.950646,1533.826035,-113.176210,-304.650144,-84.368021,-131.339716,405.460704,1550.219806,-91.498388,-319.405941,-84.366964,-131.338409,405.460928,1550.214384,-91.502519,-319.401817,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000002,0.000001,0.000011,-0.000002,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.969624,2.154941,1.632616,3.993261,1.992599,1.882165,5.975444,4.063698,2.628622,7.481693,6.489921,4.386310,9.951451,4.202369,7.200675,9.951205,0.000245,-0.000298,-0.000363,0.000235,0.000000,0.000000,4.202667,7.201038,-0.000533,0.000427,-0.001151,0.000718,0.000979,-0.000304,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,78.022786,0.012817,0.665844,1.501858,0.008534,117.178352,54218674.001803,0.000000,4.786060,0.208944,5.118005,0.195396,151.179702,0.006615,0.796408,1.255639,0.005268,189.827059,7601299.821018,0.000000,2.799010,0.357269,0.958851,1.042915,19495.277436,2683.692507,617222.251506,11.211099,3.034920,2.641076,2.533764,1.923447,1.000051,3.568445,4.085063,4.607166,2.534151,1.924002,1.000170,3.569191,4.085577,4.607976,2.533818,1.924261,0.998059,3.556147,4.085055,4.602381,2.534116,1.924866,0.998131,3.555739,4.085517,4.602871,2.538595,1.923312,1.006520,3.620357,4.086325,4.667111,2.540896,1.924429,1.007615,3.626894,4.087403,4.673417,2.532226,1.918472,1.005161,3.583556,4.084980,4.609483,2.532473,1.918525,1.005328,3.585433,4.085526,4.610089,2.541507,2.544308,2.538069,2.539992,2.544002,1.949929,1.394269,4.047037,7.935088,4.054840,4.416602,2.544400,1.934269,1.390324,4.045067,7.920779,4.050698,4.408581,2.544132,1.950922,1.395012,4.047797,7.935660,4.056409,4.417338,2.544406,1.935378,1.391150,4.046091,7.921652,4.053011,4.409551,-0.097008,-0.096613,-0.034841,0.233645,-0.028285,0.139260,-0.089975,-0.089339,-0.032086,0.216065,-0.026123,0.128915,0.002082,0.003153,0.002899,0.002301,-0.006132,-0.002032,153.808576,137.173521,114.871254,191.450118,197.655424,218.846829
 2027Y,-2.070000,-6.540000,6.130000,-2.066708,-6.511931,6.138223,7.667654,1.969050,1.394218,3.971917,3.982992,2.511499,7.667693,1.968748,1.394079,3.971743,3.982772,2.511425,112.025876,56.455634,12.470754,276.774153,247.465507,77.015995,137.721564,64.073835,14.922518,280.050390,252.055067,82.576990,249.323900,791.448977,1334.688703,114.982847,101.093100,990.302088,249.323225,791.448854,1334.687190,114.983209,101.093461,990.301672,630.647120,505.707216,476.779130,690.959129,775.667347,582.623145,556.939354,594.116228,529.413752,492.453956,688.311184,670.394547,618.342407,579.488614,-0.000330,496.916310,-0.004686,158.082130,-41.266261,434.193399,1782.063527,165.399629,102.938127,-22.761718,501.848802,1584.595262,-4.074495,4.000000,3.500000,4.500000,1.973293,2.163436,1.620234,3.994089,1.994735,1.882254,5.977482,4.070066,2.615746,7.484214,6.491541,4.385443,9.952178,4.202369,7.200675,9.952117,4.202708,7.201058,-0.000675,-0.000123,-0.001513,0.000363,0.000360,-0.000416,-0.022978,-0.078733,-0.028250,0.189145,0.112308,-0.077665,-0.023057,-0.078844,-0.028249,0.190220,0.113462,-0.079155,-0.025796,-0.070936,-0.032048,0.172857,0.101466,-0.064715,-0.025986,-0.071100,-0.032140,0.173754,0.102379,-0.065852,-0.021241,-0.072783,-0.026115,0.174850,0.103820,-0.071796,-0.021347,-0.072941,-0.026125,0.175853,0.104802,-0.072987,0.000491,0.001536,-0.003045,0.000573,0.000375,-0.000223,4.002567,1.904430,0.993427,3.495243,4.498805,2.501474,4.002596,1.900198,0.999887,3.516010,4.504868,2.500396,4.002638,1.903907,4.004555,1.905273,1.002297,3.541459,4.548880,2.508513,0.995265,3.504365,4.502626,2.501624,-0.000647,-0.000166,-0.001517,0.000339,0.000345,-0.000426,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.002569,1.903831,0.995325,3.504243,4.502548,2.501587,4.002500,1.904340,0.993512,3.495338,4.498807,2.501428,4.002417,1.903665,0.995434,3.503981,4.502371,2.501509,4.002349,1.904143,0.993667,3.495523,4.498788,2.501326,-0.000510,-0.000164,-0.001398,0.000330,0.000408,-0.000410,-0.000335,-0.000054,-0.001123,0.000341,0.000491,-0.000330,-0.000086,0.000001,-0.000057,-0.000052,-0.000048,0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000006,7.656281,1.955550,1.391009,3.970495,3.980642,2.511800,7.656138,1.955000,1.390647,3.970140,3.980024,2.511687,-0.232307,-0.292652,-0.050321,-0.028257,-0.017228,0.011425,4.134836,133.619528,556.495611,556.495288,579.493300,577.300821,451.600975,976.211495,2058.957955,470.288198,474.362693,-0.000901,-0.001717,-0.001260,-0.005463,-0.004283,-0.000330,-0.004686,-0.004686,-0.004686,-0.004686,-0.004686,-0.004686,0.001161,0.001597,0.001502,-0.004335,-0.001858,0.001356,102.939855,-22.762984,501.847964,1584.635909,-4.051299,-0.000571,-0.001387,-0.000930,-0.005134,-0.003953,4.003105,1.900242,0.999984,3.518283,4.505587,2.500503,4.003164,1.904468,4.017368,1.909018,0.999286,3.715619,4.630029,2.505092,2.505092,4.004675,1.905059,1.001766,3.548225,4.554696,2.507478,0.995104,3.505221,4.023086,1.914736,1.005004,3.721337,4.635746,2.510810,2.510810,4.503282,2.501861,1.900000,1.000000,2.500000,0.002821,0.004103,-0.004823,0.004672,0.002845,0.001707,0.012863,0.003882,0.003613,0.194321,0.116843,0.002893,0.002893,0.024688,0.015707,0.015438,0.206146,0.102109,0.058789,0.043320,0.128668,0.014718,0.020082,0.011101,0.010832,0.201540,0.124062,0.010112,0.010112,0.000039,-0.000652,0.001917,0.010404,0.004194,0.000038,0.000977,0.001197,0.000226,-0.004347,-0.002977,0.002634,1.974523,2.166319,1.616047,3.994368,1.995343,1.882250,1.975902,2.168202,1.617831,3.989527,1.993329,1.883807,1.974915,2.165636,1.622320,3.988970,1.992735,1.883969,0.004189,0.006630,-0.004488,-0.009876,-0.003194,0.003189,5.977482,4.070066,2.615746,7.484214,6.491541,4.385443,-0.000323,-2.070000,-6.540000,6.130000,-2.066708,-6.511931,6.138223,0.009286,0.189963,0.112307,-0.000000,-0.000000,-0.000000,7.667654,1.969050,1.394218,3.971917,3.982992,2.511499,7.667693,1.968748,1.394079,3.971743,3.982772,2.511425,7.671739,1.971092,1.396771,3.972939,3.986069,2.513541,112.025876,56.455634,12.470754,276.774153,247.465507,77.015995,137.721564,64.073835,14.922518,280.050390,252.055067,82.576990,249.323900,791.448977,1334.688703,114.982847,101.093100,990.302088,249.323225,791.448854,1334.687190,114.983209,101.093461,990.301672,630.647120,505.707216,476.779130,690.959129,775.667347,582.623145,715.021484,515.673093,991.132753,2339.002881,722.338983,556.939354,556.939354,594.116228,529.413752,492.453956,688.311184,670.394547,618.342407,737.570745,538.222354,1013.682014,2361.552142,744.888243,579.488614,579.488614,474.362693,577.299920,451.599258,-0.000330,0.000951,976.210235,2058.952492,470.283916,474.362363,474.362363,599.853867,474.153205,998.764182,2081.506438,492.837862,496.916310,496.916310,599.849181,474.148519,-0.004686,0.003680,998.759496,2081.501752,492.833176,496.911624,496.911624,1.976491,2.170997,1.609318,3.994812,1.996114,1.882188,1.977653,2.172595,1.610820,3.990477,1.994257,1.883545,158.082130,-41.266261,434.193399,1782.063527,165.399629,102.938127,-22.761718,501.848802,1584.595262,-4.074495,102.937557,-22.763105,501.847872,1584.590128,-4.078448,4.000000,3.500000,4.500000,4.003125,1.905119,0.993186,3.494817,4.499088,2.501822,4.002759,1.904670,0.993300,3.495069,4.498872,2.501597,4.002776,1.900213,0.999916,3.516867,4.505137,2.500427,4.002821,1.904103,4.015684,1.907985,0.998790,3.698993,4.619688,2.504600,2.504600,4.004597,1.905209,1.002104,3.543928,4.551097,2.508154,0.995177,3.504672,4.022903,1.915204,1.006009,3.706212,4.626907,2.511819,2.511819,4.502845,0.014718,2.501707,-130.150836,-148.652209,385.915467,1534.018176,-113.062515,-304.723995,-130.149675,-148.651063,0.001161,0.001146,0.000411,-0.004218,-0.002870,0.002416,385.915878,1534.013958,-113.065385,-304.721579,-84.390998,-131.418449,405.432454,1550.408951,-91.386080,-319.483606,-84.390021,-131.417252,405.432680,1550.404604,-91.389057,-319.480972,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000001,0.000000,0.000005,-0.000001,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.973293,2.163436,1.620234,3.994089,1.994735,1.882254,5.977482,4.070066,2.615746,7.484214,6.491541,4.385443,9.952178,4.202369,7.200675,9.952117,0.000061,-0.000339,-0.000383,0.000154,0.000000,0.000000,4.202708,7.201058,-0.000675,-0.000123,-0.001513,0.000363,0.000360,-0.000416,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,76.856715,0.013011,0.661886,1.510837,0.008612,116.117177,54878971.323342,0.000000,4.858988,0.205808,5.227921,0.191287,151.181139,0.006615,0.796418,1.255622,0.005268,189.826362,7617062.968395,0.000000,2.799317,0.357230,0.960036,1.041628,19991.161229,2736.691476,625867.919928,12.103188,3.157846,2.748329,2.533262,1.922347,1.000145,3.566809,4.084014,4.605762,2.533420,1.922719,1.000071,3.567378,4.084370,4.606219,2.533150,1.922925,0.998250,3.556864,4.083950,4.601607,2.533380,1.923383,0.998135,3.556603,4.084330,4.601832,2.539873,1.923474,1.007142,3.607474,4.085862,4.656248,2.539179,1.923321,1.006800,3.611926,4.085944,4.660016,2.531950,1.918382,1.004932,3.579440,4.083967,4.608160,2.532028,1.918412,1.005001,3.580907,4.084310,4.608630,2.543631,2.542597,2.536229,2.536733,2.543227,1.988256,1.403842,4.051672,7.969320,4.063148,4.435707,2.543496,1.974236,1.400361,4.050003,7.956846,4.060288,4.428764,2.543303,1.988564,1.403983,4.051853,7.969279,4.063376,4.435822,2.543611,1.974796,1.400729,4.050373,7.957000,4.060931,4.429087,-0.079124,-0.078812,-0.028245,0.190402,-0.023054,0.113526,-0.072961,-0.072915,-0.026122,0.176008,-0.021345,0.104857,0.001714,0.002200,0.002086,0.001622,-0.005119,-0.002000,157.705192,139.810980,116.020048,198.279858,205.728397,228.927384
 2028Y,-2.070000,-6.540000,6.130000,-2.068923,-6.517444,6.136634,7.695142,2.001835,1.401786,3.975348,3.987925,2.510727,7.695341,2.001899,1.402008,3.975361,3.988044,2.510774,116.028225,58.359777,13.464421,280.269677,251.964295,79.517320,141.723981,65.977500,15.917952,283.554371,256.557438,85.078499,257.009006,793.438823,1336.087746,118.956943,105.079295,992.813103,257.008495,793.438659,1336.086348,118.957274,105.079702,992.812693,634.649485,507.607396,477.778988,694.473965,780.171848,585.123508,559.443459,598.120639,531.318947,493.456349,691.849379,674.940193,620.851031,582.001020,-0.000676,496.927699,-0.005178,159.591542,-41.863576,432.687670,1783.234497,167.500509,102.946310,-22.761718,501.848802,1584.762637,-3.975542,4.000000,3.500000,4.500000,1.976483,2.170932,1.609364,3.994812,1.996252,1.882226,5.979581,4.076117,2.604825,7.486434,6.493100,4.384656,9.952652,4.202369,7.200675,9.952681,4.202723,7.201086,-0.000510,-0.000164,-0.001398,0.000330,0.000408,-0.000410,-0.018715,-0.064129,-0.023010,0.154060,0.091476,-0.063259,-0.018857,-0.064322,-0.023069,0.154919,0.092184,-0.064001,-0.021011,-0.057778,-0.026103,0.140793,0.082645,-0.052711,-0.021200,-0.057971,-0.026228,0.141540,0.083189,-0.053192,-0.017301,-0.059282,-0.021271,0.142417,0.084562,-0.058478,-0.017457,-0.059483,-0.021359,0.143193,0.085130,-0.058999,0.000547,0.001500,-0.002549,0.000551,0.000399,-0.000178,4.002058,1.903740,0.994106,3.496006,4.498832,2.501116,4.002024,1.900154,0.999822,3.513011,4.503935,2.500316,4.002105,1.903315,4.004052,1.904835,1.002294,3.533227,4.540344,2.508238,0.995740,3.503425,4.502016,2.501321,-0.000461,-0.000140,-0.001333,0.000335,0.000437,-0.000393,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.002060,1.903261,0.995805,3.503343,4.501965,2.501283,4.002024,1.903683,0.994200,3.496105,4.498859,2.501088,4.001965,1.903146,0.995933,3.503168,4.501855,2.501209,4.001946,1.903560,0.994385,3.496300,4.498907,2.501025,-0.000335,-0.000054,-0.001123,0.000341,0.000491,-0.000330,-0.000234,0.000025,-0.000885,0.000311,0.000463,-0.000249,-0.000099,-0.000001,-0.000052,-0.000056,-0.000057,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000008,7.685105,1.989846,1.399042,3.974096,3.986194,2.511015,7.685270,1.989805,1.399157,3.974064,3.986242,2.511022,-0.204659,-0.259501,-0.042392,-0.024639,-0.011956,0.010774,4.148738,136.748768,560.637092,560.636823,582.006198,577.311945,451.603917,976.214437,2059.128273,470.390094,474.365636,-0.000924,-0.001534,-0.001260,-0.004688,-0.003563,-0.000676,-0.005178,-0.005178,-0.005178,-0.005178,-0.005178,-0.005178,0.000815,0.001142,0.001058,-0.003636,-0.001679,0.001062,102.947884,-22.762544,501.848228,1584.795882,-3.956385,-0.000248,-0.000858,-0.000584,-0.004012,-0.002887,4.002365,1.900180,0.999858,3.514836,4.504501,2.500364,4.002417,1.903665,4.013518,1.906791,0.998376,3.675075,4.604986,2.504105,2.504105,4.004411,1.905195,1.002393,3.538196,4.545646,2.508624,0.995434,3.503981,4.021818,1.915091,1.006677,3.683375,4.613287,2.512406,2.512406,4.502371,2.501509,1.900000,1.000000,2.500000,0.002214,0.003441,-0.004388,0.003625,0.002140,0.001395,0.010138,0.002737,0.002586,0.158092,0.094680,0.002426,0.002426,0.017369,0.009968,0.009817,0.165323,0.069497,0.038513,0.030984,0.101911,0.009657,0.018562,0.011161,0.011010,0.166516,0.103104,0.010849,0.010849,0.000068,-0.000478,0.001767,0.008458,0.003584,0.000184,0.000836,0.001003,0.000167,-0.003487,-0.002269,0.001891,1.977559,2.173483,1.605688,3.995056,1.996688,1.882196,1.978475,2.174766,1.606881,3.990948,1.994787,1.883395,1.977523,2.172377,1.610720,3.990428,1.994267,1.883540,0.003098,0.005185,-0.004539,-0.008378,-0.003152,0.002430,5.979581,4.076117,2.604825,7.486434,6.493100,4.384656,-0.000269,-2.070000,-6.540000,6.130000,-2.068923,-6.517444,6.136634,0.007564,0.154726,0.091474,-0.000000,-0.000000,-0.000000,7.695142,2.001835,1.401786,3.975348,3.987925,2.510727,7.695341,2.001899,1.402008,3.975361,3.988044,2.510774,7.697922,2.003225,1.403523,3.976043,3.990020,2.512117,116.028225,58.359777,13.464421,280.269677,251.964295,79.517320,141.723981,65.977500,15.917952,283.554371,256.557438,85.078499,257.009006,793.438823,1336.087746,118.956943,105.079295,992.813103,257.008495,793.438659,1336.086348,118.957274,105.079702,992.812693,634.649485,507.607396,477.778988,694.473965,780.171848,585.123508,719.035002,517.579884,992.131129,2342.677956,726.943969,559.443459,559.443459,598.120639,531.318947,493.456349,691.849379,674.940193,620.851031,741.592563,540.137445,1014.688691,2365.235517,749.501530,582.001020,582.001020,474.365636,577.311021,451.602383,-0.000676,0.000624,976.213178,2059.123585,470.386530,474.364960,474.364960,599.873760,474.165122,998.775917,2081.686324,492.949269,496.927699,496.927699,599.868582,474.159944,-0.005178,0.002414,998.770739,2081.681146,492.944091,496.922521,496.922521,1.979283,2.177625,1.599777,3.995442,1.997240,1.882110,1.980098,2.178768,1.600835,3.991806,1.995561,1.883171,159.591542,-41.863576,432.687670,1783.234497,167.500509,102.946310,-22.761718,501.848802,1584.762637,-3.975542,102.946061,-22.762576,501.848218,1584.758625,-3.978429,4.000000,3.500000,4.500000,4.002349,1.904143,0.993667,3.495523,4.498788,2.501326,4.002154,1.903881,0.993921,3.495809,4.498795,2.501189,4.002149,1.900164,0.999833,3.513702,4.504148,2.500334,4.002214,1.903441,4.012353,1.906178,0.998198,3.661717,4.596820,2.503821,2.503821,4.004231,1.905044,1.002408,3.535083,4.542438,2.508556,0.995612,3.503625,4.020776,1.914602,1.006622,3.670141,4.605244,2.512245,2.512245,4.502140,0.009657,2.501395,-130.173565,-148.714710,385.887229,1534.170479,-112.973114,-304.781015,-130.172596,-148.713754,0.000969,0.000956,0.000300,-0.003412,-0.002200,0.001719,385.887529,1534.167067,-112.975313,-304.779296,-84.409714,-131.482578,405.409444,1550.563011,-91.294605,-319.546865,-84.408878,-131.481575,405.409610,1550.559523,-91.296874,-319.544973,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000000,0.000002,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.976483,2.170932,1.609364,3.994812,1.996252,1.882226,5.979581,4.076117,2.604825,7.486434,6.493100,4.384656,9.952652,4.202369,7.200675,9.952681,-0.000029,-0.000354,-0.000410,0.000100,0.000000,0.000000,4.202723,7.201086,-0.000510,-0.000164,-0.001398,0.000330,0.000408,-0.000410,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,75.708130,0.013209,0.657945,1.519889,0.008691,115.067128,55525346.306089,0.000000,4.932886,0.202725,5.338913,0.187310,151.181663,0.006615,0.796422,1.255615,0.005268,189.826015,7629907.947261,0.000000,2.799555,0.357200,0.960997,1.040586,20499.497483,2791.694230,634685.666675,13.070026,3.285869,2.860096,2.532943,1.921672,1.000585,3.565725,4.083382,4.605024,2.533059,1.921901,1.000405,3.566094,4.083593,4.605267,2.532732,1.922120,0.998877,3.557631,4.083320,4.601526,2.532871,1.922387,0.998620,3.557335,4.083522,4.601518,2.540285,1.923306,1.007449,3.598310,4.085481,4.647187,2.540355,1.923459,1.007434,3.601535,4.085669,4.650544,2.531854,1.918332,1.004848,3.576162,4.083314,4.607125,2.531885,1.918349,1.004873,3.577336,4.083539,4.607494,2.544068,2.544233,2.535430,2.535721,2.542560,2.022072,1.411882,4.055436,7.999176,4.068635,4.452099,2.542813,2.009734,1.408991,4.054087,7.988300,4.066759,4.446152,2.542511,2.022007,1.411657,4.055422,7.998961,4.068511,4.451975,2.542807,2.009776,1.408875,4.054120,7.988122,4.066709,4.446088,-0.063981,-0.064301,-0.023067,0.155040,-0.018855,0.092226,-0.058982,-0.059466,-0.021357,0.143296,-0.017455,0.085166,0.001314,0.001444,0.001355,0.001040,-0.004384,-0.001984,161.699957,142.498007,117.180719,205.350699,214.129504,239.470095
-2029Y,-2.070000,-6.540000,6.130000,-2.070492,-6.522232,6.135006,7.719307,2.030903,1.408197,3.978342,3.991498,2.509945,7.719456,2.031016,1.408475,3.978340,3.991540,2.510033,120.030171,60.263337,14.458806,283.765976,256.463201,82.018345,145.725945,67.880647,16.913885,287.057539,261.059294,87.579709,264.719499,795.459101,1337.493625,122.934196,109.069548,995.323344,264.719164,795.459048,1337.492502,122.934536,109.070039,995.323014,638.651343,509.507538,478.778798,697.986024,784.675490,587.623798,561.946751,602.124367,533.223369,494.458350,695.380077,679.477507,623.358530,584.511677,-0.000524,496.935171,-0.003203,161.098974,-42.461498,431.182396,1784.373528,169.582274,102.952974,-22.761718,501.848802,1584.898966,-3.894944,4.000000,3.500000,4.500000,1.979275,2.177566,1.599819,3.995444,1.997341,1.882137,5.981820,4.081932,2.595644,7.488570,6.494655,4.384060,9.952963,4.202369,7.200675,9.952992,4.202686,7.201063,-0.000335,-0.000054,-0.001123,0.000341,0.000491,-0.000330,-0.015244,-0.052233,-0.018742,0.125483,0.074507,-0.051525,-0.015400,-0.052418,-0.018857,0.126144,0.074932,-0.051850,-0.017113,-0.047060,-0.021261,0.114677,0.067314,-0.042933,-0.017276,-0.047219,-0.021404,0.115275,0.067671,-0.043154,-0.014092,-0.048286,-0.017325,0.115999,0.068876,-0.047631,-0.014242,-0.048456,-0.017450,0.116600,0.069240,-0.047882,0.000558,0.001416,-0.002159,0.000518,0.000373,-0.000135,4.001784,1.903287,0.994839,3.496774,4.499038,2.500890,4.001603,1.900123,0.999794,3.510576,4.503189,2.500245,4.001754,1.902884,4.003150,1.903669,1.001427,3.526776,4.532469,2.506086,0.996244,3.502779,4.501610,2.501028,-0.000303,-0.000028,-0.001057,0.000337,0.000494,-0.000309,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001719,1.902837,0.996300,3.502715,4.501568,2.500995,4.001758,1.903239,0.994921,3.496859,4.499062,2.500869,4.001646,1.902742,0.996414,3.502583,4.501482,2.500929,4.001703,1.903141,0.995088,3.497032,4.499110,2.500824,-0.000234,0.000025,-0.000885,0.000311,0.000463,-0.000249,-0.000184,0.000048,-0.000722,0.000258,0.000379,-0.000192,-0.000067,0.000016,-0.000031,-0.000039,-0.000040,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000002,7.710494,2.020279,1.405880,3.977252,3.990253,2.510241,7.710669,2.020389,1.406154,3.977263,3.990336,2.510321,-0.180544,-0.230384,-0.035925,-0.021660,-0.008460,0.010033,4.160936,139.877609,564.792138,564.791990,584.514880,577.320540,451.605848,976.216368,2059.266532,470.472622,474.367566,-0.000761,-0.001241,-0.001106,-0.003792,-0.002891,-0.000524,-0.003203,-0.003203,-0.003203,-0.003203,-0.003203,-0.003203,0.000649,0.000915,0.000837,-0.002978,-0.001388,0.000857,102.954209,-22.762424,501.848208,1584.926034,-3.879374,-0.000237,-0.000717,-0.000582,-0.003268,-0.002367,4.001858,1.900142,0.999810,3.512059,4.503642,2.500290,4.001965,1.903146,4.010723,1.905369,0.998017,3.642323,4.585056,2.503292,2.503292,4.003728,1.904422,1.002000,3.530698,4.537314,2.507499,0.995933,3.503168,4.018088,1.912734,1.005382,3.649688,4.592421,2.510656,2.510656,4.501855,2.501209,1.900000,1.000000,2.500000,0.001832,0.002984,-0.003877,0.002923,0.001702,0.001099,0.007986,0.001942,0.001806,0.128539,0.076784,0.001859,0.001859,0.012463,0.006420,0.006283,0.133016,0.044878,0.025269,0.019609,0.081261,0.006336,0.014496,0.008452,0.008316,0.135049,0.083294,0.008368,0.008368,0.000019,-0.000414,0.001548,0.006868,0.002949,0.000184,0.000680,0.000819,0.000051,-0.002826,-0.001844,0.001566,1.980218,2.179825,1.596590,3.995655,1.997654,1.882093,1.980928,2.180833,1.597507,3.992274,1.996061,1.883051,1.980036,2.178645,1.600805,3.991796,1.995618,1.883170,0.002544,0.004366,-0.004175,-0.006873,-0.002686,0.001923,5.981820,4.081932,2.595644,7.488570,6.494655,4.384060,-0.000148,-2.070000,-6.540000,6.130000,-2.070492,-6.522232,6.135006,0.006161,0.126025,0.074506,-0.000000,-0.000000,-0.000000,7.719307,2.030903,1.408197,3.978342,3.991498,2.509945,7.719456,2.031016,1.408475,3.978340,3.991540,2.510033,7.721102,2.031801,1.409319,3.978791,3.992850,2.510843,120.030171,60.263337,14.458806,283.765976,256.463201,82.018345,145.725945,67.880647,16.913885,287.057539,261.059294,87.579709,264.719499,795.459101,1337.493625,122.934196,109.069548,995.323344,264.719164,795.459048,1337.492502,122.934536,109.070039,995.323014,638.651343,509.507538,478.778798,697.986024,784.675490,587.623798,723.045724,519.485253,993.129147,2346.320278,731.529024,561.946751,561.946751,602.124367,533.223369,494.458350,695.380077,679.477507,623.358530,745.610650,542.050179,1015.694073,2368.885204,754.093950,584.511677,584.511677,474.367566,577.319779,451.604606,-0.000524,0.000409,976.215262,2059.262740,470.469731,474.367042,474.367042,599.887908,474.172735,998.783391,2081.830869,493.037860,496.935171,496.935171,599.884705,474.169532,-0.003203,0.001584,998.780188,2081.827666,493.034657,496.931968,496.931968,1.981730,2.183493,1.591396,3.995992,1.998045,1.881992,1.982379,2.184408,1.592234,3.993013,1.996657,1.882849,161.098974,-42.461498,431.182396,1784.373528,169.582274,102.952974,-22.761718,501.848802,1584.898966,-3.894944,102.952737,-22.762436,501.848220,1584.895698,-3.897311,4.000000,3.500000,4.500000,4.001946,1.903560,0.994385,3.496300,4.498907,2.501025,4.001842,1.903390,0.994662,3.496590,4.498985,2.500940,4.001698,1.900130,0.999799,3.511139,4.503360,2.500263,4.001832,1.902984,4.009818,1.904926,0.997929,3.631462,4.578487,2.502958,2.502958,4.003388,1.903982,1.001675,3.528260,4.534340,2.506690,0.996123,3.502923,4.016328,1.911436,1.004439,3.637972,4.584996,2.509467,2.509467,4.501702,0.006336,2.501099,-130.192077,-148.765618,385.864230,1534.294531,-112.900296,-304.827458,-130.191283,-148.764836,0.000794,0.000783,0.000161,-0.002760,-0.001785,0.001427,385.864391,1534.291771,-112.902081,-304.826031,-84.424958,-131.534811,405.390702,1550.688493,-91.220097,-319.598390,-84.424278,-131.533993,405.390753,1550.685667,-91.221942,-319.596824,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000000,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.979275,2.177566,1.599819,3.995444,1.997341,1.882137,5.981820,4.081932,2.595644,7.488570,6.494655,4.384060,9.952963,4.202369,7.200675,9.952992,-0.000030,-0.000317,-0.000388,0.000066,0.000000,0.000000,4.202686,7.201063,-0.000335,-0.000054,-0.001123,0.000341,0.000491,-0.000330,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,74.577049,0.013409,0.654022,1.529004,0.008770,114.027786,56161398.584010,0.000000,5.007810,0.199692,5.451221,0.183451,151.181666,0.006615,0.796423,1.255614,0.005268,189.825752,7640373.417735,0.000000,2.799742,0.357176,0.961777,1.039743,21020.597097,2848.669097,643671.644982,14.117680,3.419190,2.976529,2.532639,1.921206,1.001101,3.564998,4.082984,4.604567,2.532752,1.921371,1.000909,3.565251,4.083122,4.604727,2.532475,1.921620,0.999625,3.558439,4.082995,4.601724,2.532563,1.921794,0.999346,3.558139,4.083102,4.601642,2.538372,1.922224,1.006708,3.591242,4.084604,4.638713,2.539202,1.922671,1.007037,3.593767,4.084957,4.641825,2.531782,1.918298,1.004814,3.573507,4.082845,4.606301,2.531809,1.918310,1.004825,3.574460,4.083011,4.606596,2.541219,2.542439,2.534545,2.534887,2.541800,2.051782,1.418441,4.058536,8.025223,4.072272,4.466159,2.542094,2.040937,1.416087,4.057415,8.015731,4.071020,4.461052,2.541709,2.051667,1.418158,4.058538,8.025062,4.072229,4.466045,2.542013,2.040825,1.415809,4.057404,8.015542,4.070933,4.460924,-0.051837,-0.052404,-0.018856,0.126224,-0.015398,0.074960,-0.047871,-0.048444,-0.017449,0.116668,-0.014241,0.069264,0.001032,0.001079,0.000986,0.000760,-0.003648,-0.001724,165.795415,145.235922,118.353591,212.671964,222.872670,250.497034
\ No newline at end of file
+2029Y,-2.070000,-6.540000,6.130000,-2.070492,-6.522232,6.135006,7.719307,2.030903,1.408197,3.978342,3.991498,2.509945,7.719456,2.031016,1.408475,3.978340,3.991540,2.510033,120.030171,60.263337,14.458806,283.765976,256.463201,82.018345,145.725945,67.880647,16.913885,287.057539,261.059294,87.579709,264.719499,795.459101,1337.493625,122.934196,109.069548,995.323344,264.719164,795.459048,1337.492502,122.934536,109.070039,995.323014,638.651343,509.507538,478.778798,697.986024,784.675490,587.623798,561.946751,602.124367,533.223369,494.458350,695.380077,679.477507,623.358530,584.511677,-0.000524,496.935171,-0.003203,161.098974,-42.461498,431.182396,1784.373528,169.582274,102.952974,-22.761718,501.848802,1584.898966,-3.894944,4.000000,3.500000,4.500000,1.979275,2.177566,1.599819,3.995444,1.997341,1.882137,5.981820,4.081932,2.595644,7.488570,6.494655,4.384060,9.952963,4.202369,7.200675,9.952992,4.202686,7.201063,-0.000335,-0.000054,-0.001123,0.000341,0.000491,-0.000330,-0.015244,-0.052233,-0.018742,0.125483,0.074507,-0.051525,-0.015400,-0.052418,-0.018857,0.126144,0.074932,-0.051850,-0.017113,-0.047060,-0.021261,0.114677,0.067314,-0.042933,-0.017276,-0.047219,-0.021404,0.115275,0.067671,-0.043154,-0.014092,-0.048286,-0.017325,0.115999,0.068876,-0.047631,-0.014242,-0.048456,-0.017450,0.116600,0.069240,-0.047882,0.000558,0.001416,-0.002159,0.000518,0.000373,-0.000135,4.001784,1.903287,0.994839,3.496774,4.499038,2.500890,4.001603,1.900123,0.999794,3.510576,4.503189,2.500245,4.001754,1.902884,4.003150,1.903669,1.001427,3.526776,4.532469,2.506086,0.996244,3.502779,4.501610,2.501028,-0.000303,-0.000028,-0.001057,0.000337,0.000494,-0.000309,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001719,1.902837,0.996300,3.502715,4.501568,2.500995,4.001758,1.903239,0.994921,3.496859,4.499062,2.500869,4.001646,1.902742,0.996414,3.502583,4.501482,2.500929,4.001703,1.903141,0.995088,3.497032,4.499110,2.500824,-0.000234,0.000025,-0.000885,0.000311,0.000463,-0.000249,-0.000184,0.000048,-0.000722,0.000258,0.000379,-0.000192,-0.000067,0.000016,-0.000031,-0.000039,-0.000040,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000002,7.710494,2.020279,1.405880,3.977252,3.990253,2.510241,7.710669,2.020389,1.406154,3.977263,3.990336,2.510321,-0.180544,-0.230384,-0.035925,-0.021660,-0.008460,0.010033,4.160936,139.877609,564.792138,564.791990,584.514880,577.320540,451.605848,976.216368,2059.266532,470.472622,474.367566,-0.000761,-0.001241,-0.001106,-0.003792,-0.002891,-0.000524,-0.003203,-0.003203,-0.003203,-0.003203,-0.003203,-0.003203,0.000649,0.000915,0.000837,-0.002978,-0.001388,0.000857,102.954209,-22.762424,501.848208,1584.926034,-3.879374,-0.000237,-0.000717,-0.000582,-0.003268,-0.002367,4.001858,1.900142,0.999810,3.512059,4.503642,2.500290,4.001965,1.903146,4.010723,1.905369,0.998017,3.642323,4.585056,2.503292,2.503292,4.003728,1.904422,1.002000,3.530698,4.537314,2.507499,0.995933,3.503168,4.018088,1.912734,1.005382,3.649688,4.592421,2.510656,2.510656,4.501855,2.501209,1.900000,1.000000,2.500000,0.001832,0.002984,-0.003877,0.002923,0.001702,0.001099,0.007986,0.001942,0.001806,0.128539,0.076784,0.001859,0.001859,0.012463,0.006420,0.006283,0.133016,0.044878,0.025269,0.019609,0.081261,0.006336,0.014496,0.008452,0.008316,0.135049,0.083294,0.008368,0.008368,0.000019,-0.000414,0.001548,0.006868,0.002949,0.000184,0.000680,0.000819,0.000051,-0.002826,-0.001844,0.001566,1.980218,2.179825,1.596590,3.995655,1.997654,1.882093,1.980928,2.180833,1.597507,3.992274,1.996061,1.883051,1.980036,2.178645,1.600805,3.991796,1.995618,1.883170,0.002544,0.004366,-0.004175,-0.006873,-0.002686,0.001923,5.981820,4.081932,2.595644,7.488570,6.494655,4.384060,-0.000148,-2.070000,-6.540000,6.130000,-2.070492,-6.522232,6.135006,0.006161,0.126025,0.074506,-0.000000,-0.000000,-0.000000,7.719307,2.030903,1.408197,3.978342,3.991498,2.509945,7.719456,2.031016,1.408475,3.978340,3.991540,2.510033,7.721102,2.031801,1.409319,3.978791,3.992850,2.510843,120.030171,60.263337,14.458806,283.765976,256.463201,82.018345,145.725945,67.880647,16.913885,287.057539,261.059294,87.579709,264.719499,795.459101,1337.493625,122.934196,109.069548,995.323344,264.719164,795.459048,1337.492502,122.934536,109.070039,995.323014,638.651343,509.507538,478.778798,697.986024,784.675490,587.623798,723.045724,519.485253,993.129147,2346.320278,731.529024,561.946751,561.946751,602.124367,533.223369,494.458350,695.380077,679.477507,623.358530,745.610650,542.050179,1015.694073,2368.885204,754.093950,584.511677,584.511677,474.367566,577.319779,451.604606,-0.000524,0.000409,976.215262,2059.262740,470.469731,474.367042,474.367042,599.887908,474.172735,998.783391,2081.830869,493.037860,496.935171,496.935171,599.884705,474.169532,-0.003203,0.001584,998.780188,2081.827666,493.034657,496.931968,496.931968,1.981730,2.183493,1.591396,3.995992,1.998045,1.881992,1.982379,2.184408,1.592234,3.993013,1.996657,1.882849,161.098974,-42.461498,431.182396,1784.373528,169.582274,102.952974,-22.761718,501.848802,1584.898966,-3.894944,102.952737,-22.762436,501.848220,1584.895698,-3.897311,4.000000,3.500000,4.500000,4.001946,1.903560,0.994385,3.496300,4.498907,2.501025,4.001842,1.903390,0.994662,3.496590,4.498985,2.500940,4.001698,1.900130,0.999799,3.511139,4.503360,2.500263,4.001832,1.902984,4.009818,1.904926,0.997929,3.631462,4.578487,2.502958,2.502958,4.003388,1.903982,1.001675,3.528260,4.534340,2.506690,0.996123,3.502923,4.016328,1.911436,1.004439,3.637972,4.584996,2.509467,2.509467,4.501702,0.006336,2.501099,-130.192077,-148.765618,385.864230,1534.294531,-112.900296,-304.827458,-130.191283,-148.764836,0.000794,0.000783,0.000161,-0.002760,-0.001785,0.001427,385.864391,1534.291771,-112.902081,-304.826031,-84.424958,-131.534811,405.390702,1550.688493,-91.220097,-319.598390,-84.424278,-131.533993,405.390753,1550.685667,-91.221942,-319.596824,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000000,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.979275,2.177566,1.599819,3.995444,1.997341,1.882137,5.981820,4.081932,2.595644,7.488570,6.494655,4.384060,9.952963,4.202369,7.200675,9.952992,-0.000030,-0.000317,-0.000388,0.000066,0.000000,0.000000,4.202686,7.201063,-0.000335,-0.000054,-0.001123,0.000341,0.000491,-0.000330,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,74.577049,0.013409,0.654022,1.529004,0.008770,114.027786,56161398.584010,0.000000,5.007810,0.199692,5.451221,0.183451,151.181666,0.006615,0.796423,1.255614,0.005268,189.825752,7640373.417735,0.000000,2.799742,0.357176,0.961777,1.039743,21020.597097,2848.669097,643671.644982,14.117680,3.419190,2.976529,2.532639,1.921206,1.001101,3.564998,4.082984,4.604567,2.532752,1.921371,1.000909,3.565251,4.083122,4.604727,2.532475,1.921620,0.999625,3.558439,4.082995,4.601724,2.532563,1.921794,0.999346,3.558139,4.083102,4.601642,2.538372,1.922224,1.006708,3.591242,4.084604,4.638713,2.539202,1.922671,1.007037,3.593767,4.084957,4.641825,2.531782,1.918298,1.004814,3.573507,4.082845,4.606301,2.531809,1.918310,1.004825,3.574460,4.083011,4.606596,2.541219,2.542439,2.534545,2.534887,2.541800,2.051782,1.418441,4.058536,8.025223,4.072272,4.466159,2.542094,2.040937,1.416087,4.057415,8.015731,4.071020,4.461052,2.541709,2.051667,1.418158,4.058538,8.025062,4.072229,4.466045,2.542013,2.040825,1.415809,4.057404,8.015542,4.070933,4.460924,-0.051837,-0.052404,-0.018856,0.126224,-0.015398,0.074960,-0.047871,-0.048444,-0.017449,0.116668,-0.014241,0.069264,0.001032,0.001079,0.000986,0.000760,-0.003648,-0.001724,165.795415,145.235922,118.353591,212.671964,222.872670,250.497034
diff --git a/tests/reporting/db_q.csv b/tests/reporting/db_q.csv
index 864c967a7de6c4fce48ea86822368de43d49116b..261f21686b6f122b23beb74f4d582ef33f763289 100644
--- a/tests/reporting/db_q.csv
+++ b/tests/reporting/db_q.csv
@@ -182,4 +182,4 @@ Variables ->,BLT_BAR_EU_,BLT_BAR_JA_,BLT_BAR_US_,BLT_EU_,BLT_JA_,BLT_US_,GROWTH_
 2029Q1,-2.070000,-6.540000,6.130000,-2.070103,-6.520685,6.135551,7.710741,2.020552,1.405966,3.977286,3.990346,2.510245,7.710921,2.020675,1.406256,3.977301,3.990437,2.510331,118.529484,59.549573,14.085796,282.454743,254.776079,81.080497,144.225264,67.167034,16.540330,285.743953,259.371162,86.641801,261.824383,794.697059,1336.965452,121.442271,107.572681,994.382127,261.823993,794.696964,1336.964223,121.442613,107.573158,994.381763,637.150713,508.794990,478.403874,696.669386,782.986742,586.686201,561.008156,600.623111,532.509394,494.082736,694.057084,677.777258,622.418556,583.570678,-0.000611,496.932845,-0.003969,160.533926,-42.237231,431.746771,1783.950794,168.804220,102.950685,-22.761718,501.848802,1584.852151,-3.922621,4.000000,3.500000,4.500000,1.978285,2.175204,1.603207,3.995220,1.996988,1.882177,5.980983,4.079813,2.598859,7.487796,6.494097,4.384259,9.952866,4.202369,7.200675,9.952903,4.202705,7.201079,-0.000390,-0.000096,-0.001228,0.000342,0.000477,-0.000364,-0.016436,-0.056318,-0.020208,0.135296,0.080334,-0.055554,-0.016595,-0.056516,-0.020310,0.136022,0.080832,-0.055974,-0.018452,-0.050741,-0.022924,0.123645,0.072579,-0.046291,-0.018627,-0.050916,-0.023066,0.124295,0.072981,-0.046558,-0.015194,-0.052062,-0.018680,0.125071,0.074263,-0.051356,-0.015353,-0.052249,-0.018801,0.125726,0.074674,-0.051656,0.000566,0.001460,-0.002285,0.000538,0.000395,-0.000147,4.001869,1.903439,0.994574,3.496499,4.498958,2.500963,4.001744,1.900134,0.999802,3.511412,4.503444,2.500273,4.001870,1.903033,4.003510,1.904144,1.001805,3.528980,4.535260,2.507008,0.996063,3.502992,4.501747,2.501134,-0.000350,-0.000066,-0.001156,0.000343,0.000492,-0.000342,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001832,1.902984,0.996123,3.502923,4.501702,2.501099,4.001842,1.903390,0.994662,3.496590,4.498985,2.500940,4.001754,1.902884,0.996244,3.502779,4.501610,2.501028,4.001784,1.903287,0.994839,3.496774,4.499038,2.500890,-0.000261,0.000005,-0.000962,0.000328,0.000488,-0.000277,-0.000198,0.000046,-0.000773,0.000279,0.000413,-0.000210,-0.000080,0.000010,-0.000039,-0.000046,-0.000047,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000001,7.701484,2.009436,1.403494,3.976136,3.988935,2.510535,7.701681,2.009534,1.403752,3.976155,3.989052,2.510600,-0.189079,-0.240725,-0.038144,-0.022699,-0.009563,0.010331,4.156607,138.704345,563.232040,563.231852,583.574647,577.317651,451.605247,976.215767,2059.219117,470.444344,474.366965,-0.000833,-0.001357,-0.001170,-0.004120,-0.003130,-0.000611,-0.003969,-0.003969,-0.003969,-0.003969,-0.003969,-0.003969,0.000693,0.000978,0.000896,-0.003215,-0.001504,0.000922,102.952051,-22.762451,501.848232,1584.881351,-3.905799,-0.000222,-0.000746,-0.000559,-0.003509,-0.002519,4.002024,1.900154,0.999822,3.513011,4.503935,2.500316,4.002105,1.903315,4.011662,1.905831,0.998114,3.653560,4.591861,2.503619,2.503619,4.004052,1.904835,1.002294,3.533227,4.540344,2.508238,0.995740,3.503425,4.019795,1.913965,1.006248,3.661694,4.599995,2.511752,2.511752,4.502016,2.501321,1.900000,1.000000,2.500000,0.001955,0.003138,-0.004064,0.003151,0.001846,0.001208,0.008724,0.002207,0.002071,0.138701,0.082914,0.002092,0.002092,0.014002,0.007484,0.007348,0.143978,0.052656,0.029391,0.023265,0.088192,0.007369,0.016195,0.009678,0.009542,0.146172,0.090385,0.009563,0.009563,0.000046,-0.000425,0.001635,0.007419,0.003184,0.000204,0.000736,0.000882,0.000098,-0.003049,-0.001978,0.001657,1.979275,2.177566,1.599819,3.995444,1.997341,1.882137,1.980036,2.178645,1.600805,3.991796,1.995618,1.883170,1.979114,2.176374,1.604284,3.991297,1.995139,1.883296,0.002697,0.004610,-0.004348,-0.007424,-0.002890,0.002082,5.980983,4.079813,2.598859,7.487796,6.494097,4.384259,-0.000188,-2.070000,-6.540000,6.130000,-2.070103,-6.520685,6.135551,0.006642,0.135881,0.080333,-0.000000,-0.000000,-0.000000,7.710741,2.020552,1.405966,3.977286,3.990346,2.510245,7.710921,2.020675,1.406256,3.977301,3.990437,2.510331,7.712847,2.021605,1.407282,3.977812,3.991933,2.511298,118.529484,59.549573,14.085796,282.454743,254.776079,81.080497,144.225264,67.167034,16.540330,285.743953,259.371162,86.641801,261.824383,794.697059,1336.965452,121.442271,107.572681,994.382127,261.823993,794.696964,1336.964223,121.442613,107.573158,994.381763,637.150713,508.794990,478.403874,696.669386,782.986742,586.686201,721.542082,518.770925,992.754927,2344.958949,729.812376,561.008156,561.008156,600.623111,532.509394,494.082736,694.057084,677.777258,622.418556,744.104604,541.333447,1015.317450,2367.521472,752.374898,583.570678,583.570678,474.366965,577.316818,451.603890,-0.000611,0.000476,976.214597,2059.214996,470.441214,474.366354,474.366354,599.883309,474.170381,998.781088,2081.781487,493.007705,496.932845,496.932845,599.879340,474.166412,-0.003969,0.001842,998.777119,2081.777519,493.003736,496.928877,496.928877,1.980862,2.181403,1.594371,3.995797,1.997785,1.882041,1.981555,2.182381,1.595267,3.992583,1.996281,1.882962,160.533926,-42.237231,431.746771,1783.950794,168.804220,102.950685,-22.761718,501.848802,1584.852151,-3.922621,102.950463,-22.762464,501.848242,1584.848642,-3.925140,4.000000,3.500000,4.500000,4.002058,1.903740,0.994106,3.496006,4.498832,2.501116,4.001934,1.903549,0.994388,3.496304,4.498903,2.501018,4.001849,1.900141,0.999809,3.512019,4.503629,2.500290,4.001955,1.903138,4.010679,1.905345,0.998006,3.641851,4.584760,2.503300,2.503300,4.003746,1.904453,1.002041,3.530584,4.537243,2.507587,0.995936,3.503151,4.018150,1.912816,1.005477,3.649322,4.592231,2.510771,2.510771,4.501846,0.007369,2.501208,-130.185720,-148.748137,385.872127,1534.251933,-112.925301,-304.811510,-130.184865,-148.747296,0.000855,0.000841,0.000215,-0.002982,-0.001917,0.001506,385.872343,1534.248950,-112.927218,-304.810004,-84.419723,-131.516875,405.397138,1550.645404,-91.245683,-319.580696,-84.418987,-131.515993,405.397236,1550.642355,-91.247660,-319.579040,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000000,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.978285,2.175204,1.603207,3.995220,1.996988,1.882177,5.980983,4.079813,2.598859,7.487796,6.494097,4.384259,9.952866,4.202369,7.200675,9.952903,-0.000037,-0.000336,-0.000404,0.000076,0.000000,0.000000,4.202705,7.201079,-0.000390,-0.000096,-0.001228,0.000342,0.000477,-0.000364,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,74.998470,0.013334,0.655490,1.525576,0.008740,114.415897,55924209.771691,0.000000,4.979549,0.200821,5.408881,0.184881,151.181700,0.006615,0.796423,1.255614,0.005268,189.825849,7636778.573801,0.000000,2.799679,0.357184,0.961509,1.040032,20823.163416,2826.997844,640275.939114,13.711622,3.368349,2.932123,2.532751,1.921364,1.000912,3.565234,4.083112,4.604717,2.532866,1.921543,1.000714,3.565518,4.083268,4.604895,2.532556,1.921782,0.999349,3.558143,4.083091,4.601638,2.532657,1.921977,0.999063,3.557835,4.083220,4.601564,2.539291,1.922703,1.007078,3.593649,4.084976,4.641751,2.539959,1.923093,1.007333,3.596387,4.085295,4.644996,2.531810,1.918309,1.004823,3.574418,4.083002,4.606583,2.531836,1.918322,1.004837,3.575446,4.083184,4.606902,2.542556,2.543563,2.534896,2.535223,2.542105,2.041229,1.416190,4.057455,8.016003,4.071125,4.461214,2.542381,2.029861,1.413651,4.056263,8.006023,4.069684,4.455816,2.542017,2.041103,1.415896,4.057439,8.015809,4.071030,4.461077,2.542314,2.029761,1.413389,4.056243,8.005811,4.069561,4.455680,-0.055958,-0.056500,-0.020308,0.136114,-0.016594,0.080864,-0.051643,-0.052235,-0.018799,0.125806,-0.015351,0.074701,0.001119,0.001170,0.001078,0.000828,-0.003923,-0.001848,164.243664,144.201150,117.911844,209.886543,219.539299,246.284311
 2029Q2,-2.070000,-6.540000,6.130000,-2.070413,-6.521786,6.135166,7.716578,2.027593,1.407497,3.978007,3.991159,2.510047,7.716738,2.027714,1.407785,3.978011,3.991218,2.510137,119.529952,60.025433,14.334439,283.328867,255.900818,81.705737,145.225731,67.642793,16.789346,286.619701,260.496598,87.267085,263.753527,795.203958,1337.317326,122.436772,108.570471,995.009639,263.753177,795.203892,1337.316170,122.437116,108.570963,995.009297,638.151149,509.270023,478.653824,697.547239,784.112603,587.311269,561.633924,601.623989,532.985430,494.333187,694.939329,678.911073,623.045308,584.198159,-0.000555,496.934504,-0.003429,160.910679,-42.386736,431.370491,1784.233698,169.323560,102.952263,-22.761718,501.848802,1584.884423,-3.903542,4.000000,3.500000,4.500000,1.978960,2.176811,1.600900,3.995373,1.997237,1.882152,5.981546,4.081247,2.596662,7.488322,6.494480,4.384121,9.952935,4.202369,7.200675,9.952968,4.202693,7.201070,-0.000350,-0.000066,-0.001156,0.000343,0.000492,-0.000342,-0.015614,-0.053502,-0.019197,0.128531,0.076317,-0.052776,-0.015773,-0.053692,-0.019311,0.129211,0.076759,-0.053119,-0.017529,-0.048204,-0.021778,0.117463,0.068950,-0.043976,-0.017696,-0.048368,-0.021922,0.118077,0.069317,-0.044203,-0.014434,-0.049459,-0.017746,0.118817,0.070550,-0.048788,-0.014588,-0.049635,-0.017872,0.119434,0.070923,-0.049046,0.000563,0.001434,-0.002196,0.000527,0.000383,-0.000138,4.001810,1.903335,0.994756,3.496687,4.499013,2.500912,4.001646,1.900126,0.999796,3.510836,4.503268,2.500255,4.001790,1.902931,4.003269,1.903825,1.001554,3.527460,4.533346,2.506393,0.996187,3.502844,4.501653,2.501062,-0.000315,-0.000038,-0.001087,0.000341,0.000498,-0.000319,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001754,1.902884,0.996244,3.502779,4.501610,2.501028,4.001784,1.903287,0.994839,3.496774,4.499038,2.500890,4.001680,1.902788,0.996361,3.502644,4.501523,2.500960,4.001729,1.903188,0.995010,3.496952,4.499088,2.500844,-0.000241,0.000021,-0.000907,0.000318,0.000474,-0.000257,-0.000188,0.000048,-0.000737,0.000265,0.000390,-0.000197,-0.000071,0.000014,-0.000034,-0.000041,-0.000042,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000002,7.707623,2.016811,1.405130,3.976898,3.989864,2.510341,7.707808,2.016925,1.405408,3.976915,3.989964,2.510419,-0.183262,-0.233686,-0.036615,-0.021989,-0.008782,0.010137,4.159555,139.486533,564.271612,564.271453,584.201588,577.319657,451.605675,976.216196,2059.251817,470.463852,474.367394,-0.000785,-0.001279,-0.001127,-0.003896,-0.002966,-0.000555,-0.003429,-0.003429,-0.003429,-0.003429,-0.003429,-0.003429,0.000661,0.000933,0.000853,-0.003054,-0.001426,0.000876,102.953540,-22.762432,501.848217,1584.912155,-3.887581,-0.000230,-0.000725,-0.000572,-0.003341,-0.002412,4.001908,1.900146,0.999813,3.512354,4.503733,2.500299,4.002006,1.903198,4.011012,1.905510,0.998043,3.645813,4.587164,2.503406,2.503406,4.003847,1.904579,1.002123,3.531478,4.538288,2.507798,0.995870,3.503244,4.018698,1.913196,1.005730,3.653500,4.594850,2.511092,2.511092,4.501903,2.501246,1.900000,1.000000,2.500000,0.001870,0.003033,-0.003937,0.002992,0.001747,0.001134,0.008215,0.002023,0.001887,0.131698,0.078685,0.001939,0.001939,0.012909,0.006717,0.006581,0.136392,0.047085,0.026452,0.020633,0.083379,0.006632,0.015066,0.008874,0.008738,0.138548,0.085536,0.008789,0.008789,0.000029,-0.000416,0.001577,0.007040,0.003024,0.000194,0.000697,0.000838,0.000067,-0.002895,-0.001884,0.001592,1.979918,2.179102,1.597620,3.995588,1.997562,1.882109,1.980640,2.180129,1.598554,3.992121,1.995924,1.883088,1.979736,2.177912,1.601907,3.991635,1.995467,1.883209,0.002586,0.004436,-0.004237,-0.007050,-0.002756,0.001969,5.981546,4.081247,2.596662,7.488322,6.494480,4.384121,-0.000159,-2.070000,-6.540000,6.130000,-2.070413,-6.521786,6.135166,0.006310,0.129087,0.076316,-0.000000,-0.000000,-0.000000,7.716578,2.027593,1.407497,3.978007,3.991159,2.510047,7.716738,2.027714,1.407785,3.978011,3.991218,2.510137,7.718462,2.028535,1.408674,3.978478,3.992578,2.510989,119.529952,60.025433,14.334439,283.328867,255.900818,81.705737,145.225731,67.642793,16.789346,286.619701,260.496598,87.267085,263.753527,795.203958,1337.317326,122.436772,108.570471,995.009639,263.753177,795.203892,1337.316170,122.437116,108.570963,995.009297,638.151149,509.270023,478.653824,697.547239,784.112603,587.311269,722.544603,519.247188,993.004415,2345.867622,730.957484,561.633924,561.633924,601.623989,532.985430,494.333187,694.939329,678.911073,623.045308,745.108838,541.811423,1015.568650,2368.431857,753.521719,584.198159,584.198159,474.367394,577.318872,451.604396,-0.000555,0.000428,976.215069,2059.247921,470.460885,474.366839,474.366839,599.886536,474.172060,998.782733,2081.815585,493.028550,496.934504,496.934504,599.883107,474.168631,-0.003429,0.001658,998.779304,2081.812156,493.025120,496.931074,496.931074,1.981453,2.182825,1.592345,3.995930,1.997968,1.882009,1.982114,2.183757,1.593198,3.992876,1.996542,1.882886,160.910679,-42.386736,431.370491,1784.233698,169.323560,102.952263,-22.761718,501.848802,1584.884423,-3.903542,102.952032,-22.762443,501.848230,1584.881082,-3.905954,4.000000,3.500000,4.500000,4.001977,1.903614,0.994293,3.496204,4.498879,2.501051,4.001869,1.903439,0.994574,3.496499,4.498958,2.500963,4.001744,1.900134,0.999802,3.511412,4.503444,2.500273,4.001870,1.903033,4.010085,1.905056,0.997950,3.634690,4.580432,2.503073,2.503073,4.003510,1.904144,1.001805,3.528980,4.535260,2.507008,0.996063,3.502992,4.016935,1.911906,1.004801,3.641541,4.587283,2.509924,2.509924,4.501747,0.006632,2.501134,-130.190102,-148.760188,385.866683,1534.281298,-112.908064,-304.822504,-130.189289,-148.759388,0.000813,0.000800,0.000179,-0.002828,-0.001825,0.001450,385.866862,1534.278470,-112.909888,-304.821054,-84.423331,-131.529239,405.392701,1550.675108,-91.228045,-319.592893,-84.422634,-131.528402,405.392768,1550.672213,-91.229929,-319.591301,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000000,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.978960,2.176811,1.600900,3.995373,1.997237,1.882152,5.981546,4.081247,2.596662,7.488322,6.494480,4.384121,9.952935,4.202369,7.200675,9.952968,-0.000033,-0.000324,-0.000395,0.000069,0.000000,0.000000,4.202693,7.201070,-0.000350,-0.000066,-0.001156,0.000343,0.000492,-0.000342,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,74.716796,0.013384,0.654511,1.527859,0.008760,114.156722,56082645.768872,0.000000,4.998345,0.200066,5.437044,0.183923,151.181681,0.006615,0.796423,1.255614,0.005268,189.825785,7639256.330879,0.000000,2.799723,0.357178,0.961693,1.039832,20954.242061,2841.364228,642532.874097,13.978707,3.402014,2.961526,2.532675,1.921256,1.001041,3.565070,4.083023,4.604613,2.532789,1.921424,1.000845,3.565330,4.083165,4.604777,2.532499,1.921670,0.999537,3.558345,4.083023,4.601696,2.532590,1.921848,0.999253,3.558040,4.083135,4.601613,2.538697,1.922389,1.006840,3.591988,4.084731,4.639676,2.539508,1.922832,1.007161,3.594575,4.085081,4.642844,2.531792,1.918301,1.004816,3.573790,4.082893,4.606388,2.531819,1.918313,1.004828,3.574766,4.083063,4.606691,2.541687,2.542886,2.534663,2.535004,2.541906,2.048411,1.417741,4.058194,8.022287,4.071937,4.464591,2.542195,2.037402,1.415331,4.057053,8.012641,4.070632,4.459394,2.541814,2.048288,1.417449,4.058189,8.022114,4.071876,4.464468,2.542115,2.037286,1.415049,4.057035,8.012441,4.070528,4.459258,-0.053105,-0.053678,-0.019309,0.129294,-0.015771,0.076788,-0.049034,-0.049622,-0.017870,0.119505,-0.014587,0.070948,0.001057,0.001101,0.001007,0.000776,-0.003738,-0.001769,165.273870,144.888833,118.205829,211.732693,221.746742,249.071741
 2029Q3,-2.070000,-6.540000,6.130000,-2.070645,-6.522781,6.134813,7.722224,2.034423,1.408962,3.978702,3.991903,2.509846,7.722363,2.034532,1.409238,3.978694,3.991928,2.509936,120.530404,60.501267,14.583128,284.203039,257.025571,82.330965,146.226179,68.118525,17.038393,287.495412,261.622012,87.892350,265.684083,795.712563,1337.669566,123.431448,109.568447,995.637100,265.683768,795.712525,1337.668479,123.431789,109.568945,995.636781,639.151560,509.745055,478.903773,698.424948,785.238420,587.936332,562.259635,602.624806,533.461387,494.583576,695.821194,680.044410,623.671906,584.825417,-0.000495,496.935996,-0.002929,161.287348,-42.536251,430.994255,1784.514959,169.841931,102.953762,-22.761718,501.848802,1584.915081,-3.885417,4.000000,3.500000,4.500000,1.979612,2.178369,1.598666,3.995520,1.997465,1.882125,5.982102,4.082650,2.594548,7.488834,6.494848,4.383991,9.952997,4.202369,7.200675,9.953024,4.202680,7.201059,-0.000315,-0.000038,-0.001087,0.000341,0.000498,-0.000319,-0.014833,-0.050827,-0.018237,0.122104,0.072502,-0.050138,-0.014989,-0.051008,-0.018358,0.122743,0.072899,-0.050426,-0.016653,-0.045794,-0.020689,0.111590,0.065502,-0.041777,-0.016811,-0.045946,-0.020833,0.112170,0.065842,-0.041979,-0.013712,-0.046986,-0.016859,0.112876,0.067022,-0.046348,-0.013860,-0.047150,-0.016986,0.113457,0.067367,-0.046580,0.000556,0.001403,-0.002115,0.000512,0.000367,-0.000130,4.001755,1.903235,0.994930,3.496869,4.499066,2.500865,4.001554,1.900119,0.999791,3.510288,4.503101,2.500236,4.001714,1.902834,4.003028,1.903507,1.001299,3.526017,4.531511,2.505773,0.996306,3.502706,4.501564,2.500992,-0.000286,-0.000015,-0.001022,0.000336,0.000496,-0.000297,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001680,1.902788,0.996361,3.502644,4.501523,2.500960,4.001729,1.903188,0.995010,3.496952,4.499088,2.500844,4.001610,1.902694,0.996473,3.502515,4.501438,2.500895,4.001676,1.903092,0.995173,3.497120,4.499136,2.500801,-0.000224,0.000032,-0.000858,0.000306,0.000456,-0.000240,-0.000179,0.000050,-0.000704,0.000251,0.000367,-0.000185,-0.000062,0.000018,-0.000029,-0.000037,-0.000038,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000004,7.713562,2.023965,1.406697,3.977633,3.990717,2.510145,7.713731,2.024082,1.406981,3.977642,3.990790,2.510230,-0.177637,-0.226868,-0.035162,-0.021306,-0.008072,0.009936,4.162409,140.268703,565.311930,565.311797,584.828346,577.321541,451.606061,976.216581,2059.282860,470.482362,474.367779,-0.000736,-0.001202,-0.001084,-0.003679,-0.002809,-0.000495,-0.002929,-0.002929,-0.002929,-0.002929,-0.002929,-0.002929,0.000633,0.000893,0.000816,-0.002898,-0.001349,0.000834,102.954952,-22.762415,501.848200,1584.941416,-3.870277,-0.000242,-0.000707,-0.000589,-0.003184,-0.002314,4.001800,1.900138,0.999806,3.511731,4.503542,2.500281,4.001916,1.903088,4.010398,1.905209,0.997982,3.638454,4.582711,2.503184,2.503184,4.003623,1.904290,1.001911,3.529825,4.536283,2.507271,0.995998,3.503078,4.017529,1.912339,1.005113,3.645584,4.589841,2.510314,2.510314,4.501800,2.501172,1.900000,1.000000,2.500000,0.001790,0.002931,-0.003813,0.002844,0.001653,0.001062,0.007732,0.001851,0.001714,0.125042,0.074673,0.001781,0.001781,0.011920,0.006039,0.005902,0.129230,0.042099,0.023806,0.018293,0.078861,0.005969,0.013922,0.008041,0.007905,0.131232,0.080863,0.007972,0.007972,0.000010,-0.000410,0.001518,0.006679,0.002869,0.000179,0.000661,0.000797,0.000035,-0.002749,-0.001798,0.001534,1.980539,2.180592,1.595492,3.995728,1.997764,1.882079,1.981230,2.181575,1.596383,3.992436,1.996214,1.883010,1.980347,2.179415,1.599618,3.991965,1.995782,1.883126,0.002490,0.004280,-0.004119,-0.006686,-0.002618,0.001867,5.982102,4.082650,2.594548,7.488834,6.494848,4.383991,-0.000133,-2.070000,-6.540000,6.130000,-2.070645,-6.522781,6.134813,0.005995,0.122633,0.072501,-0.000000,-0.000000,-0.000000,7.722224,2.034423,1.408962,3.978702,3.991903,2.509846,7.722363,2.034532,1.409238,3.978694,3.991928,2.509936,7.723908,2.035265,1.410014,3.979123,3.993172,2.510688,120.530404,60.501267,14.583128,284.203039,257.025571,82.330965,146.226179,68.118525,17.038393,287.495412,261.622012,87.892350,265.684083,795.712563,1337.669566,123.431448,109.568447,995.637100,265.683768,795.712525,1337.668479,123.431789,109.568945,995.636781,639.151560,509.745055,478.903773,698.424948,785.238420,587.936332,723.546983,519.723384,993.253890,2346.774593,732.101565,562.259635,562.259635,602.624806,533.461387,494.583576,695.821194,680.044410,623.671906,746.112766,542.289167,1015.819673,2369.340376,754.667348,584.825417,584.825417,474.367779,577.320804,451.604859,-0.000495,0.000386,976.215497,2059.279181,470.479553,474.367284,474.367284,599.889516,474.173570,998.784209,2081.847893,493.048265,496.935996,496.935996,599.886587,474.170641,-0.002929,0.001492,998.781280,2081.844964,493.045336,496.933067,496.933067,1.982025,2.184203,1.590384,3.996058,1.998137,1.881977,1.982658,2.185096,1.591200,3.993160,1.996788,1.882811,161.287348,-42.536251,430.994255,1784.514959,169.841931,102.953762,-22.761718,501.848802,1584.915081,-3.885417,102.953520,-22.762426,501.848213,1584.911897,-3.887731,4.000000,3.500000,4.500000,4.001906,1.903498,0.994479,3.496399,4.498931,2.500993,4.001810,1.903335,0.994756,3.496687,4.499013,2.500912,4.001646,1.900126,0.999796,3.510836,4.503268,2.500255,4.001790,1.902931,4.009521,1.904782,0.997901,3.627886,4.576326,2.502843,2.502843,4.003269,1.903825,1.001554,3.527460,4.533346,2.506393,0.996187,3.502844,4.015712,1.910972,1.004092,3.634077,4.582516,2.509033,2.509033,4.501653,0.005969,2.501062,-130.194265,-148.771636,385.861511,1534.309196,-112.891688,-304.832948,-130.193492,-148.770874,0.000774,0.000762,0.000143,-0.002683,-0.001740,0.001399,385.861654,1534.306512,-112.893428,-304.831549,-84.426760,-131.540986,405.388486,1550.703327,-91.211290,-319.604480,-84.426099,-131.540189,405.388522,1550.700578,-91.213088,-319.602946,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000000,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.979612,2.178369,1.598666,3.995520,1.997465,1.882125,5.982102,4.082650,2.594548,7.488834,6.494848,4.383991,9.952997,4.202369,7.200675,9.953024,-0.000028,-0.000311,-0.000383,0.000062,0.000000,0.000000,4.202680,7.201059,-0.000315,-0.000038,-0.001087,0.000341,0.000498,-0.000319,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,74.436213,0.013434,0.653533,1.530145,0.008780,113.898199,56240606.297727,0.000000,5.017207,0.199314,5.465302,0.182973,151.181655,0.006615,0.796423,1.255613,0.005268,189.825720,7641610.741304,0.000000,2.799764,0.357173,0.961869,1.039643,21086.135209,2855.852379,644800.125164,14.251196,3.436022,2.991229,2.532601,1.921152,1.001166,3.564917,4.082940,4.604515,2.532714,1.921312,1.000974,3.565158,4.083071,4.604668,2.532448,1.921564,0.999720,3.558540,4.082961,4.601754,2.532530,1.921730,0.999441,3.558242,4.083061,4.601668,2.538068,1.922063,1.006586,3.590413,4.084479,4.637673,2.538968,1.922537,1.006947,3.592863,4.084848,4.640746,2.531773,1.918294,1.004811,3.573193,4.082791,4.606204,2.531801,1.918305,1.004820,3.574120,4.082951,4.606491,2.540775,2.542088,2.534427,2.534777,2.541700,2.055370,1.419215,4.058904,8.028363,4.072676,4.467846,2.542001,2.044706,1.416925,4.057809,8.019038,4.071492,4.462839,2.541608,2.055258,1.418934,4.058913,8.028213,4.072651,4.467739,2.541914,2.044586,1.416638,4.057800,8.018856,4.071416,4.462712,-0.050413,-0.050995,-0.018357,0.122818,-0.014988,0.072925,-0.046569,-0.047139,-0.016985,0.113522,-0.013859,0.067390,0.001001,0.001045,0.000951,0.000735,-0.003555,-0.001683,166.310508,145.579759,118.500584,213.595002,223.976336,251.890660
-2029Q4,-2.070000,-6.540000,6.130000,-2.070809,-6.523676,6.134494,7.727684,2.041046,1.410362,3.979373,3.992583,2.509642,7.727802,2.041142,1.410622,3.979352,3.992576,2.509729,121.530843,60.977076,14.831861,285.077256,258.150338,82.956182,147.226607,68.594234,17.287469,288.371089,262.747403,88.517598,267.616004,796.222825,1338.022157,124.426291,110.566592,996.264511,267.615718,796.222811,1338.021135,124.426627,110.567089,996.264214,640.151949,510.220085,479.153721,699.302520,786.364195,588.561391,562.885289,603.625563,533.937263,494.833900,696.702699,681.177287,624.298350,585.452453,-0.000436,496.937339,-0.002485,161.663942,-42.685774,430.618066,1784.794660,170.359384,102.955185,-22.761718,501.848802,1584.944206,-3.868198,4.000000,3.500000,4.500000,1.980244,2.179881,1.596504,3.995662,1.997676,1.882095,5.982648,4.084019,2.592508,7.489329,6.495196,4.383868,9.953052,4.202369,7.200675,9.953073,4.202667,7.201045,-0.000286,-0.000015,-0.001022,0.000336,0.000496,-0.000297,-0.014092,-0.048286,-0.017325,0.115999,0.068876,-0.047631,-0.014242,-0.048456,-0.017450,0.116600,0.069240,-0.047882,-0.015820,-0.043504,-0.019655,0.106010,0.062227,-0.039689,-0.015970,-0.043645,-0.019795,0.106559,0.062546,-0.039877,-0.013027,-0.044636,-0.016016,0.107233,0.063671,-0.044031,-0.013166,-0.044789,-0.016141,0.107782,0.063995,-0.044247,0.000546,0.001369,-0.002040,0.000495,0.000349,-0.000124,4.001701,1.903138,0.995097,3.497043,4.499115,2.500821,4.001467,1.900113,0.999787,3.509768,4.502942,2.500218,4.001643,1.902739,4.002795,1.903200,1.001051,3.524647,4.529761,2.505168,0.996421,3.502575,4.501478,2.500925,-0.000261,0.000005,-0.000962,0.000328,0.000488,-0.000277,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001610,1.902694,0.996473,3.502515,4.501438,2.500895,4.001676,1.903092,0.995173,3.497120,4.499136,2.500801,4.001542,1.902603,0.996580,3.502393,4.501357,2.500833,4.001624,1.902997,0.995329,3.497280,4.499179,2.500759,-0.000210,0.000040,-0.000813,0.000293,0.000435,-0.000224,-0.000171,0.000050,-0.000674,0.000237,0.000345,-0.000175,-0.000055,0.000020,-0.000025,-0.000032,-0.000033,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000006,7.719307,2.030903,1.408197,3.978342,3.991498,2.509945,7.719456,2.031016,1.408475,3.978340,3.991540,2.510033,-0.172198,-0.220258,-0.033778,-0.020648,-0.007424,0.009729,4.165173,141.050856,566.352970,566.352858,585.454937,577.323312,451.606408,976.216928,2059.312333,470.499928,474.368126,-0.000689,-0.001127,-0.001043,-0.003472,-0.002658,-0.000436,-0.002485,-0.002485,-0.002485,-0.002485,-0.002485,-0.002485,0.000609,0.000857,0.000784,-0.002747,-0.001272,0.000795,102.956294,-22.762397,501.848184,1584.969214,-3.853838,-0.000253,-0.000691,-0.000607,-0.003036,-0.002222,4.001698,1.900130,0.999799,3.511139,4.503360,2.500263,4.001832,1.902984,4.009818,1.904926,0.997929,3.631462,4.578487,2.502958,2.502958,4.003388,1.903982,1.001675,3.528260,4.534340,2.506690,0.996123,3.502923,4.016328,1.911436,1.004439,3.637972,4.584996,2.509467,2.509467,4.501702,2.501099,1.900000,1.000000,2.500000,0.001714,0.002834,-0.003694,0.002706,0.001564,0.000992,0.007274,0.001689,0.001553,0.118717,0.070866,0.001623,0.001623,0.011023,0.005438,0.005302,0.122466,0.037671,0.021426,0.016245,0.074615,0.005372,0.012800,0.007215,0.007079,0.124242,0.076391,0.007149,0.007149,-0.000010,-0.000406,0.001461,0.006333,0.002718,0.000159,0.000626,0.000758,0.000004,-0.002612,-0.001717,0.001480,1.981140,2.182038,1.593431,3.995862,1.997949,1.882047,1.981806,2.182982,1.594287,3.992741,1.996488,1.882934,1.980946,2.180881,1.597411,3.992286,1.996081,1.883047,0.002404,0.004137,-0.003996,-0.006333,-0.002479,0.001773,5.982648,4.084019,2.592508,7.489329,6.495196,4.383868,-0.000112,-2.070000,-6.540000,6.130000,-2.070809,-6.523676,6.134494,0.005695,0.116501,0.068876,-0.000000,-0.000000,-0.000000,7.727684,2.041046,1.410362,3.979373,3.992583,2.509642,7.727802,2.041142,1.410622,3.979352,3.992576,2.509729,7.729191,2.041800,1.411304,3.979750,3.993718,2.510395,121.530843,60.977076,14.831861,285.077256,258.150338,82.956182,147.226607,68.594234,17.287469,288.371089,262.747403,88.517598,267.616004,796.222825,1338.022157,124.426291,110.566592,996.264511,267.615718,796.222811,1338.021135,124.426627,110.567089,996.264214,640.151949,510.220085,479.153721,699.302520,786.364195,588.561391,724.549230,520.199515,993.503355,2347.679949,733.244673,562.885289,562.885289,603.625563,533.937263,494.833900,696.702699,681.177287,624.298350,747.116394,542.766679,1016.070519,2370.247113,755.811837,585.452453,585.452453,474.368126,577.322623,451.605281,-0.000436,0.000347,976.215886,2059.308860,470.497270,474.367690,474.367690,599.892272,474.174930,998.785534,2081.878509,493.066919,496.937339,496.937339,599.889787,474.172445,-0.002485,0.001343,998.783050,2081.876024,493.064434,496.934854,496.934854,1.982578,2.185541,1.588485,3.996181,1.998291,1.881943,1.983187,2.186398,1.589269,3.993434,1.997019,1.882739,161.663942,-42.685774,430.618066,1784.794660,170.359384,102.955185,-22.761718,501.848802,1584.944206,-3.868198,102.954933,-22.762409,501.848195,1584.941170,-3.870420,4.000000,3.500000,4.500000,4.001842,1.903390,0.994662,3.496590,4.498985,2.500940,4.001755,1.903235,0.994930,3.496869,4.499066,2.500865,4.001554,1.900119,0.999791,3.510288,4.503101,2.500236,4.001714,1.902834,4.008988,1.904523,0.997860,3.621422,4.572429,2.502615,2.502615,4.003028,1.903507,1.001299,3.526017,4.531511,2.505773,0.996306,3.502706,4.014514,1.910048,1.003385,3.626948,4.577955,2.508141,2.508141,4.501564,0.005372,2.500992,-130.198220,-148.782512,385.856597,1534.335698,-112.876131,-304.842870,-130.197484,-148.781785,0.000736,0.000727,0.000108,-0.002546,-0.001660,0.001352,385.856705,1534.333152,-112.877791,-304.841518,-84.430016,-131.552145,405.384482,1550.730135,-91.195372,-319.615488,-84.429391,-131.551387,405.384486,1550.727523,-91.197089,-319.614008,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000000,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.980244,2.179881,1.596504,3.995662,1.997676,1.882095,5.982648,4.084019,2.592508,7.489329,6.495196,4.383868,9.953052,4.202369,7.200675,9.953073,-0.000021,-0.000297,-0.000370,0.000056,0.000000,0.000000,4.202667,7.201045,-0.000286,-0.000015,-0.001022,0.000336,0.000496,-0.000297,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,74.156718,0.013485,0.652556,1.532435,0.008800,113.640323,56398132.497751,0.000000,5.036137,0.198565,5.493655,0.182028,151.181629,0.006615,0.796424,1.255613,0.005268,189.825655,7643848.024957,0.000000,2.799804,0.357168,0.962035,1.039463,21218.847702,2870.461939,647077.641552,14.529195,3.470376,3.021236,2.532529,1.921053,1.001286,3.564773,4.082862,4.604422,2.532639,1.921206,1.001101,3.564998,4.082984,4.604567,2.532399,1.921462,0.999896,3.558729,4.082904,4.601809,2.532475,1.921620,0.999625,3.558439,4.082995,4.601724,2.537431,1.921739,1.006328,3.588918,4.084229,4.635752,2.538372,1.922224,1.006708,3.591242,4.084604,4.638713,2.531754,1.918287,1.004805,3.572626,4.082695,4.606030,2.531782,1.918298,1.004814,3.573507,4.082845,4.606301,2.539859,2.541219,2.534193,2.534545,2.541488,2.062115,1.420618,4.059589,8.034239,4.073351,4.470986,2.541800,2.051781,1.418441,4.058536,8.025223,4.072272,4.466159,2.541398,2.062018,1.420354,4.059611,8.034111,4.073358,4.470896,2.541709,2.051667,1.418158,4.058538,8.025062,4.072229,4.466045,-0.047871,-0.048444,-0.017449,0.116668,-0.014241,0.069264,-0.044237,-0.044779,-0.016140,0.107840,-0.013166,0.064016,0.000952,0.000999,0.000906,0.000702,-0.003375,-0.001594,167.353619,146.273944,118.796109,215.473616,226.228305,254.741425
\ No newline at end of file
+2029Q4,-2.070000,-6.540000,6.130000,-2.070809,-6.523676,6.134494,7.727684,2.041046,1.410362,3.979373,3.992583,2.509642,7.727802,2.041142,1.410622,3.979352,3.992576,2.509729,121.530843,60.977076,14.831861,285.077256,258.150338,82.956182,147.226607,68.594234,17.287469,288.371089,262.747403,88.517598,267.616004,796.222825,1338.022157,124.426291,110.566592,996.264511,267.615718,796.222811,1338.021135,124.426627,110.567089,996.264214,640.151949,510.220085,479.153721,699.302520,786.364195,588.561391,562.885289,603.625563,533.937263,494.833900,696.702699,681.177287,624.298350,585.452453,-0.000436,496.937339,-0.002485,161.663942,-42.685774,430.618066,1784.794660,170.359384,102.955185,-22.761718,501.848802,1584.944206,-3.868198,4.000000,3.500000,4.500000,1.980244,2.179881,1.596504,3.995662,1.997676,1.882095,5.982648,4.084019,2.592508,7.489329,6.495196,4.383868,9.953052,4.202369,7.200675,9.953073,4.202667,7.201045,-0.000286,-0.000015,-0.001022,0.000336,0.000496,-0.000297,-0.014092,-0.048286,-0.017325,0.115999,0.068876,-0.047631,-0.014242,-0.048456,-0.017450,0.116600,0.069240,-0.047882,-0.015820,-0.043504,-0.019655,0.106010,0.062227,-0.039689,-0.015970,-0.043645,-0.019795,0.106559,0.062546,-0.039877,-0.013027,-0.044636,-0.016016,0.107233,0.063671,-0.044031,-0.013166,-0.044789,-0.016141,0.107782,0.063995,-0.044247,0.000546,0.001369,-0.002040,0.000495,0.000349,-0.000124,4.001701,1.903138,0.995097,3.497043,4.499115,2.500821,4.001467,1.900113,0.999787,3.509768,4.502942,2.500218,4.001643,1.902739,4.002795,1.903200,1.001051,3.524647,4.529761,2.505168,0.996421,3.502575,4.501478,2.500925,-0.000261,0.000005,-0.000962,0.000328,0.000488,-0.000277,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001610,1.902694,0.996473,3.502515,4.501438,2.500895,4.001676,1.903092,0.995173,3.497120,4.499136,2.500801,4.001542,1.902603,0.996580,3.502393,4.501357,2.500833,4.001624,1.902997,0.995329,3.497280,4.499179,2.500759,-0.000210,0.000040,-0.000813,0.000293,0.000435,-0.000224,-0.000171,0.000050,-0.000674,0.000237,0.000345,-0.000175,-0.000055,0.000020,-0.000025,-0.000032,-0.000033,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000006,7.719307,2.030903,1.408197,3.978342,3.991498,2.509945,7.719456,2.031016,1.408475,3.978340,3.991540,2.510033,-0.172198,-0.220258,-0.033778,-0.020648,-0.007424,0.009729,4.165173,141.050856,566.352970,566.352858,585.454937,577.323312,451.606408,976.216928,2059.312333,470.499928,474.368126,-0.000689,-0.001127,-0.001043,-0.003472,-0.002658,-0.000436,-0.002485,-0.002485,-0.002485,-0.002485,-0.002485,-0.002485,0.000609,0.000857,0.000784,-0.002747,-0.001272,0.000795,102.956294,-22.762397,501.848184,1584.969214,-3.853838,-0.000253,-0.000691,-0.000607,-0.003036,-0.002222,4.001698,1.900130,0.999799,3.511139,4.503360,2.500263,4.001832,1.902984,4.009818,1.904926,0.997929,3.631462,4.578487,2.502958,2.502958,4.003388,1.903982,1.001675,3.528260,4.534340,2.506690,0.996123,3.502923,4.016328,1.911436,1.004439,3.637972,4.584996,2.509467,2.509467,4.501702,2.501099,1.900000,1.000000,2.500000,0.001714,0.002834,-0.003694,0.002706,0.001564,0.000992,0.007274,0.001689,0.001553,0.118717,0.070866,0.001623,0.001623,0.011023,0.005438,0.005302,0.122466,0.037671,0.021426,0.016245,0.074615,0.005372,0.012800,0.007215,0.007079,0.124242,0.076391,0.007149,0.007149,-0.000010,-0.000406,0.001461,0.006333,0.002718,0.000159,0.000626,0.000758,0.000004,-0.002612,-0.001717,0.001480,1.981140,2.182038,1.593431,3.995862,1.997949,1.882047,1.981806,2.182982,1.594287,3.992741,1.996488,1.882934,1.980946,2.180881,1.597411,3.992286,1.996081,1.883047,0.002404,0.004137,-0.003996,-0.006333,-0.002479,0.001773,5.982648,4.084019,2.592508,7.489329,6.495196,4.383868,-0.000112,-2.070000,-6.540000,6.130000,-2.070809,-6.523676,6.134494,0.005695,0.116501,0.068876,-0.000000,-0.000000,-0.000000,7.727684,2.041046,1.410362,3.979373,3.992583,2.509642,7.727802,2.041142,1.410622,3.979352,3.992576,2.509729,7.729191,2.041800,1.411304,3.979750,3.993718,2.510395,121.530843,60.977076,14.831861,285.077256,258.150338,82.956182,147.226607,68.594234,17.287469,288.371089,262.747403,88.517598,267.616004,796.222825,1338.022157,124.426291,110.566592,996.264511,267.615718,796.222811,1338.021135,124.426627,110.567089,996.264214,640.151949,510.220085,479.153721,699.302520,786.364195,588.561391,724.549230,520.199515,993.503355,2347.679949,733.244673,562.885289,562.885289,603.625563,533.937263,494.833900,696.702699,681.177287,624.298350,747.116394,542.766679,1016.070519,2370.247113,755.811837,585.452453,585.452453,474.368126,577.322623,451.605281,-0.000436,0.000347,976.215886,2059.308860,470.497270,474.367690,474.367690,599.892272,474.174930,998.785534,2081.878509,493.066919,496.937339,496.937339,599.889787,474.172445,-0.002485,0.001343,998.783050,2081.876024,493.064434,496.934854,496.934854,1.982578,2.185541,1.588485,3.996181,1.998291,1.881943,1.983187,2.186398,1.589269,3.993434,1.997019,1.882739,161.663942,-42.685774,430.618066,1784.794660,170.359384,102.955185,-22.761718,501.848802,1584.944206,-3.868198,102.954933,-22.762409,501.848195,1584.941170,-3.870420,4.000000,3.500000,4.500000,4.001842,1.903390,0.994662,3.496590,4.498985,2.500940,4.001755,1.903235,0.994930,3.496869,4.499066,2.500865,4.001554,1.900119,0.999791,3.510288,4.503101,2.500236,4.001714,1.902834,4.008988,1.904523,0.997860,3.621422,4.572429,2.502615,2.502615,4.003028,1.903507,1.001299,3.526017,4.531511,2.505773,0.996306,3.502706,4.014514,1.910048,1.003385,3.626948,4.577955,2.508141,2.508141,4.501564,0.005372,2.500992,-130.198220,-148.782512,385.856597,1534.335698,-112.876131,-304.842870,-130.197484,-148.781785,0.000736,0.000727,0.000108,-0.002546,-0.001660,0.001352,385.856705,1534.333152,-112.877791,-304.841518,-84.430016,-131.552145,405.384482,1550.730135,-91.195372,-319.615488,-84.429391,-131.551387,405.384486,1550.727523,-91.197089,-319.614008,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000000,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.980244,2.179881,1.596504,3.995662,1.997676,1.882095,5.982648,4.084019,2.592508,7.489329,6.495196,4.383868,9.953052,4.202369,7.200675,9.953073,-0.000021,-0.000297,-0.000370,0.000056,0.000000,0.000000,4.202667,7.201045,-0.000286,-0.000015,-0.001022,0.000336,0.000496,-0.000297,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,74.156718,0.013485,0.652556,1.532435,0.008800,113.640323,56398132.497751,0.000000,5.036137,0.198565,5.493655,0.182028,151.181629,0.006615,0.796424,1.255613,0.005268,189.825655,7643848.024957,0.000000,2.799804,0.357168,0.962035,1.039463,21218.847702,2870.461939,647077.641552,14.529195,3.470376,3.021236,2.532529,1.921053,1.001286,3.564773,4.082862,4.604422,2.532639,1.921206,1.001101,3.564998,4.082984,4.604567,2.532399,1.921462,0.999896,3.558729,4.082904,4.601809,2.532475,1.921620,0.999625,3.558439,4.082995,4.601724,2.537431,1.921739,1.006328,3.588918,4.084229,4.635752,2.538372,1.922224,1.006708,3.591242,4.084604,4.638713,2.531754,1.918287,1.004805,3.572626,4.082695,4.606030,2.531782,1.918298,1.004814,3.573507,4.082845,4.606301,2.539859,2.541219,2.534193,2.534545,2.541488,2.062115,1.420618,4.059589,8.034239,4.073351,4.470986,2.541800,2.051781,1.418441,4.058536,8.025223,4.072272,4.466159,2.541398,2.062018,1.420354,4.059611,8.034111,4.073358,4.470896,2.541709,2.051667,1.418158,4.058538,8.025062,4.072229,4.466045,-0.047871,-0.048444,-0.017449,0.116668,-0.014241,0.069264,-0.044237,-0.044779,-0.016140,0.107840,-0.013166,0.064016,0.000952,0.000999,0.000906,0.000702,-0.003375,-0.001594,167.353619,146.273944,118.796109,215.473616,226.228305,254.741425
diff --git a/tests/reporting/dc_a.csv b/tests/reporting/dc_a.csv
index 2418b0fc1ba99ec8116c062d6a267f416c82e538..110ecdbb1f922e12eb88ec724ca2db01b5d86322 100644
--- a/tests/reporting/dc_a.csv
+++ b/tests/reporting/dc_a.csv
@@ -44,4 +44,4 @@ Variables ->,BLT_BAR_EU_,BLT_BAR_JA_,BLT_BAR_US_,BLT_EU_,BLT_JA_,BLT_US_,GROWTH_
 2026Y,-2.070000,-6.540000,6.130000,-2.067981,-6.510381,6.138879,7.638236,1.994551,1.385643,3.968149,3.976651,2.512594,7.637991,1.994030,1.385564,3.967680,3.975646,2.512630,107.580448,52.675071,11.062438,273.152366,242.492025,74.108585,132.484496,60.929937,13.440834,277.051810,247.706485,79.789739,241.705076,791.964611,1333.299127,113.256197,97.173345,987.790760,241.704549,791.964819,1333.297674,113.256889,97.174398,987.790309,624.167457,505.949158,475.382784,687.827161,774.397525,579.804102,554.603533,590.740201,528.155685,488.162442,684.782750,664.882939,617.560776,576.977669,0.000123,497.187667,0.000263,159.209325,-42.164117,423.563520,1779.541896,160.841525,106.515686,-23.301907,489.913616,1582.286156,-7.069679,4.000000,3.500000,4.500000,1.969815,2.169098,1.632636,3.993287,1.992706,1.882223,5.974790,4.076498,2.627874,7.481633,6.489155,4.386164,9.651442,4.202369,7.200675,9.651343,4.202828,7.201106,-0.000527,0.000208,-0.001452,0.000693,0.001052,-0.000451,-2.070000,-6.540000,6.130000,-2.067981,-6.510381,6.138879,-0.026046,-0.098187,-0.035962,0.224123,0.140267,-0.095582,-0.026264,-0.098283,-0.036448,0.225188,0.141301,-0.096619,0.013571,0.226348,0.140174,-0.029640,-0.088536,-0.040618,0.204518,0.126736,-0.079801,-0.029872,-0.088616,-0.041089,0.205473,0.127770,-0.080930,-0.024077,-0.090767,-0.033244,0.207184,0.129667,-0.088358,-0.024245,-0.090855,-0.033634,0.208232,0.130765,-0.089558,0.000779,0.001529,-0.003265,0.000893,0.000727,-0.000141,4.003226,1.904757,0.992990,3.494569,4.499090,2.501996,4.003866,1.900269,1.000076,3.519234,4.506158,2.500691,4.003573,1.904254,4.006503,1.906756,1.003571,3.551610,4.561731,2.511533,0.995027,3.505578,4.503762,2.502227,-0.000568,0.000097,-0.001472,0.000595,0.000861,-0.000448,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.003468,1.904149,0.995065,3.505413,4.503624,2.502160,4.003133,1.904639,0.993054,3.494677,4.499048,2.501930,4.003249,1.903929,0.995137,3.505073,4.503326,2.502007,4.002946,1.904397,0.993181,3.494907,4.498953,2.501794,-0.000583,-0.000101,-0.001475,0.000415,0.000564,-0.000442,-0.000465,-0.000126,-0.001327,0.000343,0.000500,-0.000397,-0.000000,-0.000000,-0.000000,-0.000009,0.000080,-0.000016,-0.000021,-0.000017,0.000000,-0.000000,0.000000,-0.000000,0.000000,-0.000000,0.000038,7.625315,1.982133,1.381836,3.966509,3.973425,2.512861,7.624974,1.981594,1.381856,3.965962,3.972042,2.512993,7.638236,1.994551,1.385643,3.968149,3.976651,2.512594,7.637991,1.994030,-0.262009,-0.267370,-0.058836,-0.032320,-0.024354,0.012630,1.385564,3.967680,3.975646,2.512630,7.644022,1.997444,1.389259,3.969595,3.981010,2.515487,4.130527,107.580448,52.675071,11.062438,273.152366,242.492025,74.108585,132.484496,60.929937,13.440834,277.051810,247.706485,79.789739,129.894549,241.705076,791.964611,1333.299127,113.256197,97.173345,987.790760,552.981720,241.704549,791.964819,1333.297674,113.256889,97.174398,987.790309,552.981636,624.167457,505.949158,475.382784,687.827161,774.397525,579.804102,713.812859,512.439416,978.167053,2334.145429,715.445059,554.603533,554.603533,590.740201,528.155685,488.162442,684.782750,664.882939,617.560776,576.977406,736.186994,534.813552,1000.541189,2356.519565,737.819194,576.977669,576.977669,581.329357,451.511764,964.727288,2057.099827,467.743993,474.813671,474.813671,581.328363,451.509479,-0.000995,-0.002285,-0.001068,-0.006208,-0.005419,0.000123,0.000123,0.001484,964.726220,2057.093619,467.738573,474.813795,474.813795,603.702235,473.883352,987.100093,2079.467492,490.112446,497.187667,497.187667,603.702498,473.883615,0.000263,0.000263,0.000263,0.000263,0.000263,0.000263,0.000263,0.005607,987.100356,2079.467755,490.112709,497.187931,497.187931,1.973467,2.176081,1.620204,3.994116,1.994620,1.882253,1.974857,2.178146,0.001390,0.002065,0.001820,-0.005120,-0.002266,0.001627,1.622023,3.988996,1.992354,1.883880,159.209325,-42.164117,423.563520,1779.541896,160.841525,106.515686,-23.301907,489.913616,1582.286156,-7.069679,106.514568,-23.304315,106.517912,-23.304141,489.912492,1582.334368,-7.041324,-0.001118,-0.002408,-0.001191,-0.006332,-0.005543,489.912425,1582.279824,-7.075221,4.004668,1.900341,1.000287,3.522034,4.507082,2.500991,4.004221,1.904928,4.026089,1.912663,1.001790,3.759639,4.664777,2.509601,2.509601,4.008380,1.909006,1.005728,3.560726,4.572046,2.516146,0.994908,3.506546,4.038909,1.925483,1.014611,3.772460,4.677598,2.522421,2.522421,4.504752,2.502803,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.003706,1.905438,0.992685,3.493819,4.499456,2.502380,4.003427,1.905026,0.992874,3.494311,4.499224,2.502146,4.004156,1.900295,1.000145,3.520287,4.506506,2.500788,4.003820,1.904506,4.023301,1.910939,1.000627,3.739142,4.651405,2.507755,2.507755,0.003820,0.004506,-0.005028,0.005952,0.004118,0.002416,4.007045,1.907354,1.004095,3.554960,4.565337,2.512683,0.994972,3.505952,4.033346,1.920984,1.010671,3.749187,4.661449,2.517799,2.517799,4.504118,0.019482,0.006433,0.005655,0.233191,0.147287,0.005339,0.005339,0.036570,0.023521,0.022743,0.250279,0.144638,0.091248,0.053390,0.164375,0.022427,0.022427,0.029526,0.016478,0.015699,0.243235,0.157332,0.015383,0.015383,2.502416,0.000515,-0.000510,0.002223,0.012727,0.005296,0.000423,-121.999091,-147.816663,372.744050,1532.000014,-115.849331,-303.531137,-121.997763,-147.815485,0.001327,0.001178,0.000873,-0.004910,-0.003778,0.003421,372.744923,1531.995105,-115.853109,-303.527716,-76.989717,-130.355707,392.280706,1548.503097,-94.054927,-317.939050,-76.988627,-130.354472,0.001089,0.001235,0.000616,-0.005126,-0.003943,0.003698,392.281322,1548.497971,-94.058871,-317.935352,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000003,0.000036,0.000007,-0.000002,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.971226,2.171770,1.627867,3.993607,1.993555,1.882270,1.972859,2.174198,1.629984,3.987866,1.991091,1.884111,1.969815,2.169098,1.632636,3.993287,1.992706,1.882223,1.971565,2.171742,1.634884,3.987064,1.990065,1.884168,5.974790,4.076498,0.004976,0.007400,-0.004762,-0.011653,-0.003551,0.003940,2.627874,7.481633,6.489155,5.974790,4.076498,2.627874,7.481633,6.489155,4.386164,4.386164,9.651442,4.202369,7.200675,9.651343,0.000099,-0.000459,-0.000431,0.000235,0.000000,0.000000,4.202828,7.201106,-0.000527,0.000208,-0.001452,0.000693,0.001052,-0.000451,-0.000084,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,69.106174,0.014471,0.655970,1.524464,0.009492,105.349101,53512446.036129,0.000000,4.914069,0.203501,4.994979,0.200208,134.172227,0.007453,0.792119,1.262436,0.005904,169.383844,7443103.349836,0.000000,2.901262,0.344678,0.931693,1.073315,19495.369539,2750.840312,617231.094681,11.215300,3.103789,2.642684,2.533989,1.922757,0.999938,3.568135,4.085053,4.607093,2.534386,1.923188,0.999874,3.568750,4.085471,4.607757,2.533712,1.923287,0.997820,3.556080,4.084644,4.601974,2.533952,1.923708,0.997628,3.555570,4.084935,4.602217,2.544517,1.925660,1.009153,3.618904,4.088410,4.671152,2.548068,1.927344,1.010802,3.624879,4.089800,4.678175,2.532320,1.918465,1.005163,3.582983,4.085404,4.609592,2.532528,1.918513,1.005307,3.584792,4.085936,4.610194,2.544463,2.014044,1.395207,4.047444,7.937256,4.055732,4.428070,2.544834,2.001359,1.391448,4.045656,7.923207,4.051983,4.420699,2.544426,2.014576,1.395287,4.047932,7.937521,4.056778,4.428448,2.544700,2.001908,1.391428,4.046226,7.923575,4.053421,4.421156,-0.096572,-0.098235,-0.036441,0.225443,-0.026261,0.141401,-0.089518,-0.090813,-0.033629,0.208449,-0.024242,0.130851,0.001945,0.002643,0.002248,0.001750,-0.006223,-0.002641,153.370247,135.506722,114.274813,189.278730,195.134513,218.181890
 2027Y,-2.070000,-6.540000,6.130000,-2.067468,-6.513348,6.137968,7.669252,2.024594,1.394494,3.972050,3.983282,2.511792,7.669293,2.024418,1.394535,3.971877,3.983036,2.511806,111.583394,54.579468,12.055619,276.647274,246.990978,76.610380,136.487746,62.833866,14.435970,280.556883,252.209811,82.291746,249.363001,793.978219,1334.690410,117.226823,101.154299,990.302851,249.362419,793.978118,1334.688935,117.227238,101.154863,990.302408,628.170950,507.849395,476.382787,691.344960,778.903210,582.304689,557.109574,594.746157,530.061895,489.165618,688.329970,669.440048,620.071377,579.492721,-0.000435,497.205021,-0.004045,160.723030,-42.761299,422.056999,1780.745765,162.967883,106.527644,-23.301907,489.913616,1582.485590,-6.946172,4.000000,3.500000,4.500000,1.973468,2.176035,1.620254,3.994116,1.994815,1.882313,5.977383,4.081930,2.615618,7.484499,6.491369,4.385450,9.652169,4.202369,7.200675,9.652153,4.202767,7.201122,-0.000583,-0.000101,-0.001475,0.000415,0.000564,-0.000442,-2.070000,-6.540000,6.130000,-2.067468,-6.513348,6.137968,-0.021214,-0.079974,-0.029291,0.182549,0.114249,-0.077852,-0.021359,-0.080107,-0.029553,0.183525,0.115212,-0.078901,0.011054,0.184362,0.114173,-0.024142,-0.072113,-0.033083,0.166582,0.103227,-0.064998,-0.024339,-0.072267,-0.033348,0.167433,0.104030,-0.065845,-0.019611,-0.073930,-0.027077,0.168753,0.105614,-0.071969,-0.019754,-0.074090,-0.027280,0.169672,0.106464,-0.072869,0.000604,0.001294,-0.002924,0.000645,0.000491,-0.000187,4.002529,1.903867,0.993530,3.495437,4.498814,2.501494,4.002945,1.900194,0.999909,3.515580,4.504956,2.500454,4.002772,1.903455,4.005224,1.905510,1.002739,3.540626,4.550111,2.509497,0.995356,3.504314,4.502714,2.501698,-0.000562,-0.000126,-0.001453,0.000385,0.000528,-0.000436,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.002702,1.903386,0.995412,3.504198,4.502632,2.501652,4.002470,1.903790,0.993613,3.495536,4.498819,2.501450,4.002553,1.903238,0.995520,3.503952,4.502453,2.501554,4.002343,1.903626,0.993774,3.495737,4.498817,2.501355,-0.000465,-0.000126,-0.001327,0.000343,0.000500,-0.000397,-0.000335,-0.000058,-0.001100,0.000319,0.000493,-0.000321,-0.000000,-0.000000,-0.000000,-0.000079,0.000019,-0.000048,-0.000050,-0.000049,0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000003,7.657925,2.013608,1.391283,3.970626,3.980954,2.512091,7.657870,2.013300,1.391261,3.970348,3.980466,2.512100,7.669252,2.024594,1.394494,3.972050,3.983282,2.511792,7.669293,2.024418,-0.230707,-0.236982,-0.049865,-0.028123,-0.016964,0.011806,1.394535,3.971877,3.983036,2.511806,7.673384,2.026660,1.397076,3.973083,3.986396,2.513858,4.145108,111.583394,54.579468,12.055619,276.647274,246.990978,76.610380,136.487746,62.833866,14.435970,280.556883,252.209811,82.291746,133.024406,249.363001,793.978219,1334.690410,117.226823,101.154299,990.302851,557.118330,249.362419,793.978118,1334.688935,117.227238,101.154863,990.302408,557.118072,628.170950,507.849395,476.382787,691.344960,778.903210,582.304689,717.832604,514.348276,979.166574,2337.855340,720.077457,557.109574,557.109574,594.746157,530.061895,489.165618,688.329970,669.440048,620.071377,579.496767,740.215751,536.731423,1001.549720,2360.238487,742.460604,579.492721,579.492721,581.345907,451.516356,964.731880,2057.303853,467.872092,474.818263,474.818263,581.344859,451.514410,-0.001048,-0.001946,-0.001276,-0.005397,-0.004446,-0.000435,-0.000435,0.000973,964.730603,2057.298457,467.867646,474.817828,474.817828,603.732051,473.901602,987.117796,2079.685649,490.254838,497.205021,497.205021,603.728006,473.897557,-0.004045,-0.004045,-0.004045,-0.004045,-0.004045,-0.004045,-0.004045,0.003679,987.113750,2079.681603,490.250793,497.200975,497.200975,1.976650,2.182191,1.609339,3.994837,1.996177,1.882245,1.977712,2.183751,0.001062,0.001560,0.001423,-0.004208,-0.001965,0.001335,1.610762,3.990630,1.994213,1.883580,160.723030,-42.761299,422.056999,1780.745765,162.967883,106.527644,-23.301907,489.913616,1582.485590,-6.946172,106.527030,-23.303418,106.529730,-23.303323,489.912819,1582.525043,-6.922615,-0.000613,-0.001511,-0.000841,-0.004962,-0.004011,489.912775,1582.480628,-6.950183,4.003493,1.900238,1.000003,3.517799,4.505685,2.500587,4.003249,1.903929,4.019746,1.908860,0.999520,3.709911,4.632399,2.506041,2.506041,4.005956,1.906210,1.003175,3.547220,4.557109,2.510601,0.995137,3.505073,4.028757,1.917871,1.008531,3.718922,4.641410,2.515052,2.515052,4.503326,2.502007,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.002946,1.904397,0.993181,3.494907,4.498953,2.501794,4.002680,1.904058,0.993380,3.495233,4.498844,2.501604,4.003144,1.900209,0.999939,3.516417,4.505230,2.500497,4.002945,1.903626,4.017872,1.907812,0.999029,3.693666,4.621879,2.505269,2.505269,0.002945,0.003626,-0.004742,0.004593,0.002927,0.001807,4.005476,1.905747,1.002869,3.543058,4.552726,2.509850,0.995258,3.504593,4.026650,1.916591,1.007808,3.702444,4.630657,2.514048,2.514048,4.502927,0.014927,0.004187,0.003771,0.189073,0.118952,0.003462,0.003462,0.026179,0.015439,0.015023,0.200325,0.103297,0.058740,0.044557,0.130204,0.014714,0.014714,0.023706,0.012965,0.012550,0.197851,0.127730,0.012241,0.012241,2.501807,0.000304,-0.000468,0.001956,0.010166,0.004373,0.000213,-122.025207,-147.894672,372.708262,1532.180215,-115.737665,-303.601449,-122.024085,-147.893621,0.001121,0.001051,0.000539,-0.004015,-0.002871,0.002433,372.708801,1532.176199,-115.740536,-303.599017,-77.010931,-130.435681,392.251415,1548.685646,-93.940679,-318.016902,-77.009987,-130.434579,0.000944,0.001102,0.000354,-0.004150,-0.002981,0.002649,392.251769,1548.681496,-93.943659,-318.014253,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000001,0.000015,0.000003,-0.000001,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.974692,2.178385,1.616068,3.994394,1.995416,1.882308,1.975923,2.180189,1.617714,3.989667,1.993242,1.883824,1.973468,2.176035,1.620254,3.994116,1.994815,1.882313,1.974854,2.178064,1.622088,3.989061,1.992555,1.883956,5.977383,4.081930,0.003915,0.005895,-0.004636,-0.009617,-0.003446,0.003138,2.615618,7.484499,6.491369,5.977383,4.081930,2.615618,7.484499,6.491369,4.385450,4.385450,9.652169,4.202369,7.200675,9.652153,0.000016,-0.000398,-0.000447,0.000154,0.000000,0.000000,4.202767,7.201122,-0.000583,-0.000101,-0.001475,0.000415,0.000564,-0.000442,-0.000257,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,68.072877,0.014690,0.652065,1.533595,0.009579,104.395461,54160538.188499,0.000000,4.989019,0.200444,5.102325,0.195996,134.172697,0.007453,0.792126,1.262425,0.005904,169.382917,7458063.910378,0.000000,2.901623,0.344635,0.932858,1.071974,19991.313839,2806.794195,625878.603565,12.107922,3.229508,2.750011,2.533365,1.921860,1.000227,3.566728,4.084142,4.605848,2.533570,1.922169,1.000104,3.567225,4.084460,4.606265,2.533156,1.922301,0.998331,3.557034,4.083867,4.601577,2.533352,1.922646,0.998129,3.556697,4.084144,4.601691,2.541612,1.924022,1.007915,3.606573,4.086777,4.657953,2.542382,1.924494,1.008224,3.610884,4.087277,4.662540,2.532021,1.918378,1.004955,3.578975,4.084350,4.608257,2.532114,1.918407,1.005019,3.580405,4.084713,4.608733,2.543618,2.045049,1.404304,4.051811,7.971048,4.063422,4.445675,2.543919,2.033704,1.400984,4.050220,7.958715,4.060748,4.439266,2.543603,2.045228,1.404262,4.051991,7.971004,4.063679,4.445741,2.543910,2.034018,1.401007,4.050510,7.958775,4.061256,4.439442,-0.078869,-0.080075,-0.029549,0.183694,-0.021357,0.115278,-0.072842,-0.074062,-0.027276,0.169817,-0.019752,0.106521,0.001643,0.002028,0.001834,0.001386,-0.005054,-0.002260,157.255988,138.111389,115.417681,196.030722,203.104698,228.231919
 2028Y,-2.070000,-6.540000,6.130000,-2.068843,-6.517916,6.136451,7.696602,2.051254,1.402050,3.975476,3.988162,2.511012,7.696743,2.051291,1.402248,3.975442,3.988156,2.511075,115.585737,56.483094,13.049393,280.143010,251.489795,79.111735,140.490298,64.737104,15.431490,284.060835,256.712264,84.793300,257.049621,796.019726,1336.089723,121.201051,105.140751,992.814155,257.049155,796.019600,1336.088395,121.201393,105.141252,992.813759,632.173637,509.749570,477.382664,694.859391,783.407791,584.805093,559.613984,598.751022,531.967042,490.168142,691.867355,673.986524,622.580298,582.005438,-0.000592,497.216406,-0.004268,162.234000,-43.359160,420.551143,1781.911625,165.070335,106.537383,-23.301907,489.913616,1582.648030,-6.845574,4.000000,3.500000,4.500000,1.976643,2.182144,1.609385,3.994838,1.996314,1.882284,5.979724,4.086894,2.604942,7.486853,6.493160,4.384749,9.652643,4.202369,7.200675,9.652673,4.202730,7.201112,-0.000465,-0.000126,-0.001327,0.000343,0.000500,-0.000397,-2.070000,-6.540000,6.130000,-2.068843,-6.517916,6.136451,-0.017279,-0.065140,-0.023858,0.148687,0.093056,-0.063411,-0.017427,-0.065317,-0.024013,0.149491,0.093716,-0.064051,0.009003,0.150164,0.092995,-0.019664,-0.058737,-0.026947,0.135682,0.084079,-0.052942,-0.019843,-0.058907,-0.027120,0.136388,0.084615,-0.053406,-0.015973,-0.060217,-0.022055,0.137450,0.086023,-0.058619,-0.016123,-0.060396,-0.022193,0.138184,0.086581,-0.059122,0.000579,0.001214,-0.002519,0.000563,0.000427,-0.000165,4.002079,1.903274,0.994198,3.496228,4.498868,2.501151,4.002299,1.900147,0.999836,3.512647,4.504004,2.500332,4.002230,1.902915,4.004260,1.904500,1.002100,3.532439,4.540729,2.507821,0.995806,3.503414,4.502076,2.501330,-0.000430,-0.000112,-0.001273,0.000336,0.000501,-0.000379,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.002180,1.902864,0.995865,3.503330,4.502020,2.501291,4.002042,1.903220,0.994285,3.496320,4.498889,2.501121,4.002076,1.902756,0.995982,3.503154,4.501900,2.501211,4.001962,1.903106,0.994457,3.496507,4.498928,2.501056,-0.000335,-0.000058,-0.001100,0.000319,0.000493,-0.000321,-0.000248,-0.000004,-0.000893,0.000281,0.000439,-0.000250,-0.000000,-0.000000,-0.000000,-0.000084,0.000012,-0.000044,-0.000049,-0.000051,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000001,7.686619,2.041507,1.399313,3.974227,3.986452,2.511305,7.686737,2.041481,1.399460,3.974155,3.986388,2.511350,7.696602,2.051254,1.402050,3.975476,3.988162,2.511012,7.696743,2.051291,-0.203257,-0.210109,-0.042152,-0.024558,-0.011844,0.011075,1.402248,3.975442,3.988156,2.511075,7.699379,2.052642,1.403785,3.976171,3.990254,2.512400,4.157861,115.585737,56.483094,13.049393,280.143010,251.489795,79.111735,140.490298,64.737104,15.431490,284.060835,256.712264,84.793300,136.153638,257.049621,796.019726,1336.089723,121.201051,105.140751,992.814155,561.269345,257.049155,796.019600,1336.088395,121.201393,105.141252,992.813759,561.269121,632.173637,509.749570,477.382664,694.859391,783.407791,584.805093,721.847984,516.254824,980.165127,2341.525609,724.684319,559.613984,559.613984,598.751022,531.967042,490.168142,691.867355,673.986524,622.580298,582.009706,744.239438,538.646278,1002.556581,2363.917063,747.075773,582.005438,582.005438,581.358659,451.519369,964.734892,2057.469306,467.975702,474.821276,474.821276,581.357686,451.517720,-0.000973,-0.001649,-0.001255,-0.004533,-0.003647,-0.000592,-0.000592,0.000639,964.733638,2057.464774,467.972055,474.820685,474.820685,603.753408,473.913442,987.129359,2079.860495,490.367776,497.216406,497.216406,603.749140,473.909174,-0.004268,-0.004268,-0.004268,-0.004268,-0.004268,-0.004268,-0.004268,0.002413,987.125091,2079.856228,490.363509,497.212138,497.212138,1.979428,2.187585,1.599798,3.995466,1.997288,1.882164,1.980232,2.188774,0.000804,0.001189,0.001092,-0.003475,-0.001686,0.001075,1.600890,3.991991,1.995602,1.883239,162.234000,-43.359160,420.551143,1781.911625,165.070335,106.537383,-23.301907,489.913616,1582.648030,-6.845574,106.537002,-23.302964,106.539174,-23.302924,489.912963,1582.680248,-6.826215,-0.000382,-0.001057,-0.000663,-0.003941,-0.003055,489.912953,1582.644089,-6.848630,4.002687,1.900174,0.999877,3.514431,4.504582,2.500404,4.002553,1.903238,4.015380,1.906548,0.998554,3.670269,4.606862,2.504410,2.504410,4.004864,1.905147,1.002524,3.537385,4.546476,2.508921,0.995520,3.503952,4.023687,1.914855,1.006861,3.678576,4.615169,2.512717,2.512717,4.502453,2.501554,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.002343,1.903626,0.993774,3.495737,4.498817,2.501355,4.002172,1.903401,0.994025,3.496034,4.498836,2.501225,4.002442,1.900157,0.999849,3.513323,4.504222,2.500358,4.002347,1.903034,4.014031,1.905896,0.998333,3.657210,4.598515,2.503957,2.503957,0.002347,0.003034,-0.004312,0.003611,0.002211,0.001415,4.004504,1.904773,1.002291,3.534288,4.542939,2.508305,0.995688,3.503611,4.021893,1.913758,1.006196,3.665073,4.606378,2.511819,2.511819,4.502211,0.011684,0.002862,0.002645,0.153599,0.096305,0.002542,0.002542,0.018796,0.009974,0.009757,0.160711,0.069416,0.038502,0.030913,0.103416,0.009654,0.009654,0.019547,0.010724,0.010507,0.161462,0.104167,0.010405,0.010405,2.501415,0.000209,-0.000388,0.001745,0.008215,0.003635,0.000199,-122.046478,-147.958210,372.679112,1532.326989,-115.646712,-303.658719,-122.045543,-147.957329,0.000935,0.000881,0.000339,-0.003253,-0.002242,0.001837,372.679452,1532.323736,-115.648954,-303.656882,-77.028210,-130.500821,392.227558,1548.834333,-93.847623,-318.080313,-77.027414,-130.499896,0.000797,0.000925,0.000199,-0.003346,-0.002321,0.002009,392.227756,1548.830987,-93.849944,-318.078304,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000001,0.000006,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.977714,2.184220,1.605709,3.995081,1.996746,1.882254,1.978617,2.185558,1.606939,3.991153,1.994837,1.883465,1.976643,2.182144,1.609385,3.994838,1.996314,1.882284,1.977645,2.183620,1.610744,3.990625,1.994293,1.883598,5.979724,4.086894,0.003080,0.004750,-0.004443,-0.007985,-0.003154,0.002465,2.604942,7.486853,6.493160,5.979724,4.086894,2.604942,7.486853,6.493160,4.384749,4.384749,9.652643,4.202369,7.200675,9.652673,-0.000030,-0.000361,-0.000437,0.000100,0.000000,0.000000,4.202730,7.201112,-0.000465,-0.000126,-0.001327,0.000343,0.000500,-0.000397,-0.000225,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,67.055477,0.014913,0.648178,1.542791,0.009666,103.451846,54795652.152753,0.000000,5.064973,0.197438,5.210733,0.191918,134.172935,0.007453,0.792130,1.262419,0.005904,169.382450,7470264.588020,0.000000,2.901913,0.344600,0.933806,1.070886,20499.713345,2864.685197,634698.215790,13.075337,3.360441,2.861854,2.532963,1.921257,1.000662,3.565710,4.083520,4.605098,2.533105,1.921465,1.000491,3.566064,4.083734,4.605351,2.532768,1.921631,0.998982,3.557864,4.083338,4.601568,2.532901,1.921860,0.998729,3.557556,4.083516,4.601549,2.540028,1.923029,1.007330,3.597486,4.085766,4.647711,2.540659,1.923411,1.007566,3.600695,4.086140,4.651413,2.531879,1.918325,1.004865,3.575769,4.083619,4.607202,2.531926,1.918343,1.004893,3.576917,4.083874,4.607579,2.542868,2.072475,1.412126,4.055520,8.000690,4.068751,4.460896,2.543150,2.062463,1.409299,4.054182,7.989884,4.066911,4.455366,2.542803,2.072437,1.411925,4.055556,8.000538,4.068757,4.460819,2.543104,2.062489,1.409149,4.054256,7.989757,4.066977,4.455328,-0.064030,-0.065296,-0.024010,0.149603,-0.017425,0.093760,-0.059105,-0.060378,-0.022191,0.138280,-0.016121,0.086619,0.001314,0.001476,0.001359,0.001001,-0.004212,-0.002021,161.239446,140.765150,116.572425,203.021297,211.398950,238.742795
-2029Y,-2.070000,-6.540000,6.130000,-2.069917,-6.522062,6.135019,7.720603,2.074854,1.408425,3.978457,3.991670,2.510202,7.720719,2.074926,1.408656,3.978431,3.991648,2.510280,119.587699,58.386200,14.043850,283.639517,255.988723,81.612791,144.492374,66.639860,16.427472,287.563989,261.214164,87.294511,264.761473,798.085956,1337.495845,125.178423,109.131201,995.324665,264.761138,798.085899,1337.494745,125.178742,109.131694,995.324344,636.175744,511.649704,478.382485,698.371109,787.911497,587.305391,562.117284,602.754912,533.871112,491.169922,695.397283,678.524148,625.087320,584.515395,-0.000479,497.223876,-0.002992,163.742852,-43.957415,419.045939,1783.046614,167.153535,106.545316,-23.301907,489.913616,1582.780339,-6.763637,4.000000,3.500000,4.500000,1.979421,2.187541,1.599841,3.995468,1.997390,1.882193,5.981978,4.091539,2.595768,7.488949,6.494718,4.384163,9.652954,4.202369,7.200675,9.652982,4.202683,7.201069,-0.000335,-0.000058,-0.001100,0.000319,0.000493,-0.000321,-2.070000,-6.540000,6.130000,-2.069917,-6.522062,6.135019,-0.014074,-0.053057,-0.019432,0.121107,0.075795,-0.051649,-0.014216,-0.053221,-0.019560,0.121740,0.076238,-0.052014,0.007333,0.122309,0.075745,-0.016016,-0.047841,-0.021948,0.110514,0.068483,-0.043121,-0.016169,-0.047984,-0.022093,0.111082,0.068863,-0.043397,-0.013010,-0.049047,-0.017964,0.111954,0.070067,-0.047745,-0.013146,-0.049199,-0.018087,0.112533,0.070457,-0.048052,0.000551,0.001126,-0.002168,0.000499,0.000364,-0.000137,4.001787,1.902849,0.994879,3.496951,4.499035,2.500913,4.001816,1.900114,0.999799,3.510274,4.503242,2.500245,4.001843,1.902509,4.003284,1.903354,1.001232,3.526051,4.532737,2.505659,0.996270,3.502759,4.501633,2.501025,-0.000309,-0.000041,-0.001044,0.000311,0.000484,-0.000302,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001804,1.902466,0.996323,3.502694,4.501589,2.500993,4.001758,1.902804,0.994956,3.497029,4.499056,2.500890,4.001724,1.902377,0.996431,3.502559,4.501497,2.500927,4.001698,1.902713,0.995114,3.497189,4.499097,2.500842,-0.000248,-0.000004,-0.000893,0.000281,0.000439,-0.000250,-0.000196,0.000017,-0.000738,0.000233,0.000359,-0.000197,-0.000000,-0.000000,-0.000000,-0.000063,0.000018,-0.000030,-0.000037,-0.000039,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000003,7.711852,2.066231,1.406123,3.977373,3.990450,2.510510,7.711982,2.066299,1.406350,3.977349,3.990443,2.510585,7.720603,2.074854,1.408425,3.978457,3.991670,2.510202,7.720719,2.074926,-0.179281,-0.186474,-0.035744,-0.021569,-0.008352,0.010280,1.408656,3.978431,3.991648,2.510280,7.722391,2.075748,1.409543,3.978904,3.993018,2.511096,4.169040,119.587699,58.386200,14.043850,283.639517,255.988723,81.612791,144.492374,66.639860,16.427472,287.563989,261.214164,87.294511,139.282452,264.761473,798.085956,1337.495845,125.178423,109.131201,995.324665,565.432874,264.761138,798.085899,1337.494745,125.178742,109.131694,995.324344,565.432728,636.175744,511.649704,478.382485,698.371109,787.911497,587.305391,725.860137,518.159870,981.163224,2345.163898,729.270820,562.117284,562.117284,602.754912,533.871112,491.169922,695.397283,678.524148,625.087320,584.518387,748.258247,540.557980,1003.561334,2367.562008,751.668930,584.515395,584.515395,581.368569,451.521346,964.736869,2057.603592,468.059616,474.823253,474.823253,581.367762,451.520009,-0.000806,-0.001336,-0.001117,-0.003682,-0.002960,-0.000479,-0.000479,0.000419,964.735752,2057.599909,468.056656,474.822774,474.822774,603.768865,473.921112,987.136854,2080.001012,490.457758,497.223876,497.223876,603.765872,473.918120,-0.002992,-0.002992,-0.002992,-0.002992,-0.002992,-0.002992,-0.002992,0.001583,987.133862,2079.998019,490.454766,497.220884,497.220884,1.981859,2.192352,1.591417,3.996013,1.998082,1.882044,1.982509,2.193314,0.000650,0.000962,0.000881,-0.002836,-0.001383,0.000877,1.592298,3.993177,1.996698,1.882921,163.742852,-43.957415,419.045939,1783.046614,167.153535,106.545316,-23.301907,489.913616,1582.780339,-6.763637,106.544989,-23.302764,106.546751,-23.302741,489.912976,1582.806581,-6.747873,-0.000327,-0.000857,-0.000638,-0.003203,-0.002481,489.912978,1582.777136,-6.766118,4.002108,1.900134,0.999820,3.511719,4.503705,2.500298,4.002076,1.902756,4.012152,1.905045,0.998096,3.638289,4.586501,2.503300,2.503300,4.003890,1.904070,1.001780,3.529928,4.537624,2.507022,0.995982,3.503154,4.018809,1.911702,1.004753,3.644946,4.593157,2.509957,2.509957,4.501900,2.501211,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.001962,1.903106,0.994457,3.496507,4.498928,2.501056,4.001851,1.902946,0.994713,3.496780,4.498991,2.500966,4.001925,1.900122,0.999806,3.510822,4.503417,2.500265,4.001930,1.902603,4.011117,1.904588,0.997983,3.627707,4.579799,2.502926,2.502926,0.001930,0.002603,-0.003843,0.002906,0.001733,0.001096,4.003522,1.903637,1.001452,3.527514,4.534604,2.506206,0.996157,3.502906,4.016970,1.910441,1.003836,3.633560,4.585652,2.508780,2.508780,4.501733,0.009187,0.001985,0.001826,0.124801,0.078066,0.001830,0.001830,0.013691,0.006489,0.006329,0.129305,0.044722,0.025261,0.019461,0.082569,0.006334,0.006334,0.015041,0.007838,0.007679,0.130654,0.083919,0.007684,0.007684,2.501096,0.000115,-0.000350,0.001525,0.006647,0.002972,0.000155,-122.063804,-148.009963,372.655370,1532.446537,-115.572630,-303.705366,-122.063032,-148.009236,0.000772,0.000726,0.000185,-0.002635,-0.001812,0.001506,372.655555,1532.443903,-115.574442,-303.703860,-77.042284,-130.553877,392.208125,1548.955440,-93.771828,-318.131962,-77.041630,-130.553117,0.000654,0.000760,0.000070,-0.002714,-0.001878,0.001644,392.208196,1548.952726,-93.773706,-318.130318,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000002,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.980357,2.189376,1.596612,3.995678,1.997697,1.882147,1.981076,2.190446,1.597587,3.992462,1.996118,1.883129,1.979421,2.187541,1.599841,3.995468,1.997390,1.882193,1.980192,2.188689,1.600890,3.991998,1.995683,1.883250,5.981978,4.091539,0.002558,0.003998,-0.004072,-0.006519,-0.002672,0.001970,2.595768,7.488949,6.494718,5.981978,4.091539,2.595768,7.488949,6.494718,4.384163,4.384163,9.652954,4.202369,7.200675,9.652982,-0.000028,-0.000314,-0.000394,0.000066,0.000000,0.000000,4.202683,7.201069,-0.000335,-0.000058,-0.001100,0.000319,0.000493,-0.000321,-0.000146,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,66.053713,0.015139,0.644312,1.552048,0.009754,102.517832,55421105.816939,0.000000,5.141976,0.194481,5.320420,0.187961,134.172969,0.007453,0.792132,1.262416,0.005904,169.382153,7480209.908307,0.000000,2.902144,0.344573,0.934577,1.070003,21020.874811,2924.493044,643685.935097,14.123608,3.496792,2.978364,2.532636,1.920818,1.001135,3.564980,4.083086,4.604599,2.532754,1.920974,1.000958,3.565237,4.083238,4.604774,2.532502,1.921168,0.999677,3.558636,4.083004,4.601731,2.532595,1.921331,0.999418,3.558353,4.083119,4.601665,2.537876,1.921872,1.006484,3.590468,4.084743,4.638989,2.538712,1.922313,1.006815,3.592970,4.085126,4.642149,2.531784,1.918289,1.004821,3.573179,4.083081,4.606361,2.531818,1.918301,1.004835,3.574108,4.083271,4.606662,2.542053,2.096602,1.418624,4.058630,8.026587,4.072385,4.473984,2.542366,2.087795,1.416286,4.057504,8.017150,4.071130,4.469230,2.541972,2.096529,1.418390,4.058657,8.026462,4.072408,4.473906,2.542288,2.087725,1.416055,4.057529,8.017009,4.071138,4.469146,-0.052000,-0.053207,-0.019559,0.121814,-0.014215,0.076267,-0.048040,-0.049187,-0.018085,0.112596,-0.013145,0.070482,0.001057,0.001148,0.001049,0.000771,-0.003470,-0.001707,165.323243,143.469212,117.739267,210.259483,220.030870,249.736356
\ No newline at end of file
+2029Y,-2.070000,-6.540000,6.130000,-2.069917,-6.522062,6.135019,7.720603,2.074854,1.408425,3.978457,3.991670,2.510202,7.720719,2.074926,1.408656,3.978431,3.991648,2.510280,119.587699,58.386200,14.043850,283.639517,255.988723,81.612791,144.492374,66.639860,16.427472,287.563989,261.214164,87.294511,264.761473,798.085956,1337.495845,125.178423,109.131201,995.324665,264.761138,798.085899,1337.494745,125.178742,109.131694,995.324344,636.175744,511.649704,478.382485,698.371109,787.911497,587.305391,562.117284,602.754912,533.871112,491.169922,695.397283,678.524148,625.087320,584.515395,-0.000479,497.223876,-0.002992,163.742852,-43.957415,419.045939,1783.046614,167.153535,106.545316,-23.301907,489.913616,1582.780339,-6.763637,4.000000,3.500000,4.500000,1.979421,2.187541,1.599841,3.995468,1.997390,1.882193,5.981978,4.091539,2.595768,7.488949,6.494718,4.384163,9.652954,4.202369,7.200675,9.652982,4.202683,7.201069,-0.000335,-0.000058,-0.001100,0.000319,0.000493,-0.000321,-2.070000,-6.540000,6.130000,-2.069917,-6.522062,6.135019,-0.014074,-0.053057,-0.019432,0.121107,0.075795,-0.051649,-0.014216,-0.053221,-0.019560,0.121740,0.076238,-0.052014,0.007333,0.122309,0.075745,-0.016016,-0.047841,-0.021948,0.110514,0.068483,-0.043121,-0.016169,-0.047984,-0.022093,0.111082,0.068863,-0.043397,-0.013010,-0.049047,-0.017964,0.111954,0.070067,-0.047745,-0.013146,-0.049199,-0.018087,0.112533,0.070457,-0.048052,0.000551,0.001126,-0.002168,0.000499,0.000364,-0.000137,4.001787,1.902849,0.994879,3.496951,4.499035,2.500913,4.001816,1.900114,0.999799,3.510274,4.503242,2.500245,4.001843,1.902509,4.003284,1.903354,1.001232,3.526051,4.532737,2.505659,0.996270,3.502759,4.501633,2.501025,-0.000309,-0.000041,-0.001044,0.000311,0.000484,-0.000302,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001804,1.902466,0.996323,3.502694,4.501589,2.500993,4.001758,1.902804,0.994956,3.497029,4.499056,2.500890,4.001724,1.902377,0.996431,3.502559,4.501497,2.500927,4.001698,1.902713,0.995114,3.497189,4.499097,2.500842,-0.000248,-0.000004,-0.000893,0.000281,0.000439,-0.000250,-0.000196,0.000017,-0.000738,0.000233,0.000359,-0.000197,-0.000000,-0.000000,-0.000000,-0.000063,0.000018,-0.000030,-0.000037,-0.000039,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000003,7.711852,2.066231,1.406123,3.977373,3.990450,2.510510,7.711982,2.066299,1.406350,3.977349,3.990443,2.510585,7.720603,2.074854,1.408425,3.978457,3.991670,2.510202,7.720719,2.074926,-0.179281,-0.186474,-0.035744,-0.021569,-0.008352,0.010280,1.408656,3.978431,3.991648,2.510280,7.722391,2.075748,1.409543,3.978904,3.993018,2.511096,4.169040,119.587699,58.386200,14.043850,283.639517,255.988723,81.612791,144.492374,66.639860,16.427472,287.563989,261.214164,87.294511,139.282452,264.761473,798.085956,1337.495845,125.178423,109.131201,995.324665,565.432874,264.761138,798.085899,1337.494745,125.178742,109.131694,995.324344,565.432728,636.175744,511.649704,478.382485,698.371109,787.911497,587.305391,725.860137,518.159870,981.163224,2345.163898,729.270820,562.117284,562.117284,602.754912,533.871112,491.169922,695.397283,678.524148,625.087320,584.518387,748.258247,540.557980,1003.561334,2367.562008,751.668930,584.515395,584.515395,581.368569,451.521346,964.736869,2057.603592,468.059616,474.823253,474.823253,581.367762,451.520009,-0.000806,-0.001336,-0.001117,-0.003682,-0.002960,-0.000479,-0.000479,0.000419,964.735752,2057.599909,468.056656,474.822774,474.822774,603.768865,473.921112,987.136854,2080.001012,490.457758,497.223876,497.223876,603.765872,473.918120,-0.002992,-0.002992,-0.002992,-0.002992,-0.002992,-0.002992,-0.002992,0.001583,987.133862,2079.998019,490.454766,497.220884,497.220884,1.981859,2.192352,1.591417,3.996013,1.998082,1.882044,1.982509,2.193314,0.000650,0.000962,0.000881,-0.002836,-0.001383,0.000877,1.592298,3.993177,1.996698,1.882921,163.742852,-43.957415,419.045939,1783.046614,167.153535,106.545316,-23.301907,489.913616,1582.780339,-6.763637,106.544989,-23.302764,106.546751,-23.302741,489.912976,1582.806581,-6.747873,-0.000327,-0.000857,-0.000638,-0.003203,-0.002481,489.912978,1582.777136,-6.766118,4.002108,1.900134,0.999820,3.511719,4.503705,2.500298,4.002076,1.902756,4.012152,1.905045,0.998096,3.638289,4.586501,2.503300,2.503300,4.003890,1.904070,1.001780,3.529928,4.537624,2.507022,0.995982,3.503154,4.018809,1.911702,1.004753,3.644946,4.593157,2.509957,2.509957,4.501900,2.501211,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.001962,1.903106,0.994457,3.496507,4.498928,2.501056,4.001851,1.902946,0.994713,3.496780,4.498991,2.500966,4.001925,1.900122,0.999806,3.510822,4.503417,2.500265,4.001930,1.902603,4.011117,1.904588,0.997983,3.627707,4.579799,2.502926,2.502926,0.001930,0.002603,-0.003843,0.002906,0.001733,0.001096,4.003522,1.903637,1.001452,3.527514,4.534604,2.506206,0.996157,3.502906,4.016970,1.910441,1.003836,3.633560,4.585652,2.508780,2.508780,4.501733,0.009187,0.001985,0.001826,0.124801,0.078066,0.001830,0.001830,0.013691,0.006489,0.006329,0.129305,0.044722,0.025261,0.019461,0.082569,0.006334,0.006334,0.015041,0.007838,0.007679,0.130654,0.083919,0.007684,0.007684,2.501096,0.000115,-0.000350,0.001525,0.006647,0.002972,0.000155,-122.063804,-148.009963,372.655370,1532.446537,-115.572630,-303.705366,-122.063032,-148.009236,0.000772,0.000726,0.000185,-0.002635,-0.001812,0.001506,372.655555,1532.443903,-115.574442,-303.703860,-77.042284,-130.553877,392.208125,1548.955440,-93.771828,-318.131962,-77.041630,-130.553117,0.000654,0.000760,0.000070,-0.002714,-0.001878,0.001644,392.208196,1548.952726,-93.773706,-318.130318,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000002,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.980357,2.189376,1.596612,3.995678,1.997697,1.882147,1.981076,2.190446,1.597587,3.992462,1.996118,1.883129,1.979421,2.187541,1.599841,3.995468,1.997390,1.882193,1.980192,2.188689,1.600890,3.991998,1.995683,1.883250,5.981978,4.091539,0.002558,0.003998,-0.004072,-0.006519,-0.002672,0.001970,2.595768,7.488949,6.494718,5.981978,4.091539,2.595768,7.488949,6.494718,4.384163,4.384163,9.652954,4.202369,7.200675,9.652982,-0.000028,-0.000314,-0.000394,0.000066,0.000000,0.000000,4.202683,7.201069,-0.000335,-0.000058,-0.001100,0.000319,0.000493,-0.000321,-0.000146,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,66.053713,0.015139,0.644312,1.552048,0.009754,102.517832,55421105.816939,0.000000,5.141976,0.194481,5.320420,0.187961,134.172969,0.007453,0.792132,1.262416,0.005904,169.382153,7480209.908307,0.000000,2.902144,0.344573,0.934577,1.070003,21020.874811,2924.493044,643685.935097,14.123608,3.496792,2.978364,2.532636,1.920818,1.001135,3.564980,4.083086,4.604599,2.532754,1.920974,1.000958,3.565237,4.083238,4.604774,2.532502,1.921168,0.999677,3.558636,4.083004,4.601731,2.532595,1.921331,0.999418,3.558353,4.083119,4.601665,2.537876,1.921872,1.006484,3.590468,4.084743,4.638989,2.538712,1.922313,1.006815,3.592970,4.085126,4.642149,2.531784,1.918289,1.004821,3.573179,4.083081,4.606361,2.531818,1.918301,1.004835,3.574108,4.083271,4.606662,2.542053,2.096602,1.418624,4.058630,8.026587,4.072385,4.473984,2.542366,2.087795,1.416286,4.057504,8.017150,4.071130,4.469230,2.541972,2.096529,1.418390,4.058657,8.026462,4.072408,4.473906,2.542288,2.087725,1.416055,4.057529,8.017009,4.071138,4.469146,-0.052000,-0.053207,-0.019559,0.121814,-0.014215,0.076267,-0.048040,-0.049187,-0.018085,0.112596,-0.013145,0.070482,0.001057,0.001148,0.001049,0.000771,-0.003470,-0.001707,165.323243,143.469212,117.739267,210.259483,220.030870,249.736356
diff --git a/tests/reporting/dc_q.csv b/tests/reporting/dc_q.csv
index 4426b07b2281d32c3bdb3a24722378d33ea356b4..45635a10e16f5df6e2dd799816bae6c4f63ad41d 100644
--- a/tests/reporting/dc_q.csv
+++ b/tests/reporting/dc_q.csv
@@ -182,4 +182,4 @@ Variables ->,BLT_BAR_EU_,BLT_BAR_JA_,BLT_BAR_US_,BLT_EU_,BLT_JA_,BLT_US_,GROWTH_
 2029Q1,-2.070000,-6.540000,6.130000,-2.069628,-6.520665,6.135504,7.712099,2.066455,1.406210,3.977406,3.990542,2.510514,7.712233,2.066532,1.406446,3.977386,3.990541,2.510593,118.087009,57.672602,13.670821,282.328213,254.301599,80.674932,142.991657,65.926391,16.053905,286.250410,259.526021,86.356605,261.865873,797.307518,1336.967586,123.686456,107.634271,994.383352,261.865495,797.307434,1336.966400,123.686784,107.634773,994.383001,634.675031,510.937159,478.007558,697.054590,786.222728,586.367793,561.178703,601.253607,533.157267,490.794392,694.074570,676.823802,624.147528,583.574653,-0.000539,497.221551,-0.003503,163.177309,-43.733034,419.610282,1782.625262,166.374982,106.542592,-23.301907,489.913616,1582.734905,-6.791774,4.000000,3.500000,4.500000,1.978437,2.185620,1.603228,3.995245,1.997041,1.882234,5.981154,4.089856,2.598998,7.488204,6.494177,4.384366,9.652857,4.202369,7.200675,9.652890,4.202702,7.201090,-0.000378,-0.000085,-0.001187,0.000329,0.000502,-0.000351,-2.070000,-6.540000,6.130000,-2.069628,-6.520665,6.135504,-0.015175,-0.057206,-0.020952,0.130578,0.081722,-0.055688,-0.015323,-0.057381,-0.021085,0.131268,0.082226,-0.056123,0.007907,0.131874,0.081668,-0.017269,-0.051583,-0.023665,0.119156,0.073839,-0.046494,-0.017433,-0.051738,-0.023818,0.119772,0.074260,-0.046811,-0.014028,-0.052882,-0.019368,0.120709,0.075546,-0.051479,-0.014172,-0.053048,-0.019497,0.121338,0.075980,-0.051830,0.000566,0.001164,-0.002287,0.000525,0.000391,-0.000146,4.001882,1.902993,0.994631,3.496696,4.498969,2.500991,4.001977,1.900125,0.999809,3.511088,4.503502,2.500275,4.001972,1.902649,4.003640,1.903779,1.001564,3.528222,4.535517,2.506483,0.996101,3.502977,4.501781,2.501131,-0.000347,-0.000066,-0.001128,0.000323,0.000499,-0.000331,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001930,1.902603,0.996157,3.502906,4.501733,2.501096,4.001851,1.902946,0.994713,3.496780,4.498991,2.500966,4.001843,1.902509,0.996270,3.502759,4.501633,2.501025,4.001787,1.902849,0.994879,3.496951,4.499035,2.500913,-0.000273,-0.000019,-0.000963,0.000298,0.000466,-0.000274,-0.000212,0.000013,-0.000789,0.000251,0.000390,-0.000214,-0.000000,-0.000000,-0.000000,-0.000072,0.000016,-0.000035,-0.000042,-0.000044,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000002,7.702905,2.057429,1.403750,3.976262,3.989155,2.510814,7.703046,2.057487,1.403968,3.976237,3.989158,2.510885,7.712099,2.066455,1.406210,3.977406,3.990542,2.510514,7.712233,2.066532,-0.187767,-0.194868,-0.037954,-0.022614,-0.009459,0.010593,1.406446,3.977386,3.990541,2.510593,7.714196,2.067503,1.407520,3.977931,3.992122,2.511563,4.165074,118.087009,57.672602,13.670821,282.328213,254.301599,80.674932,142.991657,65.926391,16.053905,286.250410,259.526021,86.356605,138.109201,261.865873,797.307518,1336.967586,123.686456,107.634271,994.383352,563.869751,261.865495,797.307434,1336.966400,123.686784,107.634773,994.383001,563.869578,634.675031,510.937159,478.007558,697.054590,786.222728,586.367793,724.356013,517.445669,980.788985,2343.803966,727.553685,561.178703,561.178703,601.253607,533.157267,490.794392,694.074570,676.823802,624.147528,583.578156,746.751963,539.841619,1003.184936,2366.199916,749.949635,583.574653,583.574653,581.365229,451.520730,964.736254,2057.557543,468.030864,474.822638,474.822638,581.364356,451.519278,-0.000874,-0.001452,-0.001174,-0.003987,-0.003200,-0.000539,-0.000539,0.000487,964.735080,2057.553556,468.027664,474.822098,474.822098,603.763808,473.918731,987.134533,2079.953008,490.427116,497.221551,497.221551,603.760306,473.915228,-0.003503,-0.003503,-0.003503,-0.003503,-0.003503,-0.003503,-0.003503,0.001842,987.131030,2079.949506,490.423614,497.218049,497.218049,1.980997,2.190655,1.594392,3.995820,1.997825,1.882093,1.981693,2.191687,0.000696,0.001032,0.000944,-0.003061,-0.001497,0.000942,1.595337,3.992758,1.996329,1.883036,163.177309,-43.733034,419.610282,1782.625262,166.374982,106.542592,-23.301907,489.913616,1582.734905,-6.791774,106.542257,-23.302820,106.544158,-23.302795,489.912980,1582.763206,-6.774761,-0.000335,-0.000913,-0.000635,-0.003448,-0.002661,489.912982,1582.731457,-6.794435,4.002299,1.900147,0.999836,3.512647,4.504004,2.500332,4.002230,1.902915,4.013231,1.905527,0.998223,3.649246,4.593448,2.503684,2.503684,4.004260,1.904500,1.002100,3.532439,4.540729,2.507821,0.995806,3.503414,4.020662,1.912957,1.005653,3.656676,4.600878,2.511114,2.511114,4.502076,2.501330,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.002079,1.903274,0.994198,3.496228,4.498868,2.501151,4.001953,1.903097,0.994460,3.496514,4.498925,2.501050,4.002097,1.900133,0.999818,3.511679,4.503692,2.500297,4.002067,1.902749,4.012098,1.905016,0.998080,3.637822,4.586195,2.503289,2.503289,0.002067,0.002749,-0.004016,0.003138,0.001890,0.001207,4.003888,1.904073,1.001790,3.529809,4.537517,2.507042,0.995984,3.503138,4.018791,1.911708,1.004773,3.644514,4.592888,2.509981,2.509981,4.501890,0.010031,0.002267,0.002096,0.134683,0.084305,0.002082,0.002082,0.015317,0.007552,0.007382,0.139969,0.052427,0.029382,0.023044,0.089591,0.007367,0.007367,0.016724,0.008959,0.008789,0.141376,0.090998,0.008774,0.008774,2.501207,0.000151,-0.000358,0.001608,0.007186,0.003208,0.000179,-122.057854,-147.992191,372.663523,1532.405485,-115.598069,-303.689348,-122.057025,-147.991412,0.000829,0.000779,0.000239,-0.002846,-0.001952,0.001607,372.663762,1532.402639,-115.600022,-303.687741,-77.037451,-130.535658,392.214798,1548.913853,-93.797855,-318.114226,-77.036746,-130.534841,0.000705,0.000817,0.000117,-0.002928,-0.002022,0.001756,392.214915,1548.910925,-93.799877,-318.112470,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000003,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.979421,2.187541,1.599841,3.995468,1.997390,1.882193,1.980192,2.188689,1.600890,3.991998,1.995683,1.883250,1.978437,2.185620,1.603228,3.995245,1.997041,1.882234,1.979272,2.186863,1.604367,3.991509,1.995207,1.883375,5.981154,4.089856,0.002717,0.004235,-0.004230,-0.007041,-0.002865,0.002131,2.598998,7.488204,6.494177,5.981154,4.089856,2.598998,7.488204,6.494177,4.384366,4.384366,9.652857,4.202369,7.200675,9.652890,-0.000033,-0.000333,-0.000414,0.000076,0.000000,0.000000,4.202702,7.201090,-0.000378,-0.000085,-0.001187,0.000329,0.000502,-0.000351,-0.000173,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,66.426948,0.015054,0.645758,1.548568,0.009721,102.866617,55187808.310148,0.000000,5.112932,0.195582,5.279069,0.189427,134.172974,0.007453,0.792131,1.262417,0.005904,169.382254,7476793.430464,0.000000,2.902065,0.344582,0.934312,1.070306,20823.418481,2901.767127,640289.607264,13.717313,3.444796,2.933930,2.532750,1.920966,1.000960,3.565221,4.083229,4.604763,2.532876,1.921136,1.000781,3.565506,4.083398,4.604958,2.532588,1.921322,0.999421,3.558360,4.083110,4.601662,2.532692,1.921501,0.999156,3.558064,4.083241,4.601601,2.538732,1.922316,1.006825,3.592846,4.085125,4.642038,2.539531,1.922751,1.007138,3.595571,4.085511,4.645398,2.531816,1.918300,1.004833,3.574066,4.083260,4.606648,2.531853,1.918314,1.004851,3.575070,4.083470,4.606974,2.542374,2.088032,1.416383,4.057544,8.017421,4.071233,4.469381,2.542673,2.078799,1.413870,4.056348,8.007497,4.069794,4.464355,2.542293,2.087954,1.416143,4.057564,8.017276,4.071234,4.469291,2.542601,2.078739,1.413649,4.056374,8.007345,4.069791,4.464269,-0.056107,-0.057365,-0.021083,0.131354,-0.015321,0.082260,-0.051817,-0.053034,-0.019495,0.121412,-0.014171,0.076009,0.001140,0.001242,0.001139,0.000835,-0.003736,-0.001834,163.775914,142.447231,117.299799,207.505674,216.739923,245.536399
 2029Q2,-2.070000,-6.540000,6.130000,-2.069851,-6.521643,6.135165,7.717894,2.072169,1.407731,3.978124,3.991339,2.510308,7.718017,2.072245,1.407966,3.978100,3.991325,2.510388,119.087480,58.148351,13.919479,283.202387,255.426341,81.300180,143.992150,66.402053,16.302931,287.126154,260.651467,86.981887,263.795346,797.825561,1337.319519,124.680987,108.632105,995.010929,263.794999,797.825495,1337.318391,124.681309,108.632604,995.010598,635.675525,511.412190,478.257510,697.932362,787.348603,586.992862,561.804463,602.254517,533.633212,491.044783,694.956625,677.957681,624.774148,584.201947,-0.000500,497.223209,-0.003149,163.554404,-43.882615,419.234024,1782.907214,166.894667,106.544470,-23.301907,489.913616,1582.766225,-6.772378,4.000000,3.500000,4.500000,1.979107,2.186927,1.600921,3.995397,1.997287,1.882208,5.981711,4.090995,2.596794,7.488713,6.494550,4.384227,9.652926,4.202369,7.200675,9.652956,4.202689,7.201077,-0.000347,-0.000066,-0.001128,0.000323,0.000499,-0.000331,-2.070000,-6.540000,6.130000,-2.069851,-6.521643,6.135165,-0.014416,-0.054346,-0.019904,0.124049,0.077636,-0.052903,-0.014561,-0.054515,-0.020034,0.124699,0.078095,-0.053284,0.007511,0.125281,0.077585,-0.016406,-0.049003,-0.022481,0.113198,0.070147,-0.044169,-0.016562,-0.049151,-0.022629,0.113782,0.070537,-0.044453,-0.013326,-0.050238,-0.018400,0.114674,0.071769,-0.048905,-0.013465,-0.050396,-0.018525,0.115267,0.072170,-0.049220,0.000557,0.001140,-0.002204,0.000509,0.000374,-0.000139,4.001816,1.902894,0.994799,3.496871,4.499014,2.500937,4.001865,1.900118,0.999802,3.510526,4.503323,2.500255,4.001883,1.902553,4.003397,1.903489,1.001338,3.526721,4.533603,2.505924,0.996216,3.502826,4.501679,2.501058,-0.000319,-0.000048,-0.001070,0.000316,0.000492,-0.000311,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001843,1.902509,0.996270,3.502759,4.501633,2.501025,4.001787,1.902849,0.994879,3.496951,4.499035,2.500913,4.001761,1.902419,0.996379,3.502620,4.501539,2.500957,4.001726,1.902756,0.995039,3.497115,4.499078,2.500864,-0.000255,-0.000007,-0.000914,0.000287,0.000450,-0.000257,-0.000201,0.000016,-0.000753,0.000239,0.000369,-0.000202,-0.000000,-0.000000,-0.000000,-0.000066,0.000017,-0.000032,-0.000038,-0.000040,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000003,7.709002,2.063417,1.405378,3.977020,3.990068,2.510613,7.709138,2.063487,1.405607,3.976999,3.990068,2.510689,7.717894,2.072169,1.407731,3.978124,3.991339,2.510308,7.718017,2.072245,-0.181983,-0.189155,-0.036434,-0.021900,-0.008675,0.010388,1.407966,3.978100,3.991325,2.510388,7.719770,2.073107,1.408903,3.978593,3.992752,2.511246,4.167775,119.087480,58.148351,13.919479,283.202387,255.426341,81.300180,143.992150,66.402053,16.302931,287.126154,260.651467,86.981887,138.891382,263.795346,797.825561,1337.319519,124.680987,108.632105,995.010929,564.911379,263.794999,797.825495,1337.318391,124.681309,108.632604,995.010598,564.911225,635.675525,511.412190,478.257510,697.932362,787.348603,586.992862,725.358867,517.921848,981.038487,2344.711677,728.699130,561.804463,561.804463,602.254517,533.633212,491.044783,694.956625,677.957681,624.774148,584.205096,747.756351,540.319332,1003.435971,2367.109161,751.096614,584.201947,584.201947,581.367546,451.521169,964.736692,2057.589301,468.050699,474.823076,474.823076,581.366717,451.519796,-0.000829,-0.001374,-0.001136,-0.003778,-0.003035,-0.000500,-0.000500,0.000439,964.735557,2057.585523,468.047663,474.822576,474.822576,603.767350,473.920428,987.136190,2079.986156,490.448296,497.223209,497.223209,603.764201,473.917279,-0.003149,-0.003149,-0.003149,-0.003149,-0.003149,-0.003149,-0.003149,0.001658,987.133041,2079.983007,490.445147,497.220060,497.220060,1.981584,2.191809,1.592366,3.995951,1.998006,1.882061,1.982247,2.192792,0.000663,0.000982,0.000899,-0.002907,-0.001420,0.000897,1.593265,3.993044,1.996586,1.882958,163.554404,-43.882615,419.234024,1782.907214,166.894667,106.544470,-23.301907,489.913616,1582.766225,-6.772378,106.544141,-23.302780,106.545946,-23.302757,489.912978,1582.793108,-6.756224,-0.000328,-0.000873,-0.000635,-0.003278,-0.002535,489.912981,1582.762947,-6.774912,4.002165,1.900138,0.999824,3.512007,4.503798,2.500309,4.002122,1.902805,4.012482,1.905189,0.998130,3.641688,4.588651,2.503422,2.503422,4.004013,1.904216,1.001893,3.530700,4.538602,2.507301,0.995924,3.503232,4.019420,1.912127,1.005067,3.648626,4.595588,2.510359,2.510359,4.501953,2.501249,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.001996,1.903157,0.994372,3.496417,4.498906,2.501084,4.001882,1.902993,0.994631,3.496696,4.498969,2.500991,4.001977,1.900125,0.999809,3.511088,4.503502,2.500275,4.001972,1.902649,4.011418,1.904717,0.998008,3.630846,4.581780,2.503040,2.503040,0.001972,0.002649,-0.003899,0.002977,0.001781,0.001131,4.003640,1.903779,1.001564,3.528222,4.535517,2.506483,0.996101,3.502977,4.017553,1.910852,1.004143,3.636981,4.587915,2.509176,2.509176,4.501781,0.009446,0.002069,0.001907,0.127869,0.079999,0.001910,0.001910,0.014167,0.006789,0.006628,0.132590,0.046896,0.026444,0.020452,0.084720,0.006630,0.006630,0.015581,0.008204,0.008042,0.134004,0.086134,0.008045,0.008045,2.501131,0.000127,-0.000352,0.001553,0.006815,0.003047,0.000164,-122.061956,-148.004442,372.657902,1532.433785,-115.580533,-303.700390,-122.061166,-148.003700,0.000790,0.000742,0.000203,-0.002700,-0.001855,0.001536,372.658105,1532.431085,-115.582387,-303.698854,-77.040783,-130.548218,392.210198,1548.942521,-93.779913,-318.126453,-77.040113,-130.547440,0.000670,0.000777,0.000085,-0.002780,-0.001921,0.001678,392.210283,1548.939741,-93.781834,-318.124775,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000003,0.000001,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.980059,2.188789,1.597642,3.995611,1.997607,1.882164,1.980792,2.189881,1.598637,3.992315,1.995985,1.883168,1.979107,2.186927,1.600921,3.995397,1.997287,1.882208,1.979895,2.188101,1.601994,3.991842,1.995536,1.883290,5.981711,4.090995,0.002604,0.004068,-0.004127,-0.006684,-0.002736,0.002018,2.596794,7.488713,6.494550,5.981711,4.090995,2.596794,7.488713,6.494550,4.384227,4.384227,9.652926,4.202369,7.200675,9.652956,-0.000030,-0.000320,-0.000401,0.000069,0.000000,0.000000,4.202689,7.201077,-0.000347,-0.000066,-0.001128,0.000323,0.000499,-0.000331,-0.000154,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,66.177481,0.015111,0.644793,1.550886,0.009743,102.633705,55343630.646028,0.000000,5.132249,0.194846,5.306575,0.188445,134.172973,0.007453,0.792132,1.262417,0.005904,169.382185,7479148.232535,0.000000,2.902120,0.344576,0.934495,1.070097,20954.512391,2916.838512,642546.965675,13.984554,3.479226,2.963352,2.532671,1.920864,1.001078,3.565054,4.083130,4.604649,2.532792,1.921024,1.000900,3.565318,4.083286,4.604829,2.532528,1.921215,0.999594,3.558549,4.083036,4.601708,2.532624,1.921382,0.999332,3.558260,4.083155,4.601641,2.538160,1.922017,1.006597,3.591202,4.084866,4.639944,2.538998,1.922462,1.006929,3.593769,4.085254,4.643173,2.531794,1.918292,1.004824,3.573454,4.083136,4.606450,2.531829,1.918305,1.004839,3.574406,4.083331,4.606758,2.542163,2.093866,1.417925,4.058287,8.023669,4.072049,4.472525,2.542472,2.084924,1.415533,4.057140,8.014078,4.070741,4.467686,2.542081,2.093788,1.417686,4.058311,8.023536,4.072063,4.472442,2.542395,2.084853,1.415300,4.057163,8.013931,4.070741,4.467598,-0.053270,-0.054500,-0.020032,0.124777,-0.014560,0.078125,-0.049208,-0.050383,-0.018524,0.115334,-0.013465,0.072196,0.001081,0.001174,0.001073,0.000788,-0.003555,-0.001750,164.803184,143.126413,117.592269,209.330873,218.919275,248.315385
 2029Q3,-2.070000,-6.540000,6.130000,-2.070028,-6.522551,6.134849,7.723499,2.077709,1.409185,3.978815,3.992067,2.510098,7.723609,2.077781,1.409415,3.978787,3.992038,2.510177,120.087934,58.624074,14.168179,284.076604,256.551095,81.925414,144.992620,66.877691,16.551985,288.001860,261.776886,87.607152,265.726221,798.344988,1337.671815,125.675690,109.630122,995.638454,265.725902,798.344940,1337.670745,125.676006,109.630614,995.638142,636.675991,511.887219,478.507461,698.809994,788.474434,587.617926,562.430164,603.255366,534.109084,491.295117,695.838306,679.091082,625.400629,584.829040,-0.000459,497.224701,-0.002812,163.931398,-44.032206,418.857810,1783.187569,167.413365,106.546254,-23.301907,489.913616,1582.795979,-6.753951,4.000000,3.500000,4.500000,1.979756,2.188194,1.598688,3.995543,1.997512,1.882180,5.982258,4.092109,2.594667,7.489204,6.494905,4.384093,9.652988,4.202369,7.200675,9.653014,4.202676,7.201063,-0.000319,-0.000048,-0.001070,0.000316,0.000492,-0.000311,-2.070000,-6.540000,6.130000,-2.070028,-6.522551,6.134849,-0.013695,-0.051628,-0.018909,0.117846,0.073754,-0.050258,-0.013836,-0.051789,-0.019036,0.118459,0.074175,-0.050597,0.007136,0.119017,0.073705,-0.015585,-0.046553,-0.021357,0.107538,0.066639,-0.041960,-0.015734,-0.046691,-0.021500,0.108091,0.067003,-0.042220,-0.012660,-0.047726,-0.017480,0.108940,0.068180,-0.046460,-0.012793,-0.047874,-0.017602,0.109501,0.068554,-0.046749,0.000546,0.001113,-0.002127,0.000491,0.000355,-0.000133,4.001754,1.902800,0.994963,3.497039,4.499058,2.500886,4.001760,1.900111,0.999796,3.509994,4.503153,2.500235,4.001798,1.902461,4.003161,1.903208,1.001117,3.525302,4.531780,2.505377,0.996327,3.502684,4.501582,2.500988,-0.000295,-0.000032,-0.001015,0.000307,0.000481,-0.000292,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001761,1.902419,0.996379,3.502620,4.501539,2.500957,4.001726,1.902756,0.995039,3.497115,4.499078,2.500864,4.001683,1.902333,0.996486,3.502490,4.501450,2.500893,4.001667,1.902666,0.995194,3.497271,4.499118,2.500817,-0.000238,0.000001,-0.000869,0.000275,0.000431,-0.000242,-0.000191,0.000019,-0.000720,0.000227,0.000349,-0.000191,-0.000000,-0.000000,-0.000000,-0.000060,0.000019,-0.000028,-0.000035,-0.000037,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000004,7.714899,2.069224,1.406936,3.977752,3.990905,2.510409,7.715027,2.069297,1.407169,3.977729,3.990896,2.510487,7.723499,2.077709,1.409185,3.978815,3.992067,2.510098,7.723609,2.077781,-0.176391,-0.183619,-0.034985,-0.021213,-0.007962,0.010177,1.409415,3.978787,3.992038,2.510177,7.725177,2.078549,1.410234,3.979235,3.993332,2.510938,4.170390,120.087934,58.624074,14.168179,284.076604,256.551095,81.925414,144.992620,66.877691,16.551985,288.001860,261.776886,87.607152,139.673543,265.726221,798.344988,1337.671815,125.675690,109.630122,995.638454,565.953694,265.725902,798.344940,1337.670745,125.676006,109.630614,995.638142,565.953558,636.675991,511.887219,478.507461,698.809994,788.474434,587.617926,726.361561,518.397958,981.287974,2345.617733,729.843529,562.430164,562.430164,603.255366,534.109084,491.295117,695.838306,679.091082,625.400629,584.831853,748.760438,540.796835,1003.686850,2368.016609,752.242405,584.829040,584.829040,581.369725,451.521564,964.737087,2057.619450,468.069520,474.823471,474.823471,581.368941,451.520267,-0.000784,-0.001297,-0.001098,-0.003578,-0.002877,-0.000459,-0.000459,0.000395,964.735989,2057.615873,468.066642,474.823012,474.823012,603.770630,473.921956,987.137678,2080.017561,490.468331,497.224701,497.224701,603.767817,473.919144,-0.002812,-0.002812,-0.002812,-0.002812,-0.002812,-0.002812,-0.002812,0.001492,987.134866,2080.014749,490.465519,497.221888,497.221888,1.982152,2.192929,1.590405,3.996078,1.998172,1.882028,1.982786,2.193867,0.000634,0.000938,0.000858,-0.002759,-0.001345,0.000854,1.591263,3.993320,1.996827,1.882882,163.931398,-44.032206,418.857810,1783.187569,167.413365,106.546254,-23.301907,489.913616,1582.795979,-6.753951,106.545929,-23.302745,106.547643,-23.302723,489.912974,1582.821513,-6.738616,-0.000325,-0.000838,-0.000639,-0.003119,-0.002418,489.912977,1582.792861,-6.756370,4.002041,1.900129,0.999815,3.511399,4.503602,2.500287,4.002023,1.902701,4.011779,1.904877,0.998050,3.634516,4.584106,2.503169,2.503169,4.003766,1.903926,1.001675,3.529061,4.536560,2.506758,0.996041,3.503063,4.018184,1.911282,1.004455,3.640920,4.590511,2.509574,2.509574,4.501839,2.501171,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.001920,1.903048,0.994544,3.496601,4.498948,2.501023,4.001816,1.902894,0.994799,3.496871,4.499014,2.500937,4.001865,1.900118,0.999802,3.510526,4.503323,2.500255,4.001883,1.902553,4.010778,1.904439,0.997946,3.624224,4.577594,2.502802,2.502802,0.001883,0.002553,-0.003784,0.002826,0.001679,0.001058,4.003397,1.903489,1.001338,3.526721,4.533603,2.505924,0.996216,3.502826,4.016348,1.910010,1.003517,3.629794,4.583164,2.508372,2.508372,4.501679,0.008895,0.001886,0.001731,0.121398,0.075916,0.001744,0.001744,0.013119,0.006110,0.005954,0.125621,0.041966,0.023800,0.018167,0.080139,0.005967,0.005967,0.014465,0.007457,0.007301,0.126968,0.081486,0.007314,0.007314,2.501058,0.000102,-0.000347,0.001497,0.006462,0.002891,0.000148,-122.065852,-148.016080,372.652563,1532.460669,-115.563873,-303.710880,-122.065099,-148.015372,0.000753,0.000708,0.000167,-0.002562,-0.001764,0.001471,372.652730,1532.458107,-115.565637,-303.709409,-77.043948,-130.560149,392.205828,1548.969756,-93.762868,-318.138068,-77.043311,-130.559409,0.000637,0.000740,0.000055,-0.002640,-0.001828,0.001605,392.205883,1548.967117,-93.764696,-318.136462,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000002,0.000000,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.980676,2.190000,1.595513,3.995750,1.997806,1.882133,1.981376,2.191042,1.596461,3.992621,1.996269,1.883089,1.979756,2.188194,1.598688,3.995543,1.997512,1.882180,1.980504,2.189309,1.599704,3.992165,1.995848,1.883207,5.982258,4.092109,0.002502,0.003915,-0.004021,-0.006340,-0.002607,0.001913,2.594667,7.489204,6.494905,5.982258,4.092109,2.594667,7.489204,6.494905,4.384093,4.384093,9.652988,4.202369,7.200675,9.653014,-0.000026,-0.000307,-0.000387,0.000062,0.000000,0.000000,4.202676,7.201063,-0.000319,-0.000048,-0.001070,0.000316,0.000492,-0.000311,-0.000136,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,65.928980,0.015168,0.643829,1.553207,0.009765,102.401377,55499007.242003,0.000000,5.151634,0.194113,5.334172,0.187471,134.172968,0.007453,0.792132,1.262416,0.005904,169.382119,7481385.842908,0.000000,2.902172,0.344570,0.934668,1.069898,21086.420556,2932.028787,644814.626962,14.257202,3.514007,2.993075,2.532597,1.920767,1.001194,3.564897,4.083037,4.604542,2.532712,1.920918,1.001018,3.565143,4.083183,4.604710,2.532473,1.921115,0.999764,3.558730,4.082968,4.601755,2.532561,1.921272,0.999506,3.558451,4.083076,4.601685,2.537586,1.921721,1.006368,3.589648,4.084613,4.637942,2.538442,1.922167,1.006709,3.592071,4.084997,4.641036,2.531773,1.918285,1.004817,3.572873,4.083019,4.606262,2.531806,1.918297,1.004829,3.573776,4.083202,4.606554,2.541947,2.099517,1.419394,4.059001,8.029710,4.072791,4.475554,2.542265,2.090856,1.417116,4.057900,8.020439,4.071602,4.470894,2.541867,2.099444,1.419161,4.059030,8.029590,4.072821,4.475480,2.542185,2.090780,1.416880,4.057924,8.020301,4.071611,4.470809,-0.050584,-0.051776,-0.019034,0.118529,-0.013835,0.074203,-0.046738,-0.047863,-0.017601,0.109561,-0.012792,0.068578,0.001027,0.001115,0.001016,0.000748,-0.003379,-0.001664,165.836868,143.808798,117.885502,211.172047,221.120491,251.125760
-2029Q4,-2.070000,-6.540000,6.130000,-2.070162,-6.523391,6.134559,7.728918,2.083081,1.410576,3.979482,3.992732,2.509886,7.729016,2.083145,1.410796,3.979448,3.992689,2.509962,121.088372,59.099774,14.416920,284.950864,257.675859,82.550636,145.993070,67.353306,16.801066,288.877531,262.902282,88.232399,267.658451,798.865758,1338.024459,126.670561,110.628305,996.265925,267.658156,798.865726,1338.023444,126.670868,110.628786,996.265633,637.676431,512.362247,478.757410,699.687492,789.600222,588.242984,563.055807,604.256157,534.584886,491.545396,696.719631,680.224027,626.026973,585.455938,-0.000418,497.226043,-0.002505,164.308298,-44.181804,418.481641,1783.466410,167.931128,106.547948,-23.301907,489.913616,1582.824246,-6.736446,4.000000,3.500000,4.500000,1.980383,2.189422,1.596526,3.995685,1.997719,1.882150,5.982791,4.093194,2.592614,7.489676,6.495240,4.383965,9.653043,4.202369,7.200675,9.653066,4.202663,7.201048,-0.000295,-0.000032,-0.001015,0.000307,0.000481,-0.000292,-2.070000,-6.540000,6.130000,-2.070162,-6.523391,6.134559,-0.013010,-0.049047,-0.017964,0.111954,0.070067,-0.047745,-0.013146,-0.049199,-0.018087,0.112533,0.070457,-0.048052,0.006779,0.113066,0.070020,-0.014806,-0.044226,-0.020289,0.102162,0.063307,-0.039862,-0.014947,-0.044355,-0.020427,0.102685,0.063650,-0.040105,-0.012027,-0.045340,-0.016606,0.103493,0.064771,-0.044137,-0.012154,-0.045479,-0.016724,0.104024,0.065123,-0.044408,0.000534,0.001085,-0.002053,0.000472,0.000335,-0.000128,4.001695,1.902709,0.995121,3.497199,4.499100,2.500838,4.001661,1.900104,0.999791,3.509488,4.502991,2.500216,4.001719,1.902373,4.002936,1.902940,1.000908,3.523959,4.530047,2.504854,0.996435,3.502550,4.501491,2.500922,-0.000273,-0.000019,-0.000963,0.000298,0.000466,-0.000274,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001683,1.902333,0.996486,3.502490,4.501450,2.500893,4.001667,1.902666,0.995194,3.497271,4.499118,2.500817,4.001609,1.902249,0.996589,3.502366,4.501366,2.500833,4.001611,1.902579,0.995343,3.497420,4.499157,2.500773,-0.000224,0.000008,-0.000827,0.000263,0.000411,-0.000227,-0.000181,0.000020,-0.000689,0.000215,0.000329,-0.000180,-0.000000,-0.000000,-0.000000,-0.000054,0.000020,-0.000025,-0.000032,-0.000033,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000005,7.720603,2.074854,1.408425,3.978457,3.991670,2.510202,7.720719,2.074926,1.408656,3.978431,3.991648,2.510280,7.728918,2.083081,1.410576,3.979482,3.992732,2.509886,7.729016,2.083145,-0.170984,-0.178255,-0.033604,-0.020552,-0.007311,0.009962,1.410796,3.979448,3.992689,2.509962,7.730422,2.083833,1.411516,3.979858,3.993865,2.510638,4.172922,121.088372,59.099774,14.416920,284.950864,257.675859,82.550636,145.993070,67.353306,16.801066,288.877531,262.902282,88.232399,140.455685,267.658451,798.865758,1338.024459,126.670561,110.628305,996.265925,566.996671,267.658156,798.865726,1338.023444,126.670868,110.628786,996.265633,566.996550,637.676431,512.362247,478.757410,699.687492,789.600222,588.242984,727.364105,518.874003,981.537448,2346.522217,730.986935,563.055807,563.055807,604.256157,534.584886,491.545396,696.719631,680.224027,626.026973,585.458442,749.764236,541.274134,1003.937578,2368.922348,753.387065,585.455938,585.455938,581.371775,451.521919,964.737443,2057.648072,468.087380,474.823826,474.823826,581.371035,451.520697,-0.000740,-0.001222,-0.001061,-0.003386,-0.002727,-0.000418,-0.000418,0.000355,964.736382,2057.644686,468.084653,474.823408,474.823408,603.773670,473.923332,987.139017,2080.047321,490.487288,497.226043,497.226043,603.771165,473.920827,-0.002505,-0.002505,-0.002505,-0.002505,-0.002505,-0.002505,-0.002505,0.001343,987.136512,2080.044816,490.484784,497.223539,497.223539,1.982702,2.194015,1.588506,3.996201,1.998324,1.881993,1.983309,2.194911,0.000608,0.000897,0.000821,-0.002617,-0.001272,0.000814,1.589327,3.993584,1.997051,1.882807,164.308298,-44.181804,418.481641,1783.466410,167.931128,106.547948,-23.301907,489.913616,1582.824246,-6.736446,106.547627,-23.302712,106.549256,-23.302690,489.912970,1582.848498,-6.721889,-0.000322,-0.000804,-0.000643,-0.002968,-0.002309,489.912973,1582.821278,-6.738755,4.001925,1.900122,0.999806,3.510822,4.503417,2.500265,4.001930,1.902603,4.011117,1.904588,0.997983,3.627707,4.579799,2.502926,2.502926,4.003522,1.903637,1.001452,3.527514,4.534604,2.506206,0.996157,3.502906,4.016970,1.910441,1.003836,3.633560,4.585652,2.508780,2.508780,4.501733,2.501096,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.001851,1.902946,0.994713,3.496780,4.498991,2.500966,4.001754,1.902800,0.994963,3.497039,4.499058,2.500886,4.001760,1.900111,0.999796,3.509994,4.503153,2.500235,4.001798,1.902461,4.010175,1.904180,0.997896,3.617937,4.573626,2.502574,2.502574,0.001798,0.002461,-0.003673,0.002684,0.001582,0.000988,4.003161,1.903208,1.001117,3.525302,4.531780,2.505377,0.996327,3.502684,4.015190,1.909196,1.002911,3.622953,4.578641,2.507590,2.507590,4.501582,0.008376,0.001719,0.001568,0.115254,0.072043,0.001586,0.001586,0.012161,0.005504,0.005353,0.119039,0.037599,0.021420,0.016180,0.075828,0.005371,0.005371,0.013392,0.006734,0.006584,0.120269,0.077059,0.006601,0.006601,2.500988,0.000079,-0.000343,0.001444,0.006126,0.002741,0.000130,-122.069554,-148.027137,372.647491,1532.486210,-115.548046,-303.720846,-122.068836,-148.026461,0.000718,0.000676,0.000133,-0.002431,-0.001678,0.001410,372.647623,1532.483779,-115.549724,-303.719435,-77.046955,-130.571484,392.201677,1548.995630,-93.746675,-318.149102,-77.046350,-130.570779,0.000605,0.000706,0.000025,-0.002507,-0.001740,0.001538,392.201702,1548.993123,-93.748415,-318.147564,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000002,0.000000,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.981273,2.191173,1.593452,3.995884,1.997988,1.882100,1.981944,2.192170,1.594359,3.992915,1.996535,1.883011,1.980383,2.189422,1.596526,3.995685,1.997719,1.882150,1.981096,2.190485,1.597493,3.992476,1.996141,1.883127,5.982791,4.093194,0.002408,0.003772,-0.003912,-0.006009,-0.002479,0.001816,2.592614,7.489676,6.495240,5.982791,4.093194,2.592614,7.489676,6.495240,4.383965,4.383965,9.653043,4.202369,7.200675,9.653066,-0.000022,-0.000294,-0.000372,0.000056,0.000000,0.000000,4.202663,7.201048,-0.000295,-0.000032,-0.001015,0.000307,0.000481,-0.000292,-0.000121,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,65.681441,0.015225,0.642867,1.555533,0.009788,102.169627,55653977.069576,0.000000,5.171087,0.193383,5.361862,0.186502,134.172962,0.007453,0.792132,1.262416,0.005904,169.382056,7483512.127322,0.000000,2.902221,0.344564,0.934833,1.069710,21219.147816,2947.337749,647092.540487,14.535363,3.549141,3.023101,2.532525,1.920674,1.001307,3.564750,4.082949,4.604441,2.532636,1.920818,1.001135,3.564980,4.083086,4.604599,2.532421,1.921019,0.999929,3.558904,4.082903,4.601800,2.532502,1.921168,0.999677,3.558636,4.083004,4.601731,2.537025,1.921434,1.006145,3.588178,4.084368,4.636034,2.537876,1.921872,1.006484,3.590468,4.084743,4.638989,2.531753,1.918278,1.004810,3.572321,4.082909,4.606084,2.531784,1.918289,1.004821,3.573179,4.083081,4.606361,2.541727,2.104994,1.420795,4.059689,8.035551,4.073468,4.478475,2.542053,2.096602,1.418624,4.058630,8.026587,4.072385,4.473984,2.541649,2.104929,1.420571,4.059724,8.035445,4.073513,4.478410,2.541972,2.096528,1.418390,4.058657,8.026462,4.072408,4.473906,-0.048040,-0.049187,-0.018085,0.112596,-0.013145,0.070482,-0.044398,-0.045469,-0.016723,0.104078,-0.012153,0.065144,0.000977,0.001063,0.000967,0.000713,-0.003208,-0.001578,166.877007,144.494404,118.179499,213.029339,223.343793,253.967880
\ No newline at end of file
+2029Q4,-2.070000,-6.540000,6.130000,-2.070162,-6.523391,6.134559,7.728918,2.083081,1.410576,3.979482,3.992732,2.509886,7.729016,2.083145,1.410796,3.979448,3.992689,2.509962,121.088372,59.099774,14.416920,284.950864,257.675859,82.550636,145.993070,67.353306,16.801066,288.877531,262.902282,88.232399,267.658451,798.865758,1338.024459,126.670561,110.628305,996.265925,267.658156,798.865726,1338.023444,126.670868,110.628786,996.265633,637.676431,512.362247,478.757410,699.687492,789.600222,588.242984,563.055807,604.256157,534.584886,491.545396,696.719631,680.224027,626.026973,585.455938,-0.000418,497.226043,-0.002505,164.308298,-44.181804,418.481641,1783.466410,167.931128,106.547948,-23.301907,489.913616,1582.824246,-6.736446,4.000000,3.500000,4.500000,1.980383,2.189422,1.596526,3.995685,1.997719,1.882150,5.982791,4.093194,2.592614,7.489676,6.495240,4.383965,9.653043,4.202369,7.200675,9.653066,4.202663,7.201048,-0.000295,-0.000032,-0.001015,0.000307,0.000481,-0.000292,-2.070000,-6.540000,6.130000,-2.070162,-6.523391,6.134559,-0.013010,-0.049047,-0.017964,0.111954,0.070067,-0.047745,-0.013146,-0.049199,-0.018087,0.112533,0.070457,-0.048052,0.006779,0.113066,0.070020,-0.014806,-0.044226,-0.020289,0.102162,0.063307,-0.039862,-0.014947,-0.044355,-0.020427,0.102685,0.063650,-0.040105,-0.012027,-0.045340,-0.016606,0.103493,0.064771,-0.044137,-0.012154,-0.045479,-0.016724,0.104024,0.065123,-0.044408,0.000534,0.001085,-0.002053,0.000472,0.000335,-0.000128,4.001695,1.902709,0.995121,3.497199,4.499100,2.500838,4.001661,1.900104,0.999791,3.509488,4.502991,2.500216,4.001719,1.902373,4.002936,1.902940,1.000908,3.523959,4.530047,2.504854,0.996435,3.502550,4.501491,2.500922,-0.000273,-0.000019,-0.000963,0.000298,0.000466,-0.000274,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000,4.001683,1.902333,0.996486,3.502490,4.501450,2.500893,4.001667,1.902666,0.995194,3.497271,4.499118,2.500817,4.001609,1.902249,0.996589,3.502366,4.501366,2.500833,4.001611,1.902579,0.995343,3.497420,4.499157,2.500773,-0.000224,0.000008,-0.000827,0.000263,0.000411,-0.000227,-0.000181,0.000020,-0.000689,0.000215,0.000329,-0.000180,-0.000000,-0.000000,-0.000000,-0.000054,0.000020,-0.000025,-0.000032,-0.000033,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000005,7.720603,2.074854,1.408425,3.978457,3.991670,2.510202,7.720719,2.074926,1.408656,3.978431,3.991648,2.510280,7.728918,2.083081,1.410576,3.979482,3.992732,2.509886,7.729016,2.083145,-0.170984,-0.178255,-0.033604,-0.020552,-0.007311,0.009962,1.410796,3.979448,3.992689,2.509962,7.730422,2.083833,1.411516,3.979858,3.993865,2.510638,4.172922,121.088372,59.099774,14.416920,284.950864,257.675859,82.550636,145.993070,67.353306,16.801066,288.877531,262.902282,88.232399,140.455685,267.658451,798.865758,1338.024459,126.670561,110.628305,996.265925,566.996671,267.658156,798.865726,1338.023444,126.670868,110.628786,996.265633,566.996550,637.676431,512.362247,478.757410,699.687492,789.600222,588.242984,727.364105,518.874003,981.537448,2346.522217,730.986935,563.055807,563.055807,604.256157,534.584886,491.545396,696.719631,680.224027,626.026973,585.458442,749.764236,541.274134,1003.937578,2368.922348,753.387065,585.455938,585.455938,581.371775,451.521919,964.737443,2057.648072,468.087380,474.823826,474.823826,581.371035,451.520697,-0.000740,-0.001222,-0.001061,-0.003386,-0.002727,-0.000418,-0.000418,0.000355,964.736382,2057.644686,468.084653,474.823408,474.823408,603.773670,473.923332,987.139017,2080.047321,490.487288,497.226043,497.226043,603.771165,473.920827,-0.002505,-0.002505,-0.002505,-0.002505,-0.002505,-0.002505,-0.002505,0.001343,987.136512,2080.044816,490.484784,497.223539,497.223539,1.982702,2.194015,1.588506,3.996201,1.998324,1.881993,1.983309,2.194911,0.000608,0.000897,0.000821,-0.002617,-0.001272,0.000814,1.589327,3.993584,1.997051,1.882807,164.308298,-44.181804,418.481641,1783.466410,167.931128,106.547948,-23.301907,489.913616,1582.824246,-6.736446,106.547627,-23.302712,106.549256,-23.302690,489.912970,1582.848498,-6.721889,-0.000322,-0.000804,-0.000643,-0.002968,-0.002309,489.912973,1582.821278,-6.738755,4.001925,1.900122,0.999806,3.510822,4.503417,2.500265,4.001930,1.902603,4.011117,1.904588,0.997983,3.627707,4.579799,2.502926,2.502926,4.003522,1.903637,1.001452,3.527514,4.534604,2.506206,0.996157,3.502906,4.016970,1.910441,1.003836,3.633560,4.585652,2.508780,2.508780,4.501733,2.501096,4.000000,1.900000,1.000000,3.500000,4.500000,2.500000,4.001851,1.902946,0.994713,3.496780,4.498991,2.500966,4.001754,1.902800,0.994963,3.497039,4.499058,2.500886,4.001760,1.900111,0.999796,3.509994,4.503153,2.500235,4.001798,1.902461,4.010175,1.904180,0.997896,3.617937,4.573626,2.502574,2.502574,0.001798,0.002461,-0.003673,0.002684,0.001582,0.000988,4.003161,1.903208,1.001117,3.525302,4.531780,2.505377,0.996327,3.502684,4.015190,1.909196,1.002911,3.622953,4.578641,2.507590,2.507590,4.501582,0.008376,0.001719,0.001568,0.115254,0.072043,0.001586,0.001586,0.012161,0.005504,0.005353,0.119039,0.037599,0.021420,0.016180,0.075828,0.005371,0.005371,0.013392,0.006734,0.006584,0.120269,0.077059,0.006601,0.006601,2.500988,0.000079,-0.000343,0.001444,0.006126,0.002741,0.000130,-122.069554,-148.027137,372.647491,1532.486210,-115.548046,-303.720846,-122.068836,-148.026461,0.000718,0.000676,0.000133,-0.002431,-0.001678,0.001410,372.647623,1532.483779,-115.549724,-303.719435,-77.046955,-130.571484,392.201677,1548.995630,-93.746675,-318.149102,-77.046350,-130.570779,0.000605,0.000706,0.000025,-0.002507,-0.001740,0.001538,392.201702,1548.993123,-93.748415,-318.147564,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,-0.000000,-0.000000,0.000000,0.000002,0.000000,-0.000000,0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,-0.000000,0.000000,0.000000,-0.000000,-0.000000,-0.000000,1.981273,2.191173,1.593452,3.995884,1.997988,1.882100,1.981944,2.192170,1.594359,3.992915,1.996535,1.883011,1.980383,2.189422,1.596526,3.995685,1.997719,1.882150,1.981096,2.190485,1.597493,3.992476,1.996141,1.883127,5.982791,4.093194,0.002408,0.003772,-0.003912,-0.006009,-0.002479,0.001816,2.592614,7.489676,6.495240,5.982791,4.093194,2.592614,7.489676,6.495240,4.383965,4.383965,9.653043,4.202369,7.200675,9.653066,-0.000022,-0.000294,-0.000372,0.000056,0.000000,0.000000,4.202663,7.201048,-0.000295,-0.000032,-0.001015,0.000307,0.000481,-0.000292,-0.000121,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,65.681441,0.015225,0.642867,1.555533,0.009788,102.169627,55653977.069576,0.000000,5.171087,0.193383,5.361862,0.186502,134.172962,0.007453,0.792132,1.262416,0.005904,169.382056,7483512.127322,0.000000,2.902221,0.344564,0.934833,1.069710,21219.147816,2947.337749,647092.540487,14.535363,3.549141,3.023101,2.532525,1.920674,1.001307,3.564750,4.082949,4.604441,2.532636,1.920818,1.001135,3.564980,4.083086,4.604599,2.532421,1.921019,0.999929,3.558904,4.082903,4.601800,2.532502,1.921168,0.999677,3.558636,4.083004,4.601731,2.537025,1.921434,1.006145,3.588178,4.084368,4.636034,2.537876,1.921872,1.006484,3.590468,4.084743,4.638989,2.531753,1.918278,1.004810,3.572321,4.082909,4.606084,2.531784,1.918289,1.004821,3.573179,4.083081,4.606361,2.541727,2.104994,1.420795,4.059689,8.035551,4.073468,4.478475,2.542053,2.096602,1.418624,4.058630,8.026587,4.072385,4.473984,2.541649,2.104929,1.420571,4.059724,8.035445,4.073513,4.478410,2.541972,2.096528,1.418390,4.058657,8.026462,4.072408,4.473906,-0.048040,-0.049187,-0.018085,0.112596,-0.013145,0.070482,-0.044398,-0.045469,-0.016723,0.104078,-0.012153,0.065144,0.000977,0.001063,0.000967,0.000713,-0.003208,-0.001578,166.877007,144.494404,118.179499,213.029339,223.343793,253.967880
diff --git a/tests/reporting/runDynareReport.m b/tests/reporting/runDynareReport.m
index 6bbcf390d866a50e976da61f41ee18997061418d..5a08c73d6392b466a7970abcec2769d7cb0a2ed3 100644
--- a/tests/reporting/runDynareReport.m
+++ b/tests/reporting/runDynareReport.m
@@ -1,5 +1,5 @@
 function runDynareReport(dc_a, dc_q, db_a, db_q)
-% Copyright (C) 2013 Dynare Team
+% Copyright (C) 2013-2014 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -16,14 +16,17 @@ function runDynareReport(dc_a, dc_q, db_a, db_q)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-
-larange= dynDate('2007'):dynDate('2014');
-arange = dynDate('2012'):dynDate('2014');
-trange = dynDate('2012q2'):dynDate('2014q4');
-prange = dynDate('2007q1'):dynDate('2013q4');
-forecast_date = dynDate('2012q2');
+tic
+larange= dates('2007a'):dates('2014a');
+trange = dates('2012q2'):dates('2014q4');
+prange = dates('2007q1'):dates('2013q4');
+forecast_date = dates('2012q2');
 srange = forecast_date:prange(end);
 
+startpoint = strings(prange(1));
+shaded = strings(srange(1));
+endpoint = strings(prange(end));
+
 shortNames = {'US', 'EU', 'JA', 'EA6', 'LA6', 'RC6'};
 longNames  = {'Coca Cola', 'Kinder Bueno', 'Pizza', ...
               'Vegetarianism Is Good', 'OS X', 'Dothraki'};
@@ -39,14 +42,15 @@ rep = rep.addSection();
 rep = rep.addVspace();
 
 % Table 1
-rep = rep.addTable('title', 'Real GDP Growth', 'range', larange, ...
-                   'vlineAfter', dynDate('2011'));
+rep = rep.addTable('title', {'Real GDP Growth','subtitle 1', 'subtitle 2'}, ...
+                   'range', larange, ...
+                   'vlineAfter', dates('2011y'));
 rep = AnnualTable(rep, db_a, dc_a, 'PCH_GROWTH4_', larange);
 rep = rep.addVspace('number', 2);
 
 % Table 2
 rep = rep.addTable('title', 'Potential GDP Growth', 'range', larange, ...
-                   'vlineAfter', dynDate('2011'));
+                   'vlineAfter', dates('2011y'));
 rep = AnnualTable(rep, db_a, dc_a, 'PCH_GROWTH4_BAR_', larange);
 
 
@@ -58,13 +62,13 @@ rep = rep.addVspace();
 
 % Table 1
 rep = rep.addTable('title', 'Headline CPI Inflation', 'range', larange, ...
-                   'vlineAfter', dynDate('2011'));
+                   'vlineAfter', dates('2011y'));
 rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_', larange);
 rep = rep.addVspace('number', 2);
 
 % Table 2
 rep = rep.addTable('title', 'Core CPI Inflation', 'range', larange, ...
-                   'vlineAfter', dynDate('2011'));
+                   'vlineAfter', dates('2011y'));
 rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIEX4_', larange);
 
 
@@ -76,13 +80,13 @@ rep = rep.addVspace();
 
 % Table 1
 rep = rep.addTable('title', 'Gas Inflation', 'range', larange, ...
-                   'vlineAfter', dynDate('2011'));
+                   'vlineAfter', dates('2011y'));
 rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_GAS_', larange);
 rep = rep.addVspace('number', 2);
 
 % Table 2
 rep = rep.addTable('title', 'Food Inflation', 'range', larange, ...
-                   'vlineAfter', dynDate('2011'));
+                   'vlineAfter', dates('2011y'));
 rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_CONSFOOD_', larange);
 
 
@@ -94,13 +98,13 @@ rep = rep.addVspace();
 
 % Table 1
 rep = rep.addTable('title', 'Nominal Interest Rate', 'range', larange, ...
-                   'vlineAfter', dynDate('2011'));
+                   'vlineAfter', dates('2011y'));
 rep = AnnualTable(rep, db_a, dc_a, 'RS_', larange);
 rep = rep.addVspace('number', 2);
 
 % Table 2
 rep = rep.addTable('title', 'Output Gap', 'range', larange, ...
-                   'vlineAfter', dynDate('2011'));
+                   'vlineAfter', dates('2011y'));
 db_a = db_a.tex_rename('Y_WORLD', 'World');
 rep = rep.addSeries('data', db_a{'Y_WORLD'});
 delta = db_a{'Y_WORLD'}-dc_a{'Y_WORLD'};
@@ -114,13 +118,14 @@ rep = AnnualTable(rep, db_a, dc_a, 'Y_', larange);
 for i=1:length(shortNames)
     rep = rep.addPage('title', {'Jan1 vs Jan2', longNames{i}}, ...
                       'titleFormat', {'\large\bfseries', '\large'});
-    rep = rep.addSection('cols', 2);
+    rep = rep.addSection('cols', 5);
     rep = CountryGraphPage(rep, shortNames{i}, db_q, dc_q, prange, srange);
 
     rep = rep.addPage('title', 'Jan1 vs Jan2', ...
                       'titleFormat', '\large\bfseries');
     rep = rep.addSection();
-    rep = CountryTablePage(rep, shortNames{i}, longNames{i}, db_q, dc_q, trange, dynDate('2012q2'));
+    rep = CountryTablePage(rep, shortNames{i}, longNames{i}, db_q, dc_q, ...
+                           db_a, dc_a, trange, dates('2012q2'));
 end
 
 %% Residual Reports
@@ -129,48 +134,55 @@ for i=1:length(shortNames)
     rep = rep.addPage('title', 'Residual Report Jan1 vs Jan2', ...
                       'titleFormat', '\large\bfseries');
     rep = rep.addSection();
-    rep = ResidTablePage(rep, shortNames{i}, longNames{i}, db_q, dc_q, trange, dynDate('2012q2'));
+    rep = ResidTablePage(rep, shortNames{i}, longNames{i}, db_q, dc_q, trange, dates('2012q2'));
 end
 
 % Commodities
 rep = rep.addPage('title', 'Residual Report Jan1 vs Jan2', ...
                   'titleFormat', '\large\bfseries');
 rep = rep.addSection();
-rep = CommResidTablePage(rep, db_q, dc_q, trange, dynDate('2012q2'));
+rep = CommResidTablePage(rep, db_q, dc_q, trange, dates('2012q2'));
 
 %% Commodities Graphs
 %Page 1
 rep = rep.addPage('title', 'Jan1 vs Jan2', ...
                   'titleFormat', '\large\bfseries');
-rep = rep.addSection('height', '60mm');
+rep = rep.addSection();
 
-rep = rep.addGraph('title', 'World Real Oil Price Index', ...
+rep = rep.addGraph('title', {'World Real Oil Price Index','SUBTITLE'}, ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showLegend', true);
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 db_q = db_q.tex_rename('LRPOIL_WORLD', 'Oil Price');
 rep = rep.addSeries('data', db_q{'LRPOIL_WORLD'}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineWidth', 1.5);
+                    'graphLineColor', 'blue', ...
+                    'graphLineWidth', 1.5, ...
+                    'graphMarker', 'triangle*', ...
+                    'graphMarkerEdgeColor','black', ...
+                    'graphMarkerSize',4);
 db_q = db_q.tex_rename('LRPOIL_BAR_WORLD', 'Equilibrium Oil Price');
 rep = rep.addSeries('data', db_q{'LRPOIL_BAR_WORLD'}, ...
-                    'graphLineColor', 'g', ...
-                    'graphLineStyle', '-', ...
+                    'graphLineColor', 'green', ...
+                    'graphLineStyle', 'solid', ...
                     'graphLineWidth', 1.5);
 
 
 rep = rep.addGraph('title', 'World Real Food Price Index', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showLegend', true);
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 db_q = db_q.tex_rename('LRPFOOD_WORLD', 'Food Price');
 rep = rep.addSeries('data', db_q{'LRPFOOD_WORLD'}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 db_q = db_q.tex_rename('LRPFOOD_BAR_WORLD', 'Equilibrium Food Price');
 rep = rep.addSeries('data', db_q{'LRPFOOD_BAR_WORLD'}, ...
-                    'graphLineColor', 'g', ...
-                    'graphLineStyle', '-', ...
+                    'graphLineColor', 'green', ...
+                    'graphLineStyle', 'solid', ...
                     'graphLineWidth', 1.5);
 
 % Pae 2
@@ -182,52 +194,59 @@ rep = rep.addSection('cols', 2);
 rep = rep.addGraph('title', 'World Real Oil Price', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showLegend', true);
+                   'xTicks', [1,5,10,15,find(srange(1)==prange),length(prange)], ...
+                   'xTickLabels',{startpoint{:},'2008Q1','2009Q2','2010Q3',shaded{:}, endpoint{:}},...
+                   'xTickLabelRotation', 0);
 rep = rep.addSeries('data', db_q{'LRPOIL_WORLD'}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{'LRPOIL_WORLD'}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 
+srange1 = prange(1):forecast_date;
 rep = rep.addGraph('title', 'Equilibrium World Real Oil Price', ...
                    'xrange', prange, ...
-                   'shade', srange, ...
-                   'showLegend', true);
+                   'shade', srange1);
 rep = rep.addSeries('data', db_q{'LRPOIL_BAR_WORLD'}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{'LRPOIL_BAR_WORLD'}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 
 rep = rep.addGraph('title', 'World Real Food Price', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showLegend', true);
+                   'xTickLabels','ALL',...
+                   'xTickLabelRotation', 45,...
+                   'xAxisTight',false,...
+                   'yAxisTight',true);
 rep = rep.addSeries('data', db_q{'LRPFOOD_WORLD'}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{'LRPFOOD_WORLD'}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 
 rep = rep.addGraph('title', 'Equilibrium World Real Food Price', ...
                    'xrange', prange, ...
                    'shade', srange, ...
-                   'showLegend', true);
+                   'showLegend', true, ...
+                   'xTickLabelRotation', 0);
 rep = rep.addSeries('data', db_q{'LRPFOOD_BAR_WORLD'}, ...
-                    'graphLineColor', 'b', ...
+                    'graphLineColor', 'blue', ...
                     'graphLineWidth', 1.5);
 rep = rep.addSeries('data', dc_q{'LRPFOOD_BAR_WORLD'}, ...
-                    'graphLineColor', 'b', ...
-                    'graphLineStyle', '--', ...
+                    'graphLineColor', 'blue', ...
+                    'graphLineStyle', 'dashed', ...
                     'graphLineWidth', 1.5);
 
 %% Write & Compile Report
 rep.write();
 rep.compile();
+toc
 end
\ No newline at end of file
diff --git a/tests/run_all_unitary_tests.m b/tests/run_all_unitary_tests.m
new file mode 100644
index 0000000000000000000000000000000000000000..8707a8c810545e097ee25af6022910b1f14767f9
--- /dev/null
+++ b/tests/run_all_unitary_tests.m
@@ -0,0 +1,47 @@
+top_test_dir = getenv('TOP_TEST_DIR');
+addpath(top_test_dir);
+addpath([top_test_dir filesep '..' filesep 'matlab']);
+dynare_config([], 0);
+
+% Test Dynare Version
+if ~strcmp(dynare_version(), getenv('DYNARE_VERSION'))
+    error('Incorrect version of Dynare is being tested')
+end
+
+mlist = get_directory_description('../matlab');
+
+failedtests = {};
+
+counter = 0;
+
+for i = 1:length(mlist)
+    f = [top_test_dir filesep mlist{i} ];
+    if is_unitary_test_available(f)
+        [check, info] = mtest(f);
+        for j = 1:size(info, 1)
+            counter = counter + 1;
+            if ~info{j,3}
+                failedtests{length(failedtests)+1} = [ mlist{i} '#' num2str(info{j,2}) ];
+            end
+        end
+    end
+end
+
+cd(getenv('TOP_TEST_DIR'));
+if isoctave
+    fid = fopen('run_all_unitary_tests.o.trs', 'w+');
+else
+    fid = fopen('run_all_unitary_tests.m.trs', 'w+');
+end
+if length(failedtests) > 0
+  fprintf(fid,':test-result: FAIL\n');
+  fprintf(fid,':number-tests: %d\n', counter);
+  fprintf(fid,':number-failed-tests: %d\n', length(failedtests));
+  fprintf(fid,':list-of-failed-tests: %s\n', failedtests{:});
+else
+  fprintf(fid,':test-result: PASS\n');
+  fprintf(fid,':number-tests: %d\n', counter);
+  fprintf(fid,':number-failed-tests: 0\n');
+end
+fclose(fid);
+exit
diff --git a/tests/run_reporting_test_matlab.m b/tests/run_reporting_test_matlab.m
index 84958b4cf9ca60b8efc969ecd51ac09c55132377..4cd152fd6db6adbd3f020f693644266ebc58cd8a 100644
--- a/tests/run_reporting_test_matlab.m
+++ b/tests/run_reporting_test_matlab.m
@@ -34,10 +34,10 @@ disp('');
 disp(['***  TESTING: run_reporting_test_matlab.m ***']);
 try
     cd([top_test_dir filesep 'reporting']);
-    db_a = dynSeries('db_a.csv');
-    db_q = dynSeries('db_q.csv');
-    dc_a = dynSeries('dc_a.csv');
-    dc_q = dynSeries('dc_q.csv');
+    db_a = dseries('db_a.csv');
+    db_q = dseries('db_q.csv');
+    dc_a = dseries('dc_a.csv');
+    dc_q = dseries('dc_q.csv');
     runDynareReport(dc_a, dc_q, db_a, db_q);
     testFailed = false;
 catch
diff --git a/tests/run_reporting_test_octave.m b/tests/run_reporting_test_octave.m
index f255ef156a21eea2668b3a3ef002b4baf751c098..6c37f87186cf76540737617749f87039bf6d8cb9 100644
--- a/tests/run_reporting_test_octave.m
+++ b/tests/run_reporting_test_octave.m
@@ -38,10 +38,10 @@ end
 printf("\n***  TESTING:  run_reporting_test_octave.m ***\n");
 try
     cd([top_test_dir filesep 'reporting']);
-    db_a = dynSeries('db_a.csv');
-    db_q = dynSeries('db_q.csv');
-    dc_a = dynSeries('dc_a.csv');
-    dc_q = dynSeries('dc_q.csv');
+    db_a = dseries('db_a.csv');
+    db_q = dseries('db_q.csv');
+    dc_a = dseries('dc_a.csv');
+    dc_q = dseries('dc_q.csv');
     runDynareReport(dc_a, dc_q, db_a, db_q);
     testFailed = false;
 catch
diff --git a/tests/smoother2histval/fs2000_simul.mod b/tests/smoother2histval/fs2000_simul.mod
new file mode 100644
index 0000000000000000000000000000000000000000..3dcfc5f607ad3c37a11f092d37c75ff61a764b13
--- /dev/null
+++ b/tests/smoother2histval/fs2000_simul.mod
@@ -0,0 +1,60 @@
+// Test that histval_file works
+// Note that an observation equation has been modified in order to have an aux var for lagged endo
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a(-1)));
+gy_obs = dA*y/y(-2);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+histval_file(filename = 'fs2000_histval.mat');
+
+simul(periods = 30);
diff --git a/tests/smoother2histval/fs2000_smooth.mod b/tests/smoother2histval/fs2000_smooth.mod
new file mode 100644
index 0000000000000000000000000000000000000000..5f2931f289dd47e5659372a8a1fe05c0509cafe5
--- /dev/null
+++ b/tests/smoother2histval/fs2000_smooth.mod
@@ -0,0 +1,78 @@
+// Test that smoother2histval works (with an outfile)
+// Note that an observation equation has been modified in order to have an aux var for lagged endo
+
+var m P c e W R k d n l gy_obs gp_obs y dA;
+varexo e_a e_m;
+
+parameters alp bet gam mst rho psi del;
+
+alp = 0.33;
+bet = 0.99;
+gam = 0.003;
+mst = 1.011;
+rho = 0.7;
+psi = 0.787;
+del = 0.02;
+
+model;
+dA = exp(gam+e_a);
+log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
+-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
+W = l/n;
+-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
+R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
+1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
+c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
+P*c = m;
+m-1+d = l;
+e = exp(e_a);
+y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a(-1)));
+gy_obs = dA*y/y(-2);
+gp_obs = (P/P(-1))*m(-1)/dA;
+end;
+
+initval;
+k = 6;
+m = mst;
+P = 2.25;
+c = 0.45;
+e = 1;
+W = 4;
+R = 1.02;
+d = 0.85;
+n = 0.19;
+l = 0.86;
+y = 0.6;
+gy_obs = exp(gam);
+gp_obs = exp(-gam);
+dA = exp(gam);
+end;
+
+shocks;
+var e_a; stderr 0.014;
+var e_m; stderr 0.005;
+end;
+
+steady;
+
+check;
+
+estimated_params;
+alp, beta_pdf, 0.356, 0.02;
+bet, beta_pdf, 0.993, 0.002;
+gam, normal_pdf, 0.0085, 0.003;
+mst, normal_pdf, 1.0002, 0.007;
+rho, beta_pdf, 0.129, 0.223;
+psi, beta_pdf, 0.65, 0.05;
+del, beta_pdf, 0.01, 0.005;
+stderr e_a, inv_gamma_pdf, 0.035449, inf;
+stderr e_m, inv_gamma_pdf, 0.008862, inf;
+end;
+
+varobs gp_obs gy_obs;
+
+options_.solve_tolf = 1e-12;
+
+estimation(order=1,datafile=fsdat_simul,nobs=192,mh_replic=1500,mh_nblocks=1,mh_jscale=0.8,smoother,consider_all_endogenous);
+
+smoother2histval(period = 5, outfile = 'fs2000_histval.mat');
diff --git a/tests/smoother2histval/fsdat_simul.m b/tests/smoother2histval/fsdat_simul.m
new file mode 100644
index 0000000000000000000000000000000000000000..face0f579b63c4363107e7403a3edf416f31e3f6
--- /dev/null
+++ b/tests/smoother2histval/fsdat_simul.m
@@ -0,0 +1,390 @@
+gp_obs = [
+      1.0193403
+      1.0345762
+      1.0011701
+      1.0147224
+       1.008392
+      1.0488327
+      1.0153551
+      1.0099775
+      1.0260561
+      1.0172218
+      1.0014374
+      1.0184572
+      1.0179988
+      1.0060339
+      1.0019536
+     0.99179578
+       1.004346
+      1.0345153
+      1.0004432
+     0.98327074
+      1.0007585
+      1.0034378
+       1.010532
+      1.0121367
+      1.0097161
+      1.0166682
+      1.0089513
+      1.0194821
+      1.0192704
+      1.0220258
+       1.020915
+      1.0176156
+      1.0040708
+      1.0157694
+      1.0357484
+      1.0256259
+      1.0240583
+      1.0095152
+      1.0241605
+      1.0115295
+       1.003636
+      1.0222399
+      1.0250969
+      1.0068969
+      1.0009829
+      1.0166179
+      1.0252018
+      1.0211178
+     0.99867851
+     0.99594002
+      0.9908135
+     0.99762919
+     0.99616309
+      1.0058679
+     0.99323315
+      1.0132879
+     0.98718922
+     0.99739822
+     0.97858594
+     0.99128769
+     0.98624299
+     0.98447966
+      1.0013312
+     0.99189504
+     0.98032699
+     0.99332035
+      1.0129565
+      1.0007785
+      1.0218292
+      1.0030419
+      1.0044453
+      1.0156181
+      1.0040112
+      1.0081137
+      1.0261598
+      1.0053686
+      1.0024674
+     0.99883223
+      1.0224791
+      1.0074723
+      1.0037807
+      1.0348866
+      1.0053664
+      1.0140072
+       1.017359
+      1.0013916
+       1.017887
+       1.008987
+       1.011771
+      1.0201455
+      1.0249464
+      1.0159166
+      1.0162718
+      1.0312397
+      1.0108745
+      1.0132205
+      1.0142484
+      1.0178907
+      1.0065039
+      1.0190304
+      1.0034406
+      1.0053556
+       1.012823
+      1.0009983
+      1.0073148
+      1.0247254
+      1.0140215
+      1.0053603
+       1.006169
+       0.994725
+       1.026685
+      1.0012279
+      1.0160733
+      1.0119851
+      1.0148392
+     0.99760076
+      1.0070377
+      1.0066215
+     0.98130614
+      1.0127043
+      1.0203824
+      1.0067477
+     0.99510728
+      1.0188472
+      1.0100108
+      1.0146874
+      1.0118012
+      1.0111904
+     0.97759194
+     0.99081872
+     0.98425915
+      1.0026496
+     0.98587189
+     0.98648329
+      1.0035766
+      1.0094743
+     0.99460644
+      0.9953724
+      1.0194433
+      1.0065039
+      1.0056522
+      1.0160367
+       1.006524
+      1.0092492
+      0.9864426
+     0.98723638
+      0.9994522
+      1.0026778
+      1.0255529
+      1.0030477
+     0.99411719
+      1.0045087
+     0.99375289
+      1.0017609
+      1.0039766
+     0.99976299
+      1.0155671
+      1.0192975
+      1.0135507
+      1.0099869
+      1.0125994
+      1.0050808
+      1.0088531
+      1.0135256
+      1.0322097
+      1.0065808
+     0.99857526
+      1.0008792
+      0.9997691
+        1.02875
+      1.0177818
+      1.0150152
+       1.026416
+      1.0209804
+       1.010633
+       1.009636
+      1.0028257
+      0.9896666
+      1.0094002
+     0.99958414
+      1.0077797
+     0.98933606
+      1.0014885
+     0.99875283
+       1.005051
+       1.016385
+      1.0116282
+     0.99774103
+      1.0101802
+      1.0281101
+      1.0024654
+      1.0174549
+];
+
+gy_obs = [
+      1.0114349
+     0.95979862
+      1.0203958
+      1.0071401
+      1.0539221
+     0.95944922
+      1.0051974
+      1.0354593
+     0.98747321
+        1.02788
+      1.0112772
+      1.0052673
+      1.0104239
+       1.013491
+      1.0066127
+      1.0173802
+     0.98273662
+     0.95581791
+      1.0353011
+      1.0346887
+      0.9785853
+      1.0039954
+     0.99275146
+      1.0031733
+      1.0276747
+       0.978159
+     0.98248359
+      1.0192328
+     0.99057865
+     0.99776689
+     0.98890201
+      1.0163644
+      1.0300873
+     0.96109456
+     0.98850646
+      1.0115635
+      1.0010548
+     0.98951687
+     0.98151347
+      1.0106021
+      1.0310697
+       0.990769
+     0.97940286
+      1.0279158
+      1.0070844
+     0.97456591
+      1.0235486
+     0.99211813
+     0.99808011
+      1.0038972
+      1.0178385
+      1.0008656
+      1.0012176
+      1.0120603
+      1.0277974
+     0.95512181
+      1.0341867
+      1.0291133
+      1.0062875
+     0.99385308
+      1.0518127
+      1.0167908
+     0.97311489
+      1.0324251
+      1.0185255
+     0.98698556
+     0.97985038
+      1.0220522
+     0.98358428
+      1.0085008
+      1.0095106
+     0.96544852
+      1.0014508
+     0.99673838
+      0.9703847
+      1.0245765
+      1.0031506
+       1.009074
+     0.98601129
+     0.99799441
+      1.0078514
+     0.98192982
+      1.0371426
+     0.97563731
+     0.99473616
+     0.99510009
+     0.98135322
+      1.0224481
+     0.99779603
+     0.98590478
+     0.98366338
+     0.99767204
+      1.0208174
+     0.97633411
+      1.0138123
+      1.0032682
+     0.99039426
+      1.0087413
+      1.0285208
+     0.98783907
+      1.0007856
+      1.0265034
+     0.99713746
+      1.0032946
+      1.0027628
+     0.99316893
+     0.99241067
+     0.99845423
+      1.0057718
+       1.029354
+      0.9717329
+      1.0218727
+     0.98185255
+     0.99861261
+      1.0114349
+      1.0052126
+      0.9852852
+     0.99669175
+      1.0131849
+     0.99253202
+     0.98255644
+      1.0164264
+      1.0070027
+     0.99306997
+       1.004557
+     0.99064231
+      1.0100364
+     0.99857545
+      1.0365648
+      1.0323947
+     0.99584546
+     0.98641189
+      1.0200377
+      1.0167671
+     0.99615647
+      1.0067481
+      1.0201624
+      1.0012265
+     0.97564063
+      1.0141995
+      1.0260671
+     0.99697599
+      1.0127951
+     0.98922525
+      1.0268872
+      1.0048837
+      1.0124301
+      1.0020776
+     0.95526625
+     0.98592847
+      1.0303405
+       1.007508
+      1.0041718
+      1.0039668
+      1.0119603
+      1.0153073
+     0.99318888
+     0.96711969
+     0.99946578
+      1.0307262
+     0.97737468
+      1.0029169
+      1.0148043
+     0.97950296
+     0.97038701
+       1.010492
+      1.0087364
+     0.99717614
+      1.0375848
+     0.94419511
+     0.98325812
+      1.0350878
+     0.99049883
+     0.98795832
+      1.0191223
+      1.0148155
+     0.97941641
+      1.0395356
+      1.0005804
+     0.99178697
+      1.0024326
+      1.0312638
+      1.0100942
+     0.98526311
+      1.0029873
+      0.9836127
+     0.99747718
+      1.0193064
+     0.99270511
+     0.96646656
+      1.0575586
+     0.98945919
+];
+
diff --git a/tests/steady_state/example1_trust_region.mod b/tests/steady_state/example1_trust_region.mod
new file mode 100644
index 0000000000000000000000000000000000000000..a6ed9395b70be898bf12eded85ed65735b39c439
--- /dev/null
+++ b/tests/steady_state/example1_trust_region.mod
@@ -0,0 +1,46 @@
+// Test trust region nonlinear solver (solve_algo=4)
+var y, c, k, a, h, b;
+varexo e, u;
+
+parameters beta, rho, alpha, delta, theta, psi, tau;
+
+alpha = 0.36;
+rho   = 0.95;
+tau   = 0.025;
+beta  = 0.99;
+delta = 0.025;
+psi   = 0;
+theta = 2.95;
+
+phi   = 0.1;
+
+model;
+c*theta*h^(1+psi)=(1-alpha)*y;
+k = beta*(((exp(b)*c)/(exp(b(+1))*c(+1)))
+    *(exp(b(+1))*alpha*y(+1)+(1-delta)*k));
+y = exp(a)*(k(-1)^alpha)*(h^(1-alpha));
+k = exp(b)*(y-c)+(1-delta)*k(-1);
+a = rho*a(-1)+tau*b(-1) + e;
+b = tau*a(-1)+rho*b(-1) + u;
+end;
+
+initval;
+y = 1;
+c = 0.8;
+h = 0.3;
+k = 10;
+a = 0;
+b = 0;
+e = 0;
+u = 0;
+end;
+
+steady(solve_algo=4);
+
+shocks;
+var e; stderr 0.009;
+var u; stderr 0.009;
+var e, u = phi*0.009*0.009;
+end;
+
+stoch_simul(order=1,nomoments,irf=0);
diff --git a/windows/README.txt b/windows/README.txt
index bea713b7ca6c4e0b47dbd330e4fc730cd09b2ec8..02ee18ecf5201755c039cf2715c72c2e538277a9 100644
--- a/windows/README.txt
+++ b/windows/README.txt
@@ -25,7 +25,7 @@ NOTE: Dynare comes with an automated uninstaller, which you can run from the
 Using Dynare with MATLAB (R)
 ----------------------------
 
-Dynare requires MATLAB (R) version 7.3 (R2006b) or above. With older versions
+Dynare requires MATLAB (R) version 7.5 (R2007b) or above. With older versions
 of MATLAB (R), it may fail or give unexpected results.
 
 To use Dynare, you just have to add the 'matlab' subdirectory of your Dynare
diff --git a/windows/dynare.nsi b/windows/dynare.nsi
index bd17b0bfe598105e72928bd7489632dcf874b4bb..b88b4c067857b611d011c782473b854b3c302928 100644
--- a/windows/dynare.nsi
+++ b/windows/dynare.nsi
@@ -83,19 +83,9 @@ SectionEnd
 
 SectionGroup "MEX files for MATLAB"
 
-Section "MEX files for MATLAB 32-bit, version 7.3 to 7.4 (R2006b to R2007a)"
- SetOutPath $INSTDIR\mex\matlab\win32-7.3-7.4
- File ..\mex\matlab\win32-7.3-7.4\*.mexw32
-SectionEnd
-
-Section "MEX files for MATLAB 32-bit, version 7.5 to 8.1 (R2007b to R2013a)"
- SetOutPath $INSTDIR\mex\matlab\win32-7.5-8.1
- File ..\mex\matlab\win32-7.5-8.1\*.mexw32
-SectionEnd
-
-Section "MEX files for MATLAB 64-bit, version 7.3 to 7.4 (R2006b to R2007a)"
- SetOutPath $INSTDIR\mex\matlab\win64-7.3-7.4
- File ..\mex\matlab\win64-7.3-7.4\*.mexw64
+Section "MEX files for MATLAB 32-bit, version 7.5 to 8.3 (R2007b to R2014a)"
+ SetOutPath $INSTDIR\mex\matlab\win32-7.5-8.3
+ File ..\mex\matlab\win32-7.5-8.3\*.mexw32
 SectionEnd
 
 Section "MEX files for MATLAB 64-bit, version 7.5 to 7.7 (R2007b to R2008b)"
@@ -103,9 +93,9 @@ Section "MEX files for MATLAB 64-bit, version 7.5 to 7.7 (R2007b to R2008b)"
  File ..\mex\matlab\win64-7.5-7.7\*.mexw64
 SectionEnd
 
-Section "MEX files for MATLAB 64-bit, version 7.8 to 8.1 (R2009a to R2013a)"
- SetOutPath $INSTDIR\mex\matlab\win64-7.8-8.1
- File ..\mex\matlab\win64-7.8-8.1\*.mexw64
+Section "MEX files for MATLAB 64-bit, version 7.8 to 8.3 (R2009a to R2014a)"
+ SetOutPath $INSTDIR\mex\matlab\win64-7.8-8.3
+ File ..\mex\matlab\win64-7.8-8.3\*.mexw64
 SectionEnd
 
 SectionGroupEnd