changeset 9892:8ad402be2313 octave-forge

main/quaternion --> extra/quaternion-legacy, extra/quaternion_oo --> main/quaternion
author paramaniac
date Wed, 28 Mar 2012 03:16:58 +0000
parents d6803a233b2b
children 0ed233a0d08c
files extra/quaternion-legacy/COPYING extra/quaternion-legacy/DESCRIPTION extra/quaternion-legacy/doc/quaternion.ps extra/quaternion-legacy/inst/demoquat.m extra/quaternion-legacy/inst/qconj.m extra/quaternion-legacy/inst/qcoordinate_plot.m extra/quaternion-legacy/inst/qderiv.m extra/quaternion-legacy/inst/qderivmat.m extra/quaternion-legacy/inst/qinv.m extra/quaternion-legacy/inst/qmult.m extra/quaternion-legacy/inst/qtrans.m extra/quaternion-legacy/inst/qtransv.m extra/quaternion-legacy/inst/qtransvmat.m extra/quaternion-legacy/inst/quaternion.m extra/quaternion_oo/COPYING extra/quaternion_oo/DESCRIPTION extra/quaternion_oo/INDEX extra/quaternion_oo/Makefile extra/quaternion_oo/NEWS extra/quaternion_oo/devel/INFO extra/quaternion_oo/devel/PROJECTS extra/quaternion_oo/devel/RELEASE_PACKAGE extra/quaternion_oo/devel/RV9_Quaternions.txt extra/quaternion_oo/devel/Report_Basile_Graf.pdf extra/quaternion_oo/devel/demoml.m extra/quaternion_oo/devel/generate_quaternion_pdf.m extra/quaternion_oo/devel/makefile_quaternion.m extra/quaternion_oo/devel/pdfdoc/collect_texinfo_strings.m extra/quaternion_oo/devel/pdfdoc/info_generate_manual.txt extra/quaternion_oo/devel/pdfdoc/quaternion.tex extra/quaternion_oo/devel/q0.m extra/quaternion_oo/devel/q1.m extra/quaternion_oo/devel/q2.m extra/quaternion_oo/devel/q3.m extra/quaternion_oo/devel/q4.m extra/quaternion_oo/devel/q_2x2.m extra/quaternion_oo/devel/q_2x3.m extra/quaternion_oo/devel/qbug.m extra/quaternion_oo/devel/quat.pdf extra/quaternion_oo/devel/quaternion.ps extra/quaternion_oo/devel/quaternion_arrays.m extra/quaternion_oo/doc/quaternion.pdf extra/quaternion_oo/inst/@quaternion/abs.m extra/quaternion_oo/inst/@quaternion/blkdiag.m extra/quaternion_oo/inst/@quaternion/cat.m extra/quaternion_oo/inst/@quaternion/columns.m extra/quaternion_oo/inst/@quaternion/conj.m extra/quaternion_oo/inst/@quaternion/ctranspose.m extra/quaternion_oo/inst/@quaternion/diag.m extra/quaternion_oo/inst/@quaternion/diff.m extra/quaternion_oo/inst/@quaternion/display.m extra/quaternion_oo/inst/@quaternion/eq.m extra/quaternion_oo/inst/@quaternion/exp.m extra/quaternion_oo/inst/@quaternion/horzcat.m extra/quaternion_oo/inst/@quaternion/inv.m extra/quaternion_oo/inst/@quaternion/ispure.m extra/quaternion_oo/inst/@quaternion/ldivide.m extra/quaternion_oo/inst/@quaternion/log.m extra/quaternion_oo/inst/@quaternion/minus.m extra/quaternion_oo/inst/@quaternion/mldivide.m extra/quaternion_oo/inst/@quaternion/mpower.m extra/quaternion_oo/inst/@quaternion/mrdivide.m extra/quaternion_oo/inst/@quaternion/mtimes.m extra/quaternion_oo/inst/@quaternion/norm.m extra/quaternion_oo/inst/@quaternion/plus.m extra/quaternion_oo/inst/@quaternion/power.m extra/quaternion_oo/inst/@quaternion/private/norm2.m extra/quaternion_oo/inst/@quaternion/private/normv.m extra/quaternion_oo/inst/@quaternion/quaternion.m extra/quaternion_oo/inst/@quaternion/rdivide.m extra/quaternion_oo/inst/@quaternion/rows.m extra/quaternion_oo/inst/@quaternion/size.m extra/quaternion_oo/inst/@quaternion/subsasgn.m extra/quaternion_oo/inst/@quaternion/subsref.m extra/quaternion_oo/inst/@quaternion/times.m extra/quaternion_oo/inst/@quaternion/transpose.m extra/quaternion_oo/inst/@quaternion/uminus.m extra/quaternion_oo/inst/@quaternion/unit.m extra/quaternion_oo/inst/@quaternion/uplus.m extra/quaternion_oo/inst/@quaternion/vertcat.m extra/quaternion_oo/inst/q2rot.m extra/quaternion_oo/inst/qi.m extra/quaternion_oo/inst/qj.m extra/quaternion_oo/inst/qk.m extra/quaternion_oo/inst/rot2q.m extra/quaternion_oo/inst/test_quaternion.m extra/quaternion_oo/src/Makefile extra/quaternion_oo/src/is_real_array.cc main/quaternion/COPYING main/quaternion/DESCRIPTION main/quaternion/INDEX main/quaternion/Makefile main/quaternion/NEWS main/quaternion/devel/INFO main/quaternion/devel/PROJECTS main/quaternion/devel/RELEASE_PACKAGE main/quaternion/devel/RV9_Quaternions.txt main/quaternion/devel/Report_Basile_Graf.pdf main/quaternion/devel/demoml.m main/quaternion/devel/generate_quaternion_pdf.m main/quaternion/devel/makefile_quaternion.m main/quaternion/devel/pdfdoc/collect_texinfo_strings.m main/quaternion/devel/pdfdoc/info_generate_manual.txt main/quaternion/devel/pdfdoc/quaternion.tex main/quaternion/devel/q0.m main/quaternion/devel/q1.m main/quaternion/devel/q2.m main/quaternion/devel/q3.m main/quaternion/devel/q4.m main/quaternion/devel/q_2x2.m main/quaternion/devel/q_2x3.m main/quaternion/devel/qbug.m main/quaternion/devel/quat.pdf main/quaternion/devel/quaternion.ps main/quaternion/devel/quaternion_arrays.m main/quaternion/doc/quaternion.pdf main/quaternion/doc/quaternion.ps main/quaternion/inst/@quaternion/abs.m main/quaternion/inst/@quaternion/blkdiag.m main/quaternion/inst/@quaternion/cat.m main/quaternion/inst/@quaternion/columns.m main/quaternion/inst/@quaternion/conj.m main/quaternion/inst/@quaternion/ctranspose.m main/quaternion/inst/@quaternion/diag.m main/quaternion/inst/@quaternion/diff.m main/quaternion/inst/@quaternion/display.m main/quaternion/inst/@quaternion/eq.m main/quaternion/inst/@quaternion/exp.m main/quaternion/inst/@quaternion/horzcat.m main/quaternion/inst/@quaternion/inv.m main/quaternion/inst/@quaternion/ispure.m main/quaternion/inst/@quaternion/ldivide.m main/quaternion/inst/@quaternion/log.m main/quaternion/inst/@quaternion/minus.m main/quaternion/inst/@quaternion/mldivide.m main/quaternion/inst/@quaternion/mpower.m main/quaternion/inst/@quaternion/mrdivide.m main/quaternion/inst/@quaternion/mtimes.m main/quaternion/inst/@quaternion/norm.m main/quaternion/inst/@quaternion/plus.m main/quaternion/inst/@quaternion/power.m main/quaternion/inst/@quaternion/private/norm2.m main/quaternion/inst/@quaternion/private/normv.m main/quaternion/inst/@quaternion/quaternion.m main/quaternion/inst/@quaternion/rdivide.m main/quaternion/inst/@quaternion/rows.m main/quaternion/inst/@quaternion/size.m main/quaternion/inst/@quaternion/subsasgn.m main/quaternion/inst/@quaternion/subsref.m main/quaternion/inst/@quaternion/times.m main/quaternion/inst/@quaternion/transpose.m main/quaternion/inst/@quaternion/uminus.m main/quaternion/inst/@quaternion/unit.m main/quaternion/inst/@quaternion/uplus.m main/quaternion/inst/@quaternion/vertcat.m main/quaternion/inst/demoquat.m main/quaternion/inst/q2rot.m main/quaternion/inst/qconj.m main/quaternion/inst/qcoordinate_plot.m main/quaternion/inst/qderiv.m main/quaternion/inst/qderivmat.m main/quaternion/inst/qi.m main/quaternion/inst/qinv.m main/quaternion/inst/qj.m main/quaternion/inst/qk.m main/quaternion/inst/qmult.m main/quaternion/inst/qtrans.m main/quaternion/inst/qtransv.m main/quaternion/inst/qtransvmat.m main/quaternion/inst/quaternion.m main/quaternion/inst/rot2q.m main/quaternion/inst/test_quaternion.m main/quaternion/src/Makefile main/quaternion/src/is_real_array.cc
diffstat 173 files changed, 21821 insertions(+), 21821 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/COPYING	Wed Mar 28 03:16:58 2012 +0000
@@ -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>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/DESCRIPTION	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,13 @@
+Name: quaternion
+Version: 1.0.0
+Date: 2008-07-17
+Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+Maintainer: The Octave-Forge Community
+Title: Quaternion Package
+Description: Package for the manipulation of Quaternion's used for
+ frame transformation
+Categories: Mathematics
+Depends: octave (>= 3.1.0)
+Autoload: yes
+License: GPL version 3 or later
+Url: http://octave.sf.net
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/doc/quaternion.ps	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,8786 @@
+%!PS (but not EPSF; comments have been disabled)
+%DVIPSCommandLine: dvips tmp -o quaternion.ps
+%DVIPSParameters: dpi=600, compressed, comments removed
+%DVIPSSource:  TeX output 1998.10.23:1515
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
+/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
+gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
+add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
+/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
+dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
+adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
+idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
+putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
+adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
+{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
+adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
+chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
+}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
+/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
+known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
+B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
+4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
+p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
+a}B /bos{/SS save N}B /eos{SS restore}B end
+TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
+/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
+false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
+/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
+div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
+/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
+10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
+/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
+true def end /@MacSetUp{userdict /md known{userdict /md get type
+/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
+length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
+N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
+clippath mark{transform{itransform moveto}}{transform{itransform lineto}
+}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
+itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
+closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
+0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
+/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
+scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
+ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
+not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
+TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
+pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
+-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
+TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
+sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
+0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
+2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
+{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
+div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
+N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
+maxlength dict begin /magscale true def normalscale currentpoint TR
+/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
+/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
+psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
+scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
+/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
+moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
+begin /SpecialSave save N gsave normalscale currentpoint TR
+@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
+{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
+lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
+}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
+end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
+N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
+/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
+SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
+/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
+yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
+TeXDict begin 40258431 52099146 1000 600 600 (tmp.dvi)
+@start /Fa 1 1 df<007FB712FCB812FEA26C16FC2F047A943C>0
+D E /Fb 3 123 df<90391F801F8090397FE07FE09039E0F0E0703A01C0F9C0F8390380
+7D833807007F000E1403000C15F0001C137E0018EC01C002FEC7FC00385B1210C7FC1301
+5CA31303A25C1640010714E016C0001C5B007E1401010F148000FE1403011FEB0700011B
+130E39F839F01C397070F878393FE07FE0390F801F8025227EA02C>120
+D<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C003813800030140F013F14C00070
+1300126049131FD8E07E14801240EA00FE49133F000115005BA25D0003147E5BA215FE5D
+5BA214015DEBF00314070001130F3900F83FF0EB3FFBEB0FC3EB00075DA20007130FD81F
+805B003F495AA24AC7FCEB007E003E137C00385B381803F0381E07C0D807FFC8FCEA01F8
+23317EA026>I<903807800390381FE00790383FF00690387FF80E9038FFFC1C48EBFE78
+9038E03FF03803800190C712E0EC01C0C7EA0380EC0700140E143C14705C495A495A49C7
+FC130E133C0170130C49131C484813184848133848C71278D80EC013F0380FFE03391F3F
+FFE0D8381F13C0486C1380D86007130038E003FE38C000F020227DA024>I
+E /Fc 26 123 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E12
+0C121C5A5A126009177A8715>44 D<B512F0A514057F921A>I<123C127E12FFA4127E12
+3C08087A8715>I<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC003E
+80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C14
+C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A215
+07A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F13
+8026C003FEC7FC22377CB42B>83 D<EB7F803803FFF0380F80FC381C003E003F133F6D6C
+7E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13
+004815C05AA3140FA26C131F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE00
+3C22237DA126>97 D<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120F
+EA1F80123F90380003E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F
+14706C6C13E03903F001C03900FC0F8090383FFE00EB07F01D237EA122>99
+D<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E4848
+7F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC
+3900F81E3FEB3FFCD90FE0130026357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807
+E013C0390FC007E0381F800315F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA512
+7E127FA26C1418A26C6C1338000F14306D13706C6C13E03901F003C03900FC0F00EB3FFE
+EB07F01D237EA122>I<EB01FCEB07FF90381F078090383E0FC0EB7C1F13FCEA01F8A200
+03EB070049C7FCACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A357FB417>I<151F90
+391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80
+EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9
+FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80
+48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22
+337EA126>I<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C9038F7
+007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0FC0EA
+1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB215>
+I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>108
+D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7
+003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A3
+3C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE49
+7FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F8039
+01F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE15
+80A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93F
+FEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE
+7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F
+6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325
+307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F80
+49C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE003C133E
+48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7FC67FEB0F
+FF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1FFE038C0
+7F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000
+AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D803F0133F
+00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90387E073F
+EB1FFED907F8130026227EA02B>I<B5EBFFF0A3D80FF0EB3F800007EC1F000003140E15
+0C6D131C00011418A26C6C5BA26D1370017E1360137F6D5BA290381F8180A214C3010F90
+C7FCA2EB07E6A214FE6D5AA26D5AA36D5AA2146024217E9F29>I<B53A1FFF81FFF0A33C
+07F801FC003F8001F049EB1E0000030100141C816C6C017C1318A26D017E1338000002FE
+1330A290267E01FF5B159F168090263F030F5BA216C0903A1F8607C180A202C613E39026
+0FCC0390C7FCA2D907FC13F6ECF80116FE6D486C5AA36D481378A36D48133034217F9F37
+>I<B53801FFF8A32603FE0013806C48EB7C0000001478017E1370017F5B90383F81C090
+381F8380D90FC3C7FCEB07E614FE6D5A6D5A6D7E80805B9038039F809038071FC0903806
+0FE0EB0C0790381C03F0496C7E01707FEBF000000180000FECFF8026FFFC0313FCA32620
+7F9F29>I<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D13
+1C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC
+14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA
+701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2EB000F003C14E00038EB1FC0
+0030EB3F800070137F1500006013FE495A13035CC6485A495AA2495A495A49C7FC153013
+FE485A12035B48481370485A001F14604913E0485A387F000348130F90B5FCA21C207E9F
+22>I E /Fd 1 106 df<1338137CA2137813701300A7EA0780EA1FC0EA38E01230EA60F0
+EAC1E0A3EA03C0A3EA0780A2EA0F0013041306EA1E0CA21318121CEA1E70EA0FE0EA0780
+0F237DA116>105 D E /Fe 2 51 df<13E01201120712FF12F91201B3A7487EB512C0A2
+12217AA01E>49 D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2
+147C1278003013FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C0
+0CEA0380380600185A5A383FFFF85AB512F0A216217CA01E>I E
+/Ff 4 64 df<B812C0A32A037A9137>0 D<130C131EA50060EB01800078130739FC0C0F
+C0007FEB3F80393F8C7F003807CCF83801FFE038007F80011EC7FCEB7F803801FFE03807
+CCF8383F8C7F397F0C3F8000FCEB0FC039781E078000601301000090C7FCA5130C1A1D7C
+9E23>3 D<EB7F803801FFE0000713F8380FC0FC381F003E003C130F00387F0078148000
+70130300F014C0481301A76C1303007014800078130700381400003C5B001F133E380FC0
+FC6CB45A000113E038007F801A1B7C9D23>14 D<4A7E1403B3B3A6007FB712FEB8FC7E2F
+2E7CAD38>63 D E /Fg 14 119 df<147E49B47E903907C1C38090391F80EFC090383F00
+FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90
+C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13
+E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E
+>97 D<EC1FE0ECFFF8903803F03E903807C00F90381F8007D93F001380017E131F49137F
+485A485A000715005B000F147E484890C7FCA2485AA3127F90C9FCA35A5AA6481403007E
+5C5D151E003E5C5D6C5CEC03E0390F800F802603E07EC7FC3801FFF838003FC0212977A7
+2A>99 D<EC3F80903801FFE0903807E0F890381F803CEB3E0001FC131E485A485A120748
+48133E49133C121F4848137C15F8EC03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45A
+A61506150E151E007C143C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF0
+38007F801F2976A72A>101 D<EC03F0EC0FFC91383E0E1C9138FC077E903901F003FE13
+03903807E001D90FC013FCEB1F80A2EB3F004914F8137E01FE1303A2484814F0A2150712
+034914E0A2150F12074914C0A2151FA216805B153F1203ED7F006D5BA200015B0000495A
+9038F80F7E90387C1EFEEB1FF8903807E0FC90C7FC1401A25DA21403A25D001C1307007F
+5C48130F5D4A5A4AC7FC48137E00F85B387C03F0381FFFC0D803FEC8FC273B7CA72A>
+103 D<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0
+121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA2
+12035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03
+FEEA00F8163E79BC1C>105 D<1507ED1FC0A2153FA31680ED0E0092C7FCADEC07C0EC3F
+F0EC78F8ECE07CEB01C01303EC807EEB0700A2010E13FE5D131E131CEB3C01A201005BA2
+1403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25CA2147EA214FEA25C
+A213015CA2121C387F03F012FF495A5C495A4848C8FCEAF83EEA707CEA3FF0EA0FC02250
+83BC1C>I<D801F0EB3F803A07FC01FFE03A0F3E07C1F83A0E1F0F00FC001E011C137C00
+1C49137E003C13F012385C38783FC012705C91C7FC00F015FE495CEA007EA2150101FE5C
+5BA2150300015D5B15075E0003020F13704914C0A2031F13F00007ED80E05B1681EE01C0
+120F49EC0380A2EE0700001FEC0F0E49EB07FC0007C7EA01F02C2979A733>110
+D<EC1FC0ECFFF8903803F07C90380FC01FEB1F8090393F000F80017E14C0491307484814
+E0485A12075B000F15F0485AA2485AA2ED0FE0127F90C7FCA2151F4815C05AA2ED3F80A2
+ED7F00A248147E007C5C007E13015D4A5A003E495A6C495A4A5A260F803EC7FC3807C0FC
+3801FFF038003F80242977A72E>I<027E1360903901FF81E0903807C1C390391F80E7C0
+90383F00F7017E137F5B4848EB3F80485AA2485A000F15005B121F5D4848137EA3007F14
+FE90C75AA3481301485CA31403485CA314074A5A127C141F007E133F003E495A14FF381F
+01EF380F879F3903FF1F80EA00FC1300143F92C7FCA35C147EA314FE5CA21301130390B5
+12F05AA2233A77A72A>113 D<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C13E0
+001EEB380F001C1370003CEBE01F123814C0D8783F14C00070903880070092C7FC91C8FC
+12F05BEA007EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B0007C9FC2329
+79A726>I<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C133E49
+137E15FEA2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F13F0
+1300140F14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F801270
+0078EB1F006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F01307A2
+5CA2130FA25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13FEA2
+5BA21201A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C1438EB
+0078147014F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48B414
+1C26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2
+D8F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C04914
+81A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F
+0F1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA
+0707000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91
+C712E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D
+1578000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I
+E /Fh 12 123 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A
+5A5A126009157A8714>59 D<000FB8FCA23B1FC003F8003F0100151F001C4A130E123C00
+3801071406123000704A130EA20060010F140C12E0485CA2141FC715005DA2143FA292C8
+FCA25CA2147EA214FEA25CA21301A25CA21303A25CA21307A25C130F131F001FB512F0A2
+302D7FAC29>84 D<EC0780EC1FC0EC3CE0EC786014F0EB01E0A2EB03C015E090380780C0
+130FA2EB1F011580A2EB3E0315005CEB7C06140E5CEBFC18EBF8385C5C00015B13F1EBF3
+8001F7C7FC13FE5B485A5B5BA31207120F121D12390071144000E114C0000013039038F0
+0700140EEB787CEB3FF0EB0F801B3080AE1D>96 D<13F8121FA21201A25BA21203A25BA2
+1207A25BA2120FEBC7E0EB9FF8EBB83C381FF01EEBE01F13C09038800F80EA3F00A2123E
+A2007E131FA2127CA2143F00FC14005AA2147EA2147C14FC5C387801F01303495A383C0F
+806C48C7FCEA0FFCEA03F0192F7DAD1E>98 D<EB03F8EB0FFE90383E0780EBF803D801F0
+13C03803E001EA07C0000F1303D81F8013801407393F000F00141E387F01FCEBFFF091C7
+FC007EC8FC12FE5AA4127C156015E0EC01C06CEB0380EC0F006C131C380F81F83803FFE0
+C648C7FC1B1F7D9D21>101 D<157C4AB4FC913807C380EC0F87150FEC1F1FA391383E0E
+0092C7FCA3147E147CA414FC90383FFFF8A2D900F8C7FCA313015CA413035CA413075CA5
+130F5CA4131F91C8FCA4133EA3EA383C12FC5BA25B12F0EAE1E0EA7FC0001FC9FC213D7C
+AE22>I<1307EB0F80EB1FC0A2EB0F80EB070090C7FCA9EA01E0EA07F8EA0E3CEA1C3E12
+3812301270EA607EEAE07C12C013FC485A120012015B12035BA21207EBC04014C0120F13
+801381381F01801303EB0700EA0F06131EEA07F8EA01F0122E7EAC18>105
+D<90387C01F89038FE07FE3901CF8E0F3A03879C0780D907B813C0000713F000069038E0
+03E0EB0FC0000E1380120CA2D8081F130712001400A249130F16C0133EA2017EEB1F80A2
+017C14005D01FC133E5D15FC6D485A3901FF03E09038FB87C0D9F1FFC7FCEBF0FC000390
+C8FCA25BA21207A25BA2120FA2EAFFFCA2232B829D24>112 D<3807C01F390FF07FC039
+1CF8E0E0383879C138307B8738707F07EA607E13FC00E0EB03804848C7FCA2128112015B
+A21203A25BA21207A25BA2120FA25BA2121FA290C8FC120E1B1F7E9D20>114
+D<013F137C9038FFC1FF3A01C1E383803A0380F703C0390700F60F000E13FE4813FC1218
+0038EC0700003049C7FCA2EA200100005BA313035CA301075B5D14C000385CD87C0F1306
+00FC140E011F130C011B131C39F03BE038D8707113F0393FE0FFC0260F803FC7FC221F7E
+9D28>120 D<EA01E0D807F8130ED80E3C131FD81C3E133F0038143E12301270D8607E13
+7ED8E07C137C12C013FC484813FC000014F812015B1401000314F013E0A21403000714E0
+13C0A2140715C00003130FEBE01F143F3901F07F8038007FEFEB1F8FEB001F1500A2003E
+133EA2007E5B5C387C01F0387003E0383007C0383C0F80D80FFEC7FCEA03F0202C7E9D23
+>I<011E1330EB3F809038FFC07048EBE0E0ECF1C03803C0FF9038803F80903800070048
+130EC75A5C5C5C495A495A49C7FC131E13385B491340484813C0485A38070001000EEB03
+80380FE007391FF81F0038387FFF486C5A38601FFC38E00FF038C003C01C1F7D9D21>I
+E /Fi 27 106 df<1430147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F85B1201
+5B1203A2485AA3485AA3121F90C7FCA25AA3123EA2127EA6127C12FCB3A2127C127EA612
+3EA2123FA37EA27F120FA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB03C0
+1301EB00E0147014301462738226>0 D<12C07E12707E123C7E7EA26C7E6C7EA26C7E7F
+12007F1378137CA27FA37FA31480130FA214C0A31307A214E0A6130314F0B3A214E01307
+A614C0A2130FA31480A2131F1400A3133EA35BA2137813F85B12015B485AA2485A48C7FC
+A2121E5A12385A5A5A14627C8226>I<12F0B3B3B2043674811C>12
+D<00F01378B3B3B2153674812E>I<151E153E157C15F8EC01F0EC03E01407EC0FC0EC1F
+8015005C147E5CA2495A495AA2495AA2495AA2495AA249C7FCA2137EA213FE5B12015BA2
+12035BA21207A25B120FA35B121FA45B123FA548C8FCA912FEB3A8127FA96C7EA5121F7F
+A4120F7FA312077FA21203A27F1201A27F12007F137EA27FA26D7EA26D7EA26D7EA26D7E
+A26D7E6D7EA2147E80801580EC0FC0EC07E01403EC01F0EC00F8157C153E151E1F947182
+32>16 D<12F07E127C7E7E6C7E7F6C7E6C7E12017F6C7E137EA27F6D7EA26D7EA26D7EA2
+6D7EA26D7EA26D7EA280147E147F80A21580141FA215C0A2140F15E0A3140715F0A41403
+15F8A5EC01FCA9EC00FEB3A8EC01FCA9EC03F8A515F01407A415E0140FA315C0141FA215
+80A2143F1500A25C147E14FE5CA2495AA2495AA2495AA2495AA2495AA249C7FC137EA25B
+485A5B1203485A485A5B48C8FC123E5A5A5A1F947D8232>I<160F161F163E167C16F8ED
+01F0ED03E0ED07C0150FED1F801600153E157E5D4A5A5D14034A5A5D140F4A5AA24AC7FC
+143E147E5CA2495AA2495AA2495AA2130F5CA2495AA2133F91C8FCA25B137E13FEA25B12
+01A25B1203A35B1207A35B120FA35BA2121FA45B123FA690C9FC5AAA12FEB3AC127FAA7E
+7FA6121F7FA4120FA27FA312077FA312037FA312017FA212007FA2137E137F7FA280131F
+A26D7EA2801307A26D7EA26D7EA26D7EA2147E143E143F6E7EA26E7E1407816E7E140181
+6E7E157E153E811680ED0FC01507ED03E0ED01F0ED00F8167C163E161F160F28C66E823D
+>I<12F07E127C7E7E6C7E6C7E6C7E7F6C7E1200137C137E7F6D7E130F806D7E1303806D
+7EA26D7E147C147E80A26E7EA26E7EA26E7EA2811403A26E7EA2811400A281157E157FA2
+811680A2151F16C0A3150F16E0A3150716F0A31503A216F8A4150116FCA6150016FEAA16
+7FB3AC16FEAA16FC1501A616F81503A416F0A21507A316E0150FA316C0151FA31680153F
+A216005DA2157E15FE5DA214015DA24A5AA214075DA24A5AA24A5AA24AC7FCA2147E147C
+14FC495AA2495A5C1307495A5C131F49C8FC137E137C5B1201485A5B485A485A48C9FC12
+3E5A5A5A28C67E823D>I<EE01E01603EE07C0EE0F80161F1700163E5E5E15015E4B5A15
+074B5A5E151F4BC7FC153E157E5DA24A5A14035D14075D140F5D141F5D143F92C8FC5C14
+7E14FE5C1301A25C13035C1307A25C130FA2495AA3495AA3137F91C9FCA25B5BA312015B
+A31203A25BA21207A35BA2120FA35BA3121FA45BA2123FA75B127FAC90CAFC5AB3B3A27E
+7FAC123F7FA7121FA27FA4120FA37FA31207A27FA31203A27FA21201A37F1200A37F7FA2
+80133FA36D7EA36D7EA2130780A2130380130180A2130080147E147F8081141F81140F81
+14078114038114016E7EA2157E153E153F6F7E150F826F7E15036F7E821500167C828217
+80160FEE07C0EE03E016012BF86C8242>32 D<12F07E127C7E123F7E6C7E6C7E6C7E7F12
+016C7E7F137E133E133F6D7E130F806D7EA26D7E80130180130080147E147F8081141F81
+140F81140781A2140381140181A2140081A2157FA36F7EA382151FA282150FA3821507A3
+82A21503A282A31501A282A31500A382A482A21780A7163F17C0AC161F17E0B3B3A217C0
+163FAC1780167FA71700A25EA45EA31501A35EA21503A35EA21507A25EA3150F5EA3151F
+5EA2153F5EA34BC7FCA315FEA25D1401A25D14035D1407A25D140F5D141F5D143F92C8FC
+5C147E14FE5C13015C13035C495AA2495A5C131F49C9FC133E137E5B5B485A12035B485A
+485A48CAFC5A123E5A5A5A2BF87E8242>I<B61280A600FCC8FCB3B3B3B3B3B3B3B3B3B3
+B3B3B3A2B61280A619F86A8230>I<B61280A6C7121FB3B3B3B3B3B3B3B3B3B3B3B3B3A2
+B6FCA619F8808230>I<177C17FCEE01F8A2EE03F0EE07E0EE0FC0A2EE1F80EE3F005E16
+7E5E15015E15034B5A5E150F5E151F4B5AA24BC7FCA215FEA24A5AA24A5AA24A5AA2140F
+5D141F5D143F5DA2147F92C8FC5CA25C13015C1303A25C1307A3495AA3495AA3133F5CA3
+137F5CA313FF91C9FCA35A5BA31203A25BA31207A35BA3120FA45BA2121FA65BA2123FA8
+5BA2127FAE5B12FFB3A62E95688149>48 D<12F87E127EA27E6C7E6C7EA26C7E6C7E7F12
+016C7E7F137E137F6D7E131F80130F806D7EA26D7EA26D7EA26D7EA2147FA26E7EA28114
+1F81140F811407A281140381A2140181140081A28182A36F7EA36F7EA382150FA3821507
+A3821503A3821501A382A281A31780A3167FA317C0A4163FA217E0A6161FA217F0A8160F
+A217F8AE160717FCB3A62E957E8149>I<B612F0A600FCC8FCB3B3B3B3B3B3B3B01C9466
+8137>I<B612F0A6C71203B3B3B3B3B3B3B3B01C94808137>I<12FCB3B3B3B3B3B3B3B0B6
+12F0A61C94668237>I<EC03F0B3B3B3B3B3B3B3B0B6FCA61C94808237>I<12FCB3B3B006
+34668037>I<12FCB3B3B006346A8037>I<B47EB3A6127F7FAE123FA27FA8121FA27FA612
+0FA27FA41207A37FA31203A37FA21201A37F7EA380137FA380133FA380131FA36D7EA36D
+7EA3130380A2130180130080A28081143FA281141F81140F811407A26E7EA26E7EA26E7E
+A2157FA26F7EA26F7E150F821507826F7E1501821500167E167F82EE1F80EE0FC0A2EE07
+E0EE03F0EE01F8A2EE00FC177C2E95688349>64 D<EE07FCB3A617F8160FAE17F0A2161F
+A817E0A2163FA617C0A2167FA41780A316FFA31700A35DA25EA315035EA315075EA3150F
+5EA3151F5EA34B5AA34B5AA393C7FC5DA25D14015D1403A25D14075DA2140F5D141F5D14
+3F5DA24AC8FCA214FEA2495AA2495AA2495AA2495A5C131F5C133F49C9FC137E13FE5B48
+5A12035B485A485AA2485A48CAFC127EA25A5A2E957E8349>I<EAFF80B3B3B009346880
+49>I<EAFF80B3B3B00934598049>I<BB12FC86A3D87FC0C9001F7FF0007F6C6C17076C6C
+050113806C6CEF007F1A1F6C6CF00FC06C6C18076C6C1803F201E06C6D17006D6C186001
+3F19706E18306D7E6D6C18181B006D7E6D7E6D7EA26D7F6E7E6E7EA26E7E6E7E6E7EA26E
+7E6E7E80826F7E6F7EA26F7E6F7E6F5A5EA24B5A5E4BCBFC153E157E5D5D4A5A4A5A1407
+5D4A5A4ACCFC143E147E147C5C4948181801031930495A4A18704948186049CC12E04918
+01017EF003C0017C180749180F4848F01F800003197F49EF01FF4848050713004848173F
+48CA000FB5FC48BA5AA25ABB5AA24D537B7F58>80 D<B512E0A500F8C7FCB3B3B3B3B3B3
+B3ACB512E0A513946E8227>104 D<B512E0A5EA0003B3B3B3B3B3B3B3ACB5FCA513947F
+8227>I E /Fj 65 123 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF
+80A3EA7F00A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA24813
+3FB2007E1400007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8
+011F131FA202C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9
+495BA2003F90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA7
+6C486C5AA229387DB730>I<D803C0EB01E0D80FF01303486C497E487E150F487ED87E7E
+495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D387E7E01EA7FFED83FFC5B1403EA1F
+F86C48485AEA03C0C75B140FA25D141FA24A5AA25D147FA292C8FC5CA2495AA25C1303A2
+5C1307A290390FF001E0ED07F84A487E011F497EA24A487E133F163F90267F807F1380ED
+7E1F14005BA25B1201A24848EB7F3F033F13004914FF12076F5A5B6F5A6C486D5A0001EC
+01E029477DBE30>37 D<EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13
+FCA2120113F81203EA07F0120FEA1FE0127FEAFFC013801300127C12380F1D70B730>39
+D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B48
+5A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F
+12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E
+184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C013
+1FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA21303
+14F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A
+485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB
+3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0
+011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E0
+9038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>
+I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA
+03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA
+07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30>I<007FB612F0A2B712F8A36C15
+F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B
+30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5A
+A25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495A
+A2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA2
+48C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB
+83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8
+A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15
+F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B
+6D5B010F13E06D5BD900FEC7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F
+13FF1203123FB5FCA213EF138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C
+14F81F3977B830>I<EB07FC90383FFFC090B512F00003804814FE4880261FF80F138026
+3FE00113C09038C0007F4848EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218
+C8FCA2150716F0150F16E0151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A
+5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F848
+5AEA1FE048B6FCB7FCA37E6C15F025397BB830>I<EB03FF013F13E090B512F84814FE48
+80481580260FFE0113C09038F0007F4848EB1FE0150F16F01507A26C5A6C5AC8FC150F16
+E0A2151FED3FC0157FEDFF8002071300903807FFFE495B5D8115FF6D1480D9000113C091
+38003FE0ED1FF0ED07F8150316FC150116FE1500A21218127EB4FCA2150116FC4814036C
+15F86C6C13076DEB1FF0D83FF0133F3A1FFE01FFE06CB612C06C15806CECFE00C65C013F
+13F001031380273A7CB830>I<EC03FC4A7E140F141FA2143F147F157E14FEA2EB01FCEB
+03F8A2EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F0013FEA2485A485AA2485AA2485A485A
+A2485AA248C7FC12FEB8FC1780A46C1600C8007EC7FCAA91387FFFFE91B6FCA46E5B2939
+7DB830>I<000FB612804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC81
+81D9FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503
+A31218127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261F
+FC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730>I<EC0FF8EC7FFF
+49B51280010714E0131F4914F090387FF80F9039FFC007F84813803803FE005B485A4848
+EB03F0ED01E0484890C7FC5B123F5BA2127FEB000C903803FFE0010F13F8D8FF3F13FE48
+B6FCB7128016C09039FE007FE001F8EB1FF001E0130F49EB07F8ED03FC5B90C7120116FE
+1500A37EA46C7E15016D14FC121F6D1303000FEC07F86D130F6C6CEB1FF06DEB3FE03A03
+FF81FFC06C90B512806C15006D5B011F13F8010713E001011380273A7CB830>I<127CB7
+12FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14
+075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA9
+6D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C04801
+0113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F8
+6D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F
+13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303
+007F15FC90C712014815FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1F
+F06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7C
+B830>I<49B4FC010F13E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0
+EB3FE04848131F49EB0FF048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303
+15076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190
+380060011400ED03F8A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A13
+00EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA
+3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4
+EA7FE0A2EA3FC0EA0F000C276EA630>I<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA
+0FF0EA03C0C7FCAFEA03C0EA0FF0121F13F8123F13FCA3121FA2120F12031200120113F8
+120313F01207EA1FE0123FEA7FC0EAFF80EA7F00127E12380E3470A630>I<007FB7FCA2
+B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>61
+D<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F01
+0313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C
+020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A48
+13E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<147F4A7E
+A2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F00
+7FA4498049133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFF
+EB7FFFB56CB51280A46C496C130029397DB830>65 D<007FB7FCB81280A47ED803F8C712
+3FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A900
+7FB7FCB8FCA46C16C02B387EB730>69 D<3B3FFF800FFFE0486D4813F0B56C4813F8A26C
+496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D
+4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>72 D<D83FF8ECFFE0486C49
+13F0486C4913F8A2007F16F06C6C4913E00007160001EF14BFEC800FA39039E7C01F3FA4
+ECE03F01E3133EA2ECF07EA201E1137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3F
+E0A3EC1FC0A2EC070091C7FCADD83FFC903801FFE0486C4913F0B54913F8A26C486D13F0
+6C486D13E02D387FB730>77 D<D83FFC90381FFF80486C4913C0B54913E0A26C6D6C13C0
+6C6E13800003913801F800EBF7C0A3EBF3E0A314F013F1A214F8A213F014FCA2147C147E
+A2143E143FA2141FA21581A2140F15C1A2140715E1A2140315F1A21401A215F91400A315
+7DA3153FEA3FFF481380B5EAC01FA26CEB800F6C496C5A2B387EB730>I<90383FFFE048
+B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A448
+15F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15
+C06C15806C1500000114FCD8003F13E0253A7BB830>I<90390FF803C0D97FFF13E048B5
+12C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37E
+ED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF0103
+1480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F0
+7F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD8
+78011380253A7BB830>83 D<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C7
+91C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<007FB5FCB61280A4150048C8FC
+B3B3B3A5B6FC1580A46C140019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7E
+A26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA213
+0180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED
+3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>I<007FB5FCB612
+80A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8
+A36C15F0A225077B7D30>95 D<EB3FFC48B57E4814E04880488048809038F00FFE9038E0
+01FF806F7E6C48133F6C4880C8121FA491B5FC130F137F48B6FC12075A48EBC01F383FFC
+00EA7FE0138048C7FC5AA46C143FA26C6C137F9038C001FF263FF80FEBFFC06CB712E0A2
+000714F76C14C3C6020013C0D93FF090C7FC2B2A7CA830>97 D<EA3FFC487E12FFA2127F
+123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13
+804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F6EEB3FC0A2
+6EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC9038
+0003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B612804815C048EB807F3907
+FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC
+07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B01
+1F13F801075B01011380232A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90
+381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790
+C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFF
+C06CB712E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4
+FC010713E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB
+1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC
+01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F1480
+6DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5
+FC491387903803FE079138FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C
+15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC
+13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7
+FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15
+C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE000
+1FFE0180130148C8127F007E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01
+F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730
+>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA2
+9138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D48
+13FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5A
+A2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C
+15C023397AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F048
+14F8A47EEB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C1400
+5C6C5B000F13F0000313C01D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14
+C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A
+5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E
+6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B5
+7EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF
+01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE90
+39F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01
+071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C90
+38FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D48
+13FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8
+497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F849
+1303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D13
+0F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F
+13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B6
+12FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217
+F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B5
+5A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A7
+30>I<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848
+130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F
+6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE01
+90C7FCAD92B512F84A14FCA46E14F82E3C7DA730>I<ED07F83A3FFF803FFF486DB51280
+B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238801F809238000F004A90C7FC5C
+5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A287EA730>I<90381FFC1E48B512
+9F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C
+13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C147F00FEEC1F
+C0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C0
+26780FFEC7FC222A79A830>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026
+001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814F09138FC1FF06DB512E06D14C01680
+6D14009038007FFCEC1FF026337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F14
+7F003F143F00001400B3A41501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F
+6D4913FC6D9038F87FF8010001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B5
+15E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F017E5CA2017F13
+1F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801
+FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C
+16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3F
+E0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03F
+A2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815B
+C648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92
+C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE
+90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180
+140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC
+0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E0
+0107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2
+143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90
+C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3F
+E0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A49
+5A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28
+277DA630>I E /Fk 5 53 df<156015F0A24A7E4A7EA24A7E1406EC0E7F140C91381C3F
+8014184A6C7E150F02607F150702C07F1503D901807F1501D903007F496D7E1306010E14
+7F130C011C6E7E131801386E7E1330496E7E160749811603484881160148C87F486F7E12
+06000E167F120C001CEE3F801218003FB812C0A24817E0A2B912F0342F7DAE3B>1
+D<130C133C137CEA03FC12FFEAFC7C1200B3B113FE387FFFFEA2172C7AAB23>49
+D<EB7F803801FFF0380780FC380E003F48EB1F8048EB0FC05A0060EB07E012F000FC14F0
+7E1403A3007C1307C7FCA215E0140F15C0141F1580EC3F00147E147C5C495A495A495A49
+5A011EC7FC5B5B4913305B485A4848136048C7FC000E14E0001FB5FC5A4814C0B6FCA21C
+2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E487FEC1F80003F14C0A2EB800F1300
+A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EBFFC014F0EB00FC143FEC1F8015C014
+0F15E0A2EC07F0A21238127C12FEA3EC0FE012F8006014C00070131F6C1480001EEB3F00
+380780FC3801FFF038007FC01C2D7DAB23>I<140EA2141E143EA2147E14FEA2EB01BE13
+03143E1306130E130C131813381330136013E013C0EA0180120313001206120E120C5A12
+3812305A12E0B612FCA2C7EA3E00A9147F90381FFFFCA21E2D7EAC23>I
+E /Fl 13 121 df<007FB812FEBAFCA26C17FE3804799847>0 D<121EEA7F80A2EAFFC0
+A4EA7F80A2EA1E000A0A799B19>I<0060166000F816F06C1501007E15036CED07E06C6C
+EC0FC06C6CEC1F806C6CEC3F006C6C147E6C6C5C6C6C495A017E495A6D495A6D6C485A6D
+6C485A6D6C48C7FC903803F07E6D6C5A903800FDF8EC7FF06E5A6E5AA24A7E4A7EECFDF8
+903801F8FC903803F07E49487E49486C7E49486C7E49486C7E017E6D7E496D7E48486D7E
+4848147E4848804848EC1F804848EC0FC048C8EA07E0007EED03F0481501481500006016
+602C2C73AC47>I<D91FE01620D9FFFC16704813FF000714C04814F048809026E01FFE15
+F0273F0003FFEC01E0007E010013C00078DA3FF01307DB0FFCEB0FC048913A07FF807F80
+48020190B5FC6F1500043F5B040F13F804035B00409238007F80CDFCA4D91FE01620D9FF
+FC16704813FF000714C04814F048809026E01FFE15F0273F0003FFEC01E0007E010013C0
+0078DA3FF01307DB0FFCEB0FC048913A07FF807F8048020190B5FC6F1500043F5B040F13
+F804035B00409238007F803C287BAB47>25 D<19301978A2197C193CA2193E191EA2191F
+737EA2737E737EA2737E737E1A7C1A7EF21F80F20FC0F207F0007FBB12FCBDFCA26C1AFC
+CDEA07F0F20FC0F21F80F27E001A7C624F5A4F5AA24F5A4F5AA24FC7FC191EA2193E193C
+A2197C1978A2193050307BAE5B>33 D<0203B512F8023F14FC91B6FC010315F8D90FFEC8
+FCEB1FE0EB7F8001FEC9FCEA01F8485A485A485A5B48CAFCA2123EA25AA21278A212F8A2
+5AA2B812F817FCA217F800F0CAFCA27EA21278A2127CA27EA27EA26C7E7F6C7E6C7E6C7E
+EA00FEEB7F80EB1FE0EB0FFE0103B612F8010015FC143F020314F82E3679B13D>50
+D<1718173C177CA217F8A2EE01F0A2EE03E0A2EE07C0160F1780EE1F00A2163EA25EA25E
+A24B5AA24B5AA24B5AA24B5AA24BC7FCA2153E157E157C5DA24A5AA24A5AA24A5AA24A5A
+A24AC8FCA2143EA25CA25C13015C495AA2495AA2495AA249C9FCA2133EA25BA25BA2485A
+A2485AA2485A120F5B48CAFCA2123EA25AA25AA25A12602E5474C000>54
+D<146014F01301A214E01303A214C01307A2EB0F80A214005BA2131E133EA25BA2137813
+F8A25B1201A25B1203A2485AA25B120FA290C7FC5AA2123EA2123C127CA2127812F8A412
+78127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007FA21378137CA27FA2
+131E131FA27F1480A2EB07C0A2130314E0A2130114F0A213001460145A77C323>104
+D<126012F07EA21278127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007F
+A21378137CA27FA2131E131FA27F1480A2EB07C0A2130314E0A2130114F0A414E01303A2
+14C01307A2EB0F80A214005BA2131E133EA25BA2137813F8A25B1201A25B1203A2485AA2
+5B120FA290C7FC5AA2123EA2123C127CA2127812F8A25A1260145A7BC323>I<126012F0
+B3B3B3B3B11260045B76C319>I<0060131800F0133CB3B3B3B3B000601318165A75C32D>
+I<1A061A0F1A1FA21A3EA21A7CA21AF8A2F101F0A2F103E0A2F107C0A2F10F80A2F11F00
+A2193EA261A261A24E5AA24E5AA24E5AA24E5AA24EC7FCA2183EA260A260A24D5AA24D5A
+133801F85E486C15071203D80FFE4B5A121D00394CC8FCEAF1FF00C0163EC67F017F5D80
+013F5D80011F4A5A80010F4A5A8001074A5AA26E495A13036E49C9FC13016E133E7F6F5A
+147F6F5A143FEDE1F0141FEDE3E015F391380FF7C015FF6E5BA26E90CAFCA26E5AA26E5A
+A215781570485B7A834C>112 D<EB3F80EBFFF03803E078380F801E48487E80003EEB03
+805A15C0140F5AA3EC078091C7FCA37E127CA27E121E121F6C7EEA03C06C7EEA00F8133E
+EBFF803803E3E0380F80F0381F0078143E003E7F487F1580EC07C05A15E01403A57E127C
+EC07C07E121E001FEB0F80390F801F00EA03C03801E03E3800F8F8EB3FE0EB0F80EB03E0
+EB00F01478143E80801580EC07C0A215E01403A3123C127EA3EC07C012781238EC0F806C
+EB1F00121E6C133E3803C0F83801FFE038003F801B537ABF28>120
+D E /Fm 29 119 df<ED0FFF4AB512C0020F14F0027F80903A01FFF803FC499038C000FE
+010FEB00034948497E49485B5C495A4C138001FF6E13005CA3705AEE01F893C8FCA74BB5
+1280B9FCA5C69038E00003B3B0007FD9FFC1B6FCA538467EC53E>12
+D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F788E1F>46
+D<EC03C01407141F147FEB03FF133FB6FCA413C3EA0003B3B3ADB712FCA5264177C038>
+49 D<ECFFE0010F13FE013F6D7E90B612E0000315F82607FC0313FE3A0FE0007FFFD81F
+806D138048C7000F13C0488001C015E001F07F00FF6E13F07F17F881A46C5A6C5A6C5AC9
+FC17F05DA217E05D17C04B13804B1300A2ED1FFC4B5A5E4B5A4B5A4A90C7FC4A5A4A5AEC
+0FF04A5AEC3F804AC7127814FE495A494814F8D907E014F0495A495A49C8FC017C140149
+140348B7FC4816E05A5A5A5A5AB8FC17C0A42D417BC038>I<ECFFF0010713FF011F14C0
+017F14F049C66C7ED803F8EB3FFED807E06D7E81D80FF86D138013FE001F16C07FA66C5A
+6C4815806C485BC814005D5E4B5A4B5A4B5A4A5B020F1380902607FFFEC7FC15F815FF16
+C090C713F0ED3FFCED0FFEEEFF80816F13C017E0A26F13F0A217F8A3EA0FC0EA3FF0487E
+A2487EA217F0A25D17E06C5A494913C05BD83F80491380D81FF0491300D80FFEEBFFFE6C
+B612F800015D6C6C14C0011F49C7FC010113E02D427BC038>I<163FA25E5E5D5DA25D5D
+5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14F8EB01F0EB03
+E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E5A12FCB91280
+A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01FFEB07FF91B6
+FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C714C001DF14
+F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8FC6F13F0A3
+17F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0123E003F4A13
+80D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01FCC7FC0101
+13C02D427BC038>I<EE1F80A24C7EA24C7EA34C7EA24B7FA34B7FA24B7FA34B7F169F03
+1F80161F82033F80ED3E07037E80157C8203FC804B7E02018115F0820203814B137F0207
+815D173F020F814B7F021F8292C77EA24A82023E80027E82027FB7FCA291B87EA2498302
+F0C8FCA20103834A157F0107834A153FA249488284011F8491C97E4984133E017E82B602
+0FB612F0A54C457CC455>65 D<B9FC18F018FE727E19E026003FFEC7001F13F805017F94
+38003FFF060F7F727F727F727F84737E737EA2737EA2737EA21B80A2851BC0A51BE0AD1B
+C0A51B8061A21B006162193F624F5A19FF624E5B06075B4E5B063F90C7FC4DB45A050F13
+F8BA5A19C04EC8FC18F095C9FC4B447CC356>68 D<B500FE067FB512806E95B6FCA26F5E
+A2D8003F50C7FC013D6DEE03DFA2013C6DEE079FA26E6CEE0F1FA26E6C161EA26E6C163C
+A36E6C1678A26E6C16F0A26E6DEC01E0A26E6DEC03C0A36E6DEC0780A26F6CEC0F00A26F
+6C141EA26F6C5CA36F6C5CA26F6C5CA26F6D485AA26F6D485AA26F6D485AA3706C48C7FC
+A293383FF81EA2706C5AA2706C5AA3706C5AA2705BA2705BA2705BA2B6057FB6128071C7
+FCA2173E171C61447CC36A>77 D<923807FFC092B512FE0207ECFFC0021F15F091267FFE
+0013FC902601FFF0EB1FFF010701C0010713C04990C700017F49486E7F49486F7E49486F
+7E49486F7E48496F7E48496F1380A248496F13C0A24819E091C97E4819F0A248487013F8
+A3007F19FCA249177FA300FF19FEAD007F19FCA36D17FF003F19F8A3001F19F06D5EA26C
+19E06E01FE5B6C912603FF8014C06C6D486D4813804B13E06C9028E01F83F00F13006C90
+3BF01E00F81FFE90267FF83E90387C3FFC90263FFC3C6D485AD91FFE91381EFFF0D90FFF
+021F5B6D01FE5D010194C7FC6D6D6CB45A023F90B512F8020703E0130202006F13070307
+13C792C7EA07F8716C130F72131F9538FF80FF96B5FC7114FEA3831AFCA27213F81AF084
+7213E07213C0721300F001FC48587AC454>81 D<003FBA12E0A59026FE000FEB8003D87F
+E09338003FF049171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5
+C81700B3B3A20107B8FCA545437CC24E>84 D<903801FFE0011F13FE017F6D7E48B612E0
+3A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA402
+03B5FC91B6FC1307013F13F19038FFFC01000313E0000F1380381FFE00485A5B127F5B12
+FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01F
+C66CEB8007D90FFCC9FC322F7DAD36>97 D<EC3FFC49B512C0010F14F0013F14FC90397F
+F003FE9039FFC001FF0003495A48494813805B120F485AA2485A6F1300007F6E5AED0078
+4991C7FCA212FFAC6C7EA3123F6DEC03C0A26C6C1407000F16806D140F6C6DEB1F006C6D
+133E6C01F05B3A007FFC03F86DB55A010F14C0010391C7FC9038003FF82A2F7CAD32>99
+D<EE03FEED07FFA5ED001F160FB1EC3FE0903803FFFC010FEBFF8F013F14CF9039FFF807
+FF48EBC00148903880007F4890C7123F4848141F49140F121F485AA3127F5BA212FFAC12
+7FA37F123FA26C6C141FA26C6C143F0007157F6C6C91B5FC6CD9C00314FC6C9038F01FEF
+6DB5128F011FEBFE0F010713F89026007FC0EBF80036467CC43E>I<EC3FF80103B57E01
+0F14E0013F8090397FF83FF89039FFC007FC48496C7E48496C7E48486D1380485A001FED
+7FC05B003FED3FE0A2127F5B17F0161F12FFA290B7FCA401F0C9FCA5127FA27FA2123F17
+F06C7E16016C6C15E06C6C14036C6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE01
+1FB55A010714F0010114C09026001FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13F0
+49B512F849EB8FFC90390FFE0FFE90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03F0
+ED00C01600ABB612F8A5C601E0C7FCB3B0007FEBFFE0A527467DC522>I<137C48B4FC48
+13804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFFA51203
+7EB3AFB6FCA518467CC520>105 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC4
+20>108 D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E
+4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E
+6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D
+7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F
+000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E
+>I<EC1FFC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7
+EA3FE000078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700
+A46C6C4A5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90
+C7FC6DB55A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FF8B590B5
+7E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C0
+4A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E49
+13806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCAD
+B67EA536407DAC3E>I<DA3FE0131E902603FFFC133E010F01FF137E013F1480903AFFF8
+0FE0FE489038E003F148EBC0014890388000FB4890C7127F49143F001F151F485A160F5B
+127FA3485AAC6C7EA46C7EA26C6C141F163F6C6C147F6C15FF6C6D5A6C9038E003EF6C90
+38F01FCF6DB5128F011FEBFE0F010313F89038007FC091C7FCAD0307B512FCA536407CAC
+3B>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC
+14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>I<9039
+1FFC038090B51287000314FF120F381FF003383FC00049133F48C7121F127E00FE140FA2
+15077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E
+010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F
+8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>I<EB
+01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA4C601E0C7
+FCB3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F006DB5FC6D13FC01
+015B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F6C81B3A85E
+A25EA25E7E6E491380017FD901F713FE9138F807E76DB512C7010F1407010313FE902600
+7FF0EBFC00372E7CAC3E>I<B6903803FFFCA5000101E09038003E006C163C80017F5D80
+17F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6DEBE01E
+163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA2
+6E5AA26E5AA21578362C7EAB3B>I E /Fn 24 118 df<1530157015E0EC03C0EC0780EC
+0F00141E5C147C5C5C495A1303495A5C130F49C7FCA2133E137E137C13FC5B1201A2485A
+A25B1207A2485AA3485AA448C8FCA45A127EA512FE5AA95AA87EA2127CA5123C123EA212
+1EA2121F7EA26C7EA26C7EA26C7E120013707FA213181C5A74C323>40
+D<497E806D7E1470147880A280A280A2EC0780A215C01403A215E0A3EC01F0A615F8AF14
+0315F0A5140715E0A4140F15C0A3141F1580A3EC3F00A2143E147EA2147C14FC5C13015C
+13035C13075C495AA249C7FC131E133E5B13785B485A485A12075B000EC8FC5A5A12F05A
+1D5A7FC323>I<121EEA3F80EA7FC012FFA41380EA7F00123C0A0A788919>46
+D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300141F15C0A5143F1580A5
+147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497EB612F8A31D3D78BC
+2D>49 D<EC03FC91381FFF8091387C07E0903901F001F0903903C000F84948137C49C712
+3E131E013E141F133C137C137813F8A3163F486C143E167E6D147C6C6C14FC6E13F89138
+C001F09138F003E090397FF807C09138FC0F0090383FFF3E6D13F86D13E06D7F01017F81
+01077F90391F1FFF80D93E0F13C0EBF8072601F00113E048486C13F04848137F4848131F
+001FEC0FF890C71207003E1403A2481401A300FC15F05AA3ED03E0A26CEC07C0007C1580
+007E140F003EEC1F00003F143E6C6C5B6C6C485A3907F00FE00001B512806C6C48C7FCEB
+0FF0283F7ABC2D>56 D<EC07F8EC3FFE9138FC0F80903901F007C0903907E003E0D90FC0
+13F090381F8001013F14F8EB7F004914FC48481300A24848EB01FEA21207A3485AA41503
+121F5BA31507A2000F15FC150FA2151F1207153F000315F86C6C137F000014EF90387C01
+CF90393E078FF090380FFE1FEB03F890C713E0A2ED3FC0A3ED7F8016005D003F5C487E4A
+5A00FF495A5D4A5A49485A48495A007049C7FC0078137E383E03FC381FFFF06C13C0D801
+FEC8FC273F79BC2D>I<13F0EA01FC1203EA07FEA313FCA2EA03F8EA01E0C7FCB3121EEA
+3F80EA7FC012FFA41380EA7F00123C0F2778A619>I<17E016011603831607A2160FA216
+1F83163FA2167F167716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E151E15
+1C153C03387FED7800157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC
+5CA20270C7EA3FE0171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2137C
+D801FE4B7E2607FF80EC3FFEB500F00107B512FC19F85E3E417DC044>65
+D<013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F
+4B5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FC
+A45F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC
+6115C0483E7DBD44>72 D<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5D
+A514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2
+B6FC263E7EBD21>I<923803FF80031F13F09238FE01FE913903F8003FDA0FE0EB1FC0DA
+3F806D7E4AC7EA03F0D901FC8149486E7E49486E7E010F82494881494816804948ED3FC0
+13FF91C9FC484817E00003171F5B000718F0A2485AA2485A19F8123FA25B127FA219F048
+48163FA519E0187F5BA219C018FF1980A24D1300A24D5A6C7E4D5A60003F160F037C5C6C
+6C48B4495A913A0783803FC0000F90260E01C05B9026F00C0049C7FC0007011CEBE0FE26
+03F818EB61FCD801FCEC73F8D800FEEC77F0017FEC7FC0D93F985CD90FFC01FEC8FC9027
+03FE07F813030100B5FC91260FFC3C5B91C7FC180E163E181E043F137CEF81FC17FF60A2
+60A2705B60705B7048C7FCEE01F83D5276BF47>81 D<9239FF8003800207EBF007021F90
+38FC0F0091387F00FE02FCEB1F1FD903F0EB07BF49486DB4FC49487F4A6D5A49C8FC4915
+7E133E137E173E49153CA57F1738A26D92C7FC808080EB7FFEECFFE06D13FEEDFFC06D14
+F06D14FC010380010080143F020380DA003F7F15031500707E163F161FA2160F121CA316
+07160F003C5EA35F003E151F94C7FC007E5D007F153E6D5C16FC01E0495AD87DF0495AD8
+FCFCEB0FC03AF87F803F8027F01FFFFEC8FCD8E00713F839C0007FC031427BBF33>83
+D<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E82A248140782A26C5A13
+7890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848
+133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA2007F5B913903BF07009038
+80073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97
+D<EC1FF0ECFFFE903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F048
+48EB3FE0485AA24848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC03
+80150716006C6C5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0F
+F0242A7AA828>99 D<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0
+A491380FF03FECFFFC902603F81F138090390FC007BF90391F8003FF90387E0001497F00
+01157F48481500485A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E
+1507A26C4A5A7F001F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE
+0FD90FF0EBE0002D407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F00
+0F80017E14C049EB07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FC
+A2D8FF80C8FC90C9FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B
+6C6C485A3900FC07C0D93FFFC7FCEB07F8242A7BA828>I<1478EB01FE130314FFA25B14
+FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F
+1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105
+D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A513
+1F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108
+D<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE700
+02EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C713
+80A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>110
+D<EC0FF0ECFFFE903903F01F8090390FC007C049C66C7E013E6D7E01FC6D7E4848804914
+7C0003157E485A000F157F5B121FA2485AA2007F1680A2170048C85AA54B5AA25E5A6C4A
+5A7E4B5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C6C5B6C6C485A3900FC0FE090383FFF80
+D90FF8C8FC292A7BA82D>I<903907F01F80D803FFEB7FE09138E1E1F09138E387F83900
+1FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA513
+7F91C8FCA55B5BA31201487EB512FEA325287EA724>114 D<9138FF81C0010713E39038
+1F807F90397C003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF
+8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA212
+3C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC
+38C01FE0222A7DA824>I<EB0380A4130791C7FCA25BA25BA2133EA2137E13FE12011207
+001FB512C0B6FCA2D801FCC7FCA312035BA512075BA5120F5BA41407001F130E13C0A414
+1E141C1380A26D5AA2000F5B14F03807E1E03801FF80D8007EC7FC1A3978B723>I<01FE
+147F00FFEC7FFF4914FEA20007140300031401A34914FCA4150312074914F8A41507120F
+4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE0913807
+3FFF3803F01E3801FFF826003FE01380282977A733>I E /Fo 27
+123 df<15FCEC03FF91380F87C091383E03E0EC7C0102F813F01301903903F000F8495A
+010F14FC5C495A133F91C7FC4914FE13FEA212015B12034913011207A25B000F15FC1503
+121F5BA21507003F15F890B6FCA33A7FC0000FF05BA2151F16E048C7FCA2ED3FC0A24815
+80157F1600A215FEA24A5AA24A5A007E5C14075D4A5A003E5C141F4AC7FC6C137E5C380F
+81F03807C3E03801FF80D8007EC8FC27417DBF2B>18 D<EE01C0A21603A25FA21607A294
+C7FCA25EA2160EA2161EA2161CA2163CA21638A21678017C167048B491387001FC2603C7
+C0EC03FED8070314F0000F7F000E15E0121C010701011301003816004C137ED8780F163E
+0070EBC003181ED8F01F5C0280151C00001407133F020090C7123C1838495B137E030E14
+7801FE167049011E14F018E0031C13010001EE03C049013C148017070338EB0F006C6C15
+1E03785B5F017E01705B4C5A6D9038F003C0D91F80010FC7FC90390FE0E03E903903FCE1
+F89039007FFFE0020790C8FCEC01C0A21403A25DA21407A292C9FCA25CA2140EA2141EA2
+141CA237527EBE3B>32 D<18E00130ED03F80170ED07FC13F0485A5B1203491503000716
+0148CAFC187C120E121E001C173C003C021C14380038147EA20078177803FE147000705C
+A218F04A4814E000F01601A24BEB03C0A24BEB07800203140F6C0107EC1F00173E6CD91F
+F0137E007C013F5C007E90397FF803F83B7F83FFFE1FF0263FFFFCB5FC4A14C06C496C5B
+6C01C091C7FC6C9038001FFCD801FCEB07E036297FA739>I<EE03F801E0EC0FFE0001ED
+3FFF4991B5128000034A14C04848903903F80FE090C73807E0034891390FC001F0000E15
+00001E021E1300001C5C003C177000385C1570007814F000705C140100F04A14F018E048
+495A17014AC7FC18C01703020EEC07807EEF0F006C011E141E0078163E007C011C5C6C5E
+003F013CEB03F0D81F804A5AD80FE0EC1FC02607FC78EBFF802803FFF807FEC7FC6C90B5
+5A6C6C14F0011F14C0010749C8FC010013F0D901F0C9FCA3495AA31307A25CA2130FA349
+5AA491CAFC130E343C7CA73B>39 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A7989
+19>58 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113801203
+13005A120E5A1218123812300B1C798919>I<ED0180ED03C01507A21680150FA216005D
+A2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2
+141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2
+131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E12
+3EA2123C127CA2127812F8A25A1260225B7BC32D>61 D<49B612C05BA2D90001EB800093
+C7FC5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C8FCA35B5C
+A313035CA313075CA3130F5CA3131F5CA2133FA25CEBFFE0B612E0A32A3E7DBD28>73
+D<49B77E18F818FFD90001D900017F9438003FE04BEC0FF0727E727E14034B6E7EA30207
+825DA3020F4B5A5DA24E5A141F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03FC027FEC
+0FF04BEBFF8092B500FCC8FC5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A1407A284
+13035CA2170F13075C60171F130F5CA3011F033F5B4AEE038018E0013F17071A004A021F
+5B496C160EB600E090380FF01E05075B716C5ACBEAFFE0F03F8041407DBD45>82
+D<EC1F80ECFFE0903903F0707090390FC039F890381F801D90383F000F017E5C5B000114
+07485A48485CA2485A001F140F5E485AA2151F007F5D5BA2153F00FF92C7FC90C7FCA25D
+92387E03805AA215FEEDFC07007E0101140014035E6C0107130E140E3A1F801C7C1C000F
+13783A07C1F03E383A01FFC01FF03A007F0007C029297DA730>97
+D<EB1FC0EA0FFF5CA2EA003FA291C8FCA25BA2137EA213FEA25BA21201A25BA21203A25B
+EC3F800007EBFFE09038F3C1F849C67E01FE137E4848133E49133F5B491480001F141F5B
+5BED3FC0123FA290C7FCA248147F1680127EA215FF00FE15005AA24A5AA25D1403485C14
+07007C5C4A5A5D003C495A003E49C7FC001E137E6C13F8380783F03803FFC0C648C8FC22
+407CBE27>I<EC07F0EC7FFE903801FC0F903907E0038090390FC001C0D93F8013E09038
+7F000701FE131F485A485A16C0485A000F15804990C7FC121F485AA3127F5BA312FF90C9
+FCA6007E1560007F15E01501ED03C06CEC07806DEB0F00001F141E6C6C137C3907E001F0
+3901F01FC06CB5C7FCEB1FF023297DA727>I<EE07F0ED03FF17E0A2ED000FA217C0A216
+1FA21780A2163FA21700A25EA2167EA216FEA25EEC1F80ECFFE1903803F07190390FC039
+F890381F801D90383F000F137E495C00011407485A485A5E485A001F140FA248485CA215
+1F127F495CA2153F12FF90C790C7FCA25DEE038048147EA215FE1607007ED901FC130014
+035E6C0107130E140E3A1F801C7C1C000F13783A07C1F03E383A01FFC01FF03A007F0007
+C02C407DBE2F>I<EC1FE0ECFFFC903803F01E90380FC00F90393F800780D97E0013C049
+1303EA03F8120749130748481480121F49130F003FEC1F00153E397F8001FCEC1FF0B612
+8002F8C7FC90C9FCA45AA616C01501007E1403ED07806CEC0F00151E6C5C6C6C13F83907
+C003E03903E03F802600FFFEC7FCEB3FE022297CA72A>I<143C14FEA21301A314FCEB00
+701400AD137E3801FF803803C7C0EA0703000F13E0120E121C13071238A2EA780F007013
+C0A2EAF01F14801200133F14005B137EA213FE5BA212015B0003130E13F0A20007131EEB
+E01CA2143CEBC0381478147014E013C13803E3C03801FF00EA007C173E7EBC1F>105
+D<ED01C0ED07F0A2150FA316E0ED038092C7FCADEC03E0EC0FF8EC3C3EEC701EECE01FEB
+01C001031480EB0780140049133F010E1400131E131C013C5BA290C7127EA215FEA25DA2
+1401A25DA21403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25C147EA2
+001C13FE007F5BEAFF015C495A495A48485A38F81F80D8783EC8FCEA3FF8EA0FE0245081
+BC25>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C9
+FC16FC49EB03FE92380F0780017EEB3C0FED703F01FE13E0913801C07F9038FC0380EC07
+000001010E14004A131C494890C7FC5C00035BEBF9C0495A01FFC9FC5A14F0EBE3FE9038
+E07F80000FEB1FC06E7EEBC00781001F1303160E1380A2003F151E0207131C010013E0A2
+485DA2007E01031378167000FE01015B15F1489038007F800038023EC7FC29407CBE2F>
+I<D801F0EB0FF0D807FCEB3FFED80F1FEBF01F000E903903C00F80271E0F87007F001C01
+8E1307003C01DC80003813F85CEA781F00705B5CA200F049130F013F5D000090C7FCA216
+1F495D137E163F94C7FC13FE495C167EA200019238FE03804914FCA203011307000303F8
+13005B5FEEF00E0007161E49151C5F1778000F6E6C5A49EC7FC0D80380021FC7FC31297E
+A737>110 D<EC07F8EC7FFE903901FC0F80903907E007E090390FC003F090393F8001F8
+EB7F0001FEEB00FC485A484814FEA2485A120F5B001F15FF485AA2ED01FE127F5BA21503
+00FF15FC90C7FCA2ED07F8A2ED0FF0A2007E15E0007FEC1FC0ED3F80A26CEC7F006C6C13
+FC4A5A6C6C485A3907E00FC02601F03FC7FC3800FFFCEB1FE028297DA72C>I<91381F80
+0C9138FFE01C903903F0707C90390FC0387890391F801CF890383F000F137E4914F00001
+1407485A485A16E0485A121F150F484814C0A3007F141F491480A300FF143F90C71300A3
+5D48147EA315FE007E495A1403A26C13074A5A381F801D000F13793807C1F33901FFC3F0
+38007F03130014075DA3140F5DA3141F5DA2143F147F90381FFFFE5BA2263A7DA729>
+113 D<D801F0EB3F80D807FCEBFFE03A0F1F03C0F0000E90380F00F8391E0F9E03001C13
+BC003CEBF807003813F0A226781FE013F000709038C001C092C7FC5C12F0133F000090C8
+FCA35B137EA313FE5BA312015BA312035BA312075BA3120F5BEA038025297EA729>I<EC
+1FC0ECFFF8903803E03C903807800E90381E0007168049130F49131F153FA201F81400A2
+151C6D90C7FC7FEBFFE014FE90387FFFC06D7F6D13F86D7F13039038001FFE1403140015
+7E000C143E123F487EA248C7123CA25D12FC00F05C0070495A0078495A6C495A260F803E
+C7FC3803FFF838007FC021297CA72B>I<147014FC1301A25CA21303A25CA21307A25CA2
+130FA25CA2007FB512F0B6FC15E039001F8000133FA291C7FCA25BA2137EA213FEA25BA2
+1201A25BA21203A25BA21207EC01C013E01403000F1480A2EBC0071500140E141E5C0007
+13385C3803E1E03801FF80D8003EC7FC1C3A7EB821>I<017E147848B4EB01FC2603C7C0
+13FED807031303000F13E0120E121C0107130100381400167ED8780F143E00705B161EEA
+F01F4A131C1200133F91C7123C16385B137E167801FE14705B16F016E0120149EB01C0A2
+ED0380A2ED0700A20000140E5D6D133C017C5B6D5B90381F03C0903807FF80D901FCC7FC
+27297EA72C>118 D<D901F8133FD907FEEBFFE0903A1E0F83C0F0903A3807C780F89039
+7003CF0301E013FED801C0EBFC071203018013F8D8070015F0EE01C0000E4AC7FCA2001E
+1307A2C75BA2140F5DA3141F5DA3143F92380001C0A34A1303001E1680003F017E130726
+7F80FE14005ED8FF81141ED901DF131CD8FE035C3A7C078F80F03A3C0F07C1E03A1FFC03
+FF802707F0007EC7FC2D297EA734>120 D<137C48B4EC03802603C7C0EB0FC0EA070300
+0F7F000E151F001C168013071238163FD8780F150000705BA2D8F01F5C4A137E1200133F
+91C712FE5E5B137E150113FE495CA2150300015D5BA215075EA2150F151F00005D6D133F
+017C137F017E13FF90393F03DF8090380FFF1FEB01FC90C7123F93C7FCA25DD80380137E
+D80FE013FE001F5C4A5AA24848485A4A5A6CC6485A001C495A001E49C8FC000E137C3807
+81F03803FFC0C648C9FC2A3B7EA72D>I<02F8130ED903FE131ED90FFF131C49EB803C49
+EBC0784914F090397E07F1E09038F800FF49EB1FC049EB07800001EC0F006C48131E90C7
+5A5D5D4A5A4A5A4A5A4AC7FC143E14785C495A495A495A49C8FC011E14E05B5B49130148
+48EB03C0485AD807F8EB078048B4131F3A1F87E07F00391E03FFFE486C5B00785CD87000
+5B00F0EB7FC048011FC7FC27297DA72A>I E /Fp 18 121 df<157815FC14031407141F
+14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>
+49 D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F
+0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC
+4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3F
+A24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C
+6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D
+4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903A
+FFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261
+>67 D<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>73
+D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90
+C7000313F0DA7FFC02007F902601FFF0ED3FFE49496F7E49496F7F49496F7F4990C96C7F
+4948707F4948707F01FF854A177F48864849717EA24849711380A2481BC04A83481BE0A2
+4A83481BF0A3481BF8A291CB7EA3B51AFCAF6C1BF8A26E5FA36C1BF0A36C6D4D13E0A36C
+1BC06E5F6C1B806E5F6CDB01FE16006C6D902607FF80495A4C13E06C6D013F6D495A017F
+91267F03F85C6D6C90277C00FC015B6D6C49D97E035B6D01806E485B6D6D48D91F8F5B6D
+01E0039F90C7FC6D01F06EB45A6DD9FCF85DDA3FFF6E13F0020F6D4913C0020301FF90B5
+C8FC020091B512FC031F180C0303181EDB001FEBE3FE93C7EA01FF74133E74137E7413FE
+F2F8077290B5FC1CFCA285A21CF8A2851CF07314E0A27314C0731480731400735B963800
+7FF8F21FE0576A79D265>81 D<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F
+060113FE727F737F737F85737F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A
+06035B060F13F095B512C092B8C9FC19F819E019F89226F0000313FE9439007FFF80727F
+727F727F727F727F8684A28684A787A71D1C75133EA38575137E73157C7513FC731401B8
+6C6D9038F803F807039038FE07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164
+>I<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB3F
+FC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC01
+071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA45E
+A26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC014
+F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97
+D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC
+491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5B
+A312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D
+147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E0
+33387CB63C>99 D<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC01
+0315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980485B83
+485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5
+FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13
+F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F90
+3A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7FC48
+17E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14
+037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0F
+FFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC0203B5FC
+020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A495AA249
+5AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB512FEA5
+2E547CD329>I<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCAD
+EB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>105 D<D93FF0EB1FFCB591B512C0
+030314F0030F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DA
+F7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>110
+D<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D
+6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F18
+80A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D49
+5B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8
+FC020113E03A387CB643>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF8
+9139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE
+0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7
+FC120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F01F0
+91C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15
+C01300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D
+141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807
+148048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F131F
+133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F00
+15806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF89138
+01FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01
+E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091
+C7FC42377BB54B>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D
+5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB
+8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01
+FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F49
+5A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>120
+D E /Fq 78 122 df<16E04B7EA24B7EA24B7EA24B7EA2ED1DFFA203387FA29238787FC0
+15709238F03FE015E002016D7E15C002036D7E158002076D7E15004A6D7E140E021E6D7E
+141C023C6D7F143802786E7E147002F06E7E5C01016F7E5C01036F7E5C01076F7E91C8FC
+496F7E130E011E6F7E131C013C6F7F13380178707E137001F0707E5B0001717E5B000371
+7E5B0007717E90CAFC48717E120E001E717E001FBAFC481980A24819C0A2BB12E0A24341
+7CC04C>1 D<913801FFC0021F13FC9139FF007F80D903F8EB0FE0D90FF0EB07F8D91FC0
+EB01FCD97F806DB4FC49C86C7E48486F7E00038348486F7E000F8349150F001F83491507
+003F83A348486F7EAA6C6C4B5AA3001F5FA26C6C4B5AA200075F6D151F00035FA26C6C4B
+5A00005FA2017F4BC7FC6D157EA26D6C5C010F5DA26D6C495A00E0EF0380010315E0D870
+019238C007006E130301001580A36C0160EC000E003C017049131E263FFFF0ECFFFEA36C
+5FA339407CBF42>10 D<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF0
+3FD907F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE
+6D91C7FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>
+I<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13
+7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9
+FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB
+1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3
+2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C
+D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92
+C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB
+7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<EA01FC127FA3120712031201B3AC487E
+B512F0A314287DA71A>16 D<B7FCA320037AB52D>22 D<121EEA7F8012FF13C0A213E0A3
+127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19
+>39 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2
+485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37E
+A27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00
+E014701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F137813
+7CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA3
+1480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A
+5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FCB3A91506
+3C3C7BB447>43 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A31201
+1380120313005A120E5A1218123812300B1C798919>I<B512FEA617067F961E>I<121EEA
+7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>I<ED0180ED03C01507A21680150FA216
+005DA2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7
+FCA2141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC
+5BA2131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA212
+1E123EA2123C127CA2127812F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03
+F090387C00F849137C48487F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A2
+90C712034815F8A64815FCB3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6C
+EB1F80000315006C6C133E6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC
+2D>I<EB01C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A3
+1D3D78BC2D>I<EB07FC90383FFF8090B512E03903F01FF83907C007FC390F0001FE001E
+6D7E001C1580003CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E015
+3FA216C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A
+495A495A49C71270133E133C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FC
+A3243D7CBC2D>I<EB07FC90383FFF809038F80FE03901E003F839078001FCD80F007F00
+0E6D7E001E1580D81F80137F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA2
+4A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7F
+C0A216E0153FA216F0A2120C123F487E487EA316E0A249137F6CC713C01278EDFF807E6C
+4913006C495A3907C007FC3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<15
+0E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01C0
+A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8
+FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC
+5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F849
+6C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416
+E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A
+3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E9038
+0FC00F90391F000780133E017EEB1FC049133F4848137F12035B12074848EB3F80ED1F00
+001F91C7FC5BA2123FA3485AA214FE903887FF8039FF8F07E090389C01F09038B800FC01
+B0137E13F0497F16804914C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A2
+6C6C1480A20007EC7F006C6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FC
+C7FC243F7CBC2D>I<1238123C123F90B612FCA316F85A16F016E00078C712010070EC03
+C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2
+147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD
+2D>I<EB03FC90381FFF8090387C07E09038F001F83901E0007C48487F48487F48C7FCED
+0F80121E16C0003E1407A4123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF
+80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E39
+03E01FFF48486C1380260F800313C048487E489038007FE0003E143F007E141F007CEC0F
+F01507481403A31501A46C15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C13
+3ED807F05B3901FC03F86CB512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF
+90387E07C09038FC03F048486C7E48486C7E4848137C000F147E4848137F81003F15805B
+007F15C0A2151F12FF16E0A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF
+000313013900F8039F90387E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F
+801400487E486C13FEA24A5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803
+FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3
+121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F
+80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A3120313005A
+1206120E120C121C5A1230A20A3979A619>I<007FB912E0BA12F0A26C18E0CDFCAE007F
+B912E0BA12F0A26C18E03C167BA147>61 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7
+A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA3
+4A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C
+153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A3
+3D417DC044>65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF
+7FC0EF3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03
+FCEE0FF8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018
+F8170F18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C
+90380FFE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF
+801E913A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE014
+0749481403495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B18
+0E127FA349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D1638
+6C6C1678000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D9
+03FE143E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF
+42>I<B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084
+717E717E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF
+19004D5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8
+FC3C3E7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A3
+1870A41838161CA41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2161C
+A21807A3180E93C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486CEB01
+FFB912F0A3383E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707
+A21703A31701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115
+001678A21638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE
+131C021F9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91F
+E0141F4948140F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F
+173CA2485AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC
+123FA27F121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED9
+03FEEC3C7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF0
+3C427BBF47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FC
+A30280C7120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EB
+F000EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<B612F8A3000101E0C9FC38007F80
+B3B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C133FB8FCA3313E7DBD39>
+76 D<B500C093383FFFF0A300016D93387FF800D8007F18E0D977F016EFA3D973F8ED01
+CFA2D971FCED038FA3D970FEED070FA26E150E80A26E6C141CA36E6C1438A26E6C1470A3
+6E6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A2037F130EA36F6C5AA26F6C5AA3
+6F6C5AA25FED07F0A2923803F9C0A36FB45AA26F90C7FCA213F8486C147ED807FFEF3FF8
+B500F8013C011FB512F0A34C3E7DBD53>I<B56C91B512F88080D8007F030713006EEC01
+FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E
+7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE
+0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487ED8
+07FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E
+0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E0001
+8349150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E049163F
+A300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A00
+035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03
+F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EE
+FF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A2
+18F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9
+FCB3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F00
+0FE0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248486F7E
+49150300038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249163FA2
+00FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F80
+5B6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F819038
+061FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE007
+E091271FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF03
+18FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FCEEFF80
+0001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017
+FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC070
+7E707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB600
+C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC130C90
+391FFF801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC4848130F001F140748
+C71203003E1401007E1400A2007C157C12FCA2163CA36C151CA27EA26C6C14007F7FEA3F
+F8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F0207
+13F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C
+157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE
+00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393F
+C0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E
+4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80
+EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D
+6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF0
+3D407DBD44>I<B500FE017FB5D88007B5FCA3000301C0010101E0C713F86C90C849EC3F
+E07148EC0F807E7215006E143F017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2
+933801C3FC6E18F001076104037F6E0281140101036104077F17006D6C4D5AA2040EEB7F
+806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0161E023F171C047814F0DBE070
+010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01
+FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B81037C153EA20378151E0338
+151C58407EBD5D>87 D<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>91
+D<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>93 D<1318133C137E13FF3801E7
+803803C3C0380781E0380F00F0001E137848133C48131E48130F00601306180D76BD2D>
+I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79BD19>I<EB0FF8EBFFFE3903F01F80
+39078007E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103
+B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485AA248C7FCEE038012FEA315FF
+A3007F5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C0FFE3A01FFF807FC3A003FC0
+01F0292A7DA82D>97 D<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E0
+9039FDE001F09039FFC000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717
+F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003
+F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00
+F8017C131E4848131F4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FC
+A290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C13
+1E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715
+031501B114FF010713E190381F80F990387E003D49131FD803F81307485A491303484813
+01121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E
+6C6C497ED8007C017913F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB
+01FE90380FFFC090383F03F09038FC01F848486C7E4848137E48487F000F158049131F00
+1F15C04848130FA2127F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E15
+01000F15C06C6C13036DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE00100
+90C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F
+811401137FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C
+>I<167C903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E0
+00FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803
+E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E
+6C15E06C810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E
+007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0
+293D7EA82D>I<EA01FC12FFA3120712031201B1EC01FE913807FFC091381E07E0913878
+03F09138E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FC
+A32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712
+031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB007814
+00AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F0138
+7C03F0381E07C0380FFF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292
+B51280A392383FFC0016E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E
+13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA2
+82486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487E
+B512F8A3153F7DBE1A>I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0
+913B7803F03C01F80007903BE001F87000FC2603F9C06D487F000101805C01FBD900FF14
+7F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA7
+4C>I<3901F801FE00FF903807FFC091381E07E091387803F000079038E001F82603F9C0
+7F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>
+I<14FF010713E090381F81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0
+000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F
+15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC9038
+0FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE0
+03F03A03FFC001FC6C496C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE
+0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780F
+C0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90
+381F80F090397F00387C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501
+485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E1379
+90383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F8
+07E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300
+A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F00
+3E1307003C1303127C0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE
+6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E
+15F07E14016C14E06CEB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>
+I<131CA6133CA4137CA213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0
+A912009038FE01C0A2EB7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801
+FC14FE00FF147FA3000714030003140100011400B3A51501A31503120015076DEB06FF01
+7E010E13806D4913FC90381FC078903807FFE00100903880FE002E297DA733>I<B539E0
+0FFFE0A32707FE000313006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2
+ECC007011F91C7FCA290380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2EC
+FEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A329
+0FFE003FE00013C06C486D48EB3F806C4817006D010F141E00016F131C15076D163C0000
+4A6C1338A2017F5E4B7E151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90F
+E0017F5BEDE03F02F0140701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02
+FF14DE6D15FCED00076D5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>
+I<B539F01FFFE0A30003D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49
+C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E8114
+7BECF1FC903801E1FEECC0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC
+80486C80000F4A7EB539803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE00031300
+6C48EB01FC6F5A00015D7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A01
+0F130EA26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8
+FCA2140EA2141E141C143C1438A2147800181370127EB45BA2495AA248485AD87E07C9FC
+EA780EEA3C3CEA1FF8EA07E02B3A7EA630>I E /Fr 35 121 df<EDFFF8020F13FF027F
+8049B612E001079038C01FF090390FFE0007D91FF8497ED93FE0131F4948497E13FF5C5A
+91C7FCA2705A705AEE03C093C8FCA6EE03FCB8FCA50001903880001F160FB3AB007FD9FE
+03B512F0A534407EBF3A>12 D<B612E0A91B097F9823>45 D<EA0FC0EA1FE0EA3FF0EA7F
+F8EAFFFCA6EA7FF8EA3FF0EA1FE0EA0FC00E0E798D1D>I<140F143F5C495A130F48B5FC
+B6FCA313F7EAFE071200B3B3A8B712F0A5243C78BB34>49 D<903803FF80013F13F890B5
+12FE00036E7E4881260FF80F7F261FC0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F
+1380A46C5A6C5A6C5A0007C7FCC8FC4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7
+FC5D4A5AEC1FE04A5A4A5A9139FF000F80EB01FC495A4948EB1F00495AEB1F8049C7FC01
+7E5C5B48B7FC485D5A5A5A5A5AB7FC5EA4293C7BBB34>I<903801FFE0010F13FE013F6D
+7E90B612E04801817F3A03FC007FF8D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C
+48133FD801F05CC8FC4B5A5E4B5A4A5B020F5B902607FFFEC7FC15F815FEEDFFC0D90001
+13F06E6C7E6F7E6F7E6F7E1780A26F13C0A217E0EA0FC0487E487E487E487EA317C0A25D
+491580127F49491300D83FC0495A6C6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7
+FC010313E02B3D7CBB34>I<ED01F815031507A2150F151F153FA2157F15FF5C5CA25C5C
+EC1FBFEC3F3F143E147C14FCEB01F814F0EB03E01307EB0FC0EB1F801400133E137E5B48
+5A5B485A1207485A5B48C7FC5A127E5AB812F8A5C8387FF800AA49B612F8A52D3C7DBB34
+>I<16FCA24B7EA24B7EA34B7FA24B7FA34B7FA24B7FA34B7F157C03FC7FEDF87FA20201
+80EDF03F0203804B7E02078115C082020F814B7E021F811500824A81023E7F027E81027C
+7FA202FC814A147F49B77EA34982A2D907E0C7001F7F4A80010F835C83011F8391C87E49
+83133E83017E83017C81B500FC91B612FCA5463F7CBE4F>65 D<922607FFC0130E92B500
+FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C0
+1300013F90C8127F4948151FD9FFF8150F48491507485B4A1503481701485B18004890CA
+FC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA27F6C187E197C6C7F19FC6C
+6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D6CED3F80010F01C0ECFF00
+6D01F8EB03FE6D9039FF801FFC010091B55A023F15E002071580020002FCC7FC030713C0
+3F407ABE4C>67 D<B812F8EFFF8018F018FC18FF26003FFCC76C13C005077F05017F716C
+7E727E727E727E721380A27213C0A27213E0A21AF084A21AF8A41AFCA5197FA319FFA51A
+F8A41AF0A2601AE0A24E13C0A24E13804E1300604E5A4E5A4D485A050713E0057F5BBA5A
+4EC7FC18F818C005F8C8FC463E7DBD50>I<BAFCA4198026003FFEC7123F170717018318
+3FA2181FF00FC0A31807EE07C0A3F003E0A3160F95C7FC161F163F16FF91B6FCA54AC6FC
+163F161F040F147CA2160719F8A593C71201A219F01803A21807A2180FF01FE0183F18FF
+1703173FBAFCA219C0A33E3D7DBC45>I<B6051FB512C06F5EA26F5EA2D8003F97C7FC6F
+16F7A26E6CED01E7A26E6CED03C7A36E6CED0787A26E6CED0F07A26E6C151EA36E6D143C
+A26E6D1478A26E6D14F0A26F6CEB01E0A36F6CEB03C0A26F6CEB0780A26F6CEB0F00A36F
+6C131EA26F6D5AA26F6D5AA26F6D5AA393387FF1E0A293383FFBC0A270B45AA37090C7FC
+A2705AA2705AB600C0031FB612C0A2705AA2705A5A3E7CBD63>77
+D<ED3FFF0203B512F0021F14FE027F6E7E902701FFF80713E00107903980007FF84948C7
+EA1FFCD93FFC6EB4FC49486E7F49486E7F48496E7F4A8048496F7E488491C9123F488448
+48707EA34848707EA3007F1980A24982A200FF19C0AD007F1980A26D5EA2003F1900A36C
+6C4C5AA26C6C4C5AED07F06C9026801FFC495A6C4AB45C6E48EB80FF6C9027E07E0FC15B
+6C9126F807E15B90287FF0F003E35BD93FFC6DB5C7FCD91FFE6D5B902607FFF814F80101
+D9FE0313E06D90B65A021F4AC7124002036E14E0DA003FEB3F8092C77FF0E001F0F80F71
+B5FCA21AC083A21A8083A271140061715B715B725AF01FC043517ABE4F>81
+D<B87E17FCEFFF8018F08428003FFC000113FE9338003FFF050F7F717F717FA2858385A7
+61A25F61614D5B4D90C8FCEF3FFE4CB45A91B712F018C04DC9FC717E9126FC000F7F0401
+13F0707F717EA2717EA2717EA685A6F207C019C0A271140F07E01380B76DEBF01F719038
+FC3F007190B5FC716C5B061F13F8CB000113E04A3F7DBD4E>I<903807FFC0013F13F848
+B6FC48812607FE037F260FF8007F6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC
+153F91B5FC130F137F3901FFFE0F4813E0000F1380381FFE00485A5B485A12FF5BA4151F
+7F007F143F6D90387BFF806C6C01FB13FE391FFF07F36CEBFFE100031480C6EC003FD91F
+F890C7FC2F2B7DA933>97 D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80
+DAFF8113F09139FC003FF802F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0
+A25E1880A218005E6E5C6E495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91
+C7FCD9E00713FCC7000113C033407DBE3A>I<EC7FF00107B5FC011F14C0017F14E09039
+FFF01FF0489038800FF848EB001F4848EB3FFC120F485AA2485AA2007FEC1FF849EB0FF0
+ED03C000FF91C7FCAB127F7FA3003F153E7F001F157E6C6C147C6C6C14FC91388001F86C
+9038C003F0C69038F81FE06DB512C0011F14800107EBFE009038007FF0272B7DA92E>I<
+EE07F8ED07FFA5ED003F161FAFEC7FF0903807FFFE011FEBFF9F017F14DF9039FFF01FFF
+48EBC00348EB00014848EB007F485A001F153F5B123FA2127F5BA212FFAA127FA37F123F
+A26C6C147F120F6D14FF6C6C01037F6C6D48EBFFE06CEBF03F6C6CB512BF6D143F010713
+FC010001E0EBE00033407DBE3A>I<ECFFF0010713FE011F6D7E017F809039FFE07FE048
+9038801FF048496C7E48486D7E48486D7E121F491301003F81A2485A6F1380A212FFA290
+B7FCA401F0C9FCA5127FA27F123FEE0F806C7E161F6C6C15006C6C5C6C6D137E6C9038E0
+01FC6C9038F80FF8013FB55A6D14C0010391C7FC9038007FF8292B7DA930>I<EC07FE91
+387FFF8049B512C0010714E090390FFE3FF0EB1FF090393FE07FF8EB7FC013FF1480A248
+9038003FF0ED1FE0ED0FC092C7FCAAB612E0A500010180C7FCB3AC007FEBFF80A525407D
+BF20>I<903A03FF8007F0013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC
+007FC34848EB3FE1001FEDF1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C
+6C495A3A03FF83FF8091B5C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6
+FC16F016FC6C15FF17806C16C06C16E01207001F16F0393FE000034848EB003F49EC1FF8
+00FF150F90C81207A56C6CEC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF
+800F13006C90B55AC615F8013F14E0010101FCC7FC2F3D7DA834>I<EA01F8487E487E48
+7E481380A66C13006C5A6C5A6C5AC8FCA913FFB5FCA512077EB3ABB512F8A515407CBF1D
+>105 D<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5AED07F0ED1FE04B5A4B5A
+4BC8FCEC03FC4A5A4A5A141FEC7FF84A7EA2818102E77F02C37F148102007F826F7E6F7E
+151F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37>107
+D<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B50107
+13F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013EDAF9
+F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03FEBFF
+80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F000701
+3C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>I<EC7FF0903803FF
+FE011FEBFFC0017F14F09039FFE03FF8489038800FFC3A03FE0003FE48486D7E000F1680
+48486D13C0A2003F16E049147F007F16F0A400FF16F8AA007F16F0A46C6CECFFE0A2001F
+16C06C6C491380A26C6C4913003A03FF800FFE6C9038E03FFC6C6CB512F0011F14C00107
+91C7FC9038007FF02D2B7DA934>I<01FFEBFFE0B5000713FC021FEBFF80027F80DAFF81
+13F09139FC007FF8000301F06D7E4A6D7E4A130F4A6D7E1880A27013C0A38218E0AA4C13
+C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC028713
+FC028113C00280C9FCACB512FEA5333B7DA83A>I<DA7FE01378902607FFFC13F8011FEB
+FF01017F14819039FFF81FC3489038E007E74890388003F74890380001FF48487F001F15
+7F5B003F153F5B127F161FA2485AAA127F7FA36C6C143F167F121F6C6C14FF6D5B6C6D5A
+6CEBC00F6CEBF03F6C6CB512BF6DEBFE3F010713F8010013C091C7FCAC030FB512E0A533
+3B7DA837>I<3901FE01FE00FF903807FF804A13E04A13F0EC3F1F91387C3FF8000713F8
+000313F0EBFFE0A29138C01FF0ED0FE091388007C092C7FCA391C8FCB3A2B6FCA525297D
+A82B>I<90383FFC1E48B512BE000714FE5A381FF00F383F800148C7FC007E147EA200FE
+143EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14F06C806C806C806C80C61580131F13
+00020713C014000078147F00F8143F151F7EA27E16806C143F6D140001E013FF9038F803
+FE90B55A15F0D8F87F13C026E00FFEC7FC222B7DA929>I<EB07C0A5130FA4131FA3133F
+137FA213FF5A1207001FEBFFFEB6FCA40001EBC000B3151FA96CEBE03EA2017F137EECF8
+FC90383FFFF86D13F0010713E001001380203B7EB929>I<D9FF80EB0FF8B5EB0FFFA500
+07EC007F6C153FB3A5167FA316FF6C5C4B7F6C903AC007DFFFE09138F01F9F6DB5121F6D
+13FE010F13F8010101E0EBE000332A7CA83A>I<B53CFC3FFFFC03FFFEA50003D9800090
+39C0000F806E161F6C037F15006E496C5B6C183E836E48157E017F177C6E486D13FC013F
+02EF5C83DAFC071401011F02C75CDAFE0FEBFE03010F02835C17FFDAFF1F14076D02015C
+03BF148F6DD9BE005C18CF03FE14DF6D49017F90C7FC18FF6D496D5AA36E486D5AA26E48
+6D5AA36E486D5AA26E486D5A47287EA74C>119 D<B5D8FC03B51280A5C69026E0007FC7
+FC6E13FE6D6C5B6D6C485A6D6C485A010F13076D6C485AED9FC06DEBFF806D91C8FC6D5B
+6E5AA2143F6E7E140F814A7F4A7F4A7F02FE7F903801FC7F49486C7E02F07F49486C7E49
+486C7E011F7F49486C7FD97F008001FE6D7FB5D8C007EBFFC0A532287EA737>I
+E /Fs 8 119 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>58
+D<91B712F018FF19E002009039C0003FF86F48EB07FC03FFEC01FEF0007F93C8EA3F801A
+C0F11FE05C5D1AF0A214035DA30207EE3FE05DA2F17FC0020F17804B15FF1A004E5A021F
+4B5A4B4A5AF00FE04E5A023F037FC7FC4BEB03FCEF1FF092B612804A4AC8FC923980007F
+80EF0FC0EF07F002FF6E7E92C77F1701845B4A1400A2170113035CA2170313075CA24D5A
+130F5CA3011F18185CA2013F4C13381A304A6F1370D9FFE0020314E0B600E0ED01C00501
+EB0380943900FE0F00CBEA3FFEF007F045467CC34A>82 D<EC07F8EC3FFE903901FC0780
+903903F003C090390FC001E090381F8000017FC7FC01FE1470485A484814F0000715E05B
+000F1401484814C015034848EB0780ED1F0015FC007FEB1FF090B5128002F0C7FC0180C8
+FC12FF90C9FCA55AA41618007E15381670007F15E06CEC01C0ED03806CEC07006C6C131E
+6D13383907E001F03901F00FC026007FFEC7FCEB1FF0252D7CAB2D>101
+D<141E143F5C5CA3147E143891C7FCAE133EEBFF803801C3C0380781E0380601F0120E12
+1CEA180312381230A2EA700700605BA2EAE00F00C05BEA001F5CA2133F91C7FCA25B137E
+13FE5BA212015BEC03800003140013F01207495A1406140E140CEBC01C141814385C0003
+5BEBE1C0C6B45A013EC7FC19437DC121>105 D<01F8EB03FCD803FEEB1FFFD8071F9038
+7C0FC03B0E0F80E007E03A0C07C3C003001CD9C7007F001801CE1301003801DC80003013
+D8EB0FF800705B00605BA200E0491303D8C01F5D5C12001607013F5D91C7FCA2160F495D
+137E161F5F13FE49143F94C7FC187000014B136049147E16FE4C13E0000317C049150104
+F81380170300071700495D170EEE781C000FED7C3849EC1FF0D80380EC07C0342D7DAB3A
+>110 D<EC03FCEC3FFF9138FE07C0903903F003F049486C7E90391FC000FC49C7127C49
+147E01FE147F484880485A000716805B120F485AA2485A167F127F5BA216FF00FF160090
+C8FCA25D5E5A4B5AA25E15075E4B5A151F007E5D4B5A6C4AC7FC15FE391F8001F86C6C48
+5A3907E00FC03901F03F802600FFFCC8FCEB1FE0292D7CAB2F>I<EC0FF0EC7FFE903901
+F00F809039078001C049C712E0011E14605BED01F0491307A201F8EB0FE05B7FED03806D
+90C7FC7F7F14F86DB47E15E06D13F86D7F01077F1300EC07FF140081ED3F80151F120E00
+3FEC0F00487EA25D48C7121EA200FC5C12605D00705C6C495A6CEB07C0260F803FC7FC38
+03FFFC38007FE0242D7BAB2E>115 D<013E140ED9FF80EB3F802603C3C0137F380703E0
+380601F0120E121CD81803143F0038151F0030150FA2D87007140700605BA2D8E00F1500
+00C0497FEA001F4A5B1606133F91C7FC160E49140C137EA2161C01FE14185B1638163016
+704848146016E05E150100005D15036D49C7FC1506017C130E017E5B6D137890380F81E0
+6DB45AD900FEC8FC292D7DAB2F>118 D E /Ft 14 118 df<121FEA3F80EA7FC0EAFFE0
+A5EA7FC0EA3F80EA1F000B0B6C8A33>46 D<EC07F8EC3FFF91B57E010314E0010F804980
+90383FFC0F90397FE003FC9038FF80014890C77ED803FC147E49EB7E7F0007903801FFBF
+D9F00713FF4848481480495A001F5B018013C3003FEB7F810100010013C002FE137F4849
+133FEA7E014A131FA212FEEAFC034A130FA96E131FD8FE011580127EA26E133FD87F0015
+006C6D5B027F13FE01801381001F90383FC3FC01C013FF000F6D5B6D6C5B6C6C6C5BD9F8
+0113800003D9007EC7FC6D9038000F806CB4EC1FC06C6D133FD97FE013FF90263FFC0713
+806DB612006D5C010314F801005C023F1380DA07FCC7FC2A3F7CBD33>64
+D<EB1FFC90B57E000314E048804814FC48809038F007FFEBE0016E7F153F6C48806C4813
+1FC87F150FA5EC0FFF49B5FC131F137F48B6FC0007140F4813C0381FFC00EA3FF0EA7FC0
+5B48C7FC5AA56C141F7E6D137FD83FE0497ED9F807EBFFF06CB712F87E6C14F36C14C1C6
+9138003FF0D91FF090C7FC2D2E7BAC33>97 D<EA3FFC487E12FFA2127F123F1200ABEC01
+FE91380FFFC04A13F0027F7F91B512FE90B7FCECFE07DAF800138002E0EB7FC04AEB3FE0
+4A131FEE0FF091C7FC16074915F81603A217FC1601A9160317F8A26D140717F06E130F17
+E06E131FEE3FC06E137F9139F801FF80DAFE07130091B55A495C6E5BD97E3F13E0D93C0F
+138090260003FEC7FC2E3E7FBC33>I<ED7FF84B7E5CA280157F1501ABEB01FF010713C1
+011F13F1017F13F990B6FC5A4813813907FE003FD80FF8131F49130F4848130749130312
+3F491301127F90C7FCA25A5AA97E7E15037F123F6D1307A26C6C130F6D131F6C6C133F6C
+6C137F2603FF81B512F091B612F8C602FD13FC6D13F96D01E113F8010F018013F0D901FE
+C8FC2E3E7DBC33>100 D<ECFF80010713F0011F13FC497F90B6FC48158048018013C03A
+07FE003FE001F8EB0FF048481307484814F8491303003F15FC491301127F90C7FC16FE15
+005A5AB7FCA516FC48C9FC7E7EA36C7E167C6C6C14FE7F6C7E6D13016C6CEB03FC6CB413
+0F6C9038C03FF86C90B512F06D14E06D14C0010F1400010313FC9038007FE0272E7BAC33
+>I<D901FEEB1FE0903A0FFFC0FFF0013F01F313F84990B512FC90B7FC5A48010313E126
+07FC00EB80F849017F1360484890383FC00049131FA2001F8149130FA66D131F000F5DA2
+6D133F6C6C495A6D13FF2603FF0390C7FCECFFFE485C5D5DD80FCF13C0D981FEC8FC0180
+C9FCA27FA26C7E7F90B512FC6CECFFC06C15F0000715FC4815FF4816809038E000074848
+9038007FC090C8EA1FE048150F007E150700FE16F0481503A56C1507007E16E0007F150F
+6C6CEC1FC001E0147FD81FF8903801FF80270FFF801F13006C90B55A6C5DC615F0013F14
+C0010F91C7FC010013F02E447DAB33>103 D<EA3FFC487E12FFA2127F123F1200AB4AB4
+FC020713C0021F13F0027F7F91B5FC90B67EED07FEECF801ECF0004A7F4A7F5CA291C7FC
+A35BB3A43B3FFFF80FFFFC486D4813FEB56C4813FFA26C496C13FE6C496C13FC303D7FBC
+33>I<383FFFFC487FB5FCA27E7EC7FCB3B3AD003FB612F84815FCB712FEA26C15FC6C15
+F8273D7ABC33>108 D<4AB4FC263FFC0713C0267FFE1F13F000FF017F7F91B5FC6CB67E
+6CEC07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF80FFFFC486D4813FE
+B56C4813FFA26C496C13FE6C496C13FC302C7FAB33>110 D<EB01FE90380FFFC0013F13
+F0497F90B57E488048EB03FF2607FC0013804848EB7FC049133F4848EB1FE049130F4848
+EB07F0A2007F15F890C71203A300FEEC01FCAA6C14036C15F8A26D1307003F15F06D130F
+A26C6CEB1FE06D133F6C6CEB7FC06C6CEBFF802603FF0313006CEBFFFE6C5C6D5B6D5B01
+0F13C0D901FEC7FC262E7AAC33>I<ED03FE3B7FFF801FFF80B5D8C07F13E002C1B5FC02
+C314F014C76C9038CFFE0F39001FDFF09139FFC007E092388003C092C8FC5C5C5CA25CA2
+5CA35CB2007FB512FEB7FCA46C5C2C2C7DAB33>114 D<90381FFE0F90B5EA8F80000314
+FF120F5A5AEBF007387F800190C7FC00FE147F5A153FA37E007FEC1F0001C090C7FCEA3F
+F8EBFFC06C13FF6C14E0000314F8C680011F13FF01001480020713C0EC007FED1FE0007C
+140F00FEEC07F01503A27EA27F15076D14E06D130F6DEB3FC09038FE01FF90B612801600
+00FD5C00FC14F8D8F83F13E0D8780790C7FC242E79AC33>I<D83FFCEB1FFE486C497E00
+FF5CA2007F80003F800000EC007FB3A75EA25DA26D5B90387F800FDAE03F13FC6DB612FE
+17FF6D806D01FE13FE01039038F83FFC010001C0C7FC302C7FAA33>117
+D E /Fu 15 112 df<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B
+13F85B12015B1203A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127C
+A3127EA4123EA2123FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB07
+80EB03C01301EB00E014701438141C140C166476CA26>40 D<12C07E12707E7E7E120F6C
+7E6C7EA26C7E6C7EA21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0
+A21301A214F8A41300A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80
+A3EB1F00A2131E133E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A1664
+7BCA26>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>46
+D<143014F013011303131F13FFB5FC13E713071200B3B3B0497E497E007FB6FCA3204278
+C131>49 D<14FF010713E0011F13F890387F00FE01FC133FD801F0EB1F804848EB0FC049
+EB07E00007EC03F048481301A290C713F8481400A47FA26D130116F07F6C6CEB03E013FC
+6C6CEB07C09039FF800F806C9038C01F006CEBF03EECF87839007FFEF090383FFFC07F01
+077F6D13F8497F90381E7FFFD97C1F1380496C13C02601E00313E048486C13F000079038
+007FF84848EB3FFC48C7120F003EEC07FE150148140016FF167F48153FA2161FA56C151E
+007C153EA2007E153C003E157C6C15F86DEB01F06C6CEB03E06C6CEB07C0D803F8EB1F80
+C6B4EBFF0090383FFFFC010F13F00101138028447CC131>56 D<14FF010713E0011F13F8
+90387F80FC9038FC007E48487F4848EB1F804848EB0FC0000FEC07E0485AED03F0485A16
+F8007F140190C713FCA25AA216FE1500A516FFA46C5CA36C7E5D121F7F000F5C6C6C1306
+150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF80FE903801FE0090C8FC150116FCA4
+ED03F8A216F0D80F801307486C14E0486C130F16C0ED1F80A249EB3F0049137E001EC75A
+001C495A000F495A3907E01FE06CB51280C649C7FCEB1FF028447CC131>I<121EEA7F80
+A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2B78
+AA1B>I<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA3ED30FFA203707FED607FA203E07F
+EDC03FA2020180ED801FA2DA03007F160FA20206801607A24A6D7EA34A6D7EA34A6D7EA2
+0270810260147FA202E08191B7FCA249820280C7121FA249C87F170FA20106821707A249
+6F7EA3496F7EA3496F7EA201788313F8486C83D80FFF03037FB500E0027FEBFFC0A34247
+7DC649>65 D<B6D8C003B6FCA3000101E0C70007138026007F80913801FE00B3A991B7FC
+A30280C71201B3AC2601FFE0913807FF80B6D8C003B6FCA340447CC349>72
+D<49B41303010FEBE007013F13F89039FE00FE0FD801F8131FD807E0EB079F49EB03DF48
+486DB4FC48C8FC4881003E81127E82127C00FC81A282A37E82A27EA26C6C91C7FC7F7FEA
+3FF813FE381FFFE06C13FE6CEBFFE06C14FC6C14FF6C15C0013F14F0010F80010180D900
+1F7F14019138001FFF03031380816F13C0167F163F161F17E000C0150FA31607A37EA36C
+16C0160F7E17806C151F6C16006C5D6D147ED8FBC05CD8F9F0495AD8F07C495A90393FC0
+0FE0D8E00FB51280010149C7FC39C0003FF02B487BC536>83 D<EC7F80903803FFF09038
+0FC07C90383F000F01FCEB03804848EB01C00003140F4848EB1FE049133F120F485AA248
+5AED1FC0007FEC070092C7FCA290C9FC5AAB7E7FA2123F16307F001F15706C6C146016E0
+6C6C14C06C6C13010001EC03806C6CEB0700013F131E90381FC078903807FFF001001380
+242E7DAC2B>99 D<167FED3FFFA315018182B3EC7F80903803FFF090380FC07C90383F00
+0E017E1307496D5AD803F87F48487F5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2
+123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F011C13FE90
+380FC0F8903803FFE09026007F0013002F467DC436>I<EB01FE903807FFC090381F03F0
+90387E00FC49137E48487F485A4848EB1F80000F15C049130F121F484814E01507A2007F
+15F090C7FCA25AA390B6FCA290C9FCA67EA27FA2123F16306C7E1670000F15606D14E06C
+6C14C0000314016C6CEB03806C6CEB0700013E131E90381F80F8903803FFE0010090C7FC
+242E7DAC2B>I<EA01FC12FFA3120712031201B3B3B3A5487EB512F8A315457DC41C>108
+D<EC7F80903803FFF090380FC0FC90383E001F496D7E496D7E48486D7E48486D7E48486D
+7E000F81A24848147E003F157FA290C87E481680A44816C0AA6C1680A26D147F003F1600
+A2001F157E6D14FE000F5D6D130100075D6C6C495A6C6C495A6C6C495A013E49C7FC9038
+1FC0FE903807FFF89038007F802A2E7DAC31>111 D E /Fv 25 121
+df<EE3FF0923803FFFE031F6D7E92397FC01FC0913A01FE0003E0DA07F8EB00F04A4814
+784A48804A48EB01FC4A48EB07FE4AC7FC4948140F13035C13075C715A010F6F5A4AEC00
+E095C8FCB3EF03FEB9FCA426000FF0C7120F1703A21701B3B3AD496C4A7E496C4A7F003F
+B5D8FC07B61280A441657EE448>12 D<B712F0A7240780A12B>45
+D<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F00C7FCB3B3A2120FEA3FC0EA7FE0EA
+FFF0A6EA7FE0EA3FC0EA0F000C3E74BD24>58 D<170FA34D7EA24D7EA34D7EA34D7EA34C
+7F17DFA29338039FFC178FA29338070FFE1707040F7FEE0E03A2041E80EE1C01A2043C80
+EE3800A24C80187FA24C80183FA24B4880181F0303814C130FA203078193C71207A24B81
+030E80A24B8284A24B8284A24B82197F03F0824B153FA20201834B151FA202038392B8FC
+A24A83A292C91207020E8385A24A8485023C84023882A20278840270177FA202F0844A17
+3FA24948841A1FA24948841A0FA249CB7F1A074985865B496C85497E48486C4D7F000F01
+F8051F13F0B60407B612F0A45C657DE463>65 D<B712C0A4C66CEB8000D91FFEC7FC6D5A
+B3B3B3B3AE497E90387FFF80B712C0A422627AE12F>73 D<933801FFE0043F13FF4BB612
+E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A48C8EA3FE0DA03FCED0FF0DA0F
+F0ED03FC4A486F7E4A486F7E4A48707E4ACA6C7E4948717E4948717E4948717E4948717E
+4948717E013F854A83017F864948727EA24890CC6C7EA24848737EA24848737EA2000F87
+491907001F87A34848737EA4007F1C80A24985A400FF1CC0AF6C6C4F1380A5003F1C006D
+61A3001F63A26D190F000F63A26C6C4F5AA36C6C4F5AA26C6D4E5A6C636E18FF017F626D
+6C4D90C7FC6E5F011F616D6C4D5A6D6C4D5A0103616E171F6D6C4D5A6D6D4C5ADA3FC04C
+C8FCDA1FF0ED03FE6E6C4B5A6E6C4B5ADA01FFED3FE09126007FC0ECFF80DB1FF0D903FE
+C9FCDB07FFEB3FF8030190B512E0DB003F91CAFC040113E05A667AE367>79
+D<933801FFE0043F13FF4BB612E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A
+48C8EA3FE0DA03FCED0FF0DA0FF8ED07FCDA1FE0ED01FE4A486F7E4A48707E4ACA6C7E49
+48717E4948717E4948717E010F854948717E4948717EA24948717F01FF864A187F4890CC
+6C7EA2488749191F00078749190F000F87A2001F87491907A2003F87A24985A2007F1C80
+A44985A200FF1CC0AF007F1C806D61A4003F1C00A36D61001F63A36C6C4F5AA20007636D
+191FA26C6C4F5AA26C636C6DDA3F804A5AEFFFE06D6C010301F84A5A6D6C902607C07C49
+90C7FC93380F001E6D6C011E6D495A6D6C6F495A0107021CD903805B6D6C013C6D6C485A
+6E0138151F6D6C0300495A6D01806F485ADA3FC04CC8FCDA1FE0ED71FE91260FF83CEC77
+FC912607FC1CEC7FF8912601FF1EEC3FE09126007FDEECFF80DB1FFFD903FEC9FC030790
+38C03FF8030190B56C1560DB003F143C0401EBE01C93C8121EA21DE0191FA3736C13011D
+C0741303A274130774130F736CEB1F8074133F9738FF01FF7390B51200A264856485745B
+745B745B08071380E001FEC7FC5B807AE367>81 D<EC3FF0903803FFFE010F6D7E90393F
+C03FE090397E0007F801F86D7ED801E06D7E48486D7E48486E7E48C86C7E7F01F06E7E48
+7E6D6E7EA3707EA36C5AEA03E0C9FCA6167FED7FFF020FB5FC91387FF807903801FF8090
+3807FC00EB1FF0EB7FC0495AD803FEC7FC485A120F5B485A485AA2484817E0A312FF5BA2
+160FA3161F6D141B007F153B16736D913971FC01C06C6C14E1001FEC01C1D80FFC903A07
+80FE03806C6C903A0F00FF07002701FF807E6DB4FC27007FFFF86D5A011F01E0EB1FF801
+0190C7EA07E03B417ABF42>97 D<4AB47E020F13F8023F13FE9139FF007F80D903FCEB07
+E0D907F0EB01F0D91FE0EB007849488049488049C87E48485D4915FF00034B138048485C
+A2485AA2485AA2003F6F130049EC007C94C7FC127FA35B12FFAD127F7FA4123F7FA2001F
+EE01C07F000F16036D168012076C6C15076D160000015E6C6C151E6D6C5C6D6C5C6D6C5C
+D90FF8495AD903FCEB07C0903A00FF803F8091263FFFFEC7FC020F13F80201138032417C
+BF3A>99 D<181EEF3FFEEE07FFA4EE000F1703A21701B3AAEDFF80020F13F8023F13FE91
+39FF803F81903A03FC0007C14948EB01E1D91FE0EB00F94948147D4948143D49C8121F48
+48150F491507120348481503491501120F121F5BA2123F5B127FA45B12FFAD127F7FA312
+3FA27F121FA26C6C1503A26C6C150712036D150F6C6C151F0000163D137F6D6CECF9FF6D
+6CEB01F1D90FF0D903C113C06D6CD90F81EBFF80D901FFEB7F019039007FFFFC021F13E0
+0201010091C7FC41657CE349>I<EC03FE91381FFFE091B512F8903901FE03FE903A07F0
+007F8049486D7ED93FC06D7E49C76C7E496E7E4914034848814848140100078249140000
+0F8283485A1880123F49153FA2007F17C0A35BA212FF90B8FCA30180CAFCA9127F7FA312
+3FA27F121FEF01C06C7E17036C6C1680A26C6C15070001EE0F006D150E6C6C151E6D6C5C
+6D6C5C6D6C5CD907F0EB03E0D903FC495A902700FF803FC7FC91383FFFFC020F13F00201
+138032417CBF3A>I<EB03C0EA07FFB5FCA41201EA007FA2133FB3AAEE7FE0923803FFFC
+030F13FFDB3F0013C00378EB1FE04B6D7EDAC1C06D7EDAC3808002C7C7120302CE811701
+14DC14D802F86E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A442647DE349
+>104 D<133C13FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA412
+01EA007FA2133FB3B3AC497E497EB612E0A41B5F7DDE23>I<EB03C0EA07FFB5FCA41201
+EA007FA2133FB3B3B3B3AD497E497EB612F0A41C647DE323>108
+D<D903C0D9FFC0EC07FED807FF010301F891381FFFC0B5010F01FE027F13F0923D3F00FF
+8001F807FC0378903B3FC003C001FEDAC1E090261FE00FC77E0001D9C3C090260FF01E6E
+7ED8007F49902607F81C6E7E02C7C75CD93FCE6E6C486E7E02CC166002DC16E002D85E02
+F8DA01FF6F7E4A5EA24A93C8FCA44A5DB3B3496C4A6C4B7E496C4A6D4A7EB6D8F007B6D8
+803FB512FCA4663F7CBE6F>I<D903C0EB7FE0D807FF903803FFFCB5010F13FFDB3F0013
+C00378EB1FE04B6D7E0001D9C1C06D7E27007FC3808002C7C71203D93FCE81170114DC14
+D802F86E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A4423F7DBE49>I<ED
+FF80020F13F8023F13FE9139FF007F80D903FCEB1FE0D907F0EB07F0D90FC0EB01F8D93F
+80EB00FE49C8127F017E81496F7E48486F7E00038349150700078348486F7EA2001F8349
+1501A2003F83A348486F7EA400FF1880AC007F1800A26D5DA2003F5FA36C6C4B5AA36C6C
+4B5A00075FA26C6C4B5A6C6C4B5AA26C6C4B5A017F4BC7FC6D6C14FE6D6C495AD90FF0EB
+07F8D903FCEB1FE0D900FFEB7F806EB5C8FC020F13F8020113C039417CBF42>I<D903C0
+EB7FC0D807FF903807FFFCB5011F13FFDB7F0013C003F8EB1FF0DAC3E0EB07F80001D9C7
+806D7E26007FCFC76C7E02DE6E7ED93FFC6F7E4A6F7E4A82181F4A82727E5C727EA2727E
+A3727EA41A8084AC4E1300A54E5AA2611807A24E5A6E5E181F6E4B5A6E5E187F6E4B5A02
+DE4A90C7FC02CF4A5ADAC780495ADAC3C0EB0FF0DAC1F0EB3FE0913AC07E01FF806FB448
+C8FC030F13F80300138093CAFCB3A3497E497EB612F0A4415B7DBE49>I<9039078003F8
+D807FFEB0FFFB5013F13C092387C0FE0913881F01F9238E03FF00001EB838039007F8700
+148FEB3F8E029CEB1FE0EE0FC00298EB030002B890C7FCA214B014F0A25CA55CB3B0497E
+EBFFF8B612FCA42C3F7CBE33>114 D<9139FFE00180010FEBFC03017FEBFF073A01FF00
+1FCFD803F8EB03EFD807E0EB01FF48487F4848147F48C8123F003E151F007E150F127CA2
+00FC1507A316037EA27E7F6C7E6D91C7FC13F8EA3FFE381FFFF06CEBFF806C14F86C14FF
+6C15C06C6C14F0011F80010714FED9007F7F02031480DA003F13C01503030013E0167F00
+E0ED1FF0160F17F86C15071603A36C1501A37EA26C16F016037E17E06D14076DEC0FC06D
+1580D8FDF0141FD8F8F8EC7F00013E14FC3AF01FC00FF80107B512E0D8E001148027C000
+3FF8C7FC2D417DBF34>I<1438A71478A414F8A31301A31303A21307130F131FA2137F13
+FF1203000F90B6FCB8FCA3260007F8C8FCB3AE17E0AE6D6CEB01C0A316036D6C14801607
+6D6C14006E6C5A91383FC01E91381FF07C6EB45A020313E09138007F802B597FD733>I<
+D903C0150FD807FFED1FFFB50203B5FCA40001ED0007D8007F1501A2013F81B3B25FA35F
+A35F011F15066E140E5F130F6E4A7F01075D6D6C494813E0D901FE4948EBFFC0903A00FF
+C01F8091393FFFFE00020F13F8020001C0EC800042407DBE49>I<B66C49B512E0A40001
+01F8C8387FFE0026007FE0ED1FF819E0013F705A61131F6E93C7FC130F180E6E151E0107
+161C8001035EA26E157801011670806D5EA26F1301027F5DA26E6C495AA26F1307021F92
+C8FCA26E6C130EA26F131E0207141CA26F133C020314388102015CA26F13F06E5C168092
+387F81C0A216C3033F5B16E3DB1FE7C9FCA216FF6F5AA26F5AA36F5AA26F5AA36F5A433F
+7FBD46>I<B6D8801FB500E090B512F8A4000301F0C7D87FFCC7001F1380C601C0DA3FF0
+913807FE00051F6F5A017F030F6F5A64133F05075E6E81011F030F5EA26E6F1403010F03
+1F5E171D6E6F14070107033D93C7FC17386E6F5C01030378150EEF707F6E70131E010103
+F0151CEFE03F6E70133C6D02011638EFC01F03806F1378027F01031670EF800F03C06F13
+F0023F01075EEF000703E0EDF801021F495E040E130303F0EDFC03020F011E5E041C1301
+03F8EDFE070207013C93C8FC0438130003FC6F5A02030178150E0470147F03FE169E0201
+01F0159C4C143F03FF16FC6E5F4C141FA2037F5E4C140FA2033F5E93C81207A26F5E031E
+1503030E5E5D3F7FBD60>I<007FB500C0010FB512E0A4C691C70003EBFC00D93FFE6E13
+E0D90FFC16807148C7FC01075E6D6C4A5A6D6C5D6D6D495A606E6C495A6E6C49C8FC6E6C
+130E171E6E6C5B6E6C5B6E6C5B5F913801FF016EEB83C092387FC780033F90C9FC16EFED
+1FFE6F5A6F5A826F7E6F7E5D834B7F92380F3FE0ED1E1F033C7F9238380FF892387807FC
+EDF003DA01E07F4A486C7E707F4A486D7E4AC7FC021E6E7E021C6E7E023C6E7E5C4A6E7E
+01016F7E49486E7E1307010F6F7F013F83D9FFF04A7F00076D4A13FCB56C020FEBFFF8A4
+453E80BD46>I E end
+TeXDict begin
+
+1 0 bop 249 763 a Fv(Quaternions:)60 b(An)44 b(In)l(tro)t(duction)g
+(with)g(Octa)l(v)l(e)g(m-\014le)g(examples)1071 1016
+y Fu(A.)32 b(S.)h(Ho)s(del)f Ft(a.s.hodel@eng.auburn.edu)1462
+1219 y Fs(R)q(ev)t(ision)d Fu(:)f(1)p Fs(:)p Fu(1)k(\(c\))g(1998)1537
+1568 y Fr(Ac)m(kno)m(wledgemen)m(t)0 1781 y Fq(The)g(author)g
+(gratefully)f(thanks)h(the)h(Fligh)m(t)f(Con)m(trols)g(and)f(Dynamics)h
+(Branc)m(h)h(at)g(Marshall)e(Space)h(Fligh)m(t)0 1894
+y(Cen)m(ter)h(for)f(their)g(useful)f(discussions)f(that)j(led)f(to)h
+(this)f(do)s(cumen)m(t)g(and)g(m-\014le)g(suite.)47 b(Citations)32
+b(are)h(giv)m(en)0 2007 y(where)28 b(they)g(w)m(ere)h(a)m(v)-5
+b(ailable)28 b(to)h(me.)40 b(I)28 b(w)m(elcome)h(an)m(y)g(suggestions)f
+(for)g(additional)e(reference)j(material)f(to)h(b)s(e)0
+2120 y(placed)h(in)f(the)h(bibliograph)m(y)-8 b(.)0 2406
+y Fp(Con)l(ten)l(ts)0 2610 y Fr(1)84 b(Quaternions)3154
+b(2)136 2723 y Fq(1.1)94 b(De\014nition)61 b Fo(:)46
+b(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h
+(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)
+h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2836 y(1.2)94
+b(Multiplication)28 b(of)i(quaternions)72 b Fo(:)46 b(:)g(:)f(:)h(:)g
+(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)
+g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2949 y(1.3)94
+b(Quaternions)29 b(as)i(rotations)39 b Fo(:)46 b(:)g(:)f(:)h(:)g(:)f(:)
+h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h
+(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(3)136
+3061 y(1.4)94 b(Application)29 b(of)h(quaternions)g(in)f(co)s(ordinate)
+h(frame)g(transformations)53 b Fo(:)45 b(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)
+h(:)g(:)f(:)131 b Fq(6)345 3174 y(1.4.1)106 b(Euler)29
+b(angles)i Fo(:)46 b(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h(:)
+g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h
+(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(6)345 3287 y(1.4.2)106
+b(Co)s(ordinate)30 b(transformation)g(matrices)g(and)g(quaternions)46
+b Fo(:)g(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131
+b Fq(6)136 3400 y(1.5)94 b(Time)30 b(deriv)-5 b(ativ)m(e)30
+b(of)g(a)h(quaternion)42 b Fo(:)k(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h
+(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)
+g(:)f(:)85 b Fq(12)1927 5656 y(1)p eop
+2 1 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(2)0 399
+y Fp(1)135 b(Quaternions)0 601 y Fq(A)32 b(con)m(v)m(enien)m(t)g(w)m(a)
+m(y)h(to)f(represen)m(t)f(the)h(relativ)m(e)g(orien)m(tation)f(of)h(t)m
+(w)m(o)g(frames)g(is)e(through)h(the)h(use)f(of)g(quater-)0
+714 y(nions.)0 958 y Fm(1.1)112 b(De\014nition)0 1129
+y Fr(De\014nition)35 b(1.1)46 b Fq(A)31 b(quaternion)e(is)g(a)i(4-v)m
+(ector)i(de\014ned)c(b)m(y)1268 1334 y Fo(q)f Fq(=)d
+Fo(a)1474 1313 y Fq(^)1481 1334 y Fo(i)c Fq(+)f Fo(b)1662
+1313 y Fq(^)1663 1334 y Fo(j)26 b Fq(+)19 b Fo(c)1857
+1310 y Fq(^)1855 1334 y Fo(k)24 b Fq(+)c Fo(d;)46 b(a;)15
+b(b;)g(c;)g(d)27 b Fl(2)e Fq(I)-9 b(R)0 1538 y(where)256
+1517 y(^)263 1538 y Fo(i)p Fq(,)348 1517 y(^)350 1538
+y Fo(j)5 b Fq(,)450 1514 y(^)448 1538 y Fo(k)33 b Fq(are)e(quan)m
+(tities)f(satisfying)1498 1517 y(^)1505 1538 y Fo(i)1536
+1505 y Fk(2)1601 1538 y Fq(=)1696 1517 y(^)1697 1538
+y Fo(j)1739 1505 y Fk(2)1804 1538 y Fq(=)1903 1514 y(^)1900
+1538 y Fo(k)1950 1505 y Fk(2)2015 1538 y Fq(=)25 b Fl(\000)p
+Fq(1)31 b(and)1476 1721 y(^)1483 1742 y Fo(i)1513 1721
+y Fq(^)1515 1742 y Fo(j)f Fq(=)1681 1718 y(^)1678 1742
+y Fo(k)1846 1721 y Fq(^)1847 1742 y Fo(j)1892 1718 y
+Fq(^)1890 1742 y Fo(k)e Fq(=)2054 1721 y(^)2061 1742
+y Fo(i)2213 1718 y Fq(^)2211 1742 y Fo(k)2254 1721 y
+Fq(^)2261 1742 y Fo(i)e Fq(=)2412 1721 y(^)2413 1742
+y Fo(j)1372 1859 y Fq(^)1373 1880 y Fo(j)6 b Fq(\0201)25
+b(=)g Fl(\000)1681 1856 y Fq(^)1679 1880 y Fo(k)1814
+1856 y Fq(^)1812 1880 y Fo(k)1860 1859 y Fq(^)1862 1880
+y Fo(j)31 b Fq(=)25 b Fl(\000)2090 1859 y Fq(^)2097 1880
+y Fo(i)2204 1859 y Fq(^)2211 1880 y Fo(i)2244 1856 y
+Fq(^)2242 1880 y Fo(k)k Fq(=)24 b Fl(\000)2483 1859 y
+Fq(^)2484 1880 y Fo(j)0 2092 y Fr(Remark)34 b(1.1)46
+b Fq(Notice)35 b(that)1058 2072 y(^)1065 2092 y Fo(i)p
+Fq(,)1154 2072 y(^)1156 2092 y Fo(j)5 b Fq(,)35 b(and)1440
+2068 y(^)1438 2092 y Fo(k)h Fq(are)e(scalar)g(quan)m(tities)e(equal)h
+(to)2718 2021 y Fl(p)p 2793 2021 117 4 v 2793 2092 a(\000)p
+Fq(1)q(;)i(ho)m(w)m(ev)m(er,)3341 2072 y(^)3348 2092
+y Fo(i)p Fq(,)3437 2072 y(^)3438 2092 y Fo(j)6 b Fq(,)35
+b(and)3723 2068 y(^)3720 2092 y Fo(k)i Fq(do)0 2205 y(not)g(comm)m(ute)
+h(under)d(m)m(ultiplication.)56 b(Therefore)36 b(quaternions)g(do)g
+(not)h(comm)m(ute)h(under)d(m)m(ultiplication)0 2318
+y(\()p Fo(q)76 2332 y Fk(1)115 2318 y Fo(q)156 2332 y
+Fk(2)221 2318 y Fl(6)p Fq(=)25 b Fo(q)358 2332 y Fk(2)397
+2318 y Fo(q)438 2332 y Fk(1)497 2318 y Fq(in)20 b(general\).)38
+b(This)19 b(is)h(consisten)m(t)h(with)f(the)h(in)m(terpretation)f(of)h
+(quaternions)f(as)h(spatial)f(rotations)0 2431 y(\(to)31
+b(b)s(e)f(discussed)f(in)g Fl(x)p Fq(1.4.2.)0 2644 y
+Fr(M-\014le)46 b Fj(quaternion)57 b Fq(Create/extract)34
+b(quaternion)29 b(information:)227 2869 y Fj(quaternion:)45
+b(construct)g(or)i(extract)f(a)i(quaternion)227 2982
+y(w)g(=)f(a*i)g(+)h(b*j)e(+)i(c*k)f(+)g(d)h(from)e(given)h(data.)227
+3207 y(calling)f(formats:)227 3320 y([a,b,c,d])141 b(=)47
+b(quaternion\(w\))570 b(-or-)227 3433 y([vv,theta])45
+b(=)j(quaternion\(w\))227 3546 y(w)525 b(=)47 b(quaternion\(a,b,c,d\))
+227 3659 y(w)525 b(=)47 b(quaternion\(vv,theta\))227
+3884 y Fq(\()p Fj(vv,theta)29 b Fq(format)h(to)i(b)s(e)d(explained)g
+(later\))0 4128 y Fm(1.2)112 b(Multiplication)34 b(of)k(quaternions)0
+4299 y Fq(F)-8 b(rom)31 b(De\014nition)e(1.1,)j(w)m(e)e(ha)m(v)m(e)533
+4503 y Fo(q)574 4517 y Fk(1)613 4503 y Fo(q)654 4517
+y Fk(2)776 4503 y Fq(=)83 b(\()p Fo(a)1013 4517 y Fk(1)1046
+4483 y Fq(^)1053 4503 y Fo(i)20 b Fq(+)g Fo(b)1234 4517
+y Fk(1)1272 4483 y Fq(^)1274 4503 y Fo(j)26 b Fq(+)20
+b Fo(c)1467 4517 y Fk(1)1509 4479 y Fq(^)1506 4503 y
+Fo(k)k Fq(+)c Fo(d)1715 4517 y Fk(1)1754 4503 y Fq(\)\()p
+Fo(a)1872 4517 y Fk(2)1905 4483 y Fq(^)1913 4503 y Fo(i)g
+Fq(+)g Fo(b)2094 4517 y Fk(2)2132 4483 y Fq(^)2133 4503
+y Fo(j)26 b Fq(+)20 b Fo(c)2326 4517 y Fk(2)2368 4479
+y Fq(^)2366 4503 y Fo(k)j Fq(+)d Fo(d)2574 4517 y Fk(2)2614
+4503 y Fq(\))776 4641 y(=)83 b(\()p Fo(a)1013 4655 y
+Fk(1)1053 4641 y Fo(d)1100 4655 y Fk(2)1160 4641 y Fq(+)20
+b Fo(b)1290 4655 y Fk(1)1329 4641 y Fo(c)1368 4655 y
+Fk(2)1428 4641 y Fl(\000)g Fo(c)1558 4655 y Fk(1)1598
+4641 y Fo(b)1637 4655 y Fk(2)1697 4641 y Fq(+)f Fo(d)1834
+4655 y Fk(1)1874 4641 y Fo(a)1922 4655 y Fk(2)1962 4641
+y Fq(\))p Fo(i)i Fq(+)e(\()p Fo(c)2213 4655 y Fk(1)2254
+4641 y Fo(a)2302 4655 y Fk(2)2361 4641 y Fl(\000)h Fo(a)2500
+4655 y Fk(1)2540 4641 y Fo(c)2579 4655 y Fk(2)2639 4641
+y Fq(+)g Fo(b)2769 4655 y Fk(1)2808 4641 y Fo(d)2855
+4655 y Fk(2)2915 4641 y Fq(+)g Fo(d)3053 4655 y Fk(1)3093
+4641 y Fo(b)3132 4655 y Fk(2)3171 4641 y Fq(\))3205 4620
+y(^)3206 4641 y Fo(j)930 4779 y Fq(+\()p Fo(a)1084 4793
+y Fk(1)1124 4779 y Fo(b)1163 4793 y Fk(2)1222 4779 y
+Fl(\000)g Fo(b)1352 4793 y Fk(1)1392 4779 y Fo(a)1440
+4793 y Fk(2)1499 4779 y Fq(+)g Fo(c)1629 4793 y Fk(1)1669
+4779 y Fo(d)1716 4793 y Fk(2)1776 4779 y Fq(+)g Fo(d)1914
+4793 y Fk(1)1954 4779 y Fo(c)1993 4793 y Fk(2)2032 4779
+y Fq(\))2069 4755 y(^)2067 4779 y Fo(k)k Fq(+)c(\()p
+Fl(\000)p Fo(a)2383 4793 y Fk(1)2423 4779 y Fo(a)2471
+4793 y Fk(2)2530 4779 y Fl(\000)g Fo(b)2660 4793 y Fk(1)2700
+4779 y Fo(b)2739 4793 y Fk(2)2798 4779 y Fl(\000)g Fo(c)2928
+4793 y Fk(1)2968 4779 y Fo(c)3007 4793 y Fk(2)3067 4779
+y Fq(+)g Fo(d)3205 4793 y Fk(1)3245 4779 y Fo(d)3292
+4793 y Fk(2)3331 4779 y Fq(\))347 b(\(1.1\))21 5018 y(De\014ne)21
+b Fo(v)337 5032 y Fk(1)401 5018 y Fq(=)497 4924 y Fi(h)578
+5018 y Fo(a)626 5032 y Fk(1)749 5018 y Fo(b)788 5032
+y Fk(1)910 5018 y Fo(c)949 5032 y Fk(1)1030 4924 y Fi(i)1070
+4947 y Fh(T)1145 5018 y Fq(and)g Fo(v)1357 5032 y Fk(2)1421
+5018 y Fq(=)1517 4924 y Fi(h)1598 5018 y Fo(a)1646 5032
+y Fk(2)1769 5018 y Fo(b)1808 5032 y Fk(2)1930 5018 y
+Fo(c)1969 5032 y Fk(2)2050 4924 y Fi(i)2089 4947 y Fh(T)2145
+5018 y Fq(.)37 b(Then)20 b([Mul)o(])h(equation)g(\(1.1\))h(ma)m(y)g(b)s
+(e)e(rewritten)0 5131 y(as)1017 5244 y Fo(q)1058 5258
+y Fk(1)1097 5244 y Fo(q)1138 5258 y Fk(2)1202 5244 y
+Fq(=)25 b Fo(d)1345 5258 y Fk(1)1385 5244 y Fo(d)1432
+5258 y Fk(2)1492 5244 y Fq(+)20 b Fo(d)1630 5258 y Fk(1)1669
+5244 y Fo(v)1713 5258 y Fk(2)1773 5244 y Fq(+)g Fo(d)1911
+5258 y Fk(2)1951 5244 y Fo(v)1995 5258 y Fk(1)2054 5244
+y Fl(\000)g(h)q Fo(v)2225 5258 y Fk(1)2264 5244 y Fo(;)15
+b(v)2348 5258 y Fk(2)2388 5244 y Fl(i)21 b Fq(+)f(\()p
+Fo(v)2614 5258 y Fk(1)2674 5244 y Fl(\002)f Fo(v)2808
+5258 y Fk(2)2848 5244 y Fq(\))830 b(\(1.2\))p eop
+3 2 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(3)0 399
+y(where)30 b(the)g(cross)h(pro)s(duct)1385 622 y(\()p
+Fo(v)1464 636 y Fk(1)1524 622 y Fl(\002)20 b Fo(v)1659
+636 y Fk(2)1699 622 y Fq(\))1765 572 y Fk(\001)1759 622
+y Fq(=)1855 424 y Fi(\014)1855 474 y(\014)1855 524 y(\014)1855
+574 y(\014)1855 624 y(\014)1855 674 y(\014)1855 723 y(\014)1883
+428 y(2)1883 574 y(6)1883 627 y(4)2001 492 y Fq(^)2008
+513 y Fo(i)2167 492 y Fq(^)2168 513 y Fo(j)2328 489 y
+Fq(^)2326 513 y Fo(k)1980 625 y(a)2028 639 y Fk(1)2150
+625 y Fo(b)2189 639 y Fk(1)2312 625 y Fo(c)2351 639 y
+Fk(1)1980 738 y Fo(a)2028 752 y Fk(2)2150 738 y Fo(b)2189
+752 y Fk(2)2312 738 y Fo(c)2351 752 y Fk(2)2432 428 y
+Fi(3)2432 574 y(7)2432 627 y(5)2487 424 y(\014)2487 474
+y(\014)2487 524 y(\014)2487 574 y(\014)2487 624 y(\014)2487
+674 y(\014)2487 723 y(\014)0 881 y Fq(This)29 b(v)m(ector-based)j(in)m
+(terpretation)d(will)f(b)s(ecome)j(more)f(imp)s(ortan)m(t)g(in)f
+Fl(x)p Fq(1.4.2.)0 1040 y Fr(M-\014le)46 b Fj(qmult)227
+1231 y(function)g(c)h(=)h(qmult\(a,b\))227 1344 y(multiply)e(two)h
+(quaternions)0 1534 y Fr(De\014nition)35 b(1.2)46 b Fq(The)26
+b Fg(c)-5 b(onjugate)26 b Fq(of)g(a)h(quaternion)e Fo(q)j
+Fq(=)d Fo(a)2077 1514 y Fq(^)2084 1534 y Fo(i)12 b Fq(+)f
+Fo(b)2247 1514 y Fq(^)2248 1534 y Fo(j)17 b Fq(+)11 b
+Fo(c)2425 1510 y Fq(^)2423 1534 y Fo(k)k Fq(+)c Fo(d)26
+b Fq(is)f Fo(q)2771 1501 y Ff(\003)2836 1534 y Fq(=)g
+Fl(\000)p Fo(a)3044 1514 y Fq(^)3051 1534 y Fo(i)11 b
+Fl(\000)g Fo(b)3213 1514 y Fq(^)3214 1534 y Fo(j)17 b
+Fl(\000)11 b Fo(c)3391 1510 y Fq(^)3389 1534 y Fo(k)k
+Fq(+)c Fo(d)p Fq(.)40 b(Notice)0 1664 y(that)35 b Fo(q)s(q)289
+1631 y Ff(\003)361 1664 y Fq(=)d Fo(q)508 1631 y Ff(\003)547
+1664 y Fo(q)k Fq(=)c Fo(a)775 1631 y Fk(2)837 1664 y
+Fq(+)23 b Fo(b)970 1631 y Fk(2)1033 1664 y Fq(+)f Fo(c)1165
+1631 y Fk(2)1228 1664 y Fq(+)h Fo(d)1369 1631 y Fk(2)1447
+1614 y(\001)1441 1664 y Fq(=)32 b Fl(j)p Fo(q)s Fl(j)1639
+1622 y Fk(2)1678 1664 y Fq(.)54 b(F)-8 b(or)35 b(quaternions)f
+Fo(q)j Fq(with)c Fo(q)s(q)2799 1631 y Ff(\003)2871 1664
+y Fl(6)p Fq(=)f(0)j(w)m(e)g(de\014ne)f(the)h Fg(inverse)0
+1821 y(quaternion)c Fo(q)498 1783 y Ff(\000)p Fk(1)618
+1821 y Fq(=)746 1759 y Fo(q)790 1726 y Ff(\003)p 724
+1799 128 4 v 724 1883 a Fo(q)s(q)812 1857 y Ff(\003)861
+1821 y Fq(.)40 b(Notice)32 b(that)f Fo(q)s(q)1497 1788
+y Ff(\000)p Fk(1)1616 1821 y Fq(=)25 b Fo(q)1756 1788
+y Ff(\000)p Fk(1)1850 1821 y Fo(q)j Fq(=)d(1.)0 2037
+y Fr(M-\014le)46 b Fj(qinv)59 b Fq(Compute)30 b(the)h(in)m(v)m(erse)f
+(of)g(a)h(quaternion)227 2228 y Fj(function)46 b(b)h(=)h(qinv\(a\))227
+2341 y(return)e(the)h(inverse)f(of)h(a)h(quaternion)227
+2454 y(a)g(=)95 b([w,x,y,z])45 b(=)j(w*i)f(+)g(x*j)g(+)g(y*k)g(+)h(z)
+227 2567 y(qmult\(a,qinv\(a\)\))c(=)j(1)h(=)f([0)g(0)h(0)f(1])0
+2757 y Fr(Example)34 b(1.1)46 b Fq(Compute)30 b(and)f(m)m(ultiply)f
+(the)j(in)m(v)m(erse)f(quaternion:)0 2916 y Fj(octave:1>)45
+b(q)j(=)f(quaternion\(1,2,3,4\);)42 b(qi)48 b(=)f(qinv\(q\))0
+3029 y(qi)g(=)h(-0.033333)93 b(-0.066667)g(-0.100000)140
+b(0.133333)0 3142 y(octave:2>)45 b(qmult\(qi,q\))0 3255
+y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3368 y(octave:3>)45 b(qmult\(q,qi\))0
+3481 y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3640 y Fq(In)30 b(b)s(oth)f(cases)j
+(the)e(pro)s(duct)f(is)h(the)g(iden)m(tiy)f(quaternion)h(0)2101
+3619 y(^)2108 3640 y Fo(i)21 b Fq(+)f(0)2295 3619 y(^)2296
+3640 y Fo(j)26 b Fq(+)20 b(0)2497 3616 y(^)2495 3640
+y Fo(k)k Fq(+)19 b(1)26 b(=)f(1.)0 3878 y Fm(1.3)112
+b(Quaternions)38 b(as)g(rotations)0 4062 y Fr(De\014nition)d(1.3)46
+b Fq(A)31 b Fg(unit)h(quaternion)g Fo(q)c Fq(=)d Fo(a)1617
+4041 y Fq(^)1624 4062 y Fo(i)20 b Fq(+)g Fo(b)1804 4041
+y Fq(^)1805 4062 y Fo(j)26 b Fq(+)20 b Fo(c)2000 4038
+y Fq(^)1998 4062 y Fo(k)k Fq(+)19 b Fo(d)31 b Fq(satis\014es)2572
+3964 y Fi(\015)2572 4014 y(\015)2572 4064 y(\015)2618
+3967 y(h)2699 4062 y Fo(a)83 b(b)g(c)g(d)3163 3967 y
+Fi(i)3202 3964 y(\015)3202 4014 y(\015)3202 4064 y(\015)3248
+4118 y Fk(2)3313 4062 y Fq(=)25 b(1.)0 4254 y Fr(Remark)34
+b(1.2)46 b Fq(Unit)40 b(quaternions)f(ma)m(y)h(b)s(e)g(considered)f(as)
+h(represen)m(tations)g(of)h(a)f(rotation)h(of)f Fo(\022)i
+Fq(degrees)0 4367 y(ab)s(out)f(a)g(giv)m(en)g(unit)f(v)m(ector)j
+Fo(v)h Fq(\(see)e(routine)e Fj(quaternion)p Fq(\).)70
+b(The)41 b(transformation)f(is)g(accomplished)g(b)m(y)0
+4496 y(m)m(ultiplying)27 b Fo(v)529 4510 y Fh(r)592 4496
+y Fq(=)e Fo(q)s(v)s(q)823 4463 y Ff(\000)p Fk(1)917 4496
+y Fq(,)31 b(where)f Fo(v)e Fq(=)1404 4402 y Fi(h)1485
+4496 y Fo(x)83 b(y)j(z)h Fq(0)1967 4402 y Fi(i)2006 4496
+y Fq(.)0 4684 y(With)30 b(this)f(in)m(terpretation,)h(unit)f
+(quaternions)g(ma)m(y)i(b)s(e)f(written)f(as)890 4964
+y Fo(q)f Fq(=)1055 4870 y Fi(\020)1105 4964 y Fo(ai)21
+b Fq(+)e Fo(b)1333 4944 y Fq(^)1334 4964 y Fo(j)26 b
+Fq(+)20 b Fo(c)1529 4940 y Fq(^)1527 4964 y Fo(k)1578
+4870 y Fi(\021)1643 4964 y Fq(sin)n(\()p Fo(\022)s(=)p
+Fq(2\))h(+)f(cos)q(\()p Fo(\022)s(=)p Fq(2\))2432 4914
+y Fk(\001)2426 4964 y Fq(=)2522 4771 y Fi(0)2522 4917
+y(B)2522 4970 y(@)2594 4771 y(2)2594 4917 y(6)2594 4970
+y(4)2691 4851 y Fo(a)2696 4964 y(b)2696 5077 y(c)2781
+4771 y Fi(3)2781 4917 y(7)2781 4970 y(5)2851 4964 y Fo(;)15
+b(\022)2937 4771 y Fi(1)2937 4917 y(C)2937 4970 y(A)3713
+4964 y Fq(\(1.3\))0 5279 y(Notice)26 b(that)f(this)f(implies)e(that)
+1137 5185 y Fi(h)1218 5279 y Fo(a)83 b(b)g(c)1552 5185
+y Fi(i)1615 5279 y Fq(is)24 b(also)h(a)g(unit)e(v)m(ector.)41
+b(This)23 b(is)g(consisten)m(t)j(with)d(m)m(ultiplication)0
+5407 y(b)m(y)30 b(the)h(iden)m(tit)m(y)f(quaterion)g
+Fo(q)e Fq(=)d(1,)31 b(since)e(cos)q(\(0\))d(=)f(1)31
+b(and)f(sin)o(\(0\))c(=)f(0.)p eop
+4 3 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s
+(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439
+b Fn(\(c\))32 b(1998)908 b Fq(4)0 399 y Fr(Example)34
+b(1.2)46 b Fq(Unit)33 b(quaternions)g(ma)m(y)h(b)s(e)g(m)m(ultiplied)c
+(to)35 b(obtain)e(a)i(single)e(equiv)-5 b(alen)m(t)33
+b(co)s(ordinate)h(rota-)0 511 y(tion.)47 b(Let)33 b Fo(q)435
+525 y Fk(3)506 511 y Fq(b)s(e)f(a)h(90)800 478 y Ff(\016)872
+511 y Fq(rotation)g(ab)s(out)f(the)h Fo(x)p Fl(\000)p
+Fq(axis.)46 b(F)-8 b(ollo)m(w)33 b(this)e(rotation)i(b)m(y)g
+Fo(q)2982 525 y Fk(2)3021 511 y Fq(,)g(a)g(90)3247 478
+y Ff(\016)3319 511 y Fq(rotation)g(ab)s(out)0 624 y(the)k(\(new\))g
+Fo(y)i Fq(axis.)60 b(Finally)-8 b(,)37 b(follo)m(w)f(this)g(rotation)h
+(b)m(y)f Fo(q)2067 638 y Fk(1)2106 624 y Fq(,)j(a)e(90)2342
+591 y Ff(\016)2419 624 y Fq(rotation)g(ab)s(out)g(the)g(\(newly)f
+(revised\))g Fo(z)0 737 y Fq(axis.)k(Then)30 b Fo(q)e
+Fq(=)d Fo(q)664 751 y Fk(1)703 737 y Fo(q)744 751 y Fk(2)783
+737 y Fo(q)824 751 y Fk(3)893 737 y Fq(is)k(a)i(90)g(degree)g(rotation)
+g(ab)s(out)f(the)h(original)d Fo(y)s Fq(-axis.)0 925
+y Fj(octave:1>)45 b(degrees)h(=)i(pi/180;)0 1038 y(octave:2>)d(q1)i(=)h
+(quaternion\([0,0,1],90*de)o(gree)o(s\);)0 1151 y(octave:3>)d(q2)i(=)h
+(quaternion\([0,1,0],90*de)o(gree)o(s\);)0 1264 y(octave:4>)d(q3)i(=)h
+(quaternion\([1,0,0],90*de)o(gree)o(s\);)0 1377 y(octave:5>)d(q)j(=)f
+(qmult\(q1,qmult\(q2,q3\)\);)0 1489 y(octave:6>)e([vv,th])h(=)i
+(quaternion\(q\))0 1602 y(vv)f(=)h(0)f(1)h(0)0 1715 y(th)f(=)h(1.5708)0
+1828 y(octave:7>)d(th/degrees)0 1941 y(ans)i(=)g(90.000)118
+2154 y Fq(The)26 b(rotation)g(ab)s(out)g(a)h(v)m(ector)h(axis)e(in)m
+(terpretation)f(of)i(quaternions)e(requires)g(care:)39
+b(the)26 b(axis)g(of)h(rotation)0 2267 y(is)40 b(tak)m(en)j(based)e(on)
+h(the)f(co)s(ordinate)g(frame)h(for)f(whic)m(h)f(the)i(quaternion)e(w)m
+(as)i(written.)73 b(F)-8 b(or)42 b(example,)j(a)0 2379
+y(rotation)30 b(around)e(the)i(inertial)d Fo(y)s Fq(-axis)i(follo)m(w)m
+(ed)g(b)m(y)g(a)h(rotation)g(around)e(the)i(inertial)d
+Fo(x)j Fq(axis)e(can)i(b)s(e)f(written)0 2492 y(as)949
+2623 y Fo(q)f Fq(=)d Fo(q)1155 2637 y Fh(x)1199 2623
+y Fo(q)1240 2637 y Fh(y)1306 2623 y Fq(=)1402 2504 y
+Fi(\022)1463 2529 y(h)1544 2623 y Fq(1)83 b(0)h(0)1888
+2529 y Fi(i)1927 2552 y Fh(T)1982 2623 y Fo(;)15 b(\022)2065
+2637 y Fh(x)2109 2504 y Fi(\023)g(\022)2246 2529 y(h)2327
+2623 y Fq(0)83 b(1)h(0)2671 2529 y Fi(i)2710 2552 y Fh(T)2765
+2623 y Fo(;)15 b(\022)2848 2637 y Fh(y)2890 2504 y Fi(\023)0
+2825 y Fq(This)31 b(is)i(inconsisten)m(t)f(with)g(the)h(de\014nition)e
+(of)j(Euler)d(angles,)k(in)c(whic)m(h)h(eac)m(h)j(angle)e(is)f
+(de\014ned)g(b)m(y)h(a)h(frame)0 2938 y(based)41 b(up)s(on)f(the)i
+(previous)e(rotation.)75 b(This)40 b(problem)g(is)h(addressed)f(b)m(y)i
+(co)s(ordinate)f(transformation)g(b)m(y)0 3051 y(quaternions:)0
+3264 y Fr(M-\014le)46 b Fj(qtrans)59 b Fq(T)-8 b(ransform)29
+b(a)i(quaternion)e(in)g(one)i(frame)f(to)h(the)g(co)s(ordinate)f(basis)
+f(of)i(another)f(frame.)275 3489 y Fj(function)46 b(v)h(=)g
+(qtrans\(v,q\))275 3602 y(transform)e(the)i(vector)f(v)i(\(in)f
+(quaternion)e(form\))h(by)h(the)g(quaternion)e(q;)275
+3714 y(v)i(=)h([x)f(y)h(z)f(0],)g(q)g(=)h(transformation)c(quaternion)
+275 3827 y(returns)i(v)h(=)h(q*v/q)0 4052 y Fr(Remark)34
+b(1.3)46 b Fq(Giv)m(en)34 b(a)h(quaternion)e Fo(q)1425
+4067 y Fh(f)1504 4052 y Fq(describing)f(the)j(rotation)f(from)g(an)g
+(inertial)e(frame)i(\()p Fo(x)3463 4066 y Fk(1)3503 4052
+y Fo(;)15 b(y)3588 4066 y Fk(1)3628 4052 y Fo(;)g(z)3710
+4066 y Fk(1)3750 4052 y Fq(\))34 b(to)0 4165 y(second)24
+b(frame)f(\()p Fo(x)622 4179 y Fk(2)662 4165 y Fo(;)15
+b(y)747 4179 y Fk(2)787 4165 y Fo(;)g(z)869 4179 y Fk(2)909
+4165 y Fq(\),)25 b(a)f(quaternion)f Fo(q)1555 4179 y
+Fh(r)1616 4165 y Fq(de\014ned)f(in)h(the)h(second)f(frame)h(ma)m(y)g(b)
+s(e)f(applied)f(b)m(y)h(m)m(ultiplying)0 4278 y Fo(q)41
+4293 y Fh(f)86 4278 y Fo(q)127 4292 y Fh(r)164 4278 y
+Fo(q)205 4293 y Fh(f)250 4245 y Ff(\000)p Fk(1)345 4278
+y Fq(:)111 4466 y(1.)46 b(T)-8 b(ransform)30 b(\(rotate\))i(frame)f(2)f
+(\()p Fo(x)1424 4480 y Fk(2)1464 4466 y Fo(;)15 b(y)1549
+4480 y Fk(2)1589 4466 y Fo(;)g(z)1671 4480 y Fk(2)1711
+4466 y Fq(\))30 b(bac)m(k)h(to)h(the)e(inertial)e(frame.)111
+4653 y(2.)46 b(P)m(erform)31 b(the)f(rotation)h Fo(q)1124
+4667 y Fh(r)1161 4653 y Fq(.)111 4841 y(3.)46 b(Rotate)33
+b(bac)m(k)e(to)g(the)f(second)h(frame)f(via)g Fo(q)1745
+4856 y Fh(f)1790 4841 y Fq(.)0 5074 y(That)40 b(is,)h(if)e
+Fo(q)499 5088 y Fh(r)577 5074 y Fq(=)689 4955 y Fi(\022)750
+4980 y(h)831 5074 y Fq(0)83 b(1)h(0)1175 4980 y Fi(i)1214
+5003 y Fh(T)1269 5074 y Fo(;)15 b(\022)1352 5088 y Fh(r)1390
+4955 y Fi(\023)1491 5074 y Fq(is)38 b(a)i(rotation)h(ab)s(out)e(the)h
+Fo(y)j Fq(axis)c(in)f(the)i(frame)g(\()p Fo(x)3385 5088
+y Fk(2)3425 5074 y Fo(;)15 b(y)3510 5088 y Fk(2)3549
+5074 y Fo(;)g(z)3631 5088 y Fk(2)3671 5074 y Fq(\),)43
+b(the)0 5235 y(quaternion)29 b Fo(q)498 5250 y Fh(f)543
+5235 y Fo(q)584 5249 y Fh(r)622 5235 y Fo(q)663 5250
+y Fh(f)708 5202 y Ff(\000)p Fk(1)832 5235 y Fq(is)h(the)g(equiv)-5
+b(alen)m(t)30 b(rotation)h(in)e(the)i(frame)f(\()p Fo(x)2466
+5249 y Fk(1)2506 5235 y Fo(;)15 b(y)2591 5249 y Fk(1)2630
+5235 y Fo(;)g(z)2712 5249 y Fk(1)2752 5235 y Fq(\).)p
+eop
+5 4 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(5)0 399
+y Fr(Example)34 b(1.3)46 b(Quaternion)27 b(algebra)d
+Fl(\000)p Fq(90)1672 366 y Ff(\016)1736 399 y Fq(rotation)h(ab)s(out)e
+Fo(x)h Fq(follo)m(w)m(ed)g(b)m(y)g(90)2963 366 y Ff(\016)3028
+399 y Fq(rotation)g(ab)s(out)g(revised)0 522 y Fo(y)33
+b Fq(and)d Fo(z)k Fq(axes)d(is)f(equiv)-5 b(alen)m(t)30
+b(to)h(a)g(rotation)f(ab)s(out)g(the)2007 428 y Fi(h)2088
+522 y Fq(1)83 b(1)h(1)2432 428 y Fi(i)2501 522 y Fq(v)m(ector.)0
+711 y Fj(qx)95 b(=)47 b(quaternion\([1,0,0],-pi/2\);)184
+b(#)48 b(elementary)d(rotations)0 824 y(qy1)i(=)g
+(quaternion\([0,1,0],pi/2\);)0 936 y(qz2)g(=)g
+(quaternion\([0,0,1],pi/2\);)0 1162 y(qyi)g(=)g(qtrans\(qy1,qx\);)712
+b(#)48 b(transform)d(back)i(to)g(original)e(coordinates)0
+1275 y(qzi)i(=)g(qtrans\(qtrans\(qz2,qy1\),qx\))o(;)0
+1388 y(qzi2=)f(qtrans\(qz2,qyi\);)664 b(#)48 b(NOT)f(THE)f(SAME)h(as)g
+(qzi!)0 1501 y(qzi3=)f(qtrans\(qz2,qmult\(qyi,qx\)\);)184
+b(#)48 b(This)e(matches)94 b(qzi)0 1727 y([qyiv,thyi])45
+b(=)i(quaternion\(qyi\))330 b(#)48 b(check)e(vectors,)g(angles)0
+1840 y([qziv,thzi])f(=)i(quaternion\(qzi\))0 1953 y([qzi2v,thz2i])d(=)k
+(quaternion\(qzi2\))0 2066 y([qzi3v,thz3i])c(=)k(quaternion\(qzi3\))0
+2291 y(qtot)f(=)g(qmult\(qzi,qmult\(qyi,qx\)\))0 2404
+y(qtotchk)f(=)h(qmult\(qx,)f(qmult\(qy1,qz2\)\))118 2582
+y Fq(Output:)0 2741 y Fj(qyiv)h(=)g(0.00000)141 b(0.00000)94
+b(-1.00000)0 2854 y(thyi)47 b(=)g(1.5708)0 3013 y Fo(q)41
+3027 y Fh(y)76 3036 y Fe(1)145 3013 y Fq(in)29 b(the)h
+Fo(q)448 3027 y Fh(x)522 3013 y Fq(frame)g(is)g(equiv)-5
+b(alen)m(t)29 b(to)j(a)e(rotation)h(ab)s(out)f(the)h(original)d
+Fl(\000)p Fo(z)35 b Fq(axis.)0 3172 y Fj(qziv)47 b(=)g(1.0000e+00)141
+b(1.5701e-16)f(3.4863e-32)0 3285 y(thzi)47 b(=)g(1.5708)0
+3398 y(qzi2v)f(=)i(1.5701e-16)140 b(-1.5701e-16)188 b(1.0000e+00)0
+3511 y(thz2i)46 b(=)i(1.5708)0 3624 y(qzi3v)e(=)i(1.0000e+00)140
+b(1.9626e-16)h(3.9252e-17)0 3737 y(thz3i)46 b(=)i(1.5708)0
+3896 y Fq(One)29 b(ma)m(y)h(b)s(e)f(tempted)g(to)h(view)f
+Fo(q)1227 3910 y Fh(y)1262 3920 y Fd(i)1321 3896 y Fq(as)h(the)g
+(rotation)f(to)i(the)e(basis)f(frame)i(of)f Fo(q)2821
+3910 y Fh(z)2854 3919 y Fe(2)2892 3896 y Fq(,)h(but)f(this)f(is)h
+(incorrect.)40 b Fo(q)3835 3910 y Fh(y)3870 3920 y Fd(i)0
+4009 y Fq(merely)33 b(represen)m(ts)g(the)g(rotation)h
+Fo(q)1282 4023 y Fh(y)1317 4032 y Fe(1)1388 4009 y Fq(in)e(the)i
+(reference)f(frame;)i(b)s(oth)e(rotations)g Fo(q)2972
+4023 y Fh(x)3049 4009 y Fq(and)g Fo(q)3270 4023 y Fh(y)3305
+4033 y Fd(i)3368 4009 y Fq(m)m(ust)g(b)s(e)g(used)0 4122
+y(to)e(bac)m(k-transform)g Fo(q)782 4136 y Fh(z)815 4145
+y Fe(2)883 4122 y Fq(in)m(to)g(the)f(reference)h(frame.)41
+b(This)28 b(is)i(sho)m(wn)f(as)i(follo)m(ws:)611 4292
+y Fo(q)652 4306 y Fh(y)687 4316 y Fd(i)800 4292 y Fq(=)83
+b Fo(q)995 4306 y Fh(x)1038 4292 y Fo(q)1079 4306 y Fh(y)1114
+4315 y Fe(1)1153 4292 y Fo(q)1194 4306 y Fh(x)1237 4254
+y Ff(\000)p Fk(1)613 4449 y Fo(q)654 4463 y Fh(z)687
+4473 y Fd(i)800 4449 y Fq(=)g Fo(q)995 4463 y Fh(x)1053
+4355 y Fi(\020)1103 4449 y Fo(q)1144 4463 y Fh(y)1179
+4472 y Fe(1)1217 4449 y Fo(q)1258 4463 y Fh(z)1291 4472
+y Fe(2)1329 4449 y Fo(q)1370 4463 y Fh(y)1405 4472 y
+Fe(1)1444 4411 y Ff(\000)p Fk(1)1538 4355 y Fi(\021)1603
+4449 y Fo(q)1644 4463 y Fh(x)1687 4411 y Ff(\000)p Fk(1)578
+4614 y Fo(q)619 4628 y Fh(z)652 4638 y Fd(i)678 4628
+y Fk(2)800 4614 y Fq(=)g Fo(q)995 4628 y Fh(y)1030 4638
+y Fd(i)1060 4614 y Fo(q)1101 4628 y Fh(z)1134 4637 y
+Fe(2)1172 4614 y Fo(q)1213 4628 y Fh(y)1248 4638 y Fd(i)1278
+4577 y Ff(\000)p Fk(1)800 4788 y Fq(=)g Fo(q)995 4802
+y Fh(x)1038 4788 y Fo(q)1079 4802 y Fh(y)1114 4811 y
+Fe(1)1153 4788 y Fo(q)1194 4802 y Fh(x)1237 4751 y Ff(\000)p
+Fk(1)1331 4788 y Fo(q)1372 4802 y Fh(z)1405 4811 y Fe(2)1443
+4694 y Fi(\020)1493 4788 y Fo(q)1534 4802 y Fh(x)1577
+4788 y Fo(q)1618 4802 y Fh(y)1653 4811 y Fe(1)1692 4788
+y Fo(q)1733 4802 y Fh(x)1776 4751 y Ff(\000)p Fk(1)1870
+4694 y Fi(\021)1920 4717 y Ff(\000)p Fk(1)2040 4788 y
+Fq(=)25 b Fo(q)2177 4802 y Fh(x)2220 4788 y Fo(q)2261
+4802 y Fh(y)2296 4811 y Fe(1)2334 4788 y Fo(q)2375 4802
+y Fh(x)2419 4751 y Ff(\000)p Fk(1)2513 4788 y Fo(q)2554
+4802 y Fh(z)2587 4811 y Fe(2)2625 4788 y Fo(q)2666 4802
+y Fh(x)2710 4788 y Fo(q)2751 4802 y Fh(y)2786 4811 y
+Fe(1)2824 4751 y Ff(\000)p Fk(1)2918 4788 y Fo(q)2959
+4802 y Fh(x)3003 4751 y Ff(\000)p Fk(1)3122 4788 y Fl(6)p
+Fq(=)g Fo(q)3259 4802 y Fh(z)3292 4812 y Fd(i)578 4958
+y Fo(q)619 4972 y Fh(z)652 4982 y Fd(i)678 4972 y Fk(3)800
+4958 y Fq(=)83 b(\()p Fo(q)1030 4972 y Fh(y)1065 4982
+y Fd(i)1095 4958 y Fo(q)1136 4972 y Fh(x)1180 4958 y
+Fq(\))15 b Fo(q)1271 4972 y Fh(z)1304 4981 y Fe(2)1342
+4958 y Fq(\()q Fo(q)1419 4972 y Fh(y)1454 4982 y Fd(i)1484
+4958 y Fo(q)1525 4972 y Fh(x)1568 4958 y Fq(\))1603 4916
+y Ff(\000)p Fk(1)1723 4958 y Fq(=)25 b Fo(q)1860 4972
+y Fh(y)1895 4981 y Fe(1)1933 4958 y Fo(q)1974 4972 y
+Fh(x)2018 4958 y Fo(q)2059 4972 y Fh(z)2092 4981 y Fe(2)2130
+4958 y Fo(q)2171 4972 y Fh(x)2214 4921 y Ff(\000)p Fk(1)2309
+4958 y Fo(q)2350 4972 y Fh(y)2385 4981 y Fe(1)2423 4921
+y Ff(\000)p Fk(1)2542 4958 y Fq(=)g Fo(q)2679 4972 y
+Fh(z)2712 4982 y Fd(i)0 5274 y Fj(qtot)47 b(=)g(-5.5511e-17)188
+b(7.0711e-01)g(1.2326e-32)g(7.0711e-01)0 5387 y(qtotchk)46
+b(=)h(-5.5511e-17)188 b(7.0711e-01)g(5.5511e-17)h(7.0711e-01)p
+eop
+6 5 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(6)0 399
+y Fm(1.4)112 b(Application)35 b(of)j(quaternions)g(in)e(co)s(ordinate)i
+(frame)f(transformations)0 570 y Fq(In)m(terpretations)30
+b(of)h(quaternions.)0 810 y Fr(1.4.1)105 b(Euler)35 b(angles)0
+982 y Fq(\(y)m(a)m(w-pitc)m(h-roll\))71 b(ma)m(y)36 b(b)s(e)f(used)g
+(to)h(construct)g(an)f(inertial-to-b)s(o)s(dy)e(quaterion)i
+Fo(q)2995 997 y Fh(bi)3088 982 y Fq(as)h(follo)m(ws.)55
+b(The)35 b(y)m(a)m(w)0 1095 y(rotation)c(is)e(ab)s(out)h(the)h
+Fo(z)j Fq(axis)c(in)f(the)i(inertial)d(frame)1508 1299
+y Fo(q)1549 1313 y Fh(y)1615 1299 y Fq(=)1711 1205 y
+Fi(\020h)1841 1299 y Fq(0)84 b(0)f(1)2185 1205 y Fi(i)2240
+1299 y Fo(;)15 b( )2342 1205 y Fi(\021)0 1519 y Fq(The)30
+b(pitc)m(h)g(rotation)g(is)g(ab)s(out)g(the)g Fo(y)k
+Fq(axis)29 b(in)h(frame)g(1)h(\()p Fo(y)s Fq(-axis)f(after)h(the)f(y)m
+(a)m(w)i(rotation)e(is)g(made\))1500 1739 y Fo(q)1541
+1753 y Fh(p)1577 1762 y Fe(1)1640 1739 y Fq(=)1736 1644
+y Fi(\020h)1866 1739 y Fq(0)84 b(1)f(0)2210 1644 y Fi(i)2265
+1739 y Fo(;)15 b(\022)2351 1644 y Fi(\021)0 1953 y Fq(The)30
+b(roll)f(rotation)h(is)g(made)g(ab)s(out)g(the)h Fo(x)f
+Fq(axis)g(in)f(frame)h(2)1495 2158 y Fo(q)1536 2172 y
+Fh(r)1568 2181 y Fe(2)1631 2158 y Fq(=)1727 2063 y Fi(\020h)1857
+2158 y Fq(1)84 b(0)f(0)2201 2063 y Fi(i)2256 2158 y Fo(;)15
+b(')2355 2063 y Fi(\021)0 2372 y Fq(In)28 b(order)g(to)h(construct)g(a)
+g(single)e(quaterion)h Fo(q)1626 2387 y Fh(bi)1712 2372
+y Fq(relating)g(the)g(inertial)f(to)i(b)s(o)s(dy)e(axis)h(rotation,)h
+(rotations)g Fo(q)3826 2386 y Fh(p)3862 2395 y Fe(1)0
+2485 y Fq(and)h Fo(q)218 2499 y Fh(r)250 2508 y Fe(2)318
+2485 y Fq(m)m(ust)g(b)s(e)g(expressed)g(in)f(the)i(inertial)d(frame:)
+1199 2689 y Fo(q)1240 2703 y Fh(p)1363 2689 y Fq(=)82
+b Fo(q)1557 2703 y Fh(y)1598 2689 y Fo(q)1639 2703 y
+Fh(p)1675 2712 y Fe(1)1713 2689 y Fo(q)1754 2703 y Fh(y)1795
+2652 y Ff(\000)p Fk(1)1201 2827 y Fo(q)1242 2841 y Fh(r)1363
+2827 y Fq(=)g Fo(q)1557 2841 y Fh(y)1598 2827 y Fo(q)1639
+2841 y Fh(r)1671 2850 y Fe(1)1710 2827 y Fo(q)1751 2841
+y Fh(y)1792 2790 y Ff(\000)p Fk(1)1911 2827 y Fq(=)25
+b Fo(q)2048 2841 y Fh(y)2089 2827 y Fo(q)2130 2841 y
+Fh(p)2166 2850 y Fe(1)2204 2827 y Fo(q)2245 2841 y Fh(r)2277
+2850 y Fe(2)2315 2827 y Fo(q)2356 2841 y Fh(p)2392 2850
+y Fe(1)2430 2790 y Ff(\000)p Fk(1)2524 2827 y Fo(q)2565
+2841 y Fh(y)2606 2790 y Ff(\000)p Fk(1)0 3032 y Fq(and)30
+b(so)756 3144 y Fo(q)797 3159 y Fh(bi)881 3144 y Fq(=)24
+b Fo(q)1017 3158 y Fh(r)1055 3144 y Fo(q)1096 3159 y
+Fh(b)1130 3144 y Fo(q)1171 3158 y Fh(y)1237 3144 y Fq(=)1333
+3050 y Fi(\020)1383 3144 y Fo(q)1424 3158 y Fh(y)1465
+3144 y Fo(q)1506 3158 y Fh(p)1542 3167 y Fe(1)1580 3144
+y Fo(q)1621 3158 y Fh(r)1653 3167 y Fe(2)1691 3144 y
+Fo(q)1732 3158 y Fh(p)1768 3167 y Fe(1)1806 3107 y Ff(\000)p
+Fk(1)1900 3144 y Fo(q)1941 3158 y Fh(y)1982 3107 y Ff(\000)p
+Fk(1)2076 3050 y Fi(\021)15 b(\020)2191 3144 y Fo(q)2232
+3158 y Fh(y)2273 3144 y Fo(q)2314 3158 y Fh(p)2350 3167
+y Fe(1)2387 3144 y Fo(q)2428 3158 y Fh(y)2469 3107 y
+Ff(\000)p Fk(1)2564 3050 y Fi(\021)2628 3144 y Fo(y)2673
+3158 y Fh(y)2740 3144 y Fq(=)25 b Fo(q)2877 3158 y Fh(y)2918
+3144 y Fo(q)2959 3158 y Fh(p)2995 3167 y Fe(1)3033 3144
+y Fo(q)3074 3158 y Fh(r)3106 3167 y Fe(2)0 3322 y Fq(Notice)30
+b(that)f(the)g(order)g(of)g(the)g(rotations)g(is)f(rev)m(ersed)h(when)e
+(the)i(un)m(transformed)f(rotations)h Fo(q)3374 3336
+y Fh(y)3415 3322 y Fq(,)g Fo(q)3510 3336 y Fh(p)3546
+3345 y Fe(1)3584 3322 y Fq(,)h Fo(q)3680 3336 y Fh(r)3712
+3345 y Fe(2)3779 3322 y Fq(are)0 3435 y(used)g(instead)f(of)i
+(quaternions)e(transformed)h(to)h(the)f(inertial)f(frame)h
+Fo(q)2504 3449 y Fh(r)2541 3435 y Fq(,)h Fo(q)2638 3450
+y Fh(b)2672 3435 y Fq(,)f Fo(q)2768 3449 y Fh(y)2809
+3435 y Fq(.)0 3675 y Fr(1.4.2)105 b(Co)s(ordinate)35
+b(transformation)f(matrices)g(and)h(quaternions)0 3846
+y Fq(A)26 b(unit)e(quaternion)g(\()p Fo(v)s(;)15 b(\022)s
+Fq(\))26 b(ma)m(y)g(b)s(e)f(in)m(terpreted)f(as)i(a)g(rotation)g(of)f
+Fo(\022)j Fq(degrees)e(ab)s(out)f(the)h(axis)f Fo(v)s
+Fq(.)39 b(Application)0 3959 y(of)31 b(this)e(rotation)i(to)g(a)f(v)m
+(ector)i Fo(x)f Fq(is)e(illustrated)f(b)s(elo)m(w:)903
+4721 y Fo(v)23 b Fl(\002)d Fo(x)p 3 setlinewidth np 1604
+4343 453 151 0.00 360.00 ellipse st 3 setlinewidth np
+1604 5250 a 1604 4344 li st 3 setlinewidth np 1619 4404
+a 1604 4344 li 1588 4404 li st 3 setlinewidth np 1604
+5250 a 1604 4948 li st 3 setlinewidth np 1619 5009 a
+1604 4948 li 1588 5009 li st 3 setlinewidth np 1604 5250
+a 1150 4344 li st 3 setlinewidth np 1191 4391 a 1150
+4344 li 1164 4405 li st 3 setlinewidth np 1151 4343 a
+1177 4343 li st 3 setlinewidth np 1204 4343 a 1230 4343
+li st 3 setlinewidth np 1257 4343 a 1283 4343 li st 3
+setlinewidth np 1311 4343 a 1337 4343 li st 3 setlinewidth
+np 1364 4343 a 1390 4343 li st 3 setlinewidth np 1417
+4343 a 1443 4343 li st 3 setlinewidth np 1471 4343 a
+1497 4343 li st 3 setlinewidth np 1524 4343 a 1550 4343
+li st 3 setlinewidth np 1577 4343 a 1603 4343 li st 3
+setlinewidth np 1604 4343 a 1586 4357 li st 3 setlinewidth
+np 1570 4371 a 1552 4385 li st 3 setlinewidth np 1536
+4398 a 1518 4412 li st 3 setlinewidth np 1502 4425 a
+1484 4439 li st 3 setlinewidth np 1468 4452 a 1450 4466
+li st 3 setlinewidth np 1434 4479 a 1416 4493 li st 3
+setlinewidth np 1452 4446 a 1415 4495 li 1471 4469 li
+st 3 setlinewidth np 1604 5250 a 1452 4495 li st 3 setlinewidth
+np 1479 4551 a 1452 4495 li 1449 4557 li st 3 setlinewidth
+np 2207 4722 a 1641 4571 li st 3 setlinewidth np 1703
+4572 a 1641 4571 li 1695 4601 li st 3 setlinewidth np
+1868 4118 a 1377 4382 li st 3 setlinewidth np 1423 4340
+a 1377 4382 li 1437 4367 li st 3 setlinewidth np 1151
+4343 a 1151 4370 li st 3 setlinewidth np 1151 4398 a
+1151 4425 li st 3 setlinewidth np 1151 4453 a 1151 4480
+li st 3 setlinewidth np 1151 4508 a 1151 4535 li st 3
+setlinewidth np 1151 4563 a 1151 4590 li st 3 setlinewidth
+np 1151 4618 a 1151 4645 li st 3 setlinewidth np 1135
+4586 a 1150 4646 li 1165 4586 li st 1642 5061 a(v)1113
+4343 y(x)1257 4532 y(\022)2246 4759 y Fl(h)p Fo(x;)15
+b(v)s Fl(i)p Fo(v)2246 4872 y Fq(pro)5 b(jection)30 b(of)g
+Fo(x)h Fq(on)m(to)g Fo(v)1906 4117 y Fq(pro)5 b(jection)30
+b(of)h Fo(x)f Fq(o\013)h(of)f Fo(v)1906 4230 y(x)20 b
+Fl(\000)g(h)p Fo(x;)15 b(v)s Fl(i)p Fo(v)p 3 setlinewidth
+np 1481 4060 435 93.73 139.40 arc st 3 setlinewidth np
+1391 4506 a 1452 4495 li 1393 4476 li st eop
+7 6 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(7)0 399
+y(The)28 b(v)m(ector)h Fo(x)507 413 y Fh(e)569 399 y
+Fq(=)c Fl(h)q Fo(x;)15 b(v)s Fl(i)h Fo(v)31 b Fq(is)c(the)h(pro)5
+b(jection)28 b(of)g Fo(x)g Fq(on)m(to)i Fo(v)h Fq(and)c(is)h(unc)m
+(hanged)f(b)m(y)h(the)g(rotation.)41 b(The)27 b(v)m(ector)0
+511 y Fo(x)52 526 y Fh(e)p Ff(?)171 511 y Fq(=)g Fo(x)22
+b Fl(\000)e Fo(x)486 525 y Fh(e)555 511 y Fq(is)31 b(orthogonal)h(to)g
+Fo(v)j Fq(and)c(is)g(rotated)i(b)m(y)f Fo(\022)h Fq(degrees)g(ab)s(out)
+e Fo(x)p Fq(.)45 b(The)31 b(plane)g(of)h(the)g(rotation)g(is)0
+624 y(spanned)d(b)m(y)h Fo(x)532 639 y Fh(e)p Ff(?)654
+624 y Fq(and)g Fo(v)24 b Fl(\002)c Fo(x)30 b Fq(Th)m(us)f(the)i
+(rotated)g(v)m(ector)h Fo(x)20 b Fl(\000)g Fo(r)33 b
+Fq(ma)m(y)e(b)s(e)f(written)f(as)1127 782 y Fo(x)1179
+796 y Fh(r)1242 782 y Fq(=)c Fo(x)1390 796 y Fh(e)1447
+782 y Fq(+)20 b(\()p Fo(x)g Fl(\000)g Fo(x)1788 796 y
+Fh(e)1825 782 y Fq(\))15 b(cos)q(\()p Fo(\022)s Fq(\))20
+b(+)g(\()p Fo(v)k Fl(\002)c Fo(x)p Fq(\))15 b(sin)o(\()p
+Fo(\022)s Fq(\))p Fo(:)940 b Fq(\(1.4\))0 941 y(where)41
+b(the)h(\014rst)f(term)h(re\015ects)g(the)g(unc)m(hanged)f(p)s(ortion)f
+(of)i Fo(x)f Fq(and)g(the)h(second)g(t)m(w)m(o)h(terms)f(denote)g(the)0
+1054 y(rotation)31 b(in)e(the)h(plane)g(normal)f(to)i
+Fo(v)s Fq(.)118 1166 y(The)c(co)s(ordinate)g(transformation)f(applied)f
+(to)j Fo(x)e Fq(ma)m(y)i(b)s(e)f(computed)f(b)m(y)h(applying)e
+(equation)i(\(1.4\))i(to)f(the)0 1279 y Fo(x)p Fq(,)j
+Fo(y)s Fq(,)f Fo(z)k Fq(unit)29 b(v)m(ectors.)43 b(The)29
+b(ab)s(o)m(v)m(e)j(application)d(in)m(v)m(olv)m(es)h(the)h(rotation)f
+(of)h(a)g(v)m(ector)h(ab)s(out)e(an)g(axis.)40 b(Since)730
+1354 y Fi(2)730 1500 y(6)730 1553 y(4)827 1435 y Fo(v)871
+1449 y Fk(1)827 1548 y Fo(v)871 1562 y Fk(2)827 1660
+y Fo(v)871 1674 y Fk(3)952 1354 y Fi(3)952 1500 y(7)952
+1553 y(5)1027 1548 y Fl(\002)1118 1354 y Fi(2)1118 1500
+y(6)1118 1553 y(4)1215 1435 y Fo(x)1217 1548 y(y)1215
+1660 y(x)1309 1354 y Fi(3)1309 1500 y(7)1309 1553 y(5)1389
+1548 y Fq(=)25 b(\()p Fo(v)1564 1562 y Fk(2)1604 1548
+y Fo(z)f Fl(\000)c Fo(v)1805 1562 y Fk(3)1845 1548 y
+Fo(y)s Fq(\))1921 1527 y(^)1928 1548 y Fo(i)h Fq(+)e(\()p
+Fo(v)2149 1562 y Fk(3)2189 1548 y Fo(x)h Fl(\000)g Fo(v)2396
+1562 y Fk(1)2436 1548 y Fo(z)t Fq(\))2516 1527 y(^)2517
+1548 y Fo(j)26 b Fq(+)20 b(\()p Fo(v)2750 1562 y Fk(1)2790
+1548 y Fo(y)j Fl(\000)d Fo(v)2993 1562 y Fk(2)3033 1548
+y Fo(x)p Fq(\))p Fo(k)0 1814 y Fq(w)m(e)31 b(ma)m(y)g(write)1062
+2082 y Fo(x)1114 2096 y Fh(r)1235 2082 y Fq(=)82 b Fo(v)1432
+2096 y Fk(1)1472 2082 y Fo(v)23 b Fq(+)d(\()p Fo(x)h
+Fl(\000)f Fo(v)1873 2096 y Fk(1)1912 2082 y Fo(v)s Fq(\))15
+b(cos)i Fo(\022)22 b Fq(+)2303 1888 y Fi(2)2303 2034
+y(6)2303 2087 y(4)2454 1969 y Fq(0)2435 2082 y Fo(v)2479
+2096 y Fk(3)2400 2195 y Fl(\000)p Fo(v)2515 2209 y Fk(2)2596
+1888 y Fi(3)2596 2034 y(7)2596 2087 y(5)2666 2082 y Fq(sin)14
+b Fo(\022)1069 2464 y(y)1114 2478 y Fh(r)1235 2464 y
+Fq(=)82 b Fo(v)1432 2478 y Fk(2)1472 2464 y Fo(v)23 b
+Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873 2478 y Fk(2)1912
+2464 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22 b Fq(+)2303
+2270 y Fi(2)2303 2416 y(6)2303 2469 y(4)2400 2351 y Fl(\000)p
+Fo(v)2515 2365 y Fk(3)2454 2464 y Fq(0)2435 2577 y Fo(v)2479
+2591 y Fk(1)2596 2270 y Fi(3)2596 2416 y(7)2596 2469
+y(5)2666 2464 y Fq(sin)14 b Fo(\022)1071 2846 y(z)1113
+2860 y Fh(r)1235 2846 y Fq(=)82 b Fo(v)1432 2860 y Fk(3)1472
+2846 y Fo(v)23 b Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873
+2860 y Fk(3)1912 2846 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22
+b Fq(+)2303 2652 y Fi(2)2303 2798 y(6)2303 2851 y(4)2435
+2733 y Fo(v)2479 2747 y Fk(2)2400 2846 y Fl(\000)p Fo(v)2515
+2860 y Fk(1)2454 2958 y Fq(0)2596 2652 y Fi(3)2596 2798
+y(7)2596 2851 y(5)2666 2846 y Fq(sin)14 b Fo(\022)0 3119
+y Fq(\(The)30 b(signs)f(are)i(rev)m(ersed)g(since)e(w)m(e're)j(mo)m
+(ving)e(the)g(co)s(ordinate)h(axes,)g(not)f(the)h(v)m(ector.\))118
+3232 y(An)26 b(alternativ)m(e)h(deriv)-5 b(ation)24 b(for)i(the)h
+(transformation)e(matrix)h(from)g(equation)g(\(1.4\))i(is)d(as)h(follo)
+m(ws.)39 b(De\014ne)7 3379 y(\026)-52 b Fo(q)28 b Fq(=)d(imag)q(\()p
+Fo(q)s Fq(\))h(=)594 3285 y Fi(h)675 3379 y Fo(q)716
+3393 y Fk(1)838 3379 y Fo(q)879 3393 y Fk(2)1001 3379
+y Fo(q)1042 3393 y Fk(3)1122 3285 y Fi(i)1162 3308 y
+Fh(T)1242 3379 y Fq(=)f Fo(v)18 b Fq(sin)o(\()p Fo(\022)s(=)p
+Fq(2\),)31 b Fl(k)q Fo(v)s Fl(k)26 b Fq(=)f(1.)41 b(Then)359
+3568 y Fo(x)411 3582 y Fh(r)532 3568 y Fq(=)83 b Fo(v)s(v)780
+3530 y Fh(T)836 3568 y Fo(x)20 b Fq(+)g(\()p Fo(x)g Fl(\000)g
+Fo(v)s(v)1291 3530 y Fh(T)1347 3568 y Fo(x)p Fq(\))15
+b(cos)q(\()p Fo(\022)s Fq(\))20 b Fl(\000)g Fq(\(\()p
+Fo(v)k Fl(\002)c Fo(e)2069 3582 y Fk(1)2109 3568 y Fq(\))p
+Fo(x)2196 3582 y Fk(1)2256 3568 y Fq(+)g(\()p Fo(v)k
+Fl(\002)c Fo(e)2583 3582 y Fk(2)2622 3568 y Fq(\))p Fo(x)2709
+3582 y Fk(2)2769 3568 y Fq(+)g(\()p Fo(v)k Fl(\002)c
+Fo(e)3096 3582 y Fk(3)3136 3568 y Fq(\))p Fo(x)3223 3582
+y Fk(3)3263 3568 y Fq(\))15 b(sin)o(\()p Fo(\022)s Fq(\))532
+3721 y(=)686 3627 y Fi(\020)736 3721 y Fo(I)22 b Fq(cos)16
+b Fo(\022)22 b Fq(+)e Fo(v)s(v)1185 3684 y Fh(T)1241
+3721 y Fq(\(1)h Fl(\000)f Fq(cos)c Fo(\022)s Fq(\))j(+)h(\()p
+Fo(v)k Fl(\002)c Fo(I)7 b Fq(\))15 b(sin)f Fo(\022)2225
+3627 y Fi(\021)2289 3721 y Fo(x)0 3890 y Fq(where)31
+b Fo(v)24 b Fl(\002)d Fo(I)38 b Fq(is)31 b(de\014ned)f(b)m(y)h(the)h
+(column-b)m(y-column)e(v)m(ector)j(cross)e(pro)s(duct.)43
+b(F)-8 b(rom)32 b(equation)f(1.3)i(and)e(the)0 4003 y(trigonometric)f
+(half-angle)g(form)m(ulae)g(w)m(e)h(ha)m(v)m(e)519 4172
+y(cos)16 b Fo(\022)85 b Fq(=)e(cos)1060 4134 y Fk(2)1099
+4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))21 b Fl(\000)f Fq(sin)1529
+4134 y Fk(2)1568 4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26
+b(=)f(1)c Fl(\000)f Fq(2)15 b(sin)2225 4134 y Fk(2)2264
+4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26 b(=)f(1)c Fl(\000)f
+Fq(2)2809 4077 y Fi(\020)2859 4172 y Fq(1)h Fl(\000)f
+Fq(real)o(\()p Fo(q)s Fq(\))3276 4134 y Fk(2)3316 4077
+y Fi(\021)529 4325 y Fq(sin)14 b Fo(\022)85 b Fq(=)e(2)15
+b(cos)q(\()p Fo(\022)s(=)p Fq(2\))g(sin\()p Fo(\022)s(=)p
+Fq(2\))26 b(=)f(2real\()p Fo(q)s Fq(\))15 b(sin)o(\()p
+Fo(\022)s(=)p Fq(2\))26 b(=)f(2)p Fo(q)2629 4339 y Fk(4)2684
+4325 y Fq(sin)o(\()p Fo(\022)s(=)p Fq(2\))p Fo(:)0 4483
+y Fq(Substituting)j(the)i(ab)s(o)m(v)m(e)i(in)m(to)e
+Fo(x)1171 4497 y Fh(r)1239 4483 y Fq(w)m(e)h(obtain)530
+4702 y Fo(x)582 4716 y Fh(r)702 4702 y Fq(=)856 4558
+y Fi(")905 4702 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4664 y
+Fk(2)1073 4724 y(4)1136 4702 y Fl(\000)20 b Fq(1\))h(+)f(2)p
+Fo(v)s(v)1558 4664 y Fh(T)1629 4558 y Fi( )1705 4640
+y Fq(sin)1816 4606 y Fk(2)1856 4640 y Fq(\()p Fo(\022)s(=)p
+Fq(2\))p 1705 4681 358 4 v 1705 4768 a(sin)1816 4733
+y Fk(2)1856 4768 y Fq(\()p Fo(\022)s(=)p Fq(2\))2073
+4558 y Fi(!)2154 4702 y Fq(\(1)h Fl(\000)e Fo(q)2389
+4664 y Fk(2)2386 4724 y(4)2429 4702 y Fq(\))h(+)g(2\()p
+Fo(v)25 b Fl(\002)19 b Fo(I)7 b Fq(\))p Fo(q)2937 4716
+y Fk(4)2992 4702 y Fq(sin)14 b Fo(\022)s(=)p Fq(2)3255
+4558 y Fi(#)3319 4702 y Fo(x)702 4984 y Fq(=)856 4840
+y Fi(")905 4984 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4946 y
+Fk(2)1073 5006 y(4)1136 4984 y Fl(\000)20 b Fq(1\))h(+)f(2)7
+b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1552 4946 y
+Fh(T)1742 4922 y Fq(1)20 b Fl(\000)g Fo(q)1942 4889 y
+Fk(2)1939 4945 y(4)p 1617 4963 490 4 v 1617 5046 a Fq(1)h
+Fl(\000)f Fq(cos)1895 5020 y Fk(2)1935 5046 y Fq(\()p
+Fo(\022)s(=)p Fq(2)2136 4984 y(+)g(2\()7 b(\026)-52 b
+Fo(q)24 b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2586 4998 y
+Fk(4)2625 4840 y Fi(#)2689 4984 y Fo(x)702 5216 y Fq(=)856
+5122 y Fi(h)895 5216 y Fo(I)g Fq(\(2)p Fo(q)1066 5179
+y Fk(2)1063 5239 y(4)1127 5216 y Fl(\000)20 b Fq(1\))h(+)f(2)7
+b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1543 5179 y
+Fh(T)1618 5216 y Fq(+)20 b(2\()7 b(\026)-52 b Fo(q)24
+b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2068 5230 y Fk(4)2107
+5122 y Fi(i)2161 5216 y Fo(x)702 5384 y Fq(=)83 b(\(2)p
+Fo(q)980 5347 y Fk(2)977 5407 y(4)1040 5384 y Fl(\000)20
+b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-51
+b Fo(q)1509 5347 y Fh(T)1563 5384 y Fo(x)21 b Fq(+)f(2)p
+Fo(q)1813 5398 y Fk(4)1852 5384 y Fq(\()7 b(\026)-52
+b Fo(q)23 b Fl(\002)d Fo(x)p Fq(\))p eop
+8 7 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s
+(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439
+b Fn(\(c\))32 b(1998)908 b Fq(8)0 399 y Fr(Remark)34
+b(1.4)46 b Fq(The)32 b(ab)s(o)m(v)m(e)i(deriv)-5 b(ation)31
+b(treats)i(a)f(quaternion)g(as)g(a)h(transformation)e(up)s(on)g(a)i(v)m
+(ector)g(within)0 511 y(a)f(linear)d(space.)44 b(An)31
+b(alternativ)m(e)h(con)m(v)m(en)m(tion)g(is)f(used)f(in)g([R)-10
+b(W91)r(],)31 b(in)f(whic)m(h)g(the)i(quaternion)e(is)g(treated)j(as)0
+624 y(a)e(transformation)e(up)s(on)g(the)h(basis)g(v)m(ectors)h(of)g(a)
+f(frame.)41 b(The)30 b(latter)g(con)m(v)m(en)m(tion)i(results)d(in)g(a)
+i(sign)e(c)m(hange)0 737 y(of)i(the)f(angle)g(of)h(rotation,)g(i.e.,)
+1150 941 y Fo(x)1202 955 y Fh(r)1323 941 y Fq(=)83 b(\(2)p
+Fo(q)1601 904 y Fk(2)1598 964 y(4)1661 941 y Fl(\000)20
+b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-52
+b Fo(q)2129 904 y Fh(T)2184 941 y Fo(x)20 b Fq(+)g(2)p
+Fo(q)2433 955 y Fk(4)2472 941 y Fq(\()7 b(\026)-52 b
+Fo(q)24 b Fl(\002)c Fo(x)p Fq(\))0 1146 y(Use)29 b(of)g(the)f(latter)h
+(con)m(v)m(en)m(tion)h(results)d(in)g(a)i(similar)d(c)m(hange)k(in)d
+(sign)h(in)f(the)i(time)f(deriv)-5 b(ativ)m(e)28 b(of)h(the)f(quater-)0
+1259 y(nion,)h(discussed)g(in)g(1.5.)0 1471 y Fr(M-\014le)46
+b Fj(qtransv)28 b Fq(Rotate)k(a)f(v)m(ector)227 1696
+y Fj(qtransv)46 b(is)h(the)g(function)f(defined)g(from:)g
+(/home3/hodel/oct/quat/qt)o(rans)o(v.m)275 1922 y(vr)h(=)h
+(qtransv\(vv,qr\))275 2035 y(rotate)e(a)i(3-vector)d(as)i(specified)f
+(by)h(quaternion)e(qr)275 2148 y(q)i(=)h(\(ee,th\))93
+b(\(vector,)46 b(angle)g(notation\))275 2261 y(vr)h(=)h(\(vv)f(.)g
+(ee\)*ee)f([projection)f(on)i(ee)g(unchanged)e(])514
+2374 y(+)i([vv)g(-)g(\(vv)g(.)h(ee\)*ee])e(cos\(th\))93
+b([what's)46 b(left)h(gets)f(scaled)g(by)i(cosine])514
+2487 y(+)f(\(vv)g(x)g(ee\))g(sin\(th\))571 b([and)47
+b(the)g(sine)f(term)h(completes)e(the)i(rotation])0 2711
+y Fr(M-\014le)f Fj(qtransvmat)57 b Fq(Obtain)30 b(3)20
+b Fl(\002)g Fq(3)31 b(rotation)g(matrix)e(from)h(a)h(quaternion)275
+2936 y Fj([xv,yv,zv])45 b(=)i(qtransvmat\(q\))275 3049
+y(xm)g(=)h(qtransvmat\(q\),)c(xm)j(=)g([xv)g(yv)g(zv])275
+3162 y(compute)f(x,y,z)g(axes)h(rotated)f(per)h(specified)e(quaternion)
+g(q)0 3387 y Fr(Example)34 b(1.4)46 b Fq(Use)30 b(of)h(quaternions)e
+(to)i(view)f(b)s(o)s(dy/inertial)d(frame)k(transformations:)0
+3575 y Fj(degrees)46 b(=)h(pi/180;)189 b(daz)47 b(=)h(30*degrees;)188
+b(del)46 b(=)i(-20*degrees;)0 3688 y(qazimuth)e(=)h
+(quaternion\([0,0,1],daz\);)0 3801 y(qelevation)e(=)i
+(quaternion\([cos\(daz\),sin\(d)o(az\),)o(0],)o(del\))o(;)0
+3914 y(qview)f(=)i(qmult\(qelevation,qazimut)o(h\);)0
+4139 y(th)f(=)h(0:5:20;)0 4252 y(ov)f(=)h(ones\(size\(th\)\);)0
+4365 y(myth)f(=)g([th,max\(th\)*ov)d(;)j(0*ov,th];)0
+4478 y(myth)g(=)g([[0:5:20])e(,)j(20*ones\(1,4\),20*ones\(1,4)o(\);)41
+b(...)382 4591 y(zeros\(1,5\),)k(5:5:20,)g(20*ones\(1,4\);)g(...)382
+4704 y(zeros\(1,5\),)g(zeros\(1,4\),)f([5:5:20]];)0 4930
+y(#)j(inertial)f(frame)g(quaternion)0 5043 y(qin)h(=)g(quaternion\([1)e
+(0)i(0],180*degrees\);)0 5156 y(for)g(kk=1:length\(myth\(1,:\)\))95
+5269 y(figure\(kk\))95 5381 y(thy)g(=)h(myth\(1,kk\);)140
+b(thp)47 b(=)g(myth\(2,kk\);)141 b(thr)46 b(=)i(myth\(3,kk\);)p
+eop
+9 8 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(9)95 399
+y Fj(#)48 b(avoid)e(transformations)e(by)j(reversing)e(the)i(order)g
+(of)g(multiplication!)95 511 y(qyi)g(=)h(quaternion\([0,0,1],thy*d)o
+(egr)o(ees\))o(;)95 624 y(qp1)f(=)h(quaternion\([0,1,0],thp*d)o(egr)o
+(ees\))o(;)95 737 y(qr2)f(=)h(quaternion\([1,0,0],thr*d)o(egr)o(ees\))o
+(;)95 850 y(qbi)f(=)h(qmult\(qyi,qmult\(qp1,qr2\))o(\);)95
+1076 y(printf\("yaw=\0458.4f,)43 b(pitch=\0458.4f,)i(\\n)190
+b(qbi)47 b(=)g(\(\0458.4f\)i)f(+)h(\(\0458.4e\)j)f(+)h(\(\0458.4f\)k)f
+(+)h(\()0 1189 y(\0458.4f\)\\n",thy,thp,)c(...)382 1302
+y(qbi\(1\),)j(qbi\(2\),)f(qbi\(3\),)h(qbi\(4\)\);)95
+1415 y([vv,th])g(=)i(quaternion\(qbi\);)95 1528 y(printf\(")285
+b(=)47 b(\(vector\))f(=)h([\0458.4f)f(\0458.4f)h(\0458.4f],)e
+(th=\0455.2f)h(deg\\n",)g(...)382 1641 y(vv\(1\),)g(vv\(2\),)g
+(vv\(3\),)g(th*180/pi\);)95 1866 y(#)i(transform)d(qbi)i(to)g
+(reference)f(coordinates)95 1979 y(qb)i(=)f(qmult\(qin,qbi\);)95
+2092 y(title\(sprintf\("yaw=\0455.2f,)41 b(pitch=\0455.2f,)k
+(roll=\0455.2f)g(\(deg\)",thy,thp,thr\)\))95 2205 y
+(coordinate_plot\(qin,qb,qvi)o(ew\);)95 2318 y(gset)i(terminal)f
+(postscript)f(eps)95 2431 y(eval\(sprintf\("gset)e(output)j
+('fig\045d.eps'",kk\)\);)95 2544 y(replot)95 2657 y(gset)h(terminal)f
+(x11)0 2770 y(endfor)0 2957 y Fq(Results:)316 2924 y
+Fk(1)50 4816 y @beginspecial 50 @llx 50 @lly 410 @urx
+302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis  0.00 deg) Cshow
+2737 4900 M
+(reference coordinates) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+2252 2272 L
+2737 2625 Pls
+2252 2272 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+-177 970 V
+2737 2625 Crs
+2560 3595 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+2252 2272 L
+2737 2625 Star
+2252 2272 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+-177 970 V
+2737 2625 Box
+2560 3595 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-177 970 V
+-89 0 V
+1.000 UL
+LT3
+3323 1302 M
+-1789 0 V
+1181 3242 L
+970 706 V
+1789 0 V
+4293 2008 L
+3323 1302 L
+970 706 V
+-1788 0 V
+2151 3948 L
+2505 2008 L
+1534 1302 L
+1.000 UL
+LT4
+3940 3948 M
+2969 3242 L
+-1788 0 V
+1788 0 V
+3323 1302 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis  0.00 deg) Cshow
+2737 4900 M
+(yaw= 0.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Pls
+3369 3141 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+-73 0 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 0 4911 1560 4 v 104 4965 a Fe(1)138 4997
+y Fc(due)28 b(to)g(details)h(of)g(visualization)h(soft)n(w)n(are,)h
+(the)d Fb(x)18 b Fa(\000)g Fb(y)j Fa(\000)e Fb(z)31 b
+Fc(axes)d(do)g(not)g(app)r(ear)h(as)g(a)f(righ)n(t-handed)f(co)r
+(ordinate)j(system.)0 5088 y(Sorry)-6 b(.)p eop
+10 9 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(10)50 2045
+y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
+@rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis  5.00 deg) Cshow
+2737 4900 M
+(yaw= 5.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3409 2580 M
+-672 45 V
+3409 2580 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+693 514 V
+2737 2625 Pls
+3430 3139 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+78 5 V
+10 10 V
+6 10 V
+3 9 V
+-3 7 V
+-6 6 V
+-10 3 V
+-14 2 V
+-16 -1 V
+-18 -3 V
+-20 -6 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 10.00 deg) Cshow
+2737 4900 M
+(yaw=10.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3346 2535 M
+-609 90 V
+3346 2535 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+749 508 V
+2737 2625 Pls
+3486 3133 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+83 9 V
+8 11 V
+5 9 V
+0 8 V
+-4 7 V
+-8 5 V
+-11 2 V
+-15 1 V
+-17 -2 V
+-19 -4 V
+-21 -6 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
+410 @urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 15.00 deg) Cshow
+2737 4900 M
+(yaw=15.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3279 2491 M
+-542 134 V
+3279 2491 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+800 499 V
+2737 2625 Pls
+3537 3124 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+87 14 V
+7 10 V
+2 9 V
+-1 7 V
+-6 6 V
+-9 4 V
+-13 2 V
+-16 -1 V
+-18 -3 V
+-20 -5 V
+-20 -6 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 20.00 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3207 2448 M
+-470 177 V
+3207 2448 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+90 18 V
+5 10 V
+1 8 V
+-3 7 V
+-7 5 V
+-11 3 V
+-14 1 V
+-17 -2 V
+-19 -3 V
+-20 -6 V
+-20 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial eop
+11 10 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(11)50 2045
+y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
+@rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 20.00 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3207 2448 M
+-470 177 V
+3207 2448 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+90 18 V
+5 10 V
+1 8 V
+-3 7 V
+-7 5 V
+-11 3 V
+-14 1 V
+-17 -2 V
+-19 -3 V
+-20 -6 V
+-20 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 20.61 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch= 5.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3173 2527 M
+-436 98 V
+3173 2527 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+405 -906 V
+2737 2625 Crs
+3142 1719 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-375 886 V
+90 18 V
+5 10 V
+1 9 V
+-3 7 V
+-7 5 V
+-11 3 V
+-15 1 V
+-17 -1 V
+-18 -4 V
+-20 -6 V
+-20 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
+410 @urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 22.34 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch=10.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3136 2606 M
+-399 19 V
+3136 2606 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+441 -911 V
+2737 2625 Crs
+3178 1714 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-384 878 V
+89 18 V
+6 11 V
+0 9 V
+-3 7 V
+-7 5 V
+-11 3 V
+-15 1 V
+-16 -1 V
+-19 -4 V
+-20 -6 V
+-20 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 24.95 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch=15.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3096 2686 M
+-359 -61 V
+3096 2686 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+474 -909 V
+2737 2625 Crs
+3211 1716 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-394 870 V
+90 18 V
+5 11 V
+1 9 V
+-4 8 V
+-7 5 V
+-11 3 V
+-14 1 V
+-17 -1 V
+-19 -4 V
+-20 -6 V
+-19 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial eop
+12 11 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(12)50 2045
+y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
+@rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 28.21 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch=20.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3054 2765 M
+2737 2625 L
+3054 2765 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+504 -901 V
+2737 2625 Crs
+3241 1724 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-403 861 V
+89 19 V
+5 11 V
+1 10 V
+-3 7 V
+-7 6 V
+-11 3 V
+-15 1 V
+-16 -1 V
+-19 -4 V
+-20 -6 V
+-19 -9 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 28.71 deg) Cshow
+2737 4900 M
+(yaw=20.00, pitch=20.00, roll=10.00 \(deg\)) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3622 3070 M
+2737 2625 L
+3622 3070 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+236 176 V
+2737 2625 Pls
+2973 2801 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+476 -915 V
+2737 2625 Crs
+3213 1710 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+485 353 V
+2737 2625 Star
+3222 2978 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+177 -970 V
+2737 2625 Box
+2914 1655 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-140 990 V
+100 8 V
+2 6 V
+-2 5 V
+-7 4 V
+-11 3 V
+-14 2 V
+-18 1 V
+-19 0 V
+-21 -2 V
+-22 -3 V
+-21 -4 V
+1.000 UL
+LT3
+3323 1302 M
+-1789 0 V
+1181 3242 L
+970 706 V
+1789 0 V
+4293 2008 L
+3323 1302 L
+970 706 V
+-1788 0 V
+2151 3948 L
+2505 2008 L
+1534 1302 L
+1.000 UL
+LT4
+3940 3948 M
+2969 3242 L
+-1788 0 V
+1788 0 V
+3323 1302 L
+stroke
+grestore
+end
+showpage
+ @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
+410 @urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 30.19 deg) Cshow
+2737 4900 M
+(yaw=20.00, pitch=20.00, roll=15.00 \(deg\)) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3622 3070 M
+2737 2625 L
+3622 3070 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+277 95 V
+2737 2625 Pls
+3014 2720 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+454 -927 V
+2737 2625 Crs
+3191 1698 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+485 353 V
+2737 2625 Star
+3222 2978 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+177 -970 V
+2737 2625 Box
+2914 1655 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-129 990 V
+100 6 V
+3 6 V
+-2 5 V
+-7 5 V
+-10 3 V
+-15 3 V
+-17 1 V
+-19 0 V
+-21 -1 V
+-22 -3 V
+-21 -4 V
+1.000 UL
+LT3
+3323 1302 M
+-1789 0 V
+1181 3242 L
+970 706 V
+1789 0 V
+4293 2008 L
+3323 1302 L
+970 706 V
+-1788 0 V
+2151 3948 L
+2505 2008 L
+1534 1302 L
+1.000 UL
+LT4
+3940 3948 M
+2969 3242 L
+-1788 0 V
+1788 0 V
+3323 1302 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 32.38 deg) Cshow
+2737 4900 M
+(yaw=20.00, pitch=20.00, roll=20.00 \(deg\)) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3769 2617 M
+-1032 8 V
+3769 2617 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+-12 55 V
+2737 2625 Pls
+2725 2680 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+9 1031 V
+2737 2625 Crs
+2746 3656 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+485 353 V
+2737 2625 Star
+3222 2978 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+177 -970 V
+2737 2625 Box
+2914 1655 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-119 989 V
+100 5 V
+2 6 V
+-1 6 V
+-7 4 V
+-10 4 V
+-14 3 V
+-17 2 V
+-19 0 V
+-21 -1 V
+-22 -3 V
+-21 -3 V
+1.000 UL
+LT3
+3323 1302 M
+-1789 0 V
+1181 3242 L
+970 706 V
+1789 0 V
+4293 2008 L
+3323 1302 L
+970 706 V
+-1788 0 V
+2151 3948 L
+2505 2008 L
+1534 1302 L
+1.000 UL
+LT4
+3940 3948 M
+2969 3242 L
+-1788 0 V
+1788 0 V
+3323 1302 L
+stroke
+grestore
+end
+showpage
+ @endspecial 0 4071 a Fm(1.5)112 b(Time)36 b(deriv)-6
+b(ativ)m(e)36 b(of)i(a)g(quaternion)0 4243 y Fq(In)28
+b(this)f(subsection)h(w)m(e)h(adopt)g(the)f(v)m(ector)j(notation)d(for)
+h(quaternions,)f(i.e.)40 b(\(with)27 b(some)i(abuse)g(of)f(notation\))0
+4356 y Fo(q)46 b Fq(=)c(\()s(\026)-48 b Fo(v)t(;)15 b(\022)s
+Fq(\))42 b(=)k(\026)-48 b Fo(v)30 b Fq(+)d Fo(\022)43
+b Fq(as)e(in)f(equation)h(\(1.3\).)74 b(Let)41 b Fo(q)1937
+4371 y Fh(b)1971 4356 y Fq(\()p Fo(t)p Fq(\))i(=)f(\()7
+b(\026)-52 b Fo(q)2306 4371 y Fh(b)2341 4356 y Fq(\()p
+Fo(t)p Fq(\))p Fo(;)15 b(\022)2527 4371 y Fh(b)2562 4356
+y Fq(\()p Fo(t)p Fq(\)\))41 b(b)s(e)g(a)g(quaternion)f(relating)g(the)0
+4469 y(co)s(ordinates)k(of)h(a)f(b)s(o)s(dy)f(\(rotating\))j(frame)e
+(to)h(a)g(\014xed)e(frame,)49 b(and)43 b(supp)s(ose)g(that)i(the)g(b)s
+(o)s(dy)e(frame)h(is)0 4582 y(rotating)26 b(with)f(\014xed)g(angular)h
+(v)m(elo)s(cit)m(y)g Fo(!)j Fq(ab)s(out)d(the)g(unit)e(v)m(ector)2378
+4559 y(\026)2368 4582 y(\012)h(=)g Fo(!)2612 4596 y Fk(1)2644
+4561 y Fq(^)2651 4582 y Fo(i)12 b Fq(+)f Fo(!)2833 4596
+y Fk(2)2871 4561 y Fq(^)2872 4582 y Fo(j)17 b Fq(+)11
+b Fo(!)3065 4596 y Fk(2)3107 4558 y Fq(^)3104 4582 y
+Fo(k)29 b Fq(in)c(the)h(\014xed)g(frame.)0 4695 y(\()p
+Fj(qtrans)j Fq(ma)m(y)i(b)s(e)f(used)f(to)i(p)s(erform)e(the)i
+(deriviation)d(in)h(the)i(b)s(o)s(dy)e(frame.\))p eop
+13 12 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(13)1829
+824 y Fo(!)p 3 setlinewidth np 1738 974 a 2342 974 li
+st 3 setlinewidth np 2281 990 a 2342 974 li 2281 959
+li st 3 setlinewidth np 1738 974 a 1285 1277 li st 3
+setlinewidth np 1327 1231 a 1285 1277 li 1343 1256 li
+st 3 setlinewidth np 1738 974 a 1738 371 li st 3 setlinewidth
+np 1753 431 a 1738 371 li 1723 431 li st 3 setlinewidth
+np 1738 975 a 1759 961 li st 3 setlinewidth np 1781 946
+a 1802 932 li st 3 setlinewidth np 1824 917 a 1845 903
+li st 3 setlinewidth np 1867 888 a 1888 874 li st 3 setlinewidth
+np 1911 860 a 1932 846 li st 3 setlinewidth np 1954 831
+a 1975 817 li st 3 setlinewidth np 1997 802 a 2018 788
+li st 3 setlinewidth np 2040 773 a 2061 759 li st 3 setlinewidth
+np 2083 745 a 2104 731 li st 3 setlinewidth np 2126 716
+a 2147 702 li st 3 setlinewidth np 2170 687 a 2191 673
+li st 3 setlinewidth np 2149 719 a 2191 673 li 2132 694
+li st 4 setlinewidth np [ 4 18.09 ] 0 setdash 2191 673
+a 2191 1163 li st [] 0 setdash [] 0 setdash 4 setlinewidth
+np [ 4 18.13 ] 0 setdash 2191 1163 a 1738 974 li st [] 0 setdash
+[] 0 setdash 2239 650 a Fq(\026)2229 673 y(\012)1323
+1352 y Fo(i)2342 975 y(j)1776 371 y(k)p 3 setlinewidth
+np 2009 817 82 94.40 237.53 arc st 3 setlinewidth np
+1940 910 a 2002 899 li 1943 880 li st 0 1548 a Fq(Then)28
+b(Euler's)g(appro)m(ximation)h(of)g(a)h(rotation)g(o)m(v)m(er)g(\001)p
+Fo(t)f Fq(seconds)g(is)g Fo(q)2462 1562 y Fh(r)2525 1548
+y Fq(=)2631 1525 y(\026)2621 1548 y(\012)14 b(sin)o(\()p
+Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))19 b(+)f(cos)q(\()p Fo(!)s
+Fq(\001)p Fo(t=)p Fq(2\).)41 b(F)-8 b(or)0 1661 y(\001)p
+Fo(t)30 b Fq(su\016cien)m(tly)f(small,)g(cos)q(\()p Fo(!)s
+Fq(\001)p Fo(t=)p Fq(2\))d Fl(\031)f Fq(1)31 b(and)f(sin)n(\()p
+Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))c Fl(\031)f Fo(!)s Fq(\001)p
+Fo(t=)p Fq(2,)31 b(so)g Fo(q)2713 1675 y Fh(r)2781 1661
+y Fq(ma)m(y)g(b)s(e)f(appro)m(ximated)g(as)1576 1892
+y Fo(q)1617 1906 y Fh(r)1680 1892 y Fl(\031)25 b Fq(1)c(+)1932
+1773 y Fi(\022)2004 1830 y Fo(!)s Fq(\001)p Fo(t)p 2004
+1871 169 4 v 2065 1954 a Fq(2)2182 1773 y Fi(\023)2268
+1869 y Fq(\026)2258 1892 y(\012)0 2117 y(Th)m(us)1239
+2325 y Fo(q)1280 2340 y Fh(b)1314 2325 y Fq(\()p Fo(t)g
+Fq(+)e(\001)p Fo(t)p Fq(\))83 b(=)g Fo(q)1915 2340 y
+Fh(b)1949 2325 y Fq(\()p Fo(t)p Fq(\))2067 2206 y Fi(\022)2129
+2325 y Fq(1)21 b(+)2285 2206 y Fi(\022)2357 2264 y Fo(!)s
+Fq(\001)p Fo(t)p 2357 2304 V 2418 2388 a Fq(2)2535 2206
+y Fi(\023)2621 2302 y Fq(\026)2611 2325 y(\012)f(+)g
+Fl(\001)15 b(\001)g(\001)2894 2206 y Fi(\023)950 2559
+y Fo(q)991 2574 y Fh(b)1025 2559 y Fq(\()p Fo(t)20 b
+Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1500 2574
+y Fh(b)1534 2559 y Fq(\()p Fo(t)p Fq(\))83 b(=)g Fo(q)1915
+2574 y Fh(b)1949 2559 y Fq(\()p Fo(t)p Fq(\))2067 2440
+y Fi(\022)2139 2497 y Fo(!)s Fq(\001)p Fo(t)p 2139 2538
+V 2200 2621 a Fq(2)2317 2440 y Fi(\023)2404 2536 y Fq(\026)2393
+2559 y(\012)20 b(+)g Fl(\001)15 b(\001)g(\001)940 2737
+y Fo(q)981 2752 y Fh(b)1015 2737 y Fq(\()p Fo(t)20 b
+Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1490 2752
+y Fh(b)1524 2737 y Fq(\()p Fo(t)p Fq(\))p 940 2778 688
+4 v 1229 2861 a(\001)p Fo(t)1720 2799 y Fq(=)1874 2680
+y Fi(\022)1945 2737 y Fo(!)p 1945 2778 60 4 v 1952 2861
+a Fq(2)2015 2680 y Fi(\023)2091 2799 y Fo(q)2132 2814
+y Fh(b)2166 2799 y Fq(\()p Fo(t)p Fq(\))2279 2776 y(\026)2269
+2799 y(\012)h(+)f Fl(\001)15 b(\001)g(\001)0 3024 y Fq(W)-8
+b(e)32 b(tak)m(e)g(the)e(limit)e(at)j(\001)p Fo(t)25
+b Fl(!)g Fq(0)31 b(to)g(obtain)978 3171 y Fo(dq)1066
+3186 y Fh(b)p 978 3212 123 4 v 999 3295 a Fo(dt)1136
+3233 y Fq(=)1232 3114 y Fi(\022)1303 3171 y Fo(!)p 1303
+3212 60 4 v 1310 3295 a Fq(2)1373 3114 y Fi(\023)1449
+3233 y Fo(q)1490 3248 y Fh(b)1524 3233 y Fq(\()p Fo(t)p
+Fq(\))1637 3210 y(\026)1627 3233 y(\012)25 b(=)1824 3171
+y Fo(!)p 1824 3212 V 1831 3295 a Fq(2)1909 3164 y Fi(\000)1947
+3233 y Fo(q)1988 3248 y Fh(b;)p Fk(4)2087 3210 y Fq(\026)2077
+3233 y(\012)20 b Fl(\000)g Fq(\()7 b(\026)-52 b Fo(q)2330
+3248 y Fh(b)2384 3233 y Fl(\001)2440 3210 y Fq(\026)2430
+3233 y(\012)o(\))21 b Fl(\000)2652 3210 y Fq(\026)2642
+3233 y(\012)f Fl(\002)26 b Fq(\026)-51 b Fo(q)2860 3248
+y Fh(b)2894 3164 y Fi(\001)0 3592 y Fq(where)30 b Fo(x)21
+b Fl(\001)f Fo(y)29 b Fq(=)552 3528 y Fi(P)655 3592 y
+Fo(x)707 3607 y Fh(`)740 3592 y Fo(y)785 3607 y Fh(`)848
+3592 y Fq(is)h(the)h(v)m(ector)h(inner)d(\(dot\))j(pro)s(duct)d(and)h
+Fo(x)21 b Fl(\002)f Fo(y)29 b Fq(=)2689 3395 y Fi(\014)2689
+3445 y(\014)2689 3494 y(\014)2689 3544 y(\014)2689 3594
+y(\014)2689 3644 y(\014)2689 3694 y(\014)2716 3398 y(2)2716
+3544 y(6)2716 3597 y(4)2836 3462 y Fq(^)2843 3483 y Fo(i)3010
+3462 y Fq(^)3012 3483 y Fo(j)3185 3459 y Fq(^)3182 3483
+y Fo(k)2813 3596 y(x)2865 3610 y Fk(1)2987 3596 y Fo(x)3039
+3610 y Fk(2)3162 3596 y Fo(x)3214 3610 y Fk(3)2817 3709
+y Fo(y)2862 3723 y Fk(1)2991 3709 y Fo(y)3036 3723 y
+Fk(2)3166 3709 y Fo(y)3211 3723 y Fk(3)3295 3398 y Fi(3)3295
+3544 y(7)3295 3597 y(5)3350 3395 y(\014)3350 3445 y(\014)3350
+3494 y(\014)3350 3544 y(\014)3350 3594 y(\014)3350 3644
+y(\014)3350 3694 y(\014)3409 3592 y Fq(is)g(the)i(v)m(ector)0
+3815 y(cross)f(pro)s(duct.)40 b(In)30 b(matrix)f(form)h(this)g(is)1011
+3922 y Fi(2)1011 4068 y(6)1011 4118 y(6)1011 4168 y(6)1011
+4221 y(4)1125 3996 y Fq(_)-42 b Fo(q)1149 4011 y Fh(b)p
+Fk(1)1125 4109 y Fq(_)g Fo(q)1149 4124 y Fh(b)p Fk(2)1125
+4222 y Fq(_)g Fo(q)1149 4237 y Fh(b)p Fk(3)1125 4335
+y Fq(_)g Fo(q)1149 4350 y Fh(b)p Fk(4)1260 3922 y Fi(3)1260
+4068 y(7)1260 4118 y(7)1260 4168 y(7)1260 4221 y(5)1340
+4166 y Fq(=)1446 4104 y Fo(!)p 1446 4145 V 1453 4228
+a Fq(2)1531 3922 y Fi(2)1531 4068 y(6)1531 4118 y(6)1531
+4168 y(6)1531 4221 y(4)1688 3996 y Fq(0)180 b Fo(!)1970
+4010 y Fk(3)2127 3996 y Fl(\000)p Fo(!)2255 4010 y Fk(2)2377
+3996 y Fo(!)2434 4010 y Fk(1)1628 4109 y Fl(\000)p Fo(!)1756
+4123 y Fk(3)1938 4109 y Fq(0)g Fo(!)2220 4123 y Fk(1)2377
+4109 y Fo(!)2434 4123 y Fk(2)1663 4222 y Fo(!)1720 4236
+y Fk(2)1878 4222 y Fl(\000)p Fo(!)2006 4236 y Fk(1)2188
+4222 y Fq(0)144 b Fo(!)2434 4236 y Fk(3)1628 4335 y Fl(\000)p
+Fo(!)1756 4349 y Fk(1)1878 4335 y Fl(\000)p Fo(!)2006
+4349 y Fk(2)2127 4335 y Fl(\000)p Fo(!)2255 4349 y Fk(3)2402
+4335 y Fq(0)2515 3922 y Fi(3)2515 4068 y(7)2515 4118
+y(7)2515 4168 y(7)2515 4221 y(5)2585 3922 y(2)2585 4068
+y(6)2585 4118 y(6)2585 4168 y(6)2585 4221 y(4)2682 3996
+y Fo(q)2723 4011 y Fh(b)p Fk(1)2682 4109 y Fo(q)2723
+4124 y Fh(b)p Fk(2)2682 4222 y Fo(q)2723 4237 y Fh(b)p
+Fk(3)2682 4335 y Fo(q)2723 4350 y Fh(b)p Fk(4)2834 3922
+y Fi(3)2834 4068 y(7)2834 4118 y(7)2834 4168 y(7)2834
+4221 y(5)0 4522 y Fq(Notice)31 b(that)g(the)g(4)21 b
+Fl(\002)e Fq(4)31 b(matrix)f(is)f(sk)m(ew)i(symmetric)f(\(hence)h(its)e
+(matrix)h(exp)s(onen)m(tial)f(is)h(orthogonal\).)0 4806
+y Fp(References)0 5009 y Fq([Mul])127 b(Larry)30 b(Mullins.)37
+b(Course)30 b(4160:)43 b(Quaternions.)c(Course)30 b(notes.)0
+5192 y([R)-10 b(W91])47 b(M.)41 b(H.)g(Rheinfurth)d(and)h(H.)i(B.)g
+(Wilson.)70 b(Metho)s(ds)40 b(of)h(applied)d(dynamics.)69
+b(T)-8 b(ec)m(hnical)40 b(Rep)s(ort)337 5305 y(NASA)30
+b(RP-1262,)j(NASA,)e(George)h(C.)e(Marshall)f(Space)h(Fligh)m(t)g(Cen)m
+(ter,)h(1991.)p eop
+14 13 bop 0 527 a Fp(Index)0 709 y Fq(conjugate)166 821
+y(quaternion,)30 b(3)0 1017 y(Euler)f(angles)166 1130
+y(quaternions,)g(6)0 1326 y(Octa)m(v)m(e)166 1439 y Fj(qinv)p
+Fq(,)h(3)166 1552 y Fj(qmult)p Fq(,)f(3)166 1665 y Fj(qtrans)p
+Fq(,)g(4)166 1778 y(qtransv,)h(8)166 1891 y(qtransvmat,)h(8)166
+2004 y Fj(quaternion)p Fq(,)d(2)0 2200 y(quaternions)166
+2313 y(as)j(co)s(ordinate)f(rotations,)h(3)166 2425 y(co)s(ordinate)f
+(transformation,)g(4)166 2538 y(co)s(ordinate)g(transformation)g
+(matrices,)h(6)166 2651 y(cross)g(pro)s(ducts,)e(2)166
+2764 y(de\014nition,)f(2)166 2877 y(deriv)-5 b(ativ)m(es,)30
+b(12)166 2990 y(Euler)f(angles,)h(6)166 3103 y(m)m(ultiplication,)e(2)
+166 3216 y(unit)h(quaternions,)g(3)1905 5656 y(14)p eop
+end
+userdict /end-hook known{end-hook}if
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/demoquat.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,259 @@
+## Copyright (C) 1998, 1999, 2000, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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 pogram; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} demoquat ()
+## Demonstrate the functions available for manipulating quaternions.
+##
+## Thanks to Mr. Charles Hall, Dr. Don Krupp and Dr. Larry Mullins at
+## NASA's Marshall Space Flight Center for notes and instruction in
+## use and conventions with quaternions.  - A. S. Hodel
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function opt = demoquat ()
+
+  opt = 0;
+  quitopt = 5;
+
+  while (opt != quitopt)
+    opt = menu ("Quaternion function demo (c) 1998 A. S. Hodel, a.s.hodel@eng.auburn.edu",
+		"quaternion construction/data extraction",
+		"simple quaternion functions",
+		"transformation functions",
+		"body-inertial frame demo",
+		"Quit");
+
+    switch(opt)
+
+    case(1)
+      printf("Quaternion construction/data extraction\n");
+      help quaternion
+      prompt
+      cmd = "q = quaternion(1,2,3,4)";
+      run_cmd
+      disp("This format stores the i,j,k parts of the quaternion first;")
+      disp("the real part is stored last.")
+      prompt
+      disp(" ")
+      disp("i, j, and k are all square roots of -1; however they do not")
+      disp("commute under multiplication (discussed further with the function")
+      disp("qmult).  Therefore quaternions do not commute under multiplcation:")
+      disp("    q1*q2 != q2*q1 (usually)")
+      prompt
+
+      disp("Quaternions as rotations: unit quaternion to represent")
+      disp("rotation of 45 degrees about the vector [1 1 1]")
+      cmd = "degrees = pi/180; q1 = quaternion([1 1 1],45*degrees)";
+      run_cmd
+      prompt
+      cmd = "real_q = cos(45*degrees/2)";
+      run_cmd
+      printf("The real part of the quaternion q(4) is cos(theta/2).\n----\n\n");
+      cmd = "imag_q = sin(45*degrees/2)*[1 1 1]/norm([1 1 1])"
+      run_cmd
+      disp("The imaginary part of the quaternion is sin(theta/2)*unit vector");
+      disp("The constructed quaternion is a unit quaternion.");
+      prompt
+      disp("Can also extract both forms of the quaternion:")
+      disp("Vector/angle form of 1i + 2j + 3k + 4:")
+      cmd = "[vv,th] = quaternion(q)";
+      run_cmd
+      cmd = "vv_norm = norm(vv)";
+      run_cmd
+      disp("Returns the eigenaxis as a 3-d unit vector");
+      disp("Check values: ")
+      cmd = "th_deg = th*180/pi";
+      run_cmd
+      disp("")
+      disp("This concludes the quaternion construction/extraction demo.");
+      prompt
+
+    case(2)
+      printf("Simple quaternion functions\n");
+      cmd = "help qconj";
+      run_cmd
+      cmd = "degrees = pi/180; q1 = quaternion([1 1 1],45*degrees)";
+      run_cmd
+      cmd = "q2 = qconj(q1)";
+      run_cmd
+      disp("The conjugate changes the sign of the complex part of the")
+      printf("quaternion.\n\n");
+      prompt
+      printf("\n\n\nMultiplication of quaternions:\n");
+      cmd = "help qmult";
+      run_cmd
+      cmd = "help qinv"
+      run_cmd
+      disp("Inverse quaternion: q*qi = qi*q = 1:")
+      cmd = "q1i = qinv(q1)";
+      run_cmd
+      cmd = "one = qmult(q1,q1i)";
+      run_cmd
+
+      printf("Conclusion of simple quaternion functions");
+      prompt
+
+    case(3)
+      printf("Transformation functions\n");
+      disp("A problem with the discussion of coordinate transformations is that");
+      disp("one must be clear on what is being transformed: does a rotation of");
+      disp("theta degrees mean that you're rotating the VECTOR by theta degrees,");
+      disp("also called the 'active convention,' or does it mean that you rotate ");
+      disp("the COORDINATE FRAME by theta degrees, also called the 'passive convention,' ");
+      disp("which is equivalent to rotating the VECTOR by (-theta) degrees.  The");
+      disp("functions in this demo use the active convention.  I'll point out where");
+      disp("this changes the code as the demo runs.");
+      disp("    -- The author");
+      prompt
+      printf("\n\n");
+      disp("Sequences of rotations:")
+      printf("\n\nRotation of a vector by 90 degrees about the reference z axis\n");
+      cmd = "qz = quaternion([0 0 1], pi/2);";
+      disp(cmd) ; eval(cmd);
+      printf("\n\nRotation of a vector by 90 degrees about the reference y axis\n");
+      cmd="qy = quaternion([0 1 0], pi/2);";
+      disp(cmd) ; eval(cmd);
+      printf("\n\nRotation of a vector by 90 degrees about the reference x axis\n");
+      cmd="qx = quaternion([1 0 0], pi/2);";
+      run_cmd
+      printf("\n\nSequence of three rotations: 90 degrees about x, then 90 degrees\n");
+      disp("about y, then 90 degrees about z (all axes specified in the reference frame):");
+      qchk = qmult(qz,qmult(qy,qx));
+      cmd = "[vv,th] = quaternion(qchk), th_deg = th*180/pi";
+      run_cmd
+      disp("The sequence of the three rotations above is equivalent to a single rotation")
+      disp("of 90 degrees about the y axis. Check:");
+      cmd = "err = norm(qchk - qy)";
+      run_cmd
+
+      disp("Transformation of a quaternion by a quaternion:")
+      disp("The three quaternions above were rotations specified about")
+      disp("a single reference frame.  It is often convenient to specify the");
+      disp("eigenaxis of a rotation in a different frame (e.g., when computing");
+      disp("the transformation rotation in terms of the Euler angles yaw-pitch-roll).");
+      cmd = "help qtrans";
+      run_cmd
+      disp("")
+      disp("NOTE: If the passive convention is used, then the above");
+      disp("formula changes to   v = qinv(q)*v*q  instead of ")
+      disp("v = q*v*qinv(q).")
+      prompt
+      disp("")
+      disp("Example: Vectors in Frame 2 are obtained by rotating them from ")
+      disp("   from Frame 1 by 90 degrees about the x axis (quaternion qx)")
+      disp("   A quaternion in Frame 2 rotates a vector by 90 degrees about")
+      disp("   the Frame 2 y axis (quaternion qy).  The equivalent rotation")
+      disp("   in the reference frame is:")
+      cmd = "q_eq = qtrans(qy,qx); [vv,th] = quaternion(q_eq)";
+      run_cmd
+      disp("The rotation is equivalent to rotating about the reference z axis")
+      disp("by 90 degrees (quaternion qz)")
+      prompt
+
+      disp("Transformation of a vector by a quaternion");
+      cmd = "help qtransv";
+      run_cmd
+
+      disp("NOTE: the above formula changes if the passive quaternion ")
+      disp("is used; the cross product term is subtracted instead of added.");
+      prompt
+      disp("Example: rotate the vector [1,1,1] by 90 degrees about the y axis");
+      cmd = "vec_r = qtransv([1,1,1],qy)";
+      run_cmd
+      prompt
+      disp("Equivalently, one may multiply by qtransvmat:")
+      cmd = "help qtransvmat";
+      run_cmd
+      disp("NOTE: the passive quaternion convention would use the transpose")
+      disp("(inverse) of the orthogonal matrix returned by qtransvmat.");
+      prompt
+      cmd = "vec_r_2 = qtransvmat(qy)*[1;1;1]; vec_err = norm(vec_r - vec_r_2)";
+      run_cmd
+
+      disp("")
+      disp("The last transformation function is the derivative of a quaternion")
+      disp("Given rotation rates about the reference x, y, and z axes.");
+      cmd = "help qderivmat";
+      run_cmd
+      disp("")
+      disp("Example:")
+      disp("Frame is rotating about the z axis at 1 rad/s")
+      cmd = "Omega = [0,0,1]; Dmat = qderivmat(Omega)";
+      run_cmd
+      disp("Notice that Dmat is skew symmetric, as it should be.")
+      disp("expm(Dmat*t) is orthogonal, so that unit quaternions remain")
+      disp("unit quaternions as the rotating frame precesses.");
+      disp(" ")
+      disp("This concludes the transformation demo.");
+      prompt;
+
+    case(4)
+      printf("Body-inertial frame demo: Look at the source code for\n");
+      printf("demoquat.m and qcoordinate_plot.m to see how it's done.\n");
+
+      # i,j,k units
+      iv = quaternion(1,0,0,0); jv = quaternion(0,1,0,0);
+      kv = quaternion(0,0,1,0);
+
+      # construct quaternion to desired view.
+      degrees = pi/180; daz = 45*degrees; del = -30*degrees;
+      qazimuth = quaternion([0,0,1],daz);
+      qelevation = quaternion([cos(daz),sin(daz),0],del);
+      qview = qmult(qelevation,qazimuth);
+
+      # inertial frame i, j, k axes.
+      iif = iv; jf = qtrans(jv,iv); kf = qtrans(kv,iv);
+
+      # rotation steps
+      th = 0:5:20; ov = ones(size(th)); myth = [th,max(th)*ov ; 0*ov,th];
+
+      # construct yaw-pitch-roll cartoon
+      for kk=1:length(myth(1,:))
+	thy = myth(1,kk);
+	thp = myth(2,kk);
+
+	qyaw = quaternion([0,0,1],thy*pi/180);
+	[jvy,th] = quaternion(qtrans(jf,qyaw));
+	qpitch = quaternion(jvy(1:3),thp*pi/180);
+	qb = qmult(qpitch, qyaw);
+	qi = quaternion([1, 0, 0],180*degrees);
+
+	printf("yaw=%8.4f, pitch=%8.4f, \n    qbi = (%8.4f)i + (%8.4e)j + (%8.4f)k + (%8.4f)\n",thy,thp, ...
+	  qb(1), qb(2), qb(3), qb(4));
+	[vv,th] = quaternion(qb);
+	printf("      = (vector) = [%8.4f %8.4f %8.4f], th=%5.2f deg\n", ...
+	  vv(1), vv(2), vv(3), th*180/pi);
+	fflush (stdout);
+	qb = qmult(qb,qi);
+	title(sprintf("yaw=%5.2f deg, pitch=%5.2f deg",thy,thp))
+	qcoordinate_plot(qi,qb,qview);
+	drawnow ();
+      endfor
+
+    case(quitopt)
+      printf ("Exiting quaternion demo\n");
+
+    otherwise
+      error ("invalid option %f", opt);
+
+    endswitch    
+  endwhile
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qconj.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,42 @@
+## Copyright (C) 1998, 2000, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qconj (@var{q})
+## Conjugate of a quaternion.
+##
+## @example
+## q = [w, x, y, z] = w*i + x*j + y*k + z
+## qconj (q) = -w*i -x*j -y*k + z
+## @end example
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function retval = qconj (q)
+
+  if (nargin != 1 )
+    print_usage ();
+  endif
+
+  [a, b, c, d] = quaternion (q);
+
+  retval = quaternion (-a, -b, -c, d);
+
+endfunction
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qcoordinate_plot.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,131 @@
+## Copyright (C) 1998, 1999, 2000, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qcoordinate_plot (@var{qf}, @var{qb}, @var{qv})
+## Plot in the current figure a set of coordinate axes as viewed from 
+## the orientation specified by quaternion @var{qv}.  Inertial axes are
+## also plotted:
+##
+## @table @var
+## @item qf
+## Quaternion from reference (x,y,z) to inertial.
+## @item qb
+## Quaternion from reference to body.
+## @item qv
+## Quaternion from reference to view angle.
+## @end table
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function qcoordinate_plot (qf, qb, qv)
+
+  if (nargin != 3 )
+    print_usage ();
+  endif
+
+  degrees = pi / 180;
+  d180 = 180 * degrees;
+
+  ## construct coordinate transformation to view frame
+
+  cm = qtransvmat(qv);
+
+  p1 = [-1, -1,  1];
+  p2 = [-1, -1, -1];
+  p3 = [ 1, -1, -1];
+  p4 = [ 1, -1,  1];
+  p5 = [-1,  1,  1];
+  p6 = [ 1,  1,  1];
+  p7 = [ 1,  1, -1];
+  p8 = [-1,  1, -1];
+
+  ## outline positive quadrant
+
+  box1 = cm * [p4; p6; p5; p6; p7]';
+
+  ## outline rest of the box
+
+  box2 = cm * [p7; p8; p5; p1; p4; p3; p7; p3; p2; p1; p2; p8]';
+
+  ## compute inertial to body rotation eigenaxis
+  ## qb = qbf*qf => qbf = qb/qf
+  ##
+  ## need to use inverse quaternion to rotate axes
+
+  qbf = qinv (qmult (qb, qinv (qf)));
+
+  [eaxv, th_eig] = quaternion (qbf);
+
+  ## draw 1/3 circle in x-y plane around a unit z axis
+
+  th = (0:-12:-120) * degrees * sign (th_eig);
+  lth = length (th);
+
+  cpts = [0, 0, 0.1*cos(th);
+          0, 0, 0.1*sin(th);
+          0, 1,   1*ones(1,lth)];
+
+  ## rotate the 1/3 circle around eigenaxis of inertial to body rotation
+  ## qez = qe/qz = rotation to get from z axis to eigenaxis.
+  ## This rotates the 1/3 circle from x-y plane to the plane normal to
+  ## eigenaxis
+
+  qez = qmult (qbf, qinv (quaternion (0, 0, 1, 0)));
+  eig_xm = qtransvmat (qez);
+  cpts = cm*eig_xm * cpts;
+
+  ## transform inertial and body quaternions to view coordinates (rotate
+  ## by azimuth, elevation)
+
+  qfm = qtransvmat (qf);
+  qbm = qtransvmat (qf);
+
+  qf = qmult (qv, qf);
+  qb = qmult (qv, qb);
+
+  ## get coordinate axes in inertial and reference frame
+
+  jnk = qtransvmat (qf);
+  ifv = jnk(:,1);
+  jfv = jnk(:,2);
+  kfv = jnk(:,3);
+
+  jnk = qtransvmat (qb);
+  ibv = jnk(:,1);
+  jbv = jnk(:,2);
+  kbv = jnk(:,3);
+
+  axis ([-2, 2, -2, 2], "square");
+
+  [vv, theta] = quaternion (qb);
+
+  xlabel (sprintf ("rotate about eigenaxis %5.2f deg", th_eig/degrees));
+
+  plot ([ibv(1), 0], [ibv(3), 0], "-@11;x (body);",
+        [0, jbv(1)], [0, jbv(3)], "-@21;y (body);",
+        [0, kbv(1)], [0, kbv(3)], "-@32;z (body);",
+        [ifv(1), 0], [ifv(3), 0], "-@13;x (inertial);",
+        [0, jfv(1)], [0, jfv(3)], "-@23;y (inertial);",
+        [0, kfv(1)], [0, kfv(3)], "-@34;z (inertial);",
+        cpts(1,:), cpts(3,:), ".-6 ;eigenaxis;",
+        box2(1,:), box2(3,:), "-4;;",
+        box1(1,:), box1(3,:), "-5;;");
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qderiv.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,58 @@
+## Copyright (C) 1998, 2000, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qderiv (omega)
+## Derivative of a quaternion.
+##
+## Let Q be a quaternion to transform a vector from a fixed frame to
+## a rotating frame.  If the rotating frame is rotating about the 
+## [x, y, z] axes at angular rates [wx, wy, wz], then the derivative
+## of Q is given by
+##
+## @example
+## Q' = qderivmat (omega) * Q
+## @end example
+##
+## If the passive convention is used (rotate the frame, not the vector),
+## then
+##
+## @example
+## Q' = -qderivmat (omega) * Q
+## @end example
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function Dmat = qderivmat (Omega)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  Omega = vec (Omega);
+
+  if (length (Omega) != 3)
+    error ("qderivmat: Omega must be a length 3 vector");
+  endif
+
+  Dmat = 0.5 * [      0.0,  Omega(3), -Omega(2),  Omega(1);
+                -Omega(3),       0.0,  Omega(1),  Omega(2);
+                 Omega(2), -Omega(1),       0.0,  Omega(3);
+                -Omega(1), -Omega(2), -Omega(3),       0.0 ];
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qderivmat.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,58 @@
+## Copyright (C) 1998, 2000, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qderivmat (@var{omega})
+## Derivative of a quaternion.
+##
+## Let Q be a quaternion to transform a vector from a fixed frame to
+## a rotating frame.  If the rotating frame is rotating about the 
+## [x, y, z] axes at angular rates [wx, wy, wz], then the derivative
+## of Q is given by
+##
+## @example
+## Q' = qderivmat (omega) * Q
+## @end example
+##
+## If the passive convention is used (rotate the frame, not the vector),
+## then
+##
+## @example
+## Q' = -qderivmat (omega) * Q.
+## @end example
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function Dmat = qderivmat (Omega)
+
+  if (nargin != 1 )
+    print_usage ();
+  endif
+
+  Omega = vec (Omega);
+
+  if (length (Omega) != 3)
+    error ("qderivmat: Omega must be a length 3 vector");
+  endif
+
+  Dmat = 0.5 * [      0.0,  Omega(3), -Omega(2),  Omega(1);
+                -Omega(3),       0.0,  Omega(1),  Omega(2);
+                 Omega(2), -Omega(1),       0.0,  Omega(3);
+                -Omega(1), -Omega(2), -Omega(3),       0.0 ];
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qinv.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,43 @@
+## Copyright (C) 1998, 2000, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qinv (@var{q})
+## Return the inverse of a quaternion.
+##
+## @example
+## q = [w, x, y, z] = w*i + x*j + y*k + z
+## qmult (q, qinv (q)) = 1 = [0 0 0 1]
+## @end example
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function retval = qinv (q)
+
+  if (nargin !=  1)
+    print_usage ();
+  endif
+
+  if (norm (q) != 0)
+    retval = qconj (q) / sum (q .* q);
+  else
+    error ("qinv: zero quaternion passed!");
+  endif
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qmult.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,57 @@
+## Copyright (C) 1998, 2000, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qmult (@var{a}, @var{b})
+## Multiply two quaternions.
+##
+## @example
+## [w, x, y, z] = w*i + x*j + y*k + z
+## @end example
+##
+## @noindent
+## identities:
+##
+## @example
+## i^2 = j^2 = k^2 = -1
+## ij = k                 jk = i
+## ki = j                 kj = -i
+## ji = -k                ik = -j
+## @end example
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function retval = qmult (a, b)
+
+  if (nargin != 2 )
+    print_usage ();
+  endif
+
+  [a1, b1, c1, d1] = quaternion (a);
+  [a2, b2, c2, d2] = quaternion (b);
+  
+  ri = b1*c2 - c1*b2 + d1*a2 + a1*d2;
+  rj = c1*a2 - a1*c2 + d1*b2 + b1*d2;
+  rk = a1*b2 - b1*a2 + d1*c2 + c1*d2;
+  rr = -(a1*a2 + b1*b2 + c1*c2) + d1*d2;
+  
+  retval = quaternion (ri, rj, rk, rr);
+
+endfunction
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qtrans.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,41 @@
+## Copyright (C) 1998, 2000, 2002, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qtrans (@var{v}, @var{q})
+## Transform the unit quaternion @var{v} by the unit quaternion @var{q}.
+## Returns @code{@var{v} = @var{q}*@var{v}/@var{q}}.
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function v = qtrans (v, q)
+
+  if (nargin != 2)
+    print_usage ();
+  endif
+
+  if (! isvector (v) || length (v) != 4)
+    error ("qtrans: v(%d,%d) must be a quaternion", rows (v), columns (v));
+  elseif (! isvector (q) || length (q) != 4)
+    error ("qtrans: q(%d,%d) must be a quaternion", rows (q), columns (q));
+  endif
+
+  v = qmult (q, qmult (v, qinv (q)));
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qtransv.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,50 @@
+## Copyright (C) 1998, 2000, 2002, 2005, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qtransv (@var{v}, @var{q})
+## Transform the 3-D vector @var{v} by the unit quaternion @var{q}.
+## Return a column vector.
+##
+## @example
+## vi = (2*real(q)^2 - 1)*vb + 2*imag(q)*(imag(q)'*vb) 
+##    + 2*real(q)*cross(imag(q),vb)
+## @end example
+##
+## @noindent
+## Where imag(q) is a column vector of length 3.
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function vi = qtransv (vb, qib)
+
+  if (! isvector (vb) || length (vb) != 3)
+    error ("qtransv: v(%d,%d) must be a 3-D vector", rows (vb), columns (vb));
+  elseif (! isvector (qib) || length (qib) != 4)
+    error ("qtransv: q(%d,%d) must be a quaternion", rows (qib), columns (qib));
+  elseif (max (abs (imag (vb))) + max (abs (imag (qib))) != 0)
+    error ("qtransv: input values must be real");
+  endif
+
+  qr = qib(4);
+  qimag = vec (qib(1:3));
+  vb = vec (vb);
+  vi = (2*qr^2 - 1)*vb + 2*qimag*(qimag'*vb) + 2*qr*cross (qimag, vb);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/qtransvmat.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,52 @@
+## Copyright (C) 1998, 2000, 2002, 2004, 2005, 2007
+##               Auburn University. All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} qtransvmat (@var{qib})
+## Construct a 3x3 transformation matrix from quaternion @var{qib} that
+## is equivalent to rotation of th radians about axis @var{vv}, where
+## @code{[@var{vv}, @var{th}] = quaternion (@var{qib})}.
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function Aib = qtransvmat (qib)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  if (! isvector(qib) || length (qib) != 4)
+    error ("qtransvmat: q(%d,%d) must be a quaternion", rows (qib), \
+	   columns (qib));
+  elseif (max (abs (imag (qib))) != 0)
+    error ("qtransvmat: input values must be real");
+  endif
+
+
+  Aib = [(2.*(qib(1)^2 + qib(4)^2) -1.), ...
+	 (2.*(qib(1)*qib(2)-qib(3)*qib(4))), ...
+	 (2.*(qib(1)*qib(3)+qib(2)*qib(4)));
+	 (2.*(qib(1)*qib(2)+qib(3)*qib(4))), ...
+	 (2.*(qib(2)*qib(2)+qib(4)*qib(4))-1.), ...
+	 (2.*(qib(2)*qib(3)-qib(1)*qib(4)));
+	 (2.*(qib(1)*qib(3)-qib(2)*qib(4))), ...
+	 (2.*(qib(2)*qib(3)+qib(1)*qib(4))), ...
+	 (2.*(qib(3)*qib(3)+qib(4)*qib(4))-1.)];
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/quaternion-legacy/inst/quaternion.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,114 @@
+## Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, 2007
+##               Auburn University.  All rights reserved.
+##
+## 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; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}] =} quaternion (w)
+## @deftypefnx {Function File} {[@var{vv}, @var{theta}] =} quaternion (w)
+## @deftypefnx {Function File} {@var{w} =} quaternion (@var{a}, @var{b}, @var{c}, @var{d})
+## @deftypefnx {Function File} {@var{w} =} quaternion (@var{vv}, @var{theta})
+## Construct or extract a quaternion
+##
+## @example
+## w = a*i + b*j + c*k + d
+## @end example
+##
+## @noindent
+## from given data.
+## @end deftypefn
+
+## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Adapted-By: jwe
+
+function [a, b, c, d] = quaternion (w, x, y, z)
+
+  switch (nargin)
+    case(1)
+      if (! (isvector (w) && length (w) == 4))
+        error ("input vector must be of length 4)");
+      endif
+      ## extract data
+      switch (nargout)
+        case(4)
+          a = w(1);
+          b = w(2);
+          c = w(3);
+          d = w(4);
+
+        case(2)
+          if (abs (norm (w) - 1) > 1e-12)
+            warning ("quaternion: ||w||=%e, setting=1 for vv, theta", norm(w));
+            w = w/norm(w);
+          endif
+          [a, b, c, d] = quaternion (w);
+          theta = acos (d) * 2;
+          if (abs (theta) > pi)
+            theta = theta - sign (theta) * pi;
+          endif
+          sin_th_2 = norm ([a, b, c]);
+
+          if (sin_th_2 != 0)
+            vv = [a, b, c] / sin_th_2;
+          else
+            vv = [a, b, c];
+          endif
+          a = vv;
+          b = theta;
+        otherwise
+          print_usage ();
+      endswitch
+
+  case(2)
+    if (nargout > 1)
+      print_usage ();
+    endif
+    vv = w;
+    theta = x;
+
+    if (! isvector (vv) || length (vv) != 3)
+      error ("vv must be a length three vector");
+    elseif (! isscalar (theta))
+      error ("theta must be a scalar");
+    elseif (norm (vv) == 0)
+      error ("quaternion: vv is zero");
+    elseif (abs (norm (vv) - 1) > 1e-12)
+      warning ("quaternion: ||vv|| != 1, normalizing")
+      vv = vv / norm (vv);
+    endif
+
+    if (abs (theta) > 2*pi)
+      warning ("quaternion: |theta| > 2 pi, normalizing")
+      theta = rem (theta, 2*pi);
+    endif
+    vv = vv * sin (theta / 2);
+    d = cos (theta / 2);
+    a = quaternion (vv(1), vv(2), vv(3), d);
+
+  case(4)
+    if (nargout > 1)
+      print_usage ();
+    endif
+    if (! (isscalar (w) && isscalar (x) && isscalar (y) && isscalar (z)))
+      error ("input values must be scalars");
+    endif
+    a = [w, x, y, z];
+
+  otherwise
+    print_usage ();
+
+  endswitch
+
+endfunction
--- a/extra/quaternion_oo/COPYING	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,674 +0,0 @@
-                    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>.
--- a/extra/quaternion_oo/DESCRIPTION	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-Name: quaternion
-Version: 2.0.0
-Date: 2012-03-28
-Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-Maintainer: Lukas Reichlin <lukas.reichlin@gmail.com>
-Title: Quaternion
-Description: Overloaded operators for quaternions
-Depends: octave (>= 3.6.0)
-Autoload: yes
-License: GPL version 3 or later
-Url: http://octave.sf.net
--- a/extra/quaternion_oo/INDEX	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-quaternion >> Quaternion
-Quaternions
-  quaternion
-  qi
-  qj
-  qk
-  q2rot
-  rot2q
-Methods
-  @quaternion/abs
-  @quaternion/blkdiag
-  @quaternion/cat
-  @quaternion/columns
-  @quaternion/conj
-  @quaternion/diag
-  @quaternion/diff
-  @quaternion/exp
-  @quaternion/inv
-  @quaternion/ispure
-  @quaternion/log
-  @quaternion/norm
-  @quaternion/rows
-  @quaternion/size
-  @quaternion/unit
-Overloaded Operators
-  @quaternion/ctranspose
-  @quaternion/eq
-  @quaternion/horzcat
-  @quaternion/ldivide
-  @quaternion/minus
-  @quaternion/mldivide
-  @quaternion/mpower
-  @quaternion/mrdivide
-  @quaternion/mtimes
-  @quaternion/plus
-  @quaternion/power
-  @quaternion/rdivide
-  @quaternion/subsasgn
-  @quaternion/subsref
-  @quaternion/times
-  @quaternion/transpose
-  @quaternion/uminus
-  @quaternion/uplus
-  @quaternion/vertcat
--- a/extra/quaternion_oo/Makefile	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-sinclude ../../Makeconf
-
-PKG_FILES = COPYING DESCRIPTION INDEX NEWS $(wildcard inst/*)
-SUBDIRS = doc/
-
-.PHONY: $(SUBDIRS)
-
-pre-pkg::
-	@for _dir in $(SUBDIRS); do \
-	  $(MAKE) -C $$_dir all; \
-	done
-
-clean:
-	@for _dir in $(SUBDIRS); do \
-	  $(MAKE) -C $$_dir $(MAKECMDGOALS); \
-	done
--- a/extra/quaternion_oo/NEWS	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-Summary of important user-visible changes for releases of the quaternion package
-
-===============================================================================
-quaternion-2.0.0   Release Date: 2012-03-28   Release Manager: Lukas Reichlin
-===============================================================================
-
-** First official release.  Its main features are:
-   -- Matrices and n-dimensional arrays of quaternions.
-   -- Overloaded operators due to the use of classes.
-   -- Operator semantics similar to Octave’s built-in complex numbers.
-   -- Vectorized code for crunching large quaternion arrays in a speedy manner.
-
-
-===============================================================================
--- a/extra/quaternion_oo/devel/INFO	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-With the current Makefile, the folder "devel" and its content
-is ignored by "pkg install".  The folder is intended for draft
-code and other stuff which is not suitable for "normal" users.
\ No newline at end of file
--- a/extra/quaternion_oo/devel/PROJECTS	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-<html>
-<pre>
-Quaternion PROJECTS                                       -*- text -*-
-===================
-
-grep FIXME and/or TODO for more information
-
-
--------
-General:
--------
-
-  * Add missing features to quaternion_oo such that it can replace quaternion-1.0.0.
-  
-  * Rename the existion main/quaternion package to extra/quaternion-legacy.
-    Rename extra/quaternion_oo to main/quaternion and release it as quaternion-2.0.0.
-  
-  * See if LaTEX code from Scottedward Hodel's quaternion.ps document is available.
-    Update it to use the commands from quaternion-2.0.0.
-
-  * Secret Wish: Reimplement package completely in C++ similar to the sparsersb package ;-)
-    
---------
-Features:
---------
-  
-  * Implement mpower.
-  
-  * Inverses of quaternion arrays.
-  
-  * Add functionality of qderiv and qtrans from quaternion-1.0.0.
-
-  * Finish q2rot and rot2q.
-
-------
-Always:
-------
-
-  * Squash bugs.
-
-  * Write/improve documentation.  If you implement a feature without documentation,
-    nobody besides you will ever use it!  Don't waste your time :-)
- 
-  * Add description of each input and output argument to texinfo strings of
-    functions on the INDEX list.
-
-  * Add tests.
-
-  * Test the quaternion package on different platforms.
-
-  * Compare results to those from other toolboxes like QTFM.
-
-</pre>
-</html>
--- a/extra/quaternion_oo/devel/RELEASE_PACKAGE	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-=====================================================================================
-Prepare quaternion-2.x.y Package for Release
-=====================================================================================
-USAGE: * adapt all paths to your machine
-       * update version number in the commands below
-       * adapt version number and release date in DESCRIPTION
-       * update doc/NEWS
-       * adapt version number in quaternion.tex
-       * update doc/quaternion.pdf
-       * copy-paste entire block at once to the terminal
-       * follow instructions on <http://octave.sourceforge.net/developers.html>
-
-TODO:  * create a nice shell script for this task
-=====================================================================================
-
-cd
-mkdir ~/octave/__TEMP__
-cd
-svn export quaternion ~/octave/__TEMP__/quaternion
-rm -R ~/octave/__TEMP__/quaternion/devel
-cd ~/octave/__TEMP__
-grep -i version quaternion/DESCRIPTION
-tar czf quaternion-2.0.0.tar.gz quaternion/
-md5 quaternion-2.0.0.tar.gz
-md5 quaternion-2.0.0.tar.gz > md5_quaternion_pkg.txt
-uuencode quaternion-2.0.0.tar.gz < quaternion-2.0.0.tar.gz > quaternion-2.0.0.tar.gz.uue
-octave -q --eval \
-"pkg install quaternion-2.0.0.tar.gz"
-octave -q --eval \
-"pkg load generate_html; generate_package_html ('quaternion', 'quaternion-html', 'octave-forge')"
-tar czf quaternion-html.tar.gz quaternion-html
-md5 quaternion-html.tar.gz
-md5 quaternion-html.tar.gz > md5_quaternion_html.txt
-uuencode quaternion-html.tar.gz < quaternion-html.tar.gz > quaternion-html.tar.gz.uue
-cd
-
-
-=====================================================================================
-Aftermath
-=====================================================================================
-
-rm -R ~/octave/__TEMP__
-rm -R ~/octave/quaternion-2.0.0
-
-
-=====================================================================================
--- a/extra/quaternion_oo/devel/RV9_Quaternions.txt	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-%% Copyright (c) 2011 Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
-%%
-%%    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
-%%    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/>.
-
-=== Robotics Toolbox Port to Octave ===
-http://petercorke.com/Robotics_Toolbox.html
-With the objective of porting the robotics toolbox version 9 to octave forge
-we list the classes relate to quaternions.
-
-The idea is to see when this class has been fully ported, that is:
-   For a method x of the quaternion class, there is a method y in the
-   quaterions_oo package that
-   1.Method y produces output isomorphic to output of x.
-   2.Method y receives input isomorphic to input of method y.
-
-   When the method y exist such that fullfils 1. and 2.; we say there is
-   an equivalent method in the packages quaternions_oo.
-
-   If additonally the method y in the quaternions_oo package has the same name,
-   then we say that the method x exists in the package.
-
-The naming of the methods is not important, since the Robotics Toolbox for octave
-will have a wrapper class quaternion. This class will emulate the API.
-
-
-object.method(args)
-
-using the trick used here
-[ http://octave.svn.sf.net/viewvc/octave/trunk/octave-forge/main/geometry/inst/io/%40svg/subsref.m?revision=8974&view=markup ]
-
-= Marking convention =
-In the [] field of each method/operator/property add
-
-   e  - There is an isomorphic method (equivalent).
-   x  - There is an isomorphic method with the same name (exist).
-   *  - There is an exact equal method in the package (same input, output and name).
-   b+ - Benchmarked, slower than current method in quaternions_oo.
-   b- - Benchmarked, faster than current
-
-   c  - There is a method with the same name but not isomorphic (conflict).
-
-Example 1:
-A method qc = qconj(q) exist in quaternions_oo that calculates the inverse of a quaternion.
-Then we mark inv as follows
-
- [e] inv
-
-  - Example 2:
-      A method [h a] = dosomething(q) from in quaternions_oo to calculate something.
-      The method [h] = somethingtodo(q) from  Robotics toolbox to calculate the same.
-
-       [e] somethingtodo
-
-      Since the first argument is the same.
-      The same holds ff [a h] = dosomething(q). Since we need just to swap output arguemnts.
-
-  - Example 3:
-    A method [h] = dosomething(q) from in quaternions_oo to calculate something.
-    The method [h a] = somethingtodo(q) from  Robotics toolbox to calculate the same.
-
-     [ ] somethingtodo
-
-    Since we need to check how to calculate the output a.
-
-  - Example 4:
-    A method [h] = dosomething(q) from in quaternions_oo to calculate something.
-    The method [h a] = somethingtodo(q) from  Robotics toolbox to calculate the same.
-    And you benchmarked the methods givin a positive result for the quaternions_oo.
-
-     [b+] somethingtodo
-
-    The b flag indicates that there is a point of comparision but the methods may not be equivalent.
-
-  - Example 4:
-    A method [h] = dosomething(q) from in quaternions_oo to calculate something.
-    The method [h] = dosomething(q) from  Robotics toolbox to calculate the same.
-    And you benchmarked the methods givin a positive result for the robotics toolbox.
-
-     [*b-] dosomething
-
-    just concatenate flags.
-
-We hope not to run into the c tag.
-
-== Quaternion ==
-DONE  Q = Quaternion() is the identitity quaternion 1<0,0,0> representing a null rotation.
-
-DONE  Q = Quaternion(Q1) is a copy of the quaternion Q1
-
-DONE  Q = Quaternion([S V1 V2 V3]) is a quaternion formed by specifying directly its 4 elements
-
-DONE  Q = Quaternion(S) is a quaternion formed from the scalar S and zero vector part: S<0,0,0>
-
-DONE  Q = Quaternion(V) is a pure quaternion with the specified vector part: 0<V>
-
-DONE  Q = Quaternion(TH, V) is a unit quaternion corresponding to rotation of TH about the vector V.
-
-DONE  Q = Quaternion(R) is a unit quaternion corresponding to the orthonormal rotation matrix R.
-
-DONE  Q = Quaternion(T) is a unit quaternion equivalent to the rotational
-
-= methods =
-DONE [c] inv       return inverse of quaterion
-DONE [e] norm:  Wraps abs from quaternions_oo
-DONE [x] dot  derivative of quaternion with angular velocity w
-DONE [c] display
-DONE [] q2tr
-DONE [*] unit      return unit quaternion
-
-[] plot      same options as trplot()
-[] interp    interpolation (slerp) between q and q2, 0<=s<=1
-[] scale     interpolation (slerp) between identity and q, 0<=s<=1
-
-= Operators =
-DONE [*] q+q2      return elementwise sum of quaternions
-DONE [*] q-q2      return elementwise difference of quaternions
-DONE [*] q*q2      return quaternion product
-DONE [*] q/q2      return q*q2.inv
-
-[*] q*v       rotate vector by quaternion, v is 3x1
-DONE [*] q^n       return q to power n (real)
-
-= Properties (read only)=
-DONE [] s         real part
-DONE [] v         vector part
-DONE [] R         3x3 rotation matrix
-DONE [] T         4x4 homogeneous transform matrix
Binary file extra/quaternion_oo/devel/Report_Basile_Graf.pdf has changed
--- a/extra/quaternion_oo/devel/demoml.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-q = rot2q ([0, 0, 1], pi/4)
-
-[vv, theta] = q2rot (q)
-
-x = quaternion (0, 1, 1, 0)  % nicht normiert
-              % s  x  y  z
-
-rx = q * x * conj (q)  % q x q^-1
-
-[vv, theta] = q2rot (rx)
--- a/extra/quaternion_oo/devel/generate_quaternion_pdf.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-homedir = pwd ();
-develdir = fileparts (which ("generate_quaternion_pdf"));
-pdfdir = [develdir, "/pdfdoc"];
-cd (pdfdir);
-
-collect_texinfo_strings
-
-for i = 1:5
-  system ("pdftex -interaction batchmode quaternion.tex");
-endfor
-
-cd (homedir);
--- a/extra/quaternion_oo/devel/makefile_quaternion.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-## ==============================================================================
-## Developer Makefile for OCT-files
-## ==============================================================================
-## USAGE: * fetch quaternion_oo from Octave-Forge by svn
-##        * add quaternion_oo/inst, quaternion_oo/src and quaternion_oo/devel
-##          to your Octave path
-##        * run makefile_quaternion
-## ==============================================================================
-
-homedir = pwd ();
-develdir = fileparts (which ("makefile_quaternion"));
-srcdir = [develdir, "/../src"];
-cd (srcdir);
-
-mkoctfile is_real_array.cc
-
-system ("rm *.o");
-cd (homedir);
\ No newline at end of file
--- a/extra/quaternion_oo/devel/pdfdoc/collect_texinfo_strings.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-% pack_name = "generate_html"
-% pack_name = "control"
-pack_name = "quaternion"
-
-
-% Load Packages
-pkg load "generate_html"
-pkg ("load", pack_name);
-
-% Get list of functions  
-list = pkg ("describe", pack_name);
-
-%list
-
-% Open output file
-fid = fopen ("functions.texi", "w");
-
-for k = 1:numel (list {1}.provides)
-        
-        group = list {1}.provides{k};
-        functions = group.functions;
-
-        % fprintf (fid, '@section %s\n', group.category);
-        fprintf (fid, '@chapter %s\n', group.category);
-        
-        for k=1:numel(functions)
-                [TEXT, FORMAT] = get_help_text (functions(k));
-                fun = functions{k};
-                if (fun(1) == "@")
-                  % fprintf (fid, '@subsection @%s\n', fun);
-                  fprintf (fid, '@section @%s\n', fun);
-                else
-                  % fprintf (fid, '@subsection %s\n', fun);
-                  fprintf (fid, '@section %s\n', fun);
-                endif
-                fprintf (fid,TEXT);
-        end
-        
-end
-
-fclose(fid);
--- a/extra/quaternion_oo/devel/pdfdoc/info_generate_manual.txt	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-* Check that "pkg list" lists the packages generate_html and quaternion.
-* Run collect_texinfo_strings within Octave.  This script collects the Texinfo strings from all
-  functions listed in the package's INDEX file and writes them to the file functions.texi.
-  Don't edit the file functions.texi since your changes will be lost by the next run.
-* Adapt version number in quaternion.tex
-* Run quaternion.tex 
-
-
-pdftex quaternion.tex
-q
-
-Alternatively:
-Run generate_quaternion_pdf
--- a/extra/quaternion_oo/devel/pdfdoc/quaternion.tex	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-\input texinfo   @c -*-texinfo-*-
-@c %**start of header
-@setfilename quaternion.info
-@settitle Octave Quaternion Package
-@afourpaper
-@set VERSION 2.0.0
-@finalout
-@c @afourwide
-@c %**end of header
-
-@c %*** Start of TITLEPAGE
-@titlepage
-@title quaternion @value{VERSION}
-@subtitle Quaternion Package for GNU Octave
-@author Lukas F. Reichlin
-@author Juan Pablo Carbajal
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 2010-2012, Lukas F. Reichlin @email{lukas.reichlin@@gmail.com}
-
-This manual is generated automatically from the texinfo help strings
-of the package's functions.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the same conditions as for modified versions.
-@page
-@chapheading Preface
-The @acronym{GNU} Octave quaternion package from version 2 onwards
-was developed by Lukas F. Reichlin with important contributions by
-Juan Pablo Carbajal. This new package is intended as a replacement
-for quaternion-1.0.0 by A. Scottedward Hodel. It is loosely based
-on ideas from the Quaternion Toolbox for Matlab by Steve Sangwine
-and Nicolas Le Bihan with a special focus on code simplicity and
-vectorization. Its main features are:
-@itemize
-@item Matrices and n-dimensional arrays of quaternions.
-@item Overloaded operators due to the use of classes introduced with Octave 3.2.
-@item Operator semantics similar to Octave's built-in complex numbers.
-@item Fully vectorized code for crunching large quaternion arrays in a speedy manner.
-@end itemize
-
-
-@sp 5
-@subheading Using the help function
-Some functions of the quaternion package are listed with a leading @code{@@quaternion/}.
-This is only needed to view the help text of the function, e.g. @w{@code{help norm}}
-shows the built-in function while @w{@code{help @@quaternion/norm}} shows the overloaded
-function for quaternions. Note that there are quaternion functions
-like @code{unit} that have no built-in equivalent.
-
-When just using the function, the leading @code{@@quaternion/} must @strong{not} be typed.
-Octave selects the right function automatically. So one can type @w{@code{norm (q)}}
-and @w{@code{norm (matrix)}} regardless of the class of the argument.
-@end titlepage
-@c %*** End of TITLEPAGE
-
-@contents
-@c @chapter Function Reference
-@include functions.texi
-
-@end
-@bye
--- a/extra/quaternion_oo/devel/q0.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-function q = q0
-
-  if (nargin != 0)
-    print_usage ();
-  endif
-
-  q = quaternion (1, 0, 0, 0);
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/devel/q1.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-function q = q1
-
-  if (nargin != 0)
-    print_usage ();
-  endif
-
-  q = quaternion (0, 1, 0, 0);
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/devel/q2.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-function q = q2
-
-  if (nargin != 0)
-    print_usage ();
-  endif
-
-  q = quaternion (0, 0, 1, 0);
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/devel/q3.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-function q = q3
-
-  if (nargin != 0)
-    print_usage ();
-  endif
-
-  q = quaternion (0, 0, 0, 1);
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/devel/q4.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-function q = q4
-
-  if (nargin != 0)
-    print_usage ();
-  endif
-
-  q = quaternion (1, 0, 0, 0);
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/devel/q_2x2.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-w = [2, 6; 10, 14];
-
-x = [3, 7; 11, 15];
-
-y = [4, 8; 12, 16];
-
-z = [5, 9; 13, 17];
-
-q = quaternion (w, x, y, z)
-
--- a/extra/quaternion_oo/devel/q_2x3.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-w = [2, 6, 10; 14, 18, 22];
-
-x = [3, 7, 11; 15, 19, 23];
-
-y = [4, 8, 12; 16, 20, 24];
-
-z = [5, 9, 13; 17, 21, 25];
-
-q = quaternion (w, x, y, z)
-
--- a/extra/quaternion_oo/devel/qbug.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-q = quaternion (2, 3, 4, 5)
-
-diag ([q, q, q])
\ No newline at end of file
Binary file extra/quaternion_oo/devel/quat.pdf has changed
--- a/extra/quaternion_oo/devel/quaternion.ps	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8786 +0,0 @@
-%!PS (but not EPSF; comments have been disabled)
-%DVIPSCommandLine: dvips tmp -o quaternion.ps
-%DVIPSParameters: dpi=600, compressed, comments removed
-%DVIPSSource:  TeX output 1998.10.23:1515
-/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
-/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
-/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
-65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
-0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
-{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
-getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
-ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
-{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
-B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
-4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
-p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
-a}B /bos{/SS save N}B /eos{SS restore}B end
-TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
-/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
-false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
-/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
-div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
-/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
-10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
-/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
-true def end /@MacSetUp{userdict /md known{userdict /md get type
-/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
-length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
-N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
-clippath mark{transform{itransform moveto}}{transform{itransform lineto}
-}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
-itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
-closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
-0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
-/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
-scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
-ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
-not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
-TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
-pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
--1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
-TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
-sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
-0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
-2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
-{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
-div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
-N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
-maxlength dict begin /magscale true def normalscale currentpoint TR
-/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
-/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
-psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
-scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
-/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
-psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
-roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
-moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
-begin /SpecialSave save N gsave normalscale currentpoint TR
-@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
-{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
-closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
-sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
-}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
-CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
-lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
-}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
-end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
-N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
-/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
-SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
-/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
-yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
-TeXDict begin 40258431 52099146 1000 600 600 (tmp.dvi)
-@start /Fa 1 1 df<007FB712FCB812FEA26C16FC2F047A943C>0
-D E /Fb 3 123 df<90391F801F8090397FE07FE09039E0F0E0703A01C0F9C0F8390380
-7D833807007F000E1403000C15F0001C137E0018EC01C002FEC7FC00385B1210C7FC1301
-5CA31303A25C1640010714E016C0001C5B007E1401010F148000FE1403011FEB0700011B
-130E39F839F01C397070F878393FE07FE0390F801F8025227EA02C>120
-D<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C003813800030140F013F14C00070
-1300126049131FD8E07E14801240EA00FE49133F000115005BA25D0003147E5BA215FE5D
-5BA214015DEBF00314070001130F3900F83FF0EB3FFBEB0FC3EB00075DA20007130FD81F
-805B003F495AA24AC7FCEB007E003E137C00385B381803F0381E07C0D807FFC8FCEA01F8
-23317EA026>I<903807800390381FE00790383FF00690387FF80E9038FFFC1C48EBFE78
-9038E03FF03803800190C712E0EC01C0C7EA0380EC0700140E143C14705C495A495A49C7
-FC130E133C0170130C49131C484813184848133848C71278D80EC013F0380FFE03391F3F
-FFE0D8381F13C0486C1380D86007130038E003FE38C000F020227DA024>I
-E /Fc 26 123 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E12
-0C121C5A5A126009177A8715>44 D<B512F0A514057F921A>I<123C127E12FFA4127E12
-3C08087A8715>I<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC003E
-80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C14
-C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A215
-07A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F13
-8026C003FEC7FC22377CB42B>83 D<EB7F803803FFF0380F80FC381C003E003F133F6D6C
-7E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13
-004815C05AA3140FA26C131F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE00
-3C22237DA126>97 D<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120F
-EA1F80123F90380003E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F
-14706C6C13E03903F001C03900FC0F8090383FFE00EB07F01D237EA122>99
-D<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E4848
-7F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC
-3900F81E3FEB3FFCD90FE0130026357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807
-E013C0390FC007E0381F800315F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA512
-7E127FA26C1418A26C6C1338000F14306D13706C6C13E03901F003C03900FC0F00EB3FFE
-EB07F01D237EA122>I<EB01FCEB07FF90381F078090383E0FC0EB7C1F13FCEA01F8A200
-03EB070049C7FCACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A357FB417>I<151F90
-391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80
-EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9
-FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80
-48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22
-337EA126>I<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C9038F7
-007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0FC0EA
-1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB215>
-I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>108
-D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7
-003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A3
-3C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE49
-7FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F8039
-01F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE15
-80A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93F
-FEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE
-7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F
-6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325
-307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F80
-49C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE003C133E
-48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7FC67FEB0F
-FF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1FFE038C0
-7F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000
-AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D803F0133F
-00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90387E073F
-EB1FFED907F8130026227EA02B>I<B5EBFFF0A3D80FF0EB3F800007EC1F000003140E15
-0C6D131C00011418A26C6C5BA26D1370017E1360137F6D5BA290381F8180A214C3010F90
-C7FCA2EB07E6A214FE6D5AA26D5AA36D5AA2146024217E9F29>I<B53A1FFF81FFF0A33C
-07F801FC003F8001F049EB1E0000030100141C816C6C017C1318A26D017E1338000002FE
-1330A290267E01FF5B159F168090263F030F5BA216C0903A1F8607C180A202C613E39026
-0FCC0390C7FCA2D907FC13F6ECF80116FE6D486C5AA36D481378A36D48133034217F9F37
->I<B53801FFF8A32603FE0013806C48EB7C0000001478017E1370017F5B90383F81C090
-381F8380D90FC3C7FCEB07E614FE6D5A6D5A6D7E80805B9038039F809038071FC0903806
-0FE0EB0C0790381C03F0496C7E01707FEBF000000180000FECFF8026FFFC0313FCA32620
-7F9F29>I<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D13
-1C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC
-14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA
-701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2EB000F003C14E00038EB1FC0
-0030EB3F800070137F1500006013FE495A13035CC6485A495AA2495A495A49C7FC153013
-FE485A12035B48481370485A001F14604913E0485A387F000348130F90B5FCA21C207E9F
-22>I E /Fd 1 106 df<1338137CA2137813701300A7EA0780EA1FC0EA38E01230EA60F0
-EAC1E0A3EA03C0A3EA0780A2EA0F0013041306EA1E0CA21318121CEA1E70EA0FE0EA0780
-0F237DA116>105 D E /Fe 2 51 df<13E01201120712FF12F91201B3A7487EB512C0A2
-12217AA01E>49 D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2
-147C1278003013FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C0
-0CEA0380380600185A5A383FFFF85AB512F0A216217CA01E>I E
-/Ff 4 64 df<B812C0A32A037A9137>0 D<130C131EA50060EB01800078130739FC0C0F
-C0007FEB3F80393F8C7F003807CCF83801FFE038007F80011EC7FCEB7F803801FFE03807
-CCF8383F8C7F397F0C3F8000FCEB0FC039781E078000601301000090C7FCA5130C1A1D7C
-9E23>3 D<EB7F803801FFE0000713F8380FC0FC381F003E003C130F00387F0078148000
-70130300F014C0481301A76C1303007014800078130700381400003C5B001F133E380FC0
-FC6CB45A000113E038007F801A1B7C9D23>14 D<4A7E1403B3B3A6007FB712FEB8FC7E2F
-2E7CAD38>63 D E /Fg 14 119 df<147E49B47E903907C1C38090391F80EFC090383F00
-FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90
-C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13
-E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E
->97 D<EC1FE0ECFFF8903803F03E903807C00F90381F8007D93F001380017E131F49137F
-485A485A000715005B000F147E484890C7FCA2485AA3127F90C9FCA35A5AA6481403007E
-5C5D151E003E5C5D6C5CEC03E0390F800F802603E07EC7FC3801FFF838003FC0212977A7
-2A>99 D<EC3F80903801FFE0903807E0F890381F803CEB3E0001FC131E485A485A120748
-48133E49133C121F4848137C15F8EC03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45A
-A61506150E151E007C143C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF0
-38007F801F2976A72A>101 D<EC03F0EC0FFC91383E0E1C9138FC077E903901F003FE13
-03903807E001D90FC013FCEB1F80A2EB3F004914F8137E01FE1303A2484814F0A2150712
-034914E0A2150F12074914C0A2151FA216805B153F1203ED7F006D5BA200015B0000495A
-9038F80F7E90387C1EFEEB1FF8903807E0FC90C7FC1401A25DA21403A25D001C1307007F
-5C48130F5D4A5A4AC7FC48137E00F85B387C03F0381FFFC0D803FEC8FC273B7CA72A>
-103 D<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0
-121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA2
-12035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03
-FEEA00F8163E79BC1C>105 D<1507ED1FC0A2153FA31680ED0E0092C7FCADEC07C0EC3F
-F0EC78F8ECE07CEB01C01303EC807EEB0700A2010E13FE5D131E131CEB3C01A201005BA2
-1403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25CA2147EA214FEA25C
-A213015CA2121C387F03F012FF495A5C495A4848C8FCEAF83EEA707CEA3FF0EA0FC02250
-83BC1C>I<D801F0EB3F803A07FC01FFE03A0F3E07C1F83A0E1F0F00FC001E011C137C00
-1C49137E003C13F012385C38783FC012705C91C7FC00F015FE495CEA007EA2150101FE5C
-5BA2150300015D5B15075E0003020F13704914C0A2031F13F00007ED80E05B1681EE01C0
-120F49EC0380A2EE0700001FEC0F0E49EB07FC0007C7EA01F02C2979A733>110
-D<EC1FC0ECFFF8903803F07C90380FC01FEB1F8090393F000F80017E14C0491307484814
-E0485A12075B000F15F0485AA2485AA2ED0FE0127F90C7FCA2151F4815C05AA2ED3F80A2
-ED7F00A248147E007C5C007E13015D4A5A003E495A6C495A4A5A260F803EC7FC3807C0FC
-3801FFF038003F80242977A72E>I<027E1360903901FF81E0903807C1C390391F80E7C0
-90383F00F7017E137F5B4848EB3F80485AA2485A000F15005B121F5D4848137EA3007F14
-FE90C75AA3481301485CA31403485CA314074A5A127C141F007E133F003E495A14FF381F
-01EF380F879F3903FF1F80EA00FC1300143F92C7FCA35C147EA314FE5CA21301130390B5
-12F05AA2233A77A72A>113 D<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C13E0
-001EEB380F001C1370003CEBE01F123814C0D8783F14C00070903880070092C7FC91C8FC
-12F05BEA007EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B0007C9FC2329
-79A726>I<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C133E49
-137E15FEA2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F13F0
-1300140F14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F801270
-0078EB1F006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F01307A2
-5CA2130FA25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13FEA2
-5BA21201A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C1438EB
-0078147014F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48B414
-1C26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2
-D8F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C04914
-81A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F
-0F1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA
-0707000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91
-C712E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D
-1578000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I
-E /Fh 12 123 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A
-5A5A126009157A8714>59 D<000FB8FCA23B1FC003F8003F0100151F001C4A130E123C00
-3801071406123000704A130EA20060010F140C12E0485CA2141FC715005DA2143FA292C8
-FCA25CA2147EA214FEA25CA21301A25CA21303A25CA21307A25C130F131F001FB512F0A2
-302D7FAC29>84 D<EC0780EC1FC0EC3CE0EC786014F0EB01E0A2EB03C015E090380780C0
-130FA2EB1F011580A2EB3E0315005CEB7C06140E5CEBFC18EBF8385C5C00015B13F1EBF3
-8001F7C7FC13FE5B485A5B5BA31207120F121D12390071144000E114C0000013039038F0
-0700140EEB787CEB3FF0EB0F801B3080AE1D>96 D<13F8121FA21201A25BA21203A25BA2
-1207A25BA2120FEBC7E0EB9FF8EBB83C381FF01EEBE01F13C09038800F80EA3F00A2123E
-A2007E131FA2127CA2143F00FC14005AA2147EA2147C14FC5C387801F01303495A383C0F
-806C48C7FCEA0FFCEA03F0192F7DAD1E>98 D<EB03F8EB0FFE90383E0780EBF803D801F0
-13C03803E001EA07C0000F1303D81F8013801407393F000F00141E387F01FCEBFFF091C7
-FC007EC8FC12FE5AA4127C156015E0EC01C06CEB0380EC0F006C131C380F81F83803FFE0
-C648C7FC1B1F7D9D21>101 D<157C4AB4FC913807C380EC0F87150FEC1F1FA391383E0E
-0092C7FCA3147E147CA414FC90383FFFF8A2D900F8C7FCA313015CA413035CA413075CA5
-130F5CA4131F91C8FCA4133EA3EA383C12FC5BA25B12F0EAE1E0EA7FC0001FC9FC213D7C
-AE22>I<1307EB0F80EB1FC0A2EB0F80EB070090C7FCA9EA01E0EA07F8EA0E3CEA1C3E12
-3812301270EA607EEAE07C12C013FC485A120012015B12035BA21207EBC04014C0120F13
-801381381F01801303EB0700EA0F06131EEA07F8EA01F0122E7EAC18>105
-D<90387C01F89038FE07FE3901CF8E0F3A03879C0780D907B813C0000713F000069038E0
-03E0EB0FC0000E1380120CA2D8081F130712001400A249130F16C0133EA2017EEB1F80A2
-017C14005D01FC133E5D15FC6D485A3901FF03E09038FB87C0D9F1FFC7FCEBF0FC000390
-C8FCA25BA21207A25BA2120FA2EAFFFCA2232B829D24>112 D<3807C01F390FF07FC039
-1CF8E0E0383879C138307B8738707F07EA607E13FC00E0EB03804848C7FCA2128112015B
-A21203A25BA21207A25BA2120FA25BA2121FA290C8FC120E1B1F7E9D20>114
-D<013F137C9038FFC1FF3A01C1E383803A0380F703C0390700F60F000E13FE4813FC1218
-0038EC0700003049C7FCA2EA200100005BA313035CA301075B5D14C000385CD87C0F1306
-00FC140E011F130C011B131C39F03BE038D8707113F0393FE0FFC0260F803FC7FC221F7E
-9D28>120 D<EA01E0D807F8130ED80E3C131FD81C3E133F0038143E12301270D8607E13
-7ED8E07C137C12C013FC484813FC000014F812015B1401000314F013E0A21403000714E0
-13C0A2140715C00003130FEBE01F143F3901F07F8038007FEFEB1F8FEB001F1500A2003E
-133EA2007E5B5C387C01F0387003E0383007C0383C0F80D80FFEC7FCEA03F0202C7E9D23
->I<011E1330EB3F809038FFC07048EBE0E0ECF1C03803C0FF9038803F80903800070048
-130EC75A5C5C5C495A495A49C7FC131E13385B491340484813C0485A38070001000EEB03
-80380FE007391FF81F0038387FFF486C5A38601FFC38E00FF038C003C01C1F7D9D21>I
-E /Fi 27 106 df<1430147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F85B1201
-5B1203A2485AA3485AA3121F90C7FCA25AA3123EA2127EA6127C12FCB3A2127C127EA612
-3EA2123FA37EA27F120FA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB03C0
-1301EB00E0147014301462738226>0 D<12C07E12707E123C7E7EA26C7E6C7EA26C7E7F
-12007F1378137CA27FA37FA31480130FA214C0A31307A214E0A6130314F0B3A214E01307
-A614C0A2130FA31480A2131F1400A3133EA35BA2137813F85B12015B485AA2485A48C7FC
-A2121E5A12385A5A5A14627C8226>I<12F0B3B3B2043674811C>12
-D<00F01378B3B3B2153674812E>I<151E153E157C15F8EC01F0EC03E01407EC0FC0EC1F
-8015005C147E5CA2495A495AA2495AA2495AA2495AA249C7FCA2137EA213FE5B12015BA2
-12035BA21207A25B120FA35B121FA45B123FA548C8FCA912FEB3A8127FA96C7EA5121F7F
-A4120F7FA312077FA21203A27F1201A27F12007F137EA27FA26D7EA26D7EA26D7EA26D7E
-A26D7E6D7EA2147E80801580EC0FC0EC07E01403EC01F0EC00F8157C153E151E1F947182
-32>16 D<12F07E127C7E7E6C7E7F6C7E6C7E12017F6C7E137EA27F6D7EA26D7EA26D7EA2
-6D7EA26D7EA26D7EA280147E147F80A21580141FA215C0A2140F15E0A3140715F0A41403
-15F8A5EC01FCA9EC00FEB3A8EC01FCA9EC03F8A515F01407A415E0140FA315C0141FA215
-80A2143F1500A25C147E14FE5CA2495AA2495AA2495AA2495AA2495AA249C7FC137EA25B
-485A5B1203485A485A5B48C8FC123E5A5A5A1F947D8232>I<160F161F163E167C16F8ED
-01F0ED03E0ED07C0150FED1F801600153E157E5D4A5A5D14034A5A5D140F4A5AA24AC7FC
-143E147E5CA2495AA2495AA2495AA2130F5CA2495AA2133F91C8FCA25B137E13FEA25B12
-01A25B1203A35B1207A35B120FA35BA2121FA45B123FA690C9FC5AAA12FEB3AC127FAA7E
-7FA6121F7FA4120FA27FA312077FA312037FA312017FA212007FA2137E137F7FA280131F
-A26D7EA2801307A26D7EA26D7EA26D7EA2147E143E143F6E7EA26E7E1407816E7E140181
-6E7E157E153E811680ED0FC01507ED03E0ED01F0ED00F8167C163E161F160F28C66E823D
->I<12F07E127C7E7E6C7E6C7E6C7E7F6C7E1200137C137E7F6D7E130F806D7E1303806D
-7EA26D7E147C147E80A26E7EA26E7EA26E7EA2811403A26E7EA2811400A281157E157FA2
-811680A2151F16C0A3150F16E0A3150716F0A31503A216F8A4150116FCA6150016FEAA16
-7FB3AC16FEAA16FC1501A616F81503A416F0A21507A316E0150FA316C0151FA31680153F
-A216005DA2157E15FE5DA214015DA24A5AA214075DA24A5AA24A5AA24AC7FCA2147E147C
-14FC495AA2495A5C1307495A5C131F49C8FC137E137C5B1201485A5B485A485A48C9FC12
-3E5A5A5A28C67E823D>I<EE01E01603EE07C0EE0F80161F1700163E5E5E15015E4B5A15
-074B5A5E151F4BC7FC153E157E5DA24A5A14035D14075D140F5D141F5D143F92C8FC5C14
-7E14FE5C1301A25C13035C1307A25C130FA2495AA3495AA3137F91C9FCA25B5BA312015B
-A31203A25BA21207A35BA2120FA35BA3121FA45BA2123FA75B127FAC90CAFC5AB3B3A27E
-7FAC123F7FA7121FA27FA4120FA37FA31207A27FA31203A27FA21201A37F1200A37F7FA2
-80133FA36D7EA36D7EA2130780A2130380130180A2130080147E147F8081141F81140F81
-14078114038114016E7EA2157E153E153F6F7E150F826F7E15036F7E821500167C828217
-80160FEE07C0EE03E016012BF86C8242>32 D<12F07E127C7E123F7E6C7E6C7E6C7E7F12
-016C7E7F137E133E133F6D7E130F806D7EA26D7E80130180130080147E147F8081141F81
-140F81140781A2140381140181A2140081A2157FA36F7EA382151FA282150FA3821507A3
-82A21503A282A31501A282A31500A382A482A21780A7163F17C0AC161F17E0B3B3A217C0
-163FAC1780167FA71700A25EA45EA31501A35EA21503A35EA21507A25EA3150F5EA3151F
-5EA2153F5EA34BC7FCA315FEA25D1401A25D14035D1407A25D140F5D141F5D143F92C8FC
-5C147E14FE5C13015C13035C495AA2495A5C131F49C9FC133E137E5B5B485A12035B485A
-485A48CAFC5A123E5A5A5A2BF87E8242>I<B61280A600FCC8FCB3B3B3B3B3B3B3B3B3B3
-B3B3B3A2B61280A619F86A8230>I<B61280A6C7121FB3B3B3B3B3B3B3B3B3B3B3B3B3A2
-B6FCA619F8808230>I<177C17FCEE01F8A2EE03F0EE07E0EE0FC0A2EE1F80EE3F005E16
-7E5E15015E15034B5A5E150F5E151F4B5AA24BC7FCA215FEA24A5AA24A5AA24A5AA2140F
-5D141F5D143F5DA2147F92C8FC5CA25C13015C1303A25C1307A3495AA3495AA3133F5CA3
-137F5CA313FF91C9FCA35A5BA31203A25BA31207A35BA3120FA45BA2121FA65BA2123FA8
-5BA2127FAE5B12FFB3A62E95688149>48 D<12F87E127EA27E6C7E6C7EA26C7E6C7E7F12
-016C7E7F137E137F6D7E131F80130F806D7EA26D7EA26D7EA26D7EA2147FA26E7EA28114
-1F81140F811407A281140381A2140181140081A28182A36F7EA36F7EA382150FA3821507
-A3821503A3821501A382A281A31780A3167FA317C0A4163FA217E0A6161FA217F0A8160F
-A217F8AE160717FCB3A62E957E8149>I<B612F0A600FCC8FCB3B3B3B3B3B3B3B01C9466
-8137>I<B612F0A6C71203B3B3B3B3B3B3B3B01C94808137>I<12FCB3B3B3B3B3B3B3B0B6
-12F0A61C94668237>I<EC03F0B3B3B3B3B3B3B3B0B6FCA61C94808237>I<12FCB3B3B006
-34668037>I<12FCB3B3B006346A8037>I<B47EB3A6127F7FAE123FA27FA8121FA27FA612
-0FA27FA41207A37FA31203A37FA21201A37F7EA380137FA380133FA380131FA36D7EA36D
-7EA3130380A2130180130080A28081143FA281141F81140F811407A26E7EA26E7EA26E7E
-A2157FA26F7EA26F7E150F821507826F7E1501821500167E167F82EE1F80EE0FC0A2EE07
-E0EE03F0EE01F8A2EE00FC177C2E95688349>64 D<EE07FCB3A617F8160FAE17F0A2161F
-A817E0A2163FA617C0A2167FA41780A316FFA31700A35DA25EA315035EA315075EA3150F
-5EA3151F5EA34B5AA34B5AA393C7FC5DA25D14015D1403A25D14075DA2140F5D141F5D14
-3F5DA24AC8FCA214FEA2495AA2495AA2495AA2495A5C131F5C133F49C9FC137E13FE5B48
-5A12035B485A485AA2485A48CAFC127EA25A5A2E957E8349>I<EAFF80B3B3B009346880
-49>I<EAFF80B3B3B00934598049>I<BB12FC86A3D87FC0C9001F7FF0007F6C6C17076C6C
-050113806C6CEF007F1A1F6C6CF00FC06C6C18076C6C1803F201E06C6D17006D6C186001
-3F19706E18306D7E6D6C18181B006D7E6D7E6D7EA26D7F6E7E6E7EA26E7E6E7E6E7EA26E
-7E6E7E80826F7E6F7EA26F7E6F7E6F5A5EA24B5A5E4BCBFC153E157E5D5D4A5A4A5A1407
-5D4A5A4ACCFC143E147E147C5C4948181801031930495A4A18704948186049CC12E04918
-01017EF003C0017C180749180F4848F01F800003197F49EF01FF4848050713004848173F
-48CA000FB5FC48BA5AA25ABB5AA24D537B7F58>80 D<B512E0A500F8C7FCB3B3B3B3B3B3
-B3ACB512E0A513946E8227>104 D<B512E0A5EA0003B3B3B3B3B3B3B3ACB5FCA513947F
-8227>I E /Fj 65 123 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF
-80A3EA7F00A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA24813
-3FB2007E1400007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8
-011F131FA202C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9
-495BA2003F90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA7
-6C486C5AA229387DB730>I<D803C0EB01E0D80FF01303486C497E487E150F487ED87E7E
-495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D387E7E01EA7FFED83FFC5B1403EA1F
-F86C48485AEA03C0C75B140FA25D141FA24A5AA25D147FA292C8FC5CA2495AA25C1303A2
-5C1307A290390FF001E0ED07F84A487E011F497EA24A487E133F163F90267F807F1380ED
-7E1F14005BA25B1201A24848EB7F3F033F13004914FF12076F5A5B6F5A6C486D5A0001EC
-01E029477DBE30>37 D<EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13
-FCA2120113F81203EA07F0120FEA1FE0127FEAFFC013801300127C12380F1D70B730>39
-D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B48
-5A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F
-12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E
-184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C013
-1FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA21303
-14F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A
-485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB
-3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0
-011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E0
-9038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>
-I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA
-03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA
-07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30>I<007FB612F0A2B712F8A36C15
-F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B
-30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5A
-A25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495A
-A2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA2
-48C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB
-83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8
-A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15
-F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B
-6D5B010F13E06D5BD900FEC7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F
-13FF1203123FB5FCA213EF138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C
-14F81F3977B830>I<EB07FC90383FFFC090B512F00003804814FE4880261FF80F138026
-3FE00113C09038C0007F4848EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218
-C8FCA2150716F0150F16E0151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A
-5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F848
-5AEA1FE048B6FCB7FCA37E6C15F025397BB830>I<EB03FF013F13E090B512F84814FE48
-80481580260FFE0113C09038F0007F4848EB1FE0150F16F01507A26C5A6C5AC8FC150F16
-E0A2151FED3FC0157FEDFF8002071300903807FFFE495B5D8115FF6D1480D9000113C091
-38003FE0ED1FF0ED07F8150316FC150116FE1500A21218127EB4FCA2150116FC4814036C
-15F86C6C13076DEB1FF0D83FF0133F3A1FFE01FFE06CB612C06C15806CECFE00C65C013F
-13F001031380273A7CB830>I<EC03FC4A7E140F141FA2143F147F157E14FEA2EB01FCEB
-03F8A2EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F0013FEA2485A485AA2485AA2485A485A
-A2485AA248C7FC12FEB8FC1780A46C1600C8007EC7FCAA91387FFFFE91B6FCA46E5B2939
-7DB830>I<000FB612804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC81
-81D9FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503
-A31218127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261F
-FC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730>I<EC0FF8EC7FFF
-49B51280010714E0131F4914F090387FF80F9039FFC007F84813803803FE005B485A4848
-EB03F0ED01E0484890C7FC5B123F5BA2127FEB000C903803FFE0010F13F8D8FF3F13FE48
-B6FCB7128016C09039FE007FE001F8EB1FF001E0130F49EB07F8ED03FC5B90C7120116FE
-1500A37EA46C7E15016D14FC121F6D1303000FEC07F86D130F6C6CEB1FF06DEB3FE03A03
-FF81FFC06C90B512806C15006D5B011F13F8010713E001011380273A7CB830>I<127CB7
-12FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14
-075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA9
-6D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C04801
-0113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F8
-6D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F
-13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303
-007F15FC90C712014815FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1F
-F06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7C
-B830>I<49B4FC010F13E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0
-EB3FE04848131F49EB0FF048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303
-15076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190
-380060011400ED03F8A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A13
-00EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA
-3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4
-EA7FE0A2EA3FC0EA0F000C276EA630>I<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA
-0FF0EA03C0C7FCAFEA03C0EA0FF0121F13F8123F13FCA3121FA2120F12031200120113F8
-120313F01207EA1FE0123FEA7FC0EAFF80EA7F00127E12380E3470A630>I<007FB7FCA2
-B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>61
-D<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F01
-0313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C
-020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A48
-13E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<147F4A7E
-A2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F00
-7FA4498049133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFF
-EB7FFFB56CB51280A46C496C130029397DB830>65 D<007FB7FCB81280A47ED803F8C712
-3FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A900
-7FB7FCB8FCA46C16C02B387EB730>69 D<3B3FFF800FFFE0486D4813F0B56C4813F8A26C
-496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D
-4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>72 D<D83FF8ECFFE0486C49
-13F0486C4913F8A2007F16F06C6C4913E00007160001EF14BFEC800FA39039E7C01F3FA4
-ECE03F01E3133EA2ECF07EA201E1137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3F
-E0A3EC1FC0A2EC070091C7FCADD83FFC903801FFE0486C4913F0B54913F8A26C486D13F0
-6C486D13E02D387FB730>77 D<D83FFC90381FFF80486C4913C0B54913E0A26C6D6C13C0
-6C6E13800003913801F800EBF7C0A3EBF3E0A314F013F1A214F8A213F014FCA2147C147E
-A2143E143FA2141FA21581A2140F15C1A2140715E1A2140315F1A21401A215F91400A315
-7DA3153FEA3FFF481380B5EAC01FA26CEB800F6C496C5A2B387EB730>I<90383FFFE048
-B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A448
-15F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15
-C06C15806C1500000114FCD8003F13E0253A7BB830>I<90390FF803C0D97FFF13E048B5
-12C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37E
-ED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF0103
-1480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F0
-7F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD8
-78011380253A7BB830>83 D<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C7
-91C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<007FB5FCB61280A4150048C8FC
-B3B3B3A5B6FC1580A46C140019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7E
-A26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA213
-0180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED
-3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>I<007FB5FCB612
-80A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8
-A36C15F0A225077B7D30>95 D<EB3FFC48B57E4814E04880488048809038F00FFE9038E0
-01FF806F7E6C48133F6C4880C8121FA491B5FC130F137F48B6FC12075A48EBC01F383FFC
-00EA7FE0138048C7FC5AA46C143FA26C6C137F9038C001FF263FF80FEBFFC06CB712E0A2
-000714F76C14C3C6020013C0D93FF090C7FC2B2A7CA830>97 D<EA3FFC487E12FFA2127F
-123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13
-804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F6EEB3FC0A2
-6EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC9038
-0003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B612804815C048EB807F3907
-FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC
-07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B01
-1F13F801075B01011380232A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90
-381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790
-C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFF
-C06CB712E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4
-FC010713E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB
-1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC
-01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F1480
-6DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5
-FC491387903803FE079138FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C
-15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC
-13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7
-FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15
-C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE000
-1FFE0180130148C8127F007E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01
-F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730
->I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA2
-9138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D48
-13FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5A
-A2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C
-15C023397AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F048
-14F8A47EEB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C1400
-5C6C5B000F13F0000313C01D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14
-C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A
-5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E
-6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B5
-7EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF
-01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE90
-39F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01
-071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C90
-38FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D48
-13FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8
-497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F849
-1303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D13
-0F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F
-13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B6
-12FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217
-F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B5
-5A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A7
-30>I<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848
-130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F
-6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE01
-90C7FCAD92B512F84A14FCA46E14F82E3C7DA730>I<ED07F83A3FFF803FFF486DB51280
-B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238801F809238000F004A90C7FC5C
-5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A287EA730>I<90381FFC1E48B512
-9F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C
-13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C147F00FEEC1F
-C0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C0
-26780FFEC7FC222A79A830>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026
-001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814F09138FC1FF06DB512E06D14C01680
-6D14009038007FFCEC1FF026337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F14
-7F003F143F00001400B3A41501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F
-6D4913FC6D9038F87FF8010001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B5
-15E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F017E5CA2017F13
-1F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801
-FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C
-16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3F
-E0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03F
-A2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815B
-C648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92
-C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE
-90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180
-140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC
-0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E0
-0107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2
-143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90
-C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3F
-E0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A49
-5A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28
-277DA630>I E /Fk 5 53 df<156015F0A24A7E4A7EA24A7E1406EC0E7F140C91381C3F
-8014184A6C7E150F02607F150702C07F1503D901807F1501D903007F496D7E1306010E14
-7F130C011C6E7E131801386E7E1330496E7E160749811603484881160148C87F486F7E12
-06000E167F120C001CEE3F801218003FB812C0A24817E0A2B912F0342F7DAE3B>1
-D<130C133C137CEA03FC12FFEAFC7C1200B3B113FE387FFFFEA2172C7AAB23>49
-D<EB7F803801FFF0380780FC380E003F48EB1F8048EB0FC05A0060EB07E012F000FC14F0
-7E1403A3007C1307C7FCA215E0140F15C0141F1580EC3F00147E147C5C495A495A495A49
-5A011EC7FC5B5B4913305B485A4848136048C7FC000E14E0001FB5FC5A4814C0B6FCA21C
-2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E487FEC1F80003F14C0A2EB800F1300
-A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EBFFC014F0EB00FC143FEC1F8015C014
-0F15E0A2EC07F0A21238127C12FEA3EC0FE012F8006014C00070131F6C1480001EEB3F00
-380780FC3801FFF038007FC01C2D7DAB23>I<140EA2141E143EA2147E14FEA2EB01BE13
-03143E1306130E130C131813381330136013E013C0EA0180120313001206120E120C5A12
-3812305A12E0B612FCA2C7EA3E00A9147F90381FFFFCA21E2D7EAC23>I
-E /Fl 13 121 df<007FB812FEBAFCA26C17FE3804799847>0 D<121EEA7F80A2EAFFC0
-A4EA7F80A2EA1E000A0A799B19>I<0060166000F816F06C1501007E15036CED07E06C6C
-EC0FC06C6CEC1F806C6CEC3F006C6C147E6C6C5C6C6C495A017E495A6D495A6D6C485A6D
-6C485A6D6C48C7FC903803F07E6D6C5A903800FDF8EC7FF06E5A6E5AA24A7E4A7EECFDF8
-903801F8FC903803F07E49487E49486C7E49486C7E49486C7E017E6D7E496D7E48486D7E
-4848147E4848804848EC1F804848EC0FC048C8EA07E0007EED03F0481501481500006016
-602C2C73AC47>I<D91FE01620D9FFFC16704813FF000714C04814F048809026E01FFE15
-F0273F0003FFEC01E0007E010013C00078DA3FF01307DB0FFCEB0FC048913A07FF807F80
-48020190B5FC6F1500043F5B040F13F804035B00409238007F80CDFCA4D91FE01620D9FF
-FC16704813FF000714C04814F048809026E01FFE15F0273F0003FFEC01E0007E010013C0
-0078DA3FF01307DB0FFCEB0FC048913A07FF807F8048020190B5FC6F1500043F5B040F13
-F804035B00409238007F803C287BAB47>25 D<19301978A2197C193CA2193E191EA2191F
-737EA2737E737EA2737E737E1A7C1A7EF21F80F20FC0F207F0007FBB12FCBDFCA26C1AFC
-CDEA07F0F20FC0F21F80F27E001A7C624F5A4F5AA24F5A4F5AA24FC7FC191EA2193E193C
-A2197C1978A2193050307BAE5B>33 D<0203B512F8023F14FC91B6FC010315F8D90FFEC8
-FCEB1FE0EB7F8001FEC9FCEA01F8485A485A485A5B48CAFCA2123EA25AA21278A212F8A2
-5AA2B812F817FCA217F800F0CAFCA27EA21278A2127CA27EA27EA26C7E7F6C7E6C7E6C7E
-EA00FEEB7F80EB1FE0EB0FFE0103B612F8010015FC143F020314F82E3679B13D>50
-D<1718173C177CA217F8A2EE01F0A2EE03E0A2EE07C0160F1780EE1F00A2163EA25EA25E
-A24B5AA24B5AA24B5AA24B5AA24BC7FCA2153E157E157C5DA24A5AA24A5AA24A5AA24A5A
-A24AC8FCA2143EA25CA25C13015C495AA2495AA2495AA249C9FCA2133EA25BA25BA2485A
-A2485AA2485A120F5B48CAFCA2123EA25AA25AA25A12602E5474C000>54
-D<146014F01301A214E01303A214C01307A2EB0F80A214005BA2131E133EA25BA2137813
-F8A25B1201A25B1203A2485AA25B120FA290C7FC5AA2123EA2123C127CA2127812F8A412
-78127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007FA21378137CA27FA2
-131E131FA27F1480A2EB07C0A2130314E0A2130114F0A213001460145A77C323>104
-D<126012F07EA21278127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007F
-A21378137CA27FA2131E131FA27F1480A2EB07C0A2130314E0A2130114F0A414E01303A2
-14C01307A2EB0F80A214005BA2131E133EA25BA2137813F8A25B1201A25B1203A2485AA2
-5B120FA290C7FC5AA2123EA2123C127CA2127812F8A25A1260145A7BC323>I<126012F0
-B3B3B3B3B11260045B76C319>I<0060131800F0133CB3B3B3B3B000601318165A75C32D>
-I<1A061A0F1A1FA21A3EA21A7CA21AF8A2F101F0A2F103E0A2F107C0A2F10F80A2F11F00
-A2193EA261A261A24E5AA24E5AA24E5AA24E5AA24EC7FCA2183EA260A260A24D5AA24D5A
-133801F85E486C15071203D80FFE4B5A121D00394CC8FCEAF1FF00C0163EC67F017F5D80
-013F5D80011F4A5A80010F4A5A8001074A5AA26E495A13036E49C9FC13016E133E7F6F5A
-147F6F5A143FEDE1F0141FEDE3E015F391380FF7C015FF6E5BA26E90CAFCA26E5AA26E5A
-A215781570485B7A834C>112 D<EB3F80EBFFF03803E078380F801E48487E80003EEB03
-805A15C0140F5AA3EC078091C7FCA37E127CA27E121E121F6C7EEA03C06C7EEA00F8133E
-EBFF803803E3E0380F80F0381F0078143E003E7F487F1580EC07C05A15E01403A57E127C
-EC07C07E121E001FEB0F80390F801F00EA03C03801E03E3800F8F8EB3FE0EB0F80EB03E0
-EB00F01478143E80801580EC07C0A215E01403A3123C127EA3EC07C012781238EC0F806C
-EB1F00121E6C133E3803C0F83801FFE038003F801B537ABF28>120
-D E /Fm 29 119 df<ED0FFF4AB512C0020F14F0027F80903A01FFF803FC499038C000FE
-010FEB00034948497E49485B5C495A4C138001FF6E13005CA3705AEE01F893C8FCA74BB5
-1280B9FCA5C69038E00003B3B0007FD9FFC1B6FCA538467EC53E>12
-D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F788E1F>46
-D<EC03C01407141F147FEB03FF133FB6FCA413C3EA0003B3B3ADB712FCA5264177C038>
-49 D<ECFFE0010F13FE013F6D7E90B612E0000315F82607FC0313FE3A0FE0007FFFD81F
-806D138048C7000F13C0488001C015E001F07F00FF6E13F07F17F881A46C5A6C5A6C5AC9
-FC17F05DA217E05D17C04B13804B1300A2ED1FFC4B5A5E4B5A4B5A4A90C7FC4A5A4A5AEC
-0FF04A5AEC3F804AC7127814FE495A494814F8D907E014F0495A495A49C8FC017C140149
-140348B7FC4816E05A5A5A5A5AB8FC17C0A42D417BC038>I<ECFFF0010713FF011F14C0
-017F14F049C66C7ED803F8EB3FFED807E06D7E81D80FF86D138013FE001F16C07FA66C5A
-6C4815806C485BC814005D5E4B5A4B5A4B5A4A5B020F1380902607FFFEC7FC15F815FF16
-C090C713F0ED3FFCED0FFEEEFF80816F13C017E0A26F13F0A217F8A3EA0FC0EA3FF0487E
-A2487EA217F0A25D17E06C5A494913C05BD83F80491380D81FF0491300D80FFEEBFFFE6C
-B612F800015D6C6C14C0011F49C7FC010113E02D427BC038>I<163FA25E5E5D5DA25D5D
-5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14F8EB01F0EB03
-E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E5A12FCB91280
-A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01FFEB07FF91B6
-FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C714C001DF14
-F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8FC6F13F0A3
-17F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0123E003F4A13
-80D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01FCC7FC0101
-13C02D427BC038>I<EE1F80A24C7EA24C7EA34C7EA24B7FA34B7FA24B7FA34B7F169F03
-1F80161F82033F80ED3E07037E80157C8203FC804B7E02018115F0820203814B137F0207
-815D173F020F814B7F021F8292C77EA24A82023E80027E82027FB7FCA291B87EA2498302
-F0C8FCA20103834A157F0107834A153FA249488284011F8491C97E4984133E017E82B602
-0FB612F0A54C457CC455>65 D<B9FC18F018FE727E19E026003FFEC7001F13F805017F94
-38003FFF060F7F727F727F727F84737E737EA2737EA2737EA21B80A2851BC0A51BE0AD1B
-C0A51B8061A21B006162193F624F5A19FF624E5B06075B4E5B063F90C7FC4DB45A050F13
-F8BA5A19C04EC8FC18F095C9FC4B447CC356>68 D<B500FE067FB512806E95B6FCA26F5E
-A2D8003F50C7FC013D6DEE03DFA2013C6DEE079FA26E6CEE0F1FA26E6C161EA26E6C163C
-A36E6C1678A26E6C16F0A26E6DEC01E0A26E6DEC03C0A36E6DEC0780A26F6CEC0F00A26F
-6C141EA26F6C5CA36F6C5CA26F6C5CA26F6D485AA26F6D485AA26F6D485AA3706C48C7FC
-A293383FF81EA2706C5AA2706C5AA3706C5AA2705BA2705BA2705BA2B6057FB6128071C7
-FCA2173E171C61447CC36A>77 D<923807FFC092B512FE0207ECFFC0021F15F091267FFE
-0013FC902601FFF0EB1FFF010701C0010713C04990C700017F49486E7F49486F7E49486F
-7E49486F7E48496F7E48496F1380A248496F13C0A24819E091C97E4819F0A248487013F8
-A3007F19FCA249177FA300FF19FEAD007F19FCA36D17FF003F19F8A3001F19F06D5EA26C
-19E06E01FE5B6C912603FF8014C06C6D486D4813804B13E06C9028E01F83F00F13006C90
-3BF01E00F81FFE90267FF83E90387C3FFC90263FFC3C6D485AD91FFE91381EFFF0D90FFF
-021F5B6D01FE5D010194C7FC6D6D6CB45A023F90B512F8020703E0130202006F13070307
-13C792C7EA07F8716C130F72131F9538FF80FF96B5FC7114FEA3831AFCA27213F81AF084
-7213E07213C0721300F001FC48587AC454>81 D<003FBA12E0A59026FE000FEB8003D87F
-E09338003FF049171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5
-C81700B3B3A20107B8FCA545437CC24E>84 D<903801FFE0011F13FE017F6D7E48B612E0
-3A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA402
-03B5FC91B6FC1307013F13F19038FFFC01000313E0000F1380381FFE00485A5B127F5B12
-FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01F
-C66CEB8007D90FFCC9FC322F7DAD36>97 D<EC3FFC49B512C0010F14F0013F14FC90397F
-F003FE9039FFC001FF0003495A48494813805B120F485AA2485A6F1300007F6E5AED0078
-4991C7FCA212FFAC6C7EA3123F6DEC03C0A26C6C1407000F16806D140F6C6DEB1F006C6D
-133E6C01F05B3A007FFC03F86DB55A010F14C0010391C7FC9038003FF82A2F7CAD32>99
-D<EE03FEED07FFA5ED001F160FB1EC3FE0903803FFFC010FEBFF8F013F14CF9039FFF807
-FF48EBC00148903880007F4890C7123F4848141F49140F121F485AA3127F5BA212FFAC12
-7FA37F123FA26C6C141FA26C6C143F0007157F6C6C91B5FC6CD9C00314FC6C9038F01FEF
-6DB5128F011FEBFE0F010713F89026007FC0EBF80036467CC43E>I<EC3FF80103B57E01
-0F14E0013F8090397FF83FF89039FFC007FC48496C7E48496C7E48486D1380485A001FED
-7FC05B003FED3FE0A2127F5B17F0161F12FFA290B7FCA401F0C9FCA5127FA27FA2123F17
-F06C7E16016C6C15E06C6C14036C6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE01
-1FB55A010714F0010114C09026001FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13F0
-49B512F849EB8FFC90390FFE0FFE90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03F0
-ED00C01600ABB612F8A5C601E0C7FCB3B0007FEBFFE0A527467DC522>I<137C48B4FC48
-13804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFFA51203
-7EB3AFB6FCA518467CC520>105 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC4
-20>108 D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E
-4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E
-6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D
-7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F
-000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E
->I<EC1FFC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7
-EA3FE000078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700
-A46C6C4A5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90
-C7FC6DB55A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FF8B590B5
-7E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C0
-4A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E49
-13806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCAD
-B67EA536407DAC3E>I<DA3FE0131E902603FFFC133E010F01FF137E013F1480903AFFF8
-0FE0FE489038E003F148EBC0014890388000FB4890C7127F49143F001F151F485A160F5B
-127FA3485AAC6C7EA46C7EA26C6C141F163F6C6C147F6C15FF6C6D5A6C9038E003EF6C90
-38F01FCF6DB5128F011FEBFE0F010313F89038007FC091C7FCAD0307B512FCA536407CAC
-3B>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC
-14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>I<9039
-1FFC038090B51287000314FF120F381FF003383FC00049133F48C7121F127E00FE140FA2
-15077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E
-010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F
-8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>I<EB
-01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA4C601E0C7
-FCB3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F006DB5FC6D13FC01
-015B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F6C81B3A85E
-A25EA25E7E6E491380017FD901F713FE9138F807E76DB512C7010F1407010313FE902600
-7FF0EBFC00372E7CAC3E>I<B6903803FFFCA5000101E09038003E006C163C80017F5D80
-17F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6DEBE01E
-163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA2
-6E5AA26E5AA21578362C7EAB3B>I E /Fn 24 118 df<1530157015E0EC03C0EC0780EC
-0F00141E5C147C5C5C495A1303495A5C130F49C7FCA2133E137E137C13FC5B1201A2485A
-A25B1207A2485AA3485AA448C8FCA45A127EA512FE5AA95AA87EA2127CA5123C123EA212
-1EA2121F7EA26C7EA26C7EA26C7E120013707FA213181C5A74C323>40
-D<497E806D7E1470147880A280A280A2EC0780A215C01403A215E0A3EC01F0A615F8AF14
-0315F0A5140715E0A4140F15C0A3141F1580A3EC3F00A2143E147EA2147C14FC5C13015C
-13035C13075C495AA249C7FC131E133E5B13785B485A485A12075B000EC8FC5A5A12F05A
-1D5A7FC323>I<121EEA3F80EA7FC012FFA41380EA7F00123C0A0A788919>46
-D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300141F15C0A5143F1580A5
-147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497EB612F8A31D3D78BC
-2D>49 D<EC03FC91381FFF8091387C07E0903901F001F0903903C000F84948137C49C712
-3E131E013E141F133C137C137813F8A3163F486C143E167E6D147C6C6C14FC6E13F89138
-C001F09138F003E090397FF807C09138FC0F0090383FFF3E6D13F86D13E06D7F01017F81
-01077F90391F1FFF80D93E0F13C0EBF8072601F00113E048486C13F04848137F4848131F
-001FEC0FF890C71207003E1403A2481401A300FC15F05AA3ED03E0A26CEC07C0007C1580
-007E140F003EEC1F00003F143E6C6C5B6C6C485A3907F00FE00001B512806C6C48C7FCEB
-0FF0283F7ABC2D>56 D<EC07F8EC3FFE9138FC0F80903901F007C0903907E003E0D90FC0
-13F090381F8001013F14F8EB7F004914FC48481300A24848EB01FEA21207A3485AA41503
-121F5BA31507A2000F15FC150FA2151F1207153F000315F86C6C137F000014EF90387C01
-CF90393E078FF090380FFE1FEB03F890C713E0A2ED3FC0A3ED7F8016005D003F5C487E4A
-5A00FF495A5D4A5A49485A48495A007049C7FC0078137E383E03FC381FFFF06C13C0D801
-FEC8FC273F79BC2D>I<13F0EA01FC1203EA07FEA313FCA2EA03F8EA01E0C7FCB3121EEA
-3F80EA7FC012FFA41380EA7F00123C0F2778A619>I<17E016011603831607A2160FA216
-1F83163FA2167F167716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E151E15
-1C153C03387FED7800157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC
-5CA20270C7EA3FE0171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2137C
-D801FE4B7E2607FF80EC3FFEB500F00107B512FC19F85E3E417DC044>65
-D<013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F
-4B5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FC
-A45F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC
-6115C0483E7DBD44>72 D<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5D
-A514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2
-B6FC263E7EBD21>I<923803FF80031F13F09238FE01FE913903F8003FDA0FE0EB1FC0DA
-3F806D7E4AC7EA03F0D901FC8149486E7E49486E7E010F82494881494816804948ED3FC0
-13FF91C9FC484817E00003171F5B000718F0A2485AA2485A19F8123FA25B127FA219F048
-48163FA519E0187F5BA219C018FF1980A24D1300A24D5A6C7E4D5A60003F160F037C5C6C
-6C48B4495A913A0783803FC0000F90260E01C05B9026F00C0049C7FC0007011CEBE0FE26
-03F818EB61FCD801FCEC73F8D800FEEC77F0017FEC7FC0D93F985CD90FFC01FEC8FC9027
-03FE07F813030100B5FC91260FFC3C5B91C7FC180E163E181E043F137CEF81FC17FF60A2
-60A2705B60705B7048C7FCEE01F83D5276BF47>81 D<9239FF8003800207EBF007021F90
-38FC0F0091387F00FE02FCEB1F1FD903F0EB07BF49486DB4FC49487F4A6D5A49C8FC4915
-7E133E137E173E49153CA57F1738A26D92C7FC808080EB7FFEECFFE06D13FEEDFFC06D14
-F06D14FC010380010080143F020380DA003F7F15031500707E163F161FA2160F121CA316
-07160F003C5EA35F003E151F94C7FC007E5D007F153E6D5C16FC01E0495AD87DF0495AD8
-FCFCEB0FC03AF87F803F8027F01FFFFEC8FCD8E00713F839C0007FC031427BBF33>83
-D<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E82A248140782A26C5A13
-7890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848
-133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA2007F5B913903BF07009038
-80073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97
-D<EC1FF0ECFFFE903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F048
-48EB3FE0485AA24848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC03
-80150716006C6C5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0F
-F0242A7AA828>99 D<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0
-A491380FF03FECFFFC902603F81F138090390FC007BF90391F8003FF90387E0001497F00
-01157F48481500485A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E
-1507A26C4A5A7F001F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE
-0FD90FF0EBE0002D407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F00
-0F80017E14C049EB07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FC
-A2D8FF80C8FC90C9FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B
-6C6C485A3900FC07C0D93FFFC7FCEB07F8242A7BA828>I<1478EB01FE130314FFA25B14
-FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F
-1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105
-D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A513
-1F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108
-D<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE700
-02EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C713
-80A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>110
-D<EC0FF0ECFFFE903903F01F8090390FC007C049C66C7E013E6D7E01FC6D7E4848804914
-7C0003157E485A000F157F5B121FA2485AA2007F1680A2170048C85AA54B5AA25E5A6C4A
-5A7E4B5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C6C5B6C6C485A3900FC0FE090383FFF80
-D90FF8C8FC292A7BA82D>I<903907F01F80D803FFEB7FE09138E1E1F09138E387F83900
-1FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA513
-7F91C8FCA55B5BA31201487EB512FEA325287EA724>114 D<9138FF81C0010713E39038
-1F807F90397C003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF
-8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA212
-3C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC
-38C01FE0222A7DA824>I<EB0380A4130791C7FCA25BA25BA2133EA2137E13FE12011207
-001FB512C0B6FCA2D801FCC7FCA312035BA512075BA5120F5BA41407001F130E13C0A414
-1E141C1380A26D5AA2000F5B14F03807E1E03801FF80D8007EC7FC1A3978B723>I<01FE
-147F00FFEC7FFF4914FEA20007140300031401A34914FCA4150312074914F8A41507120F
-4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE0913807
-3FFF3803F01E3801FFF826003FE01380282977A733>I E /Fo 27
-123 df<15FCEC03FF91380F87C091383E03E0EC7C0102F813F01301903903F000F8495A
-010F14FC5C495A133F91C7FC4914FE13FEA212015B12034913011207A25B000F15FC1503
-121F5BA21507003F15F890B6FCA33A7FC0000FF05BA2151F16E048C7FCA2ED3FC0A24815
-80157F1600A215FEA24A5AA24A5A007E5C14075D4A5A003E5C141F4AC7FC6C137E5C380F
-81F03807C3E03801FF80D8007EC8FC27417DBF2B>18 D<EE01C0A21603A25FA21607A294
-C7FCA25EA2160EA2161EA2161CA2163CA21638A21678017C167048B491387001FC2603C7
-C0EC03FED8070314F0000F7F000E15E0121C010701011301003816004C137ED8780F163E
-0070EBC003181ED8F01F5C0280151C00001407133F020090C7123C1838495B137E030E14
-7801FE167049011E14F018E0031C13010001EE03C049013C148017070338EB0F006C6C15
-1E03785B5F017E01705B4C5A6D9038F003C0D91F80010FC7FC90390FE0E03E903903FCE1
-F89039007FFFE0020790C8FCEC01C0A21403A25DA21407A292C9FCA25CA2140EA2141EA2
-141CA237527EBE3B>32 D<18E00130ED03F80170ED07FC13F0485A5B1203491503000716
-0148CAFC187C120E121E001C173C003C021C14380038147EA20078177803FE147000705C
-A218F04A4814E000F01601A24BEB03C0A24BEB07800203140F6C0107EC1F00173E6CD91F
-F0137E007C013F5C007E90397FF803F83B7F83FFFE1FF0263FFFFCB5FC4A14C06C496C5B
-6C01C091C7FC6C9038001FFCD801FCEB07E036297FA739>I<EE03F801E0EC0FFE0001ED
-3FFF4991B5128000034A14C04848903903F80FE090C73807E0034891390FC001F0000E15
-00001E021E1300001C5C003C177000385C1570007814F000705C140100F04A14F018E048
-495A17014AC7FC18C01703020EEC07807EEF0F006C011E141E0078163E007C011C5C6C5E
-003F013CEB03F0D81F804A5AD80FE0EC1FC02607FC78EBFF802803FFF807FEC7FC6C90B5
-5A6C6C14F0011F14C0010749C8FC010013F0D901F0C9FCA3495AA31307A25CA2130FA349
-5AA491CAFC130E343C7CA73B>39 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A7989
-19>58 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113801203
-13005A120E5A1218123812300B1C798919>I<ED0180ED03C01507A21680150FA216005D
-A2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2
-141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2
-131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E12
-3EA2123C127CA2127812F8A25A1260225B7BC32D>61 D<49B612C05BA2D90001EB800093
-C7FC5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C8FCA35B5C
-A313035CA313075CA3130F5CA3131F5CA2133FA25CEBFFE0B612E0A32A3E7DBD28>73
-D<49B77E18F818FFD90001D900017F9438003FE04BEC0FF0727E727E14034B6E7EA30207
-825DA3020F4B5A5DA24E5A141F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03FC027FEC
-0FF04BEBFF8092B500FCC8FC5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A1407A284
-13035CA2170F13075C60171F130F5CA3011F033F5B4AEE038018E0013F17071A004A021F
-5B496C160EB600E090380FF01E05075B716C5ACBEAFFE0F03F8041407DBD45>82
-D<EC1F80ECFFE0903903F0707090390FC039F890381F801D90383F000F017E5C5B000114
-07485A48485CA2485A001F140F5E485AA2151F007F5D5BA2153F00FF92C7FC90C7FCA25D
-92387E03805AA215FEEDFC07007E0101140014035E6C0107130E140E3A1F801C7C1C000F
-13783A07C1F03E383A01FFC01FF03A007F0007C029297DA730>97
-D<EB1FC0EA0FFF5CA2EA003FA291C8FCA25BA2137EA213FEA25BA21201A25BA21203A25B
-EC3F800007EBFFE09038F3C1F849C67E01FE137E4848133E49133F5B491480001F141F5B
-5BED3FC0123FA290C7FCA248147F1680127EA215FF00FE15005AA24A5AA25D1403485C14
-07007C5C4A5A5D003C495A003E49C7FC001E137E6C13F8380783F03803FFC0C648C8FC22
-407CBE27>I<EC07F0EC7FFE903801FC0F903907E0038090390FC001C0D93F8013E09038
-7F000701FE131F485A485A16C0485A000F15804990C7FC121F485AA3127F5BA312FF90C9
-FCA6007E1560007F15E01501ED03C06CEC07806DEB0F00001F141E6C6C137C3907E001F0
-3901F01FC06CB5C7FCEB1FF023297DA727>I<EE07F0ED03FF17E0A2ED000FA217C0A216
-1FA21780A2163FA21700A25EA2167EA216FEA25EEC1F80ECFFE1903803F07190390FC039
-F890381F801D90383F000F137E495C00011407485A485A5E485A001F140FA248485CA215
-1F127F495CA2153F12FF90C790C7FCA25DEE038048147EA215FE1607007ED901FC130014
-035E6C0107130E140E3A1F801C7C1C000F13783A07C1F03E383A01FFC01FF03A007F0007
-C02C407DBE2F>I<EC1FE0ECFFFC903803F01E90380FC00F90393F800780D97E0013C049
-1303EA03F8120749130748481480121F49130F003FEC1F00153E397F8001FCEC1FF0B612
-8002F8C7FC90C9FCA45AA616C01501007E1403ED07806CEC0F00151E6C5C6C6C13F83907
-C003E03903E03F802600FFFEC7FCEB3FE022297CA72A>I<143C14FEA21301A314FCEB00
-701400AD137E3801FF803803C7C0EA0703000F13E0120E121C13071238A2EA780F007013
-C0A2EAF01F14801200133F14005B137EA213FE5BA212015B0003130E13F0A20007131EEB
-E01CA2143CEBC0381478147014E013C13803E3C03801FF00EA007C173E7EBC1F>105
-D<ED01C0ED07F0A2150FA316E0ED038092C7FCADEC03E0EC0FF8EC3C3EEC701EECE01FEB
-01C001031480EB0780140049133F010E1400131E131C013C5BA290C7127EA215FEA25DA2
-1401A25DA21403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25C147EA2
-001C13FE007F5BEAFF015C495A495A48485A38F81F80D8783EC8FCEA3FF8EA0FE0245081
-BC25>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C9
-FC16FC49EB03FE92380F0780017EEB3C0FED703F01FE13E0913801C07F9038FC0380EC07
-000001010E14004A131C494890C7FC5C00035BEBF9C0495A01FFC9FC5A14F0EBE3FE9038
-E07F80000FEB1FC06E7EEBC00781001F1303160E1380A2003F151E0207131C010013E0A2
-485DA2007E01031378167000FE01015B15F1489038007F800038023EC7FC29407CBE2F>
-I<D801F0EB0FF0D807FCEB3FFED80F1FEBF01F000E903903C00F80271E0F87007F001C01
-8E1307003C01DC80003813F85CEA781F00705B5CA200F049130F013F5D000090C7FCA216
-1F495D137E163F94C7FC13FE495C167EA200019238FE03804914FCA203011307000303F8
-13005B5FEEF00E0007161E49151C5F1778000F6E6C5A49EC7FC0D80380021FC7FC31297E
-A737>110 D<EC07F8EC7FFE903901FC0F80903907E007E090390FC003F090393F8001F8
-EB7F0001FEEB00FC485A484814FEA2485A120F5B001F15FF485AA2ED01FE127F5BA21503
-00FF15FC90C7FCA2ED07F8A2ED0FF0A2007E15E0007FEC1FC0ED3F80A26CEC7F006C6C13
-FC4A5A6C6C485A3907E00FC02601F03FC7FC3800FFFCEB1FE028297DA72C>I<91381F80
-0C9138FFE01C903903F0707C90390FC0387890391F801CF890383F000F137E4914F00001
-1407485A485A16E0485A121F150F484814C0A3007F141F491480A300FF143F90C71300A3
-5D48147EA315FE007E495A1403A26C13074A5A381F801D000F13793807C1F33901FFC3F0
-38007F03130014075DA3140F5DA3141F5DA2143F147F90381FFFFE5BA2263A7DA729>
-113 D<D801F0EB3F80D807FCEBFFE03A0F1F03C0F0000E90380F00F8391E0F9E03001C13
-BC003CEBF807003813F0A226781FE013F000709038C001C092C7FC5C12F0133F000090C8
-FCA35B137EA313FE5BA312015BA312035BA312075BA3120F5BEA038025297EA729>I<EC
-1FC0ECFFF8903803E03C903807800E90381E0007168049130F49131F153FA201F81400A2
-151C6D90C7FC7FEBFFE014FE90387FFFC06D7F6D13F86D7F13039038001FFE1403140015
-7E000C143E123F487EA248C7123CA25D12FC00F05C0070495A0078495A6C495A260F803E
-C7FC3803FFF838007FC021297CA72B>I<147014FC1301A25CA21303A25CA21307A25CA2
-130FA25CA2007FB512F0B6FC15E039001F8000133FA291C7FCA25BA2137EA213FEA25BA2
-1201A25BA21203A25BA21207EC01C013E01403000F1480A2EBC0071500140E141E5C0007
-13385C3803E1E03801FF80D8003EC7FC1C3A7EB821>I<017E147848B4EB01FC2603C7C0
-13FED807031303000F13E0120E121C0107130100381400167ED8780F143E00705B161EEA
-F01F4A131C1200133F91C7123C16385B137E167801FE14705B16F016E0120149EB01C0A2
-ED0380A2ED0700A20000140E5D6D133C017C5B6D5B90381F03C0903807FF80D901FCC7FC
-27297EA72C>118 D<D901F8133FD907FEEBFFE0903A1E0F83C0F0903A3807C780F89039
-7003CF0301E013FED801C0EBFC071203018013F8D8070015F0EE01C0000E4AC7FCA2001E
-1307A2C75BA2140F5DA3141F5DA3143F92380001C0A34A1303001E1680003F017E130726
-7F80FE14005ED8FF81141ED901DF131CD8FE035C3A7C078F80F03A3C0F07C1E03A1FFC03
-FF802707F0007EC7FC2D297EA734>120 D<137C48B4EC03802603C7C0EB0FC0EA070300
-0F7F000E151F001C168013071238163FD8780F150000705BA2D8F01F5C4A137E1200133F
-91C712FE5E5B137E150113FE495CA2150300015D5BA215075EA2150F151F00005D6D133F
-017C137F017E13FF90393F03DF8090380FFF1FEB01FC90C7123F93C7FCA25DD80380137E
-D80FE013FE001F5C4A5AA24848485A4A5A6CC6485A001C495A001E49C8FC000E137C3807
-81F03803FFC0C648C9FC2A3B7EA72D>I<02F8130ED903FE131ED90FFF131C49EB803C49
-EBC0784914F090397E07F1E09038F800FF49EB1FC049EB07800001EC0F006C48131E90C7
-5A5D5D4A5A4A5A4A5A4AC7FC143E14785C495A495A495A49C8FC011E14E05B5B49130148
-48EB03C0485AD807F8EB078048B4131F3A1F87E07F00391E03FFFE486C5B00785CD87000
-5B00F0EB7FC048011FC7FC27297DA72A>I E /Fp 18 121 df<157815FC14031407141F
-14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>
-49 D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F
-0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC
-4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3F
-A24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C
-6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D
-4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903A
-FFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261
->67 D<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>73
-D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90
-C7000313F0DA7FFC02007F902601FFF0ED3FFE49496F7E49496F7F49496F7F4990C96C7F
-4948707F4948707F01FF854A177F48864849717EA24849711380A2481BC04A83481BE0A2
-4A83481BF0A3481BF8A291CB7EA3B51AFCAF6C1BF8A26E5FA36C1BF0A36C6D4D13E0A36C
-1BC06E5F6C1B806E5F6CDB01FE16006C6D902607FF80495A4C13E06C6D013F6D495A017F
-91267F03F85C6D6C90277C00FC015B6D6C49D97E035B6D01806E485B6D6D48D91F8F5B6D
-01E0039F90C7FC6D01F06EB45A6DD9FCF85DDA3FFF6E13F0020F6D4913C0020301FF90B5
-C8FC020091B512FC031F180C0303181EDB001FEBE3FE93C7EA01FF74133E74137E7413FE
-F2F8077290B5FC1CFCA285A21CF8A2851CF07314E0A27314C0731480731400735B963800
-7FF8F21FE0576A79D265>81 D<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F
-060113FE727F737F737F85737F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A
-06035B060F13F095B512C092B8C9FC19F819E019F89226F0000313FE9439007FFF80727F
-727F727F727F727F8684A28684A787A71D1C75133EA38575137E73157C7513FC731401B8
-6C6D9038F803F807039038FE07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164
->I<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB3F
-FC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC01
-071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA45E
-A26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC014
-F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97
-D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC
-491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5B
-A312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D
-147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E0
-33387CB63C>99 D<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC01
-0315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980485B83
-485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5
-FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13
-F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F90
-3A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7FC48
-17E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14
-037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0F
-FFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC0203B5FC
-020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A495AA249
-5AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB512FEA5
-2E547CD329>I<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCAD
-EB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>105 D<D93FF0EB1FFCB591B512C0
-030314F0030F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DA
-F7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>110
-D<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D
-6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F18
-80A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D49
-5B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8
-FC020113E03A387CB643>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF8
-9139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE
-0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7
-FC120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F01F0
-91C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15
-C01300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D
-141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807
-148048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F131F
-133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F00
-15806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF89138
-01FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01
-E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091
-C7FC42377BB54B>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D
-5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB
-8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01
-FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F49
-5A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>120
-D E /Fq 78 122 df<16E04B7EA24B7EA24B7EA24B7EA2ED1DFFA203387FA29238787FC0
-15709238F03FE015E002016D7E15C002036D7E158002076D7E15004A6D7E140E021E6D7E
-141C023C6D7F143802786E7E147002F06E7E5C01016F7E5C01036F7E5C01076F7E91C8FC
-496F7E130E011E6F7E131C013C6F7F13380178707E137001F0707E5B0001717E5B000371
-7E5B0007717E90CAFC48717E120E001E717E001FBAFC481980A24819C0A2BB12E0A24341
-7CC04C>1 D<913801FFC0021F13FC9139FF007F80D903F8EB0FE0D90FF0EB07F8D91FC0
-EB01FCD97F806DB4FC49C86C7E48486F7E00038348486F7E000F8349150F001F83491507
-003F83A348486F7EAA6C6C4B5AA3001F5FA26C6C4B5AA200075F6D151F00035FA26C6C4B
-5A00005FA2017F4BC7FC6D157EA26D6C5C010F5DA26D6C495A00E0EF0380010315E0D870
-019238C007006E130301001580A36C0160EC000E003C017049131E263FFFF0ECFFFEA36C
-5FA339407CBF42>10 D<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF0
-3FD907F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE
-6D91C7FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>
-I<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13
-7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9
-FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB
-1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3
-2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C
-D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92
-C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB
-7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<EA01FC127FA3120712031201B3AC487E
-B512F0A314287DA71A>16 D<B7FCA320037AB52D>22 D<121EEA7F8012FF13C0A213E0A3
-127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19
->39 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2
-485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37E
-A27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00
-E014701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F137813
-7CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA3
-1480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A
-5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FCB3A91506
-3C3C7BB447>43 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A31201
-1380120313005A120E5A1218123812300B1C798919>I<B512FEA617067F961E>I<121EEA
-7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>I<ED0180ED03C01507A21680150FA216
-005DA2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7
-FCA2141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC
-5BA2131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA212
-1E123EA2123C127CA2127812F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03
-F090387C00F849137C48487F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A2
-90C712034815F8A64815FCB3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6C
-EB1F80000315006C6C133E6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC
-2D>I<EB01C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A3
-1D3D78BC2D>I<EB07FC90383FFF8090B512E03903F01FF83907C007FC390F0001FE001E
-6D7E001C1580003CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E015
-3FA216C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A
-495A495A49C71270133E133C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FC
-A3243D7CBC2D>I<EB07FC90383FFF809038F80FE03901E003F839078001FCD80F007F00
-0E6D7E001E1580D81F80137F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA2
-4A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7F
-C0A216E0153FA216F0A2120C123F487E487EA316E0A249137F6CC713C01278EDFF807E6C
-4913006C495A3907C007FC3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<15
-0E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01C0
-A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8
-FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC
-5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F849
-6C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416
-E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A
-3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E9038
-0FC00F90391F000780133E017EEB1FC049133F4848137F12035B12074848EB3F80ED1F00
-001F91C7FC5BA2123FA3485AA214FE903887FF8039FF8F07E090389C01F09038B800FC01
-B0137E13F0497F16804914C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A2
-6C6C1480A20007EC7F006C6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FC
-C7FC243F7CBC2D>I<1238123C123F90B612FCA316F85A16F016E00078C712010070EC03
-C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2
-147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD
-2D>I<EB03FC90381FFF8090387C07E09038F001F83901E0007C48487F48487F48C7FCED
-0F80121E16C0003E1407A4123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF
-80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E39
-03E01FFF48486C1380260F800313C048487E489038007FE0003E143F007E141F007CEC0F
-F01507481403A31501A46C15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C13
-3ED807F05B3901FC03F86CB512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF
-90387E07C09038FC03F048486C7E48486C7E4848137C000F147E4848137F81003F15805B
-007F15C0A2151F12FF16E0A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF
-000313013900F8039F90387E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F
-801400487E486C13FEA24A5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803
-FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3
-121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F
-80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A3120313005A
-1206120E120C121C5A1230A20A3979A619>I<007FB912E0BA12F0A26C18E0CDFCAE007F
-B912E0BA12F0A26C18E03C167BA147>61 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7
-A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA3
-4A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C
-153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A3
-3D417DC044>65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF
-7FC0EF3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03
-FCEE0FF8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018
-F8170F18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C
-90380FFE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF
-801E913A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE014
-0749481403495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B18
-0E127FA349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D1638
-6C6C1678000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D9
-03FE143E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF
-42>I<B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084
-717E717E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF
-19004D5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8
-FC3C3E7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A3
-1870A41838161CA41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2161C
-A21807A3180E93C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486CEB01
-FFB912F0A3383E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707
-A21703A31701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115
-001678A21638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE
-131C021F9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91F
-E0141F4948140F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F
-173CA2485AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC
-123FA27F121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED9
-03FEEC3C7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF0
-3C427BBF47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FC
-A30280C7120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EB
-F000EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<B612F8A3000101E0C9FC38007F80
-B3B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C133FB8FCA3313E7DBD39>
-76 D<B500C093383FFFF0A300016D93387FF800D8007F18E0D977F016EFA3D973F8ED01
-CFA2D971FCED038FA3D970FEED070FA26E150E80A26E6C141CA36E6C1438A26E6C1470A3
-6E6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A2037F130EA36F6C5AA26F6C5AA3
-6F6C5AA25FED07F0A2923803F9C0A36FB45AA26F90C7FCA213F8486C147ED807FFEF3FF8
-B500F8013C011FB512F0A34C3E7DBD53>I<B56C91B512F88080D8007F030713006EEC01
-FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E
-7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE
-0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487ED8
-07FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E
-0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E0001
-8349150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E049163F
-A300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A00
-035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03
-F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EE
-FF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A2
-18F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9
-FCB3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F00
-0FE0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248486F7E
-49150300038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249163FA2
-00FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F80
-5B6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F819038
-061FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE007
-E091271FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF03
-18FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FCEEFF80
-0001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017
-FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC070
-7E707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB600
-C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC130C90
-391FFF801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC4848130F001F140748
-C71203003E1401007E1400A2007C157C12FCA2163CA36C151CA27EA26C6C14007F7FEA3F
-F8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F0207
-13F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C
-157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE
-00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393F
-C0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E
-4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80
-EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D
-6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF0
-3D407DBD44>I<B500FE017FB5D88007B5FCA3000301C0010101E0C713F86C90C849EC3F
-E07148EC0F807E7215006E143F017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2
-933801C3FC6E18F001076104037F6E0281140101036104077F17006D6C4D5AA2040EEB7F
-806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0161E023F171C047814F0DBE070
-010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01
-FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B81037C153EA20378151E0338
-151C58407EBD5D>87 D<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>91
-D<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>93 D<1318133C137E13FF3801E7
-803803C3C0380781E0380F00F0001E137848133C48131E48130F00601306180D76BD2D>
-I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79BD19>I<EB0FF8EBFFFE3903F01F80
-39078007E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103
-B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485AA248C7FCEE038012FEA315FF
-A3007F5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C0FFE3A01FFF807FC3A003FC0
-01F0292A7DA82D>97 D<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E0
-9039FDE001F09039FFC000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717
-F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003
-F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00
-F8017C131E4848131F4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FC
-A290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C13
-1E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715
-031501B114FF010713E190381F80F990387E003D49131FD803F81307485A491303484813
-01121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E
-6C6C497ED8007C017913F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB
-01FE90380FFFC090383F03F09038FC01F848486C7E4848137E48487F000F158049131F00
-1F15C04848130FA2127F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E15
-01000F15C06C6C13036DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE00100
-90C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F
-811401137FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C
->I<167C903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E0
-00FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803
-E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E
-6C15E06C810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E
-007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0
-293D7EA82D>I<EA01FC12FFA3120712031201B1EC01FE913807FFC091381E07E0913878
-03F09138E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FC
-A32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712
-031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB007814
-00AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F0138
-7C03F0381E07C0380FFF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292
-B51280A392383FFC0016E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E
-13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA2
-82486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487E
-B512F8A3153F7DBE1A>I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0
-913B7803F03C01F80007903BE001F87000FC2603F9C06D487F000101805C01FBD900FF14
-7F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA7
-4C>I<3901F801FE00FF903807FFC091381E07E091387803F000079038E001F82603F9C0
-7F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>
-I<14FF010713E090381F81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0
-000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F
-15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC9038
-0FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE0
-03F03A03FFC001FC6C496C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE
-0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780F
-C0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90
-381F80F090397F00387C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501
-485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E1379
-90383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F8
-07E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300
-A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F00
-3E1307003C1303127C0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE
-6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E
-15F07E14016C14E06CEB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>
-I<131CA6133CA4137CA213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0
-A912009038FE01C0A2EB7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801
-FC14FE00FF147FA3000714030003140100011400B3A51501A31503120015076DEB06FF01
-7E010E13806D4913FC90381FC078903807FFE00100903880FE002E297DA733>I<B539E0
-0FFFE0A32707FE000313006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2
-ECC007011F91C7FCA290380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2EC
-FEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A329
-0FFE003FE00013C06C486D48EB3F806C4817006D010F141E00016F131C15076D163C0000
-4A6C1338A2017F5E4B7E151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90F
-E0017F5BEDE03F02F0140701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02
-FF14DE6D15FCED00076D5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>
-I<B539F01FFFE0A30003D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49
-C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E8114
-7BECF1FC903801E1FEECC0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC
-80486C80000F4A7EB539803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE00031300
-6C48EB01FC6F5A00015D7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A01
-0F130EA26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8
-FCA2140EA2141E141C143C1438A2147800181370127EB45BA2495AA248485AD87E07C9FC
-EA780EEA3C3CEA1FF8EA07E02B3A7EA630>I E /Fr 35 121 df<EDFFF8020F13FF027F
-8049B612E001079038C01FF090390FFE0007D91FF8497ED93FE0131F4948497E13FF5C5A
-91C7FCA2705A705AEE03C093C8FCA6EE03FCB8FCA50001903880001F160FB3AB007FD9FE
-03B512F0A534407EBF3A>12 D<B612E0A91B097F9823>45 D<EA0FC0EA1FE0EA3FF0EA7F
-F8EAFFFCA6EA7FF8EA3FF0EA1FE0EA0FC00E0E798D1D>I<140F143F5C495A130F48B5FC
-B6FCA313F7EAFE071200B3B3A8B712F0A5243C78BB34>49 D<903803FF80013F13F890B5
-12FE00036E7E4881260FF80F7F261FC0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F
-1380A46C5A6C5A6C5A0007C7FCC8FC4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7
-FC5D4A5AEC1FE04A5A4A5A9139FF000F80EB01FC495A4948EB1F00495AEB1F8049C7FC01
-7E5C5B48B7FC485D5A5A5A5A5AB7FC5EA4293C7BBB34>I<903801FFE0010F13FE013F6D
-7E90B612E04801817F3A03FC007FF8D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C
-48133FD801F05CC8FC4B5A5E4B5A4A5B020F5B902607FFFEC7FC15F815FEEDFFC0D90001
-13F06E6C7E6F7E6F7E6F7E1780A26F13C0A217E0EA0FC0487E487E487E487EA317C0A25D
-491580127F49491300D83FC0495A6C6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7
-FC010313E02B3D7CBB34>I<ED01F815031507A2150F151F153FA2157F15FF5C5CA25C5C
-EC1FBFEC3F3F143E147C14FCEB01F814F0EB03E01307EB0FC0EB1F801400133E137E5B48
-5A5B485A1207485A5B48C7FC5A127E5AB812F8A5C8387FF800AA49B612F8A52D3C7DBB34
->I<16FCA24B7EA24B7EA34B7FA24B7FA34B7FA24B7FA34B7F157C03FC7FEDF87FA20201
-80EDF03F0203804B7E02078115C082020F814B7E021F811500824A81023E7F027E81027C
-7FA202FC814A147F49B77EA34982A2D907E0C7001F7F4A80010F835C83011F8391C87E49
-83133E83017E83017C81B500FC91B612FCA5463F7CBE4F>65 D<922607FFC0130E92B500
-FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C0
-1300013F90C8127F4948151FD9FFF8150F48491507485B4A1503481701485B18004890CA
-FC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA27F6C187E197C6C7F19FC6C
-6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D6CED3F80010F01C0ECFF00
-6D01F8EB03FE6D9039FF801FFC010091B55A023F15E002071580020002FCC7FC030713C0
-3F407ABE4C>67 D<B812F8EFFF8018F018FC18FF26003FFCC76C13C005077F05017F716C
-7E727E727E727E721380A27213C0A27213E0A21AF084A21AF8A41AFCA5197FA319FFA51A
-F8A41AF0A2601AE0A24E13C0A24E13804E1300604E5A4E5A4D485A050713E0057F5BBA5A
-4EC7FC18F818C005F8C8FC463E7DBD50>I<BAFCA4198026003FFEC7123F170717018318
-3FA2181FF00FC0A31807EE07C0A3F003E0A3160F95C7FC161F163F16FF91B6FCA54AC6FC
-163F161F040F147CA2160719F8A593C71201A219F01803A21807A2180FF01FE0183F18FF
-1703173FBAFCA219C0A33E3D7DBC45>I<B6051FB512C06F5EA26F5EA2D8003F97C7FC6F
-16F7A26E6CED01E7A26E6CED03C7A36E6CED0787A26E6CED0F07A26E6C151EA36E6D143C
-A26E6D1478A26E6D14F0A26F6CEB01E0A36F6CEB03C0A26F6CEB0780A26F6CEB0F00A36F
-6C131EA26F6D5AA26F6D5AA26F6D5AA393387FF1E0A293383FFBC0A270B45AA37090C7FC
-A2705AA2705AB600C0031FB612C0A2705AA2705A5A3E7CBD63>77
-D<ED3FFF0203B512F0021F14FE027F6E7E902701FFF80713E00107903980007FF84948C7
-EA1FFCD93FFC6EB4FC49486E7F49486E7F48496E7F4A8048496F7E488491C9123F488448
-48707EA34848707EA3007F1980A24982A200FF19C0AD007F1980A26D5EA2003F1900A36C
-6C4C5AA26C6C4C5AED07F06C9026801FFC495A6C4AB45C6E48EB80FF6C9027E07E0FC15B
-6C9126F807E15B90287FF0F003E35BD93FFC6DB5C7FCD91FFE6D5B902607FFF814F80101
-D9FE0313E06D90B65A021F4AC7124002036E14E0DA003FEB3F8092C77FF0E001F0F80F71
-B5FCA21AC083A21A8083A271140061715B715B725AF01FC043517ABE4F>81
-D<B87E17FCEFFF8018F08428003FFC000113FE9338003FFF050F7F717F717FA2858385A7
-61A25F61614D5B4D90C8FCEF3FFE4CB45A91B712F018C04DC9FC717E9126FC000F7F0401
-13F0707F717EA2717EA2717EA685A6F207C019C0A271140F07E01380B76DEBF01F719038
-FC3F007190B5FC716C5B061F13F8CB000113E04A3F7DBD4E>I<903807FFC0013F13F848
-B6FC48812607FE037F260FF8007F6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC
-153F91B5FC130F137F3901FFFE0F4813E0000F1380381FFE00485A5B485A12FF5BA4151F
-7F007F143F6D90387BFF806C6C01FB13FE391FFF07F36CEBFFE100031480C6EC003FD91F
-F890C7FC2F2B7DA933>97 D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80
-DAFF8113F09139FC003FF802F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0
-A25E1880A218005E6E5C6E495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91
-C7FCD9E00713FCC7000113C033407DBE3A>I<EC7FF00107B5FC011F14C0017F14E09039
-FFF01FF0489038800FF848EB001F4848EB3FFC120F485AA2485AA2007FEC1FF849EB0FF0
-ED03C000FF91C7FCAB127F7FA3003F153E7F001F157E6C6C147C6C6C14FC91388001F86C
-9038C003F0C69038F81FE06DB512C0011F14800107EBFE009038007FF0272B7DA92E>I<
-EE07F8ED07FFA5ED003F161FAFEC7FF0903807FFFE011FEBFF9F017F14DF9039FFF01FFF
-48EBC00348EB00014848EB007F485A001F153F5B123FA2127F5BA212FFAA127FA37F123F
-A26C6C147F120F6D14FF6C6C01037F6C6D48EBFFE06CEBF03F6C6CB512BF6D143F010713
-FC010001E0EBE00033407DBE3A>I<ECFFF0010713FE011F6D7E017F809039FFE07FE048
-9038801FF048496C7E48486D7E48486D7E121F491301003F81A2485A6F1380A212FFA290
-B7FCA401F0C9FCA5127FA27F123FEE0F806C7E161F6C6C15006C6C5C6C6D137E6C9038E0
-01FC6C9038F80FF8013FB55A6D14C0010391C7FC9038007FF8292B7DA930>I<EC07FE91
-387FFF8049B512C0010714E090390FFE3FF0EB1FF090393FE07FF8EB7FC013FF1480A248
-9038003FF0ED1FE0ED0FC092C7FCAAB612E0A500010180C7FCB3AC007FEBFF80A525407D
-BF20>I<903A03FF8007F0013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC
-007FC34848EB3FE1001FEDF1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C
-6C495A3A03FF83FF8091B5C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6
-FC16F016FC6C15FF17806C16C06C16E01207001F16F0393FE000034848EB003F49EC1FF8
-00FF150F90C81207A56C6CEC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF
-800F13006C90B55AC615F8013F14E0010101FCC7FC2F3D7DA834>I<EA01F8487E487E48
-7E481380A66C13006C5A6C5A6C5AC8FCA913FFB5FCA512077EB3ABB512F8A515407CBF1D
->105 D<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5AED07F0ED1FE04B5A4B5A
-4BC8FCEC03FC4A5A4A5A141FEC7FF84A7EA2818102E77F02C37F148102007F826F7E6F7E
-151F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37>107
-D<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B50107
-13F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013EDAF9
-F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03FEBFF
-80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F000701
-3C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>I<EC7FF0903803FF
-FE011FEBFFC0017F14F09039FFE03FF8489038800FFC3A03FE0003FE48486D7E000F1680
-48486D13C0A2003F16E049147F007F16F0A400FF16F8AA007F16F0A46C6CECFFE0A2001F
-16C06C6C491380A26C6C4913003A03FF800FFE6C9038E03FFC6C6CB512F0011F14C00107
-91C7FC9038007FF02D2B7DA934>I<01FFEBFFE0B5000713FC021FEBFF80027F80DAFF81
-13F09139FC007FF8000301F06D7E4A6D7E4A130F4A6D7E1880A27013C0A38218E0AA4C13
-C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC028713
-FC028113C00280C9FCACB512FEA5333B7DA83A>I<DA7FE01378902607FFFC13F8011FEB
-FF01017F14819039FFF81FC3489038E007E74890388003F74890380001FF48487F001F15
-7F5B003F153F5B127F161FA2485AAA127F7FA36C6C143F167F121F6C6C14FF6D5B6C6D5A
-6CEBC00F6CEBF03F6C6CB512BF6DEBFE3F010713F8010013C091C7FCAC030FB512E0A533
-3B7DA837>I<3901FE01FE00FF903807FF804A13E04A13F0EC3F1F91387C3FF8000713F8
-000313F0EBFFE0A29138C01FF0ED0FE091388007C092C7FCA391C8FCB3A2B6FCA525297D
-A82B>I<90383FFC1E48B512BE000714FE5A381FF00F383F800148C7FC007E147EA200FE
-143EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14F06C806C806C806C80C61580131F13
-00020713C014000078147F00F8143F151F7EA27E16806C143F6D140001E013FF9038F803
-FE90B55A15F0D8F87F13C026E00FFEC7FC222B7DA929>I<EB07C0A5130FA4131FA3133F
-137FA213FF5A1207001FEBFFFEB6FCA40001EBC000B3151FA96CEBE03EA2017F137EECF8
-FC90383FFFF86D13F0010713E001001380203B7EB929>I<D9FF80EB0FF8B5EB0FFFA500
-07EC007F6C153FB3A5167FA316FF6C5C4B7F6C903AC007DFFFE09138F01F9F6DB5121F6D
-13FE010F13F8010101E0EBE000332A7CA83A>I<B53CFC3FFFFC03FFFEA50003D9800090
-39C0000F806E161F6C037F15006E496C5B6C183E836E48157E017F177C6E486D13FC013F
-02EF5C83DAFC071401011F02C75CDAFE0FEBFE03010F02835C17FFDAFF1F14076D02015C
-03BF148F6DD9BE005C18CF03FE14DF6D49017F90C7FC18FF6D496D5AA36E486D5AA26E48
-6D5AA36E486D5AA26E486D5A47287EA74C>119 D<B5D8FC03B51280A5C69026E0007FC7
-FC6E13FE6D6C5B6D6C485A6D6C485A010F13076D6C485AED9FC06DEBFF806D91C8FC6D5B
-6E5AA2143F6E7E140F814A7F4A7F4A7F02FE7F903801FC7F49486C7E02F07F49486C7E49
-486C7E011F7F49486C7FD97F008001FE6D7FB5D8C007EBFFC0A532287EA737>I
-E /Fs 8 119 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>58
-D<91B712F018FF19E002009039C0003FF86F48EB07FC03FFEC01FEF0007F93C8EA3F801A
-C0F11FE05C5D1AF0A214035DA30207EE3FE05DA2F17FC0020F17804B15FF1A004E5A021F
-4B5A4B4A5AF00FE04E5A023F037FC7FC4BEB03FCEF1FF092B612804A4AC8FC923980007F
-80EF0FC0EF07F002FF6E7E92C77F1701845B4A1400A2170113035CA2170313075CA24D5A
-130F5CA3011F18185CA2013F4C13381A304A6F1370D9FFE0020314E0B600E0ED01C00501
-EB0380943900FE0F00CBEA3FFEF007F045467CC34A>82 D<EC07F8EC3FFE903901FC0780
-903903F003C090390FC001E090381F8000017FC7FC01FE1470485A484814F0000715E05B
-000F1401484814C015034848EB0780ED1F0015FC007FEB1FF090B5128002F0C7FC0180C8
-FC12FF90C9FCA55AA41618007E15381670007F15E06CEC01C0ED03806CEC07006C6C131E
-6D13383907E001F03901F00FC026007FFEC7FCEB1FF0252D7CAB2D>101
-D<141E143F5C5CA3147E143891C7FCAE133EEBFF803801C3C0380781E0380601F0120E12
-1CEA180312381230A2EA700700605BA2EAE00F00C05BEA001F5CA2133F91C7FCA25B137E
-13FE5BA212015BEC03800003140013F01207495A1406140E140CEBC01C141814385C0003
-5BEBE1C0C6B45A013EC7FC19437DC121>105 D<01F8EB03FCD803FEEB1FFFD8071F9038
-7C0FC03B0E0F80E007E03A0C07C3C003001CD9C7007F001801CE1301003801DC80003013
-D8EB0FF800705B00605BA200E0491303D8C01F5D5C12001607013F5D91C7FCA2160F495D
-137E161F5F13FE49143F94C7FC187000014B136049147E16FE4C13E0000317C049150104
-F81380170300071700495D170EEE781C000FED7C3849EC1FF0D80380EC07C0342D7DAB3A
->110 D<EC03FCEC3FFF9138FE07C0903903F003F049486C7E90391FC000FC49C7127C49
-147E01FE147F484880485A000716805B120F485AA2485A167F127F5BA216FF00FF160090
-C8FCA25D5E5A4B5AA25E15075E4B5A151F007E5D4B5A6C4AC7FC15FE391F8001F86C6C48
-5A3907E00FC03901F03F802600FFFCC8FCEB1FE0292D7CAB2F>I<EC0FF0EC7FFE903901
-F00F809039078001C049C712E0011E14605BED01F0491307A201F8EB0FE05B7FED03806D
-90C7FC7F7F14F86DB47E15E06D13F86D7F01077F1300EC07FF140081ED3F80151F120E00
-3FEC0F00487EA25D48C7121EA200FC5C12605D00705C6C495A6CEB07C0260F803FC7FC38
-03FFFC38007FE0242D7BAB2E>115 D<013E140ED9FF80EB3F802603C3C0137F380703E0
-380601F0120E121CD81803143F0038151F0030150FA2D87007140700605BA2D8E00F1500
-00C0497FEA001F4A5B1606133F91C7FC160E49140C137EA2161C01FE14185B1638163016
-704848146016E05E150100005D15036D49C7FC1506017C130E017E5B6D137890380F81E0
-6DB45AD900FEC8FC292D7DAB2F>118 D E /Ft 14 118 df<121FEA3F80EA7FC0EAFFE0
-A5EA7FC0EA3F80EA1F000B0B6C8A33>46 D<EC07F8EC3FFF91B57E010314E0010F804980
-90383FFC0F90397FE003FC9038FF80014890C77ED803FC147E49EB7E7F0007903801FFBF
-D9F00713FF4848481480495A001F5B018013C3003FEB7F810100010013C002FE137F4849
-133FEA7E014A131FA212FEEAFC034A130FA96E131FD8FE011580127EA26E133FD87F0015
-006C6D5B027F13FE01801381001F90383FC3FC01C013FF000F6D5B6D6C5B6C6C6C5BD9F8
-0113800003D9007EC7FC6D9038000F806CB4EC1FC06C6D133FD97FE013FF90263FFC0713
-806DB612006D5C010314F801005C023F1380DA07FCC7FC2A3F7CBD33>64
-D<EB1FFC90B57E000314E048804814FC48809038F007FFEBE0016E7F153F6C48806C4813
-1FC87F150FA5EC0FFF49B5FC131F137F48B6FC0007140F4813C0381FFC00EA3FF0EA7FC0
-5B48C7FC5AA56C141F7E6D137FD83FE0497ED9F807EBFFF06CB712F87E6C14F36C14C1C6
-9138003FF0D91FF090C7FC2D2E7BAC33>97 D<EA3FFC487E12FFA2127F123F1200ABEC01
-FE91380FFFC04A13F0027F7F91B512FE90B7FCECFE07DAF800138002E0EB7FC04AEB3FE0
-4A131FEE0FF091C7FC16074915F81603A217FC1601A9160317F8A26D140717F06E130F17
-E06E131FEE3FC06E137F9139F801FF80DAFE07130091B55A495C6E5BD97E3F13E0D93C0F
-138090260003FEC7FC2E3E7FBC33>I<ED7FF84B7E5CA280157F1501ABEB01FF010713C1
-011F13F1017F13F990B6FC5A4813813907FE003FD80FF8131F49130F4848130749130312
-3F491301127F90C7FCA25A5AA97E7E15037F123F6D1307A26C6C130F6D131F6C6C133F6C
-6C137F2603FF81B512F091B612F8C602FD13FC6D13F96D01E113F8010F018013F0D901FE
-C8FC2E3E7DBC33>100 D<ECFF80010713F0011F13FC497F90B6FC48158048018013C03A
-07FE003FE001F8EB0FF048481307484814F8491303003F15FC491301127F90C7FC16FE15
-005A5AB7FCA516FC48C9FC7E7EA36C7E167C6C6C14FE7F6C7E6D13016C6CEB03FC6CB413
-0F6C9038C03FF86C90B512F06D14E06D14C0010F1400010313FC9038007FE0272E7BAC33
->I<D901FEEB1FE0903A0FFFC0FFF0013F01F313F84990B512FC90B7FC5A48010313E126
-07FC00EB80F849017F1360484890383FC00049131FA2001F8149130FA66D131F000F5DA2
-6D133F6C6C495A6D13FF2603FF0390C7FCECFFFE485C5D5DD80FCF13C0D981FEC8FC0180
-C9FCA27FA26C7E7F90B512FC6CECFFC06C15F0000715FC4815FF4816809038E000074848
-9038007FC090C8EA1FE048150F007E150700FE16F0481503A56C1507007E16E0007F150F
-6C6CEC1FC001E0147FD81FF8903801FF80270FFF801F13006C90B55A6C5DC615F0013F14
-C0010F91C7FC010013F02E447DAB33>103 D<EA3FFC487E12FFA2127F123F1200AB4AB4
-FC020713C0021F13F0027F7F91B5FC90B67EED07FEECF801ECF0004A7F4A7F5CA291C7FC
-A35BB3A43B3FFFF80FFFFC486D4813FEB56C4813FFA26C496C13FE6C496C13FC303D7FBC
-33>I<383FFFFC487FB5FCA27E7EC7FCB3B3AD003FB612F84815FCB712FEA26C15FC6C15
-F8273D7ABC33>108 D<4AB4FC263FFC0713C0267FFE1F13F000FF017F7F91B5FC6CB67E
-6CEC07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF80FFFFC486D4813FE
-B56C4813FFA26C496C13FE6C496C13FC302C7FAB33>110 D<EB01FE90380FFFC0013F13
-F0497F90B57E488048EB03FF2607FC0013804848EB7FC049133F4848EB1FE049130F4848
-EB07F0A2007F15F890C71203A300FEEC01FCAA6C14036C15F8A26D1307003F15F06D130F
-A26C6CEB1FE06D133F6C6CEB7FC06C6CEBFF802603FF0313006CEBFFFE6C5C6D5B6D5B01
-0F13C0D901FEC7FC262E7AAC33>I<ED03FE3B7FFF801FFF80B5D8C07F13E002C1B5FC02
-C314F014C76C9038CFFE0F39001FDFF09139FFC007E092388003C092C8FC5C5C5CA25CA2
-5CA35CB2007FB512FEB7FCA46C5C2C2C7DAB33>114 D<90381FFE0F90B5EA8F80000314
-FF120F5A5AEBF007387F800190C7FC00FE147F5A153FA37E007FEC1F0001C090C7FCEA3F
-F8EBFFC06C13FF6C14E0000314F8C680011F13FF01001480020713C0EC007FED1FE0007C
-140F00FEEC07F01503A27EA27F15076D14E06D130F6DEB3FC09038FE01FF90B612801600
-00FD5C00FC14F8D8F83F13E0D8780790C7FC242E79AC33>I<D83FFCEB1FFE486C497E00
-FF5CA2007F80003F800000EC007FB3A75EA25DA26D5B90387F800FDAE03F13FC6DB612FE
-17FF6D806D01FE13FE01039038F83FFC010001C0C7FC302C7FAA33>117
-D E /Fu 15 112 df<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B
-13F85B12015B1203A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127C
-A3127EA4123EA2123FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB07
-80EB03C01301EB00E014701438141C140C166476CA26>40 D<12C07E12707E7E7E120F6C
-7E6C7EA26C7E6C7EA21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0
-A21301A214F8A41300A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80
-A3EB1F00A2131E133E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A1664
-7BCA26>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>46
-D<143014F013011303131F13FFB5FC13E713071200B3B3B0497E497E007FB6FCA3204278
-C131>49 D<14FF010713E0011F13F890387F00FE01FC133FD801F0EB1F804848EB0FC049
-EB07E00007EC03F048481301A290C713F8481400A47FA26D130116F07F6C6CEB03E013FC
-6C6CEB07C09039FF800F806C9038C01F006CEBF03EECF87839007FFEF090383FFFC07F01
-077F6D13F8497F90381E7FFFD97C1F1380496C13C02601E00313E048486C13F000079038
-007FF84848EB3FFC48C7120F003EEC07FE150148140016FF167F48153FA2161FA56C151E
-007C153EA2007E153C003E157C6C15F86DEB01F06C6CEB03E06C6CEB07C0D803F8EB1F80
-C6B4EBFF0090383FFFFC010F13F00101138028447CC131>56 D<14FF010713E0011F13F8
-90387F80FC9038FC007E48487F4848EB1F804848EB0FC0000FEC07E0485AED03F0485A16
-F8007F140190C713FCA25AA216FE1500A516FFA46C5CA36C7E5D121F7F000F5C6C6C1306
-150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF80FE903801FE0090C8FC150116FCA4
-ED03F8A216F0D80F801307486C14E0486C130F16C0ED1F80A249EB3F0049137E001EC75A
-001C495A000F495A3907E01FE06CB51280C649C7FCEB1FF028447CC131>I<121EEA7F80
-A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2B78
-AA1B>I<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA3ED30FFA203707FED607FA203E07F
-EDC03FA2020180ED801FA2DA03007F160FA20206801607A24A6D7EA34A6D7EA34A6D7EA2
-0270810260147FA202E08191B7FCA249820280C7121FA249C87F170FA20106821707A249
-6F7EA3496F7EA3496F7EA201788313F8486C83D80FFF03037FB500E0027FEBFFC0A34247
-7DC649>65 D<B6D8C003B6FCA3000101E0C70007138026007F80913801FE00B3A991B7FC
-A30280C71201B3AC2601FFE0913807FF80B6D8C003B6FCA340447CC349>72
-D<49B41303010FEBE007013F13F89039FE00FE0FD801F8131FD807E0EB079F49EB03DF48
-486DB4FC48C8FC4881003E81127E82127C00FC81A282A37E82A27EA26C6C91C7FC7F7FEA
-3FF813FE381FFFE06C13FE6CEBFFE06C14FC6C14FF6C15C0013F14F0010F80010180D900
-1F7F14019138001FFF03031380816F13C0167F163F161F17E000C0150FA31607A37EA36C
-16C0160F7E17806C151F6C16006C5D6D147ED8FBC05CD8F9F0495AD8F07C495A90393FC0
-0FE0D8E00FB51280010149C7FC39C0003FF02B487BC536>83 D<EC7F80903803FFF09038
-0FC07C90383F000F01FCEB03804848EB01C00003140F4848EB1FE049133F120F485AA248
-5AED1FC0007FEC070092C7FCA290C9FC5AAB7E7FA2123F16307F001F15706C6C146016E0
-6C6C14C06C6C13010001EC03806C6CEB0700013F131E90381FC078903807FFF001001380
-242E7DAC2B>99 D<167FED3FFFA315018182B3EC7F80903803FFF090380FC07C90383F00
-0E017E1307496D5AD803F87F48487F5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2
-123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F011C13FE90
-380FC0F8903803FFE09026007F0013002F467DC436>I<EB01FE903807FFC090381F03F0
-90387E00FC49137E48487F485A4848EB1F80000F15C049130F121F484814E01507A2007F
-15F090C7FCA25AA390B6FCA290C9FCA67EA27FA2123F16306C7E1670000F15606D14E06C
-6C14C0000314016C6CEB03806C6CEB0700013E131E90381F80F8903803FFE0010090C7FC
-242E7DAC2B>I<EA01FC12FFA3120712031201B3B3B3A5487EB512F8A315457DC41C>108
-D<EC7F80903803FFF090380FC0FC90383E001F496D7E496D7E48486D7E48486D7E48486D
-7E000F81A24848147E003F157FA290C87E481680A44816C0AA6C1680A26D147F003F1600
-A2001F157E6D14FE000F5D6D130100075D6C6C495A6C6C495A6C6C495A013E49C7FC9038
-1FC0FE903807FFF89038007F802A2E7DAC31>111 D E /Fv 25 121
-df<EE3FF0923803FFFE031F6D7E92397FC01FC0913A01FE0003E0DA07F8EB00F04A4814
-784A48804A48EB01FC4A48EB07FE4AC7FC4948140F13035C13075C715A010F6F5A4AEC00
-E095C8FCB3EF03FEB9FCA426000FF0C7120F1703A21701B3B3AD496C4A7E496C4A7F003F
-B5D8FC07B61280A441657EE448>12 D<B712F0A7240780A12B>45
-D<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F00C7FCB3B3A2120FEA3FC0EA7FE0EA
-FFF0A6EA7FE0EA3FC0EA0F000C3E74BD24>58 D<170FA34D7EA24D7EA34D7EA34D7EA34C
-7F17DFA29338039FFC178FA29338070FFE1707040F7FEE0E03A2041E80EE1C01A2043C80
-EE3800A24C80187FA24C80183FA24B4880181F0303814C130FA203078193C71207A24B81
-030E80A24B8284A24B8284A24B82197F03F0824B153FA20201834B151FA202038392B8FC
-A24A83A292C91207020E8385A24A8485023C84023882A20278840270177FA202F0844A17
-3FA24948841A1FA24948841A0FA249CB7F1A074985865B496C85497E48486C4D7F000F01
-F8051F13F0B60407B612F0A45C657DE463>65 D<B712C0A4C66CEB8000D91FFEC7FC6D5A
-B3B3B3B3AE497E90387FFF80B712C0A422627AE12F>73 D<933801FFE0043F13FF4BB612
-E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A48C8EA3FE0DA03FCED0FF0DA0F
-F0ED03FC4A486F7E4A486F7E4A48707E4ACA6C7E4948717E4948717E4948717E4948717E
-4948717E013F854A83017F864948727EA24890CC6C7EA24848737EA24848737EA2000F87
-491907001F87A34848737EA4007F1C80A24985A400FF1CC0AF6C6C4F1380A5003F1C006D
-61A3001F63A26D190F000F63A26C6C4F5AA36C6C4F5AA26C6D4E5A6C636E18FF017F626D
-6C4D90C7FC6E5F011F616D6C4D5A6D6C4D5A0103616E171F6D6C4D5A6D6D4C5ADA3FC04C
-C8FCDA1FF0ED03FE6E6C4B5A6E6C4B5ADA01FFED3FE09126007FC0ECFF80DB1FF0D903FE
-C9FCDB07FFEB3FF8030190B512E0DB003F91CAFC040113E05A667AE367>79
-D<933801FFE0043F13FF4BB612E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A
-48C8EA3FE0DA03FCED0FF0DA0FF8ED07FCDA1FE0ED01FE4A486F7E4A48707E4ACA6C7E49
-48717E4948717E4948717E010F854948717E4948717EA24948717F01FF864A187F4890CC
-6C7EA2488749191F00078749190F000F87A2001F87491907A2003F87A24985A2007F1C80
-A44985A200FF1CC0AF007F1C806D61A4003F1C00A36D61001F63A36C6C4F5AA20007636D
-191FA26C6C4F5AA26C636C6DDA3F804A5AEFFFE06D6C010301F84A5A6D6C902607C07C49
-90C7FC93380F001E6D6C011E6D495A6D6C6F495A0107021CD903805B6D6C013C6D6C485A
-6E0138151F6D6C0300495A6D01806F485ADA3FC04CC8FCDA1FE0ED71FE91260FF83CEC77
-FC912607FC1CEC7FF8912601FF1EEC3FE09126007FDEECFF80DB1FFFD903FEC9FC030790
-38C03FF8030190B56C1560DB003F143C0401EBE01C93C8121EA21DE0191FA3736C13011D
-C0741303A274130774130F736CEB1F8074133F9738FF01FF7390B51200A264856485745B
-745B745B08071380E001FEC7FC5B807AE367>81 D<EC3FF0903803FFFE010F6D7E90393F
-C03FE090397E0007F801F86D7ED801E06D7E48486D7E48486E7E48C86C7E7F01F06E7E48
-7E6D6E7EA3707EA36C5AEA03E0C9FCA6167FED7FFF020FB5FC91387FF807903801FF8090
-3807FC00EB1FF0EB7FC0495AD803FEC7FC485A120F5B485A485AA2484817E0A312FF5BA2
-160FA3161F6D141B007F153B16736D913971FC01C06C6C14E1001FEC01C1D80FFC903A07
-80FE03806C6C903A0F00FF07002701FF807E6DB4FC27007FFFF86D5A011F01E0EB1FF801
-0190C7EA07E03B417ABF42>97 D<4AB47E020F13F8023F13FE9139FF007F80D903FCEB07
-E0D907F0EB01F0D91FE0EB007849488049488049C87E48485D4915FF00034B138048485C
-A2485AA2485AA2003F6F130049EC007C94C7FC127FA35B12FFAD127F7FA4123F7FA2001F
-EE01C07F000F16036D168012076C6C15076D160000015E6C6C151E6D6C5C6D6C5C6D6C5C
-D90FF8495AD903FCEB07C0903A00FF803F8091263FFFFEC7FC020F13F80201138032417C
-BF3A>99 D<181EEF3FFEEE07FFA4EE000F1703A21701B3AAEDFF80020F13F8023F13FE91
-39FF803F81903A03FC0007C14948EB01E1D91FE0EB00F94948147D4948143D49C8121F48
-48150F491507120348481503491501120F121F5BA2123F5B127FA45B12FFAD127F7FA312
-3FA27F121FA26C6C1503A26C6C150712036D150F6C6C151F0000163D137F6D6CECF9FF6D
-6CEB01F1D90FF0D903C113C06D6CD90F81EBFF80D901FFEB7F019039007FFFFC021F13E0
-0201010091C7FC41657CE349>I<EC03FE91381FFFE091B512F8903901FE03FE903A07F0
-007F8049486D7ED93FC06D7E49C76C7E496E7E4914034848814848140100078249140000
-0F8283485A1880123F49153FA2007F17C0A35BA212FF90B8FCA30180CAFCA9127F7FA312
-3FA27F121FEF01C06C7E17036C6C1680A26C6C15070001EE0F006D150E6C6C151E6D6C5C
-6D6C5C6D6C5CD907F0EB03E0D903FC495A902700FF803FC7FC91383FFFFC020F13F00201
-138032417CBF3A>I<EB03C0EA07FFB5FCA41201EA007FA2133FB3AAEE7FE0923803FFFC
-030F13FFDB3F0013C00378EB1FE04B6D7EDAC1C06D7EDAC3808002C7C7120302CE811701
-14DC14D802F86E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A442647DE349
->104 D<133C13FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA412
-01EA007FA2133FB3B3AC497E497EB612E0A41B5F7DDE23>I<EB03C0EA07FFB5FCA41201
-EA007FA2133FB3B3B3B3AD497E497EB612F0A41C647DE323>108
-D<D903C0D9FFC0EC07FED807FF010301F891381FFFC0B5010F01FE027F13F0923D3F00FF
-8001F807FC0378903B3FC003C001FEDAC1E090261FE00FC77E0001D9C3C090260FF01E6E
-7ED8007F49902607F81C6E7E02C7C75CD93FCE6E6C486E7E02CC166002DC16E002D85E02
-F8DA01FF6F7E4A5EA24A93C8FCA44A5DB3B3496C4A6C4B7E496C4A6D4A7EB6D8F007B6D8
-803FB512FCA4663F7CBE6F>I<D903C0EB7FE0D807FF903803FFFCB5010F13FFDB3F0013
-C00378EB1FE04B6D7E0001D9C1C06D7E27007FC3808002C7C71203D93FCE81170114DC14
-D802F86E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A4423F7DBE49>I<ED
-FF80020F13F8023F13FE9139FF007F80D903FCEB1FE0D907F0EB07F0D90FC0EB01F8D93F
-80EB00FE49C8127F017E81496F7E48486F7E00038349150700078348486F7EA2001F8349
-1501A2003F83A348486F7EA400FF1880AC007F1800A26D5DA2003F5FA36C6C4B5AA36C6C
-4B5A00075FA26C6C4B5A6C6C4B5AA26C6C4B5A017F4BC7FC6D6C14FE6D6C495AD90FF0EB
-07F8D903FCEB1FE0D900FFEB7F806EB5C8FC020F13F8020113C039417CBF42>I<D903C0
-EB7FC0D807FF903807FFFCB5011F13FFDB7F0013C003F8EB1FF0DAC3E0EB07F80001D9C7
-806D7E26007FCFC76C7E02DE6E7ED93FFC6F7E4A6F7E4A82181F4A82727E5C727EA2727E
-A3727EA41A8084AC4E1300A54E5AA2611807A24E5A6E5E181F6E4B5A6E5E187F6E4B5A02
-DE4A90C7FC02CF4A5ADAC780495ADAC3C0EB0FF0DAC1F0EB3FE0913AC07E01FF806FB448
-C8FC030F13F80300138093CAFCB3A3497E497EB612F0A4415B7DBE49>I<9039078003F8
-D807FFEB0FFFB5013F13C092387C0FE0913881F01F9238E03FF00001EB838039007F8700
-148FEB3F8E029CEB1FE0EE0FC00298EB030002B890C7FCA214B014F0A25CA55CB3B0497E
-EBFFF8B612FCA42C3F7CBE33>114 D<9139FFE00180010FEBFC03017FEBFF073A01FF00
-1FCFD803F8EB03EFD807E0EB01FF48487F4848147F48C8123F003E151F007E150F127CA2
-00FC1507A316037EA27E7F6C7E6D91C7FC13F8EA3FFE381FFFF06CEBFF806C14F86C14FF
-6C15C06C6C14F0011F80010714FED9007F7F02031480DA003F13C01503030013E0167F00
-E0ED1FF0160F17F86C15071603A36C1501A37EA26C16F016037E17E06D14076DEC0FC06D
-1580D8FDF0141FD8F8F8EC7F00013E14FC3AF01FC00FF80107B512E0D8E001148027C000
-3FF8C7FC2D417DBF34>I<1438A71478A414F8A31301A31303A21307130F131FA2137F13
-FF1203000F90B6FCB8FCA3260007F8C8FCB3AE17E0AE6D6CEB01C0A316036D6C14801607
-6D6C14006E6C5A91383FC01E91381FF07C6EB45A020313E09138007F802B597FD733>I<
-D903C0150FD807FFED1FFFB50203B5FCA40001ED0007D8007F1501A2013F81B3B25FA35F
-A35F011F15066E140E5F130F6E4A7F01075D6D6C494813E0D901FE4948EBFFC0903A00FF
-C01F8091393FFFFE00020F13F8020001C0EC800042407DBE49>I<B66C49B512E0A40001
-01F8C8387FFE0026007FE0ED1FF819E0013F705A61131F6E93C7FC130F180E6E151E0107
-161C8001035EA26E157801011670806D5EA26F1301027F5DA26E6C495AA26F1307021F92
-C8FCA26E6C130EA26F131E0207141CA26F133C020314388102015CA26F13F06E5C168092
-387F81C0A216C3033F5B16E3DB1FE7C9FCA216FF6F5AA26F5AA36F5AA26F5AA36F5A433F
-7FBD46>I<B6D8801FB500E090B512F8A4000301F0C7D87FFCC7001F1380C601C0DA3FF0
-913807FE00051F6F5A017F030F6F5A64133F05075E6E81011F030F5EA26E6F1403010F03
-1F5E171D6E6F14070107033D93C7FC17386E6F5C01030378150EEF707F6E70131E010103
-F0151CEFE03F6E70133C6D02011638EFC01F03806F1378027F01031670EF800F03C06F13
-F0023F01075EEF000703E0EDF801021F495E040E130303F0EDFC03020F011E5E041C1301
-03F8EDFE070207013C93C8FC0438130003FC6F5A02030178150E0470147F03FE169E0201
-01F0159C4C143F03FF16FC6E5F4C141FA2037F5E4C140FA2033F5E93C81207A26F5E031E
-1503030E5E5D3F7FBD60>I<007FB500C0010FB512E0A4C691C70003EBFC00D93FFE6E13
-E0D90FFC16807148C7FC01075E6D6C4A5A6D6C5D6D6D495A606E6C495A6E6C49C8FC6E6C
-130E171E6E6C5B6E6C5B6E6C5B5F913801FF016EEB83C092387FC780033F90C9FC16EFED
-1FFE6F5A6F5A826F7E6F7E5D834B7F92380F3FE0ED1E1F033C7F9238380FF892387807FC
-EDF003DA01E07F4A486C7E707F4A486D7E4AC7FC021E6E7E021C6E7E023C6E7E5C4A6E7E
-01016F7E49486E7E1307010F6F7F013F83D9FFF04A7F00076D4A13FCB56C020FEBFFF8A4
-453E80BD46>I E end
-TeXDict begin
-
-1 0 bop 249 763 a Fv(Quaternions:)60 b(An)44 b(In)l(tro)t(duction)g
-(with)g(Octa)l(v)l(e)g(m-\014le)g(examples)1071 1016
-y Fu(A.)32 b(S.)h(Ho)s(del)f Ft(a.s.hodel@eng.auburn.edu)1462
-1219 y Fs(R)q(ev)t(ision)d Fu(:)f(1)p Fs(:)p Fu(1)k(\(c\))g(1998)1537
-1568 y Fr(Ac)m(kno)m(wledgemen)m(t)0 1781 y Fq(The)g(author)g
-(gratefully)f(thanks)h(the)h(Fligh)m(t)f(Con)m(trols)g(and)f(Dynamics)h
-(Branc)m(h)h(at)g(Marshall)e(Space)h(Fligh)m(t)0 1894
-y(Cen)m(ter)h(for)f(their)g(useful)f(discussions)f(that)j(led)f(to)h
-(this)f(do)s(cumen)m(t)g(and)g(m-\014le)g(suite.)47 b(Citations)32
-b(are)h(giv)m(en)0 2007 y(where)28 b(they)g(w)m(ere)h(a)m(v)-5
-b(ailable)28 b(to)h(me.)40 b(I)28 b(w)m(elcome)h(an)m(y)g(suggestions)f
-(for)g(additional)e(reference)j(material)f(to)h(b)s(e)0
-2120 y(placed)h(in)f(the)h(bibliograph)m(y)-8 b(.)0 2406
-y Fp(Con)l(ten)l(ts)0 2610 y Fr(1)84 b(Quaternions)3154
-b(2)136 2723 y Fq(1.1)94 b(De\014nition)61 b Fo(:)46
-b(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h
-(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)
-h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2836 y(1.2)94
-b(Multiplication)28 b(of)i(quaternions)72 b Fo(:)46 b(:)g(:)f(:)h(:)g
-(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)
-g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2949 y(1.3)94
-b(Quaternions)29 b(as)i(rotations)39 b Fo(:)46 b(:)g(:)f(:)h(:)g(:)f(:)
-h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h
-(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(3)136
-3061 y(1.4)94 b(Application)29 b(of)h(quaternions)g(in)f(co)s(ordinate)
-h(frame)g(transformations)53 b Fo(:)45 b(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)
-h(:)g(:)f(:)131 b Fq(6)345 3174 y(1.4.1)106 b(Euler)29
-b(angles)i Fo(:)46 b(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h(:)
-g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h
-(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(6)345 3287 y(1.4.2)106
-b(Co)s(ordinate)30 b(transformation)g(matrices)g(and)g(quaternions)46
-b Fo(:)g(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131
-b Fq(6)136 3400 y(1.5)94 b(Time)30 b(deriv)-5 b(ativ)m(e)30
-b(of)g(a)h(quaternion)42 b Fo(:)k(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h
-(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)
-g(:)f(:)85 b Fq(12)1927 5656 y(1)p eop
-2 1 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(2)0 399
-y Fp(1)135 b(Quaternions)0 601 y Fq(A)32 b(con)m(v)m(enien)m(t)g(w)m(a)
-m(y)h(to)f(represen)m(t)f(the)h(relativ)m(e)g(orien)m(tation)f(of)h(t)m
-(w)m(o)g(frames)g(is)e(through)h(the)h(use)f(of)g(quater-)0
-714 y(nions.)0 958 y Fm(1.1)112 b(De\014nition)0 1129
-y Fr(De\014nition)35 b(1.1)46 b Fq(A)31 b(quaternion)e(is)g(a)i(4-v)m
-(ector)i(de\014ned)c(b)m(y)1268 1334 y Fo(q)f Fq(=)d
-Fo(a)1474 1313 y Fq(^)1481 1334 y Fo(i)c Fq(+)f Fo(b)1662
-1313 y Fq(^)1663 1334 y Fo(j)26 b Fq(+)19 b Fo(c)1857
-1310 y Fq(^)1855 1334 y Fo(k)24 b Fq(+)c Fo(d;)46 b(a;)15
-b(b;)g(c;)g(d)27 b Fl(2)e Fq(I)-9 b(R)0 1538 y(where)256
-1517 y(^)263 1538 y Fo(i)p Fq(,)348 1517 y(^)350 1538
-y Fo(j)5 b Fq(,)450 1514 y(^)448 1538 y Fo(k)33 b Fq(are)e(quan)m
-(tities)f(satisfying)1498 1517 y(^)1505 1538 y Fo(i)1536
-1505 y Fk(2)1601 1538 y Fq(=)1696 1517 y(^)1697 1538
-y Fo(j)1739 1505 y Fk(2)1804 1538 y Fq(=)1903 1514 y(^)1900
-1538 y Fo(k)1950 1505 y Fk(2)2015 1538 y Fq(=)25 b Fl(\000)p
-Fq(1)31 b(and)1476 1721 y(^)1483 1742 y Fo(i)1513 1721
-y Fq(^)1515 1742 y Fo(j)f Fq(=)1681 1718 y(^)1678 1742
-y Fo(k)1846 1721 y Fq(^)1847 1742 y Fo(j)1892 1718 y
-Fq(^)1890 1742 y Fo(k)e Fq(=)2054 1721 y(^)2061 1742
-y Fo(i)2213 1718 y Fq(^)2211 1742 y Fo(k)2254 1721 y
-Fq(^)2261 1742 y Fo(i)e Fq(=)2412 1721 y(^)2413 1742
-y Fo(j)1372 1859 y Fq(^)1373 1880 y Fo(j)6 b Fq(\0201)25
-b(=)g Fl(\000)1681 1856 y Fq(^)1679 1880 y Fo(k)1814
-1856 y Fq(^)1812 1880 y Fo(k)1860 1859 y Fq(^)1862 1880
-y Fo(j)31 b Fq(=)25 b Fl(\000)2090 1859 y Fq(^)2097 1880
-y Fo(i)2204 1859 y Fq(^)2211 1880 y Fo(i)2244 1856 y
-Fq(^)2242 1880 y Fo(k)k Fq(=)24 b Fl(\000)2483 1859 y
-Fq(^)2484 1880 y Fo(j)0 2092 y Fr(Remark)34 b(1.1)46
-b Fq(Notice)35 b(that)1058 2072 y(^)1065 2092 y Fo(i)p
-Fq(,)1154 2072 y(^)1156 2092 y Fo(j)5 b Fq(,)35 b(and)1440
-2068 y(^)1438 2092 y Fo(k)h Fq(are)e(scalar)g(quan)m(tities)e(equal)h
-(to)2718 2021 y Fl(p)p 2793 2021 117 4 v 2793 2092 a(\000)p
-Fq(1)q(;)i(ho)m(w)m(ev)m(er,)3341 2072 y(^)3348 2092
-y Fo(i)p Fq(,)3437 2072 y(^)3438 2092 y Fo(j)6 b Fq(,)35
-b(and)3723 2068 y(^)3720 2092 y Fo(k)i Fq(do)0 2205 y(not)g(comm)m(ute)
-h(under)d(m)m(ultiplication.)56 b(Therefore)36 b(quaternions)g(do)g
-(not)h(comm)m(ute)h(under)d(m)m(ultiplication)0 2318
-y(\()p Fo(q)76 2332 y Fk(1)115 2318 y Fo(q)156 2332 y
-Fk(2)221 2318 y Fl(6)p Fq(=)25 b Fo(q)358 2332 y Fk(2)397
-2318 y Fo(q)438 2332 y Fk(1)497 2318 y Fq(in)20 b(general\).)38
-b(This)19 b(is)h(consisten)m(t)h(with)f(the)h(in)m(terpretation)f(of)h
-(quaternions)f(as)h(spatial)f(rotations)0 2431 y(\(to)31
-b(b)s(e)f(discussed)f(in)g Fl(x)p Fq(1.4.2.)0 2644 y
-Fr(M-\014le)46 b Fj(quaternion)57 b Fq(Create/extract)34
-b(quaternion)29 b(information:)227 2869 y Fj(quaternion:)45
-b(construct)g(or)i(extract)f(a)i(quaternion)227 2982
-y(w)g(=)f(a*i)g(+)h(b*j)e(+)i(c*k)f(+)g(d)h(from)e(given)h(data.)227
-3207 y(calling)f(formats:)227 3320 y([a,b,c,d])141 b(=)47
-b(quaternion\(w\))570 b(-or-)227 3433 y([vv,theta])45
-b(=)j(quaternion\(w\))227 3546 y(w)525 b(=)47 b(quaternion\(a,b,c,d\))
-227 3659 y(w)525 b(=)47 b(quaternion\(vv,theta\))227
-3884 y Fq(\()p Fj(vv,theta)29 b Fq(format)h(to)i(b)s(e)d(explained)g
-(later\))0 4128 y Fm(1.2)112 b(Multiplication)34 b(of)k(quaternions)0
-4299 y Fq(F)-8 b(rom)31 b(De\014nition)e(1.1,)j(w)m(e)e(ha)m(v)m(e)533
-4503 y Fo(q)574 4517 y Fk(1)613 4503 y Fo(q)654 4517
-y Fk(2)776 4503 y Fq(=)83 b(\()p Fo(a)1013 4517 y Fk(1)1046
-4483 y Fq(^)1053 4503 y Fo(i)20 b Fq(+)g Fo(b)1234 4517
-y Fk(1)1272 4483 y Fq(^)1274 4503 y Fo(j)26 b Fq(+)20
-b Fo(c)1467 4517 y Fk(1)1509 4479 y Fq(^)1506 4503 y
-Fo(k)k Fq(+)c Fo(d)1715 4517 y Fk(1)1754 4503 y Fq(\)\()p
-Fo(a)1872 4517 y Fk(2)1905 4483 y Fq(^)1913 4503 y Fo(i)g
-Fq(+)g Fo(b)2094 4517 y Fk(2)2132 4483 y Fq(^)2133 4503
-y Fo(j)26 b Fq(+)20 b Fo(c)2326 4517 y Fk(2)2368 4479
-y Fq(^)2366 4503 y Fo(k)j Fq(+)d Fo(d)2574 4517 y Fk(2)2614
-4503 y Fq(\))776 4641 y(=)83 b(\()p Fo(a)1013 4655 y
-Fk(1)1053 4641 y Fo(d)1100 4655 y Fk(2)1160 4641 y Fq(+)20
-b Fo(b)1290 4655 y Fk(1)1329 4641 y Fo(c)1368 4655 y
-Fk(2)1428 4641 y Fl(\000)g Fo(c)1558 4655 y Fk(1)1598
-4641 y Fo(b)1637 4655 y Fk(2)1697 4641 y Fq(+)f Fo(d)1834
-4655 y Fk(1)1874 4641 y Fo(a)1922 4655 y Fk(2)1962 4641
-y Fq(\))p Fo(i)i Fq(+)e(\()p Fo(c)2213 4655 y Fk(1)2254
-4641 y Fo(a)2302 4655 y Fk(2)2361 4641 y Fl(\000)h Fo(a)2500
-4655 y Fk(1)2540 4641 y Fo(c)2579 4655 y Fk(2)2639 4641
-y Fq(+)g Fo(b)2769 4655 y Fk(1)2808 4641 y Fo(d)2855
-4655 y Fk(2)2915 4641 y Fq(+)g Fo(d)3053 4655 y Fk(1)3093
-4641 y Fo(b)3132 4655 y Fk(2)3171 4641 y Fq(\))3205 4620
-y(^)3206 4641 y Fo(j)930 4779 y Fq(+\()p Fo(a)1084 4793
-y Fk(1)1124 4779 y Fo(b)1163 4793 y Fk(2)1222 4779 y
-Fl(\000)g Fo(b)1352 4793 y Fk(1)1392 4779 y Fo(a)1440
-4793 y Fk(2)1499 4779 y Fq(+)g Fo(c)1629 4793 y Fk(1)1669
-4779 y Fo(d)1716 4793 y Fk(2)1776 4779 y Fq(+)g Fo(d)1914
-4793 y Fk(1)1954 4779 y Fo(c)1993 4793 y Fk(2)2032 4779
-y Fq(\))2069 4755 y(^)2067 4779 y Fo(k)k Fq(+)c(\()p
-Fl(\000)p Fo(a)2383 4793 y Fk(1)2423 4779 y Fo(a)2471
-4793 y Fk(2)2530 4779 y Fl(\000)g Fo(b)2660 4793 y Fk(1)2700
-4779 y Fo(b)2739 4793 y Fk(2)2798 4779 y Fl(\000)g Fo(c)2928
-4793 y Fk(1)2968 4779 y Fo(c)3007 4793 y Fk(2)3067 4779
-y Fq(+)g Fo(d)3205 4793 y Fk(1)3245 4779 y Fo(d)3292
-4793 y Fk(2)3331 4779 y Fq(\))347 b(\(1.1\))21 5018 y(De\014ne)21
-b Fo(v)337 5032 y Fk(1)401 5018 y Fq(=)497 4924 y Fi(h)578
-5018 y Fo(a)626 5032 y Fk(1)749 5018 y Fo(b)788 5032
-y Fk(1)910 5018 y Fo(c)949 5032 y Fk(1)1030 4924 y Fi(i)1070
-4947 y Fh(T)1145 5018 y Fq(and)g Fo(v)1357 5032 y Fk(2)1421
-5018 y Fq(=)1517 4924 y Fi(h)1598 5018 y Fo(a)1646 5032
-y Fk(2)1769 5018 y Fo(b)1808 5032 y Fk(2)1930 5018 y
-Fo(c)1969 5032 y Fk(2)2050 4924 y Fi(i)2089 4947 y Fh(T)2145
-5018 y Fq(.)37 b(Then)20 b([Mul)o(])h(equation)g(\(1.1\))h(ma)m(y)g(b)s
-(e)e(rewritten)0 5131 y(as)1017 5244 y Fo(q)1058 5258
-y Fk(1)1097 5244 y Fo(q)1138 5258 y Fk(2)1202 5244 y
-Fq(=)25 b Fo(d)1345 5258 y Fk(1)1385 5244 y Fo(d)1432
-5258 y Fk(2)1492 5244 y Fq(+)20 b Fo(d)1630 5258 y Fk(1)1669
-5244 y Fo(v)1713 5258 y Fk(2)1773 5244 y Fq(+)g Fo(d)1911
-5258 y Fk(2)1951 5244 y Fo(v)1995 5258 y Fk(1)2054 5244
-y Fl(\000)g(h)q Fo(v)2225 5258 y Fk(1)2264 5244 y Fo(;)15
-b(v)2348 5258 y Fk(2)2388 5244 y Fl(i)21 b Fq(+)f(\()p
-Fo(v)2614 5258 y Fk(1)2674 5244 y Fl(\002)f Fo(v)2808
-5258 y Fk(2)2848 5244 y Fq(\))830 b(\(1.2\))p eop
-3 2 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(3)0 399
-y(where)30 b(the)g(cross)h(pro)s(duct)1385 622 y(\()p
-Fo(v)1464 636 y Fk(1)1524 622 y Fl(\002)20 b Fo(v)1659
-636 y Fk(2)1699 622 y Fq(\))1765 572 y Fk(\001)1759 622
-y Fq(=)1855 424 y Fi(\014)1855 474 y(\014)1855 524 y(\014)1855
-574 y(\014)1855 624 y(\014)1855 674 y(\014)1855 723 y(\014)1883
-428 y(2)1883 574 y(6)1883 627 y(4)2001 492 y Fq(^)2008
-513 y Fo(i)2167 492 y Fq(^)2168 513 y Fo(j)2328 489 y
-Fq(^)2326 513 y Fo(k)1980 625 y(a)2028 639 y Fk(1)2150
-625 y Fo(b)2189 639 y Fk(1)2312 625 y Fo(c)2351 639 y
-Fk(1)1980 738 y Fo(a)2028 752 y Fk(2)2150 738 y Fo(b)2189
-752 y Fk(2)2312 738 y Fo(c)2351 752 y Fk(2)2432 428 y
-Fi(3)2432 574 y(7)2432 627 y(5)2487 424 y(\014)2487 474
-y(\014)2487 524 y(\014)2487 574 y(\014)2487 624 y(\014)2487
-674 y(\014)2487 723 y(\014)0 881 y Fq(This)29 b(v)m(ector-based)j(in)m
-(terpretation)d(will)f(b)s(ecome)j(more)f(imp)s(ortan)m(t)g(in)f
-Fl(x)p Fq(1.4.2.)0 1040 y Fr(M-\014le)46 b Fj(qmult)227
-1231 y(function)g(c)h(=)h(qmult\(a,b\))227 1344 y(multiply)e(two)h
-(quaternions)0 1534 y Fr(De\014nition)35 b(1.2)46 b Fq(The)26
-b Fg(c)-5 b(onjugate)26 b Fq(of)g(a)h(quaternion)e Fo(q)j
-Fq(=)d Fo(a)2077 1514 y Fq(^)2084 1534 y Fo(i)12 b Fq(+)f
-Fo(b)2247 1514 y Fq(^)2248 1534 y Fo(j)17 b Fq(+)11 b
-Fo(c)2425 1510 y Fq(^)2423 1534 y Fo(k)k Fq(+)c Fo(d)26
-b Fq(is)f Fo(q)2771 1501 y Ff(\003)2836 1534 y Fq(=)g
-Fl(\000)p Fo(a)3044 1514 y Fq(^)3051 1534 y Fo(i)11 b
-Fl(\000)g Fo(b)3213 1514 y Fq(^)3214 1534 y Fo(j)17 b
-Fl(\000)11 b Fo(c)3391 1510 y Fq(^)3389 1534 y Fo(k)k
-Fq(+)c Fo(d)p Fq(.)40 b(Notice)0 1664 y(that)35 b Fo(q)s(q)289
-1631 y Ff(\003)361 1664 y Fq(=)d Fo(q)508 1631 y Ff(\003)547
-1664 y Fo(q)k Fq(=)c Fo(a)775 1631 y Fk(2)837 1664 y
-Fq(+)23 b Fo(b)970 1631 y Fk(2)1033 1664 y Fq(+)f Fo(c)1165
-1631 y Fk(2)1228 1664 y Fq(+)h Fo(d)1369 1631 y Fk(2)1447
-1614 y(\001)1441 1664 y Fq(=)32 b Fl(j)p Fo(q)s Fl(j)1639
-1622 y Fk(2)1678 1664 y Fq(.)54 b(F)-8 b(or)35 b(quaternions)f
-Fo(q)j Fq(with)c Fo(q)s(q)2799 1631 y Ff(\003)2871 1664
-y Fl(6)p Fq(=)f(0)j(w)m(e)g(de\014ne)f(the)h Fg(inverse)0
-1821 y(quaternion)c Fo(q)498 1783 y Ff(\000)p Fk(1)618
-1821 y Fq(=)746 1759 y Fo(q)790 1726 y Ff(\003)p 724
-1799 128 4 v 724 1883 a Fo(q)s(q)812 1857 y Ff(\003)861
-1821 y Fq(.)40 b(Notice)32 b(that)f Fo(q)s(q)1497 1788
-y Ff(\000)p Fk(1)1616 1821 y Fq(=)25 b Fo(q)1756 1788
-y Ff(\000)p Fk(1)1850 1821 y Fo(q)j Fq(=)d(1.)0 2037
-y Fr(M-\014le)46 b Fj(qinv)59 b Fq(Compute)30 b(the)h(in)m(v)m(erse)f
-(of)g(a)h(quaternion)227 2228 y Fj(function)46 b(b)h(=)h(qinv\(a\))227
-2341 y(return)e(the)h(inverse)f(of)h(a)h(quaternion)227
-2454 y(a)g(=)95 b([w,x,y,z])45 b(=)j(w*i)f(+)g(x*j)g(+)g(y*k)g(+)h(z)
-227 2567 y(qmult\(a,qinv\(a\)\))c(=)j(1)h(=)f([0)g(0)h(0)f(1])0
-2757 y Fr(Example)34 b(1.1)46 b Fq(Compute)30 b(and)f(m)m(ultiply)f
-(the)j(in)m(v)m(erse)f(quaternion:)0 2916 y Fj(octave:1>)45
-b(q)j(=)f(quaternion\(1,2,3,4\);)42 b(qi)48 b(=)f(qinv\(q\))0
-3029 y(qi)g(=)h(-0.033333)93 b(-0.066667)g(-0.100000)140
-b(0.133333)0 3142 y(octave:2>)45 b(qmult\(qi,q\))0 3255
-y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3368 y(octave:3>)45 b(qmult\(q,qi\))0
-3481 y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3640 y Fq(In)30 b(b)s(oth)f(cases)j
-(the)e(pro)s(duct)f(is)h(the)g(iden)m(tiy)f(quaternion)h(0)2101
-3619 y(^)2108 3640 y Fo(i)21 b Fq(+)f(0)2295 3619 y(^)2296
-3640 y Fo(j)26 b Fq(+)20 b(0)2497 3616 y(^)2495 3640
-y Fo(k)k Fq(+)19 b(1)26 b(=)f(1.)0 3878 y Fm(1.3)112
-b(Quaternions)38 b(as)g(rotations)0 4062 y Fr(De\014nition)d(1.3)46
-b Fq(A)31 b Fg(unit)h(quaternion)g Fo(q)c Fq(=)d Fo(a)1617
-4041 y Fq(^)1624 4062 y Fo(i)20 b Fq(+)g Fo(b)1804 4041
-y Fq(^)1805 4062 y Fo(j)26 b Fq(+)20 b Fo(c)2000 4038
-y Fq(^)1998 4062 y Fo(k)k Fq(+)19 b Fo(d)31 b Fq(satis\014es)2572
-3964 y Fi(\015)2572 4014 y(\015)2572 4064 y(\015)2618
-3967 y(h)2699 4062 y Fo(a)83 b(b)g(c)g(d)3163 3967 y
-Fi(i)3202 3964 y(\015)3202 4014 y(\015)3202 4064 y(\015)3248
-4118 y Fk(2)3313 4062 y Fq(=)25 b(1.)0 4254 y Fr(Remark)34
-b(1.2)46 b Fq(Unit)40 b(quaternions)f(ma)m(y)h(b)s(e)g(considered)f(as)
-h(represen)m(tations)g(of)h(a)f(rotation)h(of)f Fo(\022)i
-Fq(degrees)0 4367 y(ab)s(out)f(a)g(giv)m(en)g(unit)f(v)m(ector)j
-Fo(v)h Fq(\(see)e(routine)e Fj(quaternion)p Fq(\).)70
-b(The)41 b(transformation)f(is)g(accomplished)g(b)m(y)0
-4496 y(m)m(ultiplying)27 b Fo(v)529 4510 y Fh(r)592 4496
-y Fq(=)e Fo(q)s(v)s(q)823 4463 y Ff(\000)p Fk(1)917 4496
-y Fq(,)31 b(where)f Fo(v)e Fq(=)1404 4402 y Fi(h)1485
-4496 y Fo(x)83 b(y)j(z)h Fq(0)1967 4402 y Fi(i)2006 4496
-y Fq(.)0 4684 y(With)30 b(this)f(in)m(terpretation,)h(unit)f
-(quaternions)g(ma)m(y)i(b)s(e)f(written)f(as)890 4964
-y Fo(q)f Fq(=)1055 4870 y Fi(\020)1105 4964 y Fo(ai)21
-b Fq(+)e Fo(b)1333 4944 y Fq(^)1334 4964 y Fo(j)26 b
-Fq(+)20 b Fo(c)1529 4940 y Fq(^)1527 4964 y Fo(k)1578
-4870 y Fi(\021)1643 4964 y Fq(sin)n(\()p Fo(\022)s(=)p
-Fq(2\))h(+)f(cos)q(\()p Fo(\022)s(=)p Fq(2\))2432 4914
-y Fk(\001)2426 4964 y Fq(=)2522 4771 y Fi(0)2522 4917
-y(B)2522 4970 y(@)2594 4771 y(2)2594 4917 y(6)2594 4970
-y(4)2691 4851 y Fo(a)2696 4964 y(b)2696 5077 y(c)2781
-4771 y Fi(3)2781 4917 y(7)2781 4970 y(5)2851 4964 y Fo(;)15
-b(\022)2937 4771 y Fi(1)2937 4917 y(C)2937 4970 y(A)3713
-4964 y Fq(\(1.3\))0 5279 y(Notice)26 b(that)f(this)f(implies)e(that)
-1137 5185 y Fi(h)1218 5279 y Fo(a)83 b(b)g(c)1552 5185
-y Fi(i)1615 5279 y Fq(is)24 b(also)h(a)g(unit)e(v)m(ector.)41
-b(This)23 b(is)g(consisten)m(t)j(with)d(m)m(ultiplication)0
-5407 y(b)m(y)30 b(the)h(iden)m(tit)m(y)f(quaterion)g
-Fo(q)e Fq(=)d(1,)31 b(since)e(cos)q(\(0\))d(=)f(1)31
-b(and)f(sin)o(\(0\))c(=)f(0.)p eop
-4 3 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s
-(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439
-b Fn(\(c\))32 b(1998)908 b Fq(4)0 399 y Fr(Example)34
-b(1.2)46 b Fq(Unit)33 b(quaternions)g(ma)m(y)h(b)s(e)g(m)m(ultiplied)c
-(to)35 b(obtain)e(a)i(single)e(equiv)-5 b(alen)m(t)33
-b(co)s(ordinate)h(rota-)0 511 y(tion.)47 b(Let)33 b Fo(q)435
-525 y Fk(3)506 511 y Fq(b)s(e)f(a)h(90)800 478 y Ff(\016)872
-511 y Fq(rotation)g(ab)s(out)f(the)h Fo(x)p Fl(\000)p
-Fq(axis.)46 b(F)-8 b(ollo)m(w)33 b(this)e(rotation)i(b)m(y)g
-Fo(q)2982 525 y Fk(2)3021 511 y Fq(,)g(a)g(90)3247 478
-y Ff(\016)3319 511 y Fq(rotation)g(ab)s(out)0 624 y(the)k(\(new\))g
-Fo(y)i Fq(axis.)60 b(Finally)-8 b(,)37 b(follo)m(w)f(this)g(rotation)h
-(b)m(y)f Fo(q)2067 638 y Fk(1)2106 624 y Fq(,)j(a)e(90)2342
-591 y Ff(\016)2419 624 y Fq(rotation)g(ab)s(out)g(the)g(\(newly)f
-(revised\))g Fo(z)0 737 y Fq(axis.)k(Then)30 b Fo(q)e
-Fq(=)d Fo(q)664 751 y Fk(1)703 737 y Fo(q)744 751 y Fk(2)783
-737 y Fo(q)824 751 y Fk(3)893 737 y Fq(is)k(a)i(90)g(degree)g(rotation)
-g(ab)s(out)f(the)h(original)d Fo(y)s Fq(-axis.)0 925
-y Fj(octave:1>)45 b(degrees)h(=)i(pi/180;)0 1038 y(octave:2>)d(q1)i(=)h
-(quaternion\([0,0,1],90*de)o(gree)o(s\);)0 1151 y(octave:3>)d(q2)i(=)h
-(quaternion\([0,1,0],90*de)o(gree)o(s\);)0 1264 y(octave:4>)d(q3)i(=)h
-(quaternion\([1,0,0],90*de)o(gree)o(s\);)0 1377 y(octave:5>)d(q)j(=)f
-(qmult\(q1,qmult\(q2,q3\)\);)0 1489 y(octave:6>)e([vv,th])h(=)i
-(quaternion\(q\))0 1602 y(vv)f(=)h(0)f(1)h(0)0 1715 y(th)f(=)h(1.5708)0
-1828 y(octave:7>)d(th/degrees)0 1941 y(ans)i(=)g(90.000)118
-2154 y Fq(The)26 b(rotation)g(ab)s(out)g(a)h(v)m(ector)h(axis)e(in)m
-(terpretation)f(of)i(quaternions)e(requires)g(care:)39
-b(the)26 b(axis)g(of)h(rotation)0 2267 y(is)40 b(tak)m(en)j(based)e(on)
-h(the)f(co)s(ordinate)g(frame)h(for)f(whic)m(h)f(the)i(quaternion)e(w)m
-(as)i(written.)73 b(F)-8 b(or)42 b(example,)j(a)0 2379
-y(rotation)30 b(around)e(the)i(inertial)d Fo(y)s Fq(-axis)i(follo)m(w)m
-(ed)g(b)m(y)g(a)h(rotation)g(around)e(the)i(inertial)d
-Fo(x)j Fq(axis)e(can)i(b)s(e)f(written)0 2492 y(as)949
-2623 y Fo(q)f Fq(=)d Fo(q)1155 2637 y Fh(x)1199 2623
-y Fo(q)1240 2637 y Fh(y)1306 2623 y Fq(=)1402 2504 y
-Fi(\022)1463 2529 y(h)1544 2623 y Fq(1)83 b(0)h(0)1888
-2529 y Fi(i)1927 2552 y Fh(T)1982 2623 y Fo(;)15 b(\022)2065
-2637 y Fh(x)2109 2504 y Fi(\023)g(\022)2246 2529 y(h)2327
-2623 y Fq(0)83 b(1)h(0)2671 2529 y Fi(i)2710 2552 y Fh(T)2765
-2623 y Fo(;)15 b(\022)2848 2637 y Fh(y)2890 2504 y Fi(\023)0
-2825 y Fq(This)31 b(is)i(inconsisten)m(t)f(with)g(the)h(de\014nition)e
-(of)j(Euler)d(angles,)k(in)c(whic)m(h)h(eac)m(h)j(angle)e(is)f
-(de\014ned)g(b)m(y)h(a)h(frame)0 2938 y(based)41 b(up)s(on)f(the)i
-(previous)e(rotation.)75 b(This)40 b(problem)g(is)h(addressed)f(b)m(y)i
-(co)s(ordinate)f(transformation)g(b)m(y)0 3051 y(quaternions:)0
-3264 y Fr(M-\014le)46 b Fj(qtrans)59 b Fq(T)-8 b(ransform)29
-b(a)i(quaternion)e(in)g(one)i(frame)f(to)h(the)g(co)s(ordinate)f(basis)
-f(of)i(another)f(frame.)275 3489 y Fj(function)46 b(v)h(=)g
-(qtrans\(v,q\))275 3602 y(transform)e(the)i(vector)f(v)i(\(in)f
-(quaternion)e(form\))h(by)h(the)g(quaternion)e(q;)275
-3714 y(v)i(=)h([x)f(y)h(z)f(0],)g(q)g(=)h(transformation)c(quaternion)
-275 3827 y(returns)i(v)h(=)h(q*v/q)0 4052 y Fr(Remark)34
-b(1.3)46 b Fq(Giv)m(en)34 b(a)h(quaternion)e Fo(q)1425
-4067 y Fh(f)1504 4052 y Fq(describing)f(the)j(rotation)f(from)g(an)g
-(inertial)e(frame)i(\()p Fo(x)3463 4066 y Fk(1)3503 4052
-y Fo(;)15 b(y)3588 4066 y Fk(1)3628 4052 y Fo(;)g(z)3710
-4066 y Fk(1)3750 4052 y Fq(\))34 b(to)0 4165 y(second)24
-b(frame)f(\()p Fo(x)622 4179 y Fk(2)662 4165 y Fo(;)15
-b(y)747 4179 y Fk(2)787 4165 y Fo(;)g(z)869 4179 y Fk(2)909
-4165 y Fq(\),)25 b(a)f(quaternion)f Fo(q)1555 4179 y
-Fh(r)1616 4165 y Fq(de\014ned)f(in)h(the)h(second)f(frame)h(ma)m(y)g(b)
-s(e)f(applied)f(b)m(y)h(m)m(ultiplying)0 4278 y Fo(q)41
-4293 y Fh(f)86 4278 y Fo(q)127 4292 y Fh(r)164 4278 y
-Fo(q)205 4293 y Fh(f)250 4245 y Ff(\000)p Fk(1)345 4278
-y Fq(:)111 4466 y(1.)46 b(T)-8 b(ransform)30 b(\(rotate\))i(frame)f(2)f
-(\()p Fo(x)1424 4480 y Fk(2)1464 4466 y Fo(;)15 b(y)1549
-4480 y Fk(2)1589 4466 y Fo(;)g(z)1671 4480 y Fk(2)1711
-4466 y Fq(\))30 b(bac)m(k)h(to)h(the)e(inertial)e(frame.)111
-4653 y(2.)46 b(P)m(erform)31 b(the)f(rotation)h Fo(q)1124
-4667 y Fh(r)1161 4653 y Fq(.)111 4841 y(3.)46 b(Rotate)33
-b(bac)m(k)e(to)g(the)f(second)h(frame)f(via)g Fo(q)1745
-4856 y Fh(f)1790 4841 y Fq(.)0 5074 y(That)40 b(is,)h(if)e
-Fo(q)499 5088 y Fh(r)577 5074 y Fq(=)689 4955 y Fi(\022)750
-4980 y(h)831 5074 y Fq(0)83 b(1)h(0)1175 4980 y Fi(i)1214
-5003 y Fh(T)1269 5074 y Fo(;)15 b(\022)1352 5088 y Fh(r)1390
-4955 y Fi(\023)1491 5074 y Fq(is)38 b(a)i(rotation)h(ab)s(out)e(the)h
-Fo(y)j Fq(axis)c(in)f(the)i(frame)g(\()p Fo(x)3385 5088
-y Fk(2)3425 5074 y Fo(;)15 b(y)3510 5088 y Fk(2)3549
-5074 y Fo(;)g(z)3631 5088 y Fk(2)3671 5074 y Fq(\),)43
-b(the)0 5235 y(quaternion)29 b Fo(q)498 5250 y Fh(f)543
-5235 y Fo(q)584 5249 y Fh(r)622 5235 y Fo(q)663 5250
-y Fh(f)708 5202 y Ff(\000)p Fk(1)832 5235 y Fq(is)h(the)g(equiv)-5
-b(alen)m(t)30 b(rotation)h(in)e(the)i(frame)f(\()p Fo(x)2466
-5249 y Fk(1)2506 5235 y Fo(;)15 b(y)2591 5249 y Fk(1)2630
-5235 y Fo(;)g(z)2712 5249 y Fk(1)2752 5235 y Fq(\).)p
-eop
-5 4 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(5)0 399
-y Fr(Example)34 b(1.3)46 b(Quaternion)27 b(algebra)d
-Fl(\000)p Fq(90)1672 366 y Ff(\016)1736 399 y Fq(rotation)h(ab)s(out)e
-Fo(x)h Fq(follo)m(w)m(ed)g(b)m(y)g(90)2963 366 y Ff(\016)3028
-399 y Fq(rotation)g(ab)s(out)g(revised)0 522 y Fo(y)33
-b Fq(and)d Fo(z)k Fq(axes)d(is)f(equiv)-5 b(alen)m(t)30
-b(to)h(a)g(rotation)f(ab)s(out)g(the)2007 428 y Fi(h)2088
-522 y Fq(1)83 b(1)h(1)2432 428 y Fi(i)2501 522 y Fq(v)m(ector.)0
-711 y Fj(qx)95 b(=)47 b(quaternion\([1,0,0],-pi/2\);)184
-b(#)48 b(elementary)d(rotations)0 824 y(qy1)i(=)g
-(quaternion\([0,1,0],pi/2\);)0 936 y(qz2)g(=)g
-(quaternion\([0,0,1],pi/2\);)0 1162 y(qyi)g(=)g(qtrans\(qy1,qx\);)712
-b(#)48 b(transform)d(back)i(to)g(original)e(coordinates)0
-1275 y(qzi)i(=)g(qtrans\(qtrans\(qz2,qy1\),qx\))o(;)0
-1388 y(qzi2=)f(qtrans\(qz2,qyi\);)664 b(#)48 b(NOT)f(THE)f(SAME)h(as)g
-(qzi!)0 1501 y(qzi3=)f(qtrans\(qz2,qmult\(qyi,qx\)\);)184
-b(#)48 b(This)e(matches)94 b(qzi)0 1727 y([qyiv,thyi])45
-b(=)i(quaternion\(qyi\))330 b(#)48 b(check)e(vectors,)g(angles)0
-1840 y([qziv,thzi])f(=)i(quaternion\(qzi\))0 1953 y([qzi2v,thz2i])d(=)k
-(quaternion\(qzi2\))0 2066 y([qzi3v,thz3i])c(=)k(quaternion\(qzi3\))0
-2291 y(qtot)f(=)g(qmult\(qzi,qmult\(qyi,qx\)\))0 2404
-y(qtotchk)f(=)h(qmult\(qx,)f(qmult\(qy1,qz2\)\))118 2582
-y Fq(Output:)0 2741 y Fj(qyiv)h(=)g(0.00000)141 b(0.00000)94
-b(-1.00000)0 2854 y(thyi)47 b(=)g(1.5708)0 3013 y Fo(q)41
-3027 y Fh(y)76 3036 y Fe(1)145 3013 y Fq(in)29 b(the)h
-Fo(q)448 3027 y Fh(x)522 3013 y Fq(frame)g(is)g(equiv)-5
-b(alen)m(t)29 b(to)j(a)e(rotation)h(ab)s(out)f(the)h(original)d
-Fl(\000)p Fo(z)35 b Fq(axis.)0 3172 y Fj(qziv)47 b(=)g(1.0000e+00)141
-b(1.5701e-16)f(3.4863e-32)0 3285 y(thzi)47 b(=)g(1.5708)0
-3398 y(qzi2v)f(=)i(1.5701e-16)140 b(-1.5701e-16)188 b(1.0000e+00)0
-3511 y(thz2i)46 b(=)i(1.5708)0 3624 y(qzi3v)e(=)i(1.0000e+00)140
-b(1.9626e-16)h(3.9252e-17)0 3737 y(thz3i)46 b(=)i(1.5708)0
-3896 y Fq(One)29 b(ma)m(y)h(b)s(e)f(tempted)g(to)h(view)f
-Fo(q)1227 3910 y Fh(y)1262 3920 y Fd(i)1321 3896 y Fq(as)h(the)g
-(rotation)f(to)i(the)e(basis)f(frame)i(of)f Fo(q)2821
-3910 y Fh(z)2854 3919 y Fe(2)2892 3896 y Fq(,)h(but)f(this)f(is)h
-(incorrect.)40 b Fo(q)3835 3910 y Fh(y)3870 3920 y Fd(i)0
-4009 y Fq(merely)33 b(represen)m(ts)g(the)g(rotation)h
-Fo(q)1282 4023 y Fh(y)1317 4032 y Fe(1)1388 4009 y Fq(in)e(the)i
-(reference)f(frame;)i(b)s(oth)e(rotations)g Fo(q)2972
-4023 y Fh(x)3049 4009 y Fq(and)g Fo(q)3270 4023 y Fh(y)3305
-4033 y Fd(i)3368 4009 y Fq(m)m(ust)g(b)s(e)g(used)0 4122
-y(to)e(bac)m(k-transform)g Fo(q)782 4136 y Fh(z)815 4145
-y Fe(2)883 4122 y Fq(in)m(to)g(the)f(reference)h(frame.)41
-b(This)28 b(is)i(sho)m(wn)f(as)i(follo)m(ws:)611 4292
-y Fo(q)652 4306 y Fh(y)687 4316 y Fd(i)800 4292 y Fq(=)83
-b Fo(q)995 4306 y Fh(x)1038 4292 y Fo(q)1079 4306 y Fh(y)1114
-4315 y Fe(1)1153 4292 y Fo(q)1194 4306 y Fh(x)1237 4254
-y Ff(\000)p Fk(1)613 4449 y Fo(q)654 4463 y Fh(z)687
-4473 y Fd(i)800 4449 y Fq(=)g Fo(q)995 4463 y Fh(x)1053
-4355 y Fi(\020)1103 4449 y Fo(q)1144 4463 y Fh(y)1179
-4472 y Fe(1)1217 4449 y Fo(q)1258 4463 y Fh(z)1291 4472
-y Fe(2)1329 4449 y Fo(q)1370 4463 y Fh(y)1405 4472 y
-Fe(1)1444 4411 y Ff(\000)p Fk(1)1538 4355 y Fi(\021)1603
-4449 y Fo(q)1644 4463 y Fh(x)1687 4411 y Ff(\000)p Fk(1)578
-4614 y Fo(q)619 4628 y Fh(z)652 4638 y Fd(i)678 4628
-y Fk(2)800 4614 y Fq(=)g Fo(q)995 4628 y Fh(y)1030 4638
-y Fd(i)1060 4614 y Fo(q)1101 4628 y Fh(z)1134 4637 y
-Fe(2)1172 4614 y Fo(q)1213 4628 y Fh(y)1248 4638 y Fd(i)1278
-4577 y Ff(\000)p Fk(1)800 4788 y Fq(=)g Fo(q)995 4802
-y Fh(x)1038 4788 y Fo(q)1079 4802 y Fh(y)1114 4811 y
-Fe(1)1153 4788 y Fo(q)1194 4802 y Fh(x)1237 4751 y Ff(\000)p
-Fk(1)1331 4788 y Fo(q)1372 4802 y Fh(z)1405 4811 y Fe(2)1443
-4694 y Fi(\020)1493 4788 y Fo(q)1534 4802 y Fh(x)1577
-4788 y Fo(q)1618 4802 y Fh(y)1653 4811 y Fe(1)1692 4788
-y Fo(q)1733 4802 y Fh(x)1776 4751 y Ff(\000)p Fk(1)1870
-4694 y Fi(\021)1920 4717 y Ff(\000)p Fk(1)2040 4788 y
-Fq(=)25 b Fo(q)2177 4802 y Fh(x)2220 4788 y Fo(q)2261
-4802 y Fh(y)2296 4811 y Fe(1)2334 4788 y Fo(q)2375 4802
-y Fh(x)2419 4751 y Ff(\000)p Fk(1)2513 4788 y Fo(q)2554
-4802 y Fh(z)2587 4811 y Fe(2)2625 4788 y Fo(q)2666 4802
-y Fh(x)2710 4788 y Fo(q)2751 4802 y Fh(y)2786 4811 y
-Fe(1)2824 4751 y Ff(\000)p Fk(1)2918 4788 y Fo(q)2959
-4802 y Fh(x)3003 4751 y Ff(\000)p Fk(1)3122 4788 y Fl(6)p
-Fq(=)g Fo(q)3259 4802 y Fh(z)3292 4812 y Fd(i)578 4958
-y Fo(q)619 4972 y Fh(z)652 4982 y Fd(i)678 4972 y Fk(3)800
-4958 y Fq(=)83 b(\()p Fo(q)1030 4972 y Fh(y)1065 4982
-y Fd(i)1095 4958 y Fo(q)1136 4972 y Fh(x)1180 4958 y
-Fq(\))15 b Fo(q)1271 4972 y Fh(z)1304 4981 y Fe(2)1342
-4958 y Fq(\()q Fo(q)1419 4972 y Fh(y)1454 4982 y Fd(i)1484
-4958 y Fo(q)1525 4972 y Fh(x)1568 4958 y Fq(\))1603 4916
-y Ff(\000)p Fk(1)1723 4958 y Fq(=)25 b Fo(q)1860 4972
-y Fh(y)1895 4981 y Fe(1)1933 4958 y Fo(q)1974 4972 y
-Fh(x)2018 4958 y Fo(q)2059 4972 y Fh(z)2092 4981 y Fe(2)2130
-4958 y Fo(q)2171 4972 y Fh(x)2214 4921 y Ff(\000)p Fk(1)2309
-4958 y Fo(q)2350 4972 y Fh(y)2385 4981 y Fe(1)2423 4921
-y Ff(\000)p Fk(1)2542 4958 y Fq(=)g Fo(q)2679 4972 y
-Fh(z)2712 4982 y Fd(i)0 5274 y Fj(qtot)47 b(=)g(-5.5511e-17)188
-b(7.0711e-01)g(1.2326e-32)g(7.0711e-01)0 5387 y(qtotchk)46
-b(=)h(-5.5511e-17)188 b(7.0711e-01)g(5.5511e-17)h(7.0711e-01)p
-eop
-6 5 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(6)0 399
-y Fm(1.4)112 b(Application)35 b(of)j(quaternions)g(in)e(co)s(ordinate)i
-(frame)f(transformations)0 570 y Fq(In)m(terpretations)30
-b(of)h(quaternions.)0 810 y Fr(1.4.1)105 b(Euler)35 b(angles)0
-982 y Fq(\(y)m(a)m(w-pitc)m(h-roll\))71 b(ma)m(y)36 b(b)s(e)f(used)g
-(to)h(construct)g(an)f(inertial-to-b)s(o)s(dy)e(quaterion)i
-Fo(q)2995 997 y Fh(bi)3088 982 y Fq(as)h(follo)m(ws.)55
-b(The)35 b(y)m(a)m(w)0 1095 y(rotation)c(is)e(ab)s(out)h(the)h
-Fo(z)j Fq(axis)c(in)f(the)i(inertial)d(frame)1508 1299
-y Fo(q)1549 1313 y Fh(y)1615 1299 y Fq(=)1711 1205 y
-Fi(\020h)1841 1299 y Fq(0)84 b(0)f(1)2185 1205 y Fi(i)2240
-1299 y Fo(;)15 b( )2342 1205 y Fi(\021)0 1519 y Fq(The)30
-b(pitc)m(h)g(rotation)g(is)g(ab)s(out)g(the)g Fo(y)k
-Fq(axis)29 b(in)h(frame)g(1)h(\()p Fo(y)s Fq(-axis)f(after)h(the)f(y)m
-(a)m(w)i(rotation)e(is)g(made\))1500 1739 y Fo(q)1541
-1753 y Fh(p)1577 1762 y Fe(1)1640 1739 y Fq(=)1736 1644
-y Fi(\020h)1866 1739 y Fq(0)84 b(1)f(0)2210 1644 y Fi(i)2265
-1739 y Fo(;)15 b(\022)2351 1644 y Fi(\021)0 1953 y Fq(The)30
-b(roll)f(rotation)h(is)g(made)g(ab)s(out)g(the)h Fo(x)f
-Fq(axis)g(in)f(frame)h(2)1495 2158 y Fo(q)1536 2172 y
-Fh(r)1568 2181 y Fe(2)1631 2158 y Fq(=)1727 2063 y Fi(\020h)1857
-2158 y Fq(1)84 b(0)f(0)2201 2063 y Fi(i)2256 2158 y Fo(;)15
-b(')2355 2063 y Fi(\021)0 2372 y Fq(In)28 b(order)g(to)h(construct)g(a)
-g(single)e(quaterion)h Fo(q)1626 2387 y Fh(bi)1712 2372
-y Fq(relating)g(the)g(inertial)f(to)i(b)s(o)s(dy)e(axis)h(rotation,)h
-(rotations)g Fo(q)3826 2386 y Fh(p)3862 2395 y Fe(1)0
-2485 y Fq(and)h Fo(q)218 2499 y Fh(r)250 2508 y Fe(2)318
-2485 y Fq(m)m(ust)g(b)s(e)g(expressed)g(in)f(the)i(inertial)d(frame:)
-1199 2689 y Fo(q)1240 2703 y Fh(p)1363 2689 y Fq(=)82
-b Fo(q)1557 2703 y Fh(y)1598 2689 y Fo(q)1639 2703 y
-Fh(p)1675 2712 y Fe(1)1713 2689 y Fo(q)1754 2703 y Fh(y)1795
-2652 y Ff(\000)p Fk(1)1201 2827 y Fo(q)1242 2841 y Fh(r)1363
-2827 y Fq(=)g Fo(q)1557 2841 y Fh(y)1598 2827 y Fo(q)1639
-2841 y Fh(r)1671 2850 y Fe(1)1710 2827 y Fo(q)1751 2841
-y Fh(y)1792 2790 y Ff(\000)p Fk(1)1911 2827 y Fq(=)25
-b Fo(q)2048 2841 y Fh(y)2089 2827 y Fo(q)2130 2841 y
-Fh(p)2166 2850 y Fe(1)2204 2827 y Fo(q)2245 2841 y Fh(r)2277
-2850 y Fe(2)2315 2827 y Fo(q)2356 2841 y Fh(p)2392 2850
-y Fe(1)2430 2790 y Ff(\000)p Fk(1)2524 2827 y Fo(q)2565
-2841 y Fh(y)2606 2790 y Ff(\000)p Fk(1)0 3032 y Fq(and)30
-b(so)756 3144 y Fo(q)797 3159 y Fh(bi)881 3144 y Fq(=)24
-b Fo(q)1017 3158 y Fh(r)1055 3144 y Fo(q)1096 3159 y
-Fh(b)1130 3144 y Fo(q)1171 3158 y Fh(y)1237 3144 y Fq(=)1333
-3050 y Fi(\020)1383 3144 y Fo(q)1424 3158 y Fh(y)1465
-3144 y Fo(q)1506 3158 y Fh(p)1542 3167 y Fe(1)1580 3144
-y Fo(q)1621 3158 y Fh(r)1653 3167 y Fe(2)1691 3144 y
-Fo(q)1732 3158 y Fh(p)1768 3167 y Fe(1)1806 3107 y Ff(\000)p
-Fk(1)1900 3144 y Fo(q)1941 3158 y Fh(y)1982 3107 y Ff(\000)p
-Fk(1)2076 3050 y Fi(\021)15 b(\020)2191 3144 y Fo(q)2232
-3158 y Fh(y)2273 3144 y Fo(q)2314 3158 y Fh(p)2350 3167
-y Fe(1)2387 3144 y Fo(q)2428 3158 y Fh(y)2469 3107 y
-Ff(\000)p Fk(1)2564 3050 y Fi(\021)2628 3144 y Fo(y)2673
-3158 y Fh(y)2740 3144 y Fq(=)25 b Fo(q)2877 3158 y Fh(y)2918
-3144 y Fo(q)2959 3158 y Fh(p)2995 3167 y Fe(1)3033 3144
-y Fo(q)3074 3158 y Fh(r)3106 3167 y Fe(2)0 3322 y Fq(Notice)30
-b(that)f(the)g(order)g(of)g(the)g(rotations)g(is)f(rev)m(ersed)h(when)e
-(the)i(un)m(transformed)f(rotations)h Fo(q)3374 3336
-y Fh(y)3415 3322 y Fq(,)g Fo(q)3510 3336 y Fh(p)3546
-3345 y Fe(1)3584 3322 y Fq(,)h Fo(q)3680 3336 y Fh(r)3712
-3345 y Fe(2)3779 3322 y Fq(are)0 3435 y(used)g(instead)f(of)i
-(quaternions)e(transformed)h(to)h(the)f(inertial)f(frame)h
-Fo(q)2504 3449 y Fh(r)2541 3435 y Fq(,)h Fo(q)2638 3450
-y Fh(b)2672 3435 y Fq(,)f Fo(q)2768 3449 y Fh(y)2809
-3435 y Fq(.)0 3675 y Fr(1.4.2)105 b(Co)s(ordinate)35
-b(transformation)f(matrices)g(and)h(quaternions)0 3846
-y Fq(A)26 b(unit)e(quaternion)g(\()p Fo(v)s(;)15 b(\022)s
-Fq(\))26 b(ma)m(y)g(b)s(e)f(in)m(terpreted)f(as)i(a)g(rotation)g(of)f
-Fo(\022)j Fq(degrees)e(ab)s(out)f(the)h(axis)f Fo(v)s
-Fq(.)39 b(Application)0 3959 y(of)31 b(this)e(rotation)i(to)g(a)f(v)m
-(ector)i Fo(x)f Fq(is)e(illustrated)f(b)s(elo)m(w:)903
-4721 y Fo(v)23 b Fl(\002)d Fo(x)p 3 setlinewidth np 1604
-4343 453 151 0.00 360.00 ellipse st 3 setlinewidth np
-1604 5250 a 1604 4344 li st 3 setlinewidth np 1619 4404
-a 1604 4344 li 1588 4404 li st 3 setlinewidth np 1604
-5250 a 1604 4948 li st 3 setlinewidth np 1619 5009 a
-1604 4948 li 1588 5009 li st 3 setlinewidth np 1604 5250
-a 1150 4344 li st 3 setlinewidth np 1191 4391 a 1150
-4344 li 1164 4405 li st 3 setlinewidth np 1151 4343 a
-1177 4343 li st 3 setlinewidth np 1204 4343 a 1230 4343
-li st 3 setlinewidth np 1257 4343 a 1283 4343 li st 3
-setlinewidth np 1311 4343 a 1337 4343 li st 3 setlinewidth
-np 1364 4343 a 1390 4343 li st 3 setlinewidth np 1417
-4343 a 1443 4343 li st 3 setlinewidth np 1471 4343 a
-1497 4343 li st 3 setlinewidth np 1524 4343 a 1550 4343
-li st 3 setlinewidth np 1577 4343 a 1603 4343 li st 3
-setlinewidth np 1604 4343 a 1586 4357 li st 3 setlinewidth
-np 1570 4371 a 1552 4385 li st 3 setlinewidth np 1536
-4398 a 1518 4412 li st 3 setlinewidth np 1502 4425 a
-1484 4439 li st 3 setlinewidth np 1468 4452 a 1450 4466
-li st 3 setlinewidth np 1434 4479 a 1416 4493 li st 3
-setlinewidth np 1452 4446 a 1415 4495 li 1471 4469 li
-st 3 setlinewidth np 1604 5250 a 1452 4495 li st 3 setlinewidth
-np 1479 4551 a 1452 4495 li 1449 4557 li st 3 setlinewidth
-np 2207 4722 a 1641 4571 li st 3 setlinewidth np 1703
-4572 a 1641 4571 li 1695 4601 li st 3 setlinewidth np
-1868 4118 a 1377 4382 li st 3 setlinewidth np 1423 4340
-a 1377 4382 li 1437 4367 li st 3 setlinewidth np 1151
-4343 a 1151 4370 li st 3 setlinewidth np 1151 4398 a
-1151 4425 li st 3 setlinewidth np 1151 4453 a 1151 4480
-li st 3 setlinewidth np 1151 4508 a 1151 4535 li st 3
-setlinewidth np 1151 4563 a 1151 4590 li st 3 setlinewidth
-np 1151 4618 a 1151 4645 li st 3 setlinewidth np 1135
-4586 a 1150 4646 li 1165 4586 li st 1642 5061 a(v)1113
-4343 y(x)1257 4532 y(\022)2246 4759 y Fl(h)p Fo(x;)15
-b(v)s Fl(i)p Fo(v)2246 4872 y Fq(pro)5 b(jection)30 b(of)g
-Fo(x)h Fq(on)m(to)g Fo(v)1906 4117 y Fq(pro)5 b(jection)30
-b(of)h Fo(x)f Fq(o\013)h(of)f Fo(v)1906 4230 y(x)20 b
-Fl(\000)g(h)p Fo(x;)15 b(v)s Fl(i)p Fo(v)p 3 setlinewidth
-np 1481 4060 435 93.73 139.40 arc st 3 setlinewidth np
-1391 4506 a 1452 4495 li 1393 4476 li st eop
-7 6 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(7)0 399
-y(The)28 b(v)m(ector)h Fo(x)507 413 y Fh(e)569 399 y
-Fq(=)c Fl(h)q Fo(x;)15 b(v)s Fl(i)h Fo(v)31 b Fq(is)c(the)h(pro)5
-b(jection)28 b(of)g Fo(x)g Fq(on)m(to)i Fo(v)h Fq(and)c(is)h(unc)m
-(hanged)f(b)m(y)h(the)g(rotation.)41 b(The)27 b(v)m(ector)0
-511 y Fo(x)52 526 y Fh(e)p Ff(?)171 511 y Fq(=)g Fo(x)22
-b Fl(\000)e Fo(x)486 525 y Fh(e)555 511 y Fq(is)31 b(orthogonal)h(to)g
-Fo(v)j Fq(and)c(is)g(rotated)i(b)m(y)f Fo(\022)h Fq(degrees)g(ab)s(out)
-e Fo(x)p Fq(.)45 b(The)31 b(plane)g(of)h(the)g(rotation)g(is)0
-624 y(spanned)d(b)m(y)h Fo(x)532 639 y Fh(e)p Ff(?)654
-624 y Fq(and)g Fo(v)24 b Fl(\002)c Fo(x)30 b Fq(Th)m(us)f(the)i
-(rotated)g(v)m(ector)h Fo(x)20 b Fl(\000)g Fo(r)33 b
-Fq(ma)m(y)e(b)s(e)f(written)f(as)1127 782 y Fo(x)1179
-796 y Fh(r)1242 782 y Fq(=)c Fo(x)1390 796 y Fh(e)1447
-782 y Fq(+)20 b(\()p Fo(x)g Fl(\000)g Fo(x)1788 796 y
-Fh(e)1825 782 y Fq(\))15 b(cos)q(\()p Fo(\022)s Fq(\))20
-b(+)g(\()p Fo(v)k Fl(\002)c Fo(x)p Fq(\))15 b(sin)o(\()p
-Fo(\022)s Fq(\))p Fo(:)940 b Fq(\(1.4\))0 941 y(where)41
-b(the)h(\014rst)f(term)h(re\015ects)g(the)g(unc)m(hanged)f(p)s(ortion)f
-(of)i Fo(x)f Fq(and)g(the)h(second)g(t)m(w)m(o)h(terms)f(denote)g(the)0
-1054 y(rotation)31 b(in)e(the)h(plane)g(normal)f(to)i
-Fo(v)s Fq(.)118 1166 y(The)c(co)s(ordinate)g(transformation)f(applied)f
-(to)j Fo(x)e Fq(ma)m(y)i(b)s(e)f(computed)f(b)m(y)h(applying)e
-(equation)i(\(1.4\))i(to)f(the)0 1279 y Fo(x)p Fq(,)j
-Fo(y)s Fq(,)f Fo(z)k Fq(unit)29 b(v)m(ectors.)43 b(The)29
-b(ab)s(o)m(v)m(e)j(application)d(in)m(v)m(olv)m(es)h(the)h(rotation)f
-(of)h(a)g(v)m(ector)h(ab)s(out)e(an)g(axis.)40 b(Since)730
-1354 y Fi(2)730 1500 y(6)730 1553 y(4)827 1435 y Fo(v)871
-1449 y Fk(1)827 1548 y Fo(v)871 1562 y Fk(2)827 1660
-y Fo(v)871 1674 y Fk(3)952 1354 y Fi(3)952 1500 y(7)952
-1553 y(5)1027 1548 y Fl(\002)1118 1354 y Fi(2)1118 1500
-y(6)1118 1553 y(4)1215 1435 y Fo(x)1217 1548 y(y)1215
-1660 y(x)1309 1354 y Fi(3)1309 1500 y(7)1309 1553 y(5)1389
-1548 y Fq(=)25 b(\()p Fo(v)1564 1562 y Fk(2)1604 1548
-y Fo(z)f Fl(\000)c Fo(v)1805 1562 y Fk(3)1845 1548 y
-Fo(y)s Fq(\))1921 1527 y(^)1928 1548 y Fo(i)h Fq(+)e(\()p
-Fo(v)2149 1562 y Fk(3)2189 1548 y Fo(x)h Fl(\000)g Fo(v)2396
-1562 y Fk(1)2436 1548 y Fo(z)t Fq(\))2516 1527 y(^)2517
-1548 y Fo(j)26 b Fq(+)20 b(\()p Fo(v)2750 1562 y Fk(1)2790
-1548 y Fo(y)j Fl(\000)d Fo(v)2993 1562 y Fk(2)3033 1548
-y Fo(x)p Fq(\))p Fo(k)0 1814 y Fq(w)m(e)31 b(ma)m(y)g(write)1062
-2082 y Fo(x)1114 2096 y Fh(r)1235 2082 y Fq(=)82 b Fo(v)1432
-2096 y Fk(1)1472 2082 y Fo(v)23 b Fq(+)d(\()p Fo(x)h
-Fl(\000)f Fo(v)1873 2096 y Fk(1)1912 2082 y Fo(v)s Fq(\))15
-b(cos)i Fo(\022)22 b Fq(+)2303 1888 y Fi(2)2303 2034
-y(6)2303 2087 y(4)2454 1969 y Fq(0)2435 2082 y Fo(v)2479
-2096 y Fk(3)2400 2195 y Fl(\000)p Fo(v)2515 2209 y Fk(2)2596
-1888 y Fi(3)2596 2034 y(7)2596 2087 y(5)2666 2082 y Fq(sin)14
-b Fo(\022)1069 2464 y(y)1114 2478 y Fh(r)1235 2464 y
-Fq(=)82 b Fo(v)1432 2478 y Fk(2)1472 2464 y Fo(v)23 b
-Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873 2478 y Fk(2)1912
-2464 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22 b Fq(+)2303
-2270 y Fi(2)2303 2416 y(6)2303 2469 y(4)2400 2351 y Fl(\000)p
-Fo(v)2515 2365 y Fk(3)2454 2464 y Fq(0)2435 2577 y Fo(v)2479
-2591 y Fk(1)2596 2270 y Fi(3)2596 2416 y(7)2596 2469
-y(5)2666 2464 y Fq(sin)14 b Fo(\022)1071 2846 y(z)1113
-2860 y Fh(r)1235 2846 y Fq(=)82 b Fo(v)1432 2860 y Fk(3)1472
-2846 y Fo(v)23 b Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873
-2860 y Fk(3)1912 2846 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22
-b Fq(+)2303 2652 y Fi(2)2303 2798 y(6)2303 2851 y(4)2435
-2733 y Fo(v)2479 2747 y Fk(2)2400 2846 y Fl(\000)p Fo(v)2515
-2860 y Fk(1)2454 2958 y Fq(0)2596 2652 y Fi(3)2596 2798
-y(7)2596 2851 y(5)2666 2846 y Fq(sin)14 b Fo(\022)0 3119
-y Fq(\(The)30 b(signs)f(are)i(rev)m(ersed)g(since)e(w)m(e're)j(mo)m
-(ving)e(the)g(co)s(ordinate)h(axes,)g(not)f(the)h(v)m(ector.\))118
-3232 y(An)26 b(alternativ)m(e)h(deriv)-5 b(ation)24 b(for)i(the)h
-(transformation)e(matrix)h(from)g(equation)g(\(1.4\))i(is)d(as)h(follo)
-m(ws.)39 b(De\014ne)7 3379 y(\026)-52 b Fo(q)28 b Fq(=)d(imag)q(\()p
-Fo(q)s Fq(\))h(=)594 3285 y Fi(h)675 3379 y Fo(q)716
-3393 y Fk(1)838 3379 y Fo(q)879 3393 y Fk(2)1001 3379
-y Fo(q)1042 3393 y Fk(3)1122 3285 y Fi(i)1162 3308 y
-Fh(T)1242 3379 y Fq(=)f Fo(v)18 b Fq(sin)o(\()p Fo(\022)s(=)p
-Fq(2\),)31 b Fl(k)q Fo(v)s Fl(k)26 b Fq(=)f(1.)41 b(Then)359
-3568 y Fo(x)411 3582 y Fh(r)532 3568 y Fq(=)83 b Fo(v)s(v)780
-3530 y Fh(T)836 3568 y Fo(x)20 b Fq(+)g(\()p Fo(x)g Fl(\000)g
-Fo(v)s(v)1291 3530 y Fh(T)1347 3568 y Fo(x)p Fq(\))15
-b(cos)q(\()p Fo(\022)s Fq(\))20 b Fl(\000)g Fq(\(\()p
-Fo(v)k Fl(\002)c Fo(e)2069 3582 y Fk(1)2109 3568 y Fq(\))p
-Fo(x)2196 3582 y Fk(1)2256 3568 y Fq(+)g(\()p Fo(v)k
-Fl(\002)c Fo(e)2583 3582 y Fk(2)2622 3568 y Fq(\))p Fo(x)2709
-3582 y Fk(2)2769 3568 y Fq(+)g(\()p Fo(v)k Fl(\002)c
-Fo(e)3096 3582 y Fk(3)3136 3568 y Fq(\))p Fo(x)3223 3582
-y Fk(3)3263 3568 y Fq(\))15 b(sin)o(\()p Fo(\022)s Fq(\))532
-3721 y(=)686 3627 y Fi(\020)736 3721 y Fo(I)22 b Fq(cos)16
-b Fo(\022)22 b Fq(+)e Fo(v)s(v)1185 3684 y Fh(T)1241
-3721 y Fq(\(1)h Fl(\000)f Fq(cos)c Fo(\022)s Fq(\))j(+)h(\()p
-Fo(v)k Fl(\002)c Fo(I)7 b Fq(\))15 b(sin)f Fo(\022)2225
-3627 y Fi(\021)2289 3721 y Fo(x)0 3890 y Fq(where)31
-b Fo(v)24 b Fl(\002)d Fo(I)38 b Fq(is)31 b(de\014ned)f(b)m(y)h(the)h
-(column-b)m(y-column)e(v)m(ector)j(cross)e(pro)s(duct.)43
-b(F)-8 b(rom)32 b(equation)f(1.3)i(and)e(the)0 4003 y(trigonometric)f
-(half-angle)g(form)m(ulae)g(w)m(e)h(ha)m(v)m(e)519 4172
-y(cos)16 b Fo(\022)85 b Fq(=)e(cos)1060 4134 y Fk(2)1099
-4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))21 b Fl(\000)f Fq(sin)1529
-4134 y Fk(2)1568 4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26
-b(=)f(1)c Fl(\000)f Fq(2)15 b(sin)2225 4134 y Fk(2)2264
-4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26 b(=)f(1)c Fl(\000)f
-Fq(2)2809 4077 y Fi(\020)2859 4172 y Fq(1)h Fl(\000)f
-Fq(real)o(\()p Fo(q)s Fq(\))3276 4134 y Fk(2)3316 4077
-y Fi(\021)529 4325 y Fq(sin)14 b Fo(\022)85 b Fq(=)e(2)15
-b(cos)q(\()p Fo(\022)s(=)p Fq(2\))g(sin\()p Fo(\022)s(=)p
-Fq(2\))26 b(=)f(2real\()p Fo(q)s Fq(\))15 b(sin)o(\()p
-Fo(\022)s(=)p Fq(2\))26 b(=)f(2)p Fo(q)2629 4339 y Fk(4)2684
-4325 y Fq(sin)o(\()p Fo(\022)s(=)p Fq(2\))p Fo(:)0 4483
-y Fq(Substituting)j(the)i(ab)s(o)m(v)m(e)i(in)m(to)e
-Fo(x)1171 4497 y Fh(r)1239 4483 y Fq(w)m(e)h(obtain)530
-4702 y Fo(x)582 4716 y Fh(r)702 4702 y Fq(=)856 4558
-y Fi(")905 4702 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4664 y
-Fk(2)1073 4724 y(4)1136 4702 y Fl(\000)20 b Fq(1\))h(+)f(2)p
-Fo(v)s(v)1558 4664 y Fh(T)1629 4558 y Fi( )1705 4640
-y Fq(sin)1816 4606 y Fk(2)1856 4640 y Fq(\()p Fo(\022)s(=)p
-Fq(2\))p 1705 4681 358 4 v 1705 4768 a(sin)1816 4733
-y Fk(2)1856 4768 y Fq(\()p Fo(\022)s(=)p Fq(2\))2073
-4558 y Fi(!)2154 4702 y Fq(\(1)h Fl(\000)e Fo(q)2389
-4664 y Fk(2)2386 4724 y(4)2429 4702 y Fq(\))h(+)g(2\()p
-Fo(v)25 b Fl(\002)19 b Fo(I)7 b Fq(\))p Fo(q)2937 4716
-y Fk(4)2992 4702 y Fq(sin)14 b Fo(\022)s(=)p Fq(2)3255
-4558 y Fi(#)3319 4702 y Fo(x)702 4984 y Fq(=)856 4840
-y Fi(")905 4984 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4946 y
-Fk(2)1073 5006 y(4)1136 4984 y Fl(\000)20 b Fq(1\))h(+)f(2)7
-b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1552 4946 y
-Fh(T)1742 4922 y Fq(1)20 b Fl(\000)g Fo(q)1942 4889 y
-Fk(2)1939 4945 y(4)p 1617 4963 490 4 v 1617 5046 a Fq(1)h
-Fl(\000)f Fq(cos)1895 5020 y Fk(2)1935 5046 y Fq(\()p
-Fo(\022)s(=)p Fq(2)2136 4984 y(+)g(2\()7 b(\026)-52 b
-Fo(q)24 b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2586 4998 y
-Fk(4)2625 4840 y Fi(#)2689 4984 y Fo(x)702 5216 y Fq(=)856
-5122 y Fi(h)895 5216 y Fo(I)g Fq(\(2)p Fo(q)1066 5179
-y Fk(2)1063 5239 y(4)1127 5216 y Fl(\000)20 b Fq(1\))h(+)f(2)7
-b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1543 5179 y
-Fh(T)1618 5216 y Fq(+)20 b(2\()7 b(\026)-52 b Fo(q)24
-b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2068 5230 y Fk(4)2107
-5122 y Fi(i)2161 5216 y Fo(x)702 5384 y Fq(=)83 b(\(2)p
-Fo(q)980 5347 y Fk(2)977 5407 y(4)1040 5384 y Fl(\000)20
-b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-51
-b Fo(q)1509 5347 y Fh(T)1563 5384 y Fo(x)21 b Fq(+)f(2)p
-Fo(q)1813 5398 y Fk(4)1852 5384 y Fq(\()7 b(\026)-52
-b Fo(q)23 b Fl(\002)d Fo(x)p Fq(\))p eop
-8 7 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s
-(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439
-b Fn(\(c\))32 b(1998)908 b Fq(8)0 399 y Fr(Remark)34
-b(1.4)46 b Fq(The)32 b(ab)s(o)m(v)m(e)i(deriv)-5 b(ation)31
-b(treats)i(a)f(quaternion)g(as)g(a)h(transformation)e(up)s(on)g(a)i(v)m
-(ector)g(within)0 511 y(a)f(linear)d(space.)44 b(An)31
-b(alternativ)m(e)h(con)m(v)m(en)m(tion)g(is)f(used)f(in)g([R)-10
-b(W91)r(],)31 b(in)f(whic)m(h)g(the)i(quaternion)e(is)g(treated)j(as)0
-624 y(a)e(transformation)e(up)s(on)g(the)h(basis)g(v)m(ectors)h(of)g(a)
-f(frame.)41 b(The)30 b(latter)g(con)m(v)m(en)m(tion)i(results)d(in)g(a)
-i(sign)e(c)m(hange)0 737 y(of)i(the)f(angle)g(of)h(rotation,)g(i.e.,)
-1150 941 y Fo(x)1202 955 y Fh(r)1323 941 y Fq(=)83 b(\(2)p
-Fo(q)1601 904 y Fk(2)1598 964 y(4)1661 941 y Fl(\000)20
-b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-52
-b Fo(q)2129 904 y Fh(T)2184 941 y Fo(x)20 b Fq(+)g(2)p
-Fo(q)2433 955 y Fk(4)2472 941 y Fq(\()7 b(\026)-52 b
-Fo(q)24 b Fl(\002)c Fo(x)p Fq(\))0 1146 y(Use)29 b(of)g(the)f(latter)h
-(con)m(v)m(en)m(tion)h(results)d(in)g(a)i(similar)d(c)m(hange)k(in)d
-(sign)h(in)f(the)i(time)f(deriv)-5 b(ativ)m(e)28 b(of)h(the)f(quater-)0
-1259 y(nion,)h(discussed)g(in)g(1.5.)0 1471 y Fr(M-\014le)46
-b Fj(qtransv)28 b Fq(Rotate)k(a)f(v)m(ector)227 1696
-y Fj(qtransv)46 b(is)h(the)g(function)f(defined)g(from:)g
-(/home3/hodel/oct/quat/qt)o(rans)o(v.m)275 1922 y(vr)h(=)h
-(qtransv\(vv,qr\))275 2035 y(rotate)e(a)i(3-vector)d(as)i(specified)f
-(by)h(quaternion)e(qr)275 2148 y(q)i(=)h(\(ee,th\))93
-b(\(vector,)46 b(angle)g(notation\))275 2261 y(vr)h(=)h(\(vv)f(.)g
-(ee\)*ee)f([projection)f(on)i(ee)g(unchanged)e(])514
-2374 y(+)i([vv)g(-)g(\(vv)g(.)h(ee\)*ee])e(cos\(th\))93
-b([what's)46 b(left)h(gets)f(scaled)g(by)i(cosine])514
-2487 y(+)f(\(vv)g(x)g(ee\))g(sin\(th\))571 b([and)47
-b(the)g(sine)f(term)h(completes)e(the)i(rotation])0 2711
-y Fr(M-\014le)f Fj(qtransvmat)57 b Fq(Obtain)30 b(3)20
-b Fl(\002)g Fq(3)31 b(rotation)g(matrix)e(from)h(a)h(quaternion)275
-2936 y Fj([xv,yv,zv])45 b(=)i(qtransvmat\(q\))275 3049
-y(xm)g(=)h(qtransvmat\(q\),)c(xm)j(=)g([xv)g(yv)g(zv])275
-3162 y(compute)f(x,y,z)g(axes)h(rotated)f(per)h(specified)e(quaternion)
-g(q)0 3387 y Fr(Example)34 b(1.4)46 b Fq(Use)30 b(of)h(quaternions)e
-(to)i(view)f(b)s(o)s(dy/inertial)d(frame)k(transformations:)0
-3575 y Fj(degrees)46 b(=)h(pi/180;)189 b(daz)47 b(=)h(30*degrees;)188
-b(del)46 b(=)i(-20*degrees;)0 3688 y(qazimuth)e(=)h
-(quaternion\([0,0,1],daz\);)0 3801 y(qelevation)e(=)i
-(quaternion\([cos\(daz\),sin\(d)o(az\),)o(0],)o(del\))o(;)0
-3914 y(qview)f(=)i(qmult\(qelevation,qazimut)o(h\);)0
-4139 y(th)f(=)h(0:5:20;)0 4252 y(ov)f(=)h(ones\(size\(th\)\);)0
-4365 y(myth)f(=)g([th,max\(th\)*ov)d(;)j(0*ov,th];)0
-4478 y(myth)g(=)g([[0:5:20])e(,)j(20*ones\(1,4\),20*ones\(1,4)o(\);)41
-b(...)382 4591 y(zeros\(1,5\),)k(5:5:20,)g(20*ones\(1,4\);)g(...)382
-4704 y(zeros\(1,5\),)g(zeros\(1,4\),)f([5:5:20]];)0 4930
-y(#)j(inertial)f(frame)g(quaternion)0 5043 y(qin)h(=)g(quaternion\([1)e
-(0)i(0],180*degrees\);)0 5156 y(for)g(kk=1:length\(myth\(1,:\)\))95
-5269 y(figure\(kk\))95 5381 y(thy)g(=)h(myth\(1,kk\);)140
-b(thp)47 b(=)g(myth\(2,kk\);)141 b(thr)46 b(=)i(myth\(3,kk\);)p
-eop
-9 8 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(9)95 399
-y Fj(#)48 b(avoid)e(transformations)e(by)j(reversing)e(the)i(order)g
-(of)g(multiplication!)95 511 y(qyi)g(=)h(quaternion\([0,0,1],thy*d)o
-(egr)o(ees\))o(;)95 624 y(qp1)f(=)h(quaternion\([0,1,0],thp*d)o(egr)o
-(ees\))o(;)95 737 y(qr2)f(=)h(quaternion\([1,0,0],thr*d)o(egr)o(ees\))o
-(;)95 850 y(qbi)f(=)h(qmult\(qyi,qmult\(qp1,qr2\))o(\);)95
-1076 y(printf\("yaw=\0458.4f,)43 b(pitch=\0458.4f,)i(\\n)190
-b(qbi)47 b(=)g(\(\0458.4f\)i)f(+)h(\(\0458.4e\)j)f(+)h(\(\0458.4f\)k)f
-(+)h(\()0 1189 y(\0458.4f\)\\n",thy,thp,)c(...)382 1302
-y(qbi\(1\),)j(qbi\(2\),)f(qbi\(3\),)h(qbi\(4\)\);)95
-1415 y([vv,th])g(=)i(quaternion\(qbi\);)95 1528 y(printf\(")285
-b(=)47 b(\(vector\))f(=)h([\0458.4f)f(\0458.4f)h(\0458.4f],)e
-(th=\0455.2f)h(deg\\n",)g(...)382 1641 y(vv\(1\),)g(vv\(2\),)g
-(vv\(3\),)g(th*180/pi\);)95 1866 y(#)i(transform)d(qbi)i(to)g
-(reference)f(coordinates)95 1979 y(qb)i(=)f(qmult\(qin,qbi\);)95
-2092 y(title\(sprintf\("yaw=\0455.2f,)41 b(pitch=\0455.2f,)k
-(roll=\0455.2f)g(\(deg\)",thy,thp,thr\)\))95 2205 y
-(coordinate_plot\(qin,qb,qvi)o(ew\);)95 2318 y(gset)i(terminal)f
-(postscript)f(eps)95 2431 y(eval\(sprintf\("gset)e(output)j
-('fig\045d.eps'",kk\)\);)95 2544 y(replot)95 2657 y(gset)h(terminal)f
-(x11)0 2770 y(endfor)0 2957 y Fq(Results:)316 2924 y
-Fk(1)50 4816 y @beginspecial 50 @llx 50 @lly 410 @urx
-302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis  0.00 deg) Cshow
-2737 4900 M
-(reference coordinates) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-2252 2272 L
-2737 2625 Pls
-2252 2272 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
--177 970 V
-2737 2625 Crs
-2560 3595 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-2252 2272 L
-2737 2625 Star
-2252 2272 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
--177 970 V
-2737 2625 Box
-2560 3595 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--177 970 V
--89 0 V
-1.000 UL
-LT3
-3323 1302 M
--1789 0 V
-1181 3242 L
-970 706 V
-1789 0 V
-4293 2008 L
-3323 1302 L
-970 706 V
--1788 0 V
-2151 3948 L
-2505 2008 L
-1534 1302 L
-1.000 UL
-LT4
-3940 3948 M
-2969 3242 L
--1788 0 V
-1788 0 V
-3323 1302 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis  0.00 deg) Cshow
-2737 4900 M
-(yaw= 0.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Pls
-3369 3141 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
--73 0 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 0 4911 1560 4 v 104 4965 a Fe(1)138 4997
-y Fc(due)28 b(to)g(details)h(of)g(visualization)h(soft)n(w)n(are,)h
-(the)d Fb(x)18 b Fa(\000)g Fb(y)j Fa(\000)e Fb(z)31 b
-Fc(axes)d(do)g(not)g(app)r(ear)h(as)g(a)f(righ)n(t-handed)f(co)r
-(ordinate)j(system.)0 5088 y(Sorry)-6 b(.)p eop
-10 9 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(10)50 2045
-y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
-@rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis  5.00 deg) Cshow
-2737 4900 M
-(yaw= 5.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3409 2580 M
--672 45 V
-3409 2580 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-693 514 V
-2737 2625 Pls
-3430 3139 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-78 5 V
-10 10 V
-6 10 V
-3 9 V
--3 7 V
--6 6 V
--10 3 V
--14 2 V
--16 -1 V
--18 -3 V
--20 -6 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 10.00 deg) Cshow
-2737 4900 M
-(yaw=10.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3346 2535 M
--609 90 V
-3346 2535 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-749 508 V
-2737 2625 Pls
-3486 3133 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-83 9 V
-8 11 V
-5 9 V
-0 8 V
--4 7 V
--8 5 V
--11 2 V
--15 1 V
--17 -2 V
--19 -4 V
--21 -6 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
-410 @urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 15.00 deg) Cshow
-2737 4900 M
-(yaw=15.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3279 2491 M
--542 134 V
-3279 2491 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-800 499 V
-2737 2625 Pls
-3537 3124 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-87 14 V
-7 10 V
-2 9 V
--1 7 V
--6 6 V
--9 4 V
--13 2 V
--16 -1 V
--18 -3 V
--20 -5 V
--20 -6 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 20.00 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3207 2448 M
--470 177 V
-3207 2448 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-90 18 V
-5 10 V
-1 8 V
--3 7 V
--7 5 V
--11 3 V
--14 1 V
--17 -2 V
--19 -3 V
--20 -6 V
--20 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial eop
-11 10 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(11)50 2045
-y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
-@rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 20.00 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3207 2448 M
--470 177 V
-3207 2448 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-90 18 V
-5 10 V
-1 8 V
--3 7 V
--7 5 V
--11 3 V
--14 1 V
--17 -2 V
--19 -3 V
--20 -6 V
--20 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 20.61 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch= 5.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3173 2527 M
--436 98 V
-3173 2527 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-405 -906 V
-2737 2625 Crs
-3142 1719 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--375 886 V
-90 18 V
-5 10 V
-1 9 V
--3 7 V
--7 5 V
--11 3 V
--15 1 V
--17 -1 V
--18 -4 V
--20 -6 V
--20 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
-410 @urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 22.34 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch=10.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3136 2606 M
--399 19 V
-3136 2606 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-441 -911 V
-2737 2625 Crs
-3178 1714 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--384 878 V
-89 18 V
-6 11 V
-0 9 V
--3 7 V
--7 5 V
--11 3 V
--15 1 V
--16 -1 V
--19 -4 V
--20 -6 V
--20 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 24.95 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch=15.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3096 2686 M
--359 -61 V
-3096 2686 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-474 -909 V
-2737 2625 Crs
-3211 1716 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--394 870 V
-90 18 V
-5 11 V
-1 9 V
--4 8 V
--7 5 V
--11 3 V
--14 1 V
--17 -1 V
--19 -4 V
--20 -6 V
--19 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial eop
-12 11 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(12)50 2045
-y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
-@rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 28.21 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch=20.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3054 2765 M
-2737 2625 L
-3054 2765 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-504 -901 V
-2737 2625 Crs
-3241 1724 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--403 861 V
-89 19 V
-5 11 V
-1 10 V
--3 7 V
--7 6 V
--11 3 V
--15 1 V
--16 -1 V
--19 -4 V
--20 -6 V
--19 -9 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 28.71 deg) Cshow
-2737 4900 M
-(yaw=20.00, pitch=20.00, roll=10.00 \(deg\)) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3622 3070 M
-2737 2625 L
-3622 3070 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-236 176 V
-2737 2625 Pls
-2973 2801 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-476 -915 V
-2737 2625 Crs
-3213 1710 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-485 353 V
-2737 2625 Star
-3222 2978 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-177 -970 V
-2737 2625 Box
-2914 1655 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--140 990 V
-100 8 V
-2 6 V
--2 5 V
--7 4 V
--11 3 V
--14 2 V
--18 1 V
--19 0 V
--21 -2 V
--22 -3 V
--21 -4 V
-1.000 UL
-LT3
-3323 1302 M
--1789 0 V
-1181 3242 L
-970 706 V
-1789 0 V
-4293 2008 L
-3323 1302 L
-970 706 V
--1788 0 V
-2151 3948 L
-2505 2008 L
-1534 1302 L
-1.000 UL
-LT4
-3940 3948 M
-2969 3242 L
--1788 0 V
-1788 0 V
-3323 1302 L
-stroke
-grestore
-end
-showpage
- @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
-410 @urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 30.19 deg) Cshow
-2737 4900 M
-(yaw=20.00, pitch=20.00, roll=15.00 \(deg\)) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3622 3070 M
-2737 2625 L
-3622 3070 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-277 95 V
-2737 2625 Pls
-3014 2720 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-454 -927 V
-2737 2625 Crs
-3191 1698 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-485 353 V
-2737 2625 Star
-3222 2978 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-177 -970 V
-2737 2625 Box
-2914 1655 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--129 990 V
-100 6 V
-3 6 V
--2 5 V
--7 5 V
--10 3 V
--15 3 V
--17 1 V
--19 0 V
--21 -1 V
--22 -3 V
--21 -4 V
-1.000 UL
-LT3
-3323 1302 M
--1789 0 V
-1181 3242 L
-970 706 V
-1789 0 V
-4293 2008 L
-3323 1302 L
-970 706 V
--1788 0 V
-2151 3948 L
-2505 2008 L
-1534 1302 L
-1.000 UL
-LT4
-3940 3948 M
-2969 3242 L
--1788 0 V
-1788 0 V
-3323 1302 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 32.38 deg) Cshow
-2737 4900 M
-(yaw=20.00, pitch=20.00, roll=20.00 \(deg\)) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3769 2617 M
--1032 8 V
-3769 2617 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
--12 55 V
-2737 2625 Pls
-2725 2680 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-9 1031 V
-2737 2625 Crs
-2746 3656 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-485 353 V
-2737 2625 Star
-3222 2978 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-177 -970 V
-2737 2625 Box
-2914 1655 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--119 989 V
-100 5 V
-2 6 V
--1 6 V
--7 4 V
--10 4 V
--14 3 V
--17 2 V
--19 0 V
--21 -1 V
--22 -3 V
--21 -3 V
-1.000 UL
-LT3
-3323 1302 M
--1789 0 V
-1181 3242 L
-970 706 V
-1789 0 V
-4293 2008 L
-3323 1302 L
-970 706 V
--1788 0 V
-2151 3948 L
-2505 2008 L
-1534 1302 L
-1.000 UL
-LT4
-3940 3948 M
-2969 3242 L
--1788 0 V
-1788 0 V
-3323 1302 L
-stroke
-grestore
-end
-showpage
- @endspecial 0 4071 a Fm(1.5)112 b(Time)36 b(deriv)-6
-b(ativ)m(e)36 b(of)i(a)g(quaternion)0 4243 y Fq(In)28
-b(this)f(subsection)h(w)m(e)h(adopt)g(the)f(v)m(ector)j(notation)d(for)
-h(quaternions,)f(i.e.)40 b(\(with)27 b(some)i(abuse)g(of)f(notation\))0
-4356 y Fo(q)46 b Fq(=)c(\()s(\026)-48 b Fo(v)t(;)15 b(\022)s
-Fq(\))42 b(=)k(\026)-48 b Fo(v)30 b Fq(+)d Fo(\022)43
-b Fq(as)e(in)f(equation)h(\(1.3\).)74 b(Let)41 b Fo(q)1937
-4371 y Fh(b)1971 4356 y Fq(\()p Fo(t)p Fq(\))i(=)f(\()7
-b(\026)-52 b Fo(q)2306 4371 y Fh(b)2341 4356 y Fq(\()p
-Fo(t)p Fq(\))p Fo(;)15 b(\022)2527 4371 y Fh(b)2562 4356
-y Fq(\()p Fo(t)p Fq(\)\))41 b(b)s(e)g(a)g(quaternion)f(relating)g(the)0
-4469 y(co)s(ordinates)k(of)h(a)f(b)s(o)s(dy)f(\(rotating\))j(frame)e
-(to)h(a)g(\014xed)e(frame,)49 b(and)43 b(supp)s(ose)g(that)i(the)g(b)s
-(o)s(dy)e(frame)h(is)0 4582 y(rotating)26 b(with)f(\014xed)g(angular)h
-(v)m(elo)s(cit)m(y)g Fo(!)j Fq(ab)s(out)d(the)g(unit)e(v)m(ector)2378
-4559 y(\026)2368 4582 y(\012)h(=)g Fo(!)2612 4596 y Fk(1)2644
-4561 y Fq(^)2651 4582 y Fo(i)12 b Fq(+)f Fo(!)2833 4596
-y Fk(2)2871 4561 y Fq(^)2872 4582 y Fo(j)17 b Fq(+)11
-b Fo(!)3065 4596 y Fk(2)3107 4558 y Fq(^)3104 4582 y
-Fo(k)29 b Fq(in)c(the)h(\014xed)g(frame.)0 4695 y(\()p
-Fj(qtrans)j Fq(ma)m(y)i(b)s(e)f(used)f(to)i(p)s(erform)e(the)i
-(deriviation)d(in)h(the)i(b)s(o)s(dy)e(frame.\))p eop
-13 12 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(13)1829
-824 y Fo(!)p 3 setlinewidth np 1738 974 a 2342 974 li
-st 3 setlinewidth np 2281 990 a 2342 974 li 2281 959
-li st 3 setlinewidth np 1738 974 a 1285 1277 li st 3
-setlinewidth np 1327 1231 a 1285 1277 li 1343 1256 li
-st 3 setlinewidth np 1738 974 a 1738 371 li st 3 setlinewidth
-np 1753 431 a 1738 371 li 1723 431 li st 3 setlinewidth
-np 1738 975 a 1759 961 li st 3 setlinewidth np 1781 946
-a 1802 932 li st 3 setlinewidth np 1824 917 a 1845 903
-li st 3 setlinewidth np 1867 888 a 1888 874 li st 3 setlinewidth
-np 1911 860 a 1932 846 li st 3 setlinewidth np 1954 831
-a 1975 817 li st 3 setlinewidth np 1997 802 a 2018 788
-li st 3 setlinewidth np 2040 773 a 2061 759 li st 3 setlinewidth
-np 2083 745 a 2104 731 li st 3 setlinewidth np 2126 716
-a 2147 702 li st 3 setlinewidth np 2170 687 a 2191 673
-li st 3 setlinewidth np 2149 719 a 2191 673 li 2132 694
-li st 4 setlinewidth np [ 4 18.09 ] 0 setdash 2191 673
-a 2191 1163 li st [] 0 setdash [] 0 setdash 4 setlinewidth
-np [ 4 18.13 ] 0 setdash 2191 1163 a 1738 974 li st [] 0 setdash
-[] 0 setdash 2239 650 a Fq(\026)2229 673 y(\012)1323
-1352 y Fo(i)2342 975 y(j)1776 371 y(k)p 3 setlinewidth
-np 2009 817 82 94.40 237.53 arc st 3 setlinewidth np
-1940 910 a 2002 899 li 1943 880 li st 0 1548 a Fq(Then)28
-b(Euler's)g(appro)m(ximation)h(of)g(a)h(rotation)g(o)m(v)m(er)g(\001)p
-Fo(t)f Fq(seconds)g(is)g Fo(q)2462 1562 y Fh(r)2525 1548
-y Fq(=)2631 1525 y(\026)2621 1548 y(\012)14 b(sin)o(\()p
-Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))19 b(+)f(cos)q(\()p Fo(!)s
-Fq(\001)p Fo(t=)p Fq(2\).)41 b(F)-8 b(or)0 1661 y(\001)p
-Fo(t)30 b Fq(su\016cien)m(tly)f(small,)g(cos)q(\()p Fo(!)s
-Fq(\001)p Fo(t=)p Fq(2\))d Fl(\031)f Fq(1)31 b(and)f(sin)n(\()p
-Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))c Fl(\031)f Fo(!)s Fq(\001)p
-Fo(t=)p Fq(2,)31 b(so)g Fo(q)2713 1675 y Fh(r)2781 1661
-y Fq(ma)m(y)g(b)s(e)f(appro)m(ximated)g(as)1576 1892
-y Fo(q)1617 1906 y Fh(r)1680 1892 y Fl(\031)25 b Fq(1)c(+)1932
-1773 y Fi(\022)2004 1830 y Fo(!)s Fq(\001)p Fo(t)p 2004
-1871 169 4 v 2065 1954 a Fq(2)2182 1773 y Fi(\023)2268
-1869 y Fq(\026)2258 1892 y(\012)0 2117 y(Th)m(us)1239
-2325 y Fo(q)1280 2340 y Fh(b)1314 2325 y Fq(\()p Fo(t)g
-Fq(+)e(\001)p Fo(t)p Fq(\))83 b(=)g Fo(q)1915 2340 y
-Fh(b)1949 2325 y Fq(\()p Fo(t)p Fq(\))2067 2206 y Fi(\022)2129
-2325 y Fq(1)21 b(+)2285 2206 y Fi(\022)2357 2264 y Fo(!)s
-Fq(\001)p Fo(t)p 2357 2304 V 2418 2388 a Fq(2)2535 2206
-y Fi(\023)2621 2302 y Fq(\026)2611 2325 y(\012)f(+)g
-Fl(\001)15 b(\001)g(\001)2894 2206 y Fi(\023)950 2559
-y Fo(q)991 2574 y Fh(b)1025 2559 y Fq(\()p Fo(t)20 b
-Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1500 2574
-y Fh(b)1534 2559 y Fq(\()p Fo(t)p Fq(\))83 b(=)g Fo(q)1915
-2574 y Fh(b)1949 2559 y Fq(\()p Fo(t)p Fq(\))2067 2440
-y Fi(\022)2139 2497 y Fo(!)s Fq(\001)p Fo(t)p 2139 2538
-V 2200 2621 a Fq(2)2317 2440 y Fi(\023)2404 2536 y Fq(\026)2393
-2559 y(\012)20 b(+)g Fl(\001)15 b(\001)g(\001)940 2737
-y Fo(q)981 2752 y Fh(b)1015 2737 y Fq(\()p Fo(t)20 b
-Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1490 2752
-y Fh(b)1524 2737 y Fq(\()p Fo(t)p Fq(\))p 940 2778 688
-4 v 1229 2861 a(\001)p Fo(t)1720 2799 y Fq(=)1874 2680
-y Fi(\022)1945 2737 y Fo(!)p 1945 2778 60 4 v 1952 2861
-a Fq(2)2015 2680 y Fi(\023)2091 2799 y Fo(q)2132 2814
-y Fh(b)2166 2799 y Fq(\()p Fo(t)p Fq(\))2279 2776 y(\026)2269
-2799 y(\012)h(+)f Fl(\001)15 b(\001)g(\001)0 3024 y Fq(W)-8
-b(e)32 b(tak)m(e)g(the)e(limit)e(at)j(\001)p Fo(t)25
-b Fl(!)g Fq(0)31 b(to)g(obtain)978 3171 y Fo(dq)1066
-3186 y Fh(b)p 978 3212 123 4 v 999 3295 a Fo(dt)1136
-3233 y Fq(=)1232 3114 y Fi(\022)1303 3171 y Fo(!)p 1303
-3212 60 4 v 1310 3295 a Fq(2)1373 3114 y Fi(\023)1449
-3233 y Fo(q)1490 3248 y Fh(b)1524 3233 y Fq(\()p Fo(t)p
-Fq(\))1637 3210 y(\026)1627 3233 y(\012)25 b(=)1824 3171
-y Fo(!)p 1824 3212 V 1831 3295 a Fq(2)1909 3164 y Fi(\000)1947
-3233 y Fo(q)1988 3248 y Fh(b;)p Fk(4)2087 3210 y Fq(\026)2077
-3233 y(\012)20 b Fl(\000)g Fq(\()7 b(\026)-52 b Fo(q)2330
-3248 y Fh(b)2384 3233 y Fl(\001)2440 3210 y Fq(\026)2430
-3233 y(\012)o(\))21 b Fl(\000)2652 3210 y Fq(\026)2642
-3233 y(\012)f Fl(\002)26 b Fq(\026)-51 b Fo(q)2860 3248
-y Fh(b)2894 3164 y Fi(\001)0 3592 y Fq(where)30 b Fo(x)21
-b Fl(\001)f Fo(y)29 b Fq(=)552 3528 y Fi(P)655 3592 y
-Fo(x)707 3607 y Fh(`)740 3592 y Fo(y)785 3607 y Fh(`)848
-3592 y Fq(is)h(the)h(v)m(ector)h(inner)d(\(dot\))j(pro)s(duct)d(and)h
-Fo(x)21 b Fl(\002)f Fo(y)29 b Fq(=)2689 3395 y Fi(\014)2689
-3445 y(\014)2689 3494 y(\014)2689 3544 y(\014)2689 3594
-y(\014)2689 3644 y(\014)2689 3694 y(\014)2716 3398 y(2)2716
-3544 y(6)2716 3597 y(4)2836 3462 y Fq(^)2843 3483 y Fo(i)3010
-3462 y Fq(^)3012 3483 y Fo(j)3185 3459 y Fq(^)3182 3483
-y Fo(k)2813 3596 y(x)2865 3610 y Fk(1)2987 3596 y Fo(x)3039
-3610 y Fk(2)3162 3596 y Fo(x)3214 3610 y Fk(3)2817 3709
-y Fo(y)2862 3723 y Fk(1)2991 3709 y Fo(y)3036 3723 y
-Fk(2)3166 3709 y Fo(y)3211 3723 y Fk(3)3295 3398 y Fi(3)3295
-3544 y(7)3295 3597 y(5)3350 3395 y(\014)3350 3445 y(\014)3350
-3494 y(\014)3350 3544 y(\014)3350 3594 y(\014)3350 3644
-y(\014)3350 3694 y(\014)3409 3592 y Fq(is)g(the)i(v)m(ector)0
-3815 y(cross)f(pro)s(duct.)40 b(In)30 b(matrix)f(form)h(this)g(is)1011
-3922 y Fi(2)1011 4068 y(6)1011 4118 y(6)1011 4168 y(6)1011
-4221 y(4)1125 3996 y Fq(_)-42 b Fo(q)1149 4011 y Fh(b)p
-Fk(1)1125 4109 y Fq(_)g Fo(q)1149 4124 y Fh(b)p Fk(2)1125
-4222 y Fq(_)g Fo(q)1149 4237 y Fh(b)p Fk(3)1125 4335
-y Fq(_)g Fo(q)1149 4350 y Fh(b)p Fk(4)1260 3922 y Fi(3)1260
-4068 y(7)1260 4118 y(7)1260 4168 y(7)1260 4221 y(5)1340
-4166 y Fq(=)1446 4104 y Fo(!)p 1446 4145 V 1453 4228
-a Fq(2)1531 3922 y Fi(2)1531 4068 y(6)1531 4118 y(6)1531
-4168 y(6)1531 4221 y(4)1688 3996 y Fq(0)180 b Fo(!)1970
-4010 y Fk(3)2127 3996 y Fl(\000)p Fo(!)2255 4010 y Fk(2)2377
-3996 y Fo(!)2434 4010 y Fk(1)1628 4109 y Fl(\000)p Fo(!)1756
-4123 y Fk(3)1938 4109 y Fq(0)g Fo(!)2220 4123 y Fk(1)2377
-4109 y Fo(!)2434 4123 y Fk(2)1663 4222 y Fo(!)1720 4236
-y Fk(2)1878 4222 y Fl(\000)p Fo(!)2006 4236 y Fk(1)2188
-4222 y Fq(0)144 b Fo(!)2434 4236 y Fk(3)1628 4335 y Fl(\000)p
-Fo(!)1756 4349 y Fk(1)1878 4335 y Fl(\000)p Fo(!)2006
-4349 y Fk(2)2127 4335 y Fl(\000)p Fo(!)2255 4349 y Fk(3)2402
-4335 y Fq(0)2515 3922 y Fi(3)2515 4068 y(7)2515 4118
-y(7)2515 4168 y(7)2515 4221 y(5)2585 3922 y(2)2585 4068
-y(6)2585 4118 y(6)2585 4168 y(6)2585 4221 y(4)2682 3996
-y Fo(q)2723 4011 y Fh(b)p Fk(1)2682 4109 y Fo(q)2723
-4124 y Fh(b)p Fk(2)2682 4222 y Fo(q)2723 4237 y Fh(b)p
-Fk(3)2682 4335 y Fo(q)2723 4350 y Fh(b)p Fk(4)2834 3922
-y Fi(3)2834 4068 y(7)2834 4118 y(7)2834 4168 y(7)2834
-4221 y(5)0 4522 y Fq(Notice)31 b(that)g(the)g(4)21 b
-Fl(\002)e Fq(4)31 b(matrix)f(is)f(sk)m(ew)i(symmetric)f(\(hence)h(its)e
-(matrix)h(exp)s(onen)m(tial)f(is)h(orthogonal\).)0 4806
-y Fp(References)0 5009 y Fq([Mul])127 b(Larry)30 b(Mullins.)37
-b(Course)30 b(4160:)43 b(Quaternions.)c(Course)30 b(notes.)0
-5192 y([R)-10 b(W91])47 b(M.)41 b(H.)g(Rheinfurth)d(and)h(H.)i(B.)g
-(Wilson.)70 b(Metho)s(ds)40 b(of)h(applied)d(dynamics.)69
-b(T)-8 b(ec)m(hnical)40 b(Rep)s(ort)337 5305 y(NASA)30
-b(RP-1262,)j(NASA,)e(George)h(C.)e(Marshall)f(Space)h(Fligh)m(t)g(Cen)m
-(ter,)h(1991.)p eop
-14 13 bop 0 527 a Fp(Index)0 709 y Fq(conjugate)166 821
-y(quaternion,)30 b(3)0 1017 y(Euler)f(angles)166 1130
-y(quaternions,)g(6)0 1326 y(Octa)m(v)m(e)166 1439 y Fj(qinv)p
-Fq(,)h(3)166 1552 y Fj(qmult)p Fq(,)f(3)166 1665 y Fj(qtrans)p
-Fq(,)g(4)166 1778 y(qtransv,)h(8)166 1891 y(qtransvmat,)h(8)166
-2004 y Fj(quaternion)p Fq(,)d(2)0 2200 y(quaternions)166
-2313 y(as)j(co)s(ordinate)f(rotations,)h(3)166 2425 y(co)s(ordinate)f
-(transformation,)g(4)166 2538 y(co)s(ordinate)g(transformation)g
-(matrices,)h(6)166 2651 y(cross)g(pro)s(ducts,)e(2)166
-2764 y(de\014nition,)f(2)166 2877 y(deriv)-5 b(ativ)m(es,)30
-b(12)166 2990 y(Euler)f(angles,)h(6)166 3103 y(m)m(ultiplication,)e(2)
-166 3216 y(unit)h(quaternions,)g(3)1905 5656 y(14)p eop
-end
-userdict /end-hook known{end-hook}if
--- a/extra/quaternion_oo/devel/quaternion_arrays.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-i = ones (3, 3);
-
-w = 2*i;
-x = 3*i;
-y = 4*i;
-z = 5*i;
-
-q = quaternion (w, x, y, z)
-
-q .* conj (q)
-
-
-%{
-
-octave:1> quaternion_matrices 
-q.w =
-   2   2   2
-   2   2   2
-   2   2   2
-
-q.x =
-   3   3   3
-   3   3   3
-   3   3   3
-
-q.y =
-   4   4   4
-   4   4   4
-   4   4   4
-
-q.z =
-   5   5   5
-   5   5   5
-   5   5   5
-
-ans.w =
-   54   54   54
-   54   54   54
-   54   54   54
-
-ans.x =
-   0   0   0
-   0   0   0
-   0   0   0
-
-ans.y =
-   0   0   0
-   0   0   0
-   0   0   0
-
-ans.z =
-   0   0   0
-   0   0   0
-   0   0   0
-
-octave:2> 
-
-%}
\ No newline at end of file
Binary file extra/quaternion_oo/doc/quaternion.pdf has changed
--- a/extra/quaternion_oo/inst/@quaternion/abs.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-## Copyright (C) 2010, 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{qabs} =} abs (@var{q})
-## Modulus of a quaternion.
-##
-## @example
-## q = w + x*i + y*j + z*k
-## abs (q) = sqrt (w.^2 + x.^2 + y.^2 + z.^2)
-## @end example
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: August 2010
-## Version: 0.2
-
-function b = abs (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  b = sqrt (norm2 (a));
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/blkdiag.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{q} =} blkdiag (@var{q1}, @var{q2}, @dots{})
-## Block-diagonal concatenation of quaternions.
-## @end deftypefn
-
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: December 2011
-## Version: 0.1
-
-function q = blkdiag (varargin)
-
-  tmp = cellfun (@quaternion, varargin);  # uniformoutput = true !
-
-  w = blkdiag (tmp.w);
-  x = blkdiag (tmp.x);
-  y = blkdiag (tmp.y);
-  z = blkdiag (tmp.z);
-
-  q = quaternion (w, x, y, z);
-
-endfunction
-
-
-%!shared C, D
-%! Aw = [2, 6; 10, 14];
-%! Ax = [3, 7; 11, 15];
-%! Ay = [4, 8; 12, 16];
-%! Az = [5, 9; 13, 17];
-%! A = quaternion (Aw, Ax, Ay, Az);
-%!
-%! Bw = [2, 6, 10; 14, 18, 22];
-%! Bx = [3, 7, 11; 15, 19, 23];
-%! By = [4, 8, 12; 16, 20, 24];
-%! Bz = [5, 9, 13; 17, 21, 25];
-%! B = quaternion (Bw, Bx, By, Bz);
-%!
-%! C = blkdiag (A, B);
-%!
-%! Dw = blkdiag (Aw, Bw);
-%! Dx = blkdiag (Ax, Bx);
-%! Dy = blkdiag (Ay, By);
-%! Dz = blkdiag (Az, Bz);
-%! D = quaternion (Dw, Dx, Dy, Dz);
-%!assert (C == D);
--- a/extra/quaternion_oo/inst/@quaternion/cat.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{q} =} cat (@var{dim}, @var{q1}, @var{q2}, @dots{})
-## Concatenation of quaternions along dimension @var{dim}.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.1
-
-function q = cat (dim, varargin)
-
-  tmp = cellfun (@quaternion, varargin);  # uniformoutput = true !
-
-  w = cat (dim, tmp.w);
-  x = cat (dim, tmp.x);
-  y = cat (dim, tmp.y);
-  z = cat (dim, tmp.z);
-
-  q = quaternion (w, x, y, z);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/columns.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{nc} =} columns (@var{q})
-## Return number of columns @var{nc} of quaternion array @var{q}.
-## @end deftypefn
-
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function c = columns (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  c = columns (a.w);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/conj.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{q} =} conj (@var{q})
-## Return conjugate of a quaternion.
-##
-## @example
-## q = w + x*i + y*j + z*k
-## conj (q) = w - x*i - y*j - z*k
-## @end example
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = conj (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  a.x = -a.x;
-  a.y = -a.y;
-  a.z = -a.z;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/ctranspose.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Conjugate transpose of a quaternion.  Used by Octave for "q'".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = ctranspose (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  a = conj (transpose (a));
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/diag.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{q} =} diag (@var{v})
-## @deftypefnx {Function File} {@var{q} =} diag (@var{v}, @var{k})
-## Return a diagonal quaternion matrix with quaternion vector V on diagonal K.
-## The second argument is optional. If it is positive,
-## the vector is placed on the K-th super-diagonal.
-## If it is negative, it is placed on the -K-th sub-diagonal.
-## The default value of K is 0, and the vector is placed
-## on the main diagonal.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = diag (a, b = 0)
-
-  if (nargin == 0 || nargin > 2)
-    print_usage ();
-  endif
-
-  a.w = diag (a.w, b);
-  a.x = diag (a.x, b);
-  a.y = diag (a.y, b);
-  a.z = diag (a.z, b);
-
-endfunction
-
-
-%!shared R, S
-%! Q = quaternion (2, 3, 4, 5);
-%! R = diag ([Q, Q, Q]);
-%! W = diag ([2, 2, 2]);
-%! X = diag ([3, 3, 3]);
-%! Y = diag ([4, 4, 4]);
-%! Z = diag ([5, 5, 5]);
-%! S = quaternion (W, X, Y, Z);
-%!assert (R == S);
--- a/extra/quaternion_oo/inst/@quaternion/diff.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-## Copyright (c) 1998, 2000, 2005, 2007 Auburn University.
-## Copyright (c) 2011 Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{qdot} =} diff (@var{q}, @var{omega})
-## Derivative of a quaternion.
-##
-## Let Q be a quaternion to transform a vector from a fixed frame to
-## a rotating frame.  If the rotating frame is rotating about the
-## [x, y, z] axes at angular rates [wx, wy, wz], then the derivative
-## of Q is given by
-##
-## @example
-## Q' = diff(Q, omega)
-## @end example
-##
-## If the passive convention is used (rotate the frame, not the vector),
-## then
-##
-## @example
-## Q' = diff(Q,-omega)
-## @end example
-## @end deftypefn
-
-## Adapted from: qderiv by A. S. Hodel <a.s.hodel@eng.auburn.edu>
-
-function qd = diff (q, Omega)
-
-  if (nargin != 2)
-    print_usage ();
-  endif
-
-  if (! isa (q, "quaternion") || ! isscalar (q.w))
-    error ("quaternion: first argument '%s' must be a scalar quaternion", inputname(1));
-  endif
-
-  Omega = vec (Omega);
-
-  if (length (Omega) != 3)
-    error ("quaternion: second argument '%s' must be a length 3 vector", inputname(2));
-  endif
-
-  qd = 0.5 * quaternion (Omega(1), Omega(2), Omega(3)) * q;
-
-endfunction
-
-%!shared q
-%! q = quaternion(3,1,0,0);
-
-%!assert(quaternion(0,0,0.5,1.5) == diff(q,[0 0 1]))
-%!assert(quaternion(0,0,2,1) == diff(q,[0 1 1]))
--- a/extra/quaternion_oo/inst/@quaternion/display.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-## Copyright (C) 2010, 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Display routine for quaternions.  Used by Octave internally.
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.2
-
-function display (q)
-
-  name = inputname(1);
-  s = size (q);
-  
-  if (length (s) == 2 && all (s == 1))  # scalar quaternion
-    w = num2str (q.w, 4);
-    x = __num2str__ (q.x);
-    y = __num2str__ (q.y);
-    z = __num2str__ (q.z);
-    disp ([name, " = ", w, x, "i" y, "j", z, "k"]);
-    disp ("");
-  else                                  # non-scalar quaternion
-    disp ([name, ".w ="]);
-    disp (q.w);
-    disp ("");
-    disp ([name, ".x ="]);
-    disp (q.x);
-    disp ("");
-    disp ([name, ".y ="]);
-    disp (q.y);
-    disp ("");
-    disp ([name, ".z ="]);
-    disp (q.z);
-    disp ("");
-  endif
-
-endfunction
-
-
-function str = __num2str__ (num)
-
-  if (sign (num) == -1)
-    str = " - ";
-  else
-    str = " + ";
-  endif
-  
-  str = [str, num2str(abs (num), 4)];
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/eq.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Equal to operator for two quaternions.  Used by Octave for "q1 == q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function flg = eq (a, b)
-
-  if (! isa (a, "quaternion"))
-    a = quaternion (a);
-  endif
-
-  if (! isa (b, "quaternion"))
-    b = quaternion (b);
-  endif
-
-  flg = (a.w == b.w) && (a.x == b.x) && (a.y == b.y) && (a.z == a.z);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/exp.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{qexp} =} exp (@var{q})
-## Exponential of a quaternion.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.1
-
-function q = exp (q)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  normv = normv (q);
-  exps = exp (q.w);
-  sinv = sin (normv);
-
-  q.w = exps .* cos (normv);    
-  q.x = exps .* (q.x ./ normv) .* sinv;
-  q.y = exps .* (q.y ./ normv) .* sinv;
-  q.z = exps .* (q.z ./ normv) .* sinv;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/horzcat.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Horizontal concatenation of quaternions.  Used by Octave for "[q1, q2]".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = horzcat (varargin)
-
-  tmp = cellfun (@quaternion, varargin);  # uniformoutput = true !
-
-  w = horzcat (tmp.w);
-  x = horzcat (tmp.x);
-  y = horzcat (tmp.y);
-  z = horzcat (tmp.z);
-
-  q = quaternion (w, x, y, z);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/inv.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-## Copyright (C) 2010, 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{qinv} =} inv (@var{q})
-## Return inverse of a quaternion.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.2
-
-function a = inv (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  if (isscalar (a.w))
-    norm2 = norm2 (a);
-    a.w = a.w / norm2;
-    a.x = -a.x / norm2;
-    a.y = -a.y / norm2;
-    a.z = -a.z / norm2;
-  else
-    ## TODO: quaternion arrays
-    error ("quaternion: inv: implemented for scalar quaternions only");
-  endif
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/ispure.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{flg} =} ispure (@var{q})
-## Return 1 if scalar part of quaternion is zero, otherwise return 0
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function flg = ispure (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  flg = all ((abs (a.w) < eps)(:));
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/ldivide.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Element-wise left division for quaternions.  Used by Octave for "q1 .\\ q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = ldivide (a, b)
-
-  q = a.^-1 .* b;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/log.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{qlog} =} log (@var{q})
-## Logarithmus naturalis of a quaternion.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.1
-
-function q = log (q)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  normq = abs (q);
-  normv = normv (q);
-  acossq = acos (q.w ./ normq);
-
-  q.w = log (normq);    
-  q.x = (q.x ./ normv) .* acossq;
-  q.y = (q.y ./ normv) .* acossq;
-  q.z = (q.z ./ normv) .* acossq;
-  
-  ## FIXME: q = quaternion (2, 3, 4, 5)
-  ##        p = log (exp (q))
-  ##        p.v is wrong, probably somehow related to acos
-  ## NOTE:  p = exp (log (q)) is calculated correctly
-  ## NOTE:  qtfm 1.9 returns the same "wrong" result
-
-endfunction
-
-
-%!shared A, B
-%! Aw = [2, 6, 10; 14, 18, 22];
-%! Ax = [3, 7, 11; 15, 19, 23];
-%! Ay = [4, 8, 12; 16, 20, 24];
-%! Az = [5, 9, 13; 17, 21, 25];
-%! A = quaternion (Aw, Ax, Ay, Az);
-%!
-%! B = exp (log (A));
-%!
-%!assert (A.w, B.w, 1e-4);
-%!assert (A.x, B.x, 1e-4);
-%!assert (A.y, B.y, 1e-4);
-%!assert (A.z, B.z, 1e-4);
--- a/extra/quaternion_oo/inst/@quaternion/minus.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Subtraction of two quaternions.  Used by Octave for "q1 - q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = minus (a, b)
-
-  if (! isa (a, "quaternion"))
-    a = quaternion (a);
-  endif
-
-  if (! isa (b, "quaternion"))
-    b = quaternion (b);
-  endif
-
-  a.w = a.w - b.w;
-  a.x = a.x - b.x;
-  a.y = a.y - b.y;
-  a.z = a.z - b.z;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/mldivide.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Matrix left division for quaternions.  Used by Octave for "q1 \\ q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = mldivide (a, b)
-
-  q = inv (a) * b;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/mpower.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-## Copyright (C) 2010, 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Matrix power operator of quaternions.  Used by Octave for "q^x".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.2
-
-function q = mpower (a, b)
-
-  [r, c] = size (a);
-  
-  if (r != c)
-    error ("quaternion: mpower: quaternion matrix must be square");
-  endif
-  
-  if (r == 1 && c == 1)                 # a scalar, b?
-    q = a .^ b;                         # b could be a quaternion
-  elseif (is_real_array (b) && isscalar (b) && fix (b) == b)
-    e = fix (abs (b));
-    switch (sign (b))
-      case -1                           # q^-e
-        a = inv (a);
-        q = a;
-      case 0                            # q^0
-        q = eye (r);                    # alternative: q = quaternion (eye (r))
-        return;
-      case 1;                           # q^e
-        q = a;
-    endswitch  
-    for k = 2 : e
-      q *= a;                           # improvement?: q^8 = ((q^2)^2)^2, q^9 = (((q^2)^2)^2)*q
-    endfor
-  else
-    error ("quaternion: mpower: case not implemented yet");
-    q = expm (logm (a) * b);            # don't know whether this formula is correct
-  endif
-
-  ## TODO: - q1 ^ q2
-  ##       - arrays
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/mrdivide.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Matrix right division for quaternions.  Used by Octave for "q1 / q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = mrdivide (a, b)
-
-  q = a * inv (b);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/mtimes.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Matrix multiplication of two quaternions. Used by Octave for "q1 * q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = mtimes (a, b)
-
-  if (! isa (a, "quaternion"))
-    a = quaternion (a);
-  endif
-
-  if (! isa (b, "quaternion"))
-    b = quaternion (b);
-  endif
-
-  w = a.w*b.w - a.x*b.x - a.y*b.y - a.z*b.z;
-  x = a.y*b.z - a.z*b.y + a.w*b.x + a.x*b.w;
-  y = a.z*b.x - a.x*b.z + a.w*b.y + a.y*b.w;
-  z = a.x*b.y - a.y*b.x + a.w*b.z + a.z*b.w;
-
-  a.w = w;
-  a.x = x;
-  a.y = y;
-  a.z = z;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/norm.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{n} =} norm (@var{q})
-## Norm of a quaternion.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.1
-
-function n = norm (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-  
-  if (! isscalar (a.w))
-    warning ("norm: use 'abs' to calculate the lengths of quaternion arrays");
-    error ("norm: only the 2-norm of scalar quaternions is implemented until now");
-  endif
-
-  n = abs (a);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/plus.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Addition of two quaternions.  Used by Octave for "q1 + q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = plus (a, b)
-
-  if (! isa (a, "quaternion"))
-    a = quaternion (a);
-  endif
-
-  if (! isa (b, "quaternion"))
-    b = quaternion (b);
-  endif
-
-  a.w = a.w + b.w;
-  a.x = a.x + b.x;
-  a.y = a.y + b.y;
-  a.z = a.z + b.z;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/power.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-## Copyright (C) 2010, 2011   Lukas F. Reichlin
-## Copyright (c) 2011 Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Power operator of quaternions.  Used by Octave for "q.^x".
-## Exponent x can be scalar or of appropriate size.
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.3
-
-function a = power (a, b)
-
-  if (isa (b, "quaternion"))          # exponent is a quaternion
-    a = exp (log (a) .* b);           # a could be real, but log doesn't care
-  elseif (! isreal (b))
-    error ("quaternion:invalidArgument", "quaternion: power: invalid exponent");
-  elseif (b == -1)                    # special case for ldivide and rdivide
-    norm2 = norm2 (a);                # a is quaternion because b is not,
-    a.w = a.w ./ norm2;               # otherwise octave wouldn't call
-    a.x = -a.x ./ norm2;              # quaternion's power operator.
-    a.y = -a.y ./ norm2;
-    a.z = -a.z ./ norm2;
-  else                                # exponent is real
-    na = abs (a);
-    nv = normv (a);
-    th = acos (a.w ./ na);
-    nab = na.^b;
-    snt = sin (b.*th);
-    a.w = nab .* cos (b.*th);
-    a.x = (a.x ./ nv) .* nab .* snt;
-    a.y = (a.y ./ nv) .* nab .* snt;
-    a.z = (a.z ./ nv) .* nab .* snt;
-  endif
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/private/norm2.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{norm2} =} norm2 (@var{q})
-## Return squared norm of a quaternion.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.1
-
-function ret = norm2 (a)
-
-  ret = a.w.^2 + a.x.^2 + a.y.^2 + a.z.^2;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/private/normv.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{normv} =} normv (@var{q})
-## Return norm of the vector part.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.1
-
-function ret = normv (a)
-
-  ret = sqrt (a.x.^2 + a.y.^2 + a.z.^2);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/quaternion.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-## Copyright (C) 2010, 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{q} =} quaternion (@var{w})
-## @deftypefnx {Function File} {@var{q} =} quaternion (@var{x}, @var{y}, @var{z})
-## @deftypefnx {Function File} {@var{q} =} quaternion (@var{w}, @var{x}, @var{y}, @var{z})
-## Constructor for quaternions - create or convert to quaternion.
-##
-## @example
-## q = w + x*i + y*j + z*k
-## @end example
-##
-## Arguments @var{w}, @var{x}, @var{y} and @var{z} can be scalars or
-## matrices, but they must be real and of equal size.  If scalar part
-## @var{w} or components @var{x}, @var{y} and @var{z} of the vector
-## part are not specified, zero matrices of appropriate size are
-## assumed.
-##
-## @strong{Example}
-## @example
-## @group
-## octave:1> q = quaternion (2)
-## q = 2 + 0i + 0j + 0k
-## 
-## octave:2> q = quaternion (3, 4, 5)
-## q = 0 + 3i + 4j + 5k
-## 
-## octave:3> q = quaternion (2, 3, 4, 5)
-## q = 2 + 3i + 4j + 5k
-## @end group
-## @end example
-## @example
-## @group
-## octave:4> w = [2, 6, 10; 14, 18, 22];
-## octave:5> x = [3, 7, 11; 15, 19, 23];
-## octave:6> y = [4, 8, 12; 16, 20, 24];
-## octave:7> z = [5, 9, 13; 17, 21, 25];
-## octave:8> q = quaternion (w, x, y, z)
-## q.w =
-##     2    6   10
-##    14   18   22
-## 
-## q.x =
-##     3    7   11
-##    15   19   23
-## 
-## q.y =
-##     4    8   12
-##    16   20   24
-## 
-## q.z =
-##     5    9   13
-##    17   21   25
-## 
-## octave:9> 
-## @end group
-## @end example
-##
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.2
-
-function q = quaternion (a, b, c, d)
-
-  switch (nargin)
-    case 1
-      if (isa (a, "quaternion"))        # quaternion (q)
-        q = a;
-        return;
-      elseif (is_real_array (a))        # quaternion (w)
-        b = c = d = zeros (size (a));
-      else
-        print_usage ();
-      endif
-    case 3                              # quaternion (x, y, z)
-      d = c;
-      c = b;
-      b = a;
-      a = zeros (size (a));
-    case 4                              # quaternion (w, x, y, z)
-      ## nothing to do here, just prevent case "otherwise"
-    otherwise
-      print_usage ();
-  endswitch
-
-  if (! is_real_array (a, b, c, d))
-    error ("quaternion: arguments must be real matrices");
-  endif
-
-  if (! size_equal (a, b, c, d));
-    error ("quaternion: arguments must have identical sizes");
-  endif
-
-  q = class (struct ("w", a, "x", b, "y", c, "z", d), "quaternion");
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/rdivide.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Element-wise right division for quaternions.  Used by Octave for "q1 ./ q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = rdivide (a, b)
-
-  q = a .* b.^-1;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/rows.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{nr} =} rows (@var{q})
-## Return number of rows @var{nr} of quaternion array @var{q}.
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function r = rows (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  r = rows (a.w);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/size.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{nvec} =} size (@var{q})
-## @deftypefnx {Function File} {@var{n} =} size (@var{q}, @var{dim})
-## @deftypefnx {Function File} {[@var{nx}, @var{ny}, @dots{}] =} size (@var{q})
-## Return size of quaternion arrays.
-##
-## @strong{Inputs}
-## @table @var
-## @item q
-## Quaternion object.
-## @item dim
-## If given a second argument, @command{size} will return the size of the
-## corresponding dimension.
-## @end table
-##
-## @strong{Outputs}
-## @table @var
-## @item nvec
-## Row vector.  The first element is the number of rows and the second
-## element the number of columns.  If @var{q} is an n-dimensional array
-## of quaternions, the n-th element of @var{nvec} corresponds to the
-## size of the n-th dimension of @var{q}.
-## @item n
-## Scalar value.  The size of the dimension @var{dim}.
-## @item nx
-## Number of rows.
-## @item ny
-## Number of columns.
-## @item @dots{}
-## Sizes of the 3rd to n-th dimensions.
-## @end table
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.2
-
-function varargout = size (a, b)
-
-  switch (nargout)
-    case {0, 1}
-      switch (nargin)
-        case 1                          # nvec = size (q)
-          varargout{1} = size (a.w);
-        case 2                          # n = size (q, dim)
-          varargout{1} = size (a.w, b);
-        otherwise
-          print_usage ();
-      endswitch
-
-    otherwise
-      if (nargin == 1)                  # [nx, ny, ...] = size (q)
-        varargout = num2cell (size (a.w));
-      else
-        print_usage ();
-      endif
-  endswitch
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/subsasgn.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Subscripted assignment for quaternions.
-## Used by Octave for "q.key = value".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.2
-
-function q = subsasgn (q, idx, val)
-
-  switch (idx(1).type)
-    case "()"                                                    # q(...) = val
-      if (length (idx(1).subs) == 1 && isa (val, "quaternion"))  # required by horzcat, vertcat, cat, ...
-        q(idx(1).subs{:}) = val;                                 # q = cellfun (@quaternion, varargin)
-      else                                                       # general case
-        val = quaternion (val);
-        w = subsasgn (q.w, idx, val.w);
-        x = subsasgn (q.x, idx, val.x);
-        y = subsasgn (q.y, idx, val.y);
-        z = subsasgn (q.z, idx, val.z);
-        q = quaternion (w, x, y, z);
-      endif
-
-    case "."                                                     # q.w = val
-      if (! is_real_array (val))
-        error ("quaternion: subsasgn: invalid argument type, require real array");
-      endif
-      if (! size_equal (subsref (q.w, idx(2:end)), val))
-        error ("quaternion: subsasgn: invalid argument size [%s], require dimensions [%s]", \
-               num2str (size (val), "%d "), num2str (size (subsref (q.w, idx(2:end))), "%d "));
-      endif
-      switch (tolower (idx(1).subs))
-        case {"w", "s"}
-          q.w = subsasgn (q.w, idx(2:end), val);
-        case {"x", "i"}
-          q.x = subsasgn (q.x, idx(2:end), val);
-        case {"y", "j"}
-          q.y = subsasgn (q.y, idx(2:end), val);
-        case {"z", "k"}
-          q.z = subsasgn (q.z, idx(2:end), val);
-        otherwise
-          error ("quaternion: subsasgn: invalid subscript name '%s'", idx(1).subs);
-      endswitch
-
-    otherwise
-      error ("quaternion: subsasgn: invalid subscript type '%s'", idx(1).type);
-  endswitch
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/subsref.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-## Copyright (C) 2010, 2011, 2012   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Subscripted reference for quaternions.  Used by Octave for "q.w".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.4
-
-function ret = subsref (q, s)
-
-  if (numel (s) == 0)
-    ret = q;
-    return;
-  endif
-
-  switch (s(1).type)
-    case "."                                # q.w
-      switch (tolower (s(1).subs))
-        case {"w", "s"}                     # scalar part
-          ret = subsref (q.w, s(2:end));
-        case {"x", "i"}
-          ret = subsref (q.x, s(2:end));
-        case {"y", "j"}
-          ret = subsref (q.y, s(2:end));
-        case {"z", "k"}
-          ret = subsref (q.z, s(2:end));
-        case "v"                            # vector part, scalar part set to zero
-          q.w = zeros (size (q.w));
-          ret = subsref (q, s(2:end));
-        otherwise
-          error ("quaternion: invalid subscript name '%s'", s(1).subs);
-      endswitch
-
-    case "()"                               # q(...)
-      w = subsref (q.w, s(1));
-      x = subsref (q.x, s(1));
-      y = subsref (q.y, s(1));
-      z = subsref (q.z, s(1));
-      tmp = quaternion (w, x, y, z);
-      ret = subsref (tmp, s(2:end));
-      
-    otherwise
-      error ("quaternion: invalid subscript type '%s'", s(1).type);
-  endswitch
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/times.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Element-wise multiplication of two quaternions.  Used by Octave for "q1 .* q2".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = times (a, b)
-
-  if (! isa (a, "quaternion"))
-    a = quaternion (a);
-  endif
-
-  if (! isa (b, "quaternion"))
-    b = quaternion (b);
-  endif
-
-  w = a.w .* b.w - a.x .* b.x - a.y .* b.y - a.z .* b.z;
-  x = a.y .* b.z - a.z .* b.y + a.w .* b.x + a.x .* b.w;
-  y = a.z .* b.x - a.x .* b.z + a.w .* b.y + a.y .* b.w;
-  z = a.x .* b.y - a.y .* b.x + a.w .* b.z + a.z .* b.w;
-
-  a.w = w;
-  a.x = x;
-  a.y = y;
-  a.z = z;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/transpose.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Transpose of a quaternion.  Used by Octave for "q.'".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = transpose (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  a.w = transpose (a.w);
-  a.x = transpose (a.x);
-  a.y = transpose (a.y);
-  a.z = transpose (a.z);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/uminus.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Unary minus of a quaternion.  Used by Octave for "-q".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function a = uminus (a)
-
-  a.w = -a.w;
-  a.x = -a.x;
-  a.y = -a.y;
-  a.z = -a.z;
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/unit.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{qn} =} unit (@var{q})
-## Normalize quaternion to length 1 (unit quaternion).
-##
-## @example
-## q = w + x*i + y*j + z*k
-## unit (q) = q ./ sqrt (w.^2 + x.^2 + y.^2 + z.^2)
-## @end example
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.1
-
-function q = unit (a)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  q = a ./ abs (a);
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/uplus.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-## Copyright (C) 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Unary plus of a quaternion.  Used by Octave for "+q".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: November 2011
-## Version: 0.1
-
-function a = uplus (a)
-
-  ## nothing to do here
-
-endfunction
--- a/extra/quaternion_oo/inst/@quaternion/vertcat.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## Vertical concatenation of quaternions.  Used by Octave for "[q1; q2]".
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = vertcat (varargin)
-
-  tmp = cellfun (@quaternion, varargin);  # uniformoutput = true !
-
-  w = vertcat (tmp.w);
-  x = vertcat (tmp.x);
-  y = vertcat (tmp.y);
-  z = vertcat (tmp.z);
-
-  q = quaternion (w, x, y, z);
-
-endfunction
--- a/extra/quaternion_oo/inst/q2rot.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-## Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, 2007 Auburn University
-## Copyright (C) 2010, 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {[@var{axis}, @var{angle}] =} q2rot (@var{q})
-## Extract vector/angle form of a unit quaternion @var{q}.
-##
-## @strong{Inputs}
-## @table @var
-## @item q
-## Unit quaternion describing the rotation.
-## @end table
-##
-## @strong{Outputs}
-## @table @var
-## @item axis
-## Eigenaxis as a 3-d unit vector @code{[x, y, z]}.
-## @item angle
-## Rotation angle in radians.  The positive direction is
-## determined by the right-hand rule applied to @var{axis}.
-## @end table
-##
-## @strong{Example}
-## @example
-## @group
-## octave:1> axis = [0, 0, 1]
-## axis =
-##    0   0   1
-## octave:2> angle = pi/4
-## angle =  0.78540
-## octave:3> q = rot2q (axis, angle)
-## q = 0.9239 + 0i + 0j + 0.3827k
-## octave:4> [vv, th] = q2rot (q)
-## vv =
-##    0   0   1
-## th =  0.78540
-## octave:5> theta = th*180/pi
-## theta =  45.000
-## octave:6> 
-## @end group
-## @end example
-##
-## @end deftypefn
-
-## Adapted from: quaternion by A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function [vv, theta] = q2rot (q)
-
-  if (nargin != 1 || nargout != 2)
-    print_usage ();
-  endif
-
-  if (! isa (q, "quaternion") || ! isscalar (q.w))
-    error ("q2rot: require scalar quaternion as input");
-  endif
-
-  if (abs (norm (q) - 1) > 1e-12)
-    warning ("q2rot: ||q||=%e, setting=1 for vv, theta", norm (q));
-    q = unit (q);
-  endif
-
-  s = q.s;
-  vv = [q.x, q.y, q.z];
-
-  theta = acos (s) * 2;
-
-  if (abs (theta) > pi)
-    theta = theta - sign (theta) * pi;
-  endif
-
-  sin_th_2 = norm (vv);
-
-  if (sin_th_2 != 0)
-    vv ./= sin_th_2;
-  endif
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/inst/qi.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## @deftypefn {Function File} {} qi
-## Create x-component of a quaternion's vector part.
-##
-## @example
-## q = w + x*qi + y*qj + z*qk
-## @end example
-##
-## @strong{Example}
-## @example
-## @group
-## octave:1> q1 = quaternion (1, 2, 3, 4)
-## q1 = 1 + 2i + 3j + 4k
-## octave:2> q2 = 1 + 2*qi + 3*qj + 4*qk
-## q2 = 1 + 2i + 3j + 4k
-## octave:3> 
-## @end group
-## @end example
-##
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = qi
-
-  if (nargin != 0)
-    print_usage ();
-  endif
-
-  q = quaternion (0, 1, 0, 0);
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/inst/qj.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## @deftypefn {Function File} {} qj
-## Create y-component of a quaternion's vector part.
-##
-## @example
-## q = w + x*qi + y*qj + z*qk
-## @end example
-##
-## @strong{Example}
-## @example
-## @group
-## octave:1> q1 = quaternion (1, 2, 3, 4)
-## q1 = 1 + 2i + 3j + 4k
-## octave:2> q2 = 1 + 2*qi + 3*qj + 4*qk
-## q2 = 1 + 2i + 3j + 4k
-## octave:3> 
-## @end group
-## @end example
-##
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = qj
-
-  if (nargin != 0)
-    print_usage ();
-  endif
-
-  q = quaternion (0, 0, 1, 0);
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/inst/qk.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-## Copyright (C) 2010   Lukas F. Reichlin
-##
-## 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/>.
-
-## @deftypefn {Function File} {} qk
-## Create z-component of a quaternion's vector part.
-##
-## @example
-## q = w + x*qi + y*qj + z*qk
-## @end example
-##
-## @strong{Example}
-## @example
-## @group
-## octave:1> q1 = quaternion (1, 2, 3, 4)
-## q1 = 1 + 2i + 3j + 4k
-## octave:2> q2 = 1 + 2*qi + 3*qj + 4*qk
-## q2 = 1 + 2i + 3j + 4k
-## octave:3> 
-## @end group
-## @end example
-##
-## @end deftypefn
-
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = qk
-
-  if (nargin != 0)
-    print_usage ();
-  endif
-
-  q = quaternion (0, 0, 0, 1);
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/inst/rot2q.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-## Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, 2007 Auburn University
-## Copyright (C) 2010, 2011   Lukas F. Reichlin
-##
-## 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/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{q} =} rot2q (@var{axis}, @var{angle})
-## Create unit quaternion @var{q} which describes a rotation of
-## @var{angle} radians about the vector @var{axis}.  This function uses
-## the active convention where the vector @var{axis} is rotated by @var{angle}
-## radians.  If the coordinate frame should be rotated by @var{angle}
-## radians, also called the passive convention, this is equivalent
-## to rotating the @var{axis} by @var{-angle} radians.
-##
-## @strong{Inputs}
-## @table @var
-## @item axis
-## Vector @code{[x, y, z]} describing the axis of rotation.
-## @item angle
-## Rotation angle in radians.  The positive direction is
-## determined by the right-hand rule applied to @var{axis}.
-## @end table
-##
-## @strong{Outputs}
-## @table @var
-## @item q
-## Unit quaternion describing the rotation.
-## @end table
-##
-## @strong{Example}
-## @example
-## @group
-## octave:1> axis = [0, 0, 1];
-## octave:2> angle = pi/4;
-## octave:3> q = rot2q (axis, angle)
-## q = 0.9239 + 0i + 0j + 0.3827k
-## octave:4> v = quaternion (1, 1, 0)
-## v = 0 + 1i + 1j + 0k
-## octave:5> vr = q * v * conj (q)
-## vr = 0 + 0i + 1.414j + 0k
-## octave:6>
-## @end group
-## @end example
-##
-## @end deftypefn
-
-## Adapted from: quaternion by A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-## Created: May 2010
-## Version: 0.1
-
-function q = rot2q (vv, theta)
-
-  if (nargin != 2 || nargout != 1)
-    print_usage ();
-  endif
-
-  if (! isvector (vv) || length (vv) != 3)
-    error ("vv must be a length three vector");
-  endif
-
-  if (! isscalar (theta))
-    error ("theta must be a scalar");
-  endif
-
-  if (norm (vv) == 0)
-    error ("quaternion: vv is zero");
-  endif
-
-  if (abs (norm (vv) - 1) > 1e-12)
-    warning ("quaternion: ||vv|| != 1, normalizing")
-    vv = vv / norm (vv);
-  endif
-
-  if (abs (theta) > 2*pi)
-    warning ("quaternion: |theta| > 2 pi, normalizing")
-    theta = rem (theta, 2*pi);
-  endif
-
-  vv = vv * sin (theta / 2);
-  d = cos (theta / 2);
-  q = quaternion (d, vv(1), vv(2), vv(3));
-
-endfunction
\ No newline at end of file
--- a/extra/quaternion_oo/inst/test_quaternion.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-test @quaternion/blkdiag
-test @quaternion/diag
-test @quaternion/diff
-test @quaternion/log
\ No newline at end of file
--- a/extra/quaternion_oo/src/Makefile	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-all: is_real_array.oct
-
-# helper
-is_real_array.oct: is_real_array.cc
-	mkoctfile is_real_array.cc
-
-clean:
-	rm *.o core octave-core *.oct *~
--- a/extra/quaternion_oo/src/is_real_array.cc	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-
-Copyright (C) 2011   Lukas F. Reichlin
-
-This file is part of LTI Syncope.
-
-LTI Syncope 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.
-
-LTI Syncope is distributed in the hope that it will be 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 LTI Syncope.  If not, see <http://www.gnu.org/licenses/>.
-
-Return true if argument is a real array.
-
-Author: Lukas Reichlin <lukas.reichlin@gmail.com>
-Created: November 2011
-Version: 0.2
-
-*/
-
-#include <octave/oct.h>
-
-DEFUN_DLD (is_real_array, args, nargout,
-   "-*- texinfo -*-\n\
-@deftypefn {Loadable Function} {} is_real_array (@var{a}, @dots{})\n\
-Return true if argument is a real array.\n\
-@var{[]} is a valid array.\n\
-Avoid nasty stuff like @code{true = isreal (\"a\")}.\n\
-@end deftypefn")
-{
-    octave_value retval = true;
-    int nargin = args.length ();
-
-    if (nargin == 0)
-    {
-        print_usage ();
-    }
-    else
-    {
-        for (int i = 0; i < nargin; i++)
-        {
-            // args(i).ndims () should be always >= 2
-            if (args(i).ndims () < 2 || ! args(i).is_numeric_type ()
-                || ! args(i).is_real_type ())
-            {
-                retval = false;
-                break;
-            }
-        }
-    }
-
-    return retval;
-}
--- a/main/quaternion/DESCRIPTION	Wed Mar 28 02:57:39 2012 +0000
+++ b/main/quaternion/DESCRIPTION	Wed Mar 28 03:16:58 2012 +0000
@@ -1,13 +1,11 @@
 Name: quaternion
-Version: 1.0.0
-Date: 2008-07-17
-Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-Maintainer: The Octave-Forge Community
-Title: Quaternion Package
-Description: Package for the manipulation of Quaternion's used for
- frame transformation
-Categories: Mathematics
-Depends: octave (>= 3.1.0)
+Version: 2.0.0
+Date: 2012-03-28
+Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+Maintainer: Lukas Reichlin <lukas.reichlin@gmail.com>
+Title: Quaternion
+Description: Overloaded operators for quaternions
+Depends: octave (>= 3.6.0)
 Autoload: yes
 License: GPL version 3 or later
 Url: http://octave.sf.net
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/INDEX	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,44 @@
+quaternion >> Quaternion
+Quaternions
+  quaternion
+  qi
+  qj
+  qk
+  q2rot
+  rot2q
+Methods
+  @quaternion/abs
+  @quaternion/blkdiag
+  @quaternion/cat
+  @quaternion/columns
+  @quaternion/conj
+  @quaternion/diag
+  @quaternion/diff
+  @quaternion/exp
+  @quaternion/inv
+  @quaternion/ispure
+  @quaternion/log
+  @quaternion/norm
+  @quaternion/rows
+  @quaternion/size
+  @quaternion/unit
+Overloaded Operators
+  @quaternion/ctranspose
+  @quaternion/eq
+  @quaternion/horzcat
+  @quaternion/ldivide
+  @quaternion/minus
+  @quaternion/mldivide
+  @quaternion/mpower
+  @quaternion/mrdivide
+  @quaternion/mtimes
+  @quaternion/plus
+  @quaternion/power
+  @quaternion/rdivide
+  @quaternion/subsasgn
+  @quaternion/subsref
+  @quaternion/times
+  @quaternion/transpose
+  @quaternion/uminus
+  @quaternion/uplus
+  @quaternion/vertcat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/Makefile	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,16 @@
+sinclude ../../Makeconf
+
+PKG_FILES = COPYING DESCRIPTION INDEX NEWS $(wildcard inst/*)
+SUBDIRS = doc/
+
+.PHONY: $(SUBDIRS)
+
+pre-pkg::
+	@for _dir in $(SUBDIRS); do \
+	  $(MAKE) -C $$_dir all; \
+	done
+
+clean:
+	@for _dir in $(SUBDIRS); do \
+	  $(MAKE) -C $$_dir $(MAKECMDGOALS); \
+	done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/NEWS	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,14 @@
+Summary of important user-visible changes for releases of the quaternion package
+
+===============================================================================
+quaternion-2.0.0   Release Date: 2012-03-28   Release Manager: Lukas Reichlin
+===============================================================================
+
+** First official release.  Its main features are:
+   -- Matrices and n-dimensional arrays of quaternions.
+   -- Overloaded operators due to the use of classes.
+   -- Operator semantics similar to Octave’s built-in complex numbers.
+   -- Vectorized code for crunching large quaternion arrays in a speedy manner.
+
+
+===============================================================================
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/INFO	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,3 @@
+With the current Makefile, the folder "devel" and its content
+is ignored by "pkg install".  The folder is intended for draft
+code and other stuff which is not suitable for "normal" users.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/PROJECTS	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,54 @@
+<html>
+<pre>
+Quaternion PROJECTS                                       -*- text -*-
+===================
+
+grep FIXME and/or TODO for more information
+
+
+-------
+General:
+-------
+
+  * Add missing features to quaternion_oo such that it can replace quaternion-1.0.0.
+  
+  * Rename the existion main/quaternion package to extra/quaternion-legacy.
+    Rename extra/quaternion_oo to main/quaternion and release it as quaternion-2.0.0.
+  
+  * See if LaTEX code from Scottedward Hodel's quaternion.ps document is available.
+    Update it to use the commands from quaternion-2.0.0.
+
+  * Secret Wish: Reimplement package completely in C++ similar to the sparsersb package ;-)
+    
+--------
+Features:
+--------
+  
+  * Implement mpower.
+  
+  * Inverses of quaternion arrays.
+  
+  * Add functionality of qderiv and qtrans from quaternion-1.0.0.
+
+  * Finish q2rot and rot2q.
+
+------
+Always:
+------
+
+  * Squash bugs.
+
+  * Write/improve documentation.  If you implement a feature without documentation,
+    nobody besides you will ever use it!  Don't waste your time :-)
+ 
+  * Add description of each input and output argument to texinfo strings of
+    functions on the INDEX list.
+
+  * Add tests.
+
+  * Test the quaternion package on different platforms.
+
+  * Compare results to those from other toolboxes like QTFM.
+
+</pre>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/RELEASE_PACKAGE	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,46 @@
+=====================================================================================
+Prepare quaternion-2.x.y Package for Release
+=====================================================================================
+USAGE: * adapt all paths to your machine
+       * update version number in the commands below
+       * adapt version number and release date in DESCRIPTION
+       * update doc/NEWS
+       * adapt version number in quaternion.tex
+       * update doc/quaternion.pdf
+       * copy-paste entire block at once to the terminal
+       * follow instructions on <http://octave.sourceforge.net/developers.html>
+
+TODO:  * create a nice shell script for this task
+=====================================================================================
+
+cd
+mkdir ~/octave/__TEMP__
+cd
+svn export quaternion ~/octave/__TEMP__/quaternion
+rm -R ~/octave/__TEMP__/quaternion/devel
+cd ~/octave/__TEMP__
+grep -i version quaternion/DESCRIPTION
+tar czf quaternion-2.0.0.tar.gz quaternion/
+md5 quaternion-2.0.0.tar.gz
+md5 quaternion-2.0.0.tar.gz > md5_quaternion_pkg.txt
+uuencode quaternion-2.0.0.tar.gz < quaternion-2.0.0.tar.gz > quaternion-2.0.0.tar.gz.uue
+octave -q --eval \
+"pkg install quaternion-2.0.0.tar.gz"
+octave -q --eval \
+"pkg load generate_html; generate_package_html ('quaternion', 'quaternion-html', 'octave-forge')"
+tar czf quaternion-html.tar.gz quaternion-html
+md5 quaternion-html.tar.gz
+md5 quaternion-html.tar.gz > md5_quaternion_html.txt
+uuencode quaternion-html.tar.gz < quaternion-html.tar.gz > quaternion-html.tar.gz.uue
+cd
+
+
+=====================================================================================
+Aftermath
+=====================================================================================
+
+rm -R ~/octave/__TEMP__
+rm -R ~/octave/quaternion-2.0.0
+
+
+=====================================================================================
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/RV9_Quaternions.txt	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,138 @@
+%% Copyright (c) 2011 Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
+%%
+%%    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
+%%    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/>.
+
+=== Robotics Toolbox Port to Octave ===
+http://petercorke.com/Robotics_Toolbox.html
+With the objective of porting the robotics toolbox version 9 to octave forge
+we list the classes relate to quaternions.
+
+The idea is to see when this class has been fully ported, that is:
+   For a method x of the quaternion class, there is a method y in the
+   quaterions_oo package that
+   1.Method y produces output isomorphic to output of x.
+   2.Method y receives input isomorphic to input of method y.
+
+   When the method y exist such that fullfils 1. and 2.; we say there is
+   an equivalent method in the packages quaternions_oo.
+
+   If additonally the method y in the quaternions_oo package has the same name,
+   then we say that the method x exists in the package.
+
+The naming of the methods is not important, since the Robotics Toolbox for octave
+will have a wrapper class quaternion. This class will emulate the API.
+
+
+object.method(args)
+
+using the trick used here
+[ http://octave.svn.sf.net/viewvc/octave/trunk/octave-forge/main/geometry/inst/io/%40svg/subsref.m?revision=8974&view=markup ]
+
+= Marking convention =
+In the [] field of each method/operator/property add
+
+   e  - There is an isomorphic method (equivalent).
+   x  - There is an isomorphic method with the same name (exist).
+   *  - There is an exact equal method in the package (same input, output and name).
+   b+ - Benchmarked, slower than current method in quaternions_oo.
+   b- - Benchmarked, faster than current
+
+   c  - There is a method with the same name but not isomorphic (conflict).
+
+Example 1:
+A method qc = qconj(q) exist in quaternions_oo that calculates the inverse of a quaternion.
+Then we mark inv as follows
+
+ [e] inv
+
+  - Example 2:
+      A method [h a] = dosomething(q) from in quaternions_oo to calculate something.
+      The method [h] = somethingtodo(q) from  Robotics toolbox to calculate the same.
+
+       [e] somethingtodo
+
+      Since the first argument is the same.
+      The same holds ff [a h] = dosomething(q). Since we need just to swap output arguemnts.
+
+  - Example 3:
+    A method [h] = dosomething(q) from in quaternions_oo to calculate something.
+    The method [h a] = somethingtodo(q) from  Robotics toolbox to calculate the same.
+
+     [ ] somethingtodo
+
+    Since we need to check how to calculate the output a.
+
+  - Example 4:
+    A method [h] = dosomething(q) from in quaternions_oo to calculate something.
+    The method [h a] = somethingtodo(q) from  Robotics toolbox to calculate the same.
+    And you benchmarked the methods givin a positive result for the quaternions_oo.
+
+     [b+] somethingtodo
+
+    The b flag indicates that there is a point of comparision but the methods may not be equivalent.
+
+  - Example 4:
+    A method [h] = dosomething(q) from in quaternions_oo to calculate something.
+    The method [h] = dosomething(q) from  Robotics toolbox to calculate the same.
+    And you benchmarked the methods givin a positive result for the robotics toolbox.
+
+     [*b-] dosomething
+
+    just concatenate flags.
+
+We hope not to run into the c tag.
+
+== Quaternion ==
+DONE  Q = Quaternion() is the identitity quaternion 1<0,0,0> representing a null rotation.
+
+DONE  Q = Quaternion(Q1) is a copy of the quaternion Q1
+
+DONE  Q = Quaternion([S V1 V2 V3]) is a quaternion formed by specifying directly its 4 elements
+
+DONE  Q = Quaternion(S) is a quaternion formed from the scalar S and zero vector part: S<0,0,0>
+
+DONE  Q = Quaternion(V) is a pure quaternion with the specified vector part: 0<V>
+
+DONE  Q = Quaternion(TH, V) is a unit quaternion corresponding to rotation of TH about the vector V.
+
+DONE  Q = Quaternion(R) is a unit quaternion corresponding to the orthonormal rotation matrix R.
+
+DONE  Q = Quaternion(T) is a unit quaternion equivalent to the rotational
+
+= methods =
+DONE [c] inv       return inverse of quaterion
+DONE [e] norm:  Wraps abs from quaternions_oo
+DONE [x] dot  derivative of quaternion with angular velocity w
+DONE [c] display
+DONE [] q2tr
+DONE [*] unit      return unit quaternion
+
+[] plot      same options as trplot()
+[] interp    interpolation (slerp) between q and q2, 0<=s<=1
+[] scale     interpolation (slerp) between identity and q, 0<=s<=1
+
+= Operators =
+DONE [*] q+q2      return elementwise sum of quaternions
+DONE [*] q-q2      return elementwise difference of quaternions
+DONE [*] q*q2      return quaternion product
+DONE [*] q/q2      return q*q2.inv
+
+[*] q*v       rotate vector by quaternion, v is 3x1
+DONE [*] q^n       return q to power n (real)
+
+= Properties (read only)=
+DONE [] s         real part
+DONE [] v         vector part
+DONE [] R         3x3 rotation matrix
+DONE [] T         4x4 homogeneous transform matrix
Binary file main/quaternion/devel/Report_Basile_Graf.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/demoml.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,10 @@
+q = rot2q ([0, 0, 1], pi/4)
+
+[vv, theta] = q2rot (q)
+
+x = quaternion (0, 1, 1, 0)  % nicht normiert
+              % s  x  y  z
+
+rx = q * x * conj (q)  % q x q^-1
+
+[vv, theta] = q2rot (rx)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/generate_quaternion_pdf.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,12 @@
+homedir = pwd ();
+develdir = fileparts (which ("generate_quaternion_pdf"));
+pdfdir = [develdir, "/pdfdoc"];
+cd (pdfdir);
+
+collect_texinfo_strings
+
+for i = 1:5
+  system ("pdftex -interaction batchmode quaternion.tex");
+endfor
+
+cd (homedir);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/makefile_quaternion.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,18 @@
+## ==============================================================================
+## Developer Makefile for OCT-files
+## ==============================================================================
+## USAGE: * fetch quaternion_oo from Octave-Forge by svn
+##        * add quaternion_oo/inst, quaternion_oo/src and quaternion_oo/devel
+##          to your Octave path
+##        * run makefile_quaternion
+## ==============================================================================
+
+homedir = pwd ();
+develdir = fileparts (which ("makefile_quaternion"));
+srcdir = [develdir, "/../src"];
+cd (srcdir);
+
+mkoctfile is_real_array.cc
+
+system ("rm *.o");
+cd (homedir);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/pdfdoc/collect_texinfo_strings.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,41 @@
+% pack_name = "generate_html"
+% pack_name = "control"
+pack_name = "quaternion"
+
+
+% Load Packages
+pkg load "generate_html"
+pkg ("load", pack_name);
+
+% Get list of functions  
+list = pkg ("describe", pack_name);
+
+%list
+
+% Open output file
+fid = fopen ("functions.texi", "w");
+
+for k = 1:numel (list {1}.provides)
+        
+        group = list {1}.provides{k};
+        functions = group.functions;
+
+        % fprintf (fid, '@section %s\n', group.category);
+        fprintf (fid, '@chapter %s\n', group.category);
+        
+        for k=1:numel(functions)
+                [TEXT, FORMAT] = get_help_text (functions(k));
+                fun = functions{k};
+                if (fun(1) == "@")
+                  % fprintf (fid, '@subsection @%s\n', fun);
+                  fprintf (fid, '@section @%s\n', fun);
+                else
+                  % fprintf (fid, '@subsection %s\n', fun);
+                  fprintf (fid, '@section %s\n', fun);
+                endif
+                fprintf (fid,TEXT);
+        end
+        
+end
+
+fclose(fid);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/pdfdoc/info_generate_manual.txt	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,13 @@
+* Check that "pkg list" lists the packages generate_html and quaternion.
+* Run collect_texinfo_strings within Octave.  This script collects the Texinfo strings from all
+  functions listed in the package's INDEX file and writes them to the file functions.texi.
+  Don't edit the file functions.texi since your changes will be lost by the next run.
+* Adapt version number in quaternion.tex
+* Run quaternion.tex 
+
+
+pdftex quaternion.tex
+q
+
+Alternatively:
+Run generate_quaternion_pdf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/pdfdoc/quaternion.tex	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,71 @@
+\input texinfo   @c -*-texinfo-*-
+@c %**start of header
+@setfilename quaternion.info
+@settitle Octave Quaternion Package
+@afourpaper
+@set VERSION 2.0.0
+@finalout
+@c @afourwide
+@c %**end of header
+
+@c %*** Start of TITLEPAGE
+@titlepage
+@title quaternion @value{VERSION}
+@subtitle Quaternion Package for GNU Octave
+@author Lukas F. Reichlin
+@author Juan Pablo Carbajal
+@page
+@vskip 0pt plus 1filll
+Copyright @copyright{} 2010-2012, Lukas F. Reichlin @email{lukas.reichlin@@gmail.com}
+
+This manual is generated automatically from the texinfo help strings
+of the package's functions.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the same conditions as for modified versions.
+@page
+@chapheading Preface
+The @acronym{GNU} Octave quaternion package from version 2 onwards
+was developed by Lukas F. Reichlin with important contributions by
+Juan Pablo Carbajal. This new package is intended as a replacement
+for quaternion-1.0.0 by A. Scottedward Hodel. It is loosely based
+on ideas from the Quaternion Toolbox for Matlab by Steve Sangwine
+and Nicolas Le Bihan with a special focus on code simplicity and
+vectorization. Its main features are:
+@itemize
+@item Matrices and n-dimensional arrays of quaternions.
+@item Overloaded operators due to the use of classes introduced with Octave 3.2.
+@item Operator semantics similar to Octave's built-in complex numbers.
+@item Fully vectorized code for crunching large quaternion arrays in a speedy manner.
+@end itemize
+
+
+@sp 5
+@subheading Using the help function
+Some functions of the quaternion package are listed with a leading @code{@@quaternion/}.
+This is only needed to view the help text of the function, e.g. @w{@code{help norm}}
+shows the built-in function while @w{@code{help @@quaternion/norm}} shows the overloaded
+function for quaternions. Note that there are quaternion functions
+like @code{unit} that have no built-in equivalent.
+
+When just using the function, the leading @code{@@quaternion/} must @strong{not} be typed.
+Octave selects the right function automatically. So one can type @w{@code{norm (q)}}
+and @w{@code{norm (matrix)}} regardless of the class of the argument.
+@end titlepage
+@c %*** End of TITLEPAGE
+
+@contents
+@c @chapter Function Reference
+@include functions.texi
+
+@end
+@bye
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/q0.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,9 @@
+function q = q0
+
+  if (nargin != 0)
+    print_usage ();
+  endif
+
+  q = quaternion (1, 0, 0, 0);
+
+endfunction
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/q1.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,9 @@
+function q = q1
+
+  if (nargin != 0)
+    print_usage ();
+  endif
+
+  q = quaternion (0, 1, 0, 0);
+
+endfunction
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/q2.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,9 @@
+function q = q2
+
+  if (nargin != 0)
+    print_usage ();
+  endif
+
+  q = quaternion (0, 0, 1, 0);
+
+endfunction
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/q3.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,9 @@
+function q = q3
+
+  if (nargin != 0)
+    print_usage ();
+  endif
+
+  q = quaternion (0, 0, 0, 1);
+
+endfunction
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/q4.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,9 @@
+function q = q4
+
+  if (nargin != 0)
+    print_usage ();
+  endif
+
+  q = quaternion (1, 0, 0, 0);
+
+endfunction
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/q_2x2.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,10 @@
+w = [2, 6; 10, 14];
+
+x = [3, 7; 11, 15];
+
+y = [4, 8; 12, 16];
+
+z = [5, 9; 13, 17];
+
+q = quaternion (w, x, y, z)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/q_2x3.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,10 @@
+w = [2, 6, 10; 14, 18, 22];
+
+x = [3, 7, 11; 15, 19, 23];
+
+y = [4, 8, 12; 16, 20, 24];
+
+z = [5, 9, 13; 17, 21, 25];
+
+q = quaternion (w, x, y, z)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/qbug.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,3 @@
+q = quaternion (2, 3, 4, 5)
+
+diag ([q, q, q])
\ No newline at end of file
Binary file main/quaternion/devel/quat.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/quaternion.ps	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,8786 @@
+%!PS (but not EPSF; comments have been disabled)
+%DVIPSCommandLine: dvips tmp -o quaternion.ps
+%DVIPSParameters: dpi=600, compressed, comments removed
+%DVIPSSource:  TeX output 1998.10.23:1515
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
+/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
+gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
+add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
+/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
+dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
+adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
+idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
+putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
+adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
+{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
+adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
+chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
+}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
+/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
+known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
+B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
+4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
+p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
+a}B /bos{/SS save N}B /eos{SS restore}B end
+TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
+/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
+false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
+/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
+div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
+/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
+10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
+/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
+true def end /@MacSetUp{userdict /md known{userdict /md get type
+/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
+length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
+N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
+clippath mark{transform{itransform moveto}}{transform{itransform lineto}
+}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
+itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
+closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
+0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
+/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
+scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
+ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
+not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
+TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
+pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
+-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
+TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
+sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
+0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
+2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
+{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
+div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
+N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
+maxlength dict begin /magscale true def normalscale currentpoint TR
+/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
+/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
+psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
+scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
+/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
+moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
+begin /SpecialSave save N gsave normalscale currentpoint TR
+@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
+{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
+lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
+}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
+end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
+N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
+/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
+SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
+/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
+yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
+TeXDict begin 40258431 52099146 1000 600 600 (tmp.dvi)
+@start /Fa 1 1 df<007FB712FCB812FEA26C16FC2F047A943C>0
+D E /Fb 3 123 df<90391F801F8090397FE07FE09039E0F0E0703A01C0F9C0F8390380
+7D833807007F000E1403000C15F0001C137E0018EC01C002FEC7FC00385B1210C7FC1301
+5CA31303A25C1640010714E016C0001C5B007E1401010F148000FE1403011FEB0700011B
+130E39F839F01C397070F878393FE07FE0390F801F8025227EA02C>120
+D<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C003813800030140F013F14C00070
+1300126049131FD8E07E14801240EA00FE49133F000115005BA25D0003147E5BA215FE5D
+5BA214015DEBF00314070001130F3900F83FF0EB3FFBEB0FC3EB00075DA20007130FD81F
+805B003F495AA24AC7FCEB007E003E137C00385B381803F0381E07C0D807FFC8FCEA01F8
+23317EA026>I<903807800390381FE00790383FF00690387FF80E9038FFFC1C48EBFE78
+9038E03FF03803800190C712E0EC01C0C7EA0380EC0700140E143C14705C495A495A49C7
+FC130E133C0170130C49131C484813184848133848C71278D80EC013F0380FFE03391F3F
+FFE0D8381F13C0486C1380D86007130038E003FE38C000F020227DA024>I
+E /Fc 26 123 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E12
+0C121C5A5A126009177A8715>44 D<B512F0A514057F921A>I<123C127E12FFA4127E12
+3C08087A8715>I<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC003E
+80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C14
+C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A215
+07A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F13
+8026C003FEC7FC22377CB42B>83 D<EB7F803803FFF0380F80FC381C003E003F133F6D6C
+7E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13
+004815C05AA3140FA26C131F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE00
+3C22237DA126>97 D<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120F
+EA1F80123F90380003E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F
+14706C6C13E03903F001C03900FC0F8090383FFE00EB07F01D237EA122>99
+D<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E4848
+7F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC
+3900F81E3FEB3FFCD90FE0130026357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807
+E013C0390FC007E0381F800315F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA512
+7E127FA26C1418A26C6C1338000F14306D13706C6C13E03901F003C03900FC0F00EB3FFE
+EB07F01D237EA122>I<EB01FCEB07FF90381F078090383E0FC0EB7C1F13FCEA01F8A200
+03EB070049C7FCACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A357FB417>I<151F90
+391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80
+EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9
+FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80
+48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22
+337EA126>I<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C9038F7
+007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0FC0EA
+1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB215>
+I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>108
+D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7
+003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A3
+3C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE49
+7FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F8039
+01F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE15
+80A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93F
+FEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE
+7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F
+6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325
+307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F80
+49C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE003C133E
+48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7FC67FEB0F
+FF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1FFE038C0
+7F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000
+AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D803F0133F
+00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90387E073F
+EB1FFED907F8130026227EA02B>I<B5EBFFF0A3D80FF0EB3F800007EC1F000003140E15
+0C6D131C00011418A26C6C5BA26D1370017E1360137F6D5BA290381F8180A214C3010F90
+C7FCA2EB07E6A214FE6D5AA26D5AA36D5AA2146024217E9F29>I<B53A1FFF81FFF0A33C
+07F801FC003F8001F049EB1E0000030100141C816C6C017C1318A26D017E1338000002FE
+1330A290267E01FF5B159F168090263F030F5BA216C0903A1F8607C180A202C613E39026
+0FCC0390C7FCA2D907FC13F6ECF80116FE6D486C5AA36D481378A36D48133034217F9F37
+>I<B53801FFF8A32603FE0013806C48EB7C0000001478017E1370017F5B90383F81C090
+381F8380D90FC3C7FCEB07E614FE6D5A6D5A6D7E80805B9038039F809038071FC0903806
+0FE0EB0C0790381C03F0496C7E01707FEBF000000180000FECFF8026FFFC0313FCA32620
+7F9F29>I<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D13
+1C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC
+14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA
+701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2EB000F003C14E00038EB1FC0
+0030EB3F800070137F1500006013FE495A13035CC6485A495AA2495A495A49C7FC153013
+FE485A12035B48481370485A001F14604913E0485A387F000348130F90B5FCA21C207E9F
+22>I E /Fd 1 106 df<1338137CA2137813701300A7EA0780EA1FC0EA38E01230EA60F0
+EAC1E0A3EA03C0A3EA0780A2EA0F0013041306EA1E0CA21318121CEA1E70EA0FE0EA0780
+0F237DA116>105 D E /Fe 2 51 df<13E01201120712FF12F91201B3A7487EB512C0A2
+12217AA01E>49 D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2
+147C1278003013FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C0
+0CEA0380380600185A5A383FFFF85AB512F0A216217CA01E>I E
+/Ff 4 64 df<B812C0A32A037A9137>0 D<130C131EA50060EB01800078130739FC0C0F
+C0007FEB3F80393F8C7F003807CCF83801FFE038007F80011EC7FCEB7F803801FFE03807
+CCF8383F8C7F397F0C3F8000FCEB0FC039781E078000601301000090C7FCA5130C1A1D7C
+9E23>3 D<EB7F803801FFE0000713F8380FC0FC381F003E003C130F00387F0078148000
+70130300F014C0481301A76C1303007014800078130700381400003C5B001F133E380FC0
+FC6CB45A000113E038007F801A1B7C9D23>14 D<4A7E1403B3B3A6007FB712FEB8FC7E2F
+2E7CAD38>63 D E /Fg 14 119 df<147E49B47E903907C1C38090391F80EFC090383F00
+FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90
+C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13
+E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E
+>97 D<EC1FE0ECFFF8903803F03E903807C00F90381F8007D93F001380017E131F49137F
+485A485A000715005B000F147E484890C7FCA2485AA3127F90C9FCA35A5AA6481403007E
+5C5D151E003E5C5D6C5CEC03E0390F800F802603E07EC7FC3801FFF838003FC0212977A7
+2A>99 D<EC3F80903801FFE0903807E0F890381F803CEB3E0001FC131E485A485A120748
+48133E49133C121F4848137C15F8EC03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45A
+A61506150E151E007C143C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF0
+38007F801F2976A72A>101 D<EC03F0EC0FFC91383E0E1C9138FC077E903901F003FE13
+03903807E001D90FC013FCEB1F80A2EB3F004914F8137E01FE1303A2484814F0A2150712
+034914E0A2150F12074914C0A2151FA216805B153F1203ED7F006D5BA200015B0000495A
+9038F80F7E90387C1EFEEB1FF8903807E0FC90C7FC1401A25DA21403A25D001C1307007F
+5C48130F5D4A5A4AC7FC48137E00F85B387C03F0381FFFC0D803FEC8FC273B7CA72A>
+103 D<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0
+121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA2
+12035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03
+FEEA00F8163E79BC1C>105 D<1507ED1FC0A2153FA31680ED0E0092C7FCADEC07C0EC3F
+F0EC78F8ECE07CEB01C01303EC807EEB0700A2010E13FE5D131E131CEB3C01A201005BA2
+1403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25CA2147EA214FEA25C
+A213015CA2121C387F03F012FF495A5C495A4848C8FCEAF83EEA707CEA3FF0EA0FC02250
+83BC1C>I<D801F0EB3F803A07FC01FFE03A0F3E07C1F83A0E1F0F00FC001E011C137C00
+1C49137E003C13F012385C38783FC012705C91C7FC00F015FE495CEA007EA2150101FE5C
+5BA2150300015D5B15075E0003020F13704914C0A2031F13F00007ED80E05B1681EE01C0
+120F49EC0380A2EE0700001FEC0F0E49EB07FC0007C7EA01F02C2979A733>110
+D<EC1FC0ECFFF8903803F07C90380FC01FEB1F8090393F000F80017E14C0491307484814
+E0485A12075B000F15F0485AA2485AA2ED0FE0127F90C7FCA2151F4815C05AA2ED3F80A2
+ED7F00A248147E007C5C007E13015D4A5A003E495A6C495A4A5A260F803EC7FC3807C0FC
+3801FFF038003F80242977A72E>I<027E1360903901FF81E0903807C1C390391F80E7C0
+90383F00F7017E137F5B4848EB3F80485AA2485A000F15005B121F5D4848137EA3007F14
+FE90C75AA3481301485CA31403485CA314074A5A127C141F007E133F003E495A14FF381F
+01EF380F879F3903FF1F80EA00FC1300143F92C7FCA35C147EA314FE5CA21301130390B5
+12F05AA2233A77A72A>113 D<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C13E0
+001EEB380F001C1370003CEBE01F123814C0D8783F14C00070903880070092C7FC91C8FC
+12F05BEA007EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B0007C9FC2329
+79A726>I<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C133E49
+137E15FEA2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F13F0
+1300140F14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F801270
+0078EB1F006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F01307A2
+5CA2130FA25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13FEA2
+5BA21201A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C1438EB
+0078147014F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48B414
+1C26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2
+D8F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C04914
+81A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F
+0F1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA
+0707000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91
+C712E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D
+1578000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I
+E /Fh 12 123 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A
+5A5A126009157A8714>59 D<000FB8FCA23B1FC003F8003F0100151F001C4A130E123C00
+3801071406123000704A130EA20060010F140C12E0485CA2141FC715005DA2143FA292C8
+FCA25CA2147EA214FEA25CA21301A25CA21303A25CA21307A25C130F131F001FB512F0A2
+302D7FAC29>84 D<EC0780EC1FC0EC3CE0EC786014F0EB01E0A2EB03C015E090380780C0
+130FA2EB1F011580A2EB3E0315005CEB7C06140E5CEBFC18EBF8385C5C00015B13F1EBF3
+8001F7C7FC13FE5B485A5B5BA31207120F121D12390071144000E114C0000013039038F0
+0700140EEB787CEB3FF0EB0F801B3080AE1D>96 D<13F8121FA21201A25BA21203A25BA2
+1207A25BA2120FEBC7E0EB9FF8EBB83C381FF01EEBE01F13C09038800F80EA3F00A2123E
+A2007E131FA2127CA2143F00FC14005AA2147EA2147C14FC5C387801F01303495A383C0F
+806C48C7FCEA0FFCEA03F0192F7DAD1E>98 D<EB03F8EB0FFE90383E0780EBF803D801F0
+13C03803E001EA07C0000F1303D81F8013801407393F000F00141E387F01FCEBFFF091C7
+FC007EC8FC12FE5AA4127C156015E0EC01C06CEB0380EC0F006C131C380F81F83803FFE0
+C648C7FC1B1F7D9D21>101 D<157C4AB4FC913807C380EC0F87150FEC1F1FA391383E0E
+0092C7FCA3147E147CA414FC90383FFFF8A2D900F8C7FCA313015CA413035CA413075CA5
+130F5CA4131F91C8FCA4133EA3EA383C12FC5BA25B12F0EAE1E0EA7FC0001FC9FC213D7C
+AE22>I<1307EB0F80EB1FC0A2EB0F80EB070090C7FCA9EA01E0EA07F8EA0E3CEA1C3E12
+3812301270EA607EEAE07C12C013FC485A120012015B12035BA21207EBC04014C0120F13
+801381381F01801303EB0700EA0F06131EEA07F8EA01F0122E7EAC18>105
+D<90387C01F89038FE07FE3901CF8E0F3A03879C0780D907B813C0000713F000069038E0
+03E0EB0FC0000E1380120CA2D8081F130712001400A249130F16C0133EA2017EEB1F80A2
+017C14005D01FC133E5D15FC6D485A3901FF03E09038FB87C0D9F1FFC7FCEBF0FC000390
+C8FCA25BA21207A25BA2120FA2EAFFFCA2232B829D24>112 D<3807C01F390FF07FC039
+1CF8E0E0383879C138307B8738707F07EA607E13FC00E0EB03804848C7FCA2128112015B
+A21203A25BA21207A25BA2120FA25BA2121FA290C8FC120E1B1F7E9D20>114
+D<013F137C9038FFC1FF3A01C1E383803A0380F703C0390700F60F000E13FE4813FC1218
+0038EC0700003049C7FCA2EA200100005BA313035CA301075B5D14C000385CD87C0F1306
+00FC140E011F130C011B131C39F03BE038D8707113F0393FE0FFC0260F803FC7FC221F7E
+9D28>120 D<EA01E0D807F8130ED80E3C131FD81C3E133F0038143E12301270D8607E13
+7ED8E07C137C12C013FC484813FC000014F812015B1401000314F013E0A21403000714E0
+13C0A2140715C00003130FEBE01F143F3901F07F8038007FEFEB1F8FEB001F1500A2003E
+133EA2007E5B5C387C01F0387003E0383007C0383C0F80D80FFEC7FCEA03F0202C7E9D23
+>I<011E1330EB3F809038FFC07048EBE0E0ECF1C03803C0FF9038803F80903800070048
+130EC75A5C5C5C495A495A49C7FC131E13385B491340484813C0485A38070001000EEB03
+80380FE007391FF81F0038387FFF486C5A38601FFC38E00FF038C003C01C1F7D9D21>I
+E /Fi 27 106 df<1430147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F85B1201
+5B1203A2485AA3485AA3121F90C7FCA25AA3123EA2127EA6127C12FCB3A2127C127EA612
+3EA2123FA37EA27F120FA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB03C0
+1301EB00E0147014301462738226>0 D<12C07E12707E123C7E7EA26C7E6C7EA26C7E7F
+12007F1378137CA27FA37FA31480130FA214C0A31307A214E0A6130314F0B3A214E01307
+A614C0A2130FA31480A2131F1400A3133EA35BA2137813F85B12015B485AA2485A48C7FC
+A2121E5A12385A5A5A14627C8226>I<12F0B3B3B2043674811C>12
+D<00F01378B3B3B2153674812E>I<151E153E157C15F8EC01F0EC03E01407EC0FC0EC1F
+8015005C147E5CA2495A495AA2495AA2495AA2495AA249C7FCA2137EA213FE5B12015BA2
+12035BA21207A25B120FA35B121FA45B123FA548C8FCA912FEB3A8127FA96C7EA5121F7F
+A4120F7FA312077FA21203A27F1201A27F12007F137EA27FA26D7EA26D7EA26D7EA26D7E
+A26D7E6D7EA2147E80801580EC0FC0EC07E01403EC01F0EC00F8157C153E151E1F947182
+32>16 D<12F07E127C7E7E6C7E7F6C7E6C7E12017F6C7E137EA27F6D7EA26D7EA26D7EA2
+6D7EA26D7EA26D7EA280147E147F80A21580141FA215C0A2140F15E0A3140715F0A41403
+15F8A5EC01FCA9EC00FEB3A8EC01FCA9EC03F8A515F01407A415E0140FA315C0141FA215
+80A2143F1500A25C147E14FE5CA2495AA2495AA2495AA2495AA2495AA249C7FC137EA25B
+485A5B1203485A485A5B48C8FC123E5A5A5A1F947D8232>I<160F161F163E167C16F8ED
+01F0ED03E0ED07C0150FED1F801600153E157E5D4A5A5D14034A5A5D140F4A5AA24AC7FC
+143E147E5CA2495AA2495AA2495AA2130F5CA2495AA2133F91C8FCA25B137E13FEA25B12
+01A25B1203A35B1207A35B120FA35BA2121FA45B123FA690C9FC5AAA12FEB3AC127FAA7E
+7FA6121F7FA4120FA27FA312077FA312037FA312017FA212007FA2137E137F7FA280131F
+A26D7EA2801307A26D7EA26D7EA26D7EA2147E143E143F6E7EA26E7E1407816E7E140181
+6E7E157E153E811680ED0FC01507ED03E0ED01F0ED00F8167C163E161F160F28C66E823D
+>I<12F07E127C7E7E6C7E6C7E6C7E7F6C7E1200137C137E7F6D7E130F806D7E1303806D
+7EA26D7E147C147E80A26E7EA26E7EA26E7EA2811403A26E7EA2811400A281157E157FA2
+811680A2151F16C0A3150F16E0A3150716F0A31503A216F8A4150116FCA6150016FEAA16
+7FB3AC16FEAA16FC1501A616F81503A416F0A21507A316E0150FA316C0151FA31680153F
+A216005DA2157E15FE5DA214015DA24A5AA214075DA24A5AA24A5AA24AC7FCA2147E147C
+14FC495AA2495A5C1307495A5C131F49C8FC137E137C5B1201485A5B485A485A48C9FC12
+3E5A5A5A28C67E823D>I<EE01E01603EE07C0EE0F80161F1700163E5E5E15015E4B5A15
+074B5A5E151F4BC7FC153E157E5DA24A5A14035D14075D140F5D141F5D143F92C8FC5C14
+7E14FE5C1301A25C13035C1307A25C130FA2495AA3495AA3137F91C9FCA25B5BA312015B
+A31203A25BA21207A35BA2120FA35BA3121FA45BA2123FA75B127FAC90CAFC5AB3B3A27E
+7FAC123F7FA7121FA27FA4120FA37FA31207A27FA31203A27FA21201A37F1200A37F7FA2
+80133FA36D7EA36D7EA2130780A2130380130180A2130080147E147F8081141F81140F81
+14078114038114016E7EA2157E153E153F6F7E150F826F7E15036F7E821500167C828217
+80160FEE07C0EE03E016012BF86C8242>32 D<12F07E127C7E123F7E6C7E6C7E6C7E7F12
+016C7E7F137E133E133F6D7E130F806D7EA26D7E80130180130080147E147F8081141F81
+140F81140781A2140381140181A2140081A2157FA36F7EA382151FA282150FA3821507A3
+82A21503A282A31501A282A31500A382A482A21780A7163F17C0AC161F17E0B3B3A217C0
+163FAC1780167FA71700A25EA45EA31501A35EA21503A35EA21507A25EA3150F5EA3151F
+5EA2153F5EA34BC7FCA315FEA25D1401A25D14035D1407A25D140F5D141F5D143F92C8FC
+5C147E14FE5C13015C13035C495AA2495A5C131F49C9FC133E137E5B5B485A12035B485A
+485A48CAFC5A123E5A5A5A2BF87E8242>I<B61280A600FCC8FCB3B3B3B3B3B3B3B3B3B3
+B3B3B3A2B61280A619F86A8230>I<B61280A6C7121FB3B3B3B3B3B3B3B3B3B3B3B3B3A2
+B6FCA619F8808230>I<177C17FCEE01F8A2EE03F0EE07E0EE0FC0A2EE1F80EE3F005E16
+7E5E15015E15034B5A5E150F5E151F4B5AA24BC7FCA215FEA24A5AA24A5AA24A5AA2140F
+5D141F5D143F5DA2147F92C8FC5CA25C13015C1303A25C1307A3495AA3495AA3133F5CA3
+137F5CA313FF91C9FCA35A5BA31203A25BA31207A35BA3120FA45BA2121FA65BA2123FA8
+5BA2127FAE5B12FFB3A62E95688149>48 D<12F87E127EA27E6C7E6C7EA26C7E6C7E7F12
+016C7E7F137E137F6D7E131F80130F806D7EA26D7EA26D7EA26D7EA2147FA26E7EA28114
+1F81140F811407A281140381A2140181140081A28182A36F7EA36F7EA382150FA3821507
+A3821503A3821501A382A281A31780A3167FA317C0A4163FA217E0A6161FA217F0A8160F
+A217F8AE160717FCB3A62E957E8149>I<B612F0A600FCC8FCB3B3B3B3B3B3B3B01C9466
+8137>I<B612F0A6C71203B3B3B3B3B3B3B3B01C94808137>I<12FCB3B3B3B3B3B3B3B0B6
+12F0A61C94668237>I<EC03F0B3B3B3B3B3B3B3B0B6FCA61C94808237>I<12FCB3B3B006
+34668037>I<12FCB3B3B006346A8037>I<B47EB3A6127F7FAE123FA27FA8121FA27FA612
+0FA27FA41207A37FA31203A37FA21201A37F7EA380137FA380133FA380131FA36D7EA36D
+7EA3130380A2130180130080A28081143FA281141F81140F811407A26E7EA26E7EA26E7E
+A2157FA26F7EA26F7E150F821507826F7E1501821500167E167F82EE1F80EE0FC0A2EE07
+E0EE03F0EE01F8A2EE00FC177C2E95688349>64 D<EE07FCB3A617F8160FAE17F0A2161F
+A817E0A2163FA617C0A2167FA41780A316FFA31700A35DA25EA315035EA315075EA3150F
+5EA3151F5EA34B5AA34B5AA393C7FC5DA25D14015D1403A25D14075DA2140F5D141F5D14
+3F5DA24AC8FCA214FEA2495AA2495AA2495AA2495A5C131F5C133F49C9FC137E13FE5B48
+5A12035B485A485AA2485A48CAFC127EA25A5A2E957E8349>I<EAFF80B3B3B009346880
+49>I<EAFF80B3B3B00934598049>I<BB12FC86A3D87FC0C9001F7FF0007F6C6C17076C6C
+050113806C6CEF007F1A1F6C6CF00FC06C6C18076C6C1803F201E06C6D17006D6C186001
+3F19706E18306D7E6D6C18181B006D7E6D7E6D7EA26D7F6E7E6E7EA26E7E6E7E6E7EA26E
+7E6E7E80826F7E6F7EA26F7E6F7E6F5A5EA24B5A5E4BCBFC153E157E5D5D4A5A4A5A1407
+5D4A5A4ACCFC143E147E147C5C4948181801031930495A4A18704948186049CC12E04918
+01017EF003C0017C180749180F4848F01F800003197F49EF01FF4848050713004848173F
+48CA000FB5FC48BA5AA25ABB5AA24D537B7F58>80 D<B512E0A500F8C7FCB3B3B3B3B3B3
+B3ACB512E0A513946E8227>104 D<B512E0A5EA0003B3B3B3B3B3B3B3ACB5FCA513947F
+8227>I E /Fj 65 123 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF
+80A3EA7F00A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA24813
+3FB2007E1400007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8
+011F131FA202C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9
+495BA2003F90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA7
+6C486C5AA229387DB730>I<D803C0EB01E0D80FF01303486C497E487E150F487ED87E7E
+495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D387E7E01EA7FFED83FFC5B1403EA1F
+F86C48485AEA03C0C75B140FA25D141FA24A5AA25D147FA292C8FC5CA2495AA25C1303A2
+5C1307A290390FF001E0ED07F84A487E011F497EA24A487E133F163F90267F807F1380ED
+7E1F14005BA25B1201A24848EB7F3F033F13004914FF12076F5A5B6F5A6C486D5A0001EC
+01E029477DBE30>37 D<EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13
+FCA2120113F81203EA07F0120FEA1FE0127FEAFFC013801300127C12380F1D70B730>39
+D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B48
+5A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F
+12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E
+184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C013
+1FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA21303
+14F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A
+485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB
+3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0
+011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E0
+9038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>
+I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA
+03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA
+07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30>I<007FB612F0A2B712F8A36C15
+F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B
+30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5A
+A25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495A
+A2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA2
+48C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB
+83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8
+A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15
+F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B
+6D5B010F13E06D5BD900FEC7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F
+13FF1203123FB5FCA213EF138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C
+14F81F3977B830>I<EB07FC90383FFFC090B512F00003804814FE4880261FF80F138026
+3FE00113C09038C0007F4848EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218
+C8FCA2150716F0150F16E0151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A
+5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F848
+5AEA1FE048B6FCB7FCA37E6C15F025397BB830>I<EB03FF013F13E090B512F84814FE48
+80481580260FFE0113C09038F0007F4848EB1FE0150F16F01507A26C5A6C5AC8FC150F16
+E0A2151FED3FC0157FEDFF8002071300903807FFFE495B5D8115FF6D1480D9000113C091
+38003FE0ED1FF0ED07F8150316FC150116FE1500A21218127EB4FCA2150116FC4814036C
+15F86C6C13076DEB1FF0D83FF0133F3A1FFE01FFE06CB612C06C15806CECFE00C65C013F
+13F001031380273A7CB830>I<EC03FC4A7E140F141FA2143F147F157E14FEA2EB01FCEB
+03F8A2EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F0013FEA2485A485AA2485AA2485A485A
+A2485AA248C7FC12FEB8FC1780A46C1600C8007EC7FCAA91387FFFFE91B6FCA46E5B2939
+7DB830>I<000FB612804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC81
+81D9FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503
+A31218127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261F
+FC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730>I<EC0FF8EC7FFF
+49B51280010714E0131F4914F090387FF80F9039FFC007F84813803803FE005B485A4848
+EB03F0ED01E0484890C7FC5B123F5BA2127FEB000C903803FFE0010F13F8D8FF3F13FE48
+B6FCB7128016C09039FE007FE001F8EB1FF001E0130F49EB07F8ED03FC5B90C7120116FE
+1500A37EA46C7E15016D14FC121F6D1303000FEC07F86D130F6C6CEB1FF06DEB3FE03A03
+FF81FFC06C90B512806C15006D5B011F13F8010713E001011380273A7CB830>I<127CB7
+12FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14
+075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA9
+6D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C04801
+0113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F8
+6D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F
+13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303
+007F15FC90C712014815FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1F
+F06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7C
+B830>I<49B4FC010F13E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0
+EB3FE04848131F49EB0FF048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303
+15076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190
+380060011400ED03F8A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A13
+00EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA
+3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4
+EA7FE0A2EA3FC0EA0F000C276EA630>I<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA
+0FF0EA03C0C7FCAFEA03C0EA0FF0121F13F8123F13FCA3121FA2120F12031200120113F8
+120313F01207EA1FE0123FEA7FC0EAFF80EA7F00127E12380E3470A630>I<007FB7FCA2
+B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>61
+D<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F01
+0313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C
+020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A48
+13E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<147F4A7E
+A2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F00
+7FA4498049133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFF
+EB7FFFB56CB51280A46C496C130029397DB830>65 D<007FB7FCB81280A47ED803F8C712
+3FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A900
+7FB7FCB8FCA46C16C02B387EB730>69 D<3B3FFF800FFFE0486D4813F0B56C4813F8A26C
+496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D
+4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>72 D<D83FF8ECFFE0486C49
+13F0486C4913F8A2007F16F06C6C4913E00007160001EF14BFEC800FA39039E7C01F3FA4
+ECE03F01E3133EA2ECF07EA201E1137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3F
+E0A3EC1FC0A2EC070091C7FCADD83FFC903801FFE0486C4913F0B54913F8A26C486D13F0
+6C486D13E02D387FB730>77 D<D83FFC90381FFF80486C4913C0B54913E0A26C6D6C13C0
+6C6E13800003913801F800EBF7C0A3EBF3E0A314F013F1A214F8A213F014FCA2147C147E
+A2143E143FA2141FA21581A2140F15C1A2140715E1A2140315F1A21401A215F91400A315
+7DA3153FEA3FFF481380B5EAC01FA26CEB800F6C496C5A2B387EB730>I<90383FFFE048
+B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A448
+15F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15
+C06C15806C1500000114FCD8003F13E0253A7BB830>I<90390FF803C0D97FFF13E048B5
+12C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37E
+ED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF0103
+1480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F0
+7F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD8
+78011380253A7BB830>83 D<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C7
+91C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<007FB5FCB61280A4150048C8FC
+B3B3B3A5B6FC1580A46C140019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7E
+A26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA213
+0180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED
+3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>I<007FB5FCB612
+80A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8
+A36C15F0A225077B7D30>95 D<EB3FFC48B57E4814E04880488048809038F00FFE9038E0
+01FF806F7E6C48133F6C4880C8121FA491B5FC130F137F48B6FC12075A48EBC01F383FFC
+00EA7FE0138048C7FC5AA46C143FA26C6C137F9038C001FF263FF80FEBFFC06CB712E0A2
+000714F76C14C3C6020013C0D93FF090C7FC2B2A7CA830>97 D<EA3FFC487E12FFA2127F
+123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13
+804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F6EEB3FC0A2
+6EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC9038
+0003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B612804815C048EB807F3907
+FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC
+07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B01
+1F13F801075B01011380232A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90
+381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790
+C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFF
+C06CB712E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4
+FC010713E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB
+1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC
+01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F1480
+6DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5
+FC491387903803FE079138FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C
+15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC
+13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7
+FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15
+C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE000
+1FFE0180130148C8127F007E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01
+F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730
+>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA2
+9138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D48
+13FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5A
+A2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C
+15C023397AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F048
+14F8A47EEB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C1400
+5C6C5B000F13F0000313C01D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14
+C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A
+5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E
+6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B5
+7EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF
+01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE90
+39F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01
+071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C90
+38FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D48
+13FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8
+497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F849
+1303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D13
+0F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F
+13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B6
+12FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217
+F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B5
+5A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A7
+30>I<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848
+130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F
+6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE01
+90C7FCAD92B512F84A14FCA46E14F82E3C7DA730>I<ED07F83A3FFF803FFF486DB51280
+B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238801F809238000F004A90C7FC5C
+5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A287EA730>I<90381FFC1E48B512
+9F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C
+13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C147F00FEEC1F
+C0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C0
+26780FFEC7FC222A79A830>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026
+001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814F09138FC1FF06DB512E06D14C01680
+6D14009038007FFCEC1FF026337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F14
+7F003F143F00001400B3A41501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F
+6D4913FC6D9038F87FF8010001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B5
+15E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F017E5CA2017F13
+1F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801
+FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C
+16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3F
+E0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03F
+A2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815B
+C648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92
+C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE
+90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180
+140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC
+0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E0
+0107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2
+143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90
+C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3F
+E0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A49
+5A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28
+277DA630>I E /Fk 5 53 df<156015F0A24A7E4A7EA24A7E1406EC0E7F140C91381C3F
+8014184A6C7E150F02607F150702C07F1503D901807F1501D903007F496D7E1306010E14
+7F130C011C6E7E131801386E7E1330496E7E160749811603484881160148C87F486F7E12
+06000E167F120C001CEE3F801218003FB812C0A24817E0A2B912F0342F7DAE3B>1
+D<130C133C137CEA03FC12FFEAFC7C1200B3B113FE387FFFFEA2172C7AAB23>49
+D<EB7F803801FFF0380780FC380E003F48EB1F8048EB0FC05A0060EB07E012F000FC14F0
+7E1403A3007C1307C7FCA215E0140F15C0141F1580EC3F00147E147C5C495A495A495A49
+5A011EC7FC5B5B4913305B485A4848136048C7FC000E14E0001FB5FC5A4814C0B6FCA21C
+2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E487FEC1F80003F14C0A2EB800F1300
+A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EBFFC014F0EB00FC143FEC1F8015C014
+0F15E0A2EC07F0A21238127C12FEA3EC0FE012F8006014C00070131F6C1480001EEB3F00
+380780FC3801FFF038007FC01C2D7DAB23>I<140EA2141E143EA2147E14FEA2EB01BE13
+03143E1306130E130C131813381330136013E013C0EA0180120313001206120E120C5A12
+3812305A12E0B612FCA2C7EA3E00A9147F90381FFFFCA21E2D7EAC23>I
+E /Fl 13 121 df<007FB812FEBAFCA26C17FE3804799847>0 D<121EEA7F80A2EAFFC0
+A4EA7F80A2EA1E000A0A799B19>I<0060166000F816F06C1501007E15036CED07E06C6C
+EC0FC06C6CEC1F806C6CEC3F006C6C147E6C6C5C6C6C495A017E495A6D495A6D6C485A6D
+6C485A6D6C48C7FC903803F07E6D6C5A903800FDF8EC7FF06E5A6E5AA24A7E4A7EECFDF8
+903801F8FC903803F07E49487E49486C7E49486C7E49486C7E017E6D7E496D7E48486D7E
+4848147E4848804848EC1F804848EC0FC048C8EA07E0007EED03F0481501481500006016
+602C2C73AC47>I<D91FE01620D9FFFC16704813FF000714C04814F048809026E01FFE15
+F0273F0003FFEC01E0007E010013C00078DA3FF01307DB0FFCEB0FC048913A07FF807F80
+48020190B5FC6F1500043F5B040F13F804035B00409238007F80CDFCA4D91FE01620D9FF
+FC16704813FF000714C04814F048809026E01FFE15F0273F0003FFEC01E0007E010013C0
+0078DA3FF01307DB0FFCEB0FC048913A07FF807F8048020190B5FC6F1500043F5B040F13
+F804035B00409238007F803C287BAB47>25 D<19301978A2197C193CA2193E191EA2191F
+737EA2737E737EA2737E737E1A7C1A7EF21F80F20FC0F207F0007FBB12FCBDFCA26C1AFC
+CDEA07F0F20FC0F21F80F27E001A7C624F5A4F5AA24F5A4F5AA24FC7FC191EA2193E193C
+A2197C1978A2193050307BAE5B>33 D<0203B512F8023F14FC91B6FC010315F8D90FFEC8
+FCEB1FE0EB7F8001FEC9FCEA01F8485A485A485A5B48CAFCA2123EA25AA21278A212F8A2
+5AA2B812F817FCA217F800F0CAFCA27EA21278A2127CA27EA27EA26C7E7F6C7E6C7E6C7E
+EA00FEEB7F80EB1FE0EB0FFE0103B612F8010015FC143F020314F82E3679B13D>50
+D<1718173C177CA217F8A2EE01F0A2EE03E0A2EE07C0160F1780EE1F00A2163EA25EA25E
+A24B5AA24B5AA24B5AA24B5AA24BC7FCA2153E157E157C5DA24A5AA24A5AA24A5AA24A5A
+A24AC8FCA2143EA25CA25C13015C495AA2495AA2495AA249C9FCA2133EA25BA25BA2485A
+A2485AA2485A120F5B48CAFCA2123EA25AA25AA25A12602E5474C000>54
+D<146014F01301A214E01303A214C01307A2EB0F80A214005BA2131E133EA25BA2137813
+F8A25B1201A25B1203A2485AA25B120FA290C7FC5AA2123EA2123C127CA2127812F8A412
+78127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007FA21378137CA27FA2
+131E131FA27F1480A2EB07C0A2130314E0A2130114F0A213001460145A77C323>104
+D<126012F07EA21278127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007F
+A21378137CA27FA2131E131FA27F1480A2EB07C0A2130314E0A2130114F0A414E01303A2
+14C01307A2EB0F80A214005BA2131E133EA25BA2137813F8A25B1201A25B1203A2485AA2
+5B120FA290C7FC5AA2123EA2123C127CA2127812F8A25A1260145A7BC323>I<126012F0
+B3B3B3B3B11260045B76C319>I<0060131800F0133CB3B3B3B3B000601318165A75C32D>
+I<1A061A0F1A1FA21A3EA21A7CA21AF8A2F101F0A2F103E0A2F107C0A2F10F80A2F11F00
+A2193EA261A261A24E5AA24E5AA24E5AA24E5AA24EC7FCA2183EA260A260A24D5AA24D5A
+133801F85E486C15071203D80FFE4B5A121D00394CC8FCEAF1FF00C0163EC67F017F5D80
+013F5D80011F4A5A80010F4A5A8001074A5AA26E495A13036E49C9FC13016E133E7F6F5A
+147F6F5A143FEDE1F0141FEDE3E015F391380FF7C015FF6E5BA26E90CAFCA26E5AA26E5A
+A215781570485B7A834C>112 D<EB3F80EBFFF03803E078380F801E48487E80003EEB03
+805A15C0140F5AA3EC078091C7FCA37E127CA27E121E121F6C7EEA03C06C7EEA00F8133E
+EBFF803803E3E0380F80F0381F0078143E003E7F487F1580EC07C05A15E01403A57E127C
+EC07C07E121E001FEB0F80390F801F00EA03C03801E03E3800F8F8EB3FE0EB0F80EB03E0
+EB00F01478143E80801580EC07C0A215E01403A3123C127EA3EC07C012781238EC0F806C
+EB1F00121E6C133E3803C0F83801FFE038003F801B537ABF28>120
+D E /Fm 29 119 df<ED0FFF4AB512C0020F14F0027F80903A01FFF803FC499038C000FE
+010FEB00034948497E49485B5C495A4C138001FF6E13005CA3705AEE01F893C8FCA74BB5
+1280B9FCA5C69038E00003B3B0007FD9FFC1B6FCA538467EC53E>12
+D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F788E1F>46
+D<EC03C01407141F147FEB03FF133FB6FCA413C3EA0003B3B3ADB712FCA5264177C038>
+49 D<ECFFE0010F13FE013F6D7E90B612E0000315F82607FC0313FE3A0FE0007FFFD81F
+806D138048C7000F13C0488001C015E001F07F00FF6E13F07F17F881A46C5A6C5A6C5AC9
+FC17F05DA217E05D17C04B13804B1300A2ED1FFC4B5A5E4B5A4B5A4A90C7FC4A5A4A5AEC
+0FF04A5AEC3F804AC7127814FE495A494814F8D907E014F0495A495A49C8FC017C140149
+140348B7FC4816E05A5A5A5A5AB8FC17C0A42D417BC038>I<ECFFF0010713FF011F14C0
+017F14F049C66C7ED803F8EB3FFED807E06D7E81D80FF86D138013FE001F16C07FA66C5A
+6C4815806C485BC814005D5E4B5A4B5A4B5A4A5B020F1380902607FFFEC7FC15F815FF16
+C090C713F0ED3FFCED0FFEEEFF80816F13C017E0A26F13F0A217F8A3EA0FC0EA3FF0487E
+A2487EA217F0A25D17E06C5A494913C05BD83F80491380D81FF0491300D80FFEEBFFFE6C
+B612F800015D6C6C14C0011F49C7FC010113E02D427BC038>I<163FA25E5E5D5DA25D5D
+5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14F8EB01F0EB03
+E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E5A12FCB91280
+A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01FFEB07FF91B6
+FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C714C001DF14
+F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8FC6F13F0A3
+17F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0123E003F4A13
+80D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01FCC7FC0101
+13C02D427BC038>I<EE1F80A24C7EA24C7EA34C7EA24B7FA34B7FA24B7FA34B7F169F03
+1F80161F82033F80ED3E07037E80157C8203FC804B7E02018115F0820203814B137F0207
+815D173F020F814B7F021F8292C77EA24A82023E80027E82027FB7FCA291B87EA2498302
+F0C8FCA20103834A157F0107834A153FA249488284011F8491C97E4984133E017E82B602
+0FB612F0A54C457CC455>65 D<B9FC18F018FE727E19E026003FFEC7001F13F805017F94
+38003FFF060F7F727F727F727F84737E737EA2737EA2737EA21B80A2851BC0A51BE0AD1B
+C0A51B8061A21B006162193F624F5A19FF624E5B06075B4E5B063F90C7FC4DB45A050F13
+F8BA5A19C04EC8FC18F095C9FC4B447CC356>68 D<B500FE067FB512806E95B6FCA26F5E
+A2D8003F50C7FC013D6DEE03DFA2013C6DEE079FA26E6CEE0F1FA26E6C161EA26E6C163C
+A36E6C1678A26E6C16F0A26E6DEC01E0A26E6DEC03C0A36E6DEC0780A26F6CEC0F00A26F
+6C141EA26F6C5CA36F6C5CA26F6C5CA26F6D485AA26F6D485AA26F6D485AA3706C48C7FC
+A293383FF81EA2706C5AA2706C5AA3706C5AA2705BA2705BA2705BA2B6057FB6128071C7
+FCA2173E171C61447CC36A>77 D<923807FFC092B512FE0207ECFFC0021F15F091267FFE
+0013FC902601FFF0EB1FFF010701C0010713C04990C700017F49486E7F49486F7E49486F
+7E49486F7E48496F7E48496F1380A248496F13C0A24819E091C97E4819F0A248487013F8
+A3007F19FCA249177FA300FF19FEAD007F19FCA36D17FF003F19F8A3001F19F06D5EA26C
+19E06E01FE5B6C912603FF8014C06C6D486D4813804B13E06C9028E01F83F00F13006C90
+3BF01E00F81FFE90267FF83E90387C3FFC90263FFC3C6D485AD91FFE91381EFFF0D90FFF
+021F5B6D01FE5D010194C7FC6D6D6CB45A023F90B512F8020703E0130202006F13070307
+13C792C7EA07F8716C130F72131F9538FF80FF96B5FC7114FEA3831AFCA27213F81AF084
+7213E07213C0721300F001FC48587AC454>81 D<003FBA12E0A59026FE000FEB8003D87F
+E09338003FF049171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5
+C81700B3B3A20107B8FCA545437CC24E>84 D<903801FFE0011F13FE017F6D7E48B612E0
+3A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA402
+03B5FC91B6FC1307013F13F19038FFFC01000313E0000F1380381FFE00485A5B127F5B12
+FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01F
+C66CEB8007D90FFCC9FC322F7DAD36>97 D<EC3FFC49B512C0010F14F0013F14FC90397F
+F003FE9039FFC001FF0003495A48494813805B120F485AA2485A6F1300007F6E5AED0078
+4991C7FCA212FFAC6C7EA3123F6DEC03C0A26C6C1407000F16806D140F6C6DEB1F006C6D
+133E6C01F05B3A007FFC03F86DB55A010F14C0010391C7FC9038003FF82A2F7CAD32>99
+D<EE03FEED07FFA5ED001F160FB1EC3FE0903803FFFC010FEBFF8F013F14CF9039FFF807
+FF48EBC00148903880007F4890C7123F4848141F49140F121F485AA3127F5BA212FFAC12
+7FA37F123FA26C6C141FA26C6C143F0007157F6C6C91B5FC6CD9C00314FC6C9038F01FEF
+6DB5128F011FEBFE0F010713F89026007FC0EBF80036467CC43E>I<EC3FF80103B57E01
+0F14E0013F8090397FF83FF89039FFC007FC48496C7E48496C7E48486D1380485A001FED
+7FC05B003FED3FE0A2127F5B17F0161F12FFA290B7FCA401F0C9FCA5127FA27FA2123F17
+F06C7E16016C6C15E06C6C14036C6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE01
+1FB55A010714F0010114C09026001FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13F0
+49B512F849EB8FFC90390FFE0FFE90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03F0
+ED00C01600ABB612F8A5C601E0C7FCB3B0007FEBFFE0A527467DC522>I<137C48B4FC48
+13804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFFA51203
+7EB3AFB6FCA518467CC520>105 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC4
+20>108 D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E
+4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E
+6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D
+7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F
+000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E
+>I<EC1FFC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7
+EA3FE000078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700
+A46C6C4A5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90
+C7FC6DB55A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FF8B590B5
+7E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C0
+4A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E49
+13806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCAD
+B67EA536407DAC3E>I<DA3FE0131E902603FFFC133E010F01FF137E013F1480903AFFF8
+0FE0FE489038E003F148EBC0014890388000FB4890C7127F49143F001F151F485A160F5B
+127FA3485AAC6C7EA46C7EA26C6C141F163F6C6C147F6C15FF6C6D5A6C9038E003EF6C90
+38F01FCF6DB5128F011FEBFE0F010313F89038007FC091C7FCAD0307B512FCA536407CAC
+3B>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC
+14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>I<9039
+1FFC038090B51287000314FF120F381FF003383FC00049133F48C7121F127E00FE140FA2
+15077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E
+010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F
+8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>I<EB
+01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA4C601E0C7
+FCB3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F006DB5FC6D13FC01
+015B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F6C81B3A85E
+A25EA25E7E6E491380017FD901F713FE9138F807E76DB512C7010F1407010313FE902600
+7FF0EBFC00372E7CAC3E>I<B6903803FFFCA5000101E09038003E006C163C80017F5D80
+17F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6DEBE01E
+163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA2
+6E5AA26E5AA21578362C7EAB3B>I E /Fn 24 118 df<1530157015E0EC03C0EC0780EC
+0F00141E5C147C5C5C495A1303495A5C130F49C7FCA2133E137E137C13FC5B1201A2485A
+A25B1207A2485AA3485AA448C8FCA45A127EA512FE5AA95AA87EA2127CA5123C123EA212
+1EA2121F7EA26C7EA26C7EA26C7E120013707FA213181C5A74C323>40
+D<497E806D7E1470147880A280A280A2EC0780A215C01403A215E0A3EC01F0A615F8AF14
+0315F0A5140715E0A4140F15C0A3141F1580A3EC3F00A2143E147EA2147C14FC5C13015C
+13035C13075C495AA249C7FC131E133E5B13785B485A485A12075B000EC8FC5A5A12F05A
+1D5A7FC323>I<121EEA3F80EA7FC012FFA41380EA7F00123C0A0A788919>46
+D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300141F15C0A5143F1580A5
+147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497EB612F8A31D3D78BC
+2D>49 D<EC03FC91381FFF8091387C07E0903901F001F0903903C000F84948137C49C712
+3E131E013E141F133C137C137813F8A3163F486C143E167E6D147C6C6C14FC6E13F89138
+C001F09138F003E090397FF807C09138FC0F0090383FFF3E6D13F86D13E06D7F01017F81
+01077F90391F1FFF80D93E0F13C0EBF8072601F00113E048486C13F04848137F4848131F
+001FEC0FF890C71207003E1403A2481401A300FC15F05AA3ED03E0A26CEC07C0007C1580
+007E140F003EEC1F00003F143E6C6C5B6C6C485A3907F00FE00001B512806C6C48C7FCEB
+0FF0283F7ABC2D>56 D<EC07F8EC3FFE9138FC0F80903901F007C0903907E003E0D90FC0
+13F090381F8001013F14F8EB7F004914FC48481300A24848EB01FEA21207A3485AA41503
+121F5BA31507A2000F15FC150FA2151F1207153F000315F86C6C137F000014EF90387C01
+CF90393E078FF090380FFE1FEB03F890C713E0A2ED3FC0A3ED7F8016005D003F5C487E4A
+5A00FF495A5D4A5A49485A48495A007049C7FC0078137E383E03FC381FFFF06C13C0D801
+FEC8FC273F79BC2D>I<13F0EA01FC1203EA07FEA313FCA2EA03F8EA01E0C7FCB3121EEA
+3F80EA7FC012FFA41380EA7F00123C0F2778A619>I<17E016011603831607A2160FA216
+1F83163FA2167F167716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E151E15
+1C153C03387FED7800157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC
+5CA20270C7EA3FE0171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2137C
+D801FE4B7E2607FF80EC3FFEB500F00107B512FC19F85E3E417DC044>65
+D<013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F
+4B5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FC
+A45F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC
+6115C0483E7DBD44>72 D<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5D
+A514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2
+B6FC263E7EBD21>I<923803FF80031F13F09238FE01FE913903F8003FDA0FE0EB1FC0DA
+3F806D7E4AC7EA03F0D901FC8149486E7E49486E7E010F82494881494816804948ED3FC0
+13FF91C9FC484817E00003171F5B000718F0A2485AA2485A19F8123FA25B127FA219F048
+48163FA519E0187F5BA219C018FF1980A24D1300A24D5A6C7E4D5A60003F160F037C5C6C
+6C48B4495A913A0783803FC0000F90260E01C05B9026F00C0049C7FC0007011CEBE0FE26
+03F818EB61FCD801FCEC73F8D800FEEC77F0017FEC7FC0D93F985CD90FFC01FEC8FC9027
+03FE07F813030100B5FC91260FFC3C5B91C7FC180E163E181E043F137CEF81FC17FF60A2
+60A2705B60705B7048C7FCEE01F83D5276BF47>81 D<9239FF8003800207EBF007021F90
+38FC0F0091387F00FE02FCEB1F1FD903F0EB07BF49486DB4FC49487F4A6D5A49C8FC4915
+7E133E137E173E49153CA57F1738A26D92C7FC808080EB7FFEECFFE06D13FEEDFFC06D14
+F06D14FC010380010080143F020380DA003F7F15031500707E163F161FA2160F121CA316
+07160F003C5EA35F003E151F94C7FC007E5D007F153E6D5C16FC01E0495AD87DF0495AD8
+FCFCEB0FC03AF87F803F8027F01FFFFEC8FCD8E00713F839C0007FC031427BBF33>83
+D<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E82A248140782A26C5A13
+7890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848
+133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA2007F5B913903BF07009038
+80073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97
+D<EC1FF0ECFFFE903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F048
+48EB3FE0485AA24848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC03
+80150716006C6C5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0F
+F0242A7AA828>99 D<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0
+A491380FF03FECFFFC902603F81F138090390FC007BF90391F8003FF90387E0001497F00
+01157F48481500485A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E
+1507A26C4A5A7F001F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE
+0FD90FF0EBE0002D407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F00
+0F80017E14C049EB07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FC
+A2D8FF80C8FC90C9FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B
+6C6C485A3900FC07C0D93FFFC7FCEB07F8242A7BA828>I<1478EB01FE130314FFA25B14
+FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F
+1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105
+D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A513
+1F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108
+D<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE700
+02EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C713
+80A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>110
+D<EC0FF0ECFFFE903903F01F8090390FC007C049C66C7E013E6D7E01FC6D7E4848804914
+7C0003157E485A000F157F5B121FA2485AA2007F1680A2170048C85AA54B5AA25E5A6C4A
+5A7E4B5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C6C5B6C6C485A3900FC0FE090383FFF80
+D90FF8C8FC292A7BA82D>I<903907F01F80D803FFEB7FE09138E1E1F09138E387F83900
+1FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA513
+7F91C8FCA55B5BA31201487EB512FEA325287EA724>114 D<9138FF81C0010713E39038
+1F807F90397C003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF
+8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA212
+3C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC
+38C01FE0222A7DA824>I<EB0380A4130791C7FCA25BA25BA2133EA2137E13FE12011207
+001FB512C0B6FCA2D801FCC7FCA312035BA512075BA5120F5BA41407001F130E13C0A414
+1E141C1380A26D5AA2000F5B14F03807E1E03801FF80D8007EC7FC1A3978B723>I<01FE
+147F00FFEC7FFF4914FEA20007140300031401A34914FCA4150312074914F8A41507120F
+4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE0913807
+3FFF3803F01E3801FFF826003FE01380282977A733>I E /Fo 27
+123 df<15FCEC03FF91380F87C091383E03E0EC7C0102F813F01301903903F000F8495A
+010F14FC5C495A133F91C7FC4914FE13FEA212015B12034913011207A25B000F15FC1503
+121F5BA21507003F15F890B6FCA33A7FC0000FF05BA2151F16E048C7FCA2ED3FC0A24815
+80157F1600A215FEA24A5AA24A5A007E5C14075D4A5A003E5C141F4AC7FC6C137E5C380F
+81F03807C3E03801FF80D8007EC8FC27417DBF2B>18 D<EE01C0A21603A25FA21607A294
+C7FCA25EA2160EA2161EA2161CA2163CA21638A21678017C167048B491387001FC2603C7
+C0EC03FED8070314F0000F7F000E15E0121C010701011301003816004C137ED8780F163E
+0070EBC003181ED8F01F5C0280151C00001407133F020090C7123C1838495B137E030E14
+7801FE167049011E14F018E0031C13010001EE03C049013C148017070338EB0F006C6C15
+1E03785B5F017E01705B4C5A6D9038F003C0D91F80010FC7FC90390FE0E03E903903FCE1
+F89039007FFFE0020790C8FCEC01C0A21403A25DA21407A292C9FCA25CA2140EA2141EA2
+141CA237527EBE3B>32 D<18E00130ED03F80170ED07FC13F0485A5B1203491503000716
+0148CAFC187C120E121E001C173C003C021C14380038147EA20078177803FE147000705C
+A218F04A4814E000F01601A24BEB03C0A24BEB07800203140F6C0107EC1F00173E6CD91F
+F0137E007C013F5C007E90397FF803F83B7F83FFFE1FF0263FFFFCB5FC4A14C06C496C5B
+6C01C091C7FC6C9038001FFCD801FCEB07E036297FA739>I<EE03F801E0EC0FFE0001ED
+3FFF4991B5128000034A14C04848903903F80FE090C73807E0034891390FC001F0000E15
+00001E021E1300001C5C003C177000385C1570007814F000705C140100F04A14F018E048
+495A17014AC7FC18C01703020EEC07807EEF0F006C011E141E0078163E007C011C5C6C5E
+003F013CEB03F0D81F804A5AD80FE0EC1FC02607FC78EBFF802803FFF807FEC7FC6C90B5
+5A6C6C14F0011F14C0010749C8FC010013F0D901F0C9FCA3495AA31307A25CA2130FA349
+5AA491CAFC130E343C7CA73B>39 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A7989
+19>58 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113801203
+13005A120E5A1218123812300B1C798919>I<ED0180ED03C01507A21680150FA216005D
+A2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2
+141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2
+131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E12
+3EA2123C127CA2127812F8A25A1260225B7BC32D>61 D<49B612C05BA2D90001EB800093
+C7FC5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C8FCA35B5C
+A313035CA313075CA3130F5CA3131F5CA2133FA25CEBFFE0B612E0A32A3E7DBD28>73
+D<49B77E18F818FFD90001D900017F9438003FE04BEC0FF0727E727E14034B6E7EA30207
+825DA3020F4B5A5DA24E5A141F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03FC027FEC
+0FF04BEBFF8092B500FCC8FC5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A1407A284
+13035CA2170F13075C60171F130F5CA3011F033F5B4AEE038018E0013F17071A004A021F
+5B496C160EB600E090380FF01E05075B716C5ACBEAFFE0F03F8041407DBD45>82
+D<EC1F80ECFFE0903903F0707090390FC039F890381F801D90383F000F017E5C5B000114
+07485A48485CA2485A001F140F5E485AA2151F007F5D5BA2153F00FF92C7FC90C7FCA25D
+92387E03805AA215FEEDFC07007E0101140014035E6C0107130E140E3A1F801C7C1C000F
+13783A07C1F03E383A01FFC01FF03A007F0007C029297DA730>97
+D<EB1FC0EA0FFF5CA2EA003FA291C8FCA25BA2137EA213FEA25BA21201A25BA21203A25B
+EC3F800007EBFFE09038F3C1F849C67E01FE137E4848133E49133F5B491480001F141F5B
+5BED3FC0123FA290C7FCA248147F1680127EA215FF00FE15005AA24A5AA25D1403485C14
+07007C5C4A5A5D003C495A003E49C7FC001E137E6C13F8380783F03803FFC0C648C8FC22
+407CBE27>I<EC07F0EC7FFE903801FC0F903907E0038090390FC001C0D93F8013E09038
+7F000701FE131F485A485A16C0485A000F15804990C7FC121F485AA3127F5BA312FF90C9
+FCA6007E1560007F15E01501ED03C06CEC07806DEB0F00001F141E6C6C137C3907E001F0
+3901F01FC06CB5C7FCEB1FF023297DA727>I<EE07F0ED03FF17E0A2ED000FA217C0A216
+1FA21780A2163FA21700A25EA2167EA216FEA25EEC1F80ECFFE1903803F07190390FC039
+F890381F801D90383F000F137E495C00011407485A485A5E485A001F140FA248485CA215
+1F127F495CA2153F12FF90C790C7FCA25DEE038048147EA215FE1607007ED901FC130014
+035E6C0107130E140E3A1F801C7C1C000F13783A07C1F03E383A01FFC01FF03A007F0007
+C02C407DBE2F>I<EC1FE0ECFFFC903803F01E90380FC00F90393F800780D97E0013C049
+1303EA03F8120749130748481480121F49130F003FEC1F00153E397F8001FCEC1FF0B612
+8002F8C7FC90C9FCA45AA616C01501007E1403ED07806CEC0F00151E6C5C6C6C13F83907
+C003E03903E03F802600FFFEC7FCEB3FE022297CA72A>I<143C14FEA21301A314FCEB00
+701400AD137E3801FF803803C7C0EA0703000F13E0120E121C13071238A2EA780F007013
+C0A2EAF01F14801200133F14005B137EA213FE5BA212015B0003130E13F0A20007131EEB
+E01CA2143CEBC0381478147014E013C13803E3C03801FF00EA007C173E7EBC1F>105
+D<ED01C0ED07F0A2150FA316E0ED038092C7FCADEC03E0EC0FF8EC3C3EEC701EECE01FEB
+01C001031480EB0780140049133F010E1400131E131C013C5BA290C7127EA215FEA25DA2
+1401A25DA21403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25C147EA2
+001C13FE007F5BEAFF015C495A495A48485A38F81F80D8783EC8FCEA3FF8EA0FE0245081
+BC25>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C9
+FC16FC49EB03FE92380F0780017EEB3C0FED703F01FE13E0913801C07F9038FC0380EC07
+000001010E14004A131C494890C7FC5C00035BEBF9C0495A01FFC9FC5A14F0EBE3FE9038
+E07F80000FEB1FC06E7EEBC00781001F1303160E1380A2003F151E0207131C010013E0A2
+485DA2007E01031378167000FE01015B15F1489038007F800038023EC7FC29407CBE2F>
+I<D801F0EB0FF0D807FCEB3FFED80F1FEBF01F000E903903C00F80271E0F87007F001C01
+8E1307003C01DC80003813F85CEA781F00705B5CA200F049130F013F5D000090C7FCA216
+1F495D137E163F94C7FC13FE495C167EA200019238FE03804914FCA203011307000303F8
+13005B5FEEF00E0007161E49151C5F1778000F6E6C5A49EC7FC0D80380021FC7FC31297E
+A737>110 D<EC07F8EC7FFE903901FC0F80903907E007E090390FC003F090393F8001F8
+EB7F0001FEEB00FC485A484814FEA2485A120F5B001F15FF485AA2ED01FE127F5BA21503
+00FF15FC90C7FCA2ED07F8A2ED0FF0A2007E15E0007FEC1FC0ED3F80A26CEC7F006C6C13
+FC4A5A6C6C485A3907E00FC02601F03FC7FC3800FFFCEB1FE028297DA72C>I<91381F80
+0C9138FFE01C903903F0707C90390FC0387890391F801CF890383F000F137E4914F00001
+1407485A485A16E0485A121F150F484814C0A3007F141F491480A300FF143F90C71300A3
+5D48147EA315FE007E495A1403A26C13074A5A381F801D000F13793807C1F33901FFC3F0
+38007F03130014075DA3140F5DA3141F5DA2143F147F90381FFFFE5BA2263A7DA729>
+113 D<D801F0EB3F80D807FCEBFFE03A0F1F03C0F0000E90380F00F8391E0F9E03001C13
+BC003CEBF807003813F0A226781FE013F000709038C001C092C7FC5C12F0133F000090C8
+FCA35B137EA313FE5BA312015BA312035BA312075BA3120F5BEA038025297EA729>I<EC
+1FC0ECFFF8903803E03C903807800E90381E0007168049130F49131F153FA201F81400A2
+151C6D90C7FC7FEBFFE014FE90387FFFC06D7F6D13F86D7F13039038001FFE1403140015
+7E000C143E123F487EA248C7123CA25D12FC00F05C0070495A0078495A6C495A260F803E
+C7FC3803FFF838007FC021297CA72B>I<147014FC1301A25CA21303A25CA21307A25CA2
+130FA25CA2007FB512F0B6FC15E039001F8000133FA291C7FCA25BA2137EA213FEA25BA2
+1201A25BA21203A25BA21207EC01C013E01403000F1480A2EBC0071500140E141E5C0007
+13385C3803E1E03801FF80D8003EC7FC1C3A7EB821>I<017E147848B4EB01FC2603C7C0
+13FED807031303000F13E0120E121C0107130100381400167ED8780F143E00705B161EEA
+F01F4A131C1200133F91C7123C16385B137E167801FE14705B16F016E0120149EB01C0A2
+ED0380A2ED0700A20000140E5D6D133C017C5B6D5B90381F03C0903807FF80D901FCC7FC
+27297EA72C>118 D<D901F8133FD907FEEBFFE0903A1E0F83C0F0903A3807C780F89039
+7003CF0301E013FED801C0EBFC071203018013F8D8070015F0EE01C0000E4AC7FCA2001E
+1307A2C75BA2140F5DA3141F5DA3143F92380001C0A34A1303001E1680003F017E130726
+7F80FE14005ED8FF81141ED901DF131CD8FE035C3A7C078F80F03A3C0F07C1E03A1FFC03
+FF802707F0007EC7FC2D297EA734>120 D<137C48B4EC03802603C7C0EB0FC0EA070300
+0F7F000E151F001C168013071238163FD8780F150000705BA2D8F01F5C4A137E1200133F
+91C712FE5E5B137E150113FE495CA2150300015D5BA215075EA2150F151F00005D6D133F
+017C137F017E13FF90393F03DF8090380FFF1FEB01FC90C7123F93C7FCA25DD80380137E
+D80FE013FE001F5C4A5AA24848485A4A5A6CC6485A001C495A001E49C8FC000E137C3807
+81F03803FFC0C648C9FC2A3B7EA72D>I<02F8130ED903FE131ED90FFF131C49EB803C49
+EBC0784914F090397E07F1E09038F800FF49EB1FC049EB07800001EC0F006C48131E90C7
+5A5D5D4A5A4A5A4A5A4AC7FC143E14785C495A495A495A49C8FC011E14E05B5B49130148
+48EB03C0485AD807F8EB078048B4131F3A1F87E07F00391E03FFFE486C5B00785CD87000
+5B00F0EB7FC048011FC7FC27297DA72A>I E /Fp 18 121 df<157815FC14031407141F
+14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>
+49 D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F
+0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC
+4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3F
+A24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C
+6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D
+4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903A
+FFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261
+>67 D<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>73
+D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90
+C7000313F0DA7FFC02007F902601FFF0ED3FFE49496F7E49496F7F49496F7F4990C96C7F
+4948707F4948707F01FF854A177F48864849717EA24849711380A2481BC04A83481BE0A2
+4A83481BF0A3481BF8A291CB7EA3B51AFCAF6C1BF8A26E5FA36C1BF0A36C6D4D13E0A36C
+1BC06E5F6C1B806E5F6CDB01FE16006C6D902607FF80495A4C13E06C6D013F6D495A017F
+91267F03F85C6D6C90277C00FC015B6D6C49D97E035B6D01806E485B6D6D48D91F8F5B6D
+01E0039F90C7FC6D01F06EB45A6DD9FCF85DDA3FFF6E13F0020F6D4913C0020301FF90B5
+C8FC020091B512FC031F180C0303181EDB001FEBE3FE93C7EA01FF74133E74137E7413FE
+F2F8077290B5FC1CFCA285A21CF8A2851CF07314E0A27314C0731480731400735B963800
+7FF8F21FE0576A79D265>81 D<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F
+060113FE727F737F737F85737F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A
+06035B060F13F095B512C092B8C9FC19F819E019F89226F0000313FE9439007FFF80727F
+727F727F727F727F8684A28684A787A71D1C75133EA38575137E73157C7513FC731401B8
+6C6D9038F803F807039038FE07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164
+>I<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB3F
+FC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC01
+071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA45E
+A26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC014
+F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97
+D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC
+491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5B
+A312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D
+147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E0
+33387CB63C>99 D<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC01
+0315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980485B83
+485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5
+FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13
+F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F90
+3A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7FC48
+17E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14
+037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0F
+FFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC0203B5FC
+020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A495AA249
+5AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB512FEA5
+2E547CD329>I<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCAD
+EB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>105 D<D93FF0EB1FFCB591B512C0
+030314F0030F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DA
+F7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>110
+D<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D
+6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F18
+80A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D49
+5B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8
+FC020113E03A387CB643>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF8
+9139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE
+0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7
+FC120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F01F0
+91C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15
+C01300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D
+141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807
+148048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F131F
+133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F00
+15806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF89138
+01FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01
+E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091
+C7FC42377BB54B>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D
+5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB
+8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01
+FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F49
+5A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>120
+D E /Fq 78 122 df<16E04B7EA24B7EA24B7EA24B7EA2ED1DFFA203387FA29238787FC0
+15709238F03FE015E002016D7E15C002036D7E158002076D7E15004A6D7E140E021E6D7E
+141C023C6D7F143802786E7E147002F06E7E5C01016F7E5C01036F7E5C01076F7E91C8FC
+496F7E130E011E6F7E131C013C6F7F13380178707E137001F0707E5B0001717E5B000371
+7E5B0007717E90CAFC48717E120E001E717E001FBAFC481980A24819C0A2BB12E0A24341
+7CC04C>1 D<913801FFC0021F13FC9139FF007F80D903F8EB0FE0D90FF0EB07F8D91FC0
+EB01FCD97F806DB4FC49C86C7E48486F7E00038348486F7E000F8349150F001F83491507
+003F83A348486F7EAA6C6C4B5AA3001F5FA26C6C4B5AA200075F6D151F00035FA26C6C4B
+5A00005FA2017F4BC7FC6D157EA26D6C5C010F5DA26D6C495A00E0EF0380010315E0D870
+019238C007006E130301001580A36C0160EC000E003C017049131E263FFFF0ECFFFEA36C
+5FA339407CBF42>10 D<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF0
+3FD907F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE
+6D91C7FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>
+I<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13
+7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9
+FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB
+1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3
+2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C
+D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92
+C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB
+7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<EA01FC127FA3120712031201B3AC487E
+B512F0A314287DA71A>16 D<B7FCA320037AB52D>22 D<121EEA7F8012FF13C0A213E0A3
+127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19
+>39 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2
+485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37E
+A27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00
+E014701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F137813
+7CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA3
+1480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A
+5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FCB3A91506
+3C3C7BB447>43 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A31201
+1380120313005A120E5A1218123812300B1C798919>I<B512FEA617067F961E>I<121EEA
+7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>I<ED0180ED03C01507A21680150FA216
+005DA2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7
+FCA2141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC
+5BA2131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA212
+1E123EA2123C127CA2127812F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03
+F090387C00F849137C48487F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A2
+90C712034815F8A64815FCB3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6C
+EB1F80000315006C6C133E6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC
+2D>I<EB01C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A3
+1D3D78BC2D>I<EB07FC90383FFF8090B512E03903F01FF83907C007FC390F0001FE001E
+6D7E001C1580003CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E015
+3FA216C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A
+495A495A49C71270133E133C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FC
+A3243D7CBC2D>I<EB07FC90383FFF809038F80FE03901E003F839078001FCD80F007F00
+0E6D7E001E1580D81F80137F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA2
+4A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7F
+C0A216E0153FA216F0A2120C123F487E487EA316E0A249137F6CC713C01278EDFF807E6C
+4913006C495A3907C007FC3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<15
+0E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01C0
+A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8
+FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC
+5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F849
+6C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416
+E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A
+3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E9038
+0FC00F90391F000780133E017EEB1FC049133F4848137F12035B12074848EB3F80ED1F00
+001F91C7FC5BA2123FA3485AA214FE903887FF8039FF8F07E090389C01F09038B800FC01
+B0137E13F0497F16804914C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A2
+6C6C1480A20007EC7F006C6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FC
+C7FC243F7CBC2D>I<1238123C123F90B612FCA316F85A16F016E00078C712010070EC03
+C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2
+147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD
+2D>I<EB03FC90381FFF8090387C07E09038F001F83901E0007C48487F48487F48C7FCED
+0F80121E16C0003E1407A4123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF
+80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E39
+03E01FFF48486C1380260F800313C048487E489038007FE0003E143F007E141F007CEC0F
+F01507481403A31501A46C15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C13
+3ED807F05B3901FC03F86CB512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF
+90387E07C09038FC03F048486C7E48486C7E4848137C000F147E4848137F81003F15805B
+007F15C0A2151F12FF16E0A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF
+000313013900F8039F90387E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F
+801400487E486C13FEA24A5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803
+FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3
+121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F
+80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A3120313005A
+1206120E120C121C5A1230A20A3979A619>I<007FB912E0BA12F0A26C18E0CDFCAE007F
+B912E0BA12F0A26C18E03C167BA147>61 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7
+A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA3
+4A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C
+153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A3
+3D417DC044>65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF
+7FC0EF3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03
+FCEE0FF8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018
+F8170F18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C
+90380FFE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF
+801E913A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE014
+0749481403495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B18
+0E127FA349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D1638
+6C6C1678000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D9
+03FE143E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF
+42>I<B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084
+717E717E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF
+19004D5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8
+FC3C3E7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A3
+1870A41838161CA41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2161C
+A21807A3180E93C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486CEB01
+FFB912F0A3383E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707
+A21703A31701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115
+001678A21638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE
+131C021F9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91F
+E0141F4948140F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F
+173CA2485AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC
+123FA27F121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED9
+03FEEC3C7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF0
+3C427BBF47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FC
+A30280C7120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EB
+F000EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<B612F8A3000101E0C9FC38007F80
+B3B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C133FB8FCA3313E7DBD39>
+76 D<B500C093383FFFF0A300016D93387FF800D8007F18E0D977F016EFA3D973F8ED01
+CFA2D971FCED038FA3D970FEED070FA26E150E80A26E6C141CA36E6C1438A26E6C1470A3
+6E6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A2037F130EA36F6C5AA26F6C5AA3
+6F6C5AA25FED07F0A2923803F9C0A36FB45AA26F90C7FCA213F8486C147ED807FFEF3FF8
+B500F8013C011FB512F0A34C3E7DBD53>I<B56C91B512F88080D8007F030713006EEC01
+FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E
+7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE
+0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487ED8
+07FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E
+0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E0001
+8349150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E049163F
+A300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A00
+035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03
+F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EE
+FF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A2
+18F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9
+FCB3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F00
+0FE0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248486F7E
+49150300038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249163FA2
+00FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F80
+5B6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F819038
+061FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE007
+E091271FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF03
+18FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FCEEFF80
+0001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017
+FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC070
+7E707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB600
+C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC130C90
+391FFF801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC4848130F001F140748
+C71203003E1401007E1400A2007C157C12FCA2163CA36C151CA27EA26C6C14007F7FEA3F
+F8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F0207
+13F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C
+157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE
+00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393F
+C0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E
+4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80
+EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D
+6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF0
+3D407DBD44>I<B500FE017FB5D88007B5FCA3000301C0010101E0C713F86C90C849EC3F
+E07148EC0F807E7215006E143F017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2
+933801C3FC6E18F001076104037F6E0281140101036104077F17006D6C4D5AA2040EEB7F
+806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0161E023F171C047814F0DBE070
+010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01
+FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B81037C153EA20378151E0338
+151C58407EBD5D>87 D<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>91
+D<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>93 D<1318133C137E13FF3801E7
+803803C3C0380781E0380F00F0001E137848133C48131E48130F00601306180D76BD2D>
+I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79BD19>I<EB0FF8EBFFFE3903F01F80
+39078007E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103
+B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485AA248C7FCEE038012FEA315FF
+A3007F5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C0FFE3A01FFF807FC3A003FC0
+01F0292A7DA82D>97 D<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E0
+9039FDE001F09039FFC000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717
+F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003
+F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00
+F8017C131E4848131F4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FC
+A290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C13
+1E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715
+031501B114FF010713E190381F80F990387E003D49131FD803F81307485A491303484813
+01121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E
+6C6C497ED8007C017913F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB
+01FE90380FFFC090383F03F09038FC01F848486C7E4848137E48487F000F158049131F00
+1F15C04848130FA2127F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E15
+01000F15C06C6C13036DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE00100
+90C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F
+811401137FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C
+>I<167C903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E0
+00FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803
+E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E
+6C15E06C810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E
+007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0
+293D7EA82D>I<EA01FC12FFA3120712031201B1EC01FE913807FFC091381E07E0913878
+03F09138E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FC
+A32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712
+031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB007814
+00AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F0138
+7C03F0381E07C0380FFF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292
+B51280A392383FFC0016E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E
+13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA2
+82486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487E
+B512F8A3153F7DBE1A>I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0
+913B7803F03C01F80007903BE001F87000FC2603F9C06D487F000101805C01FBD900FF14
+7F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA7
+4C>I<3901F801FE00FF903807FFC091381E07E091387803F000079038E001F82603F9C0
+7F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>
+I<14FF010713E090381F81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0
+000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F
+15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC9038
+0FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE0
+03F03A03FFC001FC6C496C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE
+0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780F
+C0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90
+381F80F090397F00387C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501
+485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E1379
+90383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F8
+07E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300
+A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F00
+3E1307003C1303127C0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE
+6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E
+15F07E14016C14E06CEB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>
+I<131CA6133CA4137CA213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0
+A912009038FE01C0A2EB7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801
+FC14FE00FF147FA3000714030003140100011400B3A51501A31503120015076DEB06FF01
+7E010E13806D4913FC90381FC078903807FFE00100903880FE002E297DA733>I<B539E0
+0FFFE0A32707FE000313006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2
+ECC007011F91C7FCA290380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2EC
+FEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A329
+0FFE003FE00013C06C486D48EB3F806C4817006D010F141E00016F131C15076D163C0000
+4A6C1338A2017F5E4B7E151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90F
+E0017F5BEDE03F02F0140701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02
+FF14DE6D15FCED00076D5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>
+I<B539F01FFFE0A30003D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49
+C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E8114
+7BECF1FC903801E1FEECC0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC
+80486C80000F4A7EB539803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE00031300
+6C48EB01FC6F5A00015D7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A01
+0F130EA26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8
+FCA2140EA2141E141C143C1438A2147800181370127EB45BA2495AA248485AD87E07C9FC
+EA780EEA3C3CEA1FF8EA07E02B3A7EA630>I E /Fr 35 121 df<EDFFF8020F13FF027F
+8049B612E001079038C01FF090390FFE0007D91FF8497ED93FE0131F4948497E13FF5C5A
+91C7FCA2705A705AEE03C093C8FCA6EE03FCB8FCA50001903880001F160FB3AB007FD9FE
+03B512F0A534407EBF3A>12 D<B612E0A91B097F9823>45 D<EA0FC0EA1FE0EA3FF0EA7F
+F8EAFFFCA6EA7FF8EA3FF0EA1FE0EA0FC00E0E798D1D>I<140F143F5C495A130F48B5FC
+B6FCA313F7EAFE071200B3B3A8B712F0A5243C78BB34>49 D<903803FF80013F13F890B5
+12FE00036E7E4881260FF80F7F261FC0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F
+1380A46C5A6C5A6C5A0007C7FCC8FC4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7
+FC5D4A5AEC1FE04A5A4A5A9139FF000F80EB01FC495A4948EB1F00495AEB1F8049C7FC01
+7E5C5B48B7FC485D5A5A5A5A5AB7FC5EA4293C7BBB34>I<903801FFE0010F13FE013F6D
+7E90B612E04801817F3A03FC007FF8D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C
+48133FD801F05CC8FC4B5A5E4B5A4A5B020F5B902607FFFEC7FC15F815FEEDFFC0D90001
+13F06E6C7E6F7E6F7E6F7E1780A26F13C0A217E0EA0FC0487E487E487E487EA317C0A25D
+491580127F49491300D83FC0495A6C6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7
+FC010313E02B3D7CBB34>I<ED01F815031507A2150F151F153FA2157F15FF5C5CA25C5C
+EC1FBFEC3F3F143E147C14FCEB01F814F0EB03E01307EB0FC0EB1F801400133E137E5B48
+5A5B485A1207485A5B48C7FC5A127E5AB812F8A5C8387FF800AA49B612F8A52D3C7DBB34
+>I<16FCA24B7EA24B7EA34B7FA24B7FA34B7FA24B7FA34B7F157C03FC7FEDF87FA20201
+80EDF03F0203804B7E02078115C082020F814B7E021F811500824A81023E7F027E81027C
+7FA202FC814A147F49B77EA34982A2D907E0C7001F7F4A80010F835C83011F8391C87E49
+83133E83017E83017C81B500FC91B612FCA5463F7CBE4F>65 D<922607FFC0130E92B500
+FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C0
+1300013F90C8127F4948151FD9FFF8150F48491507485B4A1503481701485B18004890CA
+FC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA27F6C187E197C6C7F19FC6C
+6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D6CED3F80010F01C0ECFF00
+6D01F8EB03FE6D9039FF801FFC010091B55A023F15E002071580020002FCC7FC030713C0
+3F407ABE4C>67 D<B812F8EFFF8018F018FC18FF26003FFCC76C13C005077F05017F716C
+7E727E727E727E721380A27213C0A27213E0A21AF084A21AF8A41AFCA5197FA319FFA51A
+F8A41AF0A2601AE0A24E13C0A24E13804E1300604E5A4E5A4D485A050713E0057F5BBA5A
+4EC7FC18F818C005F8C8FC463E7DBD50>I<BAFCA4198026003FFEC7123F170717018318
+3FA2181FF00FC0A31807EE07C0A3F003E0A3160F95C7FC161F163F16FF91B6FCA54AC6FC
+163F161F040F147CA2160719F8A593C71201A219F01803A21807A2180FF01FE0183F18FF
+1703173FBAFCA219C0A33E3D7DBC45>I<B6051FB512C06F5EA26F5EA2D8003F97C7FC6F
+16F7A26E6CED01E7A26E6CED03C7A36E6CED0787A26E6CED0F07A26E6C151EA36E6D143C
+A26E6D1478A26E6D14F0A26F6CEB01E0A36F6CEB03C0A26F6CEB0780A26F6CEB0F00A36F
+6C131EA26F6D5AA26F6D5AA26F6D5AA393387FF1E0A293383FFBC0A270B45AA37090C7FC
+A2705AA2705AB600C0031FB612C0A2705AA2705A5A3E7CBD63>77
+D<ED3FFF0203B512F0021F14FE027F6E7E902701FFF80713E00107903980007FF84948C7
+EA1FFCD93FFC6EB4FC49486E7F49486E7F48496E7F4A8048496F7E488491C9123F488448
+48707EA34848707EA3007F1980A24982A200FF19C0AD007F1980A26D5EA2003F1900A36C
+6C4C5AA26C6C4C5AED07F06C9026801FFC495A6C4AB45C6E48EB80FF6C9027E07E0FC15B
+6C9126F807E15B90287FF0F003E35BD93FFC6DB5C7FCD91FFE6D5B902607FFF814F80101
+D9FE0313E06D90B65A021F4AC7124002036E14E0DA003FEB3F8092C77FF0E001F0F80F71
+B5FCA21AC083A21A8083A271140061715B715B725AF01FC043517ABE4F>81
+D<B87E17FCEFFF8018F08428003FFC000113FE9338003FFF050F7F717F717FA2858385A7
+61A25F61614D5B4D90C8FCEF3FFE4CB45A91B712F018C04DC9FC717E9126FC000F7F0401
+13F0707F717EA2717EA2717EA685A6F207C019C0A271140F07E01380B76DEBF01F719038
+FC3F007190B5FC716C5B061F13F8CB000113E04A3F7DBD4E>I<903807FFC0013F13F848
+B6FC48812607FE037F260FF8007F6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC
+153F91B5FC130F137F3901FFFE0F4813E0000F1380381FFE00485A5B485A12FF5BA4151F
+7F007F143F6D90387BFF806C6C01FB13FE391FFF07F36CEBFFE100031480C6EC003FD91F
+F890C7FC2F2B7DA933>97 D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80
+DAFF8113F09139FC003FF802F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0
+A25E1880A218005E6E5C6E495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91
+C7FCD9E00713FCC7000113C033407DBE3A>I<EC7FF00107B5FC011F14C0017F14E09039
+FFF01FF0489038800FF848EB001F4848EB3FFC120F485AA2485AA2007FEC1FF849EB0FF0
+ED03C000FF91C7FCAB127F7FA3003F153E7F001F157E6C6C147C6C6C14FC91388001F86C
+9038C003F0C69038F81FE06DB512C0011F14800107EBFE009038007FF0272B7DA92E>I<
+EE07F8ED07FFA5ED003F161FAFEC7FF0903807FFFE011FEBFF9F017F14DF9039FFF01FFF
+48EBC00348EB00014848EB007F485A001F153F5B123FA2127F5BA212FFAA127FA37F123F
+A26C6C147F120F6D14FF6C6C01037F6C6D48EBFFE06CEBF03F6C6CB512BF6D143F010713
+FC010001E0EBE00033407DBE3A>I<ECFFF0010713FE011F6D7E017F809039FFE07FE048
+9038801FF048496C7E48486D7E48486D7E121F491301003F81A2485A6F1380A212FFA290
+B7FCA401F0C9FCA5127FA27F123FEE0F806C7E161F6C6C15006C6C5C6C6D137E6C9038E0
+01FC6C9038F80FF8013FB55A6D14C0010391C7FC9038007FF8292B7DA930>I<EC07FE91
+387FFF8049B512C0010714E090390FFE3FF0EB1FF090393FE07FF8EB7FC013FF1480A248
+9038003FF0ED1FE0ED0FC092C7FCAAB612E0A500010180C7FCB3AC007FEBFF80A525407D
+BF20>I<903A03FF8007F0013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC
+007FC34848EB3FE1001FEDF1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C
+6C495A3A03FF83FF8091B5C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6
+FC16F016FC6C15FF17806C16C06C16E01207001F16F0393FE000034848EB003F49EC1FF8
+00FF150F90C81207A56C6CEC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF
+800F13006C90B55AC615F8013F14E0010101FCC7FC2F3D7DA834>I<EA01F8487E487E48
+7E481380A66C13006C5A6C5A6C5AC8FCA913FFB5FCA512077EB3ABB512F8A515407CBF1D
+>105 D<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5AED07F0ED1FE04B5A4B5A
+4BC8FCEC03FC4A5A4A5A141FEC7FF84A7EA2818102E77F02C37F148102007F826F7E6F7E
+151F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37>107
+D<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B50107
+13F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013EDAF9
+F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03FEBFF
+80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F000701
+3C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>I<EC7FF0903803FF
+FE011FEBFFC0017F14F09039FFE03FF8489038800FFC3A03FE0003FE48486D7E000F1680
+48486D13C0A2003F16E049147F007F16F0A400FF16F8AA007F16F0A46C6CECFFE0A2001F
+16C06C6C491380A26C6C4913003A03FF800FFE6C9038E03FFC6C6CB512F0011F14C00107
+91C7FC9038007FF02D2B7DA934>I<01FFEBFFE0B5000713FC021FEBFF80027F80DAFF81
+13F09139FC007FF8000301F06D7E4A6D7E4A130F4A6D7E1880A27013C0A38218E0AA4C13
+C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC028713
+FC028113C00280C9FCACB512FEA5333B7DA83A>I<DA7FE01378902607FFFC13F8011FEB
+FF01017F14819039FFF81FC3489038E007E74890388003F74890380001FF48487F001F15
+7F5B003F153F5B127F161FA2485AAA127F7FA36C6C143F167F121F6C6C14FF6D5B6C6D5A
+6CEBC00F6CEBF03F6C6CB512BF6DEBFE3F010713F8010013C091C7FCAC030FB512E0A533
+3B7DA837>I<3901FE01FE00FF903807FF804A13E04A13F0EC3F1F91387C3FF8000713F8
+000313F0EBFFE0A29138C01FF0ED0FE091388007C092C7FCA391C8FCB3A2B6FCA525297D
+A82B>I<90383FFC1E48B512BE000714FE5A381FF00F383F800148C7FC007E147EA200FE
+143EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14F06C806C806C806C80C61580131F13
+00020713C014000078147F00F8143F151F7EA27E16806C143F6D140001E013FF9038F803
+FE90B55A15F0D8F87F13C026E00FFEC7FC222B7DA929>I<EB07C0A5130FA4131FA3133F
+137FA213FF5A1207001FEBFFFEB6FCA40001EBC000B3151FA96CEBE03EA2017F137EECF8
+FC90383FFFF86D13F0010713E001001380203B7EB929>I<D9FF80EB0FF8B5EB0FFFA500
+07EC007F6C153FB3A5167FA316FF6C5C4B7F6C903AC007DFFFE09138F01F9F6DB5121F6D
+13FE010F13F8010101E0EBE000332A7CA83A>I<B53CFC3FFFFC03FFFEA50003D9800090
+39C0000F806E161F6C037F15006E496C5B6C183E836E48157E017F177C6E486D13FC013F
+02EF5C83DAFC071401011F02C75CDAFE0FEBFE03010F02835C17FFDAFF1F14076D02015C
+03BF148F6DD9BE005C18CF03FE14DF6D49017F90C7FC18FF6D496D5AA36E486D5AA26E48
+6D5AA36E486D5AA26E486D5A47287EA74C>119 D<B5D8FC03B51280A5C69026E0007FC7
+FC6E13FE6D6C5B6D6C485A6D6C485A010F13076D6C485AED9FC06DEBFF806D91C8FC6D5B
+6E5AA2143F6E7E140F814A7F4A7F4A7F02FE7F903801FC7F49486C7E02F07F49486C7E49
+486C7E011F7F49486C7FD97F008001FE6D7FB5D8C007EBFFC0A532287EA737>I
+E /Fs 8 119 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>58
+D<91B712F018FF19E002009039C0003FF86F48EB07FC03FFEC01FEF0007F93C8EA3F801A
+C0F11FE05C5D1AF0A214035DA30207EE3FE05DA2F17FC0020F17804B15FF1A004E5A021F
+4B5A4B4A5AF00FE04E5A023F037FC7FC4BEB03FCEF1FF092B612804A4AC8FC923980007F
+80EF0FC0EF07F002FF6E7E92C77F1701845B4A1400A2170113035CA2170313075CA24D5A
+130F5CA3011F18185CA2013F4C13381A304A6F1370D9FFE0020314E0B600E0ED01C00501
+EB0380943900FE0F00CBEA3FFEF007F045467CC34A>82 D<EC07F8EC3FFE903901FC0780
+903903F003C090390FC001E090381F8000017FC7FC01FE1470485A484814F0000715E05B
+000F1401484814C015034848EB0780ED1F0015FC007FEB1FF090B5128002F0C7FC0180C8
+FC12FF90C9FCA55AA41618007E15381670007F15E06CEC01C0ED03806CEC07006C6C131E
+6D13383907E001F03901F00FC026007FFEC7FCEB1FF0252D7CAB2D>101
+D<141E143F5C5CA3147E143891C7FCAE133EEBFF803801C3C0380781E0380601F0120E12
+1CEA180312381230A2EA700700605BA2EAE00F00C05BEA001F5CA2133F91C7FCA25B137E
+13FE5BA212015BEC03800003140013F01207495A1406140E140CEBC01C141814385C0003
+5BEBE1C0C6B45A013EC7FC19437DC121>105 D<01F8EB03FCD803FEEB1FFFD8071F9038
+7C0FC03B0E0F80E007E03A0C07C3C003001CD9C7007F001801CE1301003801DC80003013
+D8EB0FF800705B00605BA200E0491303D8C01F5D5C12001607013F5D91C7FCA2160F495D
+137E161F5F13FE49143F94C7FC187000014B136049147E16FE4C13E0000317C049150104
+F81380170300071700495D170EEE781C000FED7C3849EC1FF0D80380EC07C0342D7DAB3A
+>110 D<EC03FCEC3FFF9138FE07C0903903F003F049486C7E90391FC000FC49C7127C49
+147E01FE147F484880485A000716805B120F485AA2485A167F127F5BA216FF00FF160090
+C8FCA25D5E5A4B5AA25E15075E4B5A151F007E5D4B5A6C4AC7FC15FE391F8001F86C6C48
+5A3907E00FC03901F03F802600FFFCC8FCEB1FE0292D7CAB2F>I<EC0FF0EC7FFE903901
+F00F809039078001C049C712E0011E14605BED01F0491307A201F8EB0FE05B7FED03806D
+90C7FC7F7F14F86DB47E15E06D13F86D7F01077F1300EC07FF140081ED3F80151F120E00
+3FEC0F00487EA25D48C7121EA200FC5C12605D00705C6C495A6CEB07C0260F803FC7FC38
+03FFFC38007FE0242D7BAB2E>115 D<013E140ED9FF80EB3F802603C3C0137F380703E0
+380601F0120E121CD81803143F0038151F0030150FA2D87007140700605BA2D8E00F1500
+00C0497FEA001F4A5B1606133F91C7FC160E49140C137EA2161C01FE14185B1638163016
+704848146016E05E150100005D15036D49C7FC1506017C130E017E5B6D137890380F81E0
+6DB45AD900FEC8FC292D7DAB2F>118 D E /Ft 14 118 df<121FEA3F80EA7FC0EAFFE0
+A5EA7FC0EA3F80EA1F000B0B6C8A33>46 D<EC07F8EC3FFF91B57E010314E0010F804980
+90383FFC0F90397FE003FC9038FF80014890C77ED803FC147E49EB7E7F0007903801FFBF
+D9F00713FF4848481480495A001F5B018013C3003FEB7F810100010013C002FE137F4849
+133FEA7E014A131FA212FEEAFC034A130FA96E131FD8FE011580127EA26E133FD87F0015
+006C6D5B027F13FE01801381001F90383FC3FC01C013FF000F6D5B6D6C5B6C6C6C5BD9F8
+0113800003D9007EC7FC6D9038000F806CB4EC1FC06C6D133FD97FE013FF90263FFC0713
+806DB612006D5C010314F801005C023F1380DA07FCC7FC2A3F7CBD33>64
+D<EB1FFC90B57E000314E048804814FC48809038F007FFEBE0016E7F153F6C48806C4813
+1FC87F150FA5EC0FFF49B5FC131F137F48B6FC0007140F4813C0381FFC00EA3FF0EA7FC0
+5B48C7FC5AA56C141F7E6D137FD83FE0497ED9F807EBFFF06CB712F87E6C14F36C14C1C6
+9138003FF0D91FF090C7FC2D2E7BAC33>97 D<EA3FFC487E12FFA2127F123F1200ABEC01
+FE91380FFFC04A13F0027F7F91B512FE90B7FCECFE07DAF800138002E0EB7FC04AEB3FE0
+4A131FEE0FF091C7FC16074915F81603A217FC1601A9160317F8A26D140717F06E130F17
+E06E131FEE3FC06E137F9139F801FF80DAFE07130091B55A495C6E5BD97E3F13E0D93C0F
+138090260003FEC7FC2E3E7FBC33>I<ED7FF84B7E5CA280157F1501ABEB01FF010713C1
+011F13F1017F13F990B6FC5A4813813907FE003FD80FF8131F49130F4848130749130312
+3F491301127F90C7FCA25A5AA97E7E15037F123F6D1307A26C6C130F6D131F6C6C133F6C
+6C137F2603FF81B512F091B612F8C602FD13FC6D13F96D01E113F8010F018013F0D901FE
+C8FC2E3E7DBC33>100 D<ECFF80010713F0011F13FC497F90B6FC48158048018013C03A
+07FE003FE001F8EB0FF048481307484814F8491303003F15FC491301127F90C7FC16FE15
+005A5AB7FCA516FC48C9FC7E7EA36C7E167C6C6C14FE7F6C7E6D13016C6CEB03FC6CB413
+0F6C9038C03FF86C90B512F06D14E06D14C0010F1400010313FC9038007FE0272E7BAC33
+>I<D901FEEB1FE0903A0FFFC0FFF0013F01F313F84990B512FC90B7FC5A48010313E126
+07FC00EB80F849017F1360484890383FC00049131FA2001F8149130FA66D131F000F5DA2
+6D133F6C6C495A6D13FF2603FF0390C7FCECFFFE485C5D5DD80FCF13C0D981FEC8FC0180
+C9FCA27FA26C7E7F90B512FC6CECFFC06C15F0000715FC4815FF4816809038E000074848
+9038007FC090C8EA1FE048150F007E150700FE16F0481503A56C1507007E16E0007F150F
+6C6CEC1FC001E0147FD81FF8903801FF80270FFF801F13006C90B55A6C5DC615F0013F14
+C0010F91C7FC010013F02E447DAB33>103 D<EA3FFC487E12FFA2127F123F1200AB4AB4
+FC020713C0021F13F0027F7F91B5FC90B67EED07FEECF801ECF0004A7F4A7F5CA291C7FC
+A35BB3A43B3FFFF80FFFFC486D4813FEB56C4813FFA26C496C13FE6C496C13FC303D7FBC
+33>I<383FFFFC487FB5FCA27E7EC7FCB3B3AD003FB612F84815FCB712FEA26C15FC6C15
+F8273D7ABC33>108 D<4AB4FC263FFC0713C0267FFE1F13F000FF017F7F91B5FC6CB67E
+6CEC07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF80FFFFC486D4813FE
+B56C4813FFA26C496C13FE6C496C13FC302C7FAB33>110 D<EB01FE90380FFFC0013F13
+F0497F90B57E488048EB03FF2607FC0013804848EB7FC049133F4848EB1FE049130F4848
+EB07F0A2007F15F890C71203A300FEEC01FCAA6C14036C15F8A26D1307003F15F06D130F
+A26C6CEB1FE06D133F6C6CEB7FC06C6CEBFF802603FF0313006CEBFFFE6C5C6D5B6D5B01
+0F13C0D901FEC7FC262E7AAC33>I<ED03FE3B7FFF801FFF80B5D8C07F13E002C1B5FC02
+C314F014C76C9038CFFE0F39001FDFF09139FFC007E092388003C092C8FC5C5C5CA25CA2
+5CA35CB2007FB512FEB7FCA46C5C2C2C7DAB33>114 D<90381FFE0F90B5EA8F80000314
+FF120F5A5AEBF007387F800190C7FC00FE147F5A153FA37E007FEC1F0001C090C7FCEA3F
+F8EBFFC06C13FF6C14E0000314F8C680011F13FF01001480020713C0EC007FED1FE0007C
+140F00FEEC07F01503A27EA27F15076D14E06D130F6DEB3FC09038FE01FF90B612801600
+00FD5C00FC14F8D8F83F13E0D8780790C7FC242E79AC33>I<D83FFCEB1FFE486C497E00
+FF5CA2007F80003F800000EC007FB3A75EA25DA26D5B90387F800FDAE03F13FC6DB612FE
+17FF6D806D01FE13FE01039038F83FFC010001C0C7FC302C7FAA33>117
+D E /Fu 15 112 df<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B
+13F85B12015B1203A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127C
+A3127EA4123EA2123FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB07
+80EB03C01301EB00E014701438141C140C166476CA26>40 D<12C07E12707E7E7E120F6C
+7E6C7EA26C7E6C7EA21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0
+A21301A214F8A41300A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80
+A3EB1F00A2131E133E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A1664
+7BCA26>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>46
+D<143014F013011303131F13FFB5FC13E713071200B3B3B0497E497E007FB6FCA3204278
+C131>49 D<14FF010713E0011F13F890387F00FE01FC133FD801F0EB1F804848EB0FC049
+EB07E00007EC03F048481301A290C713F8481400A47FA26D130116F07F6C6CEB03E013FC
+6C6CEB07C09039FF800F806C9038C01F006CEBF03EECF87839007FFEF090383FFFC07F01
+077F6D13F8497F90381E7FFFD97C1F1380496C13C02601E00313E048486C13F000079038
+007FF84848EB3FFC48C7120F003EEC07FE150148140016FF167F48153FA2161FA56C151E
+007C153EA2007E153C003E157C6C15F86DEB01F06C6CEB03E06C6CEB07C0D803F8EB1F80
+C6B4EBFF0090383FFFFC010F13F00101138028447CC131>56 D<14FF010713E0011F13F8
+90387F80FC9038FC007E48487F4848EB1F804848EB0FC0000FEC07E0485AED03F0485A16
+F8007F140190C713FCA25AA216FE1500A516FFA46C5CA36C7E5D121F7F000F5C6C6C1306
+150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF80FE903801FE0090C8FC150116FCA4
+ED03F8A216F0D80F801307486C14E0486C130F16C0ED1F80A249EB3F0049137E001EC75A
+001C495A000F495A3907E01FE06CB51280C649C7FCEB1FF028447CC131>I<121EEA7F80
+A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2B78
+AA1B>I<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA3ED30FFA203707FED607FA203E07F
+EDC03FA2020180ED801FA2DA03007F160FA20206801607A24A6D7EA34A6D7EA34A6D7EA2
+0270810260147FA202E08191B7FCA249820280C7121FA249C87F170FA20106821707A249
+6F7EA3496F7EA3496F7EA201788313F8486C83D80FFF03037FB500E0027FEBFFC0A34247
+7DC649>65 D<B6D8C003B6FCA3000101E0C70007138026007F80913801FE00B3A991B7FC
+A30280C71201B3AC2601FFE0913807FF80B6D8C003B6FCA340447CC349>72
+D<49B41303010FEBE007013F13F89039FE00FE0FD801F8131FD807E0EB079F49EB03DF48
+486DB4FC48C8FC4881003E81127E82127C00FC81A282A37E82A27EA26C6C91C7FC7F7FEA
+3FF813FE381FFFE06C13FE6CEBFFE06C14FC6C14FF6C15C0013F14F0010F80010180D900
+1F7F14019138001FFF03031380816F13C0167F163F161F17E000C0150FA31607A37EA36C
+16C0160F7E17806C151F6C16006C5D6D147ED8FBC05CD8F9F0495AD8F07C495A90393FC0
+0FE0D8E00FB51280010149C7FC39C0003FF02B487BC536>83 D<EC7F80903803FFF09038
+0FC07C90383F000F01FCEB03804848EB01C00003140F4848EB1FE049133F120F485AA248
+5AED1FC0007FEC070092C7FCA290C9FC5AAB7E7FA2123F16307F001F15706C6C146016E0
+6C6C14C06C6C13010001EC03806C6CEB0700013F131E90381FC078903807FFF001001380
+242E7DAC2B>99 D<167FED3FFFA315018182B3EC7F80903803FFF090380FC07C90383F00
+0E017E1307496D5AD803F87F48487F5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2
+123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F011C13FE90
+380FC0F8903803FFE09026007F0013002F467DC436>I<EB01FE903807FFC090381F03F0
+90387E00FC49137E48487F485A4848EB1F80000F15C049130F121F484814E01507A2007F
+15F090C7FCA25AA390B6FCA290C9FCA67EA27FA2123F16306C7E1670000F15606D14E06C
+6C14C0000314016C6CEB03806C6CEB0700013E131E90381F80F8903803FFE0010090C7FC
+242E7DAC2B>I<EA01FC12FFA3120712031201B3B3B3A5487EB512F8A315457DC41C>108
+D<EC7F80903803FFF090380FC0FC90383E001F496D7E496D7E48486D7E48486D7E48486D
+7E000F81A24848147E003F157FA290C87E481680A44816C0AA6C1680A26D147F003F1600
+A2001F157E6D14FE000F5D6D130100075D6C6C495A6C6C495A6C6C495A013E49C7FC9038
+1FC0FE903807FFF89038007F802A2E7DAC31>111 D E /Fv 25 121
+df<EE3FF0923803FFFE031F6D7E92397FC01FC0913A01FE0003E0DA07F8EB00F04A4814
+784A48804A48EB01FC4A48EB07FE4AC7FC4948140F13035C13075C715A010F6F5A4AEC00
+E095C8FCB3EF03FEB9FCA426000FF0C7120F1703A21701B3B3AD496C4A7E496C4A7F003F
+B5D8FC07B61280A441657EE448>12 D<B712F0A7240780A12B>45
+D<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F00C7FCB3B3A2120FEA3FC0EA7FE0EA
+FFF0A6EA7FE0EA3FC0EA0F000C3E74BD24>58 D<170FA34D7EA24D7EA34D7EA34D7EA34C
+7F17DFA29338039FFC178FA29338070FFE1707040F7FEE0E03A2041E80EE1C01A2043C80
+EE3800A24C80187FA24C80183FA24B4880181F0303814C130FA203078193C71207A24B81
+030E80A24B8284A24B8284A24B82197F03F0824B153FA20201834B151FA202038392B8FC
+A24A83A292C91207020E8385A24A8485023C84023882A20278840270177FA202F0844A17
+3FA24948841A1FA24948841A0FA249CB7F1A074985865B496C85497E48486C4D7F000F01
+F8051F13F0B60407B612F0A45C657DE463>65 D<B712C0A4C66CEB8000D91FFEC7FC6D5A
+B3B3B3B3AE497E90387FFF80B712C0A422627AE12F>73 D<933801FFE0043F13FF4BB612
+E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A48C8EA3FE0DA03FCED0FF0DA0F
+F0ED03FC4A486F7E4A486F7E4A48707E4ACA6C7E4948717E4948717E4948717E4948717E
+4948717E013F854A83017F864948727EA24890CC6C7EA24848737EA24848737EA2000F87
+491907001F87A34848737EA4007F1C80A24985A400FF1CC0AF6C6C4F1380A5003F1C006D
+61A3001F63A26D190F000F63A26C6C4F5AA36C6C4F5AA26C6D4E5A6C636E18FF017F626D
+6C4D90C7FC6E5F011F616D6C4D5A6D6C4D5A0103616E171F6D6C4D5A6D6D4C5ADA3FC04C
+C8FCDA1FF0ED03FE6E6C4B5A6E6C4B5ADA01FFED3FE09126007FC0ECFF80DB1FF0D903FE
+C9FCDB07FFEB3FF8030190B512E0DB003F91CAFC040113E05A667AE367>79
+D<933801FFE0043F13FF4BB612E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A
+48C8EA3FE0DA03FCED0FF0DA0FF8ED07FCDA1FE0ED01FE4A486F7E4A48707E4ACA6C7E49
+48717E4948717E4948717E010F854948717E4948717EA24948717F01FF864A187F4890CC
+6C7EA2488749191F00078749190F000F87A2001F87491907A2003F87A24985A2007F1C80
+A44985A200FF1CC0AF007F1C806D61A4003F1C00A36D61001F63A36C6C4F5AA20007636D
+191FA26C6C4F5AA26C636C6DDA3F804A5AEFFFE06D6C010301F84A5A6D6C902607C07C49
+90C7FC93380F001E6D6C011E6D495A6D6C6F495A0107021CD903805B6D6C013C6D6C485A
+6E0138151F6D6C0300495A6D01806F485ADA3FC04CC8FCDA1FE0ED71FE91260FF83CEC77
+FC912607FC1CEC7FF8912601FF1EEC3FE09126007FDEECFF80DB1FFFD903FEC9FC030790
+38C03FF8030190B56C1560DB003F143C0401EBE01C93C8121EA21DE0191FA3736C13011D
+C0741303A274130774130F736CEB1F8074133F9738FF01FF7390B51200A264856485745B
+745B745B08071380E001FEC7FC5B807AE367>81 D<EC3FF0903803FFFE010F6D7E90393F
+C03FE090397E0007F801F86D7ED801E06D7E48486D7E48486E7E48C86C7E7F01F06E7E48
+7E6D6E7EA3707EA36C5AEA03E0C9FCA6167FED7FFF020FB5FC91387FF807903801FF8090
+3807FC00EB1FF0EB7FC0495AD803FEC7FC485A120F5B485A485AA2484817E0A312FF5BA2
+160FA3161F6D141B007F153B16736D913971FC01C06C6C14E1001FEC01C1D80FFC903A07
+80FE03806C6C903A0F00FF07002701FF807E6DB4FC27007FFFF86D5A011F01E0EB1FF801
+0190C7EA07E03B417ABF42>97 D<4AB47E020F13F8023F13FE9139FF007F80D903FCEB07
+E0D907F0EB01F0D91FE0EB007849488049488049C87E48485D4915FF00034B138048485C
+A2485AA2485AA2003F6F130049EC007C94C7FC127FA35B12FFAD127F7FA4123F7FA2001F
+EE01C07F000F16036D168012076C6C15076D160000015E6C6C151E6D6C5C6D6C5C6D6C5C
+D90FF8495AD903FCEB07C0903A00FF803F8091263FFFFEC7FC020F13F80201138032417C
+BF3A>99 D<181EEF3FFEEE07FFA4EE000F1703A21701B3AAEDFF80020F13F8023F13FE91
+39FF803F81903A03FC0007C14948EB01E1D91FE0EB00F94948147D4948143D49C8121F48
+48150F491507120348481503491501120F121F5BA2123F5B127FA45B12FFAD127F7FA312
+3FA27F121FA26C6C1503A26C6C150712036D150F6C6C151F0000163D137F6D6CECF9FF6D
+6CEB01F1D90FF0D903C113C06D6CD90F81EBFF80D901FFEB7F019039007FFFFC021F13E0
+0201010091C7FC41657CE349>I<EC03FE91381FFFE091B512F8903901FE03FE903A07F0
+007F8049486D7ED93FC06D7E49C76C7E496E7E4914034848814848140100078249140000
+0F8283485A1880123F49153FA2007F17C0A35BA212FF90B8FCA30180CAFCA9127F7FA312
+3FA27F121FEF01C06C7E17036C6C1680A26C6C15070001EE0F006D150E6C6C151E6D6C5C
+6D6C5C6D6C5CD907F0EB03E0D903FC495A902700FF803FC7FC91383FFFFC020F13F00201
+138032417CBF3A>I<EB03C0EA07FFB5FCA41201EA007FA2133FB3AAEE7FE0923803FFFC
+030F13FFDB3F0013C00378EB1FE04B6D7EDAC1C06D7EDAC3808002C7C7120302CE811701
+14DC14D802F86E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A442647DE349
+>104 D<133C13FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA412
+01EA007FA2133FB3B3AC497E497EB612E0A41B5F7DDE23>I<EB03C0EA07FFB5FCA41201
+EA007FA2133FB3B3B3B3AD497E497EB612F0A41C647DE323>108
+D<D903C0D9FFC0EC07FED807FF010301F891381FFFC0B5010F01FE027F13F0923D3F00FF
+8001F807FC0378903B3FC003C001FEDAC1E090261FE00FC77E0001D9C3C090260FF01E6E
+7ED8007F49902607F81C6E7E02C7C75CD93FCE6E6C486E7E02CC166002DC16E002D85E02
+F8DA01FF6F7E4A5EA24A93C8FCA44A5DB3B3496C4A6C4B7E496C4A6D4A7EB6D8F007B6D8
+803FB512FCA4663F7CBE6F>I<D903C0EB7FE0D807FF903803FFFCB5010F13FFDB3F0013
+C00378EB1FE04B6D7E0001D9C1C06D7E27007FC3808002C7C71203D93FCE81170114DC14
+D802F86E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A4423F7DBE49>I<ED
+FF80020F13F8023F13FE9139FF007F80D903FCEB1FE0D907F0EB07F0D90FC0EB01F8D93F
+80EB00FE49C8127F017E81496F7E48486F7E00038349150700078348486F7EA2001F8349
+1501A2003F83A348486F7EA400FF1880AC007F1800A26D5DA2003F5FA36C6C4B5AA36C6C
+4B5A00075FA26C6C4B5A6C6C4B5AA26C6C4B5A017F4BC7FC6D6C14FE6D6C495AD90FF0EB
+07F8D903FCEB1FE0D900FFEB7F806EB5C8FC020F13F8020113C039417CBF42>I<D903C0
+EB7FC0D807FF903807FFFCB5011F13FFDB7F0013C003F8EB1FF0DAC3E0EB07F80001D9C7
+806D7E26007FCFC76C7E02DE6E7ED93FFC6F7E4A6F7E4A82181F4A82727E5C727EA2727E
+A3727EA41A8084AC4E1300A54E5AA2611807A24E5A6E5E181F6E4B5A6E5E187F6E4B5A02
+DE4A90C7FC02CF4A5ADAC780495ADAC3C0EB0FF0DAC1F0EB3FE0913AC07E01FF806FB448
+C8FC030F13F80300138093CAFCB3A3497E497EB612F0A4415B7DBE49>I<9039078003F8
+D807FFEB0FFFB5013F13C092387C0FE0913881F01F9238E03FF00001EB838039007F8700
+148FEB3F8E029CEB1FE0EE0FC00298EB030002B890C7FCA214B014F0A25CA55CB3B0497E
+EBFFF8B612FCA42C3F7CBE33>114 D<9139FFE00180010FEBFC03017FEBFF073A01FF00
+1FCFD803F8EB03EFD807E0EB01FF48487F4848147F48C8123F003E151F007E150F127CA2
+00FC1507A316037EA27E7F6C7E6D91C7FC13F8EA3FFE381FFFF06CEBFF806C14F86C14FF
+6C15C06C6C14F0011F80010714FED9007F7F02031480DA003F13C01503030013E0167F00
+E0ED1FF0160F17F86C15071603A36C1501A37EA26C16F016037E17E06D14076DEC0FC06D
+1580D8FDF0141FD8F8F8EC7F00013E14FC3AF01FC00FF80107B512E0D8E001148027C000
+3FF8C7FC2D417DBF34>I<1438A71478A414F8A31301A31303A21307130F131FA2137F13
+FF1203000F90B6FCB8FCA3260007F8C8FCB3AE17E0AE6D6CEB01C0A316036D6C14801607
+6D6C14006E6C5A91383FC01E91381FF07C6EB45A020313E09138007F802B597FD733>I<
+D903C0150FD807FFED1FFFB50203B5FCA40001ED0007D8007F1501A2013F81B3B25FA35F
+A35F011F15066E140E5F130F6E4A7F01075D6D6C494813E0D901FE4948EBFFC0903A00FF
+C01F8091393FFFFE00020F13F8020001C0EC800042407DBE49>I<B66C49B512E0A40001
+01F8C8387FFE0026007FE0ED1FF819E0013F705A61131F6E93C7FC130F180E6E151E0107
+161C8001035EA26E157801011670806D5EA26F1301027F5DA26E6C495AA26F1307021F92
+C8FCA26E6C130EA26F131E0207141CA26F133C020314388102015CA26F13F06E5C168092
+387F81C0A216C3033F5B16E3DB1FE7C9FCA216FF6F5AA26F5AA36F5AA26F5AA36F5A433F
+7FBD46>I<B6D8801FB500E090B512F8A4000301F0C7D87FFCC7001F1380C601C0DA3FF0
+913807FE00051F6F5A017F030F6F5A64133F05075E6E81011F030F5EA26E6F1403010F03
+1F5E171D6E6F14070107033D93C7FC17386E6F5C01030378150EEF707F6E70131E010103
+F0151CEFE03F6E70133C6D02011638EFC01F03806F1378027F01031670EF800F03C06F13
+F0023F01075EEF000703E0EDF801021F495E040E130303F0EDFC03020F011E5E041C1301
+03F8EDFE070207013C93C8FC0438130003FC6F5A02030178150E0470147F03FE169E0201
+01F0159C4C143F03FF16FC6E5F4C141FA2037F5E4C140FA2033F5E93C81207A26F5E031E
+1503030E5E5D3F7FBD60>I<007FB500C0010FB512E0A4C691C70003EBFC00D93FFE6E13
+E0D90FFC16807148C7FC01075E6D6C4A5A6D6C5D6D6D495A606E6C495A6E6C49C8FC6E6C
+130E171E6E6C5B6E6C5B6E6C5B5F913801FF016EEB83C092387FC780033F90C9FC16EFED
+1FFE6F5A6F5A826F7E6F7E5D834B7F92380F3FE0ED1E1F033C7F9238380FF892387807FC
+EDF003DA01E07F4A486C7E707F4A486D7E4AC7FC021E6E7E021C6E7E023C6E7E5C4A6E7E
+01016F7E49486E7E1307010F6F7F013F83D9FFF04A7F00076D4A13FCB56C020FEBFFF8A4
+453E80BD46>I E end
+TeXDict begin
+
+1 0 bop 249 763 a Fv(Quaternions:)60 b(An)44 b(In)l(tro)t(duction)g
+(with)g(Octa)l(v)l(e)g(m-\014le)g(examples)1071 1016
+y Fu(A.)32 b(S.)h(Ho)s(del)f Ft(a.s.hodel@eng.auburn.edu)1462
+1219 y Fs(R)q(ev)t(ision)d Fu(:)f(1)p Fs(:)p Fu(1)k(\(c\))g(1998)1537
+1568 y Fr(Ac)m(kno)m(wledgemen)m(t)0 1781 y Fq(The)g(author)g
+(gratefully)f(thanks)h(the)h(Fligh)m(t)f(Con)m(trols)g(and)f(Dynamics)h
+(Branc)m(h)h(at)g(Marshall)e(Space)h(Fligh)m(t)0 1894
+y(Cen)m(ter)h(for)f(their)g(useful)f(discussions)f(that)j(led)f(to)h
+(this)f(do)s(cumen)m(t)g(and)g(m-\014le)g(suite.)47 b(Citations)32
+b(are)h(giv)m(en)0 2007 y(where)28 b(they)g(w)m(ere)h(a)m(v)-5
+b(ailable)28 b(to)h(me.)40 b(I)28 b(w)m(elcome)h(an)m(y)g(suggestions)f
+(for)g(additional)e(reference)j(material)f(to)h(b)s(e)0
+2120 y(placed)h(in)f(the)h(bibliograph)m(y)-8 b(.)0 2406
+y Fp(Con)l(ten)l(ts)0 2610 y Fr(1)84 b(Quaternions)3154
+b(2)136 2723 y Fq(1.1)94 b(De\014nition)61 b Fo(:)46
+b(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h
+(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)
+h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2836 y(1.2)94
+b(Multiplication)28 b(of)i(quaternions)72 b Fo(:)46 b(:)g(:)f(:)h(:)g
+(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)
+g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2949 y(1.3)94
+b(Quaternions)29 b(as)i(rotations)39 b Fo(:)46 b(:)g(:)f(:)h(:)g(:)f(:)
+h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h
+(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(3)136
+3061 y(1.4)94 b(Application)29 b(of)h(quaternions)g(in)f(co)s(ordinate)
+h(frame)g(transformations)53 b Fo(:)45 b(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)
+h(:)g(:)f(:)131 b Fq(6)345 3174 y(1.4.1)106 b(Euler)29
+b(angles)i Fo(:)46 b(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h(:)
+g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h
+(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(6)345 3287 y(1.4.2)106
+b(Co)s(ordinate)30 b(transformation)g(matrices)g(and)g(quaternions)46
+b Fo(:)g(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131
+b Fq(6)136 3400 y(1.5)94 b(Time)30 b(deriv)-5 b(ativ)m(e)30
+b(of)g(a)h(quaternion)42 b Fo(:)k(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h
+(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)
+g(:)f(:)85 b Fq(12)1927 5656 y(1)p eop
+2 1 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(2)0 399
+y Fp(1)135 b(Quaternions)0 601 y Fq(A)32 b(con)m(v)m(enien)m(t)g(w)m(a)
+m(y)h(to)f(represen)m(t)f(the)h(relativ)m(e)g(orien)m(tation)f(of)h(t)m
+(w)m(o)g(frames)g(is)e(through)h(the)h(use)f(of)g(quater-)0
+714 y(nions.)0 958 y Fm(1.1)112 b(De\014nition)0 1129
+y Fr(De\014nition)35 b(1.1)46 b Fq(A)31 b(quaternion)e(is)g(a)i(4-v)m
+(ector)i(de\014ned)c(b)m(y)1268 1334 y Fo(q)f Fq(=)d
+Fo(a)1474 1313 y Fq(^)1481 1334 y Fo(i)c Fq(+)f Fo(b)1662
+1313 y Fq(^)1663 1334 y Fo(j)26 b Fq(+)19 b Fo(c)1857
+1310 y Fq(^)1855 1334 y Fo(k)24 b Fq(+)c Fo(d;)46 b(a;)15
+b(b;)g(c;)g(d)27 b Fl(2)e Fq(I)-9 b(R)0 1538 y(where)256
+1517 y(^)263 1538 y Fo(i)p Fq(,)348 1517 y(^)350 1538
+y Fo(j)5 b Fq(,)450 1514 y(^)448 1538 y Fo(k)33 b Fq(are)e(quan)m
+(tities)f(satisfying)1498 1517 y(^)1505 1538 y Fo(i)1536
+1505 y Fk(2)1601 1538 y Fq(=)1696 1517 y(^)1697 1538
+y Fo(j)1739 1505 y Fk(2)1804 1538 y Fq(=)1903 1514 y(^)1900
+1538 y Fo(k)1950 1505 y Fk(2)2015 1538 y Fq(=)25 b Fl(\000)p
+Fq(1)31 b(and)1476 1721 y(^)1483 1742 y Fo(i)1513 1721
+y Fq(^)1515 1742 y Fo(j)f Fq(=)1681 1718 y(^)1678 1742
+y Fo(k)1846 1721 y Fq(^)1847 1742 y Fo(j)1892 1718 y
+Fq(^)1890 1742 y Fo(k)e Fq(=)2054 1721 y(^)2061 1742
+y Fo(i)2213 1718 y Fq(^)2211 1742 y Fo(k)2254 1721 y
+Fq(^)2261 1742 y Fo(i)e Fq(=)2412 1721 y(^)2413 1742
+y Fo(j)1372 1859 y Fq(^)1373 1880 y Fo(j)6 b Fq(\0201)25
+b(=)g Fl(\000)1681 1856 y Fq(^)1679 1880 y Fo(k)1814
+1856 y Fq(^)1812 1880 y Fo(k)1860 1859 y Fq(^)1862 1880
+y Fo(j)31 b Fq(=)25 b Fl(\000)2090 1859 y Fq(^)2097 1880
+y Fo(i)2204 1859 y Fq(^)2211 1880 y Fo(i)2244 1856 y
+Fq(^)2242 1880 y Fo(k)k Fq(=)24 b Fl(\000)2483 1859 y
+Fq(^)2484 1880 y Fo(j)0 2092 y Fr(Remark)34 b(1.1)46
+b Fq(Notice)35 b(that)1058 2072 y(^)1065 2092 y Fo(i)p
+Fq(,)1154 2072 y(^)1156 2092 y Fo(j)5 b Fq(,)35 b(and)1440
+2068 y(^)1438 2092 y Fo(k)h Fq(are)e(scalar)g(quan)m(tities)e(equal)h
+(to)2718 2021 y Fl(p)p 2793 2021 117 4 v 2793 2092 a(\000)p
+Fq(1)q(;)i(ho)m(w)m(ev)m(er,)3341 2072 y(^)3348 2092
+y Fo(i)p Fq(,)3437 2072 y(^)3438 2092 y Fo(j)6 b Fq(,)35
+b(and)3723 2068 y(^)3720 2092 y Fo(k)i Fq(do)0 2205 y(not)g(comm)m(ute)
+h(under)d(m)m(ultiplication.)56 b(Therefore)36 b(quaternions)g(do)g
+(not)h(comm)m(ute)h(under)d(m)m(ultiplication)0 2318
+y(\()p Fo(q)76 2332 y Fk(1)115 2318 y Fo(q)156 2332 y
+Fk(2)221 2318 y Fl(6)p Fq(=)25 b Fo(q)358 2332 y Fk(2)397
+2318 y Fo(q)438 2332 y Fk(1)497 2318 y Fq(in)20 b(general\).)38
+b(This)19 b(is)h(consisten)m(t)h(with)f(the)h(in)m(terpretation)f(of)h
+(quaternions)f(as)h(spatial)f(rotations)0 2431 y(\(to)31
+b(b)s(e)f(discussed)f(in)g Fl(x)p Fq(1.4.2.)0 2644 y
+Fr(M-\014le)46 b Fj(quaternion)57 b Fq(Create/extract)34
+b(quaternion)29 b(information:)227 2869 y Fj(quaternion:)45
+b(construct)g(or)i(extract)f(a)i(quaternion)227 2982
+y(w)g(=)f(a*i)g(+)h(b*j)e(+)i(c*k)f(+)g(d)h(from)e(given)h(data.)227
+3207 y(calling)f(formats:)227 3320 y([a,b,c,d])141 b(=)47
+b(quaternion\(w\))570 b(-or-)227 3433 y([vv,theta])45
+b(=)j(quaternion\(w\))227 3546 y(w)525 b(=)47 b(quaternion\(a,b,c,d\))
+227 3659 y(w)525 b(=)47 b(quaternion\(vv,theta\))227
+3884 y Fq(\()p Fj(vv,theta)29 b Fq(format)h(to)i(b)s(e)d(explained)g
+(later\))0 4128 y Fm(1.2)112 b(Multiplication)34 b(of)k(quaternions)0
+4299 y Fq(F)-8 b(rom)31 b(De\014nition)e(1.1,)j(w)m(e)e(ha)m(v)m(e)533
+4503 y Fo(q)574 4517 y Fk(1)613 4503 y Fo(q)654 4517
+y Fk(2)776 4503 y Fq(=)83 b(\()p Fo(a)1013 4517 y Fk(1)1046
+4483 y Fq(^)1053 4503 y Fo(i)20 b Fq(+)g Fo(b)1234 4517
+y Fk(1)1272 4483 y Fq(^)1274 4503 y Fo(j)26 b Fq(+)20
+b Fo(c)1467 4517 y Fk(1)1509 4479 y Fq(^)1506 4503 y
+Fo(k)k Fq(+)c Fo(d)1715 4517 y Fk(1)1754 4503 y Fq(\)\()p
+Fo(a)1872 4517 y Fk(2)1905 4483 y Fq(^)1913 4503 y Fo(i)g
+Fq(+)g Fo(b)2094 4517 y Fk(2)2132 4483 y Fq(^)2133 4503
+y Fo(j)26 b Fq(+)20 b Fo(c)2326 4517 y Fk(2)2368 4479
+y Fq(^)2366 4503 y Fo(k)j Fq(+)d Fo(d)2574 4517 y Fk(2)2614
+4503 y Fq(\))776 4641 y(=)83 b(\()p Fo(a)1013 4655 y
+Fk(1)1053 4641 y Fo(d)1100 4655 y Fk(2)1160 4641 y Fq(+)20
+b Fo(b)1290 4655 y Fk(1)1329 4641 y Fo(c)1368 4655 y
+Fk(2)1428 4641 y Fl(\000)g Fo(c)1558 4655 y Fk(1)1598
+4641 y Fo(b)1637 4655 y Fk(2)1697 4641 y Fq(+)f Fo(d)1834
+4655 y Fk(1)1874 4641 y Fo(a)1922 4655 y Fk(2)1962 4641
+y Fq(\))p Fo(i)i Fq(+)e(\()p Fo(c)2213 4655 y Fk(1)2254
+4641 y Fo(a)2302 4655 y Fk(2)2361 4641 y Fl(\000)h Fo(a)2500
+4655 y Fk(1)2540 4641 y Fo(c)2579 4655 y Fk(2)2639 4641
+y Fq(+)g Fo(b)2769 4655 y Fk(1)2808 4641 y Fo(d)2855
+4655 y Fk(2)2915 4641 y Fq(+)g Fo(d)3053 4655 y Fk(1)3093
+4641 y Fo(b)3132 4655 y Fk(2)3171 4641 y Fq(\))3205 4620
+y(^)3206 4641 y Fo(j)930 4779 y Fq(+\()p Fo(a)1084 4793
+y Fk(1)1124 4779 y Fo(b)1163 4793 y Fk(2)1222 4779 y
+Fl(\000)g Fo(b)1352 4793 y Fk(1)1392 4779 y Fo(a)1440
+4793 y Fk(2)1499 4779 y Fq(+)g Fo(c)1629 4793 y Fk(1)1669
+4779 y Fo(d)1716 4793 y Fk(2)1776 4779 y Fq(+)g Fo(d)1914
+4793 y Fk(1)1954 4779 y Fo(c)1993 4793 y Fk(2)2032 4779
+y Fq(\))2069 4755 y(^)2067 4779 y Fo(k)k Fq(+)c(\()p
+Fl(\000)p Fo(a)2383 4793 y Fk(1)2423 4779 y Fo(a)2471
+4793 y Fk(2)2530 4779 y Fl(\000)g Fo(b)2660 4793 y Fk(1)2700
+4779 y Fo(b)2739 4793 y Fk(2)2798 4779 y Fl(\000)g Fo(c)2928
+4793 y Fk(1)2968 4779 y Fo(c)3007 4793 y Fk(2)3067 4779
+y Fq(+)g Fo(d)3205 4793 y Fk(1)3245 4779 y Fo(d)3292
+4793 y Fk(2)3331 4779 y Fq(\))347 b(\(1.1\))21 5018 y(De\014ne)21
+b Fo(v)337 5032 y Fk(1)401 5018 y Fq(=)497 4924 y Fi(h)578
+5018 y Fo(a)626 5032 y Fk(1)749 5018 y Fo(b)788 5032
+y Fk(1)910 5018 y Fo(c)949 5032 y Fk(1)1030 4924 y Fi(i)1070
+4947 y Fh(T)1145 5018 y Fq(and)g Fo(v)1357 5032 y Fk(2)1421
+5018 y Fq(=)1517 4924 y Fi(h)1598 5018 y Fo(a)1646 5032
+y Fk(2)1769 5018 y Fo(b)1808 5032 y Fk(2)1930 5018 y
+Fo(c)1969 5032 y Fk(2)2050 4924 y Fi(i)2089 4947 y Fh(T)2145
+5018 y Fq(.)37 b(Then)20 b([Mul)o(])h(equation)g(\(1.1\))h(ma)m(y)g(b)s
+(e)e(rewritten)0 5131 y(as)1017 5244 y Fo(q)1058 5258
+y Fk(1)1097 5244 y Fo(q)1138 5258 y Fk(2)1202 5244 y
+Fq(=)25 b Fo(d)1345 5258 y Fk(1)1385 5244 y Fo(d)1432
+5258 y Fk(2)1492 5244 y Fq(+)20 b Fo(d)1630 5258 y Fk(1)1669
+5244 y Fo(v)1713 5258 y Fk(2)1773 5244 y Fq(+)g Fo(d)1911
+5258 y Fk(2)1951 5244 y Fo(v)1995 5258 y Fk(1)2054 5244
+y Fl(\000)g(h)q Fo(v)2225 5258 y Fk(1)2264 5244 y Fo(;)15
+b(v)2348 5258 y Fk(2)2388 5244 y Fl(i)21 b Fq(+)f(\()p
+Fo(v)2614 5258 y Fk(1)2674 5244 y Fl(\002)f Fo(v)2808
+5258 y Fk(2)2848 5244 y Fq(\))830 b(\(1.2\))p eop
+3 2 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(3)0 399
+y(where)30 b(the)g(cross)h(pro)s(duct)1385 622 y(\()p
+Fo(v)1464 636 y Fk(1)1524 622 y Fl(\002)20 b Fo(v)1659
+636 y Fk(2)1699 622 y Fq(\))1765 572 y Fk(\001)1759 622
+y Fq(=)1855 424 y Fi(\014)1855 474 y(\014)1855 524 y(\014)1855
+574 y(\014)1855 624 y(\014)1855 674 y(\014)1855 723 y(\014)1883
+428 y(2)1883 574 y(6)1883 627 y(4)2001 492 y Fq(^)2008
+513 y Fo(i)2167 492 y Fq(^)2168 513 y Fo(j)2328 489 y
+Fq(^)2326 513 y Fo(k)1980 625 y(a)2028 639 y Fk(1)2150
+625 y Fo(b)2189 639 y Fk(1)2312 625 y Fo(c)2351 639 y
+Fk(1)1980 738 y Fo(a)2028 752 y Fk(2)2150 738 y Fo(b)2189
+752 y Fk(2)2312 738 y Fo(c)2351 752 y Fk(2)2432 428 y
+Fi(3)2432 574 y(7)2432 627 y(5)2487 424 y(\014)2487 474
+y(\014)2487 524 y(\014)2487 574 y(\014)2487 624 y(\014)2487
+674 y(\014)2487 723 y(\014)0 881 y Fq(This)29 b(v)m(ector-based)j(in)m
+(terpretation)d(will)f(b)s(ecome)j(more)f(imp)s(ortan)m(t)g(in)f
+Fl(x)p Fq(1.4.2.)0 1040 y Fr(M-\014le)46 b Fj(qmult)227
+1231 y(function)g(c)h(=)h(qmult\(a,b\))227 1344 y(multiply)e(two)h
+(quaternions)0 1534 y Fr(De\014nition)35 b(1.2)46 b Fq(The)26
+b Fg(c)-5 b(onjugate)26 b Fq(of)g(a)h(quaternion)e Fo(q)j
+Fq(=)d Fo(a)2077 1514 y Fq(^)2084 1534 y Fo(i)12 b Fq(+)f
+Fo(b)2247 1514 y Fq(^)2248 1534 y Fo(j)17 b Fq(+)11 b
+Fo(c)2425 1510 y Fq(^)2423 1534 y Fo(k)k Fq(+)c Fo(d)26
+b Fq(is)f Fo(q)2771 1501 y Ff(\003)2836 1534 y Fq(=)g
+Fl(\000)p Fo(a)3044 1514 y Fq(^)3051 1534 y Fo(i)11 b
+Fl(\000)g Fo(b)3213 1514 y Fq(^)3214 1534 y Fo(j)17 b
+Fl(\000)11 b Fo(c)3391 1510 y Fq(^)3389 1534 y Fo(k)k
+Fq(+)c Fo(d)p Fq(.)40 b(Notice)0 1664 y(that)35 b Fo(q)s(q)289
+1631 y Ff(\003)361 1664 y Fq(=)d Fo(q)508 1631 y Ff(\003)547
+1664 y Fo(q)k Fq(=)c Fo(a)775 1631 y Fk(2)837 1664 y
+Fq(+)23 b Fo(b)970 1631 y Fk(2)1033 1664 y Fq(+)f Fo(c)1165
+1631 y Fk(2)1228 1664 y Fq(+)h Fo(d)1369 1631 y Fk(2)1447
+1614 y(\001)1441 1664 y Fq(=)32 b Fl(j)p Fo(q)s Fl(j)1639
+1622 y Fk(2)1678 1664 y Fq(.)54 b(F)-8 b(or)35 b(quaternions)f
+Fo(q)j Fq(with)c Fo(q)s(q)2799 1631 y Ff(\003)2871 1664
+y Fl(6)p Fq(=)f(0)j(w)m(e)g(de\014ne)f(the)h Fg(inverse)0
+1821 y(quaternion)c Fo(q)498 1783 y Ff(\000)p Fk(1)618
+1821 y Fq(=)746 1759 y Fo(q)790 1726 y Ff(\003)p 724
+1799 128 4 v 724 1883 a Fo(q)s(q)812 1857 y Ff(\003)861
+1821 y Fq(.)40 b(Notice)32 b(that)f Fo(q)s(q)1497 1788
+y Ff(\000)p Fk(1)1616 1821 y Fq(=)25 b Fo(q)1756 1788
+y Ff(\000)p Fk(1)1850 1821 y Fo(q)j Fq(=)d(1.)0 2037
+y Fr(M-\014le)46 b Fj(qinv)59 b Fq(Compute)30 b(the)h(in)m(v)m(erse)f
+(of)g(a)h(quaternion)227 2228 y Fj(function)46 b(b)h(=)h(qinv\(a\))227
+2341 y(return)e(the)h(inverse)f(of)h(a)h(quaternion)227
+2454 y(a)g(=)95 b([w,x,y,z])45 b(=)j(w*i)f(+)g(x*j)g(+)g(y*k)g(+)h(z)
+227 2567 y(qmult\(a,qinv\(a\)\))c(=)j(1)h(=)f([0)g(0)h(0)f(1])0
+2757 y Fr(Example)34 b(1.1)46 b Fq(Compute)30 b(and)f(m)m(ultiply)f
+(the)j(in)m(v)m(erse)f(quaternion:)0 2916 y Fj(octave:1>)45
+b(q)j(=)f(quaternion\(1,2,3,4\);)42 b(qi)48 b(=)f(qinv\(q\))0
+3029 y(qi)g(=)h(-0.033333)93 b(-0.066667)g(-0.100000)140
+b(0.133333)0 3142 y(octave:2>)45 b(qmult\(qi,q\))0 3255
+y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3368 y(octave:3>)45 b(qmult\(q,qi\))0
+3481 y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3640 y Fq(In)30 b(b)s(oth)f(cases)j
+(the)e(pro)s(duct)f(is)h(the)g(iden)m(tiy)f(quaternion)h(0)2101
+3619 y(^)2108 3640 y Fo(i)21 b Fq(+)f(0)2295 3619 y(^)2296
+3640 y Fo(j)26 b Fq(+)20 b(0)2497 3616 y(^)2495 3640
+y Fo(k)k Fq(+)19 b(1)26 b(=)f(1.)0 3878 y Fm(1.3)112
+b(Quaternions)38 b(as)g(rotations)0 4062 y Fr(De\014nition)d(1.3)46
+b Fq(A)31 b Fg(unit)h(quaternion)g Fo(q)c Fq(=)d Fo(a)1617
+4041 y Fq(^)1624 4062 y Fo(i)20 b Fq(+)g Fo(b)1804 4041
+y Fq(^)1805 4062 y Fo(j)26 b Fq(+)20 b Fo(c)2000 4038
+y Fq(^)1998 4062 y Fo(k)k Fq(+)19 b Fo(d)31 b Fq(satis\014es)2572
+3964 y Fi(\015)2572 4014 y(\015)2572 4064 y(\015)2618
+3967 y(h)2699 4062 y Fo(a)83 b(b)g(c)g(d)3163 3967 y
+Fi(i)3202 3964 y(\015)3202 4014 y(\015)3202 4064 y(\015)3248
+4118 y Fk(2)3313 4062 y Fq(=)25 b(1.)0 4254 y Fr(Remark)34
+b(1.2)46 b Fq(Unit)40 b(quaternions)f(ma)m(y)h(b)s(e)g(considered)f(as)
+h(represen)m(tations)g(of)h(a)f(rotation)h(of)f Fo(\022)i
+Fq(degrees)0 4367 y(ab)s(out)f(a)g(giv)m(en)g(unit)f(v)m(ector)j
+Fo(v)h Fq(\(see)e(routine)e Fj(quaternion)p Fq(\).)70
+b(The)41 b(transformation)f(is)g(accomplished)g(b)m(y)0
+4496 y(m)m(ultiplying)27 b Fo(v)529 4510 y Fh(r)592 4496
+y Fq(=)e Fo(q)s(v)s(q)823 4463 y Ff(\000)p Fk(1)917 4496
+y Fq(,)31 b(where)f Fo(v)e Fq(=)1404 4402 y Fi(h)1485
+4496 y Fo(x)83 b(y)j(z)h Fq(0)1967 4402 y Fi(i)2006 4496
+y Fq(.)0 4684 y(With)30 b(this)f(in)m(terpretation,)h(unit)f
+(quaternions)g(ma)m(y)i(b)s(e)f(written)f(as)890 4964
+y Fo(q)f Fq(=)1055 4870 y Fi(\020)1105 4964 y Fo(ai)21
+b Fq(+)e Fo(b)1333 4944 y Fq(^)1334 4964 y Fo(j)26 b
+Fq(+)20 b Fo(c)1529 4940 y Fq(^)1527 4964 y Fo(k)1578
+4870 y Fi(\021)1643 4964 y Fq(sin)n(\()p Fo(\022)s(=)p
+Fq(2\))h(+)f(cos)q(\()p Fo(\022)s(=)p Fq(2\))2432 4914
+y Fk(\001)2426 4964 y Fq(=)2522 4771 y Fi(0)2522 4917
+y(B)2522 4970 y(@)2594 4771 y(2)2594 4917 y(6)2594 4970
+y(4)2691 4851 y Fo(a)2696 4964 y(b)2696 5077 y(c)2781
+4771 y Fi(3)2781 4917 y(7)2781 4970 y(5)2851 4964 y Fo(;)15
+b(\022)2937 4771 y Fi(1)2937 4917 y(C)2937 4970 y(A)3713
+4964 y Fq(\(1.3\))0 5279 y(Notice)26 b(that)f(this)f(implies)e(that)
+1137 5185 y Fi(h)1218 5279 y Fo(a)83 b(b)g(c)1552 5185
+y Fi(i)1615 5279 y Fq(is)24 b(also)h(a)g(unit)e(v)m(ector.)41
+b(This)23 b(is)g(consisten)m(t)j(with)d(m)m(ultiplication)0
+5407 y(b)m(y)30 b(the)h(iden)m(tit)m(y)f(quaterion)g
+Fo(q)e Fq(=)d(1,)31 b(since)e(cos)q(\(0\))d(=)f(1)31
+b(and)f(sin)o(\(0\))c(=)f(0.)p eop
+4 3 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s
+(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439
+b Fn(\(c\))32 b(1998)908 b Fq(4)0 399 y Fr(Example)34
+b(1.2)46 b Fq(Unit)33 b(quaternions)g(ma)m(y)h(b)s(e)g(m)m(ultiplied)c
+(to)35 b(obtain)e(a)i(single)e(equiv)-5 b(alen)m(t)33
+b(co)s(ordinate)h(rota-)0 511 y(tion.)47 b(Let)33 b Fo(q)435
+525 y Fk(3)506 511 y Fq(b)s(e)f(a)h(90)800 478 y Ff(\016)872
+511 y Fq(rotation)g(ab)s(out)f(the)h Fo(x)p Fl(\000)p
+Fq(axis.)46 b(F)-8 b(ollo)m(w)33 b(this)e(rotation)i(b)m(y)g
+Fo(q)2982 525 y Fk(2)3021 511 y Fq(,)g(a)g(90)3247 478
+y Ff(\016)3319 511 y Fq(rotation)g(ab)s(out)0 624 y(the)k(\(new\))g
+Fo(y)i Fq(axis.)60 b(Finally)-8 b(,)37 b(follo)m(w)f(this)g(rotation)h
+(b)m(y)f Fo(q)2067 638 y Fk(1)2106 624 y Fq(,)j(a)e(90)2342
+591 y Ff(\016)2419 624 y Fq(rotation)g(ab)s(out)g(the)g(\(newly)f
+(revised\))g Fo(z)0 737 y Fq(axis.)k(Then)30 b Fo(q)e
+Fq(=)d Fo(q)664 751 y Fk(1)703 737 y Fo(q)744 751 y Fk(2)783
+737 y Fo(q)824 751 y Fk(3)893 737 y Fq(is)k(a)i(90)g(degree)g(rotation)
+g(ab)s(out)f(the)h(original)d Fo(y)s Fq(-axis.)0 925
+y Fj(octave:1>)45 b(degrees)h(=)i(pi/180;)0 1038 y(octave:2>)d(q1)i(=)h
+(quaternion\([0,0,1],90*de)o(gree)o(s\);)0 1151 y(octave:3>)d(q2)i(=)h
+(quaternion\([0,1,0],90*de)o(gree)o(s\);)0 1264 y(octave:4>)d(q3)i(=)h
+(quaternion\([1,0,0],90*de)o(gree)o(s\);)0 1377 y(octave:5>)d(q)j(=)f
+(qmult\(q1,qmult\(q2,q3\)\);)0 1489 y(octave:6>)e([vv,th])h(=)i
+(quaternion\(q\))0 1602 y(vv)f(=)h(0)f(1)h(0)0 1715 y(th)f(=)h(1.5708)0
+1828 y(octave:7>)d(th/degrees)0 1941 y(ans)i(=)g(90.000)118
+2154 y Fq(The)26 b(rotation)g(ab)s(out)g(a)h(v)m(ector)h(axis)e(in)m
+(terpretation)f(of)i(quaternions)e(requires)g(care:)39
+b(the)26 b(axis)g(of)h(rotation)0 2267 y(is)40 b(tak)m(en)j(based)e(on)
+h(the)f(co)s(ordinate)g(frame)h(for)f(whic)m(h)f(the)i(quaternion)e(w)m
+(as)i(written.)73 b(F)-8 b(or)42 b(example,)j(a)0 2379
+y(rotation)30 b(around)e(the)i(inertial)d Fo(y)s Fq(-axis)i(follo)m(w)m
+(ed)g(b)m(y)g(a)h(rotation)g(around)e(the)i(inertial)d
+Fo(x)j Fq(axis)e(can)i(b)s(e)f(written)0 2492 y(as)949
+2623 y Fo(q)f Fq(=)d Fo(q)1155 2637 y Fh(x)1199 2623
+y Fo(q)1240 2637 y Fh(y)1306 2623 y Fq(=)1402 2504 y
+Fi(\022)1463 2529 y(h)1544 2623 y Fq(1)83 b(0)h(0)1888
+2529 y Fi(i)1927 2552 y Fh(T)1982 2623 y Fo(;)15 b(\022)2065
+2637 y Fh(x)2109 2504 y Fi(\023)g(\022)2246 2529 y(h)2327
+2623 y Fq(0)83 b(1)h(0)2671 2529 y Fi(i)2710 2552 y Fh(T)2765
+2623 y Fo(;)15 b(\022)2848 2637 y Fh(y)2890 2504 y Fi(\023)0
+2825 y Fq(This)31 b(is)i(inconsisten)m(t)f(with)g(the)h(de\014nition)e
+(of)j(Euler)d(angles,)k(in)c(whic)m(h)h(eac)m(h)j(angle)e(is)f
+(de\014ned)g(b)m(y)h(a)h(frame)0 2938 y(based)41 b(up)s(on)f(the)i
+(previous)e(rotation.)75 b(This)40 b(problem)g(is)h(addressed)f(b)m(y)i
+(co)s(ordinate)f(transformation)g(b)m(y)0 3051 y(quaternions:)0
+3264 y Fr(M-\014le)46 b Fj(qtrans)59 b Fq(T)-8 b(ransform)29
+b(a)i(quaternion)e(in)g(one)i(frame)f(to)h(the)g(co)s(ordinate)f(basis)
+f(of)i(another)f(frame.)275 3489 y Fj(function)46 b(v)h(=)g
+(qtrans\(v,q\))275 3602 y(transform)e(the)i(vector)f(v)i(\(in)f
+(quaternion)e(form\))h(by)h(the)g(quaternion)e(q;)275
+3714 y(v)i(=)h([x)f(y)h(z)f(0],)g(q)g(=)h(transformation)c(quaternion)
+275 3827 y(returns)i(v)h(=)h(q*v/q)0 4052 y Fr(Remark)34
+b(1.3)46 b Fq(Giv)m(en)34 b(a)h(quaternion)e Fo(q)1425
+4067 y Fh(f)1504 4052 y Fq(describing)f(the)j(rotation)f(from)g(an)g
+(inertial)e(frame)i(\()p Fo(x)3463 4066 y Fk(1)3503 4052
+y Fo(;)15 b(y)3588 4066 y Fk(1)3628 4052 y Fo(;)g(z)3710
+4066 y Fk(1)3750 4052 y Fq(\))34 b(to)0 4165 y(second)24
+b(frame)f(\()p Fo(x)622 4179 y Fk(2)662 4165 y Fo(;)15
+b(y)747 4179 y Fk(2)787 4165 y Fo(;)g(z)869 4179 y Fk(2)909
+4165 y Fq(\),)25 b(a)f(quaternion)f Fo(q)1555 4179 y
+Fh(r)1616 4165 y Fq(de\014ned)f(in)h(the)h(second)f(frame)h(ma)m(y)g(b)
+s(e)f(applied)f(b)m(y)h(m)m(ultiplying)0 4278 y Fo(q)41
+4293 y Fh(f)86 4278 y Fo(q)127 4292 y Fh(r)164 4278 y
+Fo(q)205 4293 y Fh(f)250 4245 y Ff(\000)p Fk(1)345 4278
+y Fq(:)111 4466 y(1.)46 b(T)-8 b(ransform)30 b(\(rotate\))i(frame)f(2)f
+(\()p Fo(x)1424 4480 y Fk(2)1464 4466 y Fo(;)15 b(y)1549
+4480 y Fk(2)1589 4466 y Fo(;)g(z)1671 4480 y Fk(2)1711
+4466 y Fq(\))30 b(bac)m(k)h(to)h(the)e(inertial)e(frame.)111
+4653 y(2.)46 b(P)m(erform)31 b(the)f(rotation)h Fo(q)1124
+4667 y Fh(r)1161 4653 y Fq(.)111 4841 y(3.)46 b(Rotate)33
+b(bac)m(k)e(to)g(the)f(second)h(frame)f(via)g Fo(q)1745
+4856 y Fh(f)1790 4841 y Fq(.)0 5074 y(That)40 b(is,)h(if)e
+Fo(q)499 5088 y Fh(r)577 5074 y Fq(=)689 4955 y Fi(\022)750
+4980 y(h)831 5074 y Fq(0)83 b(1)h(0)1175 4980 y Fi(i)1214
+5003 y Fh(T)1269 5074 y Fo(;)15 b(\022)1352 5088 y Fh(r)1390
+4955 y Fi(\023)1491 5074 y Fq(is)38 b(a)i(rotation)h(ab)s(out)e(the)h
+Fo(y)j Fq(axis)c(in)f(the)i(frame)g(\()p Fo(x)3385 5088
+y Fk(2)3425 5074 y Fo(;)15 b(y)3510 5088 y Fk(2)3549
+5074 y Fo(;)g(z)3631 5088 y Fk(2)3671 5074 y Fq(\),)43
+b(the)0 5235 y(quaternion)29 b Fo(q)498 5250 y Fh(f)543
+5235 y Fo(q)584 5249 y Fh(r)622 5235 y Fo(q)663 5250
+y Fh(f)708 5202 y Ff(\000)p Fk(1)832 5235 y Fq(is)h(the)g(equiv)-5
+b(alen)m(t)30 b(rotation)h(in)e(the)i(frame)f(\()p Fo(x)2466
+5249 y Fk(1)2506 5235 y Fo(;)15 b(y)2591 5249 y Fk(1)2630
+5235 y Fo(;)g(z)2712 5249 y Fk(1)2752 5235 y Fq(\).)p
+eop
+5 4 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(5)0 399
+y Fr(Example)34 b(1.3)46 b(Quaternion)27 b(algebra)d
+Fl(\000)p Fq(90)1672 366 y Ff(\016)1736 399 y Fq(rotation)h(ab)s(out)e
+Fo(x)h Fq(follo)m(w)m(ed)g(b)m(y)g(90)2963 366 y Ff(\016)3028
+399 y Fq(rotation)g(ab)s(out)g(revised)0 522 y Fo(y)33
+b Fq(and)d Fo(z)k Fq(axes)d(is)f(equiv)-5 b(alen)m(t)30
+b(to)h(a)g(rotation)f(ab)s(out)g(the)2007 428 y Fi(h)2088
+522 y Fq(1)83 b(1)h(1)2432 428 y Fi(i)2501 522 y Fq(v)m(ector.)0
+711 y Fj(qx)95 b(=)47 b(quaternion\([1,0,0],-pi/2\);)184
+b(#)48 b(elementary)d(rotations)0 824 y(qy1)i(=)g
+(quaternion\([0,1,0],pi/2\);)0 936 y(qz2)g(=)g
+(quaternion\([0,0,1],pi/2\);)0 1162 y(qyi)g(=)g(qtrans\(qy1,qx\);)712
+b(#)48 b(transform)d(back)i(to)g(original)e(coordinates)0
+1275 y(qzi)i(=)g(qtrans\(qtrans\(qz2,qy1\),qx\))o(;)0
+1388 y(qzi2=)f(qtrans\(qz2,qyi\);)664 b(#)48 b(NOT)f(THE)f(SAME)h(as)g
+(qzi!)0 1501 y(qzi3=)f(qtrans\(qz2,qmult\(qyi,qx\)\);)184
+b(#)48 b(This)e(matches)94 b(qzi)0 1727 y([qyiv,thyi])45
+b(=)i(quaternion\(qyi\))330 b(#)48 b(check)e(vectors,)g(angles)0
+1840 y([qziv,thzi])f(=)i(quaternion\(qzi\))0 1953 y([qzi2v,thz2i])d(=)k
+(quaternion\(qzi2\))0 2066 y([qzi3v,thz3i])c(=)k(quaternion\(qzi3\))0
+2291 y(qtot)f(=)g(qmult\(qzi,qmult\(qyi,qx\)\))0 2404
+y(qtotchk)f(=)h(qmult\(qx,)f(qmult\(qy1,qz2\)\))118 2582
+y Fq(Output:)0 2741 y Fj(qyiv)h(=)g(0.00000)141 b(0.00000)94
+b(-1.00000)0 2854 y(thyi)47 b(=)g(1.5708)0 3013 y Fo(q)41
+3027 y Fh(y)76 3036 y Fe(1)145 3013 y Fq(in)29 b(the)h
+Fo(q)448 3027 y Fh(x)522 3013 y Fq(frame)g(is)g(equiv)-5
+b(alen)m(t)29 b(to)j(a)e(rotation)h(ab)s(out)f(the)h(original)d
+Fl(\000)p Fo(z)35 b Fq(axis.)0 3172 y Fj(qziv)47 b(=)g(1.0000e+00)141
+b(1.5701e-16)f(3.4863e-32)0 3285 y(thzi)47 b(=)g(1.5708)0
+3398 y(qzi2v)f(=)i(1.5701e-16)140 b(-1.5701e-16)188 b(1.0000e+00)0
+3511 y(thz2i)46 b(=)i(1.5708)0 3624 y(qzi3v)e(=)i(1.0000e+00)140
+b(1.9626e-16)h(3.9252e-17)0 3737 y(thz3i)46 b(=)i(1.5708)0
+3896 y Fq(One)29 b(ma)m(y)h(b)s(e)f(tempted)g(to)h(view)f
+Fo(q)1227 3910 y Fh(y)1262 3920 y Fd(i)1321 3896 y Fq(as)h(the)g
+(rotation)f(to)i(the)e(basis)f(frame)i(of)f Fo(q)2821
+3910 y Fh(z)2854 3919 y Fe(2)2892 3896 y Fq(,)h(but)f(this)f(is)h
+(incorrect.)40 b Fo(q)3835 3910 y Fh(y)3870 3920 y Fd(i)0
+4009 y Fq(merely)33 b(represen)m(ts)g(the)g(rotation)h
+Fo(q)1282 4023 y Fh(y)1317 4032 y Fe(1)1388 4009 y Fq(in)e(the)i
+(reference)f(frame;)i(b)s(oth)e(rotations)g Fo(q)2972
+4023 y Fh(x)3049 4009 y Fq(and)g Fo(q)3270 4023 y Fh(y)3305
+4033 y Fd(i)3368 4009 y Fq(m)m(ust)g(b)s(e)g(used)0 4122
+y(to)e(bac)m(k-transform)g Fo(q)782 4136 y Fh(z)815 4145
+y Fe(2)883 4122 y Fq(in)m(to)g(the)f(reference)h(frame.)41
+b(This)28 b(is)i(sho)m(wn)f(as)i(follo)m(ws:)611 4292
+y Fo(q)652 4306 y Fh(y)687 4316 y Fd(i)800 4292 y Fq(=)83
+b Fo(q)995 4306 y Fh(x)1038 4292 y Fo(q)1079 4306 y Fh(y)1114
+4315 y Fe(1)1153 4292 y Fo(q)1194 4306 y Fh(x)1237 4254
+y Ff(\000)p Fk(1)613 4449 y Fo(q)654 4463 y Fh(z)687
+4473 y Fd(i)800 4449 y Fq(=)g Fo(q)995 4463 y Fh(x)1053
+4355 y Fi(\020)1103 4449 y Fo(q)1144 4463 y Fh(y)1179
+4472 y Fe(1)1217 4449 y Fo(q)1258 4463 y Fh(z)1291 4472
+y Fe(2)1329 4449 y Fo(q)1370 4463 y Fh(y)1405 4472 y
+Fe(1)1444 4411 y Ff(\000)p Fk(1)1538 4355 y Fi(\021)1603
+4449 y Fo(q)1644 4463 y Fh(x)1687 4411 y Ff(\000)p Fk(1)578
+4614 y Fo(q)619 4628 y Fh(z)652 4638 y Fd(i)678 4628
+y Fk(2)800 4614 y Fq(=)g Fo(q)995 4628 y Fh(y)1030 4638
+y Fd(i)1060 4614 y Fo(q)1101 4628 y Fh(z)1134 4637 y
+Fe(2)1172 4614 y Fo(q)1213 4628 y Fh(y)1248 4638 y Fd(i)1278
+4577 y Ff(\000)p Fk(1)800 4788 y Fq(=)g Fo(q)995 4802
+y Fh(x)1038 4788 y Fo(q)1079 4802 y Fh(y)1114 4811 y
+Fe(1)1153 4788 y Fo(q)1194 4802 y Fh(x)1237 4751 y Ff(\000)p
+Fk(1)1331 4788 y Fo(q)1372 4802 y Fh(z)1405 4811 y Fe(2)1443
+4694 y Fi(\020)1493 4788 y Fo(q)1534 4802 y Fh(x)1577
+4788 y Fo(q)1618 4802 y Fh(y)1653 4811 y Fe(1)1692 4788
+y Fo(q)1733 4802 y Fh(x)1776 4751 y Ff(\000)p Fk(1)1870
+4694 y Fi(\021)1920 4717 y Ff(\000)p Fk(1)2040 4788 y
+Fq(=)25 b Fo(q)2177 4802 y Fh(x)2220 4788 y Fo(q)2261
+4802 y Fh(y)2296 4811 y Fe(1)2334 4788 y Fo(q)2375 4802
+y Fh(x)2419 4751 y Ff(\000)p Fk(1)2513 4788 y Fo(q)2554
+4802 y Fh(z)2587 4811 y Fe(2)2625 4788 y Fo(q)2666 4802
+y Fh(x)2710 4788 y Fo(q)2751 4802 y Fh(y)2786 4811 y
+Fe(1)2824 4751 y Ff(\000)p Fk(1)2918 4788 y Fo(q)2959
+4802 y Fh(x)3003 4751 y Ff(\000)p Fk(1)3122 4788 y Fl(6)p
+Fq(=)g Fo(q)3259 4802 y Fh(z)3292 4812 y Fd(i)578 4958
+y Fo(q)619 4972 y Fh(z)652 4982 y Fd(i)678 4972 y Fk(3)800
+4958 y Fq(=)83 b(\()p Fo(q)1030 4972 y Fh(y)1065 4982
+y Fd(i)1095 4958 y Fo(q)1136 4972 y Fh(x)1180 4958 y
+Fq(\))15 b Fo(q)1271 4972 y Fh(z)1304 4981 y Fe(2)1342
+4958 y Fq(\()q Fo(q)1419 4972 y Fh(y)1454 4982 y Fd(i)1484
+4958 y Fo(q)1525 4972 y Fh(x)1568 4958 y Fq(\))1603 4916
+y Ff(\000)p Fk(1)1723 4958 y Fq(=)25 b Fo(q)1860 4972
+y Fh(y)1895 4981 y Fe(1)1933 4958 y Fo(q)1974 4972 y
+Fh(x)2018 4958 y Fo(q)2059 4972 y Fh(z)2092 4981 y Fe(2)2130
+4958 y Fo(q)2171 4972 y Fh(x)2214 4921 y Ff(\000)p Fk(1)2309
+4958 y Fo(q)2350 4972 y Fh(y)2385 4981 y Fe(1)2423 4921
+y Ff(\000)p Fk(1)2542 4958 y Fq(=)g Fo(q)2679 4972 y
+Fh(z)2712 4982 y Fd(i)0 5274 y Fj(qtot)47 b(=)g(-5.5511e-17)188
+b(7.0711e-01)g(1.2326e-32)g(7.0711e-01)0 5387 y(qtotchk)46
+b(=)h(-5.5511e-17)188 b(7.0711e-01)g(5.5511e-17)h(7.0711e-01)p
+eop
+6 5 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(6)0 399
+y Fm(1.4)112 b(Application)35 b(of)j(quaternions)g(in)e(co)s(ordinate)i
+(frame)f(transformations)0 570 y Fq(In)m(terpretations)30
+b(of)h(quaternions.)0 810 y Fr(1.4.1)105 b(Euler)35 b(angles)0
+982 y Fq(\(y)m(a)m(w-pitc)m(h-roll\))71 b(ma)m(y)36 b(b)s(e)f(used)g
+(to)h(construct)g(an)f(inertial-to-b)s(o)s(dy)e(quaterion)i
+Fo(q)2995 997 y Fh(bi)3088 982 y Fq(as)h(follo)m(ws.)55
+b(The)35 b(y)m(a)m(w)0 1095 y(rotation)c(is)e(ab)s(out)h(the)h
+Fo(z)j Fq(axis)c(in)f(the)i(inertial)d(frame)1508 1299
+y Fo(q)1549 1313 y Fh(y)1615 1299 y Fq(=)1711 1205 y
+Fi(\020h)1841 1299 y Fq(0)84 b(0)f(1)2185 1205 y Fi(i)2240
+1299 y Fo(;)15 b( )2342 1205 y Fi(\021)0 1519 y Fq(The)30
+b(pitc)m(h)g(rotation)g(is)g(ab)s(out)g(the)g Fo(y)k
+Fq(axis)29 b(in)h(frame)g(1)h(\()p Fo(y)s Fq(-axis)f(after)h(the)f(y)m
+(a)m(w)i(rotation)e(is)g(made\))1500 1739 y Fo(q)1541
+1753 y Fh(p)1577 1762 y Fe(1)1640 1739 y Fq(=)1736 1644
+y Fi(\020h)1866 1739 y Fq(0)84 b(1)f(0)2210 1644 y Fi(i)2265
+1739 y Fo(;)15 b(\022)2351 1644 y Fi(\021)0 1953 y Fq(The)30
+b(roll)f(rotation)h(is)g(made)g(ab)s(out)g(the)h Fo(x)f
+Fq(axis)g(in)f(frame)h(2)1495 2158 y Fo(q)1536 2172 y
+Fh(r)1568 2181 y Fe(2)1631 2158 y Fq(=)1727 2063 y Fi(\020h)1857
+2158 y Fq(1)84 b(0)f(0)2201 2063 y Fi(i)2256 2158 y Fo(;)15
+b(')2355 2063 y Fi(\021)0 2372 y Fq(In)28 b(order)g(to)h(construct)g(a)
+g(single)e(quaterion)h Fo(q)1626 2387 y Fh(bi)1712 2372
+y Fq(relating)g(the)g(inertial)f(to)i(b)s(o)s(dy)e(axis)h(rotation,)h
+(rotations)g Fo(q)3826 2386 y Fh(p)3862 2395 y Fe(1)0
+2485 y Fq(and)h Fo(q)218 2499 y Fh(r)250 2508 y Fe(2)318
+2485 y Fq(m)m(ust)g(b)s(e)g(expressed)g(in)f(the)i(inertial)d(frame:)
+1199 2689 y Fo(q)1240 2703 y Fh(p)1363 2689 y Fq(=)82
+b Fo(q)1557 2703 y Fh(y)1598 2689 y Fo(q)1639 2703 y
+Fh(p)1675 2712 y Fe(1)1713 2689 y Fo(q)1754 2703 y Fh(y)1795
+2652 y Ff(\000)p Fk(1)1201 2827 y Fo(q)1242 2841 y Fh(r)1363
+2827 y Fq(=)g Fo(q)1557 2841 y Fh(y)1598 2827 y Fo(q)1639
+2841 y Fh(r)1671 2850 y Fe(1)1710 2827 y Fo(q)1751 2841
+y Fh(y)1792 2790 y Ff(\000)p Fk(1)1911 2827 y Fq(=)25
+b Fo(q)2048 2841 y Fh(y)2089 2827 y Fo(q)2130 2841 y
+Fh(p)2166 2850 y Fe(1)2204 2827 y Fo(q)2245 2841 y Fh(r)2277
+2850 y Fe(2)2315 2827 y Fo(q)2356 2841 y Fh(p)2392 2850
+y Fe(1)2430 2790 y Ff(\000)p Fk(1)2524 2827 y Fo(q)2565
+2841 y Fh(y)2606 2790 y Ff(\000)p Fk(1)0 3032 y Fq(and)30
+b(so)756 3144 y Fo(q)797 3159 y Fh(bi)881 3144 y Fq(=)24
+b Fo(q)1017 3158 y Fh(r)1055 3144 y Fo(q)1096 3159 y
+Fh(b)1130 3144 y Fo(q)1171 3158 y Fh(y)1237 3144 y Fq(=)1333
+3050 y Fi(\020)1383 3144 y Fo(q)1424 3158 y Fh(y)1465
+3144 y Fo(q)1506 3158 y Fh(p)1542 3167 y Fe(1)1580 3144
+y Fo(q)1621 3158 y Fh(r)1653 3167 y Fe(2)1691 3144 y
+Fo(q)1732 3158 y Fh(p)1768 3167 y Fe(1)1806 3107 y Ff(\000)p
+Fk(1)1900 3144 y Fo(q)1941 3158 y Fh(y)1982 3107 y Ff(\000)p
+Fk(1)2076 3050 y Fi(\021)15 b(\020)2191 3144 y Fo(q)2232
+3158 y Fh(y)2273 3144 y Fo(q)2314 3158 y Fh(p)2350 3167
+y Fe(1)2387 3144 y Fo(q)2428 3158 y Fh(y)2469 3107 y
+Ff(\000)p Fk(1)2564 3050 y Fi(\021)2628 3144 y Fo(y)2673
+3158 y Fh(y)2740 3144 y Fq(=)25 b Fo(q)2877 3158 y Fh(y)2918
+3144 y Fo(q)2959 3158 y Fh(p)2995 3167 y Fe(1)3033 3144
+y Fo(q)3074 3158 y Fh(r)3106 3167 y Fe(2)0 3322 y Fq(Notice)30
+b(that)f(the)g(order)g(of)g(the)g(rotations)g(is)f(rev)m(ersed)h(when)e
+(the)i(un)m(transformed)f(rotations)h Fo(q)3374 3336
+y Fh(y)3415 3322 y Fq(,)g Fo(q)3510 3336 y Fh(p)3546
+3345 y Fe(1)3584 3322 y Fq(,)h Fo(q)3680 3336 y Fh(r)3712
+3345 y Fe(2)3779 3322 y Fq(are)0 3435 y(used)g(instead)f(of)i
+(quaternions)e(transformed)h(to)h(the)f(inertial)f(frame)h
+Fo(q)2504 3449 y Fh(r)2541 3435 y Fq(,)h Fo(q)2638 3450
+y Fh(b)2672 3435 y Fq(,)f Fo(q)2768 3449 y Fh(y)2809
+3435 y Fq(.)0 3675 y Fr(1.4.2)105 b(Co)s(ordinate)35
+b(transformation)f(matrices)g(and)h(quaternions)0 3846
+y Fq(A)26 b(unit)e(quaternion)g(\()p Fo(v)s(;)15 b(\022)s
+Fq(\))26 b(ma)m(y)g(b)s(e)f(in)m(terpreted)f(as)i(a)g(rotation)g(of)f
+Fo(\022)j Fq(degrees)e(ab)s(out)f(the)h(axis)f Fo(v)s
+Fq(.)39 b(Application)0 3959 y(of)31 b(this)e(rotation)i(to)g(a)f(v)m
+(ector)i Fo(x)f Fq(is)e(illustrated)f(b)s(elo)m(w:)903
+4721 y Fo(v)23 b Fl(\002)d Fo(x)p 3 setlinewidth np 1604
+4343 453 151 0.00 360.00 ellipse st 3 setlinewidth np
+1604 5250 a 1604 4344 li st 3 setlinewidth np 1619 4404
+a 1604 4344 li 1588 4404 li st 3 setlinewidth np 1604
+5250 a 1604 4948 li st 3 setlinewidth np 1619 5009 a
+1604 4948 li 1588 5009 li st 3 setlinewidth np 1604 5250
+a 1150 4344 li st 3 setlinewidth np 1191 4391 a 1150
+4344 li 1164 4405 li st 3 setlinewidth np 1151 4343 a
+1177 4343 li st 3 setlinewidth np 1204 4343 a 1230 4343
+li st 3 setlinewidth np 1257 4343 a 1283 4343 li st 3
+setlinewidth np 1311 4343 a 1337 4343 li st 3 setlinewidth
+np 1364 4343 a 1390 4343 li st 3 setlinewidth np 1417
+4343 a 1443 4343 li st 3 setlinewidth np 1471 4343 a
+1497 4343 li st 3 setlinewidth np 1524 4343 a 1550 4343
+li st 3 setlinewidth np 1577 4343 a 1603 4343 li st 3
+setlinewidth np 1604 4343 a 1586 4357 li st 3 setlinewidth
+np 1570 4371 a 1552 4385 li st 3 setlinewidth np 1536
+4398 a 1518 4412 li st 3 setlinewidth np 1502 4425 a
+1484 4439 li st 3 setlinewidth np 1468 4452 a 1450 4466
+li st 3 setlinewidth np 1434 4479 a 1416 4493 li st 3
+setlinewidth np 1452 4446 a 1415 4495 li 1471 4469 li
+st 3 setlinewidth np 1604 5250 a 1452 4495 li st 3 setlinewidth
+np 1479 4551 a 1452 4495 li 1449 4557 li st 3 setlinewidth
+np 2207 4722 a 1641 4571 li st 3 setlinewidth np 1703
+4572 a 1641 4571 li 1695 4601 li st 3 setlinewidth np
+1868 4118 a 1377 4382 li st 3 setlinewidth np 1423 4340
+a 1377 4382 li 1437 4367 li st 3 setlinewidth np 1151
+4343 a 1151 4370 li st 3 setlinewidth np 1151 4398 a
+1151 4425 li st 3 setlinewidth np 1151 4453 a 1151 4480
+li st 3 setlinewidth np 1151 4508 a 1151 4535 li st 3
+setlinewidth np 1151 4563 a 1151 4590 li st 3 setlinewidth
+np 1151 4618 a 1151 4645 li st 3 setlinewidth np 1135
+4586 a 1150 4646 li 1165 4586 li st 1642 5061 a(v)1113
+4343 y(x)1257 4532 y(\022)2246 4759 y Fl(h)p Fo(x;)15
+b(v)s Fl(i)p Fo(v)2246 4872 y Fq(pro)5 b(jection)30 b(of)g
+Fo(x)h Fq(on)m(to)g Fo(v)1906 4117 y Fq(pro)5 b(jection)30
+b(of)h Fo(x)f Fq(o\013)h(of)f Fo(v)1906 4230 y(x)20 b
+Fl(\000)g(h)p Fo(x;)15 b(v)s Fl(i)p Fo(v)p 3 setlinewidth
+np 1481 4060 435 93.73 139.40 arc st 3 setlinewidth np
+1391 4506 a 1452 4495 li 1393 4476 li st eop
+7 6 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(7)0 399
+y(The)28 b(v)m(ector)h Fo(x)507 413 y Fh(e)569 399 y
+Fq(=)c Fl(h)q Fo(x;)15 b(v)s Fl(i)h Fo(v)31 b Fq(is)c(the)h(pro)5
+b(jection)28 b(of)g Fo(x)g Fq(on)m(to)i Fo(v)h Fq(and)c(is)h(unc)m
+(hanged)f(b)m(y)h(the)g(rotation.)41 b(The)27 b(v)m(ector)0
+511 y Fo(x)52 526 y Fh(e)p Ff(?)171 511 y Fq(=)g Fo(x)22
+b Fl(\000)e Fo(x)486 525 y Fh(e)555 511 y Fq(is)31 b(orthogonal)h(to)g
+Fo(v)j Fq(and)c(is)g(rotated)i(b)m(y)f Fo(\022)h Fq(degrees)g(ab)s(out)
+e Fo(x)p Fq(.)45 b(The)31 b(plane)g(of)h(the)g(rotation)g(is)0
+624 y(spanned)d(b)m(y)h Fo(x)532 639 y Fh(e)p Ff(?)654
+624 y Fq(and)g Fo(v)24 b Fl(\002)c Fo(x)30 b Fq(Th)m(us)f(the)i
+(rotated)g(v)m(ector)h Fo(x)20 b Fl(\000)g Fo(r)33 b
+Fq(ma)m(y)e(b)s(e)f(written)f(as)1127 782 y Fo(x)1179
+796 y Fh(r)1242 782 y Fq(=)c Fo(x)1390 796 y Fh(e)1447
+782 y Fq(+)20 b(\()p Fo(x)g Fl(\000)g Fo(x)1788 796 y
+Fh(e)1825 782 y Fq(\))15 b(cos)q(\()p Fo(\022)s Fq(\))20
+b(+)g(\()p Fo(v)k Fl(\002)c Fo(x)p Fq(\))15 b(sin)o(\()p
+Fo(\022)s Fq(\))p Fo(:)940 b Fq(\(1.4\))0 941 y(where)41
+b(the)h(\014rst)f(term)h(re\015ects)g(the)g(unc)m(hanged)f(p)s(ortion)f
+(of)i Fo(x)f Fq(and)g(the)h(second)g(t)m(w)m(o)h(terms)f(denote)g(the)0
+1054 y(rotation)31 b(in)e(the)h(plane)g(normal)f(to)i
+Fo(v)s Fq(.)118 1166 y(The)c(co)s(ordinate)g(transformation)f(applied)f
+(to)j Fo(x)e Fq(ma)m(y)i(b)s(e)f(computed)f(b)m(y)h(applying)e
+(equation)i(\(1.4\))i(to)f(the)0 1279 y Fo(x)p Fq(,)j
+Fo(y)s Fq(,)f Fo(z)k Fq(unit)29 b(v)m(ectors.)43 b(The)29
+b(ab)s(o)m(v)m(e)j(application)d(in)m(v)m(olv)m(es)h(the)h(rotation)f
+(of)h(a)g(v)m(ector)h(ab)s(out)e(an)g(axis.)40 b(Since)730
+1354 y Fi(2)730 1500 y(6)730 1553 y(4)827 1435 y Fo(v)871
+1449 y Fk(1)827 1548 y Fo(v)871 1562 y Fk(2)827 1660
+y Fo(v)871 1674 y Fk(3)952 1354 y Fi(3)952 1500 y(7)952
+1553 y(5)1027 1548 y Fl(\002)1118 1354 y Fi(2)1118 1500
+y(6)1118 1553 y(4)1215 1435 y Fo(x)1217 1548 y(y)1215
+1660 y(x)1309 1354 y Fi(3)1309 1500 y(7)1309 1553 y(5)1389
+1548 y Fq(=)25 b(\()p Fo(v)1564 1562 y Fk(2)1604 1548
+y Fo(z)f Fl(\000)c Fo(v)1805 1562 y Fk(3)1845 1548 y
+Fo(y)s Fq(\))1921 1527 y(^)1928 1548 y Fo(i)h Fq(+)e(\()p
+Fo(v)2149 1562 y Fk(3)2189 1548 y Fo(x)h Fl(\000)g Fo(v)2396
+1562 y Fk(1)2436 1548 y Fo(z)t Fq(\))2516 1527 y(^)2517
+1548 y Fo(j)26 b Fq(+)20 b(\()p Fo(v)2750 1562 y Fk(1)2790
+1548 y Fo(y)j Fl(\000)d Fo(v)2993 1562 y Fk(2)3033 1548
+y Fo(x)p Fq(\))p Fo(k)0 1814 y Fq(w)m(e)31 b(ma)m(y)g(write)1062
+2082 y Fo(x)1114 2096 y Fh(r)1235 2082 y Fq(=)82 b Fo(v)1432
+2096 y Fk(1)1472 2082 y Fo(v)23 b Fq(+)d(\()p Fo(x)h
+Fl(\000)f Fo(v)1873 2096 y Fk(1)1912 2082 y Fo(v)s Fq(\))15
+b(cos)i Fo(\022)22 b Fq(+)2303 1888 y Fi(2)2303 2034
+y(6)2303 2087 y(4)2454 1969 y Fq(0)2435 2082 y Fo(v)2479
+2096 y Fk(3)2400 2195 y Fl(\000)p Fo(v)2515 2209 y Fk(2)2596
+1888 y Fi(3)2596 2034 y(7)2596 2087 y(5)2666 2082 y Fq(sin)14
+b Fo(\022)1069 2464 y(y)1114 2478 y Fh(r)1235 2464 y
+Fq(=)82 b Fo(v)1432 2478 y Fk(2)1472 2464 y Fo(v)23 b
+Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873 2478 y Fk(2)1912
+2464 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22 b Fq(+)2303
+2270 y Fi(2)2303 2416 y(6)2303 2469 y(4)2400 2351 y Fl(\000)p
+Fo(v)2515 2365 y Fk(3)2454 2464 y Fq(0)2435 2577 y Fo(v)2479
+2591 y Fk(1)2596 2270 y Fi(3)2596 2416 y(7)2596 2469
+y(5)2666 2464 y Fq(sin)14 b Fo(\022)1071 2846 y(z)1113
+2860 y Fh(r)1235 2846 y Fq(=)82 b Fo(v)1432 2860 y Fk(3)1472
+2846 y Fo(v)23 b Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873
+2860 y Fk(3)1912 2846 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22
+b Fq(+)2303 2652 y Fi(2)2303 2798 y(6)2303 2851 y(4)2435
+2733 y Fo(v)2479 2747 y Fk(2)2400 2846 y Fl(\000)p Fo(v)2515
+2860 y Fk(1)2454 2958 y Fq(0)2596 2652 y Fi(3)2596 2798
+y(7)2596 2851 y(5)2666 2846 y Fq(sin)14 b Fo(\022)0 3119
+y Fq(\(The)30 b(signs)f(are)i(rev)m(ersed)g(since)e(w)m(e're)j(mo)m
+(ving)e(the)g(co)s(ordinate)h(axes,)g(not)f(the)h(v)m(ector.\))118
+3232 y(An)26 b(alternativ)m(e)h(deriv)-5 b(ation)24 b(for)i(the)h
+(transformation)e(matrix)h(from)g(equation)g(\(1.4\))i(is)d(as)h(follo)
+m(ws.)39 b(De\014ne)7 3379 y(\026)-52 b Fo(q)28 b Fq(=)d(imag)q(\()p
+Fo(q)s Fq(\))h(=)594 3285 y Fi(h)675 3379 y Fo(q)716
+3393 y Fk(1)838 3379 y Fo(q)879 3393 y Fk(2)1001 3379
+y Fo(q)1042 3393 y Fk(3)1122 3285 y Fi(i)1162 3308 y
+Fh(T)1242 3379 y Fq(=)f Fo(v)18 b Fq(sin)o(\()p Fo(\022)s(=)p
+Fq(2\),)31 b Fl(k)q Fo(v)s Fl(k)26 b Fq(=)f(1.)41 b(Then)359
+3568 y Fo(x)411 3582 y Fh(r)532 3568 y Fq(=)83 b Fo(v)s(v)780
+3530 y Fh(T)836 3568 y Fo(x)20 b Fq(+)g(\()p Fo(x)g Fl(\000)g
+Fo(v)s(v)1291 3530 y Fh(T)1347 3568 y Fo(x)p Fq(\))15
+b(cos)q(\()p Fo(\022)s Fq(\))20 b Fl(\000)g Fq(\(\()p
+Fo(v)k Fl(\002)c Fo(e)2069 3582 y Fk(1)2109 3568 y Fq(\))p
+Fo(x)2196 3582 y Fk(1)2256 3568 y Fq(+)g(\()p Fo(v)k
+Fl(\002)c Fo(e)2583 3582 y Fk(2)2622 3568 y Fq(\))p Fo(x)2709
+3582 y Fk(2)2769 3568 y Fq(+)g(\()p Fo(v)k Fl(\002)c
+Fo(e)3096 3582 y Fk(3)3136 3568 y Fq(\))p Fo(x)3223 3582
+y Fk(3)3263 3568 y Fq(\))15 b(sin)o(\()p Fo(\022)s Fq(\))532
+3721 y(=)686 3627 y Fi(\020)736 3721 y Fo(I)22 b Fq(cos)16
+b Fo(\022)22 b Fq(+)e Fo(v)s(v)1185 3684 y Fh(T)1241
+3721 y Fq(\(1)h Fl(\000)f Fq(cos)c Fo(\022)s Fq(\))j(+)h(\()p
+Fo(v)k Fl(\002)c Fo(I)7 b Fq(\))15 b(sin)f Fo(\022)2225
+3627 y Fi(\021)2289 3721 y Fo(x)0 3890 y Fq(where)31
+b Fo(v)24 b Fl(\002)d Fo(I)38 b Fq(is)31 b(de\014ned)f(b)m(y)h(the)h
+(column-b)m(y-column)e(v)m(ector)j(cross)e(pro)s(duct.)43
+b(F)-8 b(rom)32 b(equation)f(1.3)i(and)e(the)0 4003 y(trigonometric)f
+(half-angle)g(form)m(ulae)g(w)m(e)h(ha)m(v)m(e)519 4172
+y(cos)16 b Fo(\022)85 b Fq(=)e(cos)1060 4134 y Fk(2)1099
+4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))21 b Fl(\000)f Fq(sin)1529
+4134 y Fk(2)1568 4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26
+b(=)f(1)c Fl(\000)f Fq(2)15 b(sin)2225 4134 y Fk(2)2264
+4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26 b(=)f(1)c Fl(\000)f
+Fq(2)2809 4077 y Fi(\020)2859 4172 y Fq(1)h Fl(\000)f
+Fq(real)o(\()p Fo(q)s Fq(\))3276 4134 y Fk(2)3316 4077
+y Fi(\021)529 4325 y Fq(sin)14 b Fo(\022)85 b Fq(=)e(2)15
+b(cos)q(\()p Fo(\022)s(=)p Fq(2\))g(sin\()p Fo(\022)s(=)p
+Fq(2\))26 b(=)f(2real\()p Fo(q)s Fq(\))15 b(sin)o(\()p
+Fo(\022)s(=)p Fq(2\))26 b(=)f(2)p Fo(q)2629 4339 y Fk(4)2684
+4325 y Fq(sin)o(\()p Fo(\022)s(=)p Fq(2\))p Fo(:)0 4483
+y Fq(Substituting)j(the)i(ab)s(o)m(v)m(e)i(in)m(to)e
+Fo(x)1171 4497 y Fh(r)1239 4483 y Fq(w)m(e)h(obtain)530
+4702 y Fo(x)582 4716 y Fh(r)702 4702 y Fq(=)856 4558
+y Fi(")905 4702 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4664 y
+Fk(2)1073 4724 y(4)1136 4702 y Fl(\000)20 b Fq(1\))h(+)f(2)p
+Fo(v)s(v)1558 4664 y Fh(T)1629 4558 y Fi( )1705 4640
+y Fq(sin)1816 4606 y Fk(2)1856 4640 y Fq(\()p Fo(\022)s(=)p
+Fq(2\))p 1705 4681 358 4 v 1705 4768 a(sin)1816 4733
+y Fk(2)1856 4768 y Fq(\()p Fo(\022)s(=)p Fq(2\))2073
+4558 y Fi(!)2154 4702 y Fq(\(1)h Fl(\000)e Fo(q)2389
+4664 y Fk(2)2386 4724 y(4)2429 4702 y Fq(\))h(+)g(2\()p
+Fo(v)25 b Fl(\002)19 b Fo(I)7 b Fq(\))p Fo(q)2937 4716
+y Fk(4)2992 4702 y Fq(sin)14 b Fo(\022)s(=)p Fq(2)3255
+4558 y Fi(#)3319 4702 y Fo(x)702 4984 y Fq(=)856 4840
+y Fi(")905 4984 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4946 y
+Fk(2)1073 5006 y(4)1136 4984 y Fl(\000)20 b Fq(1\))h(+)f(2)7
+b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1552 4946 y
+Fh(T)1742 4922 y Fq(1)20 b Fl(\000)g Fo(q)1942 4889 y
+Fk(2)1939 4945 y(4)p 1617 4963 490 4 v 1617 5046 a Fq(1)h
+Fl(\000)f Fq(cos)1895 5020 y Fk(2)1935 5046 y Fq(\()p
+Fo(\022)s(=)p Fq(2)2136 4984 y(+)g(2\()7 b(\026)-52 b
+Fo(q)24 b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2586 4998 y
+Fk(4)2625 4840 y Fi(#)2689 4984 y Fo(x)702 5216 y Fq(=)856
+5122 y Fi(h)895 5216 y Fo(I)g Fq(\(2)p Fo(q)1066 5179
+y Fk(2)1063 5239 y(4)1127 5216 y Fl(\000)20 b Fq(1\))h(+)f(2)7
+b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1543 5179 y
+Fh(T)1618 5216 y Fq(+)20 b(2\()7 b(\026)-52 b Fo(q)24
+b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2068 5230 y Fk(4)2107
+5122 y Fi(i)2161 5216 y Fo(x)702 5384 y Fq(=)83 b(\(2)p
+Fo(q)980 5347 y Fk(2)977 5407 y(4)1040 5384 y Fl(\000)20
+b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-51
+b Fo(q)1509 5347 y Fh(T)1563 5384 y Fo(x)21 b Fq(+)f(2)p
+Fo(q)1813 5398 y Fk(4)1852 5384 y Fq(\()7 b(\026)-52
+b Fo(q)23 b Fl(\002)d Fo(x)p Fq(\))p eop
+8 7 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s
+(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439
+b Fn(\(c\))32 b(1998)908 b Fq(8)0 399 y Fr(Remark)34
+b(1.4)46 b Fq(The)32 b(ab)s(o)m(v)m(e)i(deriv)-5 b(ation)31
+b(treats)i(a)f(quaternion)g(as)g(a)h(transformation)e(up)s(on)g(a)i(v)m
+(ector)g(within)0 511 y(a)f(linear)d(space.)44 b(An)31
+b(alternativ)m(e)h(con)m(v)m(en)m(tion)g(is)f(used)f(in)g([R)-10
+b(W91)r(],)31 b(in)f(whic)m(h)g(the)i(quaternion)e(is)g(treated)j(as)0
+624 y(a)e(transformation)e(up)s(on)g(the)h(basis)g(v)m(ectors)h(of)g(a)
+f(frame.)41 b(The)30 b(latter)g(con)m(v)m(en)m(tion)i(results)d(in)g(a)
+i(sign)e(c)m(hange)0 737 y(of)i(the)f(angle)g(of)h(rotation,)g(i.e.,)
+1150 941 y Fo(x)1202 955 y Fh(r)1323 941 y Fq(=)83 b(\(2)p
+Fo(q)1601 904 y Fk(2)1598 964 y(4)1661 941 y Fl(\000)20
+b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-52
+b Fo(q)2129 904 y Fh(T)2184 941 y Fo(x)20 b Fq(+)g(2)p
+Fo(q)2433 955 y Fk(4)2472 941 y Fq(\()7 b(\026)-52 b
+Fo(q)24 b Fl(\002)c Fo(x)p Fq(\))0 1146 y(Use)29 b(of)g(the)f(latter)h
+(con)m(v)m(en)m(tion)h(results)d(in)g(a)i(similar)d(c)m(hange)k(in)d
+(sign)h(in)f(the)i(time)f(deriv)-5 b(ativ)m(e)28 b(of)h(the)f(quater-)0
+1259 y(nion,)h(discussed)g(in)g(1.5.)0 1471 y Fr(M-\014le)46
+b Fj(qtransv)28 b Fq(Rotate)k(a)f(v)m(ector)227 1696
+y Fj(qtransv)46 b(is)h(the)g(function)f(defined)g(from:)g
+(/home3/hodel/oct/quat/qt)o(rans)o(v.m)275 1922 y(vr)h(=)h
+(qtransv\(vv,qr\))275 2035 y(rotate)e(a)i(3-vector)d(as)i(specified)f
+(by)h(quaternion)e(qr)275 2148 y(q)i(=)h(\(ee,th\))93
+b(\(vector,)46 b(angle)g(notation\))275 2261 y(vr)h(=)h(\(vv)f(.)g
+(ee\)*ee)f([projection)f(on)i(ee)g(unchanged)e(])514
+2374 y(+)i([vv)g(-)g(\(vv)g(.)h(ee\)*ee])e(cos\(th\))93
+b([what's)46 b(left)h(gets)f(scaled)g(by)i(cosine])514
+2487 y(+)f(\(vv)g(x)g(ee\))g(sin\(th\))571 b([and)47
+b(the)g(sine)f(term)h(completes)e(the)i(rotation])0 2711
+y Fr(M-\014le)f Fj(qtransvmat)57 b Fq(Obtain)30 b(3)20
+b Fl(\002)g Fq(3)31 b(rotation)g(matrix)e(from)h(a)h(quaternion)275
+2936 y Fj([xv,yv,zv])45 b(=)i(qtransvmat\(q\))275 3049
+y(xm)g(=)h(qtransvmat\(q\),)c(xm)j(=)g([xv)g(yv)g(zv])275
+3162 y(compute)f(x,y,z)g(axes)h(rotated)f(per)h(specified)e(quaternion)
+g(q)0 3387 y Fr(Example)34 b(1.4)46 b Fq(Use)30 b(of)h(quaternions)e
+(to)i(view)f(b)s(o)s(dy/inertial)d(frame)k(transformations:)0
+3575 y Fj(degrees)46 b(=)h(pi/180;)189 b(daz)47 b(=)h(30*degrees;)188
+b(del)46 b(=)i(-20*degrees;)0 3688 y(qazimuth)e(=)h
+(quaternion\([0,0,1],daz\);)0 3801 y(qelevation)e(=)i
+(quaternion\([cos\(daz\),sin\(d)o(az\),)o(0],)o(del\))o(;)0
+3914 y(qview)f(=)i(qmult\(qelevation,qazimut)o(h\);)0
+4139 y(th)f(=)h(0:5:20;)0 4252 y(ov)f(=)h(ones\(size\(th\)\);)0
+4365 y(myth)f(=)g([th,max\(th\)*ov)d(;)j(0*ov,th];)0
+4478 y(myth)g(=)g([[0:5:20])e(,)j(20*ones\(1,4\),20*ones\(1,4)o(\);)41
+b(...)382 4591 y(zeros\(1,5\),)k(5:5:20,)g(20*ones\(1,4\);)g(...)382
+4704 y(zeros\(1,5\),)g(zeros\(1,4\),)f([5:5:20]];)0 4930
+y(#)j(inertial)f(frame)g(quaternion)0 5043 y(qin)h(=)g(quaternion\([1)e
+(0)i(0],180*degrees\);)0 5156 y(for)g(kk=1:length\(myth\(1,:\)\))95
+5269 y(figure\(kk\))95 5381 y(thy)g(=)h(myth\(1,kk\);)140
+b(thp)47 b(=)g(myth\(2,kk\);)141 b(thr)46 b(=)i(myth\(3,kk\);)p
+eop
+9 8 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(9)95 399
+y Fj(#)48 b(avoid)e(transformations)e(by)j(reversing)e(the)i(order)g
+(of)g(multiplication!)95 511 y(qyi)g(=)h(quaternion\([0,0,1],thy*d)o
+(egr)o(ees\))o(;)95 624 y(qp1)f(=)h(quaternion\([0,1,0],thp*d)o(egr)o
+(ees\))o(;)95 737 y(qr2)f(=)h(quaternion\([1,0,0],thr*d)o(egr)o(ees\))o
+(;)95 850 y(qbi)f(=)h(qmult\(qyi,qmult\(qp1,qr2\))o(\);)95
+1076 y(printf\("yaw=\0458.4f,)43 b(pitch=\0458.4f,)i(\\n)190
+b(qbi)47 b(=)g(\(\0458.4f\)i)f(+)h(\(\0458.4e\)j)f(+)h(\(\0458.4f\)k)f
+(+)h(\()0 1189 y(\0458.4f\)\\n",thy,thp,)c(...)382 1302
+y(qbi\(1\),)j(qbi\(2\),)f(qbi\(3\),)h(qbi\(4\)\);)95
+1415 y([vv,th])g(=)i(quaternion\(qbi\);)95 1528 y(printf\(")285
+b(=)47 b(\(vector\))f(=)h([\0458.4f)f(\0458.4f)h(\0458.4f],)e
+(th=\0455.2f)h(deg\\n",)g(...)382 1641 y(vv\(1\),)g(vv\(2\),)g
+(vv\(3\),)g(th*180/pi\);)95 1866 y(#)i(transform)d(qbi)i(to)g
+(reference)f(coordinates)95 1979 y(qb)i(=)f(qmult\(qin,qbi\);)95
+2092 y(title\(sprintf\("yaw=\0455.2f,)41 b(pitch=\0455.2f,)k
+(roll=\0455.2f)g(\(deg\)",thy,thp,thr\)\))95 2205 y
+(coordinate_plot\(qin,qb,qvi)o(ew\);)95 2318 y(gset)i(terminal)f
+(postscript)f(eps)95 2431 y(eval\(sprintf\("gset)e(output)j
+('fig\045d.eps'",kk\)\);)95 2544 y(replot)95 2657 y(gset)h(terminal)f
+(x11)0 2770 y(endfor)0 2957 y Fq(Results:)316 2924 y
+Fk(1)50 4816 y @beginspecial 50 @llx 50 @lly 410 @urx
+302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis  0.00 deg) Cshow
+2737 4900 M
+(reference coordinates) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+2252 2272 L
+2737 2625 Pls
+2252 2272 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+-177 970 V
+2737 2625 Crs
+2560 3595 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+2252 2272 L
+2737 2625 Star
+2252 2272 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+-177 970 V
+2737 2625 Box
+2560 3595 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-177 970 V
+-89 0 V
+1.000 UL
+LT3
+3323 1302 M
+-1789 0 V
+1181 3242 L
+970 706 V
+1789 0 V
+4293 2008 L
+3323 1302 L
+970 706 V
+-1788 0 V
+2151 3948 L
+2505 2008 L
+1534 1302 L
+1.000 UL
+LT4
+3940 3948 M
+2969 3242 L
+-1788 0 V
+1788 0 V
+3323 1302 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis  0.00 deg) Cshow
+2737 4900 M
+(yaw= 0.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Pls
+3369 3141 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+-73 0 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 0 4911 1560 4 v 104 4965 a Fe(1)138 4997
+y Fc(due)28 b(to)g(details)h(of)g(visualization)h(soft)n(w)n(are,)h
+(the)d Fb(x)18 b Fa(\000)g Fb(y)j Fa(\000)e Fb(z)31 b
+Fc(axes)d(do)g(not)g(app)r(ear)h(as)g(a)f(righ)n(t-handed)f(co)r
+(ordinate)j(system.)0 5088 y(Sorry)-6 b(.)p eop
+10 9 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(10)50 2045
+y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
+@rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis  5.00 deg) Cshow
+2737 4900 M
+(yaw= 5.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3409 2580 M
+-672 45 V
+3409 2580 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+693 514 V
+2737 2625 Pls
+3430 3139 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+78 5 V
+10 10 V
+6 10 V
+3 9 V
+-3 7 V
+-6 6 V
+-10 3 V
+-14 2 V
+-16 -1 V
+-18 -3 V
+-20 -6 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 10.00 deg) Cshow
+2737 4900 M
+(yaw=10.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3346 2535 M
+-609 90 V
+3346 2535 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+749 508 V
+2737 2625 Pls
+3486 3133 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+83 9 V
+8 11 V
+5 9 V
+0 8 V
+-4 7 V
+-8 5 V
+-11 2 V
+-15 1 V
+-17 -2 V
+-19 -4 V
+-21 -6 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
+410 @urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 15.00 deg) Cshow
+2737 4900 M
+(yaw=15.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3279 2491 M
+-542 134 V
+3279 2491 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+800 499 V
+2737 2625 Pls
+3537 3124 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+87 14 V
+7 10 V
+2 9 V
+-1 7 V
+-6 6 V
+-9 4 V
+-13 2 V
+-16 -1 V
+-18 -3 V
+-20 -5 V
+-20 -6 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 20.00 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3207 2448 M
+-470 177 V
+3207 2448 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+90 18 V
+5 10 V
+1 8 V
+-3 7 V
+-7 5 V
+-11 3 V
+-14 1 V
+-17 -2 V
+-19 -3 V
+-20 -6 V
+-20 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial eop
+11 10 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(11)50 2045
+y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
+@rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 20.00 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch= 0.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3207 2448 M
+-470 177 V
+3207 2448 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Crs
+3102 1731 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-365 894 V
+90 18 V
+5 10 V
+1 8 V
+-3 7 V
+-7 5 V
+-11 3 V
+-14 1 V
+-17 -2 V
+-19 -3 V
+-20 -6 V
+-20 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 20.61 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch= 5.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3173 2527 M
+-436 98 V
+3173 2527 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+405 -906 V
+2737 2625 Crs
+3142 1719 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-375 886 V
+90 18 V
+5 10 V
+1 9 V
+-3 7 V
+-7 5 V
+-11 3 V
+-15 1 V
+-17 -1 V
+-18 -4 V
+-20 -6 V
+-20 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
+410 @urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 22.34 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch=10.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3136 2606 M
+-399 19 V
+3136 2606 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+441 -911 V
+2737 2625 Crs
+3178 1714 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-384 878 V
+89 18 V
+6 11 V
+0 9 V
+-3 7 V
+-7 5 V
+-11 3 V
+-15 1 V
+-16 -1 V
+-19 -4 V
+-20 -6 V
+-20 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 24.95 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch=15.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3096 2686 M
+-359 -61 V
+3096 2686 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+474 -909 V
+2737 2625 Crs
+3211 1716 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-394 870 V
+90 18 V
+5 11 V
+1 9 V
+-4 8 V
+-7 5 V
+-11 3 V
+-14 1 V
+-17 -1 V
+-19 -4 V
+-20 -6 V
+-19 -8 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial eop
+12 11 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(12)50 2045
+y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
+@rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 28.21 deg) Cshow
+2737 4900 M
+(yaw=20.00 deg, pitch=20.00 deg) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3054 2765 M
+2737 2625 L
+3054 2765 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+844 485 V
+2737 2625 Pls
+3581 3110 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+504 -901 V
+2737 2625 Crs
+3241 1724 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3467 2625 M
+-730 0 V
+3467 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+632 516 V
+2737 2625 Star
+3369 3141 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+365 -894 V
+2737 2625 Box
+3102 1731 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-403 861 V
+89 19 V
+5 11 V
+1 10 V
+-3 7 V
+-7 6 V
+-11 3 V
+-15 1 V
+-16 -1 V
+-19 -4 V
+-20 -6 V
+-19 -9 V
+1.000 UL
+LT3
+3200 1215 M
+-1460 0 V
+1010 3003 L
+2274 4035 L
+1460 0 V
+4464 2247 L
+3200 1215 L
+4464 2247 L
+-1460 0 V
+2274 4035 L
+3004 2247 L
+1740 1215 L
+1.000 UL
+LT4
+3734 4035 M
+2470 3003 L
+-1460 0 V
+1460 0 V
+3200 1215 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 28.71 deg) Cshow
+2737 4900 M
+(yaw=20.00, pitch=20.00, roll=10.00 \(deg\)) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3622 3070 M
+2737 2625 L
+3622 3070 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+236 176 V
+2737 2625 Pls
+2973 2801 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+476 -915 V
+2737 2625 Crs
+3213 1710 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+485 353 V
+2737 2625 Star
+3222 2978 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+177 -970 V
+2737 2625 Box
+2914 1655 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-140 990 V
+100 8 V
+2 6 V
+-2 5 V
+-7 4 V
+-11 3 V
+-14 2 V
+-18 1 V
+-19 0 V
+-21 -2 V
+-22 -3 V
+-21 -4 V
+1.000 UL
+LT3
+3323 1302 M
+-1789 0 V
+1181 3242 L
+970 706 V
+1789 0 V
+4293 2008 L
+3323 1302 L
+970 706 V
+-1788 0 V
+2151 3948 L
+2505 2008 L
+1534 1302 L
+1.000 UL
+LT4
+3940 3948 M
+2969 3242 L
+-1788 0 V
+1788 0 V
+3323 1302 L
+stroke
+grestore
+end
+showpage
+ @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
+410 @urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 30.19 deg) Cshow
+2737 4900 M
+(yaw=20.00, pitch=20.00, roll=15.00 \(deg\)) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3622 3070 M
+2737 2625 L
+3622 3070 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+277 95 V
+2737 2625 Pls
+3014 2720 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+454 -927 V
+2737 2625 Crs
+3191 1698 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+485 353 V
+2737 2625 Star
+3222 2978 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+177 -970 V
+2737 2625 Box
+2914 1655 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-129 990 V
+100 6 V
+3 6 V
+-2 5 V
+-7 5 V
+-10 3 V
+-15 3 V
+-17 1 V
+-19 0 V
+-21 -1 V
+-22 -3 V
+-21 -4 V
+1.000 UL
+LT3
+3323 1302 M
+-1789 0 V
+1181 3242 L
+970 706 V
+1789 0 V
+4293 2008 L
+3323 1302 L
+970 706 V
+-1788 0 V
+2151 3948 L
+2505 2008 L
+1534 1302 L
+1.000 UL
+LT4
+3940 3948 M
+2969 3242 L
+-1788 0 V
+1788 0 V
+3323 1302 L
+stroke
+grestore
+end
+showpage
+ @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
+@urx 302 @ury 2808 @rwi @setspecial
+/gnudict 120 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -46 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+  0 vshift R show } def
+/Rshow { currentpoint stroke M
+  dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+  dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke gnulinewidth 2 mul setlinewidth } def
+/AL { stroke gnulinewidth 2 div setlinewidth } def
+/UL { gnulinewidth mul /userlinewidth exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 0 1 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
+/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+   gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+  } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt  } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
+  hpt2 neg 0 V  closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt  } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
+/C1 { BL [] 0 setdash 2 copy        moveto
+       2 copy  vpt 0 90 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 90 arc
+       2 copy moveto
+       2 copy  vpt 180 270 arc closepath fill
+               vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 90 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 0 270 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+      2 copy vpt 270 360 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+      2 copy  vpt 270 450 arc closepath fill
+              vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+       2 copy moveto
+       2 copy vpt 90 180 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 0 180 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 270 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash  2 copy moveto
+       2 copy  vpt 0 90 arc closepath fill
+       2 copy moveto
+       2 copy  vpt 180 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+       2 copy  vpt 90 360 arc closepath fill
+               vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+               vpt 0 360 arc closepath } bind def
+/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+       neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+       2 copy vpt Square fill
+       Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+       Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+       Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore } def
+/CircE { stroke [] 0 setdash 
+  hpt 0 360 arc stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+end
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+LTb
+672 560 M
+63 0 V
+4067 0 R
+-63 0 V
+588 560 M
+(-2) Rshow
+672 1076 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1.5) Rshow
+672 1593 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-1) Rshow
+672 2109 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(-0.5) Rshow
+672 2625 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0) Rshow
+672 3141 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(0.5) Rshow
+672 3658 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1) Rshow
+672 4174 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(1.5) Rshow
+672 4690 M
+63 0 V
+4067 0 R
+-63 0 V
+-4151 0 R
+(2) Rshow
+672 560 M
+0 63 V
+0 4067 R
+0 -63 V
+672 420 M
+(-2) Cshow
+1188 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1.5) Cshow
+1705 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-1) Cshow
+2221 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(-0.5) Cshow
+2737 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0) Cshow
+3253 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(0.5) Cshow
+3770 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1) Cshow
+4286 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(1.5) Cshow
+4802 560 M
+0 63 V
+0 4067 R
+0 -63 V
+0 -4207 R
+(2) Cshow
+LTb
+672 560 M
+4130 0 V
+0 4130 V
+-4130 0 V
+672 560 L
+2737 210 M
+(rotate about eigenaxis 32.38 deg) Cshow
+2737 4900 M
+(yaw=20.00, pitch=20.00, roll=20.00 \(deg\)) Cshow
+1.000 UP
+1.000 UL
+LT0
+4151 4557 M
+(x \(body\)) Rshow
+4235 4557 M
+399 0 V
+3769 2617 M
+-1032 8 V
+3769 2617 Pls
+2737 2625 Pls
+4434 4557 Pls
+1.000 UP
+1.000 UL
+LT1
+4151 4417 M
+(y \(body\)) Rshow
+4235 4417 M
+399 0 V
+2737 2625 M
+-12 55 V
+2737 2625 Pls
+2725 2680 Pls
+4434 4417 Pls
+1.000 UP
+1.000 UL
+LT2
+4151 4277 M
+(z \(body\)) Rshow
+4235 4277 M
+399 0 V
+2737 2625 M
+9 1031 V
+2737 2625 Crs
+2746 3656 Crs
+4434 4277 Crs
+1.000 UP
+1.000 UL
+LT0
+4151 4137 M
+(x \(inertial\)) Rshow
+4235 4137 M
+399 0 V
+3631 2625 M
+-894 0 V
+3631 2625 Star
+2737 2625 Star
+4434 4137 Star
+1.000 UP
+1.000 UL
+LT1
+4151 3997 M
+(y \(inertial\)) Rshow
+4235 3997 M
+399 0 V
+2737 2625 M
+485 353 V
+2737 2625 Star
+3222 2978 Star
+4434 3997 Star
+1.000 UP
+1.000 UL
+LT2
+4151 3857 M
+(z \(inertial\)) Rshow
+4235 3857 M
+399 0 V
+2737 2625 M
+177 -970 V
+2737 2625 Box
+2914 1655 Box
+4434 3857 Box
+1.000 UL
+LT5
+4151 3717 M
+(eigenaxis) Rshow
+4235 3717 M
+399 0 V
+2737 2625 M
+-119 989 V
+100 5 V
+2 6 V
+-1 6 V
+-7 4 V
+-10 4 V
+-14 3 V
+-17 2 V
+-19 0 V
+-21 -1 V
+-22 -3 V
+-21 -3 V
+1.000 UL
+LT3
+3323 1302 M
+-1789 0 V
+1181 3242 L
+970 706 V
+1789 0 V
+4293 2008 L
+3323 1302 L
+970 706 V
+-1788 0 V
+2151 3948 L
+2505 2008 L
+1534 1302 L
+1.000 UL
+LT4
+3940 3948 M
+2969 3242 L
+-1788 0 V
+1788 0 V
+3323 1302 L
+stroke
+grestore
+end
+showpage
+ @endspecial 0 4071 a Fm(1.5)112 b(Time)36 b(deriv)-6
+b(ativ)m(e)36 b(of)i(a)g(quaternion)0 4243 y Fq(In)28
+b(this)f(subsection)h(w)m(e)h(adopt)g(the)f(v)m(ector)j(notation)d(for)
+h(quaternions,)f(i.e.)40 b(\(with)27 b(some)i(abuse)g(of)f(notation\))0
+4356 y Fo(q)46 b Fq(=)c(\()s(\026)-48 b Fo(v)t(;)15 b(\022)s
+Fq(\))42 b(=)k(\026)-48 b Fo(v)30 b Fq(+)d Fo(\022)43
+b Fq(as)e(in)f(equation)h(\(1.3\).)74 b(Let)41 b Fo(q)1937
+4371 y Fh(b)1971 4356 y Fq(\()p Fo(t)p Fq(\))i(=)f(\()7
+b(\026)-52 b Fo(q)2306 4371 y Fh(b)2341 4356 y Fq(\()p
+Fo(t)p Fq(\))p Fo(;)15 b(\022)2527 4371 y Fh(b)2562 4356
+y Fq(\()p Fo(t)p Fq(\)\))41 b(b)s(e)g(a)g(quaternion)f(relating)g(the)0
+4469 y(co)s(ordinates)k(of)h(a)f(b)s(o)s(dy)f(\(rotating\))j(frame)e
+(to)h(a)g(\014xed)e(frame,)49 b(and)43 b(supp)s(ose)g(that)i(the)g(b)s
+(o)s(dy)e(frame)h(is)0 4582 y(rotating)26 b(with)f(\014xed)g(angular)h
+(v)m(elo)s(cit)m(y)g Fo(!)j Fq(ab)s(out)d(the)g(unit)e(v)m(ector)2378
+4559 y(\026)2368 4582 y(\012)h(=)g Fo(!)2612 4596 y Fk(1)2644
+4561 y Fq(^)2651 4582 y Fo(i)12 b Fq(+)f Fo(!)2833 4596
+y Fk(2)2871 4561 y Fq(^)2872 4582 y Fo(j)17 b Fq(+)11
+b Fo(!)3065 4596 y Fk(2)3107 4558 y Fq(^)3104 4582 y
+Fo(k)29 b Fq(in)c(the)h(\014xed)g(frame.)0 4695 y(\()p
+Fj(qtrans)j Fq(ma)m(y)i(b)s(e)f(used)f(to)i(p)s(erform)e(the)i
+(deriviation)d(in)h(the)i(b)s(o)s(dy)e(frame.\))p eop
+13 12 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
+b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
+Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(13)1829
+824 y Fo(!)p 3 setlinewidth np 1738 974 a 2342 974 li
+st 3 setlinewidth np 2281 990 a 2342 974 li 2281 959
+li st 3 setlinewidth np 1738 974 a 1285 1277 li st 3
+setlinewidth np 1327 1231 a 1285 1277 li 1343 1256 li
+st 3 setlinewidth np 1738 974 a 1738 371 li st 3 setlinewidth
+np 1753 431 a 1738 371 li 1723 431 li st 3 setlinewidth
+np 1738 975 a 1759 961 li st 3 setlinewidth np 1781 946
+a 1802 932 li st 3 setlinewidth np 1824 917 a 1845 903
+li st 3 setlinewidth np 1867 888 a 1888 874 li st 3 setlinewidth
+np 1911 860 a 1932 846 li st 3 setlinewidth np 1954 831
+a 1975 817 li st 3 setlinewidth np 1997 802 a 2018 788
+li st 3 setlinewidth np 2040 773 a 2061 759 li st 3 setlinewidth
+np 2083 745 a 2104 731 li st 3 setlinewidth np 2126 716
+a 2147 702 li st 3 setlinewidth np 2170 687 a 2191 673
+li st 3 setlinewidth np 2149 719 a 2191 673 li 2132 694
+li st 4 setlinewidth np [ 4 18.09 ] 0 setdash 2191 673
+a 2191 1163 li st [] 0 setdash [] 0 setdash 4 setlinewidth
+np [ 4 18.13 ] 0 setdash 2191 1163 a 1738 974 li st [] 0 setdash
+[] 0 setdash 2239 650 a Fq(\026)2229 673 y(\012)1323
+1352 y Fo(i)2342 975 y(j)1776 371 y(k)p 3 setlinewidth
+np 2009 817 82 94.40 237.53 arc st 3 setlinewidth np
+1940 910 a 2002 899 li 1943 880 li st 0 1548 a Fq(Then)28
+b(Euler's)g(appro)m(ximation)h(of)g(a)h(rotation)g(o)m(v)m(er)g(\001)p
+Fo(t)f Fq(seconds)g(is)g Fo(q)2462 1562 y Fh(r)2525 1548
+y Fq(=)2631 1525 y(\026)2621 1548 y(\012)14 b(sin)o(\()p
+Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))19 b(+)f(cos)q(\()p Fo(!)s
+Fq(\001)p Fo(t=)p Fq(2\).)41 b(F)-8 b(or)0 1661 y(\001)p
+Fo(t)30 b Fq(su\016cien)m(tly)f(small,)g(cos)q(\()p Fo(!)s
+Fq(\001)p Fo(t=)p Fq(2\))d Fl(\031)f Fq(1)31 b(and)f(sin)n(\()p
+Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))c Fl(\031)f Fo(!)s Fq(\001)p
+Fo(t=)p Fq(2,)31 b(so)g Fo(q)2713 1675 y Fh(r)2781 1661
+y Fq(ma)m(y)g(b)s(e)f(appro)m(ximated)g(as)1576 1892
+y Fo(q)1617 1906 y Fh(r)1680 1892 y Fl(\031)25 b Fq(1)c(+)1932
+1773 y Fi(\022)2004 1830 y Fo(!)s Fq(\001)p Fo(t)p 2004
+1871 169 4 v 2065 1954 a Fq(2)2182 1773 y Fi(\023)2268
+1869 y Fq(\026)2258 1892 y(\012)0 2117 y(Th)m(us)1239
+2325 y Fo(q)1280 2340 y Fh(b)1314 2325 y Fq(\()p Fo(t)g
+Fq(+)e(\001)p Fo(t)p Fq(\))83 b(=)g Fo(q)1915 2340 y
+Fh(b)1949 2325 y Fq(\()p Fo(t)p Fq(\))2067 2206 y Fi(\022)2129
+2325 y Fq(1)21 b(+)2285 2206 y Fi(\022)2357 2264 y Fo(!)s
+Fq(\001)p Fo(t)p 2357 2304 V 2418 2388 a Fq(2)2535 2206
+y Fi(\023)2621 2302 y Fq(\026)2611 2325 y(\012)f(+)g
+Fl(\001)15 b(\001)g(\001)2894 2206 y Fi(\023)950 2559
+y Fo(q)991 2574 y Fh(b)1025 2559 y Fq(\()p Fo(t)20 b
+Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1500 2574
+y Fh(b)1534 2559 y Fq(\()p Fo(t)p Fq(\))83 b(=)g Fo(q)1915
+2574 y Fh(b)1949 2559 y Fq(\()p Fo(t)p Fq(\))2067 2440
+y Fi(\022)2139 2497 y Fo(!)s Fq(\001)p Fo(t)p 2139 2538
+V 2200 2621 a Fq(2)2317 2440 y Fi(\023)2404 2536 y Fq(\026)2393
+2559 y(\012)20 b(+)g Fl(\001)15 b(\001)g(\001)940 2737
+y Fo(q)981 2752 y Fh(b)1015 2737 y Fq(\()p Fo(t)20 b
+Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1490 2752
+y Fh(b)1524 2737 y Fq(\()p Fo(t)p Fq(\))p 940 2778 688
+4 v 1229 2861 a(\001)p Fo(t)1720 2799 y Fq(=)1874 2680
+y Fi(\022)1945 2737 y Fo(!)p 1945 2778 60 4 v 1952 2861
+a Fq(2)2015 2680 y Fi(\023)2091 2799 y Fo(q)2132 2814
+y Fh(b)2166 2799 y Fq(\()p Fo(t)p Fq(\))2279 2776 y(\026)2269
+2799 y(\012)h(+)f Fl(\001)15 b(\001)g(\001)0 3024 y Fq(W)-8
+b(e)32 b(tak)m(e)g(the)e(limit)e(at)j(\001)p Fo(t)25
+b Fl(!)g Fq(0)31 b(to)g(obtain)978 3171 y Fo(dq)1066
+3186 y Fh(b)p 978 3212 123 4 v 999 3295 a Fo(dt)1136
+3233 y Fq(=)1232 3114 y Fi(\022)1303 3171 y Fo(!)p 1303
+3212 60 4 v 1310 3295 a Fq(2)1373 3114 y Fi(\023)1449
+3233 y Fo(q)1490 3248 y Fh(b)1524 3233 y Fq(\()p Fo(t)p
+Fq(\))1637 3210 y(\026)1627 3233 y(\012)25 b(=)1824 3171
+y Fo(!)p 1824 3212 V 1831 3295 a Fq(2)1909 3164 y Fi(\000)1947
+3233 y Fo(q)1988 3248 y Fh(b;)p Fk(4)2087 3210 y Fq(\026)2077
+3233 y(\012)20 b Fl(\000)g Fq(\()7 b(\026)-52 b Fo(q)2330
+3248 y Fh(b)2384 3233 y Fl(\001)2440 3210 y Fq(\026)2430
+3233 y(\012)o(\))21 b Fl(\000)2652 3210 y Fq(\026)2642
+3233 y(\012)f Fl(\002)26 b Fq(\026)-51 b Fo(q)2860 3248
+y Fh(b)2894 3164 y Fi(\001)0 3592 y Fq(where)30 b Fo(x)21
+b Fl(\001)f Fo(y)29 b Fq(=)552 3528 y Fi(P)655 3592 y
+Fo(x)707 3607 y Fh(`)740 3592 y Fo(y)785 3607 y Fh(`)848
+3592 y Fq(is)h(the)h(v)m(ector)h(inner)d(\(dot\))j(pro)s(duct)d(and)h
+Fo(x)21 b Fl(\002)f Fo(y)29 b Fq(=)2689 3395 y Fi(\014)2689
+3445 y(\014)2689 3494 y(\014)2689 3544 y(\014)2689 3594
+y(\014)2689 3644 y(\014)2689 3694 y(\014)2716 3398 y(2)2716
+3544 y(6)2716 3597 y(4)2836 3462 y Fq(^)2843 3483 y Fo(i)3010
+3462 y Fq(^)3012 3483 y Fo(j)3185 3459 y Fq(^)3182 3483
+y Fo(k)2813 3596 y(x)2865 3610 y Fk(1)2987 3596 y Fo(x)3039
+3610 y Fk(2)3162 3596 y Fo(x)3214 3610 y Fk(3)2817 3709
+y Fo(y)2862 3723 y Fk(1)2991 3709 y Fo(y)3036 3723 y
+Fk(2)3166 3709 y Fo(y)3211 3723 y Fk(3)3295 3398 y Fi(3)3295
+3544 y(7)3295 3597 y(5)3350 3395 y(\014)3350 3445 y(\014)3350
+3494 y(\014)3350 3544 y(\014)3350 3594 y(\014)3350 3644
+y(\014)3350 3694 y(\014)3409 3592 y Fq(is)g(the)i(v)m(ector)0
+3815 y(cross)f(pro)s(duct.)40 b(In)30 b(matrix)f(form)h(this)g(is)1011
+3922 y Fi(2)1011 4068 y(6)1011 4118 y(6)1011 4168 y(6)1011
+4221 y(4)1125 3996 y Fq(_)-42 b Fo(q)1149 4011 y Fh(b)p
+Fk(1)1125 4109 y Fq(_)g Fo(q)1149 4124 y Fh(b)p Fk(2)1125
+4222 y Fq(_)g Fo(q)1149 4237 y Fh(b)p Fk(3)1125 4335
+y Fq(_)g Fo(q)1149 4350 y Fh(b)p Fk(4)1260 3922 y Fi(3)1260
+4068 y(7)1260 4118 y(7)1260 4168 y(7)1260 4221 y(5)1340
+4166 y Fq(=)1446 4104 y Fo(!)p 1446 4145 V 1453 4228
+a Fq(2)1531 3922 y Fi(2)1531 4068 y(6)1531 4118 y(6)1531
+4168 y(6)1531 4221 y(4)1688 3996 y Fq(0)180 b Fo(!)1970
+4010 y Fk(3)2127 3996 y Fl(\000)p Fo(!)2255 4010 y Fk(2)2377
+3996 y Fo(!)2434 4010 y Fk(1)1628 4109 y Fl(\000)p Fo(!)1756
+4123 y Fk(3)1938 4109 y Fq(0)g Fo(!)2220 4123 y Fk(1)2377
+4109 y Fo(!)2434 4123 y Fk(2)1663 4222 y Fo(!)1720 4236
+y Fk(2)1878 4222 y Fl(\000)p Fo(!)2006 4236 y Fk(1)2188
+4222 y Fq(0)144 b Fo(!)2434 4236 y Fk(3)1628 4335 y Fl(\000)p
+Fo(!)1756 4349 y Fk(1)1878 4335 y Fl(\000)p Fo(!)2006
+4349 y Fk(2)2127 4335 y Fl(\000)p Fo(!)2255 4349 y Fk(3)2402
+4335 y Fq(0)2515 3922 y Fi(3)2515 4068 y(7)2515 4118
+y(7)2515 4168 y(7)2515 4221 y(5)2585 3922 y(2)2585 4068
+y(6)2585 4118 y(6)2585 4168 y(6)2585 4221 y(4)2682 3996
+y Fo(q)2723 4011 y Fh(b)p Fk(1)2682 4109 y Fo(q)2723
+4124 y Fh(b)p Fk(2)2682 4222 y Fo(q)2723 4237 y Fh(b)p
+Fk(3)2682 4335 y Fo(q)2723 4350 y Fh(b)p Fk(4)2834 3922
+y Fi(3)2834 4068 y(7)2834 4118 y(7)2834 4168 y(7)2834
+4221 y(5)0 4522 y Fq(Notice)31 b(that)g(the)g(4)21 b
+Fl(\002)e Fq(4)31 b(matrix)f(is)f(sk)m(ew)i(symmetric)f(\(hence)h(its)e
+(matrix)h(exp)s(onen)m(tial)f(is)h(orthogonal\).)0 4806
+y Fp(References)0 5009 y Fq([Mul])127 b(Larry)30 b(Mullins.)37
+b(Course)30 b(4160:)43 b(Quaternions.)c(Course)30 b(notes.)0
+5192 y([R)-10 b(W91])47 b(M.)41 b(H.)g(Rheinfurth)d(and)h(H.)i(B.)g
+(Wilson.)70 b(Metho)s(ds)40 b(of)h(applied)d(dynamics.)69
+b(T)-8 b(ec)m(hnical)40 b(Rep)s(ort)337 5305 y(NASA)30
+b(RP-1262,)j(NASA,)e(George)h(C.)e(Marshall)f(Space)h(Fligh)m(t)g(Cen)m
+(ter,)h(1991.)p eop
+14 13 bop 0 527 a Fp(Index)0 709 y Fq(conjugate)166 821
+y(quaternion,)30 b(3)0 1017 y(Euler)f(angles)166 1130
+y(quaternions,)g(6)0 1326 y(Octa)m(v)m(e)166 1439 y Fj(qinv)p
+Fq(,)h(3)166 1552 y Fj(qmult)p Fq(,)f(3)166 1665 y Fj(qtrans)p
+Fq(,)g(4)166 1778 y(qtransv,)h(8)166 1891 y(qtransvmat,)h(8)166
+2004 y Fj(quaternion)p Fq(,)d(2)0 2200 y(quaternions)166
+2313 y(as)j(co)s(ordinate)f(rotations,)h(3)166 2425 y(co)s(ordinate)f
+(transformation,)g(4)166 2538 y(co)s(ordinate)g(transformation)g
+(matrices,)h(6)166 2651 y(cross)g(pro)s(ducts,)e(2)166
+2764 y(de\014nition,)f(2)166 2877 y(deriv)-5 b(ativ)m(es,)30
+b(12)166 2990 y(Euler)f(angles,)h(6)166 3103 y(m)m(ultiplication,)e(2)
+166 3216 y(unit)h(quaternions,)g(3)1905 5656 y(14)p eop
+end
+userdict /end-hook known{end-hook}if
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/devel/quaternion_arrays.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,58 @@
+i = ones (3, 3);
+
+w = 2*i;
+x = 3*i;
+y = 4*i;
+z = 5*i;
+
+q = quaternion (w, x, y, z)
+
+q .* conj (q)
+
+
+%{
+
+octave:1> quaternion_matrices 
+q.w =
+   2   2   2
+   2   2   2
+   2   2   2
+
+q.x =
+   3   3   3
+   3   3   3
+   3   3   3
+
+q.y =
+   4   4   4
+   4   4   4
+   4   4   4
+
+q.z =
+   5   5   5
+   5   5   5
+   5   5   5
+
+ans.w =
+   54   54   54
+   54   54   54
+   54   54   54
+
+ans.x =
+   0   0   0
+   0   0   0
+   0   0   0
+
+ans.y =
+   0   0   0
+   0   0   0
+   0   0   0
+
+ans.z =
+   0   0   0
+   0   0   0
+   0   0   0
+
+octave:2> 
+
+%}
\ No newline at end of file
Binary file main/quaternion/doc/quaternion.pdf has changed
--- a/main/quaternion/doc/quaternion.ps	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8786 +0,0 @@
-%!PS (but not EPSF; comments have been disabled)
-%DVIPSCommandLine: dvips tmp -o quaternion.ps
-%DVIPSParameters: dpi=600, compressed, comments removed
-%DVIPSSource:  TeX output 1998.10.23:1515
-/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
-/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
-/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
-65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
-0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
-{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
-getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
-ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
-{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
-B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
-4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
-p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
-a}B /bos{/SS save N}B /eos{SS restore}B end
-TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
-/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
-false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
-/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
-div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
-/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
-10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
-/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
-true def end /@MacSetUp{userdict /md known{userdict /md get type
-/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
-length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
-N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
-clippath mark{transform{itransform moveto}}{transform{itransform lineto}
-}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
-itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
-closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
-0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
-/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
-scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
-ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
-not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
-TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
-pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
--1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
-TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
-sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
-0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
-2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
-{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
-div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
-N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
-maxlength dict begin /magscale true def normalscale currentpoint TR
-/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
-/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
-psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
-scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
-/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
-psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
-roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
-moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
-begin /SpecialSave save N gsave normalscale currentpoint TR
-@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
-{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
-closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
-sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
-}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
-CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
-lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
-}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
-end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
-N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
-/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
-SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
-/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
-yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
-TeXDict begin 40258431 52099146 1000 600 600 (tmp.dvi)
-@start /Fa 1 1 df<007FB712FCB812FEA26C16FC2F047A943C>0
-D E /Fb 3 123 df<90391F801F8090397FE07FE09039E0F0E0703A01C0F9C0F8390380
-7D833807007F000E1403000C15F0001C137E0018EC01C002FEC7FC00385B1210C7FC1301
-5CA31303A25C1640010714E016C0001C5B007E1401010F148000FE1403011FEB0700011B
-130E39F839F01C397070F878393FE07FE0390F801F8025227EA02C>120
-D<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C003813800030140F013F14C00070
-1300126049131FD8E07E14801240EA00FE49133F000115005BA25D0003147E5BA215FE5D
-5BA214015DEBF00314070001130F3900F83FF0EB3FFBEB0FC3EB00075DA20007130FD81F
-805B003F495AA24AC7FCEB007E003E137C00385B381803F0381E07C0D807FFC8FCEA01F8
-23317EA026>I<903807800390381FE00790383FF00690387FF80E9038FFFC1C48EBFE78
-9038E03FF03803800190C712E0EC01C0C7EA0380EC0700140E143C14705C495A495A49C7
-FC130E133C0170130C49131C484813184848133848C71278D80EC013F0380FFE03391F3F
-FFE0D8381F13C0486C1380D86007130038E003FE38C000F020227DA024>I
-E /Fc 26 123 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E12
-0C121C5A5A126009177A8715>44 D<B512F0A514057F921A>I<123C127E12FFA4127E12
-3C08087A8715>I<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC003E
-80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C14
-C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A215
-07A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F13
-8026C003FEC7FC22377CB42B>83 D<EB7F803803FFF0380F80FC381C003E003F133F6D6C
-7E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13
-004815C05AA3140FA26C131F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE00
-3C22237DA126>97 D<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120F
-EA1F80123F90380003E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F
-14706C6C13E03903F001C03900FC0F8090383FFE00EB07F01D237EA122>99
-D<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E4848
-7F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC
-3900F81E3FEB3FFCD90FE0130026357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807
-E013C0390FC007E0381F800315F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA512
-7E127FA26C1418A26C6C1338000F14306D13706C6C13E03901F003C03900FC0F00EB3FFE
-EB07F01D237EA122>I<EB01FCEB07FF90381F078090383E0FC0EB7C1F13FCEA01F8A200
-03EB070049C7FCACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A357FB417>I<151F90
-391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80
-EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9
-FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80
-48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22
-337EA126>I<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C9038F7
-007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0FC0EA
-1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB215>
-I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>108
-D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7
-003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A3
-3C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE49
-7FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F8039
-01F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE15
-80A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93F
-FEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE
-7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F
-6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325
-307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F80
-49C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE003C133E
-48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7FC67FEB0F
-FF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1FFE038C0
-7F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000
-AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D803F0133F
-00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90387E073F
-EB1FFED907F8130026227EA02B>I<B5EBFFF0A3D80FF0EB3F800007EC1F000003140E15
-0C6D131C00011418A26C6C5BA26D1370017E1360137F6D5BA290381F8180A214C3010F90
-C7FCA2EB07E6A214FE6D5AA26D5AA36D5AA2146024217E9F29>I<B53A1FFF81FFF0A33C
-07F801FC003F8001F049EB1E0000030100141C816C6C017C1318A26D017E1338000002FE
-1330A290267E01FF5B159F168090263F030F5BA216C0903A1F8607C180A202C613E39026
-0FCC0390C7FCA2D907FC13F6ECF80116FE6D486C5AA36D481378A36D48133034217F9F37
->I<B53801FFF8A32603FE0013806C48EB7C0000001478017E1370017F5B90383F81C090
-381F8380D90FC3C7FCEB07E614FE6D5A6D5A6D7E80805B9038039F809038071FC0903806
-0FE0EB0C0790381C03F0496C7E01707FEBF000000180000FECFF8026FFFC0313FCA32620
-7F9F29>I<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D13
-1C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC
-14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA
-701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2EB000F003C14E00038EB1FC0
-0030EB3F800070137F1500006013FE495A13035CC6485A495AA2495A495A49C7FC153013
-FE485A12035B48481370485A001F14604913E0485A387F000348130F90B5FCA21C207E9F
-22>I E /Fd 1 106 df<1338137CA2137813701300A7EA0780EA1FC0EA38E01230EA60F0
-EAC1E0A3EA03C0A3EA0780A2EA0F0013041306EA1E0CA21318121CEA1E70EA0FE0EA0780
-0F237DA116>105 D E /Fe 2 51 df<13E01201120712FF12F91201B3A7487EB512C0A2
-12217AA01E>49 D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2
-147C1278003013FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C0
-0CEA0380380600185A5A383FFFF85AB512F0A216217CA01E>I E
-/Ff 4 64 df<B812C0A32A037A9137>0 D<130C131EA50060EB01800078130739FC0C0F
-C0007FEB3F80393F8C7F003807CCF83801FFE038007F80011EC7FCEB7F803801FFE03807
-CCF8383F8C7F397F0C3F8000FCEB0FC039781E078000601301000090C7FCA5130C1A1D7C
-9E23>3 D<EB7F803801FFE0000713F8380FC0FC381F003E003C130F00387F0078148000
-70130300F014C0481301A76C1303007014800078130700381400003C5B001F133E380FC0
-FC6CB45A000113E038007F801A1B7C9D23>14 D<4A7E1403B3B3A6007FB712FEB8FC7E2F
-2E7CAD38>63 D E /Fg 14 119 df<147E49B47E903907C1C38090391F80EFC090383F00
-FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90
-C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13
-E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E
->97 D<EC1FE0ECFFF8903803F03E903807C00F90381F8007D93F001380017E131F49137F
-485A485A000715005B000F147E484890C7FCA2485AA3127F90C9FCA35A5AA6481403007E
-5C5D151E003E5C5D6C5CEC03E0390F800F802603E07EC7FC3801FFF838003FC0212977A7
-2A>99 D<EC3F80903801FFE0903807E0F890381F803CEB3E0001FC131E485A485A120748
-48133E49133C121F4848137C15F8EC03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45A
-A61506150E151E007C143C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF0
-38007F801F2976A72A>101 D<EC03F0EC0FFC91383E0E1C9138FC077E903901F003FE13
-03903807E001D90FC013FCEB1F80A2EB3F004914F8137E01FE1303A2484814F0A2150712
-034914E0A2150F12074914C0A2151FA216805B153F1203ED7F006D5BA200015B0000495A
-9038F80F7E90387C1EFEEB1FF8903807E0FC90C7FC1401A25DA21403A25D001C1307007F
-5C48130F5D4A5A4AC7FC48137E00F85B387C03F0381FFFC0D803FEC8FC273B7CA72A>
-103 D<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0
-121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA2
-12035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03
-FEEA00F8163E79BC1C>105 D<1507ED1FC0A2153FA31680ED0E0092C7FCADEC07C0EC3F
-F0EC78F8ECE07CEB01C01303EC807EEB0700A2010E13FE5D131E131CEB3C01A201005BA2
-1403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25CA2147EA214FEA25C
-A213015CA2121C387F03F012FF495A5C495A4848C8FCEAF83EEA707CEA3FF0EA0FC02250
-83BC1C>I<D801F0EB3F803A07FC01FFE03A0F3E07C1F83A0E1F0F00FC001E011C137C00
-1C49137E003C13F012385C38783FC012705C91C7FC00F015FE495CEA007EA2150101FE5C
-5BA2150300015D5B15075E0003020F13704914C0A2031F13F00007ED80E05B1681EE01C0
-120F49EC0380A2EE0700001FEC0F0E49EB07FC0007C7EA01F02C2979A733>110
-D<EC1FC0ECFFF8903803F07C90380FC01FEB1F8090393F000F80017E14C0491307484814
-E0485A12075B000F15F0485AA2485AA2ED0FE0127F90C7FCA2151F4815C05AA2ED3F80A2
-ED7F00A248147E007C5C007E13015D4A5A003E495A6C495A4A5A260F803EC7FC3807C0FC
-3801FFF038003F80242977A72E>I<027E1360903901FF81E0903807C1C390391F80E7C0
-90383F00F7017E137F5B4848EB3F80485AA2485A000F15005B121F5D4848137EA3007F14
-FE90C75AA3481301485CA31403485CA314074A5A127C141F007E133F003E495A14FF381F
-01EF380F879F3903FF1F80EA00FC1300143F92C7FCA35C147EA314FE5CA21301130390B5
-12F05AA2233A77A72A>113 D<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C13E0
-001EEB380F001C1370003CEBE01F123814C0D8783F14C00070903880070092C7FC91C8FC
-12F05BEA007EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B0007C9FC2329
-79A726>I<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C133E49
-137E15FEA2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F13F0
-1300140F14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F801270
-0078EB1F006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F01307A2
-5CA2130FA25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13FEA2
-5BA21201A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C1438EB
-0078147014F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48B414
-1C26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2
-D8F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C04914
-81A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F
-0F1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA
-0707000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91
-C712E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D
-1578000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I
-E /Fh 12 123 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A
-5A5A126009157A8714>59 D<000FB8FCA23B1FC003F8003F0100151F001C4A130E123C00
-3801071406123000704A130EA20060010F140C12E0485CA2141FC715005DA2143FA292C8
-FCA25CA2147EA214FEA25CA21301A25CA21303A25CA21307A25C130F131F001FB512F0A2
-302D7FAC29>84 D<EC0780EC1FC0EC3CE0EC786014F0EB01E0A2EB03C015E090380780C0
-130FA2EB1F011580A2EB3E0315005CEB7C06140E5CEBFC18EBF8385C5C00015B13F1EBF3
-8001F7C7FC13FE5B485A5B5BA31207120F121D12390071144000E114C0000013039038F0
-0700140EEB787CEB3FF0EB0F801B3080AE1D>96 D<13F8121FA21201A25BA21203A25BA2
-1207A25BA2120FEBC7E0EB9FF8EBB83C381FF01EEBE01F13C09038800F80EA3F00A2123E
-A2007E131FA2127CA2143F00FC14005AA2147EA2147C14FC5C387801F01303495A383C0F
-806C48C7FCEA0FFCEA03F0192F7DAD1E>98 D<EB03F8EB0FFE90383E0780EBF803D801F0
-13C03803E001EA07C0000F1303D81F8013801407393F000F00141E387F01FCEBFFF091C7
-FC007EC8FC12FE5AA4127C156015E0EC01C06CEB0380EC0F006C131C380F81F83803FFE0
-C648C7FC1B1F7D9D21>101 D<157C4AB4FC913807C380EC0F87150FEC1F1FA391383E0E
-0092C7FCA3147E147CA414FC90383FFFF8A2D900F8C7FCA313015CA413035CA413075CA5
-130F5CA4131F91C8FCA4133EA3EA383C12FC5BA25B12F0EAE1E0EA7FC0001FC9FC213D7C
-AE22>I<1307EB0F80EB1FC0A2EB0F80EB070090C7FCA9EA01E0EA07F8EA0E3CEA1C3E12
-3812301270EA607EEAE07C12C013FC485A120012015B12035BA21207EBC04014C0120F13
-801381381F01801303EB0700EA0F06131EEA07F8EA01F0122E7EAC18>105
-D<90387C01F89038FE07FE3901CF8E0F3A03879C0780D907B813C0000713F000069038E0
-03E0EB0FC0000E1380120CA2D8081F130712001400A249130F16C0133EA2017EEB1F80A2
-017C14005D01FC133E5D15FC6D485A3901FF03E09038FB87C0D9F1FFC7FCEBF0FC000390
-C8FCA25BA21207A25BA2120FA2EAFFFCA2232B829D24>112 D<3807C01F390FF07FC039
-1CF8E0E0383879C138307B8738707F07EA607E13FC00E0EB03804848C7FCA2128112015B
-A21203A25BA21207A25BA2120FA25BA2121FA290C8FC120E1B1F7E9D20>114
-D<013F137C9038FFC1FF3A01C1E383803A0380F703C0390700F60F000E13FE4813FC1218
-0038EC0700003049C7FCA2EA200100005BA313035CA301075B5D14C000385CD87C0F1306
-00FC140E011F130C011B131C39F03BE038D8707113F0393FE0FFC0260F803FC7FC221F7E
-9D28>120 D<EA01E0D807F8130ED80E3C131FD81C3E133F0038143E12301270D8607E13
-7ED8E07C137C12C013FC484813FC000014F812015B1401000314F013E0A21403000714E0
-13C0A2140715C00003130FEBE01F143F3901F07F8038007FEFEB1F8FEB001F1500A2003E
-133EA2007E5B5C387C01F0387003E0383007C0383C0F80D80FFEC7FCEA03F0202C7E9D23
->I<011E1330EB3F809038FFC07048EBE0E0ECF1C03803C0FF9038803F80903800070048
-130EC75A5C5C5C495A495A49C7FC131E13385B491340484813C0485A38070001000EEB03
-80380FE007391FF81F0038387FFF486C5A38601FFC38E00FF038C003C01C1F7D9D21>I
-E /Fi 27 106 df<1430147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F85B1201
-5B1203A2485AA3485AA3121F90C7FCA25AA3123EA2127EA6127C12FCB3A2127C127EA612
-3EA2123FA37EA27F120FA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB03C0
-1301EB00E0147014301462738226>0 D<12C07E12707E123C7E7EA26C7E6C7EA26C7E7F
-12007F1378137CA27FA37FA31480130FA214C0A31307A214E0A6130314F0B3A214E01307
-A614C0A2130FA31480A2131F1400A3133EA35BA2137813F85B12015B485AA2485A48C7FC
-A2121E5A12385A5A5A14627C8226>I<12F0B3B3B2043674811C>12
-D<00F01378B3B3B2153674812E>I<151E153E157C15F8EC01F0EC03E01407EC0FC0EC1F
-8015005C147E5CA2495A495AA2495AA2495AA2495AA249C7FCA2137EA213FE5B12015BA2
-12035BA21207A25B120FA35B121FA45B123FA548C8FCA912FEB3A8127FA96C7EA5121F7F
-A4120F7FA312077FA21203A27F1201A27F12007F137EA27FA26D7EA26D7EA26D7EA26D7E
-A26D7E6D7EA2147E80801580EC0FC0EC07E01403EC01F0EC00F8157C153E151E1F947182
-32>16 D<12F07E127C7E7E6C7E7F6C7E6C7E12017F6C7E137EA27F6D7EA26D7EA26D7EA2
-6D7EA26D7EA26D7EA280147E147F80A21580141FA215C0A2140F15E0A3140715F0A41403
-15F8A5EC01FCA9EC00FEB3A8EC01FCA9EC03F8A515F01407A415E0140FA315C0141FA215
-80A2143F1500A25C147E14FE5CA2495AA2495AA2495AA2495AA2495AA249C7FC137EA25B
-485A5B1203485A485A5B48C8FC123E5A5A5A1F947D8232>I<160F161F163E167C16F8ED
-01F0ED03E0ED07C0150FED1F801600153E157E5D4A5A5D14034A5A5D140F4A5AA24AC7FC
-143E147E5CA2495AA2495AA2495AA2130F5CA2495AA2133F91C8FCA25B137E13FEA25B12
-01A25B1203A35B1207A35B120FA35BA2121FA45B123FA690C9FC5AAA12FEB3AC127FAA7E
-7FA6121F7FA4120FA27FA312077FA312037FA312017FA212007FA2137E137F7FA280131F
-A26D7EA2801307A26D7EA26D7EA26D7EA2147E143E143F6E7EA26E7E1407816E7E140181
-6E7E157E153E811680ED0FC01507ED03E0ED01F0ED00F8167C163E161F160F28C66E823D
->I<12F07E127C7E7E6C7E6C7E6C7E7F6C7E1200137C137E7F6D7E130F806D7E1303806D
-7EA26D7E147C147E80A26E7EA26E7EA26E7EA2811403A26E7EA2811400A281157E157FA2
-811680A2151F16C0A3150F16E0A3150716F0A31503A216F8A4150116FCA6150016FEAA16
-7FB3AC16FEAA16FC1501A616F81503A416F0A21507A316E0150FA316C0151FA31680153F
-A216005DA2157E15FE5DA214015DA24A5AA214075DA24A5AA24A5AA24AC7FCA2147E147C
-14FC495AA2495A5C1307495A5C131F49C8FC137E137C5B1201485A5B485A485A48C9FC12
-3E5A5A5A28C67E823D>I<EE01E01603EE07C0EE0F80161F1700163E5E5E15015E4B5A15
-074B5A5E151F4BC7FC153E157E5DA24A5A14035D14075D140F5D141F5D143F92C8FC5C14
-7E14FE5C1301A25C13035C1307A25C130FA2495AA3495AA3137F91C9FCA25B5BA312015B
-A31203A25BA21207A35BA2120FA35BA3121FA45BA2123FA75B127FAC90CAFC5AB3B3A27E
-7FAC123F7FA7121FA27FA4120FA37FA31207A27FA31203A27FA21201A37F1200A37F7FA2
-80133FA36D7EA36D7EA2130780A2130380130180A2130080147E147F8081141F81140F81
-14078114038114016E7EA2157E153E153F6F7E150F826F7E15036F7E821500167C828217
-80160FEE07C0EE03E016012BF86C8242>32 D<12F07E127C7E123F7E6C7E6C7E6C7E7F12
-016C7E7F137E133E133F6D7E130F806D7EA26D7E80130180130080147E147F8081141F81
-140F81140781A2140381140181A2140081A2157FA36F7EA382151FA282150FA3821507A3
-82A21503A282A31501A282A31500A382A482A21780A7163F17C0AC161F17E0B3B3A217C0
-163FAC1780167FA71700A25EA45EA31501A35EA21503A35EA21507A25EA3150F5EA3151F
-5EA2153F5EA34BC7FCA315FEA25D1401A25D14035D1407A25D140F5D141F5D143F92C8FC
-5C147E14FE5C13015C13035C495AA2495A5C131F49C9FC133E137E5B5B485A12035B485A
-485A48CAFC5A123E5A5A5A2BF87E8242>I<B61280A600FCC8FCB3B3B3B3B3B3B3B3B3B3
-B3B3B3A2B61280A619F86A8230>I<B61280A6C7121FB3B3B3B3B3B3B3B3B3B3B3B3B3A2
-B6FCA619F8808230>I<177C17FCEE01F8A2EE03F0EE07E0EE0FC0A2EE1F80EE3F005E16
-7E5E15015E15034B5A5E150F5E151F4B5AA24BC7FCA215FEA24A5AA24A5AA24A5AA2140F
-5D141F5D143F5DA2147F92C8FC5CA25C13015C1303A25C1307A3495AA3495AA3133F5CA3
-137F5CA313FF91C9FCA35A5BA31203A25BA31207A35BA3120FA45BA2121FA65BA2123FA8
-5BA2127FAE5B12FFB3A62E95688149>48 D<12F87E127EA27E6C7E6C7EA26C7E6C7E7F12
-016C7E7F137E137F6D7E131F80130F806D7EA26D7EA26D7EA26D7EA2147FA26E7EA28114
-1F81140F811407A281140381A2140181140081A28182A36F7EA36F7EA382150FA3821507
-A3821503A3821501A382A281A31780A3167FA317C0A4163FA217E0A6161FA217F0A8160F
-A217F8AE160717FCB3A62E957E8149>I<B612F0A600FCC8FCB3B3B3B3B3B3B3B01C9466
-8137>I<B612F0A6C71203B3B3B3B3B3B3B3B01C94808137>I<12FCB3B3B3B3B3B3B3B0B6
-12F0A61C94668237>I<EC03F0B3B3B3B3B3B3B3B0B6FCA61C94808237>I<12FCB3B3B006
-34668037>I<12FCB3B3B006346A8037>I<B47EB3A6127F7FAE123FA27FA8121FA27FA612
-0FA27FA41207A37FA31203A37FA21201A37F7EA380137FA380133FA380131FA36D7EA36D
-7EA3130380A2130180130080A28081143FA281141F81140F811407A26E7EA26E7EA26E7E
-A2157FA26F7EA26F7E150F821507826F7E1501821500167E167F82EE1F80EE0FC0A2EE07
-E0EE03F0EE01F8A2EE00FC177C2E95688349>64 D<EE07FCB3A617F8160FAE17F0A2161F
-A817E0A2163FA617C0A2167FA41780A316FFA31700A35DA25EA315035EA315075EA3150F
-5EA3151F5EA34B5AA34B5AA393C7FC5DA25D14015D1403A25D14075DA2140F5D141F5D14
-3F5DA24AC8FCA214FEA2495AA2495AA2495AA2495A5C131F5C133F49C9FC137E13FE5B48
-5A12035B485A485AA2485A48CAFC127EA25A5A2E957E8349>I<EAFF80B3B3B009346880
-49>I<EAFF80B3B3B00934598049>I<BB12FC86A3D87FC0C9001F7FF0007F6C6C17076C6C
-050113806C6CEF007F1A1F6C6CF00FC06C6C18076C6C1803F201E06C6D17006D6C186001
-3F19706E18306D7E6D6C18181B006D7E6D7E6D7EA26D7F6E7E6E7EA26E7E6E7E6E7EA26E
-7E6E7E80826F7E6F7EA26F7E6F7E6F5A5EA24B5A5E4BCBFC153E157E5D5D4A5A4A5A1407
-5D4A5A4ACCFC143E147E147C5C4948181801031930495A4A18704948186049CC12E04918
-01017EF003C0017C180749180F4848F01F800003197F49EF01FF4848050713004848173F
-48CA000FB5FC48BA5AA25ABB5AA24D537B7F58>80 D<B512E0A500F8C7FCB3B3B3B3B3B3
-B3ACB512E0A513946E8227>104 D<B512E0A5EA0003B3B3B3B3B3B3B3ACB5FCA513947F
-8227>I E /Fj 65 123 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF
-80A3EA7F00A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA24813
-3FB2007E1400007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8
-011F131FA202C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9
-495BA2003F90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA7
-6C486C5AA229387DB730>I<D803C0EB01E0D80FF01303486C497E487E150F487ED87E7E
-495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D387E7E01EA7FFED83FFC5B1403EA1F
-F86C48485AEA03C0C75B140FA25D141FA24A5AA25D147FA292C8FC5CA2495AA25C1303A2
-5C1307A290390FF001E0ED07F84A487E011F497EA24A487E133F163F90267F807F1380ED
-7E1F14005BA25B1201A24848EB7F3F033F13004914FF12076F5A5B6F5A6C486D5A0001EC
-01E029477DBE30>37 D<EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13
-FCA2120113F81203EA07F0120FEA1FE0127FEAFFC013801300127C12380F1D70B730>39
-D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B48
-5A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F
-12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E
-184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C013
-1FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA21303
-14F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A
-485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB
-3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0
-011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E0
-9038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>
-I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA
-03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA
-07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30>I<007FB612F0A2B712F8A36C15
-F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B
-30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5A
-A25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495A
-A2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA2
-48C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB
-83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8
-A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15
-F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B
-6D5B010F13E06D5BD900FEC7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F
-13FF1203123FB5FCA213EF138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C
-14F81F3977B830>I<EB07FC90383FFFC090B512F00003804814FE4880261FF80F138026
-3FE00113C09038C0007F4848EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218
-C8FCA2150716F0150F16E0151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A
-5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F848
-5AEA1FE048B6FCB7FCA37E6C15F025397BB830>I<EB03FF013F13E090B512F84814FE48
-80481580260FFE0113C09038F0007F4848EB1FE0150F16F01507A26C5A6C5AC8FC150F16
-E0A2151FED3FC0157FEDFF8002071300903807FFFE495B5D8115FF6D1480D9000113C091
-38003FE0ED1FF0ED07F8150316FC150116FE1500A21218127EB4FCA2150116FC4814036C
-15F86C6C13076DEB1FF0D83FF0133F3A1FFE01FFE06CB612C06C15806CECFE00C65C013F
-13F001031380273A7CB830>I<EC03FC4A7E140F141FA2143F147F157E14FEA2EB01FCEB
-03F8A2EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F0013FEA2485A485AA2485AA2485A485A
-A2485AA248C7FC12FEB8FC1780A46C1600C8007EC7FCAA91387FFFFE91B6FCA46E5B2939
-7DB830>I<000FB612804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC81
-81D9FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503
-A31218127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261F
-FC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730>I<EC0FF8EC7FFF
-49B51280010714E0131F4914F090387FF80F9039FFC007F84813803803FE005B485A4848
-EB03F0ED01E0484890C7FC5B123F5BA2127FEB000C903803FFE0010F13F8D8FF3F13FE48
-B6FCB7128016C09039FE007FE001F8EB1FF001E0130F49EB07F8ED03FC5B90C7120116FE
-1500A37EA46C7E15016D14FC121F6D1303000FEC07F86D130F6C6CEB1FF06DEB3FE03A03
-FF81FFC06C90B512806C15006D5B011F13F8010713E001011380273A7CB830>I<127CB7
-12FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14
-075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA9
-6D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C04801
-0113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F8
-6D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F
-13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303
-007F15FC90C712014815FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1F
-F06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7C
-B830>I<49B4FC010F13E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0
-EB3FE04848131F49EB0FF048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303
-15076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190
-380060011400ED03F8A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A13
-00EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA
-3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4
-EA7FE0A2EA3FC0EA0F000C276EA630>I<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA
-0FF0EA03C0C7FCAFEA03C0EA0FF0121F13F8123F13FCA3121FA2120F12031200120113F8
-120313F01207EA1FE0123FEA7FC0EAFF80EA7F00127E12380E3470A630>I<007FB7FCA2
-B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>61
-D<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F01
-0313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C
-020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A48
-13E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<147F4A7E
-A2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F00
-7FA4498049133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFF
-EB7FFFB56CB51280A46C496C130029397DB830>65 D<007FB7FCB81280A47ED803F8C712
-3FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A900
-7FB7FCB8FCA46C16C02B387EB730>69 D<3B3FFF800FFFE0486D4813F0B56C4813F8A26C
-496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D
-4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>72 D<D83FF8ECFFE0486C49
-13F0486C4913F8A2007F16F06C6C4913E00007160001EF14BFEC800FA39039E7C01F3FA4
-ECE03F01E3133EA2ECF07EA201E1137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3F
-E0A3EC1FC0A2EC070091C7FCADD83FFC903801FFE0486C4913F0B54913F8A26C486D13F0
-6C486D13E02D387FB730>77 D<D83FFC90381FFF80486C4913C0B54913E0A26C6D6C13C0
-6C6E13800003913801F800EBF7C0A3EBF3E0A314F013F1A214F8A213F014FCA2147C147E
-A2143E143FA2141FA21581A2140F15C1A2140715E1A2140315F1A21401A215F91400A315
-7DA3153FEA3FFF481380B5EAC01FA26CEB800F6C496C5A2B387EB730>I<90383FFFE048
-B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A448
-15F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15
-C06C15806C1500000114FCD8003F13E0253A7BB830>I<90390FF803C0D97FFF13E048B5
-12C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37E
-ED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF0103
-1480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F0
-7F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD8
-78011380253A7BB830>83 D<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C7
-91C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<007FB5FCB61280A4150048C8FC
-B3B3B3A5B6FC1580A46C140019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7E
-A26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA213
-0180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED
-3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>I<007FB5FCB612
-80A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8
-A36C15F0A225077B7D30>95 D<EB3FFC48B57E4814E04880488048809038F00FFE9038E0
-01FF806F7E6C48133F6C4880C8121FA491B5FC130F137F48B6FC12075A48EBC01F383FFC
-00EA7FE0138048C7FC5AA46C143FA26C6C137F9038C001FF263FF80FEBFFC06CB712E0A2
-000714F76C14C3C6020013C0D93FF090C7FC2B2A7CA830>97 D<EA3FFC487E12FFA2127F
-123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13
-804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F6EEB3FC0A2
-6EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC9038
-0003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B612804815C048EB807F3907
-FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC
-07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B01
-1F13F801075B01011380232A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90
-381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790
-C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFF
-C06CB712E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4
-FC010713E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB
-1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC
-01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F1480
-6DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5
-FC491387903803FE079138FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C
-15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC
-13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7
-FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15
-C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE000
-1FFE0180130148C8127F007E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01
-F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730
->I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA2
-9138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D48
-13FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5A
-A2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C
-15C023397AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F048
-14F8A47EEB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C1400
-5C6C5B000F13F0000313C01D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14
-C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A
-5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E
-6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B5
-7EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF
-01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE90
-39F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01
-071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C90
-38FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D48
-13FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8
-497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F849
-1303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D13
-0F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F
-13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B6
-12FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217
-F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B5
-5A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A7
-30>I<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848
-130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F
-6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE01
-90C7FCAD92B512F84A14FCA46E14F82E3C7DA730>I<ED07F83A3FFF803FFF486DB51280
-B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238801F809238000F004A90C7FC5C
-5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A287EA730>I<90381FFC1E48B512
-9F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C
-13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C147F00FEEC1F
-C0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C0
-26780FFEC7FC222A79A830>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026
-001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814F09138FC1FF06DB512E06D14C01680
-6D14009038007FFCEC1FF026337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F14
-7F003F143F00001400B3A41501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F
-6D4913FC6D9038F87FF8010001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B5
-15E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F017E5CA2017F13
-1F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801
-FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C
-16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3F
-E0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03F
-A2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815B
-C648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92
-C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE
-90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180
-140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC
-0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E0
-0107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2
-143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90
-C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3F
-E0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A49
-5A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28
-277DA630>I E /Fk 5 53 df<156015F0A24A7E4A7EA24A7E1406EC0E7F140C91381C3F
-8014184A6C7E150F02607F150702C07F1503D901807F1501D903007F496D7E1306010E14
-7F130C011C6E7E131801386E7E1330496E7E160749811603484881160148C87F486F7E12
-06000E167F120C001CEE3F801218003FB812C0A24817E0A2B912F0342F7DAE3B>1
-D<130C133C137CEA03FC12FFEAFC7C1200B3B113FE387FFFFEA2172C7AAB23>49
-D<EB7F803801FFF0380780FC380E003F48EB1F8048EB0FC05A0060EB07E012F000FC14F0
-7E1403A3007C1307C7FCA215E0140F15C0141F1580EC3F00147E147C5C495A495A495A49
-5A011EC7FC5B5B4913305B485A4848136048C7FC000E14E0001FB5FC5A4814C0B6FCA21C
-2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E487FEC1F80003F14C0A2EB800F1300
-A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EBFFC014F0EB00FC143FEC1F8015C014
-0F15E0A2EC07F0A21238127C12FEA3EC0FE012F8006014C00070131F6C1480001EEB3F00
-380780FC3801FFF038007FC01C2D7DAB23>I<140EA2141E143EA2147E14FEA2EB01BE13
-03143E1306130E130C131813381330136013E013C0EA0180120313001206120E120C5A12
-3812305A12E0B612FCA2C7EA3E00A9147F90381FFFFCA21E2D7EAC23>I
-E /Fl 13 121 df<007FB812FEBAFCA26C17FE3804799847>0 D<121EEA7F80A2EAFFC0
-A4EA7F80A2EA1E000A0A799B19>I<0060166000F816F06C1501007E15036CED07E06C6C
-EC0FC06C6CEC1F806C6CEC3F006C6C147E6C6C5C6C6C495A017E495A6D495A6D6C485A6D
-6C485A6D6C48C7FC903803F07E6D6C5A903800FDF8EC7FF06E5A6E5AA24A7E4A7EECFDF8
-903801F8FC903803F07E49487E49486C7E49486C7E49486C7E017E6D7E496D7E48486D7E
-4848147E4848804848EC1F804848EC0FC048C8EA07E0007EED03F0481501481500006016
-602C2C73AC47>I<D91FE01620D9FFFC16704813FF000714C04814F048809026E01FFE15
-F0273F0003FFEC01E0007E010013C00078DA3FF01307DB0FFCEB0FC048913A07FF807F80
-48020190B5FC6F1500043F5B040F13F804035B00409238007F80CDFCA4D91FE01620D9FF
-FC16704813FF000714C04814F048809026E01FFE15F0273F0003FFEC01E0007E010013C0
-0078DA3FF01307DB0FFCEB0FC048913A07FF807F8048020190B5FC6F1500043F5B040F13
-F804035B00409238007F803C287BAB47>25 D<19301978A2197C193CA2193E191EA2191F
-737EA2737E737EA2737E737E1A7C1A7EF21F80F20FC0F207F0007FBB12FCBDFCA26C1AFC
-CDEA07F0F20FC0F21F80F27E001A7C624F5A4F5AA24F5A4F5AA24FC7FC191EA2193E193C
-A2197C1978A2193050307BAE5B>33 D<0203B512F8023F14FC91B6FC010315F8D90FFEC8
-FCEB1FE0EB7F8001FEC9FCEA01F8485A485A485A5B48CAFCA2123EA25AA21278A212F8A2
-5AA2B812F817FCA217F800F0CAFCA27EA21278A2127CA27EA27EA26C7E7F6C7E6C7E6C7E
-EA00FEEB7F80EB1FE0EB0FFE0103B612F8010015FC143F020314F82E3679B13D>50
-D<1718173C177CA217F8A2EE01F0A2EE03E0A2EE07C0160F1780EE1F00A2163EA25EA25E
-A24B5AA24B5AA24B5AA24B5AA24BC7FCA2153E157E157C5DA24A5AA24A5AA24A5AA24A5A
-A24AC8FCA2143EA25CA25C13015C495AA2495AA2495AA249C9FCA2133EA25BA25BA2485A
-A2485AA2485A120F5B48CAFCA2123EA25AA25AA25A12602E5474C000>54
-D<146014F01301A214E01303A214C01307A2EB0F80A214005BA2131E133EA25BA2137813
-F8A25B1201A25B1203A2485AA25B120FA290C7FC5AA2123EA2123C127CA2127812F8A412
-78127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007FA21378137CA27FA2
-131E131FA27F1480A2EB07C0A2130314E0A2130114F0A213001460145A77C323>104
-D<126012F07EA21278127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007F
-A21378137CA27FA2131E131FA27F1480A2EB07C0A2130314E0A2130114F0A414E01303A2
-14C01307A2EB0F80A214005BA2131E133EA25BA2137813F8A25B1201A25B1203A2485AA2
-5B120FA290C7FC5AA2123EA2123C127CA2127812F8A25A1260145A7BC323>I<126012F0
-B3B3B3B3B11260045B76C319>I<0060131800F0133CB3B3B3B3B000601318165A75C32D>
-I<1A061A0F1A1FA21A3EA21A7CA21AF8A2F101F0A2F103E0A2F107C0A2F10F80A2F11F00
-A2193EA261A261A24E5AA24E5AA24E5AA24E5AA24EC7FCA2183EA260A260A24D5AA24D5A
-133801F85E486C15071203D80FFE4B5A121D00394CC8FCEAF1FF00C0163EC67F017F5D80
-013F5D80011F4A5A80010F4A5A8001074A5AA26E495A13036E49C9FC13016E133E7F6F5A
-147F6F5A143FEDE1F0141FEDE3E015F391380FF7C015FF6E5BA26E90CAFCA26E5AA26E5A
-A215781570485B7A834C>112 D<EB3F80EBFFF03803E078380F801E48487E80003EEB03
-805A15C0140F5AA3EC078091C7FCA37E127CA27E121E121F6C7EEA03C06C7EEA00F8133E
-EBFF803803E3E0380F80F0381F0078143E003E7F487F1580EC07C05A15E01403A57E127C
-EC07C07E121E001FEB0F80390F801F00EA03C03801E03E3800F8F8EB3FE0EB0F80EB03E0
-EB00F01478143E80801580EC07C0A215E01403A3123C127EA3EC07C012781238EC0F806C
-EB1F00121E6C133E3803C0F83801FFE038003F801B537ABF28>120
-D E /Fm 29 119 df<ED0FFF4AB512C0020F14F0027F80903A01FFF803FC499038C000FE
-010FEB00034948497E49485B5C495A4C138001FF6E13005CA3705AEE01F893C8FCA74BB5
-1280B9FCA5C69038E00003B3B0007FD9FFC1B6FCA538467EC53E>12
-D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F788E1F>46
-D<EC03C01407141F147FEB03FF133FB6FCA413C3EA0003B3B3ADB712FCA5264177C038>
-49 D<ECFFE0010F13FE013F6D7E90B612E0000315F82607FC0313FE3A0FE0007FFFD81F
-806D138048C7000F13C0488001C015E001F07F00FF6E13F07F17F881A46C5A6C5A6C5AC9
-FC17F05DA217E05D17C04B13804B1300A2ED1FFC4B5A5E4B5A4B5A4A90C7FC4A5A4A5AEC
-0FF04A5AEC3F804AC7127814FE495A494814F8D907E014F0495A495A49C8FC017C140149
-140348B7FC4816E05A5A5A5A5AB8FC17C0A42D417BC038>I<ECFFF0010713FF011F14C0
-017F14F049C66C7ED803F8EB3FFED807E06D7E81D80FF86D138013FE001F16C07FA66C5A
-6C4815806C485BC814005D5E4B5A4B5A4B5A4A5B020F1380902607FFFEC7FC15F815FF16
-C090C713F0ED3FFCED0FFEEEFF80816F13C017E0A26F13F0A217F8A3EA0FC0EA3FF0487E
-A2487EA217F0A25D17E06C5A494913C05BD83F80491380D81FF0491300D80FFEEBFFFE6C
-B612F800015D6C6C14C0011F49C7FC010113E02D427BC038>I<163FA25E5E5D5DA25D5D
-5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14F8EB01F0EB03
-E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E5A12FCB91280
-A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01FFEB07FF91B6
-FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C714C001DF14
-F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8FC6F13F0A3
-17F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0123E003F4A13
-80D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01FCC7FC0101
-13C02D427BC038>I<EE1F80A24C7EA24C7EA34C7EA24B7FA34B7FA24B7FA34B7F169F03
-1F80161F82033F80ED3E07037E80157C8203FC804B7E02018115F0820203814B137F0207
-815D173F020F814B7F021F8292C77EA24A82023E80027E82027FB7FCA291B87EA2498302
-F0C8FCA20103834A157F0107834A153FA249488284011F8491C97E4984133E017E82B602
-0FB612F0A54C457CC455>65 D<B9FC18F018FE727E19E026003FFEC7001F13F805017F94
-38003FFF060F7F727F727F727F84737E737EA2737EA2737EA21B80A2851BC0A51BE0AD1B
-C0A51B8061A21B006162193F624F5A19FF624E5B06075B4E5B063F90C7FC4DB45A050F13
-F8BA5A19C04EC8FC18F095C9FC4B447CC356>68 D<B500FE067FB512806E95B6FCA26F5E
-A2D8003F50C7FC013D6DEE03DFA2013C6DEE079FA26E6CEE0F1FA26E6C161EA26E6C163C
-A36E6C1678A26E6C16F0A26E6DEC01E0A26E6DEC03C0A36E6DEC0780A26F6CEC0F00A26F
-6C141EA26F6C5CA36F6C5CA26F6C5CA26F6D485AA26F6D485AA26F6D485AA3706C48C7FC
-A293383FF81EA2706C5AA2706C5AA3706C5AA2705BA2705BA2705BA2B6057FB6128071C7
-FCA2173E171C61447CC36A>77 D<923807FFC092B512FE0207ECFFC0021F15F091267FFE
-0013FC902601FFF0EB1FFF010701C0010713C04990C700017F49486E7F49486F7E49486F
-7E49486F7E48496F7E48496F1380A248496F13C0A24819E091C97E4819F0A248487013F8
-A3007F19FCA249177FA300FF19FEAD007F19FCA36D17FF003F19F8A3001F19F06D5EA26C
-19E06E01FE5B6C912603FF8014C06C6D486D4813804B13E06C9028E01F83F00F13006C90
-3BF01E00F81FFE90267FF83E90387C3FFC90263FFC3C6D485AD91FFE91381EFFF0D90FFF
-021F5B6D01FE5D010194C7FC6D6D6CB45A023F90B512F8020703E0130202006F13070307
-13C792C7EA07F8716C130F72131F9538FF80FF96B5FC7114FEA3831AFCA27213F81AF084
-7213E07213C0721300F001FC48587AC454>81 D<003FBA12E0A59026FE000FEB8003D87F
-E09338003FF049171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5
-C81700B3B3A20107B8FCA545437CC24E>84 D<903801FFE0011F13FE017F6D7E48B612E0
-3A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA402
-03B5FC91B6FC1307013F13F19038FFFC01000313E0000F1380381FFE00485A5B127F5B12
-FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01F
-C66CEB8007D90FFCC9FC322F7DAD36>97 D<EC3FFC49B512C0010F14F0013F14FC90397F
-F003FE9039FFC001FF0003495A48494813805B120F485AA2485A6F1300007F6E5AED0078
-4991C7FCA212FFAC6C7EA3123F6DEC03C0A26C6C1407000F16806D140F6C6DEB1F006C6D
-133E6C01F05B3A007FFC03F86DB55A010F14C0010391C7FC9038003FF82A2F7CAD32>99
-D<EE03FEED07FFA5ED001F160FB1EC3FE0903803FFFC010FEBFF8F013F14CF9039FFF807
-FF48EBC00148903880007F4890C7123F4848141F49140F121F485AA3127F5BA212FFAC12
-7FA37F123FA26C6C141FA26C6C143F0007157F6C6C91B5FC6CD9C00314FC6C9038F01FEF
-6DB5128F011FEBFE0F010713F89026007FC0EBF80036467CC43E>I<EC3FF80103B57E01
-0F14E0013F8090397FF83FF89039FFC007FC48496C7E48496C7E48486D1380485A001FED
-7FC05B003FED3FE0A2127F5B17F0161F12FFA290B7FCA401F0C9FCA5127FA27FA2123F17
-F06C7E16016C6C15E06C6C14036C6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE01
-1FB55A010714F0010114C09026001FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13F0
-49B512F849EB8FFC90390FFE0FFE90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03F0
-ED00C01600ABB612F8A5C601E0C7FCB3B0007FEBFFE0A527467DC522>I<137C48B4FC48
-13804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFFA51203
-7EB3AFB6FCA518467CC520>105 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC4
-20>108 D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E
-4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E
-6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D
-7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F
-000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E
->I<EC1FFC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7
-EA3FE000078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700
-A46C6C4A5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90
-C7FC6DB55A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FF8B590B5
-7E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C0
-4A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E49
-13806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCAD
-B67EA536407DAC3E>I<DA3FE0131E902603FFFC133E010F01FF137E013F1480903AFFF8
-0FE0FE489038E003F148EBC0014890388000FB4890C7127F49143F001F151F485A160F5B
-127FA3485AAC6C7EA46C7EA26C6C141F163F6C6C147F6C15FF6C6D5A6C9038E003EF6C90
-38F01FCF6DB5128F011FEBFE0F010313F89038007FC091C7FCAD0307B512FCA536407CAC
-3B>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC
-14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>I<9039
-1FFC038090B51287000314FF120F381FF003383FC00049133F48C7121F127E00FE140FA2
-15077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E
-010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F
-8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>I<EB
-01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA4C601E0C7
-FCB3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F006DB5FC6D13FC01
-015B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F6C81B3A85E
-A25EA25E7E6E491380017FD901F713FE9138F807E76DB512C7010F1407010313FE902600
-7FF0EBFC00372E7CAC3E>I<B6903803FFFCA5000101E09038003E006C163C80017F5D80
-17F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6DEBE01E
-163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA2
-6E5AA26E5AA21578362C7EAB3B>I E /Fn 24 118 df<1530157015E0EC03C0EC0780EC
-0F00141E5C147C5C5C495A1303495A5C130F49C7FCA2133E137E137C13FC5B1201A2485A
-A25B1207A2485AA3485AA448C8FCA45A127EA512FE5AA95AA87EA2127CA5123C123EA212
-1EA2121F7EA26C7EA26C7EA26C7E120013707FA213181C5A74C323>40
-D<497E806D7E1470147880A280A280A2EC0780A215C01403A215E0A3EC01F0A615F8AF14
-0315F0A5140715E0A4140F15C0A3141F1580A3EC3F00A2143E147EA2147C14FC5C13015C
-13035C13075C495AA249C7FC131E133E5B13785B485A485A12075B000EC8FC5A5A12F05A
-1D5A7FC323>I<121EEA3F80EA7FC012FFA41380EA7F00123C0A0A788919>46
-D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300141F15C0A5143F1580A5
-147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497EB612F8A31D3D78BC
-2D>49 D<EC03FC91381FFF8091387C07E0903901F001F0903903C000F84948137C49C712
-3E131E013E141F133C137C137813F8A3163F486C143E167E6D147C6C6C14FC6E13F89138
-C001F09138F003E090397FF807C09138FC0F0090383FFF3E6D13F86D13E06D7F01017F81
-01077F90391F1FFF80D93E0F13C0EBF8072601F00113E048486C13F04848137F4848131F
-001FEC0FF890C71207003E1403A2481401A300FC15F05AA3ED03E0A26CEC07C0007C1580
-007E140F003EEC1F00003F143E6C6C5B6C6C485A3907F00FE00001B512806C6C48C7FCEB
-0FF0283F7ABC2D>56 D<EC07F8EC3FFE9138FC0F80903901F007C0903907E003E0D90FC0
-13F090381F8001013F14F8EB7F004914FC48481300A24848EB01FEA21207A3485AA41503
-121F5BA31507A2000F15FC150FA2151F1207153F000315F86C6C137F000014EF90387C01
-CF90393E078FF090380FFE1FEB03F890C713E0A2ED3FC0A3ED7F8016005D003F5C487E4A
-5A00FF495A5D4A5A49485A48495A007049C7FC0078137E383E03FC381FFFF06C13C0D801
-FEC8FC273F79BC2D>I<13F0EA01FC1203EA07FEA313FCA2EA03F8EA01E0C7FCB3121EEA
-3F80EA7FC012FFA41380EA7F00123C0F2778A619>I<17E016011603831607A2160FA216
-1F83163FA2167F167716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E151E15
-1C153C03387FED7800157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC
-5CA20270C7EA3FE0171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2137C
-D801FE4B7E2607FF80EC3FFEB500F00107B512FC19F85E3E417DC044>65
-D<013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F
-4B5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FC
-A45F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC
-6115C0483E7DBD44>72 D<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5D
-A514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2
-B6FC263E7EBD21>I<923803FF80031F13F09238FE01FE913903F8003FDA0FE0EB1FC0DA
-3F806D7E4AC7EA03F0D901FC8149486E7E49486E7E010F82494881494816804948ED3FC0
-13FF91C9FC484817E00003171F5B000718F0A2485AA2485A19F8123FA25B127FA219F048
-48163FA519E0187F5BA219C018FF1980A24D1300A24D5A6C7E4D5A60003F160F037C5C6C
-6C48B4495A913A0783803FC0000F90260E01C05B9026F00C0049C7FC0007011CEBE0FE26
-03F818EB61FCD801FCEC73F8D800FEEC77F0017FEC7FC0D93F985CD90FFC01FEC8FC9027
-03FE07F813030100B5FC91260FFC3C5B91C7FC180E163E181E043F137CEF81FC17FF60A2
-60A2705B60705B7048C7FCEE01F83D5276BF47>81 D<9239FF8003800207EBF007021F90
-38FC0F0091387F00FE02FCEB1F1FD903F0EB07BF49486DB4FC49487F4A6D5A49C8FC4915
-7E133E137E173E49153CA57F1738A26D92C7FC808080EB7FFEECFFE06D13FEEDFFC06D14
-F06D14FC010380010080143F020380DA003F7F15031500707E163F161FA2160F121CA316
-07160F003C5EA35F003E151F94C7FC007E5D007F153E6D5C16FC01E0495AD87DF0495AD8
-FCFCEB0FC03AF87F803F8027F01FFFFEC8FCD8E00713F839C0007FC031427BBF33>83
-D<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E82A248140782A26C5A13
-7890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848
-133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA2007F5B913903BF07009038
-80073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97
-D<EC1FF0ECFFFE903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F048
-48EB3FE0485AA24848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC03
-80150716006C6C5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0F
-F0242A7AA828>99 D<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0
-A491380FF03FECFFFC902603F81F138090390FC007BF90391F8003FF90387E0001497F00
-01157F48481500485A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E
-1507A26C4A5A7F001F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE
-0FD90FF0EBE0002D407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F00
-0F80017E14C049EB07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FC
-A2D8FF80C8FC90C9FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B
-6C6C485A3900FC07C0D93FFFC7FCEB07F8242A7BA828>I<1478EB01FE130314FFA25B14
-FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F
-1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105
-D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A513
-1F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108
-D<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE700
-02EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C713
-80A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>110
-D<EC0FF0ECFFFE903903F01F8090390FC007C049C66C7E013E6D7E01FC6D7E4848804914
-7C0003157E485A000F157F5B121FA2485AA2007F1680A2170048C85AA54B5AA25E5A6C4A
-5A7E4B5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C6C5B6C6C485A3900FC0FE090383FFF80
-D90FF8C8FC292A7BA82D>I<903907F01F80D803FFEB7FE09138E1E1F09138E387F83900
-1FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA513
-7F91C8FCA55B5BA31201487EB512FEA325287EA724>114 D<9138FF81C0010713E39038
-1F807F90397C003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF
-8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA212
-3C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC
-38C01FE0222A7DA824>I<EB0380A4130791C7FCA25BA25BA2133EA2137E13FE12011207
-001FB512C0B6FCA2D801FCC7FCA312035BA512075BA5120F5BA41407001F130E13C0A414
-1E141C1380A26D5AA2000F5B14F03807E1E03801FF80D8007EC7FC1A3978B723>I<01FE
-147F00FFEC7FFF4914FEA20007140300031401A34914FCA4150312074914F8A41507120F
-4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE0913807
-3FFF3803F01E3801FFF826003FE01380282977A733>I E /Fo 27
-123 df<15FCEC03FF91380F87C091383E03E0EC7C0102F813F01301903903F000F8495A
-010F14FC5C495A133F91C7FC4914FE13FEA212015B12034913011207A25B000F15FC1503
-121F5BA21507003F15F890B6FCA33A7FC0000FF05BA2151F16E048C7FCA2ED3FC0A24815
-80157F1600A215FEA24A5AA24A5A007E5C14075D4A5A003E5C141F4AC7FC6C137E5C380F
-81F03807C3E03801FF80D8007EC8FC27417DBF2B>18 D<EE01C0A21603A25FA21607A294
-C7FCA25EA2160EA2161EA2161CA2163CA21638A21678017C167048B491387001FC2603C7
-C0EC03FED8070314F0000F7F000E15E0121C010701011301003816004C137ED8780F163E
-0070EBC003181ED8F01F5C0280151C00001407133F020090C7123C1838495B137E030E14
-7801FE167049011E14F018E0031C13010001EE03C049013C148017070338EB0F006C6C15
-1E03785B5F017E01705B4C5A6D9038F003C0D91F80010FC7FC90390FE0E03E903903FCE1
-F89039007FFFE0020790C8FCEC01C0A21403A25DA21407A292C9FCA25CA2140EA2141EA2
-141CA237527EBE3B>32 D<18E00130ED03F80170ED07FC13F0485A5B1203491503000716
-0148CAFC187C120E121E001C173C003C021C14380038147EA20078177803FE147000705C
-A218F04A4814E000F01601A24BEB03C0A24BEB07800203140F6C0107EC1F00173E6CD91F
-F0137E007C013F5C007E90397FF803F83B7F83FFFE1FF0263FFFFCB5FC4A14C06C496C5B
-6C01C091C7FC6C9038001FFCD801FCEB07E036297FA739>I<EE03F801E0EC0FFE0001ED
-3FFF4991B5128000034A14C04848903903F80FE090C73807E0034891390FC001F0000E15
-00001E021E1300001C5C003C177000385C1570007814F000705C140100F04A14F018E048
-495A17014AC7FC18C01703020EEC07807EEF0F006C011E141E0078163E007C011C5C6C5E
-003F013CEB03F0D81F804A5AD80FE0EC1FC02607FC78EBFF802803FFF807FEC7FC6C90B5
-5A6C6C14F0011F14C0010749C8FC010013F0D901F0C9FCA3495AA31307A25CA2130FA349
-5AA491CAFC130E343C7CA73B>39 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A7989
-19>58 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113801203
-13005A120E5A1218123812300B1C798919>I<ED0180ED03C01507A21680150FA216005D
-A2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2
-141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2
-131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E12
-3EA2123C127CA2127812F8A25A1260225B7BC32D>61 D<49B612C05BA2D90001EB800093
-C7FC5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C8FCA35B5C
-A313035CA313075CA3130F5CA3131F5CA2133FA25CEBFFE0B612E0A32A3E7DBD28>73
-D<49B77E18F818FFD90001D900017F9438003FE04BEC0FF0727E727E14034B6E7EA30207
-825DA3020F4B5A5DA24E5A141F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03FC027FEC
-0FF04BEBFF8092B500FCC8FC5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A1407A284
-13035CA2170F13075C60171F130F5CA3011F033F5B4AEE038018E0013F17071A004A021F
-5B496C160EB600E090380FF01E05075B716C5ACBEAFFE0F03F8041407DBD45>82
-D<EC1F80ECFFE0903903F0707090390FC039F890381F801D90383F000F017E5C5B000114
-07485A48485CA2485A001F140F5E485AA2151F007F5D5BA2153F00FF92C7FC90C7FCA25D
-92387E03805AA215FEEDFC07007E0101140014035E6C0107130E140E3A1F801C7C1C000F
-13783A07C1F03E383A01FFC01FF03A007F0007C029297DA730>97
-D<EB1FC0EA0FFF5CA2EA003FA291C8FCA25BA2137EA213FEA25BA21201A25BA21203A25B
-EC3F800007EBFFE09038F3C1F849C67E01FE137E4848133E49133F5B491480001F141F5B
-5BED3FC0123FA290C7FCA248147F1680127EA215FF00FE15005AA24A5AA25D1403485C14
-07007C5C4A5A5D003C495A003E49C7FC001E137E6C13F8380783F03803FFC0C648C8FC22
-407CBE27>I<EC07F0EC7FFE903801FC0F903907E0038090390FC001C0D93F8013E09038
-7F000701FE131F485A485A16C0485A000F15804990C7FC121F485AA3127F5BA312FF90C9
-FCA6007E1560007F15E01501ED03C06CEC07806DEB0F00001F141E6C6C137C3907E001F0
-3901F01FC06CB5C7FCEB1FF023297DA727>I<EE07F0ED03FF17E0A2ED000FA217C0A216
-1FA21780A2163FA21700A25EA2167EA216FEA25EEC1F80ECFFE1903803F07190390FC039
-F890381F801D90383F000F137E495C00011407485A485A5E485A001F140FA248485CA215
-1F127F495CA2153F12FF90C790C7FCA25DEE038048147EA215FE1607007ED901FC130014
-035E6C0107130E140E3A1F801C7C1C000F13783A07C1F03E383A01FFC01FF03A007F0007
-C02C407DBE2F>I<EC1FE0ECFFFC903803F01E90380FC00F90393F800780D97E0013C049
-1303EA03F8120749130748481480121F49130F003FEC1F00153E397F8001FCEC1FF0B612
-8002F8C7FC90C9FCA45AA616C01501007E1403ED07806CEC0F00151E6C5C6C6C13F83907
-C003E03903E03F802600FFFEC7FCEB3FE022297CA72A>I<143C14FEA21301A314FCEB00
-701400AD137E3801FF803803C7C0EA0703000F13E0120E121C13071238A2EA780F007013
-C0A2EAF01F14801200133F14005B137EA213FE5BA212015B0003130E13F0A20007131EEB
-E01CA2143CEBC0381478147014E013C13803E3C03801FF00EA007C173E7EBC1F>105
-D<ED01C0ED07F0A2150FA316E0ED038092C7FCADEC03E0EC0FF8EC3C3EEC701EECE01FEB
-01C001031480EB0780140049133F010E1400131E131C013C5BA290C7127EA215FEA25DA2
-1401A25DA21403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25C147EA2
-001C13FE007F5BEAFF015C495A495A48485A38F81F80D8783EC8FCEA3FF8EA0FE0245081
-BC25>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C9
-FC16FC49EB03FE92380F0780017EEB3C0FED703F01FE13E0913801C07F9038FC0380EC07
-000001010E14004A131C494890C7FC5C00035BEBF9C0495A01FFC9FC5A14F0EBE3FE9038
-E07F80000FEB1FC06E7EEBC00781001F1303160E1380A2003F151E0207131C010013E0A2
-485DA2007E01031378167000FE01015B15F1489038007F800038023EC7FC29407CBE2F>
-I<D801F0EB0FF0D807FCEB3FFED80F1FEBF01F000E903903C00F80271E0F87007F001C01
-8E1307003C01DC80003813F85CEA781F00705B5CA200F049130F013F5D000090C7FCA216
-1F495D137E163F94C7FC13FE495C167EA200019238FE03804914FCA203011307000303F8
-13005B5FEEF00E0007161E49151C5F1778000F6E6C5A49EC7FC0D80380021FC7FC31297E
-A737>110 D<EC07F8EC7FFE903901FC0F80903907E007E090390FC003F090393F8001F8
-EB7F0001FEEB00FC485A484814FEA2485A120F5B001F15FF485AA2ED01FE127F5BA21503
-00FF15FC90C7FCA2ED07F8A2ED0FF0A2007E15E0007FEC1FC0ED3F80A26CEC7F006C6C13
-FC4A5A6C6C485A3907E00FC02601F03FC7FC3800FFFCEB1FE028297DA72C>I<91381F80
-0C9138FFE01C903903F0707C90390FC0387890391F801CF890383F000F137E4914F00001
-1407485A485A16E0485A121F150F484814C0A3007F141F491480A300FF143F90C71300A3
-5D48147EA315FE007E495A1403A26C13074A5A381F801D000F13793807C1F33901FFC3F0
-38007F03130014075DA3140F5DA3141F5DA2143F147F90381FFFFE5BA2263A7DA729>
-113 D<D801F0EB3F80D807FCEBFFE03A0F1F03C0F0000E90380F00F8391E0F9E03001C13
-BC003CEBF807003813F0A226781FE013F000709038C001C092C7FC5C12F0133F000090C8
-FCA35B137EA313FE5BA312015BA312035BA312075BA3120F5BEA038025297EA729>I<EC
-1FC0ECFFF8903803E03C903807800E90381E0007168049130F49131F153FA201F81400A2
-151C6D90C7FC7FEBFFE014FE90387FFFC06D7F6D13F86D7F13039038001FFE1403140015
-7E000C143E123F487EA248C7123CA25D12FC00F05C0070495A0078495A6C495A260F803E
-C7FC3803FFF838007FC021297CA72B>I<147014FC1301A25CA21303A25CA21307A25CA2
-130FA25CA2007FB512F0B6FC15E039001F8000133FA291C7FCA25BA2137EA213FEA25BA2
-1201A25BA21203A25BA21207EC01C013E01403000F1480A2EBC0071500140E141E5C0007
-13385C3803E1E03801FF80D8003EC7FC1C3A7EB821>I<017E147848B4EB01FC2603C7C0
-13FED807031303000F13E0120E121C0107130100381400167ED8780F143E00705B161EEA
-F01F4A131C1200133F91C7123C16385B137E167801FE14705B16F016E0120149EB01C0A2
-ED0380A2ED0700A20000140E5D6D133C017C5B6D5B90381F03C0903807FF80D901FCC7FC
-27297EA72C>118 D<D901F8133FD907FEEBFFE0903A1E0F83C0F0903A3807C780F89039
-7003CF0301E013FED801C0EBFC071203018013F8D8070015F0EE01C0000E4AC7FCA2001E
-1307A2C75BA2140F5DA3141F5DA3143F92380001C0A34A1303001E1680003F017E130726
-7F80FE14005ED8FF81141ED901DF131CD8FE035C3A7C078F80F03A3C0F07C1E03A1FFC03
-FF802707F0007EC7FC2D297EA734>120 D<137C48B4EC03802603C7C0EB0FC0EA070300
-0F7F000E151F001C168013071238163FD8780F150000705BA2D8F01F5C4A137E1200133F
-91C712FE5E5B137E150113FE495CA2150300015D5BA215075EA2150F151F00005D6D133F
-017C137F017E13FF90393F03DF8090380FFF1FEB01FC90C7123F93C7FCA25DD80380137E
-D80FE013FE001F5C4A5AA24848485A4A5A6CC6485A001C495A001E49C8FC000E137C3807
-81F03803FFC0C648C9FC2A3B7EA72D>I<02F8130ED903FE131ED90FFF131C49EB803C49
-EBC0784914F090397E07F1E09038F800FF49EB1FC049EB07800001EC0F006C48131E90C7
-5A5D5D4A5A4A5A4A5A4AC7FC143E14785C495A495A495A49C8FC011E14E05B5B49130148
-48EB03C0485AD807F8EB078048B4131F3A1F87E07F00391E03FFFE486C5B00785CD87000
-5B00F0EB7FC048011FC7FC27297DA72A>I E /Fp 18 121 df<157815FC14031407141F
-14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>
-49 D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F
-0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC
-4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3F
-A24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C
-6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D
-4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903A
-FFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261
->67 D<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>73
-D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90
-C7000313F0DA7FFC02007F902601FFF0ED3FFE49496F7E49496F7F49496F7F4990C96C7F
-4948707F4948707F01FF854A177F48864849717EA24849711380A2481BC04A83481BE0A2
-4A83481BF0A3481BF8A291CB7EA3B51AFCAF6C1BF8A26E5FA36C1BF0A36C6D4D13E0A36C
-1BC06E5F6C1B806E5F6CDB01FE16006C6D902607FF80495A4C13E06C6D013F6D495A017F
-91267F03F85C6D6C90277C00FC015B6D6C49D97E035B6D01806E485B6D6D48D91F8F5B6D
-01E0039F90C7FC6D01F06EB45A6DD9FCF85DDA3FFF6E13F0020F6D4913C0020301FF90B5
-C8FC020091B512FC031F180C0303181EDB001FEBE3FE93C7EA01FF74133E74137E7413FE
-F2F8077290B5FC1CFCA285A21CF8A2851CF07314E0A27314C0731480731400735B963800
-7FF8F21FE0576A79D265>81 D<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F
-060113FE727F737F737F85737F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A
-06035B060F13F095B512C092B8C9FC19F819E019F89226F0000313FE9439007FFF80727F
-727F727F727F727F8684A28684A787A71D1C75133EA38575137E73157C7513FC731401B8
-6C6D9038F803F807039038FE07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164
->I<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB3F
-FC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC01
-071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA45E
-A26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC014
-F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97
-D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC
-491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5B
-A312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D
-147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E0
-33387CB63C>99 D<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC01
-0315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980485B83
-485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5
-FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13
-F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F90
-3A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7FC48
-17E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14
-037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0F
-FFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC0203B5FC
-020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A495AA249
-5AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB512FEA5
-2E547CD329>I<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCAD
-EB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>105 D<D93FF0EB1FFCB591B512C0
-030314F0030F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DA
-F7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>110
-D<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D
-6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F18
-80A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D49
-5B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8
-FC020113E03A387CB643>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF8
-9139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE
-0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7
-FC120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F01F0
-91C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15
-C01300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D
-141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807
-148048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F131F
-133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F00
-15806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF89138
-01FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01
-E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091
-C7FC42377BB54B>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D
-5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB
-8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01
-FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F49
-5A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>120
-D E /Fq 78 122 df<16E04B7EA24B7EA24B7EA24B7EA2ED1DFFA203387FA29238787FC0
-15709238F03FE015E002016D7E15C002036D7E158002076D7E15004A6D7E140E021E6D7E
-141C023C6D7F143802786E7E147002F06E7E5C01016F7E5C01036F7E5C01076F7E91C8FC
-496F7E130E011E6F7E131C013C6F7F13380178707E137001F0707E5B0001717E5B000371
-7E5B0007717E90CAFC48717E120E001E717E001FBAFC481980A24819C0A2BB12E0A24341
-7CC04C>1 D<913801FFC0021F13FC9139FF007F80D903F8EB0FE0D90FF0EB07F8D91FC0
-EB01FCD97F806DB4FC49C86C7E48486F7E00038348486F7E000F8349150F001F83491507
-003F83A348486F7EAA6C6C4B5AA3001F5FA26C6C4B5AA200075F6D151F00035FA26C6C4B
-5A00005FA2017F4BC7FC6D157EA26D6C5C010F5DA26D6C495A00E0EF0380010315E0D870
-019238C007006E130301001580A36C0160EC000E003C017049131E263FFFF0ECFFFEA36C
-5FA339407CBF42>10 D<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF0
-3FD907F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE
-6D91C7FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>
-I<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13
-7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9
-FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB
-1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3
-2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C
-D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92
-C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB
-7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<EA01FC127FA3120712031201B3AC487E
-B512F0A314287DA71A>16 D<B7FCA320037AB52D>22 D<121EEA7F8012FF13C0A213E0A3
-127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19
->39 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2
-485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37E
-A27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00
-E014701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F137813
-7CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA3
-1480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A
-5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FCB3A91506
-3C3C7BB447>43 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A31201
-1380120313005A120E5A1218123812300B1C798919>I<B512FEA617067F961E>I<121EEA
-7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>I<ED0180ED03C01507A21680150FA216
-005DA2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7
-FCA2141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC
-5BA2131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA212
-1E123EA2123C127CA2127812F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03
-F090387C00F849137C48487F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A2
-90C712034815F8A64815FCB3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6C
-EB1F80000315006C6C133E6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC
-2D>I<EB01C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A3
-1D3D78BC2D>I<EB07FC90383FFF8090B512E03903F01FF83907C007FC390F0001FE001E
-6D7E001C1580003CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E015
-3FA216C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A
-495A495A49C71270133E133C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FC
-A3243D7CBC2D>I<EB07FC90383FFF809038F80FE03901E003F839078001FCD80F007F00
-0E6D7E001E1580D81F80137F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA2
-4A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7F
-C0A216E0153FA216F0A2120C123F487E487EA316E0A249137F6CC713C01278EDFF807E6C
-4913006C495A3907C007FC3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<15
-0E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01C0
-A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8
-FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC
-5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F849
-6C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416
-E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A
-3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E9038
-0FC00F90391F000780133E017EEB1FC049133F4848137F12035B12074848EB3F80ED1F00
-001F91C7FC5BA2123FA3485AA214FE903887FF8039FF8F07E090389C01F09038B800FC01
-B0137E13F0497F16804914C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A2
-6C6C1480A20007EC7F006C6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FC
-C7FC243F7CBC2D>I<1238123C123F90B612FCA316F85A16F016E00078C712010070EC03
-C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2
-147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD
-2D>I<EB03FC90381FFF8090387C07E09038F001F83901E0007C48487F48487F48C7FCED
-0F80121E16C0003E1407A4123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF
-80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E39
-03E01FFF48486C1380260F800313C048487E489038007FE0003E143F007E141F007CEC0F
-F01507481403A31501A46C15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C13
-3ED807F05B3901FC03F86CB512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF
-90387E07C09038FC03F048486C7E48486C7E4848137C000F147E4848137F81003F15805B
-007F15C0A2151F12FF16E0A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF
-000313013900F8039F90387E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F
-801400487E486C13FEA24A5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803
-FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3
-121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F
-80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A3120313005A
-1206120E120C121C5A1230A20A3979A619>I<007FB912E0BA12F0A26C18E0CDFCAE007F
-B912E0BA12F0A26C18E03C167BA147>61 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7
-A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA3
-4A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C
-153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A3
-3D417DC044>65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF
-7FC0EF3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03
-FCEE0FF8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018
-F8170F18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C
-90380FFE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF
-801E913A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE014
-0749481403495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B18
-0E127FA349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D1638
-6C6C1678000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D9
-03FE143E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF
-42>I<B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084
-717E717E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF
-19004D5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8
-FC3C3E7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A3
-1870A41838161CA41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2161C
-A21807A3180E93C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486CEB01
-FFB912F0A3383E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707
-A21703A31701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115
-001678A21638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE
-131C021F9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91F
-E0141F4948140F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F
-173CA2485AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC
-123FA27F121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED9
-03FEEC3C7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF0
-3C427BBF47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FC
-A30280C7120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EB
-F000EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<B612F8A3000101E0C9FC38007F80
-B3B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C133FB8FCA3313E7DBD39>
-76 D<B500C093383FFFF0A300016D93387FF800D8007F18E0D977F016EFA3D973F8ED01
-CFA2D971FCED038FA3D970FEED070FA26E150E80A26E6C141CA36E6C1438A26E6C1470A3
-6E6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A2037F130EA36F6C5AA26F6C5AA3
-6F6C5AA25FED07F0A2923803F9C0A36FB45AA26F90C7FCA213F8486C147ED807FFEF3FF8
-B500F8013C011FB512F0A34C3E7DBD53>I<B56C91B512F88080D8007F030713006EEC01
-FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E
-7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE
-0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487ED8
-07FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E
-0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E0001
-8349150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E049163F
-A300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A00
-035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03
-F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EE
-FF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A2
-18F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9
-FCB3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F00
-0FE0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248486F7E
-49150300038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249163FA2
-00FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F80
-5B6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F819038
-061FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE007
-E091271FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF03
-18FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FCEEFF80
-0001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017
-FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC070
-7E707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB600
-C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC130C90
-391FFF801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC4848130F001F140748
-C71203003E1401007E1400A2007C157C12FCA2163CA36C151CA27EA26C6C14007F7FEA3F
-F8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F0207
-13F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C
-157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE
-00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393F
-C0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E
-4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80
-EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D
-6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF0
-3D407DBD44>I<B500FE017FB5D88007B5FCA3000301C0010101E0C713F86C90C849EC3F
-E07148EC0F807E7215006E143F017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2
-933801C3FC6E18F001076104037F6E0281140101036104077F17006D6C4D5AA2040EEB7F
-806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0161E023F171C047814F0DBE070
-010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01
-FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B81037C153EA20378151E0338
-151C58407EBD5D>87 D<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>91
-D<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>93 D<1318133C137E13FF3801E7
-803803C3C0380781E0380F00F0001E137848133C48131E48130F00601306180D76BD2D>
-I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79BD19>I<EB0FF8EBFFFE3903F01F80
-39078007E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103
-B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485AA248C7FCEE038012FEA315FF
-A3007F5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C0FFE3A01FFF807FC3A003FC0
-01F0292A7DA82D>97 D<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E0
-9039FDE001F09039FFC000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717
-F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003
-F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00
-F8017C131E4848131F4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FC
-A290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C13
-1E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715
-031501B114FF010713E190381F80F990387E003D49131FD803F81307485A491303484813
-01121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E
-6C6C497ED8007C017913F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB
-01FE90380FFFC090383F03F09038FC01F848486C7E4848137E48487F000F158049131F00
-1F15C04848130FA2127F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E15
-01000F15C06C6C13036DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE00100
-90C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F
-811401137FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C
->I<167C903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E0
-00FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803
-E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E
-6C15E06C810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E
-007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0
-293D7EA82D>I<EA01FC12FFA3120712031201B1EC01FE913807FFC091381E07E0913878
-03F09138E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FC
-A32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712
-031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB007814
-00AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F0138
-7C03F0381E07C0380FFF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292
-B51280A392383FFC0016E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E
-13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA2
-82486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487E
-B512F8A3153F7DBE1A>I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0
-913B7803F03C01F80007903BE001F87000FC2603F9C06D487F000101805C01FBD900FF14
-7F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA7
-4C>I<3901F801FE00FF903807FFC091381E07E091387803F000079038E001F82603F9C0
-7F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>
-I<14FF010713E090381F81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0
-000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F
-15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC9038
-0FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE0
-03F03A03FFC001FC6C496C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE
-0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780F
-C0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90
-381F80F090397F00387C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501
-485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E1379
-90383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F8
-07E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300
-A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F00
-3E1307003C1303127C0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE
-6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E
-15F07E14016C14E06CEB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>
-I<131CA6133CA4137CA213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0
-A912009038FE01C0A2EB7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801
-FC14FE00FF147FA3000714030003140100011400B3A51501A31503120015076DEB06FF01
-7E010E13806D4913FC90381FC078903807FFE00100903880FE002E297DA733>I<B539E0
-0FFFE0A32707FE000313006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2
-ECC007011F91C7FCA290380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2EC
-FEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A329
-0FFE003FE00013C06C486D48EB3F806C4817006D010F141E00016F131C15076D163C0000
-4A6C1338A2017F5E4B7E151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90F
-E0017F5BEDE03F02F0140701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02
-FF14DE6D15FCED00076D5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>
-I<B539F01FFFE0A30003D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49
-C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E8114
-7BECF1FC903801E1FEECC0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC
-80486C80000F4A7EB539803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE00031300
-6C48EB01FC6F5A00015D7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A01
-0F130EA26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8
-FCA2140EA2141E141C143C1438A2147800181370127EB45BA2495AA248485AD87E07C9FC
-EA780EEA3C3CEA1FF8EA07E02B3A7EA630>I E /Fr 35 121 df<EDFFF8020F13FF027F
-8049B612E001079038C01FF090390FFE0007D91FF8497ED93FE0131F4948497E13FF5C5A
-91C7FCA2705A705AEE03C093C8FCA6EE03FCB8FCA50001903880001F160FB3AB007FD9FE
-03B512F0A534407EBF3A>12 D<B612E0A91B097F9823>45 D<EA0FC0EA1FE0EA3FF0EA7F
-F8EAFFFCA6EA7FF8EA3FF0EA1FE0EA0FC00E0E798D1D>I<140F143F5C495A130F48B5FC
-B6FCA313F7EAFE071200B3B3A8B712F0A5243C78BB34>49 D<903803FF80013F13F890B5
-12FE00036E7E4881260FF80F7F261FC0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F
-1380A46C5A6C5A6C5A0007C7FCC8FC4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7
-FC5D4A5AEC1FE04A5A4A5A9139FF000F80EB01FC495A4948EB1F00495AEB1F8049C7FC01
-7E5C5B48B7FC485D5A5A5A5A5AB7FC5EA4293C7BBB34>I<903801FFE0010F13FE013F6D
-7E90B612E04801817F3A03FC007FF8D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C
-48133FD801F05CC8FC4B5A5E4B5A4A5B020F5B902607FFFEC7FC15F815FEEDFFC0D90001
-13F06E6C7E6F7E6F7E6F7E1780A26F13C0A217E0EA0FC0487E487E487E487EA317C0A25D
-491580127F49491300D83FC0495A6C6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7
-FC010313E02B3D7CBB34>I<ED01F815031507A2150F151F153FA2157F15FF5C5CA25C5C
-EC1FBFEC3F3F143E147C14FCEB01F814F0EB03E01307EB0FC0EB1F801400133E137E5B48
-5A5B485A1207485A5B48C7FC5A127E5AB812F8A5C8387FF800AA49B612F8A52D3C7DBB34
->I<16FCA24B7EA24B7EA34B7FA24B7FA34B7FA24B7FA34B7F157C03FC7FEDF87FA20201
-80EDF03F0203804B7E02078115C082020F814B7E021F811500824A81023E7F027E81027C
-7FA202FC814A147F49B77EA34982A2D907E0C7001F7F4A80010F835C83011F8391C87E49
-83133E83017E83017C81B500FC91B612FCA5463F7CBE4F>65 D<922607FFC0130E92B500
-FC131E020702FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C0
-1300013F90C8127F4948151FD9FFF8150F48491507485B4A1503481701485B18004890CA
-FC197E5A5B193E127FA349170012FFAC127F7F193EA2123FA27F6C187E197C6C7F19FC6C
-6D16F86C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D6CED3F80010F01C0ECFF00
-6D01F8EB03FE6D9039FF801FFC010091B55A023F15E002071580020002FCC7FC030713C0
-3F407ABE4C>67 D<B812F8EFFF8018F018FC18FF26003FFCC76C13C005077F05017F716C
-7E727E727E727E721380A27213C0A27213E0A21AF084A21AF8A41AFCA5197FA319FFA51A
-F8A41AF0A2601AE0A24E13C0A24E13804E1300604E5A4E5A4D485A050713E0057F5BBA5A
-4EC7FC18F818C005F8C8FC463E7DBD50>I<BAFCA4198026003FFEC7123F170717018318
-3FA2181FF00FC0A31807EE07C0A3F003E0A3160F95C7FC161F163F16FF91B6FCA54AC6FC
-163F161F040F147CA2160719F8A593C71201A219F01803A21807A2180FF01FE0183F18FF
-1703173FBAFCA219C0A33E3D7DBC45>I<B6051FB512C06F5EA26F5EA2D8003F97C7FC6F
-16F7A26E6CED01E7A26E6CED03C7A36E6CED0787A26E6CED0F07A26E6C151EA36E6D143C
-A26E6D1478A26E6D14F0A26F6CEB01E0A36F6CEB03C0A26F6CEB0780A26F6CEB0F00A36F
-6C131EA26F6D5AA26F6D5AA26F6D5AA393387FF1E0A293383FFBC0A270B45AA37090C7FC
-A2705AA2705AB600C0031FB612C0A2705AA2705A5A3E7CBD63>77
-D<ED3FFF0203B512F0021F14FE027F6E7E902701FFF80713E00107903980007FF84948C7
-EA1FFCD93FFC6EB4FC49486E7F49486E7F48496E7F4A8048496F7E488491C9123F488448
-48707EA34848707EA3007F1980A24982A200FF19C0AD007F1980A26D5EA2003F1900A36C
-6C4C5AA26C6C4C5AED07F06C9026801FFC495A6C4AB45C6E48EB80FF6C9027E07E0FC15B
-6C9126F807E15B90287FF0F003E35BD93FFC6DB5C7FCD91FFE6D5B902607FFF814F80101
-D9FE0313E06D90B65A021F4AC7124002036E14E0DA003FEB3F8092C77FF0E001F0F80F71
-B5FCA21AC083A21A8083A271140061715B715B725AF01FC043517ABE4F>81
-D<B87E17FCEFFF8018F08428003FFC000113FE9338003FFF050F7F717F717FA2858385A7
-61A25F61614D5B4D90C8FCEF3FFE4CB45A91B712F018C04DC9FC717E9126FC000F7F0401
-13F0707F717EA2717EA2717EA685A6F207C019C0A271140F07E01380B76DEBF01F719038
-FC3F007190B5FC716C5B061F13F8CB000113E04A3F7DBD4E>I<903807FFC0013F13F848
-B6FC48812607FE037F260FF8007F6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC
-153F91B5FC130F137F3901FFFE0F4813E0000F1380381FFE00485A5B485A12FF5BA4151F
-7F007F143F6D90387BFF806C6C01FB13FE391FFF07F36CEBFFE100031480C6EC003FD91F
-F890C7FC2F2B7DA933>97 D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80
-DAFF8113F09139FC003FF802F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0
-A25E1880A218005E6E5C6E495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91
-C7FCD9E00713FCC7000113C033407DBE3A>I<EC7FF00107B5FC011F14C0017F14E09039
-FFF01FF0489038800FF848EB001F4848EB3FFC120F485AA2485AA2007FEC1FF849EB0FF0
-ED03C000FF91C7FCAB127F7FA3003F153E7F001F157E6C6C147C6C6C14FC91388001F86C
-9038C003F0C69038F81FE06DB512C0011F14800107EBFE009038007FF0272B7DA92E>I<
-EE07F8ED07FFA5ED003F161FAFEC7FF0903807FFFE011FEBFF9F017F14DF9039FFF01FFF
-48EBC00348EB00014848EB007F485A001F153F5B123FA2127F5BA212FFAA127FA37F123F
-A26C6C147F120F6D14FF6C6C01037F6C6D48EBFFE06CEBF03F6C6CB512BF6D143F010713
-FC010001E0EBE00033407DBE3A>I<ECFFF0010713FE011F6D7E017F809039FFE07FE048
-9038801FF048496C7E48486D7E48486D7E121F491301003F81A2485A6F1380A212FFA290
-B7FCA401F0C9FCA5127FA27F123FEE0F806C7E161F6C6C15006C6C5C6C6D137E6C9038E0
-01FC6C9038F80FF8013FB55A6D14C0010391C7FC9038007FF8292B7DA930>I<EC07FE91
-387FFF8049B512C0010714E090390FFE3FF0EB1FF090393FE07FF8EB7FC013FF1480A248
-9038003FF0ED1FE0ED0FC092C7FCAAB612E0A500010180C7FCB3AC007FEBFF80A525407D
-BF20>I<903A03FF8007F0013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC
-007FC34848EB3FE1001FEDF1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C
-6C495A3A03FF83FF8091B5C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6
-FC16F016FC6C15FF17806C16C06C16E01207001F16F0393FE000034848EB003F49EC1FF8
-00FF150F90C81207A56C6CEC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF
-800F13006C90B55AC615F8013F14E0010101FCC7FC2F3D7DA834>I<EA01F8487E487E48
-7E481380A66C13006C5A6C5A6C5AC8FCA913FFB5FCA512077EB3ABB512F8A515407CBF1D
->105 D<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5AED07F0ED1FE04B5A4B5A
-4BC8FCEC03FC4A5A4A5A141FEC7FF84A7EA2818102E77F02C37F148102007F826F7E6F7E
-151F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37>107
-D<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B50107
-13F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013EDAF9
-F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03FEBFF
-80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F000701
-3C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>I<EC7FF0903803FF
-FE011FEBFFC0017F14F09039FFE03FF8489038800FFC3A03FE0003FE48486D7E000F1680
-48486D13C0A2003F16E049147F007F16F0A400FF16F8AA007F16F0A46C6CECFFE0A2001F
-16C06C6C491380A26C6C4913003A03FF800FFE6C9038E03FFC6C6CB512F0011F14C00107
-91C7FC9038007FF02D2B7DA934>I<01FFEBFFE0B5000713FC021FEBFF80027F80DAFF81
-13F09139FC007FF8000301F06D7E4A6D7E4A130F4A6D7E1880A27013C0A38218E0AA4C13
-C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC028713
-FC028113C00280C9FCACB512FEA5333B7DA83A>I<DA7FE01378902607FFFC13F8011FEB
-FF01017F14819039FFF81FC3489038E007E74890388003F74890380001FF48487F001F15
-7F5B003F153F5B127F161FA2485AAA127F7FA36C6C143F167F121F6C6C14FF6D5B6C6D5A
-6CEBC00F6CEBF03F6C6CB512BF6DEBFE3F010713F8010013C091C7FCAC030FB512E0A533
-3B7DA837>I<3901FE01FE00FF903807FF804A13E04A13F0EC3F1F91387C3FF8000713F8
-000313F0EBFFE0A29138C01FF0ED0FE091388007C092C7FCA391C8FCB3A2B6FCA525297D
-A82B>I<90383FFC1E48B512BE000714FE5A381FF00F383F800148C7FC007E147EA200FE
-143EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14F06C806C806C806C80C61580131F13
-00020713C014000078147F00F8143F151F7EA27E16806C143F6D140001E013FF9038F803
-FE90B55A15F0D8F87F13C026E00FFEC7FC222B7DA929>I<EB07C0A5130FA4131FA3133F
-137FA213FF5A1207001FEBFFFEB6FCA40001EBC000B3151FA96CEBE03EA2017F137EECF8
-FC90383FFFF86D13F0010713E001001380203B7EB929>I<D9FF80EB0FF8B5EB0FFFA500
-07EC007F6C153FB3A5167FA316FF6C5C4B7F6C903AC007DFFFE09138F01F9F6DB5121F6D
-13FE010F13F8010101E0EBE000332A7CA83A>I<B53CFC3FFFFC03FFFEA50003D9800090
-39C0000F806E161F6C037F15006E496C5B6C183E836E48157E017F177C6E486D13FC013F
-02EF5C83DAFC071401011F02C75CDAFE0FEBFE03010F02835C17FFDAFF1F14076D02015C
-03BF148F6DD9BE005C18CF03FE14DF6D49017F90C7FC18FF6D496D5AA36E486D5AA26E48
-6D5AA36E486D5AA26E486D5A47287EA74C>119 D<B5D8FC03B51280A5C69026E0007FC7
-FC6E13FE6D6C5B6D6C485A6D6C485A010F13076D6C485AED9FC06DEBFF806D91C8FC6D5B
-6E5AA2143F6E7E140F814A7F4A7F4A7F02FE7F903801FC7F49486C7E02F07F49486C7E49
-486C7E011F7F49486C7FD97F008001FE6D7FB5D8C007EBFFC0A532287EA737>I
-E /Fs 8 119 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>58
-D<91B712F018FF19E002009039C0003FF86F48EB07FC03FFEC01FEF0007F93C8EA3F801A
-C0F11FE05C5D1AF0A214035DA30207EE3FE05DA2F17FC0020F17804B15FF1A004E5A021F
-4B5A4B4A5AF00FE04E5A023F037FC7FC4BEB03FCEF1FF092B612804A4AC8FC923980007F
-80EF0FC0EF07F002FF6E7E92C77F1701845B4A1400A2170113035CA2170313075CA24D5A
-130F5CA3011F18185CA2013F4C13381A304A6F1370D9FFE0020314E0B600E0ED01C00501
-EB0380943900FE0F00CBEA3FFEF007F045467CC34A>82 D<EC07F8EC3FFE903901FC0780
-903903F003C090390FC001E090381F8000017FC7FC01FE1470485A484814F0000715E05B
-000F1401484814C015034848EB0780ED1F0015FC007FEB1FF090B5128002F0C7FC0180C8
-FC12FF90C9FCA55AA41618007E15381670007F15E06CEC01C0ED03806CEC07006C6C131E
-6D13383907E001F03901F00FC026007FFEC7FCEB1FF0252D7CAB2D>101
-D<141E143F5C5CA3147E143891C7FCAE133EEBFF803801C3C0380781E0380601F0120E12
-1CEA180312381230A2EA700700605BA2EAE00F00C05BEA001F5CA2133F91C7FCA25B137E
-13FE5BA212015BEC03800003140013F01207495A1406140E140CEBC01C141814385C0003
-5BEBE1C0C6B45A013EC7FC19437DC121>105 D<01F8EB03FCD803FEEB1FFFD8071F9038
-7C0FC03B0E0F80E007E03A0C07C3C003001CD9C7007F001801CE1301003801DC80003013
-D8EB0FF800705B00605BA200E0491303D8C01F5D5C12001607013F5D91C7FCA2160F495D
-137E161F5F13FE49143F94C7FC187000014B136049147E16FE4C13E0000317C049150104
-F81380170300071700495D170EEE781C000FED7C3849EC1FF0D80380EC07C0342D7DAB3A
->110 D<EC03FCEC3FFF9138FE07C0903903F003F049486C7E90391FC000FC49C7127C49
-147E01FE147F484880485A000716805B120F485AA2485A167F127F5BA216FF00FF160090
-C8FCA25D5E5A4B5AA25E15075E4B5A151F007E5D4B5A6C4AC7FC15FE391F8001F86C6C48
-5A3907E00FC03901F03F802600FFFCC8FCEB1FE0292D7CAB2F>I<EC0FF0EC7FFE903901
-F00F809039078001C049C712E0011E14605BED01F0491307A201F8EB0FE05B7FED03806D
-90C7FC7F7F14F86DB47E15E06D13F86D7F01077F1300EC07FF140081ED3F80151F120E00
-3FEC0F00487EA25D48C7121EA200FC5C12605D00705C6C495A6CEB07C0260F803FC7FC38
-03FFFC38007FE0242D7BAB2E>115 D<013E140ED9FF80EB3F802603C3C0137F380703E0
-380601F0120E121CD81803143F0038151F0030150FA2D87007140700605BA2D8E00F1500
-00C0497FEA001F4A5B1606133F91C7FC160E49140C137EA2161C01FE14185B1638163016
-704848146016E05E150100005D15036D49C7FC1506017C130E017E5B6D137890380F81E0
-6DB45AD900FEC8FC292D7DAB2F>118 D E /Ft 14 118 df<121FEA3F80EA7FC0EAFFE0
-A5EA7FC0EA3F80EA1F000B0B6C8A33>46 D<EC07F8EC3FFF91B57E010314E0010F804980
-90383FFC0F90397FE003FC9038FF80014890C77ED803FC147E49EB7E7F0007903801FFBF
-D9F00713FF4848481480495A001F5B018013C3003FEB7F810100010013C002FE137F4849
-133FEA7E014A131FA212FEEAFC034A130FA96E131FD8FE011580127EA26E133FD87F0015
-006C6D5B027F13FE01801381001F90383FC3FC01C013FF000F6D5B6D6C5B6C6C6C5BD9F8
-0113800003D9007EC7FC6D9038000F806CB4EC1FC06C6D133FD97FE013FF90263FFC0713
-806DB612006D5C010314F801005C023F1380DA07FCC7FC2A3F7CBD33>64
-D<EB1FFC90B57E000314E048804814FC48809038F007FFEBE0016E7F153F6C48806C4813
-1FC87F150FA5EC0FFF49B5FC131F137F48B6FC0007140F4813C0381FFC00EA3FF0EA7FC0
-5B48C7FC5AA56C141F7E6D137FD83FE0497ED9F807EBFFF06CB712F87E6C14F36C14C1C6
-9138003FF0D91FF090C7FC2D2E7BAC33>97 D<EA3FFC487E12FFA2127F123F1200ABEC01
-FE91380FFFC04A13F0027F7F91B512FE90B7FCECFE07DAF800138002E0EB7FC04AEB3FE0
-4A131FEE0FF091C7FC16074915F81603A217FC1601A9160317F8A26D140717F06E130F17
-E06E131FEE3FC06E137F9139F801FF80DAFE07130091B55A495C6E5BD97E3F13E0D93C0F
-138090260003FEC7FC2E3E7FBC33>I<ED7FF84B7E5CA280157F1501ABEB01FF010713C1
-011F13F1017F13F990B6FC5A4813813907FE003FD80FF8131F49130F4848130749130312
-3F491301127F90C7FCA25A5AA97E7E15037F123F6D1307A26C6C130F6D131F6C6C133F6C
-6C137F2603FF81B512F091B612F8C602FD13FC6D13F96D01E113F8010F018013F0D901FE
-C8FC2E3E7DBC33>100 D<ECFF80010713F0011F13FC497F90B6FC48158048018013C03A
-07FE003FE001F8EB0FF048481307484814F8491303003F15FC491301127F90C7FC16FE15
-005A5AB7FCA516FC48C9FC7E7EA36C7E167C6C6C14FE7F6C7E6D13016C6CEB03FC6CB413
-0F6C9038C03FF86C90B512F06D14E06D14C0010F1400010313FC9038007FE0272E7BAC33
->I<D901FEEB1FE0903A0FFFC0FFF0013F01F313F84990B512FC90B7FC5A48010313E126
-07FC00EB80F849017F1360484890383FC00049131FA2001F8149130FA66D131F000F5DA2
-6D133F6C6C495A6D13FF2603FF0390C7FCECFFFE485C5D5DD80FCF13C0D981FEC8FC0180
-C9FCA27FA26C7E7F90B512FC6CECFFC06C15F0000715FC4815FF4816809038E000074848
-9038007FC090C8EA1FE048150F007E150700FE16F0481503A56C1507007E16E0007F150F
-6C6CEC1FC001E0147FD81FF8903801FF80270FFF801F13006C90B55A6C5DC615F0013F14
-C0010F91C7FC010013F02E447DAB33>103 D<EA3FFC487E12FFA2127F123F1200AB4AB4
-FC020713C0021F13F0027F7F91B5FC90B67EED07FEECF801ECF0004A7F4A7F5CA291C7FC
-A35BB3A43B3FFFF80FFFFC486D4813FEB56C4813FFA26C496C13FE6C496C13FC303D7FBC
-33>I<383FFFFC487FB5FCA27E7EC7FCB3B3AD003FB612F84815FCB712FEA26C15FC6C15
-F8273D7ABC33>108 D<4AB4FC263FFC0713C0267FFE1F13F000FF017F7F91B5FC6CB67E
-6CEC07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF80FFFFC486D4813FE
-B56C4813FFA26C496C13FE6C496C13FC302C7FAB33>110 D<EB01FE90380FFFC0013F13
-F0497F90B57E488048EB03FF2607FC0013804848EB7FC049133F4848EB1FE049130F4848
-EB07F0A2007F15F890C71203A300FEEC01FCAA6C14036C15F8A26D1307003F15F06D130F
-A26C6CEB1FE06D133F6C6CEB7FC06C6CEBFF802603FF0313006CEBFFFE6C5C6D5B6D5B01
-0F13C0D901FEC7FC262E7AAC33>I<ED03FE3B7FFF801FFF80B5D8C07F13E002C1B5FC02
-C314F014C76C9038CFFE0F39001FDFF09139FFC007E092388003C092C8FC5C5C5CA25CA2
-5CA35CB2007FB512FEB7FCA46C5C2C2C7DAB33>114 D<90381FFE0F90B5EA8F80000314
-FF120F5A5AEBF007387F800190C7FC00FE147F5A153FA37E007FEC1F0001C090C7FCEA3F
-F8EBFFC06C13FF6C14E0000314F8C680011F13FF01001480020713C0EC007FED1FE0007C
-140F00FEEC07F01503A27EA27F15076D14E06D130F6DEB3FC09038FE01FF90B612801600
-00FD5C00FC14F8D8F83F13E0D8780790C7FC242E79AC33>I<D83FFCEB1FFE486C497E00
-FF5CA2007F80003F800000EC007FB3A75EA25DA26D5B90387F800FDAE03F13FC6DB612FE
-17FF6D806D01FE13FE01039038F83FFC010001C0C7FC302C7FAA33>117
-D E /Fu 15 112 df<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B
-13F85B12015B1203A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127C
-A3127EA4123EA2123FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB07
-80EB03C01301EB00E014701438141C140C166476CA26>40 D<12C07E12707E7E7E120F6C
-7E6C7EA26C7E6C7EA21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0
-A21301A214F8A41300A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80
-A3EB1F00A2131E133E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A1664
-7BCA26>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>46
-D<143014F013011303131F13FFB5FC13E713071200B3B3B0497E497E007FB6FCA3204278
-C131>49 D<14FF010713E0011F13F890387F00FE01FC133FD801F0EB1F804848EB0FC049
-EB07E00007EC03F048481301A290C713F8481400A47FA26D130116F07F6C6CEB03E013FC
-6C6CEB07C09039FF800F806C9038C01F006CEBF03EECF87839007FFEF090383FFFC07F01
-077F6D13F8497F90381E7FFFD97C1F1380496C13C02601E00313E048486C13F000079038
-007FF84848EB3FFC48C7120F003EEC07FE150148140016FF167F48153FA2161FA56C151E
-007C153EA2007E153C003E157C6C15F86DEB01F06C6CEB03E06C6CEB07C0D803F8EB1F80
-C6B4EBFF0090383FFFFC010F13F00101138028447CC131>56 D<14FF010713E0011F13F8
-90387F80FC9038FC007E48487F4848EB1F804848EB0FC0000FEC07E0485AED03F0485A16
-F8007F140190C713FCA25AA216FE1500A516FFA46C5CA36C7E5D121F7F000F5C6C6C1306
-150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF80FE903801FE0090C8FC150116FCA4
-ED03F8A216F0D80F801307486C14E0486C130F16C0ED1F80A249EB3F0049137E001EC75A
-001C495A000F495A3907E01FE06CB51280C649C7FCEB1FF028447CC131>I<121EEA7F80
-A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2B78
-AA1B>I<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA3ED30FFA203707FED607FA203E07F
-EDC03FA2020180ED801FA2DA03007F160FA20206801607A24A6D7EA34A6D7EA34A6D7EA2
-0270810260147FA202E08191B7FCA249820280C7121FA249C87F170FA20106821707A249
-6F7EA3496F7EA3496F7EA201788313F8486C83D80FFF03037FB500E0027FEBFFC0A34247
-7DC649>65 D<B6D8C003B6FCA3000101E0C70007138026007F80913801FE00B3A991B7FC
-A30280C71201B3AC2601FFE0913807FF80B6D8C003B6FCA340447CC349>72
-D<49B41303010FEBE007013F13F89039FE00FE0FD801F8131FD807E0EB079F49EB03DF48
-486DB4FC48C8FC4881003E81127E82127C00FC81A282A37E82A27EA26C6C91C7FC7F7FEA
-3FF813FE381FFFE06C13FE6CEBFFE06C14FC6C14FF6C15C0013F14F0010F80010180D900
-1F7F14019138001FFF03031380816F13C0167F163F161F17E000C0150FA31607A37EA36C
-16C0160F7E17806C151F6C16006C5D6D147ED8FBC05CD8F9F0495AD8F07C495A90393FC0
-0FE0D8E00FB51280010149C7FC39C0003FF02B487BC536>83 D<EC7F80903803FFF09038
-0FC07C90383F000F01FCEB03804848EB01C00003140F4848EB1FE049133F120F485AA248
-5AED1FC0007FEC070092C7FCA290C9FC5AAB7E7FA2123F16307F001F15706C6C146016E0
-6C6C14C06C6C13010001EC03806C6CEB0700013F131E90381FC078903807FFF001001380
-242E7DAC2B>99 D<167FED3FFFA315018182B3EC7F80903803FFF090380FC07C90383F00
-0E017E1307496D5AD803F87F48487F5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2
-123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F011C13FE90
-380FC0F8903803FFE09026007F0013002F467DC436>I<EB01FE903807FFC090381F03F0
-90387E00FC49137E48487F485A4848EB1F80000F15C049130F121F484814E01507A2007F
-15F090C7FCA25AA390B6FCA290C9FCA67EA27FA2123F16306C7E1670000F15606D14E06C
-6C14C0000314016C6CEB03806C6CEB0700013E131E90381F80F8903803FFE0010090C7FC
-242E7DAC2B>I<EA01FC12FFA3120712031201B3B3B3A5487EB512F8A315457DC41C>108
-D<EC7F80903803FFF090380FC0FC90383E001F496D7E496D7E48486D7E48486D7E48486D
-7E000F81A24848147E003F157FA290C87E481680A44816C0AA6C1680A26D147F003F1600
-A2001F157E6D14FE000F5D6D130100075D6C6C495A6C6C495A6C6C495A013E49C7FC9038
-1FC0FE903807FFF89038007F802A2E7DAC31>111 D E /Fv 25 121
-df<EE3FF0923803FFFE031F6D7E92397FC01FC0913A01FE0003E0DA07F8EB00F04A4814
-784A48804A48EB01FC4A48EB07FE4AC7FC4948140F13035C13075C715A010F6F5A4AEC00
-E095C8FCB3EF03FEB9FCA426000FF0C7120F1703A21701B3B3AD496C4A7E496C4A7F003F
-B5D8FC07B61280A441657EE448>12 D<B712F0A7240780A12B>45
-D<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F00C7FCB3B3A2120FEA3FC0EA7FE0EA
-FFF0A6EA7FE0EA3FC0EA0F000C3E74BD24>58 D<170FA34D7EA24D7EA34D7EA34D7EA34C
-7F17DFA29338039FFC178FA29338070FFE1707040F7FEE0E03A2041E80EE1C01A2043C80
-EE3800A24C80187FA24C80183FA24B4880181F0303814C130FA203078193C71207A24B81
-030E80A24B8284A24B8284A24B82197F03F0824B153FA20201834B151FA202038392B8FC
-A24A83A292C91207020E8385A24A8485023C84023882A20278840270177FA202F0844A17
-3FA24948841A1FA24948841A0FA249CB7F1A074985865B496C85497E48486C4D7F000F01
-F8051F13F0B60407B612F0A45C657DE463>65 D<B712C0A4C66CEB8000D91FFEC7FC6D5A
-B3B3B3B3AE497E90387FFF80B712C0A422627AE12F>73 D<933801FFE0043F13FF4BB612
-E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A48C8EA3FE0DA03FCED0FF0DA0F
-F0ED03FC4A486F7E4A486F7E4A48707E4ACA6C7E4948717E4948717E4948717E4948717E
-4948717E013F854A83017F864948727EA24890CC6C7EA24848737EA24848737EA2000F87
-491907001F87A34848737EA4007F1C80A24985A400FF1CC0AF6C6C4F1380A5003F1C006D
-61A3001F63A26D190F000F63A26C6C4F5AA36C6C4F5AA26C6D4E5A6C636E18FF017F626D
-6C4D90C7FC6E5F011F616D6C4D5A6D6C4D5A0103616E171F6D6C4D5A6D6D4C5ADA3FC04C
-C8FCDA1FF0ED03FE6E6C4B5A6E6C4B5ADA01FFED3FE09126007FC0ECFF80DB1FF0D903FE
-C9FCDB07FFEB3FF8030190B512E0DB003F91CAFC040113E05A667AE367>79
-D<933801FFE0043F13FF4BB612E003079038003FF8DB1FF0EB03FEDB7FC0903800FF804A
-48C8EA3FE0DA03FCED0FF0DA0FF8ED07FCDA1FE0ED01FE4A486F7E4A48707E4ACA6C7E49
-48717E4948717E4948717E010F854948717E4948717EA24948717F01FF864A187F4890CC
-6C7EA2488749191F00078749190F000F87A2001F87491907A2003F87A24985A2007F1C80
-A44985A200FF1CC0AF007F1C806D61A4003F1C00A36D61001F63A36C6C4F5AA20007636D
-191FA26C6C4F5AA26C636C6DDA3F804A5AEFFFE06D6C010301F84A5A6D6C902607C07C49
-90C7FC93380F001E6D6C011E6D495A6D6C6F495A0107021CD903805B6D6C013C6D6C485A
-6E0138151F6D6C0300495A6D01806F485ADA3FC04CC8FCDA1FE0ED71FE91260FF83CEC77
-FC912607FC1CEC7FF8912601FF1EEC3FE09126007FDEECFF80DB1FFFD903FEC9FC030790
-38C03FF8030190B56C1560DB003F143C0401EBE01C93C8121EA21DE0191FA3736C13011D
-C0741303A274130774130F736CEB1F8074133F9738FF01FF7390B51200A264856485745B
-745B745B08071380E001FEC7FC5B807AE367>81 D<EC3FF0903803FFFE010F6D7E90393F
-C03FE090397E0007F801F86D7ED801E06D7E48486D7E48486E7E48C86C7E7F01F06E7E48
-7E6D6E7EA3707EA36C5AEA03E0C9FCA6167FED7FFF020FB5FC91387FF807903801FF8090
-3807FC00EB1FF0EB7FC0495AD803FEC7FC485A120F5B485A485AA2484817E0A312FF5BA2
-160FA3161F6D141B007F153B16736D913971FC01C06C6C14E1001FEC01C1D80FFC903A07
-80FE03806C6C903A0F00FF07002701FF807E6DB4FC27007FFFF86D5A011F01E0EB1FF801
-0190C7EA07E03B417ABF42>97 D<4AB47E020F13F8023F13FE9139FF007F80D903FCEB07
-E0D907F0EB01F0D91FE0EB007849488049488049C87E48485D4915FF00034B138048485C
-A2485AA2485AA2003F6F130049EC007C94C7FC127FA35B12FFAD127F7FA4123F7FA2001F
-EE01C07F000F16036D168012076C6C15076D160000015E6C6C151E6D6C5C6D6C5C6D6C5C
-D90FF8495AD903FCEB07C0903A00FF803F8091263FFFFEC7FC020F13F80201138032417C
-BF3A>99 D<181EEF3FFEEE07FFA4EE000F1703A21701B3AAEDFF80020F13F8023F13FE91
-39FF803F81903A03FC0007C14948EB01E1D91FE0EB00F94948147D4948143D49C8121F48
-48150F491507120348481503491501120F121F5BA2123F5B127FA45B12FFAD127F7FA312
-3FA27F121FA26C6C1503A26C6C150712036D150F6C6C151F0000163D137F6D6CECF9FF6D
-6CEB01F1D90FF0D903C113C06D6CD90F81EBFF80D901FFEB7F019039007FFFFC021F13E0
-0201010091C7FC41657CE349>I<EC03FE91381FFFE091B512F8903901FE03FE903A07F0
-007F8049486D7ED93FC06D7E49C76C7E496E7E4914034848814848140100078249140000
-0F8283485A1880123F49153FA2007F17C0A35BA212FF90B8FCA30180CAFCA9127F7FA312
-3FA27F121FEF01C06C7E17036C6C1680A26C6C15070001EE0F006D150E6C6C151E6D6C5C
-6D6C5C6D6C5CD907F0EB03E0D903FC495A902700FF803FC7FC91383FFFFC020F13F00201
-138032417CBF3A>I<EB03C0EA07FFB5FCA41201EA007FA2133FB3AAEE7FE0923803FFFC
-030F13FFDB3F0013C00378EB1FE04B6D7EDAC1C06D7EDAC3808002C7C7120302CE811701
-14DC14D802F86E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A442647DE349
->104 D<133C13FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA412
-01EA007FA2133FB3B3AC497E497EB612E0A41B5F7DDE23>I<EB03C0EA07FFB5FCA41201
-EA007FA2133FB3B3B3B3AD497E497EB612F0A41C647DE323>108
-D<D903C0D9FFC0EC07FED807FF010301F891381FFFC0B5010F01FE027F13F0923D3F00FF
-8001F807FC0378903B3FC003C001FEDAC1E090261FE00FC77E0001D9C3C090260FF01E6E
-7ED8007F49902607F81C6E7E02C7C75CD93FCE6E6C486E7E02CC166002DC16E002D85E02
-F8DA01FF6F7E4A5EA24A93C8FCA44A5DB3B3496C4A6C4B7E496C4A6D4A7EB6D8F007B6D8
-803FB512FCA4663F7CBE6F>I<D903C0EB7FE0D807FF903803FFFCB5010F13FFDB3F0013
-C00378EB1FE04B6D7E0001D9C1C06D7E27007FC3808002C7C71203D93FCE81170114DC14
-D802F86E7E5CA35CA35CB3B3496C4A7F496C4A7FB6D8F003B612C0A4423F7DBE49>I<ED
-FF80020F13F8023F13FE9139FF007F80D903FCEB1FE0D907F0EB07F0D90FC0EB01F8D93F
-80EB00FE49C8127F017E81496F7E48486F7E00038349150700078348486F7EA2001F8349
-1501A2003F83A348486F7EA400FF1880AC007F1800A26D5DA2003F5FA36C6C4B5AA36C6C
-4B5A00075FA26C6C4B5A6C6C4B5AA26C6C4B5A017F4BC7FC6D6C14FE6D6C495AD90FF0EB
-07F8D903FCEB1FE0D900FFEB7F806EB5C8FC020F13F8020113C039417CBF42>I<D903C0
-EB7FC0D807FF903807FFFCB5011F13FFDB7F0013C003F8EB1FF0DAC3E0EB07F80001D9C7
-806D7E26007FCFC76C7E02DE6E7ED93FFC6F7E4A6F7E4A82181F4A82727E5C727EA2727E
-A3727EA41A8084AC4E1300A54E5AA2611807A24E5A6E5E181F6E4B5A6E5E187F6E4B5A02
-DE4A90C7FC02CF4A5ADAC780495ADAC3C0EB0FF0DAC1F0EB3FE0913AC07E01FF806FB448
-C8FC030F13F80300138093CAFCB3A3497E497EB612F0A4415B7DBE49>I<9039078003F8
-D807FFEB0FFFB5013F13C092387C0FE0913881F01F9238E03FF00001EB838039007F8700
-148FEB3F8E029CEB1FE0EE0FC00298EB030002B890C7FCA214B014F0A25CA55CB3B0497E
-EBFFF8B612FCA42C3F7CBE33>114 D<9139FFE00180010FEBFC03017FEBFF073A01FF00
-1FCFD803F8EB03EFD807E0EB01FF48487F4848147F48C8123F003E151F007E150F127CA2
-00FC1507A316037EA27E7F6C7E6D91C7FC13F8EA3FFE381FFFF06CEBFF806C14F86C14FF
-6C15C06C6C14F0011F80010714FED9007F7F02031480DA003F13C01503030013E0167F00
-E0ED1FF0160F17F86C15071603A36C1501A37EA26C16F016037E17E06D14076DEC0FC06D
-1580D8FDF0141FD8F8F8EC7F00013E14FC3AF01FC00FF80107B512E0D8E001148027C000
-3FF8C7FC2D417DBF34>I<1438A71478A414F8A31301A31303A21307130F131FA2137F13
-FF1203000F90B6FCB8FCA3260007F8C8FCB3AE17E0AE6D6CEB01C0A316036D6C14801607
-6D6C14006E6C5A91383FC01E91381FF07C6EB45A020313E09138007F802B597FD733>I<
-D903C0150FD807FFED1FFFB50203B5FCA40001ED0007D8007F1501A2013F81B3B25FA35F
-A35F011F15066E140E5F130F6E4A7F01075D6D6C494813E0D901FE4948EBFFC0903A00FF
-C01F8091393FFFFE00020F13F8020001C0EC800042407DBE49>I<B66C49B512E0A40001
-01F8C8387FFE0026007FE0ED1FF819E0013F705A61131F6E93C7FC130F180E6E151E0107
-161C8001035EA26E157801011670806D5EA26F1301027F5DA26E6C495AA26F1307021F92
-C8FCA26E6C130EA26F131E0207141CA26F133C020314388102015CA26F13F06E5C168092
-387F81C0A216C3033F5B16E3DB1FE7C9FCA216FF6F5AA26F5AA36F5AA26F5AA36F5A433F
-7FBD46>I<B6D8801FB500E090B512F8A4000301F0C7D87FFCC7001F1380C601C0DA3FF0
-913807FE00051F6F5A017F030F6F5A64133F05075E6E81011F030F5EA26E6F1403010F03
-1F5E171D6E6F14070107033D93C7FC17386E6F5C01030378150EEF707F6E70131E010103
-F0151CEFE03F6E70133C6D02011638EFC01F03806F1378027F01031670EF800F03C06F13
-F0023F01075EEF000703E0EDF801021F495E040E130303F0EDFC03020F011E5E041C1301
-03F8EDFE070207013C93C8FC0438130003FC6F5A02030178150E0470147F03FE169E0201
-01F0159C4C143F03FF16FC6E5F4C141FA2037F5E4C140FA2033F5E93C81207A26F5E031E
-1503030E5E5D3F7FBD60>I<007FB500C0010FB512E0A4C691C70003EBFC00D93FFE6E13
-E0D90FFC16807148C7FC01075E6D6C4A5A6D6C5D6D6D495A606E6C495A6E6C49C8FC6E6C
-130E171E6E6C5B6E6C5B6E6C5B5F913801FF016EEB83C092387FC780033F90C9FC16EFED
-1FFE6F5A6F5A826F7E6F7E5D834B7F92380F3FE0ED1E1F033C7F9238380FF892387807FC
-EDF003DA01E07F4A486C7E707F4A486D7E4AC7FC021E6E7E021C6E7E023C6E7E5C4A6E7E
-01016F7E49486E7E1307010F6F7F013F83D9FFF04A7F00076D4A13FCB56C020FEBFFF8A4
-453E80BD46>I E end
-TeXDict begin
-
-1 0 bop 249 763 a Fv(Quaternions:)60 b(An)44 b(In)l(tro)t(duction)g
-(with)g(Octa)l(v)l(e)g(m-\014le)g(examples)1071 1016
-y Fu(A.)32 b(S.)h(Ho)s(del)f Ft(a.s.hodel@eng.auburn.edu)1462
-1219 y Fs(R)q(ev)t(ision)d Fu(:)f(1)p Fs(:)p Fu(1)k(\(c\))g(1998)1537
-1568 y Fr(Ac)m(kno)m(wledgemen)m(t)0 1781 y Fq(The)g(author)g
-(gratefully)f(thanks)h(the)h(Fligh)m(t)f(Con)m(trols)g(and)f(Dynamics)h
-(Branc)m(h)h(at)g(Marshall)e(Space)h(Fligh)m(t)0 1894
-y(Cen)m(ter)h(for)f(their)g(useful)f(discussions)f(that)j(led)f(to)h
-(this)f(do)s(cumen)m(t)g(and)g(m-\014le)g(suite.)47 b(Citations)32
-b(are)h(giv)m(en)0 2007 y(where)28 b(they)g(w)m(ere)h(a)m(v)-5
-b(ailable)28 b(to)h(me.)40 b(I)28 b(w)m(elcome)h(an)m(y)g(suggestions)f
-(for)g(additional)e(reference)j(material)f(to)h(b)s(e)0
-2120 y(placed)h(in)f(the)h(bibliograph)m(y)-8 b(.)0 2406
-y Fp(Con)l(ten)l(ts)0 2610 y Fr(1)84 b(Quaternions)3154
-b(2)136 2723 y Fq(1.1)94 b(De\014nition)61 b Fo(:)46
-b(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h
-(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)
-h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2836 y(1.2)94
-b(Multiplication)28 b(of)i(quaternions)72 b Fo(:)46 b(:)g(:)f(:)h(:)g
-(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)
-g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(2)136 2949 y(1.3)94
-b(Quaternions)29 b(as)i(rotations)39 b Fo(:)46 b(:)g(:)f(:)h(:)g(:)f(:)
-h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h
-(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(3)136
-3061 y(1.4)94 b(Application)29 b(of)h(quaternions)g(in)f(co)s(ordinate)
-h(frame)g(transformations)53 b Fo(:)45 b(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)
-h(:)g(:)f(:)131 b Fq(6)345 3174 y(1.4.1)106 b(Euler)29
-b(angles)i Fo(:)46 b(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)h(:)
-g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h
-(:)g(:)f(:)h(:)g(:)f(:)131 b Fq(6)345 3287 y(1.4.2)106
-b(Co)s(ordinate)30 b(transformation)g(matrices)g(and)g(quaternions)46
-b Fo(:)g(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)f(:)131
-b Fq(6)136 3400 y(1.5)94 b(Time)30 b(deriv)-5 b(ativ)m(e)30
-b(of)g(a)h(quaternion)42 b Fo(:)k(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h
-(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)g(:)g(:)f(:)h(:)g(:)f(:)h(:)
-g(:)f(:)85 b Fq(12)1927 5656 y(1)p eop
-2 1 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(2)0 399
-y Fp(1)135 b(Quaternions)0 601 y Fq(A)32 b(con)m(v)m(enien)m(t)g(w)m(a)
-m(y)h(to)f(represen)m(t)f(the)h(relativ)m(e)g(orien)m(tation)f(of)h(t)m
-(w)m(o)g(frames)g(is)e(through)h(the)h(use)f(of)g(quater-)0
-714 y(nions.)0 958 y Fm(1.1)112 b(De\014nition)0 1129
-y Fr(De\014nition)35 b(1.1)46 b Fq(A)31 b(quaternion)e(is)g(a)i(4-v)m
-(ector)i(de\014ned)c(b)m(y)1268 1334 y Fo(q)f Fq(=)d
-Fo(a)1474 1313 y Fq(^)1481 1334 y Fo(i)c Fq(+)f Fo(b)1662
-1313 y Fq(^)1663 1334 y Fo(j)26 b Fq(+)19 b Fo(c)1857
-1310 y Fq(^)1855 1334 y Fo(k)24 b Fq(+)c Fo(d;)46 b(a;)15
-b(b;)g(c;)g(d)27 b Fl(2)e Fq(I)-9 b(R)0 1538 y(where)256
-1517 y(^)263 1538 y Fo(i)p Fq(,)348 1517 y(^)350 1538
-y Fo(j)5 b Fq(,)450 1514 y(^)448 1538 y Fo(k)33 b Fq(are)e(quan)m
-(tities)f(satisfying)1498 1517 y(^)1505 1538 y Fo(i)1536
-1505 y Fk(2)1601 1538 y Fq(=)1696 1517 y(^)1697 1538
-y Fo(j)1739 1505 y Fk(2)1804 1538 y Fq(=)1903 1514 y(^)1900
-1538 y Fo(k)1950 1505 y Fk(2)2015 1538 y Fq(=)25 b Fl(\000)p
-Fq(1)31 b(and)1476 1721 y(^)1483 1742 y Fo(i)1513 1721
-y Fq(^)1515 1742 y Fo(j)f Fq(=)1681 1718 y(^)1678 1742
-y Fo(k)1846 1721 y Fq(^)1847 1742 y Fo(j)1892 1718 y
-Fq(^)1890 1742 y Fo(k)e Fq(=)2054 1721 y(^)2061 1742
-y Fo(i)2213 1718 y Fq(^)2211 1742 y Fo(k)2254 1721 y
-Fq(^)2261 1742 y Fo(i)e Fq(=)2412 1721 y(^)2413 1742
-y Fo(j)1372 1859 y Fq(^)1373 1880 y Fo(j)6 b Fq(\0201)25
-b(=)g Fl(\000)1681 1856 y Fq(^)1679 1880 y Fo(k)1814
-1856 y Fq(^)1812 1880 y Fo(k)1860 1859 y Fq(^)1862 1880
-y Fo(j)31 b Fq(=)25 b Fl(\000)2090 1859 y Fq(^)2097 1880
-y Fo(i)2204 1859 y Fq(^)2211 1880 y Fo(i)2244 1856 y
-Fq(^)2242 1880 y Fo(k)k Fq(=)24 b Fl(\000)2483 1859 y
-Fq(^)2484 1880 y Fo(j)0 2092 y Fr(Remark)34 b(1.1)46
-b Fq(Notice)35 b(that)1058 2072 y(^)1065 2092 y Fo(i)p
-Fq(,)1154 2072 y(^)1156 2092 y Fo(j)5 b Fq(,)35 b(and)1440
-2068 y(^)1438 2092 y Fo(k)h Fq(are)e(scalar)g(quan)m(tities)e(equal)h
-(to)2718 2021 y Fl(p)p 2793 2021 117 4 v 2793 2092 a(\000)p
-Fq(1)q(;)i(ho)m(w)m(ev)m(er,)3341 2072 y(^)3348 2092
-y Fo(i)p Fq(,)3437 2072 y(^)3438 2092 y Fo(j)6 b Fq(,)35
-b(and)3723 2068 y(^)3720 2092 y Fo(k)i Fq(do)0 2205 y(not)g(comm)m(ute)
-h(under)d(m)m(ultiplication.)56 b(Therefore)36 b(quaternions)g(do)g
-(not)h(comm)m(ute)h(under)d(m)m(ultiplication)0 2318
-y(\()p Fo(q)76 2332 y Fk(1)115 2318 y Fo(q)156 2332 y
-Fk(2)221 2318 y Fl(6)p Fq(=)25 b Fo(q)358 2332 y Fk(2)397
-2318 y Fo(q)438 2332 y Fk(1)497 2318 y Fq(in)20 b(general\).)38
-b(This)19 b(is)h(consisten)m(t)h(with)f(the)h(in)m(terpretation)f(of)h
-(quaternions)f(as)h(spatial)f(rotations)0 2431 y(\(to)31
-b(b)s(e)f(discussed)f(in)g Fl(x)p Fq(1.4.2.)0 2644 y
-Fr(M-\014le)46 b Fj(quaternion)57 b Fq(Create/extract)34
-b(quaternion)29 b(information:)227 2869 y Fj(quaternion:)45
-b(construct)g(or)i(extract)f(a)i(quaternion)227 2982
-y(w)g(=)f(a*i)g(+)h(b*j)e(+)i(c*k)f(+)g(d)h(from)e(given)h(data.)227
-3207 y(calling)f(formats:)227 3320 y([a,b,c,d])141 b(=)47
-b(quaternion\(w\))570 b(-or-)227 3433 y([vv,theta])45
-b(=)j(quaternion\(w\))227 3546 y(w)525 b(=)47 b(quaternion\(a,b,c,d\))
-227 3659 y(w)525 b(=)47 b(quaternion\(vv,theta\))227
-3884 y Fq(\()p Fj(vv,theta)29 b Fq(format)h(to)i(b)s(e)d(explained)g
-(later\))0 4128 y Fm(1.2)112 b(Multiplication)34 b(of)k(quaternions)0
-4299 y Fq(F)-8 b(rom)31 b(De\014nition)e(1.1,)j(w)m(e)e(ha)m(v)m(e)533
-4503 y Fo(q)574 4517 y Fk(1)613 4503 y Fo(q)654 4517
-y Fk(2)776 4503 y Fq(=)83 b(\()p Fo(a)1013 4517 y Fk(1)1046
-4483 y Fq(^)1053 4503 y Fo(i)20 b Fq(+)g Fo(b)1234 4517
-y Fk(1)1272 4483 y Fq(^)1274 4503 y Fo(j)26 b Fq(+)20
-b Fo(c)1467 4517 y Fk(1)1509 4479 y Fq(^)1506 4503 y
-Fo(k)k Fq(+)c Fo(d)1715 4517 y Fk(1)1754 4503 y Fq(\)\()p
-Fo(a)1872 4517 y Fk(2)1905 4483 y Fq(^)1913 4503 y Fo(i)g
-Fq(+)g Fo(b)2094 4517 y Fk(2)2132 4483 y Fq(^)2133 4503
-y Fo(j)26 b Fq(+)20 b Fo(c)2326 4517 y Fk(2)2368 4479
-y Fq(^)2366 4503 y Fo(k)j Fq(+)d Fo(d)2574 4517 y Fk(2)2614
-4503 y Fq(\))776 4641 y(=)83 b(\()p Fo(a)1013 4655 y
-Fk(1)1053 4641 y Fo(d)1100 4655 y Fk(2)1160 4641 y Fq(+)20
-b Fo(b)1290 4655 y Fk(1)1329 4641 y Fo(c)1368 4655 y
-Fk(2)1428 4641 y Fl(\000)g Fo(c)1558 4655 y Fk(1)1598
-4641 y Fo(b)1637 4655 y Fk(2)1697 4641 y Fq(+)f Fo(d)1834
-4655 y Fk(1)1874 4641 y Fo(a)1922 4655 y Fk(2)1962 4641
-y Fq(\))p Fo(i)i Fq(+)e(\()p Fo(c)2213 4655 y Fk(1)2254
-4641 y Fo(a)2302 4655 y Fk(2)2361 4641 y Fl(\000)h Fo(a)2500
-4655 y Fk(1)2540 4641 y Fo(c)2579 4655 y Fk(2)2639 4641
-y Fq(+)g Fo(b)2769 4655 y Fk(1)2808 4641 y Fo(d)2855
-4655 y Fk(2)2915 4641 y Fq(+)g Fo(d)3053 4655 y Fk(1)3093
-4641 y Fo(b)3132 4655 y Fk(2)3171 4641 y Fq(\))3205 4620
-y(^)3206 4641 y Fo(j)930 4779 y Fq(+\()p Fo(a)1084 4793
-y Fk(1)1124 4779 y Fo(b)1163 4793 y Fk(2)1222 4779 y
-Fl(\000)g Fo(b)1352 4793 y Fk(1)1392 4779 y Fo(a)1440
-4793 y Fk(2)1499 4779 y Fq(+)g Fo(c)1629 4793 y Fk(1)1669
-4779 y Fo(d)1716 4793 y Fk(2)1776 4779 y Fq(+)g Fo(d)1914
-4793 y Fk(1)1954 4779 y Fo(c)1993 4793 y Fk(2)2032 4779
-y Fq(\))2069 4755 y(^)2067 4779 y Fo(k)k Fq(+)c(\()p
-Fl(\000)p Fo(a)2383 4793 y Fk(1)2423 4779 y Fo(a)2471
-4793 y Fk(2)2530 4779 y Fl(\000)g Fo(b)2660 4793 y Fk(1)2700
-4779 y Fo(b)2739 4793 y Fk(2)2798 4779 y Fl(\000)g Fo(c)2928
-4793 y Fk(1)2968 4779 y Fo(c)3007 4793 y Fk(2)3067 4779
-y Fq(+)g Fo(d)3205 4793 y Fk(1)3245 4779 y Fo(d)3292
-4793 y Fk(2)3331 4779 y Fq(\))347 b(\(1.1\))21 5018 y(De\014ne)21
-b Fo(v)337 5032 y Fk(1)401 5018 y Fq(=)497 4924 y Fi(h)578
-5018 y Fo(a)626 5032 y Fk(1)749 5018 y Fo(b)788 5032
-y Fk(1)910 5018 y Fo(c)949 5032 y Fk(1)1030 4924 y Fi(i)1070
-4947 y Fh(T)1145 5018 y Fq(and)g Fo(v)1357 5032 y Fk(2)1421
-5018 y Fq(=)1517 4924 y Fi(h)1598 5018 y Fo(a)1646 5032
-y Fk(2)1769 5018 y Fo(b)1808 5032 y Fk(2)1930 5018 y
-Fo(c)1969 5032 y Fk(2)2050 4924 y Fi(i)2089 4947 y Fh(T)2145
-5018 y Fq(.)37 b(Then)20 b([Mul)o(])h(equation)g(\(1.1\))h(ma)m(y)g(b)s
-(e)e(rewritten)0 5131 y(as)1017 5244 y Fo(q)1058 5258
-y Fk(1)1097 5244 y Fo(q)1138 5258 y Fk(2)1202 5244 y
-Fq(=)25 b Fo(d)1345 5258 y Fk(1)1385 5244 y Fo(d)1432
-5258 y Fk(2)1492 5244 y Fq(+)20 b Fo(d)1630 5258 y Fk(1)1669
-5244 y Fo(v)1713 5258 y Fk(2)1773 5244 y Fq(+)g Fo(d)1911
-5258 y Fk(2)1951 5244 y Fo(v)1995 5258 y Fk(1)2054 5244
-y Fl(\000)g(h)q Fo(v)2225 5258 y Fk(1)2264 5244 y Fo(;)15
-b(v)2348 5258 y Fk(2)2388 5244 y Fl(i)21 b Fq(+)f(\()p
-Fo(v)2614 5258 y Fk(1)2674 5244 y Fl(\002)f Fo(v)2808
-5258 y Fk(2)2848 5244 y Fq(\))830 b(\(1.2\))p eop
-3 2 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(3)0 399
-y(where)30 b(the)g(cross)h(pro)s(duct)1385 622 y(\()p
-Fo(v)1464 636 y Fk(1)1524 622 y Fl(\002)20 b Fo(v)1659
-636 y Fk(2)1699 622 y Fq(\))1765 572 y Fk(\001)1759 622
-y Fq(=)1855 424 y Fi(\014)1855 474 y(\014)1855 524 y(\014)1855
-574 y(\014)1855 624 y(\014)1855 674 y(\014)1855 723 y(\014)1883
-428 y(2)1883 574 y(6)1883 627 y(4)2001 492 y Fq(^)2008
-513 y Fo(i)2167 492 y Fq(^)2168 513 y Fo(j)2328 489 y
-Fq(^)2326 513 y Fo(k)1980 625 y(a)2028 639 y Fk(1)2150
-625 y Fo(b)2189 639 y Fk(1)2312 625 y Fo(c)2351 639 y
-Fk(1)1980 738 y Fo(a)2028 752 y Fk(2)2150 738 y Fo(b)2189
-752 y Fk(2)2312 738 y Fo(c)2351 752 y Fk(2)2432 428 y
-Fi(3)2432 574 y(7)2432 627 y(5)2487 424 y(\014)2487 474
-y(\014)2487 524 y(\014)2487 574 y(\014)2487 624 y(\014)2487
-674 y(\014)2487 723 y(\014)0 881 y Fq(This)29 b(v)m(ector-based)j(in)m
-(terpretation)d(will)f(b)s(ecome)j(more)f(imp)s(ortan)m(t)g(in)f
-Fl(x)p Fq(1.4.2.)0 1040 y Fr(M-\014le)46 b Fj(qmult)227
-1231 y(function)g(c)h(=)h(qmult\(a,b\))227 1344 y(multiply)e(two)h
-(quaternions)0 1534 y Fr(De\014nition)35 b(1.2)46 b Fq(The)26
-b Fg(c)-5 b(onjugate)26 b Fq(of)g(a)h(quaternion)e Fo(q)j
-Fq(=)d Fo(a)2077 1514 y Fq(^)2084 1534 y Fo(i)12 b Fq(+)f
-Fo(b)2247 1514 y Fq(^)2248 1534 y Fo(j)17 b Fq(+)11 b
-Fo(c)2425 1510 y Fq(^)2423 1534 y Fo(k)k Fq(+)c Fo(d)26
-b Fq(is)f Fo(q)2771 1501 y Ff(\003)2836 1534 y Fq(=)g
-Fl(\000)p Fo(a)3044 1514 y Fq(^)3051 1534 y Fo(i)11 b
-Fl(\000)g Fo(b)3213 1514 y Fq(^)3214 1534 y Fo(j)17 b
-Fl(\000)11 b Fo(c)3391 1510 y Fq(^)3389 1534 y Fo(k)k
-Fq(+)c Fo(d)p Fq(.)40 b(Notice)0 1664 y(that)35 b Fo(q)s(q)289
-1631 y Ff(\003)361 1664 y Fq(=)d Fo(q)508 1631 y Ff(\003)547
-1664 y Fo(q)k Fq(=)c Fo(a)775 1631 y Fk(2)837 1664 y
-Fq(+)23 b Fo(b)970 1631 y Fk(2)1033 1664 y Fq(+)f Fo(c)1165
-1631 y Fk(2)1228 1664 y Fq(+)h Fo(d)1369 1631 y Fk(2)1447
-1614 y(\001)1441 1664 y Fq(=)32 b Fl(j)p Fo(q)s Fl(j)1639
-1622 y Fk(2)1678 1664 y Fq(.)54 b(F)-8 b(or)35 b(quaternions)f
-Fo(q)j Fq(with)c Fo(q)s(q)2799 1631 y Ff(\003)2871 1664
-y Fl(6)p Fq(=)f(0)j(w)m(e)g(de\014ne)f(the)h Fg(inverse)0
-1821 y(quaternion)c Fo(q)498 1783 y Ff(\000)p Fk(1)618
-1821 y Fq(=)746 1759 y Fo(q)790 1726 y Ff(\003)p 724
-1799 128 4 v 724 1883 a Fo(q)s(q)812 1857 y Ff(\003)861
-1821 y Fq(.)40 b(Notice)32 b(that)f Fo(q)s(q)1497 1788
-y Ff(\000)p Fk(1)1616 1821 y Fq(=)25 b Fo(q)1756 1788
-y Ff(\000)p Fk(1)1850 1821 y Fo(q)j Fq(=)d(1.)0 2037
-y Fr(M-\014le)46 b Fj(qinv)59 b Fq(Compute)30 b(the)h(in)m(v)m(erse)f
-(of)g(a)h(quaternion)227 2228 y Fj(function)46 b(b)h(=)h(qinv\(a\))227
-2341 y(return)e(the)h(inverse)f(of)h(a)h(quaternion)227
-2454 y(a)g(=)95 b([w,x,y,z])45 b(=)j(w*i)f(+)g(x*j)g(+)g(y*k)g(+)h(z)
-227 2567 y(qmult\(a,qinv\(a\)\))c(=)j(1)h(=)f([0)g(0)h(0)f(1])0
-2757 y Fr(Example)34 b(1.1)46 b Fq(Compute)30 b(and)f(m)m(ultiply)f
-(the)j(in)m(v)m(erse)f(quaternion:)0 2916 y Fj(octave:1>)45
-b(q)j(=)f(quaternion\(1,2,3,4\);)42 b(qi)48 b(=)f(qinv\(q\))0
-3029 y(qi)g(=)h(-0.033333)93 b(-0.066667)g(-0.100000)140
-b(0.133333)0 3142 y(octave:2>)45 b(qmult\(qi,q\))0 3255
-y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3368 y(octave:3>)45 b(qmult\(q,qi\))0
-3481 y(ans)i(=)g(0)96 b(0)f(0)g(1)0 3640 y Fq(In)30 b(b)s(oth)f(cases)j
-(the)e(pro)s(duct)f(is)h(the)g(iden)m(tiy)f(quaternion)h(0)2101
-3619 y(^)2108 3640 y Fo(i)21 b Fq(+)f(0)2295 3619 y(^)2296
-3640 y Fo(j)26 b Fq(+)20 b(0)2497 3616 y(^)2495 3640
-y Fo(k)k Fq(+)19 b(1)26 b(=)f(1.)0 3878 y Fm(1.3)112
-b(Quaternions)38 b(as)g(rotations)0 4062 y Fr(De\014nition)d(1.3)46
-b Fq(A)31 b Fg(unit)h(quaternion)g Fo(q)c Fq(=)d Fo(a)1617
-4041 y Fq(^)1624 4062 y Fo(i)20 b Fq(+)g Fo(b)1804 4041
-y Fq(^)1805 4062 y Fo(j)26 b Fq(+)20 b Fo(c)2000 4038
-y Fq(^)1998 4062 y Fo(k)k Fq(+)19 b Fo(d)31 b Fq(satis\014es)2572
-3964 y Fi(\015)2572 4014 y(\015)2572 4064 y(\015)2618
-3967 y(h)2699 4062 y Fo(a)83 b(b)g(c)g(d)3163 3967 y
-Fi(i)3202 3964 y(\015)3202 4014 y(\015)3202 4064 y(\015)3248
-4118 y Fk(2)3313 4062 y Fq(=)25 b(1.)0 4254 y Fr(Remark)34
-b(1.2)46 b Fq(Unit)40 b(quaternions)f(ma)m(y)h(b)s(e)g(considered)f(as)
-h(represen)m(tations)g(of)h(a)f(rotation)h(of)f Fo(\022)i
-Fq(degrees)0 4367 y(ab)s(out)f(a)g(giv)m(en)g(unit)f(v)m(ector)j
-Fo(v)h Fq(\(see)e(routine)e Fj(quaternion)p Fq(\).)70
-b(The)41 b(transformation)f(is)g(accomplished)g(b)m(y)0
-4496 y(m)m(ultiplying)27 b Fo(v)529 4510 y Fh(r)592 4496
-y Fq(=)e Fo(q)s(v)s(q)823 4463 y Ff(\000)p Fk(1)917 4496
-y Fq(,)31 b(where)f Fo(v)e Fq(=)1404 4402 y Fi(h)1485
-4496 y Fo(x)83 b(y)j(z)h Fq(0)1967 4402 y Fi(i)2006 4496
-y Fq(.)0 4684 y(With)30 b(this)f(in)m(terpretation,)h(unit)f
-(quaternions)g(ma)m(y)i(b)s(e)f(written)f(as)890 4964
-y Fo(q)f Fq(=)1055 4870 y Fi(\020)1105 4964 y Fo(ai)21
-b Fq(+)e Fo(b)1333 4944 y Fq(^)1334 4964 y Fo(j)26 b
-Fq(+)20 b Fo(c)1529 4940 y Fq(^)1527 4964 y Fo(k)1578
-4870 y Fi(\021)1643 4964 y Fq(sin)n(\()p Fo(\022)s(=)p
-Fq(2\))h(+)f(cos)q(\()p Fo(\022)s(=)p Fq(2\))2432 4914
-y Fk(\001)2426 4964 y Fq(=)2522 4771 y Fi(0)2522 4917
-y(B)2522 4970 y(@)2594 4771 y(2)2594 4917 y(6)2594 4970
-y(4)2691 4851 y Fo(a)2696 4964 y(b)2696 5077 y(c)2781
-4771 y Fi(3)2781 4917 y(7)2781 4970 y(5)2851 4964 y Fo(;)15
-b(\022)2937 4771 y Fi(1)2937 4917 y(C)2937 4970 y(A)3713
-4964 y Fq(\(1.3\))0 5279 y(Notice)26 b(that)f(this)f(implies)e(that)
-1137 5185 y Fi(h)1218 5279 y Fo(a)83 b(b)g(c)1552 5185
-y Fi(i)1615 5279 y Fq(is)24 b(also)h(a)g(unit)e(v)m(ector.)41
-b(This)23 b(is)g(consisten)m(t)j(with)d(m)m(ultiplication)0
-5407 y(b)m(y)30 b(the)h(iden)m(tit)m(y)f(quaterion)g
-Fo(q)e Fq(=)d(1,)31 b(since)e(cos)q(\(0\))d(=)f(1)31
-b(and)f(sin)o(\(0\))c(=)f(0.)p eop
-4 3 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s
-(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439
-b Fn(\(c\))32 b(1998)908 b Fq(4)0 399 y Fr(Example)34
-b(1.2)46 b Fq(Unit)33 b(quaternions)g(ma)m(y)h(b)s(e)g(m)m(ultiplied)c
-(to)35 b(obtain)e(a)i(single)e(equiv)-5 b(alen)m(t)33
-b(co)s(ordinate)h(rota-)0 511 y(tion.)47 b(Let)33 b Fo(q)435
-525 y Fk(3)506 511 y Fq(b)s(e)f(a)h(90)800 478 y Ff(\016)872
-511 y Fq(rotation)g(ab)s(out)f(the)h Fo(x)p Fl(\000)p
-Fq(axis.)46 b(F)-8 b(ollo)m(w)33 b(this)e(rotation)i(b)m(y)g
-Fo(q)2982 525 y Fk(2)3021 511 y Fq(,)g(a)g(90)3247 478
-y Ff(\016)3319 511 y Fq(rotation)g(ab)s(out)0 624 y(the)k(\(new\))g
-Fo(y)i Fq(axis.)60 b(Finally)-8 b(,)37 b(follo)m(w)f(this)g(rotation)h
-(b)m(y)f Fo(q)2067 638 y Fk(1)2106 624 y Fq(,)j(a)e(90)2342
-591 y Ff(\016)2419 624 y Fq(rotation)g(ab)s(out)g(the)g(\(newly)f
-(revised\))g Fo(z)0 737 y Fq(axis.)k(Then)30 b Fo(q)e
-Fq(=)d Fo(q)664 751 y Fk(1)703 737 y Fo(q)744 751 y Fk(2)783
-737 y Fo(q)824 751 y Fk(3)893 737 y Fq(is)k(a)i(90)g(degree)g(rotation)
-g(ab)s(out)f(the)h(original)d Fo(y)s Fq(-axis.)0 925
-y Fj(octave:1>)45 b(degrees)h(=)i(pi/180;)0 1038 y(octave:2>)d(q1)i(=)h
-(quaternion\([0,0,1],90*de)o(gree)o(s\);)0 1151 y(octave:3>)d(q2)i(=)h
-(quaternion\([0,1,0],90*de)o(gree)o(s\);)0 1264 y(octave:4>)d(q3)i(=)h
-(quaternion\([1,0,0],90*de)o(gree)o(s\);)0 1377 y(octave:5>)d(q)j(=)f
-(qmult\(q1,qmult\(q2,q3\)\);)0 1489 y(octave:6>)e([vv,th])h(=)i
-(quaternion\(q\))0 1602 y(vv)f(=)h(0)f(1)h(0)0 1715 y(th)f(=)h(1.5708)0
-1828 y(octave:7>)d(th/degrees)0 1941 y(ans)i(=)g(90.000)118
-2154 y Fq(The)26 b(rotation)g(ab)s(out)g(a)h(v)m(ector)h(axis)e(in)m
-(terpretation)f(of)i(quaternions)e(requires)g(care:)39
-b(the)26 b(axis)g(of)h(rotation)0 2267 y(is)40 b(tak)m(en)j(based)e(on)
-h(the)f(co)s(ordinate)g(frame)h(for)f(whic)m(h)f(the)i(quaternion)e(w)m
-(as)i(written.)73 b(F)-8 b(or)42 b(example,)j(a)0 2379
-y(rotation)30 b(around)e(the)i(inertial)d Fo(y)s Fq(-axis)i(follo)m(w)m
-(ed)g(b)m(y)g(a)h(rotation)g(around)e(the)i(inertial)d
-Fo(x)j Fq(axis)e(can)i(b)s(e)f(written)0 2492 y(as)949
-2623 y Fo(q)f Fq(=)d Fo(q)1155 2637 y Fh(x)1199 2623
-y Fo(q)1240 2637 y Fh(y)1306 2623 y Fq(=)1402 2504 y
-Fi(\022)1463 2529 y(h)1544 2623 y Fq(1)83 b(0)h(0)1888
-2529 y Fi(i)1927 2552 y Fh(T)1982 2623 y Fo(;)15 b(\022)2065
-2637 y Fh(x)2109 2504 y Fi(\023)g(\022)2246 2529 y(h)2327
-2623 y Fq(0)83 b(1)h(0)2671 2529 y Fi(i)2710 2552 y Fh(T)2765
-2623 y Fo(;)15 b(\022)2848 2637 y Fh(y)2890 2504 y Fi(\023)0
-2825 y Fq(This)31 b(is)i(inconsisten)m(t)f(with)g(the)h(de\014nition)e
-(of)j(Euler)d(angles,)k(in)c(whic)m(h)h(eac)m(h)j(angle)e(is)f
-(de\014ned)g(b)m(y)h(a)h(frame)0 2938 y(based)41 b(up)s(on)f(the)i
-(previous)e(rotation.)75 b(This)40 b(problem)g(is)h(addressed)f(b)m(y)i
-(co)s(ordinate)f(transformation)g(b)m(y)0 3051 y(quaternions:)0
-3264 y Fr(M-\014le)46 b Fj(qtrans)59 b Fq(T)-8 b(ransform)29
-b(a)i(quaternion)e(in)g(one)i(frame)f(to)h(the)g(co)s(ordinate)f(basis)
-f(of)i(another)f(frame.)275 3489 y Fj(function)46 b(v)h(=)g
-(qtrans\(v,q\))275 3602 y(transform)e(the)i(vector)f(v)i(\(in)f
-(quaternion)e(form\))h(by)h(the)g(quaternion)e(q;)275
-3714 y(v)i(=)h([x)f(y)h(z)f(0],)g(q)g(=)h(transformation)c(quaternion)
-275 3827 y(returns)i(v)h(=)h(q*v/q)0 4052 y Fr(Remark)34
-b(1.3)46 b Fq(Giv)m(en)34 b(a)h(quaternion)e Fo(q)1425
-4067 y Fh(f)1504 4052 y Fq(describing)f(the)j(rotation)f(from)g(an)g
-(inertial)e(frame)i(\()p Fo(x)3463 4066 y Fk(1)3503 4052
-y Fo(;)15 b(y)3588 4066 y Fk(1)3628 4052 y Fo(;)g(z)3710
-4066 y Fk(1)3750 4052 y Fq(\))34 b(to)0 4165 y(second)24
-b(frame)f(\()p Fo(x)622 4179 y Fk(2)662 4165 y Fo(;)15
-b(y)747 4179 y Fk(2)787 4165 y Fo(;)g(z)869 4179 y Fk(2)909
-4165 y Fq(\),)25 b(a)f(quaternion)f Fo(q)1555 4179 y
-Fh(r)1616 4165 y Fq(de\014ned)f(in)h(the)h(second)f(frame)h(ma)m(y)g(b)
-s(e)f(applied)f(b)m(y)h(m)m(ultiplying)0 4278 y Fo(q)41
-4293 y Fh(f)86 4278 y Fo(q)127 4292 y Fh(r)164 4278 y
-Fo(q)205 4293 y Fh(f)250 4245 y Ff(\000)p Fk(1)345 4278
-y Fq(:)111 4466 y(1.)46 b(T)-8 b(ransform)30 b(\(rotate\))i(frame)f(2)f
-(\()p Fo(x)1424 4480 y Fk(2)1464 4466 y Fo(;)15 b(y)1549
-4480 y Fk(2)1589 4466 y Fo(;)g(z)1671 4480 y Fk(2)1711
-4466 y Fq(\))30 b(bac)m(k)h(to)h(the)e(inertial)e(frame.)111
-4653 y(2.)46 b(P)m(erform)31 b(the)f(rotation)h Fo(q)1124
-4667 y Fh(r)1161 4653 y Fq(.)111 4841 y(3.)46 b(Rotate)33
-b(bac)m(k)e(to)g(the)f(second)h(frame)f(via)g Fo(q)1745
-4856 y Fh(f)1790 4841 y Fq(.)0 5074 y(That)40 b(is,)h(if)e
-Fo(q)499 5088 y Fh(r)577 5074 y Fq(=)689 4955 y Fi(\022)750
-4980 y(h)831 5074 y Fq(0)83 b(1)h(0)1175 4980 y Fi(i)1214
-5003 y Fh(T)1269 5074 y Fo(;)15 b(\022)1352 5088 y Fh(r)1390
-4955 y Fi(\023)1491 5074 y Fq(is)38 b(a)i(rotation)h(ab)s(out)e(the)h
-Fo(y)j Fq(axis)c(in)f(the)i(frame)g(\()p Fo(x)3385 5088
-y Fk(2)3425 5074 y Fo(;)15 b(y)3510 5088 y Fk(2)3549
-5074 y Fo(;)g(z)3631 5088 y Fk(2)3671 5074 y Fq(\),)43
-b(the)0 5235 y(quaternion)29 b Fo(q)498 5250 y Fh(f)543
-5235 y Fo(q)584 5249 y Fh(r)622 5235 y Fo(q)663 5250
-y Fh(f)708 5202 y Ff(\000)p Fk(1)832 5235 y Fq(is)h(the)g(equiv)-5
-b(alen)m(t)30 b(rotation)h(in)e(the)i(frame)f(\()p Fo(x)2466
-5249 y Fk(1)2506 5235 y Fo(;)15 b(y)2591 5249 y Fk(1)2630
-5235 y Fo(;)g(z)2712 5249 y Fk(1)2752 5235 y Fq(\).)p
-eop
-5 4 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(5)0 399
-y Fr(Example)34 b(1.3)46 b(Quaternion)27 b(algebra)d
-Fl(\000)p Fq(90)1672 366 y Ff(\016)1736 399 y Fq(rotation)h(ab)s(out)e
-Fo(x)h Fq(follo)m(w)m(ed)g(b)m(y)g(90)2963 366 y Ff(\016)3028
-399 y Fq(rotation)g(ab)s(out)g(revised)0 522 y Fo(y)33
-b Fq(and)d Fo(z)k Fq(axes)d(is)f(equiv)-5 b(alen)m(t)30
-b(to)h(a)g(rotation)f(ab)s(out)g(the)2007 428 y Fi(h)2088
-522 y Fq(1)83 b(1)h(1)2432 428 y Fi(i)2501 522 y Fq(v)m(ector.)0
-711 y Fj(qx)95 b(=)47 b(quaternion\([1,0,0],-pi/2\);)184
-b(#)48 b(elementary)d(rotations)0 824 y(qy1)i(=)g
-(quaternion\([0,1,0],pi/2\);)0 936 y(qz2)g(=)g
-(quaternion\([0,0,1],pi/2\);)0 1162 y(qyi)g(=)g(qtrans\(qy1,qx\);)712
-b(#)48 b(transform)d(back)i(to)g(original)e(coordinates)0
-1275 y(qzi)i(=)g(qtrans\(qtrans\(qz2,qy1\),qx\))o(;)0
-1388 y(qzi2=)f(qtrans\(qz2,qyi\);)664 b(#)48 b(NOT)f(THE)f(SAME)h(as)g
-(qzi!)0 1501 y(qzi3=)f(qtrans\(qz2,qmult\(qyi,qx\)\);)184
-b(#)48 b(This)e(matches)94 b(qzi)0 1727 y([qyiv,thyi])45
-b(=)i(quaternion\(qyi\))330 b(#)48 b(check)e(vectors,)g(angles)0
-1840 y([qziv,thzi])f(=)i(quaternion\(qzi\))0 1953 y([qzi2v,thz2i])d(=)k
-(quaternion\(qzi2\))0 2066 y([qzi3v,thz3i])c(=)k(quaternion\(qzi3\))0
-2291 y(qtot)f(=)g(qmult\(qzi,qmult\(qyi,qx\)\))0 2404
-y(qtotchk)f(=)h(qmult\(qx,)f(qmult\(qy1,qz2\)\))118 2582
-y Fq(Output:)0 2741 y Fj(qyiv)h(=)g(0.00000)141 b(0.00000)94
-b(-1.00000)0 2854 y(thyi)47 b(=)g(1.5708)0 3013 y Fo(q)41
-3027 y Fh(y)76 3036 y Fe(1)145 3013 y Fq(in)29 b(the)h
-Fo(q)448 3027 y Fh(x)522 3013 y Fq(frame)g(is)g(equiv)-5
-b(alen)m(t)29 b(to)j(a)e(rotation)h(ab)s(out)f(the)h(original)d
-Fl(\000)p Fo(z)35 b Fq(axis.)0 3172 y Fj(qziv)47 b(=)g(1.0000e+00)141
-b(1.5701e-16)f(3.4863e-32)0 3285 y(thzi)47 b(=)g(1.5708)0
-3398 y(qzi2v)f(=)i(1.5701e-16)140 b(-1.5701e-16)188 b(1.0000e+00)0
-3511 y(thz2i)46 b(=)i(1.5708)0 3624 y(qzi3v)e(=)i(1.0000e+00)140
-b(1.9626e-16)h(3.9252e-17)0 3737 y(thz3i)46 b(=)i(1.5708)0
-3896 y Fq(One)29 b(ma)m(y)h(b)s(e)f(tempted)g(to)h(view)f
-Fo(q)1227 3910 y Fh(y)1262 3920 y Fd(i)1321 3896 y Fq(as)h(the)g
-(rotation)f(to)i(the)e(basis)f(frame)i(of)f Fo(q)2821
-3910 y Fh(z)2854 3919 y Fe(2)2892 3896 y Fq(,)h(but)f(this)f(is)h
-(incorrect.)40 b Fo(q)3835 3910 y Fh(y)3870 3920 y Fd(i)0
-4009 y Fq(merely)33 b(represen)m(ts)g(the)g(rotation)h
-Fo(q)1282 4023 y Fh(y)1317 4032 y Fe(1)1388 4009 y Fq(in)e(the)i
-(reference)f(frame;)i(b)s(oth)e(rotations)g Fo(q)2972
-4023 y Fh(x)3049 4009 y Fq(and)g Fo(q)3270 4023 y Fh(y)3305
-4033 y Fd(i)3368 4009 y Fq(m)m(ust)g(b)s(e)g(used)0 4122
-y(to)e(bac)m(k-transform)g Fo(q)782 4136 y Fh(z)815 4145
-y Fe(2)883 4122 y Fq(in)m(to)g(the)f(reference)h(frame.)41
-b(This)28 b(is)i(sho)m(wn)f(as)i(follo)m(ws:)611 4292
-y Fo(q)652 4306 y Fh(y)687 4316 y Fd(i)800 4292 y Fq(=)83
-b Fo(q)995 4306 y Fh(x)1038 4292 y Fo(q)1079 4306 y Fh(y)1114
-4315 y Fe(1)1153 4292 y Fo(q)1194 4306 y Fh(x)1237 4254
-y Ff(\000)p Fk(1)613 4449 y Fo(q)654 4463 y Fh(z)687
-4473 y Fd(i)800 4449 y Fq(=)g Fo(q)995 4463 y Fh(x)1053
-4355 y Fi(\020)1103 4449 y Fo(q)1144 4463 y Fh(y)1179
-4472 y Fe(1)1217 4449 y Fo(q)1258 4463 y Fh(z)1291 4472
-y Fe(2)1329 4449 y Fo(q)1370 4463 y Fh(y)1405 4472 y
-Fe(1)1444 4411 y Ff(\000)p Fk(1)1538 4355 y Fi(\021)1603
-4449 y Fo(q)1644 4463 y Fh(x)1687 4411 y Ff(\000)p Fk(1)578
-4614 y Fo(q)619 4628 y Fh(z)652 4638 y Fd(i)678 4628
-y Fk(2)800 4614 y Fq(=)g Fo(q)995 4628 y Fh(y)1030 4638
-y Fd(i)1060 4614 y Fo(q)1101 4628 y Fh(z)1134 4637 y
-Fe(2)1172 4614 y Fo(q)1213 4628 y Fh(y)1248 4638 y Fd(i)1278
-4577 y Ff(\000)p Fk(1)800 4788 y Fq(=)g Fo(q)995 4802
-y Fh(x)1038 4788 y Fo(q)1079 4802 y Fh(y)1114 4811 y
-Fe(1)1153 4788 y Fo(q)1194 4802 y Fh(x)1237 4751 y Ff(\000)p
-Fk(1)1331 4788 y Fo(q)1372 4802 y Fh(z)1405 4811 y Fe(2)1443
-4694 y Fi(\020)1493 4788 y Fo(q)1534 4802 y Fh(x)1577
-4788 y Fo(q)1618 4802 y Fh(y)1653 4811 y Fe(1)1692 4788
-y Fo(q)1733 4802 y Fh(x)1776 4751 y Ff(\000)p Fk(1)1870
-4694 y Fi(\021)1920 4717 y Ff(\000)p Fk(1)2040 4788 y
-Fq(=)25 b Fo(q)2177 4802 y Fh(x)2220 4788 y Fo(q)2261
-4802 y Fh(y)2296 4811 y Fe(1)2334 4788 y Fo(q)2375 4802
-y Fh(x)2419 4751 y Ff(\000)p Fk(1)2513 4788 y Fo(q)2554
-4802 y Fh(z)2587 4811 y Fe(2)2625 4788 y Fo(q)2666 4802
-y Fh(x)2710 4788 y Fo(q)2751 4802 y Fh(y)2786 4811 y
-Fe(1)2824 4751 y Ff(\000)p Fk(1)2918 4788 y Fo(q)2959
-4802 y Fh(x)3003 4751 y Ff(\000)p Fk(1)3122 4788 y Fl(6)p
-Fq(=)g Fo(q)3259 4802 y Fh(z)3292 4812 y Fd(i)578 4958
-y Fo(q)619 4972 y Fh(z)652 4982 y Fd(i)678 4972 y Fk(3)800
-4958 y Fq(=)83 b(\()p Fo(q)1030 4972 y Fh(y)1065 4982
-y Fd(i)1095 4958 y Fo(q)1136 4972 y Fh(x)1180 4958 y
-Fq(\))15 b Fo(q)1271 4972 y Fh(z)1304 4981 y Fe(2)1342
-4958 y Fq(\()q Fo(q)1419 4972 y Fh(y)1454 4982 y Fd(i)1484
-4958 y Fo(q)1525 4972 y Fh(x)1568 4958 y Fq(\))1603 4916
-y Ff(\000)p Fk(1)1723 4958 y Fq(=)25 b Fo(q)1860 4972
-y Fh(y)1895 4981 y Fe(1)1933 4958 y Fo(q)1974 4972 y
-Fh(x)2018 4958 y Fo(q)2059 4972 y Fh(z)2092 4981 y Fe(2)2130
-4958 y Fo(q)2171 4972 y Fh(x)2214 4921 y Ff(\000)p Fk(1)2309
-4958 y Fo(q)2350 4972 y Fh(y)2385 4981 y Fe(1)2423 4921
-y Ff(\000)p Fk(1)2542 4958 y Fq(=)g Fo(q)2679 4972 y
-Fh(z)2712 4982 y Fd(i)0 5274 y Fj(qtot)47 b(=)g(-5.5511e-17)188
-b(7.0711e-01)g(1.2326e-32)g(7.0711e-01)0 5387 y(qtotchk)46
-b(=)h(-5.5511e-17)188 b(7.0711e-01)g(5.5511e-17)h(7.0711e-01)p
-eop
-6 5 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(6)0 399
-y Fm(1.4)112 b(Application)35 b(of)j(quaternions)g(in)e(co)s(ordinate)i
-(frame)f(transformations)0 570 y Fq(In)m(terpretations)30
-b(of)h(quaternions.)0 810 y Fr(1.4.1)105 b(Euler)35 b(angles)0
-982 y Fq(\(y)m(a)m(w-pitc)m(h-roll\))71 b(ma)m(y)36 b(b)s(e)f(used)g
-(to)h(construct)g(an)f(inertial-to-b)s(o)s(dy)e(quaterion)i
-Fo(q)2995 997 y Fh(bi)3088 982 y Fq(as)h(follo)m(ws.)55
-b(The)35 b(y)m(a)m(w)0 1095 y(rotation)c(is)e(ab)s(out)h(the)h
-Fo(z)j Fq(axis)c(in)f(the)i(inertial)d(frame)1508 1299
-y Fo(q)1549 1313 y Fh(y)1615 1299 y Fq(=)1711 1205 y
-Fi(\020h)1841 1299 y Fq(0)84 b(0)f(1)2185 1205 y Fi(i)2240
-1299 y Fo(;)15 b( )2342 1205 y Fi(\021)0 1519 y Fq(The)30
-b(pitc)m(h)g(rotation)g(is)g(ab)s(out)g(the)g Fo(y)k
-Fq(axis)29 b(in)h(frame)g(1)h(\()p Fo(y)s Fq(-axis)f(after)h(the)f(y)m
-(a)m(w)i(rotation)e(is)g(made\))1500 1739 y Fo(q)1541
-1753 y Fh(p)1577 1762 y Fe(1)1640 1739 y Fq(=)1736 1644
-y Fi(\020h)1866 1739 y Fq(0)84 b(1)f(0)2210 1644 y Fi(i)2265
-1739 y Fo(;)15 b(\022)2351 1644 y Fi(\021)0 1953 y Fq(The)30
-b(roll)f(rotation)h(is)g(made)g(ab)s(out)g(the)h Fo(x)f
-Fq(axis)g(in)f(frame)h(2)1495 2158 y Fo(q)1536 2172 y
-Fh(r)1568 2181 y Fe(2)1631 2158 y Fq(=)1727 2063 y Fi(\020h)1857
-2158 y Fq(1)84 b(0)f(0)2201 2063 y Fi(i)2256 2158 y Fo(;)15
-b(')2355 2063 y Fi(\021)0 2372 y Fq(In)28 b(order)g(to)h(construct)g(a)
-g(single)e(quaterion)h Fo(q)1626 2387 y Fh(bi)1712 2372
-y Fq(relating)g(the)g(inertial)f(to)i(b)s(o)s(dy)e(axis)h(rotation,)h
-(rotations)g Fo(q)3826 2386 y Fh(p)3862 2395 y Fe(1)0
-2485 y Fq(and)h Fo(q)218 2499 y Fh(r)250 2508 y Fe(2)318
-2485 y Fq(m)m(ust)g(b)s(e)g(expressed)g(in)f(the)i(inertial)d(frame:)
-1199 2689 y Fo(q)1240 2703 y Fh(p)1363 2689 y Fq(=)82
-b Fo(q)1557 2703 y Fh(y)1598 2689 y Fo(q)1639 2703 y
-Fh(p)1675 2712 y Fe(1)1713 2689 y Fo(q)1754 2703 y Fh(y)1795
-2652 y Ff(\000)p Fk(1)1201 2827 y Fo(q)1242 2841 y Fh(r)1363
-2827 y Fq(=)g Fo(q)1557 2841 y Fh(y)1598 2827 y Fo(q)1639
-2841 y Fh(r)1671 2850 y Fe(1)1710 2827 y Fo(q)1751 2841
-y Fh(y)1792 2790 y Ff(\000)p Fk(1)1911 2827 y Fq(=)25
-b Fo(q)2048 2841 y Fh(y)2089 2827 y Fo(q)2130 2841 y
-Fh(p)2166 2850 y Fe(1)2204 2827 y Fo(q)2245 2841 y Fh(r)2277
-2850 y Fe(2)2315 2827 y Fo(q)2356 2841 y Fh(p)2392 2850
-y Fe(1)2430 2790 y Ff(\000)p Fk(1)2524 2827 y Fo(q)2565
-2841 y Fh(y)2606 2790 y Ff(\000)p Fk(1)0 3032 y Fq(and)30
-b(so)756 3144 y Fo(q)797 3159 y Fh(bi)881 3144 y Fq(=)24
-b Fo(q)1017 3158 y Fh(r)1055 3144 y Fo(q)1096 3159 y
-Fh(b)1130 3144 y Fo(q)1171 3158 y Fh(y)1237 3144 y Fq(=)1333
-3050 y Fi(\020)1383 3144 y Fo(q)1424 3158 y Fh(y)1465
-3144 y Fo(q)1506 3158 y Fh(p)1542 3167 y Fe(1)1580 3144
-y Fo(q)1621 3158 y Fh(r)1653 3167 y Fe(2)1691 3144 y
-Fo(q)1732 3158 y Fh(p)1768 3167 y Fe(1)1806 3107 y Ff(\000)p
-Fk(1)1900 3144 y Fo(q)1941 3158 y Fh(y)1982 3107 y Ff(\000)p
-Fk(1)2076 3050 y Fi(\021)15 b(\020)2191 3144 y Fo(q)2232
-3158 y Fh(y)2273 3144 y Fo(q)2314 3158 y Fh(p)2350 3167
-y Fe(1)2387 3144 y Fo(q)2428 3158 y Fh(y)2469 3107 y
-Ff(\000)p Fk(1)2564 3050 y Fi(\021)2628 3144 y Fo(y)2673
-3158 y Fh(y)2740 3144 y Fq(=)25 b Fo(q)2877 3158 y Fh(y)2918
-3144 y Fo(q)2959 3158 y Fh(p)2995 3167 y Fe(1)3033 3144
-y Fo(q)3074 3158 y Fh(r)3106 3167 y Fe(2)0 3322 y Fq(Notice)30
-b(that)f(the)g(order)g(of)g(the)g(rotations)g(is)f(rev)m(ersed)h(when)e
-(the)i(un)m(transformed)f(rotations)h Fo(q)3374 3336
-y Fh(y)3415 3322 y Fq(,)g Fo(q)3510 3336 y Fh(p)3546
-3345 y Fe(1)3584 3322 y Fq(,)h Fo(q)3680 3336 y Fh(r)3712
-3345 y Fe(2)3779 3322 y Fq(are)0 3435 y(used)g(instead)f(of)i
-(quaternions)e(transformed)h(to)h(the)f(inertial)f(frame)h
-Fo(q)2504 3449 y Fh(r)2541 3435 y Fq(,)h Fo(q)2638 3450
-y Fh(b)2672 3435 y Fq(,)f Fo(q)2768 3449 y Fh(y)2809
-3435 y Fq(.)0 3675 y Fr(1.4.2)105 b(Co)s(ordinate)35
-b(transformation)f(matrices)g(and)h(quaternions)0 3846
-y Fq(A)26 b(unit)e(quaternion)g(\()p Fo(v)s(;)15 b(\022)s
-Fq(\))26 b(ma)m(y)g(b)s(e)f(in)m(terpreted)f(as)i(a)g(rotation)g(of)f
-Fo(\022)j Fq(degrees)e(ab)s(out)f(the)h(axis)f Fo(v)s
-Fq(.)39 b(Application)0 3959 y(of)31 b(this)e(rotation)i(to)g(a)f(v)m
-(ector)i Fo(x)f Fq(is)e(illustrated)f(b)s(elo)m(w:)903
-4721 y Fo(v)23 b Fl(\002)d Fo(x)p 3 setlinewidth np 1604
-4343 453 151 0.00 360.00 ellipse st 3 setlinewidth np
-1604 5250 a 1604 4344 li st 3 setlinewidth np 1619 4404
-a 1604 4344 li 1588 4404 li st 3 setlinewidth np 1604
-5250 a 1604 4948 li st 3 setlinewidth np 1619 5009 a
-1604 4948 li 1588 5009 li st 3 setlinewidth np 1604 5250
-a 1150 4344 li st 3 setlinewidth np 1191 4391 a 1150
-4344 li 1164 4405 li st 3 setlinewidth np 1151 4343 a
-1177 4343 li st 3 setlinewidth np 1204 4343 a 1230 4343
-li st 3 setlinewidth np 1257 4343 a 1283 4343 li st 3
-setlinewidth np 1311 4343 a 1337 4343 li st 3 setlinewidth
-np 1364 4343 a 1390 4343 li st 3 setlinewidth np 1417
-4343 a 1443 4343 li st 3 setlinewidth np 1471 4343 a
-1497 4343 li st 3 setlinewidth np 1524 4343 a 1550 4343
-li st 3 setlinewidth np 1577 4343 a 1603 4343 li st 3
-setlinewidth np 1604 4343 a 1586 4357 li st 3 setlinewidth
-np 1570 4371 a 1552 4385 li st 3 setlinewidth np 1536
-4398 a 1518 4412 li st 3 setlinewidth np 1502 4425 a
-1484 4439 li st 3 setlinewidth np 1468 4452 a 1450 4466
-li st 3 setlinewidth np 1434 4479 a 1416 4493 li st 3
-setlinewidth np 1452 4446 a 1415 4495 li 1471 4469 li
-st 3 setlinewidth np 1604 5250 a 1452 4495 li st 3 setlinewidth
-np 1479 4551 a 1452 4495 li 1449 4557 li st 3 setlinewidth
-np 2207 4722 a 1641 4571 li st 3 setlinewidth np 1703
-4572 a 1641 4571 li 1695 4601 li st 3 setlinewidth np
-1868 4118 a 1377 4382 li st 3 setlinewidth np 1423 4340
-a 1377 4382 li 1437 4367 li st 3 setlinewidth np 1151
-4343 a 1151 4370 li st 3 setlinewidth np 1151 4398 a
-1151 4425 li st 3 setlinewidth np 1151 4453 a 1151 4480
-li st 3 setlinewidth np 1151 4508 a 1151 4535 li st 3
-setlinewidth np 1151 4563 a 1151 4590 li st 3 setlinewidth
-np 1151 4618 a 1151 4645 li st 3 setlinewidth np 1135
-4586 a 1150 4646 li 1165 4586 li st 1642 5061 a(v)1113
-4343 y(x)1257 4532 y(\022)2246 4759 y Fl(h)p Fo(x;)15
-b(v)s Fl(i)p Fo(v)2246 4872 y Fq(pro)5 b(jection)30 b(of)g
-Fo(x)h Fq(on)m(to)g Fo(v)1906 4117 y Fq(pro)5 b(jection)30
-b(of)h Fo(x)f Fq(o\013)h(of)f Fo(v)1906 4230 y(x)20 b
-Fl(\000)g(h)p Fo(x;)15 b(v)s Fl(i)p Fo(v)p 3 setlinewidth
-np 1481 4060 435 93.73 139.40 arc st 3 setlinewidth np
-1391 4506 a 1452 4495 li 1393 4476 li st eop
-7 6 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(7)0 399
-y(The)28 b(v)m(ector)h Fo(x)507 413 y Fh(e)569 399 y
-Fq(=)c Fl(h)q Fo(x;)15 b(v)s Fl(i)h Fo(v)31 b Fq(is)c(the)h(pro)5
-b(jection)28 b(of)g Fo(x)g Fq(on)m(to)i Fo(v)h Fq(and)c(is)h(unc)m
-(hanged)f(b)m(y)h(the)g(rotation.)41 b(The)27 b(v)m(ector)0
-511 y Fo(x)52 526 y Fh(e)p Ff(?)171 511 y Fq(=)g Fo(x)22
-b Fl(\000)e Fo(x)486 525 y Fh(e)555 511 y Fq(is)31 b(orthogonal)h(to)g
-Fo(v)j Fq(and)c(is)g(rotated)i(b)m(y)f Fo(\022)h Fq(degrees)g(ab)s(out)
-e Fo(x)p Fq(.)45 b(The)31 b(plane)g(of)h(the)g(rotation)g(is)0
-624 y(spanned)d(b)m(y)h Fo(x)532 639 y Fh(e)p Ff(?)654
-624 y Fq(and)g Fo(v)24 b Fl(\002)c Fo(x)30 b Fq(Th)m(us)f(the)i
-(rotated)g(v)m(ector)h Fo(x)20 b Fl(\000)g Fo(r)33 b
-Fq(ma)m(y)e(b)s(e)f(written)f(as)1127 782 y Fo(x)1179
-796 y Fh(r)1242 782 y Fq(=)c Fo(x)1390 796 y Fh(e)1447
-782 y Fq(+)20 b(\()p Fo(x)g Fl(\000)g Fo(x)1788 796 y
-Fh(e)1825 782 y Fq(\))15 b(cos)q(\()p Fo(\022)s Fq(\))20
-b(+)g(\()p Fo(v)k Fl(\002)c Fo(x)p Fq(\))15 b(sin)o(\()p
-Fo(\022)s Fq(\))p Fo(:)940 b Fq(\(1.4\))0 941 y(where)41
-b(the)h(\014rst)f(term)h(re\015ects)g(the)g(unc)m(hanged)f(p)s(ortion)f
-(of)i Fo(x)f Fq(and)g(the)h(second)g(t)m(w)m(o)h(terms)f(denote)g(the)0
-1054 y(rotation)31 b(in)e(the)h(plane)g(normal)f(to)i
-Fo(v)s Fq(.)118 1166 y(The)c(co)s(ordinate)g(transformation)f(applied)f
-(to)j Fo(x)e Fq(ma)m(y)i(b)s(e)f(computed)f(b)m(y)h(applying)e
-(equation)i(\(1.4\))i(to)f(the)0 1279 y Fo(x)p Fq(,)j
-Fo(y)s Fq(,)f Fo(z)k Fq(unit)29 b(v)m(ectors.)43 b(The)29
-b(ab)s(o)m(v)m(e)j(application)d(in)m(v)m(olv)m(es)h(the)h(rotation)f
-(of)h(a)g(v)m(ector)h(ab)s(out)e(an)g(axis.)40 b(Since)730
-1354 y Fi(2)730 1500 y(6)730 1553 y(4)827 1435 y Fo(v)871
-1449 y Fk(1)827 1548 y Fo(v)871 1562 y Fk(2)827 1660
-y Fo(v)871 1674 y Fk(3)952 1354 y Fi(3)952 1500 y(7)952
-1553 y(5)1027 1548 y Fl(\002)1118 1354 y Fi(2)1118 1500
-y(6)1118 1553 y(4)1215 1435 y Fo(x)1217 1548 y(y)1215
-1660 y(x)1309 1354 y Fi(3)1309 1500 y(7)1309 1553 y(5)1389
-1548 y Fq(=)25 b(\()p Fo(v)1564 1562 y Fk(2)1604 1548
-y Fo(z)f Fl(\000)c Fo(v)1805 1562 y Fk(3)1845 1548 y
-Fo(y)s Fq(\))1921 1527 y(^)1928 1548 y Fo(i)h Fq(+)e(\()p
-Fo(v)2149 1562 y Fk(3)2189 1548 y Fo(x)h Fl(\000)g Fo(v)2396
-1562 y Fk(1)2436 1548 y Fo(z)t Fq(\))2516 1527 y(^)2517
-1548 y Fo(j)26 b Fq(+)20 b(\()p Fo(v)2750 1562 y Fk(1)2790
-1548 y Fo(y)j Fl(\000)d Fo(v)2993 1562 y Fk(2)3033 1548
-y Fo(x)p Fq(\))p Fo(k)0 1814 y Fq(w)m(e)31 b(ma)m(y)g(write)1062
-2082 y Fo(x)1114 2096 y Fh(r)1235 2082 y Fq(=)82 b Fo(v)1432
-2096 y Fk(1)1472 2082 y Fo(v)23 b Fq(+)d(\()p Fo(x)h
-Fl(\000)f Fo(v)1873 2096 y Fk(1)1912 2082 y Fo(v)s Fq(\))15
-b(cos)i Fo(\022)22 b Fq(+)2303 1888 y Fi(2)2303 2034
-y(6)2303 2087 y(4)2454 1969 y Fq(0)2435 2082 y Fo(v)2479
-2096 y Fk(3)2400 2195 y Fl(\000)p Fo(v)2515 2209 y Fk(2)2596
-1888 y Fi(3)2596 2034 y(7)2596 2087 y(5)2666 2082 y Fq(sin)14
-b Fo(\022)1069 2464 y(y)1114 2478 y Fh(r)1235 2464 y
-Fq(=)82 b Fo(v)1432 2478 y Fk(2)1472 2464 y Fo(v)23 b
-Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873 2478 y Fk(2)1912
-2464 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22 b Fq(+)2303
-2270 y Fi(2)2303 2416 y(6)2303 2469 y(4)2400 2351 y Fl(\000)p
-Fo(v)2515 2365 y Fk(3)2454 2464 y Fq(0)2435 2577 y Fo(v)2479
-2591 y Fk(1)2596 2270 y Fi(3)2596 2416 y(7)2596 2469
-y(5)2666 2464 y Fq(sin)14 b Fo(\022)1071 2846 y(z)1113
-2860 y Fh(r)1235 2846 y Fq(=)82 b Fo(v)1432 2860 y Fk(3)1472
-2846 y Fo(v)23 b Fq(+)d(\()p Fo(x)h Fl(\000)f Fo(v)1873
-2860 y Fk(3)1912 2846 y Fo(v)s Fq(\))15 b(cos)i Fo(\022)22
-b Fq(+)2303 2652 y Fi(2)2303 2798 y(6)2303 2851 y(4)2435
-2733 y Fo(v)2479 2747 y Fk(2)2400 2846 y Fl(\000)p Fo(v)2515
-2860 y Fk(1)2454 2958 y Fq(0)2596 2652 y Fi(3)2596 2798
-y(7)2596 2851 y(5)2666 2846 y Fq(sin)14 b Fo(\022)0 3119
-y Fq(\(The)30 b(signs)f(are)i(rev)m(ersed)g(since)e(w)m(e're)j(mo)m
-(ving)e(the)g(co)s(ordinate)h(axes,)g(not)f(the)h(v)m(ector.\))118
-3232 y(An)26 b(alternativ)m(e)h(deriv)-5 b(ation)24 b(for)i(the)h
-(transformation)e(matrix)h(from)g(equation)g(\(1.4\))i(is)d(as)h(follo)
-m(ws.)39 b(De\014ne)7 3379 y(\026)-52 b Fo(q)28 b Fq(=)d(imag)q(\()p
-Fo(q)s Fq(\))h(=)594 3285 y Fi(h)675 3379 y Fo(q)716
-3393 y Fk(1)838 3379 y Fo(q)879 3393 y Fk(2)1001 3379
-y Fo(q)1042 3393 y Fk(3)1122 3285 y Fi(i)1162 3308 y
-Fh(T)1242 3379 y Fq(=)f Fo(v)18 b Fq(sin)o(\()p Fo(\022)s(=)p
-Fq(2\),)31 b Fl(k)q Fo(v)s Fl(k)26 b Fq(=)f(1.)41 b(Then)359
-3568 y Fo(x)411 3582 y Fh(r)532 3568 y Fq(=)83 b Fo(v)s(v)780
-3530 y Fh(T)836 3568 y Fo(x)20 b Fq(+)g(\()p Fo(x)g Fl(\000)g
-Fo(v)s(v)1291 3530 y Fh(T)1347 3568 y Fo(x)p Fq(\))15
-b(cos)q(\()p Fo(\022)s Fq(\))20 b Fl(\000)g Fq(\(\()p
-Fo(v)k Fl(\002)c Fo(e)2069 3582 y Fk(1)2109 3568 y Fq(\))p
-Fo(x)2196 3582 y Fk(1)2256 3568 y Fq(+)g(\()p Fo(v)k
-Fl(\002)c Fo(e)2583 3582 y Fk(2)2622 3568 y Fq(\))p Fo(x)2709
-3582 y Fk(2)2769 3568 y Fq(+)g(\()p Fo(v)k Fl(\002)c
-Fo(e)3096 3582 y Fk(3)3136 3568 y Fq(\))p Fo(x)3223 3582
-y Fk(3)3263 3568 y Fq(\))15 b(sin)o(\()p Fo(\022)s Fq(\))532
-3721 y(=)686 3627 y Fi(\020)736 3721 y Fo(I)22 b Fq(cos)16
-b Fo(\022)22 b Fq(+)e Fo(v)s(v)1185 3684 y Fh(T)1241
-3721 y Fq(\(1)h Fl(\000)f Fq(cos)c Fo(\022)s Fq(\))j(+)h(\()p
-Fo(v)k Fl(\002)c Fo(I)7 b Fq(\))15 b(sin)f Fo(\022)2225
-3627 y Fi(\021)2289 3721 y Fo(x)0 3890 y Fq(where)31
-b Fo(v)24 b Fl(\002)d Fo(I)38 b Fq(is)31 b(de\014ned)f(b)m(y)h(the)h
-(column-b)m(y-column)e(v)m(ector)j(cross)e(pro)s(duct.)43
-b(F)-8 b(rom)32 b(equation)f(1.3)i(and)e(the)0 4003 y(trigonometric)f
-(half-angle)g(form)m(ulae)g(w)m(e)h(ha)m(v)m(e)519 4172
-y(cos)16 b Fo(\022)85 b Fq(=)e(cos)1060 4134 y Fk(2)1099
-4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))21 b Fl(\000)f Fq(sin)1529
-4134 y Fk(2)1568 4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26
-b(=)f(1)c Fl(\000)f Fq(2)15 b(sin)2225 4134 y Fk(2)2264
-4172 y Fq(\()p Fo(\022)s(=)p Fq(2\))26 b(=)f(1)c Fl(\000)f
-Fq(2)2809 4077 y Fi(\020)2859 4172 y Fq(1)h Fl(\000)f
-Fq(real)o(\()p Fo(q)s Fq(\))3276 4134 y Fk(2)3316 4077
-y Fi(\021)529 4325 y Fq(sin)14 b Fo(\022)85 b Fq(=)e(2)15
-b(cos)q(\()p Fo(\022)s(=)p Fq(2\))g(sin\()p Fo(\022)s(=)p
-Fq(2\))26 b(=)f(2real\()p Fo(q)s Fq(\))15 b(sin)o(\()p
-Fo(\022)s(=)p Fq(2\))26 b(=)f(2)p Fo(q)2629 4339 y Fk(4)2684
-4325 y Fq(sin)o(\()p Fo(\022)s(=)p Fq(2\))p Fo(:)0 4483
-y Fq(Substituting)j(the)i(ab)s(o)m(v)m(e)i(in)m(to)e
-Fo(x)1171 4497 y Fh(r)1239 4483 y Fq(w)m(e)h(obtain)530
-4702 y Fo(x)582 4716 y Fh(r)702 4702 y Fq(=)856 4558
-y Fi(")905 4702 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4664 y
-Fk(2)1073 4724 y(4)1136 4702 y Fl(\000)20 b Fq(1\))h(+)f(2)p
-Fo(v)s(v)1558 4664 y Fh(T)1629 4558 y Fi( )1705 4640
-y Fq(sin)1816 4606 y Fk(2)1856 4640 y Fq(\()p Fo(\022)s(=)p
-Fq(2\))p 1705 4681 358 4 v 1705 4768 a(sin)1816 4733
-y Fk(2)1856 4768 y Fq(\()p Fo(\022)s(=)p Fq(2\))2073
-4558 y Fi(!)2154 4702 y Fq(\(1)h Fl(\000)e Fo(q)2389
-4664 y Fk(2)2386 4724 y(4)2429 4702 y Fq(\))h(+)g(2\()p
-Fo(v)25 b Fl(\002)19 b Fo(I)7 b Fq(\))p Fo(q)2937 4716
-y Fk(4)2992 4702 y Fq(sin)14 b Fo(\022)s(=)p Fq(2)3255
-4558 y Fi(#)3319 4702 y Fo(x)702 4984 y Fq(=)856 4840
-y Fi(")905 4984 y Fo(I)7 b Fq(\(2)p Fo(q)1076 4946 y
-Fk(2)1073 5006 y(4)1136 4984 y Fl(\000)20 b Fq(1\))h(+)f(2)7
-b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1552 4946 y
-Fh(T)1742 4922 y Fq(1)20 b Fl(\000)g Fo(q)1942 4889 y
-Fk(2)1939 4945 y(4)p 1617 4963 490 4 v 1617 5046 a Fq(1)h
-Fl(\000)f Fq(cos)1895 5020 y Fk(2)1935 5046 y Fq(\()p
-Fo(\022)s(=)p Fq(2)2136 4984 y(+)g(2\()7 b(\026)-52 b
-Fo(q)24 b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2586 4998 y
-Fk(4)2625 4840 y Fi(#)2689 4984 y Fo(x)702 5216 y Fq(=)856
-5122 y Fi(h)895 5216 y Fo(I)g Fq(\(2)p Fo(q)1066 5179
-y Fk(2)1063 5239 y(4)1127 5216 y Fl(\000)20 b Fq(1\))h(+)f(2)7
-b(\026)-52 b Fo(q)10 b Fq(\026)-52 b Fo(q)1543 5179 y
-Fh(T)1618 5216 y Fq(+)20 b(2\()7 b(\026)-52 b Fo(q)24
-b Fl(\002)c Fo(I)7 b Fq(\))p Fo(q)2068 5230 y Fk(4)2107
-5122 y Fi(i)2161 5216 y Fo(x)702 5384 y Fq(=)83 b(\(2)p
-Fo(q)980 5347 y Fk(2)977 5407 y(4)1040 5384 y Fl(\000)20
-b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-51
-b Fo(q)1509 5347 y Fh(T)1563 5384 y Fo(x)21 b Fq(+)f(2)p
-Fo(q)1813 5398 y Fk(4)1852 5384 y Fq(\()7 b(\026)-52
-b Fo(q)23 b Fl(\002)d Fo(x)p Fq(\))p eop
-8 7 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)g(Quaternions)f(\(In)m(tro)s
-(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p Fo(:)p Fq(1)439
-b Fn(\(c\))32 b(1998)908 b Fq(8)0 399 y Fr(Remark)34
-b(1.4)46 b Fq(The)32 b(ab)s(o)m(v)m(e)i(deriv)-5 b(ation)31
-b(treats)i(a)f(quaternion)g(as)g(a)h(transformation)e(up)s(on)g(a)i(v)m
-(ector)g(within)0 511 y(a)f(linear)d(space.)44 b(An)31
-b(alternativ)m(e)h(con)m(v)m(en)m(tion)g(is)f(used)f(in)g([R)-10
-b(W91)r(],)31 b(in)f(whic)m(h)g(the)i(quaternion)e(is)g(treated)j(as)0
-624 y(a)e(transformation)e(up)s(on)g(the)h(basis)g(v)m(ectors)h(of)g(a)
-f(frame.)41 b(The)30 b(latter)g(con)m(v)m(en)m(tion)i(results)d(in)g(a)
-i(sign)e(c)m(hange)0 737 y(of)i(the)f(angle)g(of)h(rotation,)g(i.e.,)
-1150 941 y Fo(x)1202 955 y Fh(r)1323 941 y Fq(=)83 b(\(2)p
-Fo(q)1601 904 y Fk(2)1598 964 y(4)1661 941 y Fl(\000)20
-b Fq(1\))p Fo(x)h Fq(+)f(2)7 b(\026)-52 b Fo(q)10 b Fq(\026)-52
-b Fo(q)2129 904 y Fh(T)2184 941 y Fo(x)20 b Fq(+)g(2)p
-Fo(q)2433 955 y Fk(4)2472 941 y Fq(\()7 b(\026)-52 b
-Fo(q)24 b Fl(\002)c Fo(x)p Fq(\))0 1146 y(Use)29 b(of)g(the)f(latter)h
-(con)m(v)m(en)m(tion)h(results)d(in)g(a)i(similar)d(c)m(hange)k(in)d
-(sign)h(in)f(the)i(time)f(deriv)-5 b(ativ)m(e)28 b(of)h(the)f(quater-)0
-1259 y(nion,)h(discussed)g(in)g(1.5.)0 1471 y Fr(M-\014le)46
-b Fj(qtransv)28 b Fq(Rotate)k(a)f(v)m(ector)227 1696
-y Fj(qtransv)46 b(is)h(the)g(function)f(defined)g(from:)g
-(/home3/hodel/oct/quat/qt)o(rans)o(v.m)275 1922 y(vr)h(=)h
-(qtransv\(vv,qr\))275 2035 y(rotate)e(a)i(3-vector)d(as)i(specified)f
-(by)h(quaternion)e(qr)275 2148 y(q)i(=)h(\(ee,th\))93
-b(\(vector,)46 b(angle)g(notation\))275 2261 y(vr)h(=)h(\(vv)f(.)g
-(ee\)*ee)f([projection)f(on)i(ee)g(unchanged)e(])514
-2374 y(+)i([vv)g(-)g(\(vv)g(.)h(ee\)*ee])e(cos\(th\))93
-b([what's)46 b(left)h(gets)f(scaled)g(by)i(cosine])514
-2487 y(+)f(\(vv)g(x)g(ee\))g(sin\(th\))571 b([and)47
-b(the)g(sine)f(term)h(completes)e(the)i(rotation])0 2711
-y Fr(M-\014le)f Fj(qtransvmat)57 b Fq(Obtain)30 b(3)20
-b Fl(\002)g Fq(3)31 b(rotation)g(matrix)e(from)h(a)h(quaternion)275
-2936 y Fj([xv,yv,zv])45 b(=)i(qtransvmat\(q\))275 3049
-y(xm)g(=)h(qtransvmat\(q\),)c(xm)j(=)g([xv)g(yv)g(zv])275
-3162 y(compute)f(x,y,z)g(axes)h(rotated)f(per)h(specified)e(quaternion)
-g(q)0 3387 y Fr(Example)34 b(1.4)46 b Fq(Use)30 b(of)h(quaternions)e
-(to)i(view)f(b)s(o)s(dy/inertial)d(frame)k(transformations:)0
-3575 y Fj(degrees)46 b(=)h(pi/180;)189 b(daz)47 b(=)h(30*degrees;)188
-b(del)46 b(=)i(-20*degrees;)0 3688 y(qazimuth)e(=)h
-(quaternion\([0,0,1],daz\);)0 3801 y(qelevation)e(=)i
-(quaternion\([cos\(daz\),sin\(d)o(az\),)o(0],)o(del\))o(;)0
-3914 y(qview)f(=)i(qmult\(qelevation,qazimut)o(h\);)0
-4139 y(th)f(=)h(0:5:20;)0 4252 y(ov)f(=)h(ones\(size\(th\)\);)0
-4365 y(myth)f(=)g([th,max\(th\)*ov)d(;)j(0*ov,th];)0
-4478 y(myth)g(=)g([[0:5:20])e(,)j(20*ones\(1,4\),20*ones\(1,4)o(\);)41
-b(...)382 4591 y(zeros\(1,5\),)k(5:5:20,)g(20*ones\(1,4\);)g(...)382
-4704 y(zeros\(1,5\),)g(zeros\(1,4\),)f([5:5:20]];)0 4930
-y(#)j(inertial)f(frame)g(quaternion)0 5043 y(qin)h(=)g(quaternion\([1)e
-(0)i(0],180*degrees\);)0 5156 y(for)g(kk=1:length\(myth\(1,:\)\))95
-5269 y(figure\(kk\))95 5381 y(thy)g(=)h(myth\(1,kk\);)140
-b(thp)47 b(=)g(myth\(2,kk\);)141 b(thr)46 b(=)i(myth\(3,kk\);)p
-eop
-9 8 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)436 b Fn(\(c\))31 b(1998)902 b Fq(9)95 399
-y Fj(#)48 b(avoid)e(transformations)e(by)j(reversing)e(the)i(order)g
-(of)g(multiplication!)95 511 y(qyi)g(=)h(quaternion\([0,0,1],thy*d)o
-(egr)o(ees\))o(;)95 624 y(qp1)f(=)h(quaternion\([0,1,0],thp*d)o(egr)o
-(ees\))o(;)95 737 y(qr2)f(=)h(quaternion\([1,0,0],thr*d)o(egr)o(ees\))o
-(;)95 850 y(qbi)f(=)h(qmult\(qyi,qmult\(qp1,qr2\))o(\);)95
-1076 y(printf\("yaw=\0458.4f,)43 b(pitch=\0458.4f,)i(\\n)190
-b(qbi)47 b(=)g(\(\0458.4f\)i)f(+)h(\(\0458.4e\)j)f(+)h(\(\0458.4f\)k)f
-(+)h(\()0 1189 y(\0458.4f\)\\n",thy,thp,)c(...)382 1302
-y(qbi\(1\),)j(qbi\(2\),)f(qbi\(3\),)h(qbi\(4\)\);)95
-1415 y([vv,th])g(=)i(quaternion\(qbi\);)95 1528 y(printf\(")285
-b(=)47 b(\(vector\))f(=)h([\0458.4f)f(\0458.4f)h(\0458.4f],)e
-(th=\0455.2f)h(deg\\n",)g(...)382 1641 y(vv\(1\),)g(vv\(2\),)g
-(vv\(3\),)g(th*180/pi\);)95 1866 y(#)i(transform)d(qbi)i(to)g
-(reference)f(coordinates)95 1979 y(qb)i(=)f(qmult\(qin,qbi\);)95
-2092 y(title\(sprintf\("yaw=\0455.2f,)41 b(pitch=\0455.2f,)k
-(roll=\0455.2f)g(\(deg\)",thy,thp,thr\)\))95 2205 y
-(coordinate_plot\(qin,qb,qvi)o(ew\);)95 2318 y(gset)i(terminal)f
-(postscript)f(eps)95 2431 y(eval\(sprintf\("gset)e(output)j
-('fig\045d.eps'",kk\)\);)95 2544 y(replot)95 2657 y(gset)h(terminal)f
-(x11)0 2770 y(endfor)0 2957 y Fq(Results:)316 2924 y
-Fk(1)50 4816 y @beginspecial 50 @llx 50 @lly 410 @urx
-302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis  0.00 deg) Cshow
-2737 4900 M
-(reference coordinates) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-2252 2272 L
-2737 2625 Pls
-2252 2272 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
--177 970 V
-2737 2625 Crs
-2560 3595 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-2252 2272 L
-2737 2625 Star
-2252 2272 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
--177 970 V
-2737 2625 Box
-2560 3595 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--177 970 V
--89 0 V
-1.000 UL
-LT3
-3323 1302 M
--1789 0 V
-1181 3242 L
-970 706 V
-1789 0 V
-4293 2008 L
-3323 1302 L
-970 706 V
--1788 0 V
-2151 3948 L
-2505 2008 L
-1534 1302 L
-1.000 UL
-LT4
-3940 3948 M
-2969 3242 L
--1788 0 V
-1788 0 V
-3323 1302 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis  0.00 deg) Cshow
-2737 4900 M
-(yaw= 0.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Pls
-3369 3141 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
--73 0 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 0 4911 1560 4 v 104 4965 a Fe(1)138 4997
-y Fc(due)28 b(to)g(details)h(of)g(visualization)h(soft)n(w)n(are,)h
-(the)d Fb(x)18 b Fa(\000)g Fb(y)j Fa(\000)e Fb(z)31 b
-Fc(axes)d(do)g(not)g(app)r(ear)h(as)g(a)f(righ)n(t-handed)f(co)r
-(ordinate)j(system.)0 5088 y(Sorry)-6 b(.)p eop
-10 9 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(10)50 2045
-y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
-@rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis  5.00 deg) Cshow
-2737 4900 M
-(yaw= 5.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3409 2580 M
--672 45 V
-3409 2580 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-693 514 V
-2737 2625 Pls
-3430 3139 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-78 5 V
-10 10 V
-6 10 V
-3 9 V
--3 7 V
--6 6 V
--10 3 V
--14 2 V
--16 -1 V
--18 -3 V
--20 -6 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 10.00 deg) Cshow
-2737 4900 M
-(yaw=10.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3346 2535 M
--609 90 V
-3346 2535 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-749 508 V
-2737 2625 Pls
-3486 3133 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-83 9 V
-8 11 V
-5 9 V
-0 8 V
--4 7 V
--8 5 V
--11 2 V
--15 1 V
--17 -2 V
--19 -4 V
--21 -6 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
-410 @urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 15.00 deg) Cshow
-2737 4900 M
-(yaw=15.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3279 2491 M
--542 134 V
-3279 2491 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-800 499 V
-2737 2625 Pls
-3537 3124 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-87 14 V
-7 10 V
-2 9 V
--1 7 V
--6 6 V
--9 4 V
--13 2 V
--16 -1 V
--18 -3 V
--20 -5 V
--20 -6 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 20.00 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3207 2448 M
--470 177 V
-3207 2448 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-90 18 V
-5 10 V
-1 8 V
--3 7 V
--7 5 V
--11 3 V
--14 1 V
--17 -2 V
--19 -3 V
--20 -6 V
--20 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial eop
-11 10 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(11)50 2045
-y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
-@rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 20.00 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch= 0.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3207 2448 M
--470 177 V
-3207 2448 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Crs
-3102 1731 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--365 894 V
-90 18 V
-5 10 V
-1 8 V
--3 7 V
--7 5 V
--11 3 V
--14 1 V
--17 -2 V
--19 -3 V
--20 -6 V
--20 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 20.61 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch= 5.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3173 2527 M
--436 98 V
-3173 2527 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-405 -906 V
-2737 2625 Crs
-3142 1719 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--375 886 V
-90 18 V
-5 10 V
-1 9 V
--3 7 V
--7 5 V
--11 3 V
--15 1 V
--17 -1 V
--18 -4 V
--20 -6 V
--20 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
-410 @urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 22.34 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch=10.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3136 2606 M
--399 19 V
-3136 2606 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-441 -911 V
-2737 2625 Crs
-3178 1714 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--384 878 V
-89 18 V
-6 11 V
-0 9 V
--3 7 V
--7 5 V
--11 3 V
--15 1 V
--16 -1 V
--19 -4 V
--20 -6 V
--20 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 24.95 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch=15.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3096 2686 M
--359 -61 V
-3096 2686 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-474 -909 V
-2737 2625 Crs
-3211 1716 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--394 870 V
-90 18 V
-5 11 V
-1 9 V
--4 8 V
--7 5 V
--11 3 V
--14 1 V
--17 -1 V
--19 -4 V
--20 -6 V
--19 -8 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial eop
-12 11 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(12)50 2045
-y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 2808
-@rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 28.21 deg) Cshow
-2737 4900 M
-(yaw=20.00 deg, pitch=20.00 deg) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3054 2765 M
-2737 2625 L
-3054 2765 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-844 485 V
-2737 2625 Pls
-3581 3110 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-504 -901 V
-2737 2625 Crs
-3241 1724 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3467 2625 M
--730 0 V
-3467 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-632 516 V
-2737 2625 Star
-3369 3141 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-365 -894 V
-2737 2625 Box
-3102 1731 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--403 861 V
-89 19 V
-5 11 V
-1 10 V
--3 7 V
--7 6 V
--11 3 V
--15 1 V
--16 -1 V
--19 -4 V
--20 -6 V
--19 -9 V
-1.000 UL
-LT3
-3200 1215 M
--1460 0 V
-1010 3003 L
-2274 4035 L
-1460 0 V
-4464 2247 L
-3200 1215 L
-4464 2247 L
--1460 0 V
-2274 4035 L
-3004 2247 L
-1740 1215 L
-1.000 UL
-LT4
-3734 4035 M
-2470 3003 L
--1460 0 V
-1460 0 V
-3200 1215 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 28.71 deg) Cshow
-2737 4900 M
-(yaw=20.00, pitch=20.00, roll=10.00 \(deg\)) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3622 3070 M
-2737 2625 L
-3622 3070 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-236 176 V
-2737 2625 Pls
-2973 2801 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-476 -915 V
-2737 2625 Crs
-3213 1710 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-485 353 V
-2737 2625 Star
-3222 2978 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-177 -970 V
-2737 2625 Box
-2914 1655 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--140 990 V
-100 8 V
-2 6 V
--2 5 V
--7 4 V
--11 3 V
--14 2 V
--18 1 V
--19 0 V
--21 -2 V
--22 -3 V
--21 -4 V
-1.000 UL
-LT3
-3323 1302 M
--1789 0 V
-1181 3242 L
-970 706 V
-1789 0 V
-4293 2008 L
-3323 1302 L
-970 706 V
--1788 0 V
-2151 3948 L
-2505 2008 L
-1534 1302 L
-1.000 UL
-LT4
-3940 3948 M
-2969 3242 L
--1788 0 V
-1788 0 V
-3323 1302 L
-stroke
-grestore
-end
-showpage
- @endspecial 50 3833 a @beginspecial 50 @llx 50 @lly
-410 @urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 30.19 deg) Cshow
-2737 4900 M
-(yaw=20.00, pitch=20.00, roll=15.00 \(deg\)) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3622 3070 M
-2737 2625 L
-3622 3070 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
-277 95 V
-2737 2625 Pls
-3014 2720 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-454 -927 V
-2737 2625 Crs
-3191 1698 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-485 353 V
-2737 2625 Star
-3222 2978 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-177 -970 V
-2737 2625 Box
-2914 1655 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--129 990 V
-100 6 V
-3 6 V
--2 5 V
--7 5 V
--10 3 V
--15 3 V
--17 1 V
--19 0 V
--21 -1 V
--22 -3 V
--21 -4 V
-1.000 UL
-LT3
-3323 1302 M
--1789 0 V
-1181 3242 L
-970 706 V
-1789 0 V
-4293 2008 L
-3323 1302 L
-970 706 V
--1788 0 V
-2151 3948 L
-2505 2008 L
-1534 1302 L
-1.000 UL
-LT4
-3940 3948 M
-2969 3242 L
--1788 0 V
-1788 0 V
-3323 1302 L
-stroke
-grestore
-end
-showpage
- @endspecial 2050 w @beginspecial 50 @llx 50 @lly 410
-@urx 302 @ury 2808 @rwi @setspecial
-/gnudict 120 dict def
-gnudict begin
-/Color false def
-/Solid false def
-/gnulinewidth 5.000 def
-/userlinewidth gnulinewidth def
-/vshift -46 def
-/dl {10 mul} def
-/hpt_ 31.5 def
-/vpt_ 31.5 def
-/hpt hpt_ def
-/vpt vpt_ def
-/M {moveto} bind def
-/L {lineto} bind def
-/R {rmoveto} bind def
-/V {rlineto} bind def
-/vpt2 vpt 2 mul def
-/hpt2 hpt 2 mul def
-/Lshow { currentpoint stroke M
-  0 vshift R show } def
-/Rshow { currentpoint stroke M
-  dup stringwidth pop neg vshift R show } def
-/Cshow { currentpoint stroke M
-  dup stringwidth pop -2 div vshift R show } def
-/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
-  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
-/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
- {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
-/BL { stroke gnulinewidth 2 mul setlinewidth } def
-/AL { stroke gnulinewidth 2 div setlinewidth } def
-/UL { gnulinewidth mul /userlinewidth exch def } def
-/PL { stroke userlinewidth setlinewidth } def
-/LTb { BL [] 0 0 0 DL } def
-/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def
-/LT0 { PL [] 0 1 0 DL } def
-/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def
-/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def
-/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
-/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
-/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
-/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
-/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
-/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
-/Pnt { stroke [] 0 setdash
-   gsave 1 setlinecap M 0 0 V stroke grestore } def
-/Dia { stroke [] 0 setdash 2 copy vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke
-  Pnt } def
-/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
-  currentpoint stroke M
-  hpt neg vpt neg R hpt2 0 V stroke
-  } def
-/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke
-  Pnt } def
-/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
-  hpt2 vpt2 neg V currentpoint stroke M
-  hpt2 neg 0 R hpt2 vpt2 V stroke } def
-/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke
-  Pnt  } def
-/Star { 2 copy Pls Crs } def
-/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V  hpt2 0 V  0 vpt2 V
-  hpt2 neg 0 V  closepath fill } def
-/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath fill } def
-/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke
-  Pnt  } def
-/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath fill} def
-/DiaF { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath fill } def
-/Pent { stroke [] 0 setdash 2 copy gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore Pnt } def
-/PentF { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath fill grestore } def
-/Circle { stroke [] 0 setdash 2 copy
-  hpt 0 360 arc stroke Pnt } def
-/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
-/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450  arc } bind def
-/C1 { BL [] 0 setdash 2 copy        moveto
-       2 copy  vpt 0 90 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C2 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C3 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C4 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C5 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 90 arc
-       2 copy moveto
-       2 copy  vpt 180 270 arc closepath fill
-               vpt 0 360 arc } bind def
-/C6 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 90 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C7 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 0 270 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C8 { BL [] 0 setdash 2 copy moveto
-      2 copy vpt 270 360 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C9 { BL [] 0 setdash 2 copy moveto
-      2 copy  vpt 270 450 arc closepath fill
-              vpt 0 360 arc closepath } bind def
-/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
-       2 copy moveto
-       2 copy vpt 90 180 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C11 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 0 180 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 270 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C12 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C13 { BL [] 0 setdash  2 copy moveto
-       2 copy  vpt 0 90 arc closepath fill
-       2 copy moveto
-       2 copy  vpt 180 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/C14 { BL [] 0 setdash 2 copy moveto
-       2 copy  vpt 90 360 arc closepath fill
-               vpt 0 360 arc } bind def
-/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
-               vpt 0 360 arc closepath } bind def
-/Rec   { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-       neg 0 rlineto closepath } bind def
-/Square { dup Rec } bind def
-/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
-/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
-/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
-/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
-/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
-       exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
-/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
-       2 copy vpt Square fill
-       Bsquare } bind def
-/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
-/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
-/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
-       Bsquare } bind def
-/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
-       Bsquare } bind def
-/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
-/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy vpt Square fill Bsquare } bind def
-/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
-       2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
-/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
-/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
-/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
-/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
-/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
-/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
-/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
-/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
-/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
-/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
-/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
-/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
-/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
-/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
-/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
-/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
-/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
-/DiaE { stroke [] 0 setdash vpt add M
-  hpt neg vpt neg V hpt vpt neg V
-  hpt vpt V hpt neg vpt V closepath stroke } def
-/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
-  0 vpt2 neg V hpt2 0 V 0 vpt2 V
-  hpt2 neg 0 V closepath stroke } def
-/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
-  hpt neg vpt -1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt 1.62 mul V closepath stroke } def
-/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
-  hpt neg vpt 1.62 mul V
-  hpt 2 mul 0 V
-  hpt neg vpt -1.62 mul V closepath stroke } def
-/PentE { stroke [] 0 setdash gsave
-  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
-  closepath stroke grestore } def
-/CircE { stroke [] 0 setdash 
-  hpt 0 360 arc stroke } def
-/BoxFill { gsave Rec 1 setgray fill grestore } def
-end
-gnudict begin
-gsave
-50 50 translate
-0.050 0.050 scale
-0 setgray
-newpath
-(Helvetica) findfont 140 scalefont setfont
-LTb
-672 560 M
-63 0 V
-4067 0 R
--63 0 V
-588 560 M
-(-2) Rshow
-672 1076 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1.5) Rshow
-672 1593 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-1) Rshow
-672 2109 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(-0.5) Rshow
-672 2625 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0) Rshow
-672 3141 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(0.5) Rshow
-672 3658 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1) Rshow
-672 4174 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(1.5) Rshow
-672 4690 M
-63 0 V
-4067 0 R
--63 0 V
--4151 0 R
-(2) Rshow
-672 560 M
-0 63 V
-0 4067 R
-0 -63 V
-672 420 M
-(-2) Cshow
-1188 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1.5) Cshow
-1705 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-1) Cshow
-2221 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(-0.5) Cshow
-2737 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0) Cshow
-3253 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(0.5) Cshow
-3770 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1) Cshow
-4286 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(1.5) Cshow
-4802 560 M
-0 63 V
-0 4067 R
-0 -63 V
-0 -4207 R
-(2) Cshow
-LTb
-672 560 M
-4130 0 V
-0 4130 V
--4130 0 V
-672 560 L
-2737 210 M
-(rotate about eigenaxis 32.38 deg) Cshow
-2737 4900 M
-(yaw=20.00, pitch=20.00, roll=20.00 \(deg\)) Cshow
-1.000 UP
-1.000 UL
-LT0
-4151 4557 M
-(x \(body\)) Rshow
-4235 4557 M
-399 0 V
-3769 2617 M
--1032 8 V
-3769 2617 Pls
-2737 2625 Pls
-4434 4557 Pls
-1.000 UP
-1.000 UL
-LT1
-4151 4417 M
-(y \(body\)) Rshow
-4235 4417 M
-399 0 V
-2737 2625 M
--12 55 V
-2737 2625 Pls
-2725 2680 Pls
-4434 4417 Pls
-1.000 UP
-1.000 UL
-LT2
-4151 4277 M
-(z \(body\)) Rshow
-4235 4277 M
-399 0 V
-2737 2625 M
-9 1031 V
-2737 2625 Crs
-2746 3656 Crs
-4434 4277 Crs
-1.000 UP
-1.000 UL
-LT0
-4151 4137 M
-(x \(inertial\)) Rshow
-4235 4137 M
-399 0 V
-3631 2625 M
--894 0 V
-3631 2625 Star
-2737 2625 Star
-4434 4137 Star
-1.000 UP
-1.000 UL
-LT1
-4151 3997 M
-(y \(inertial\)) Rshow
-4235 3997 M
-399 0 V
-2737 2625 M
-485 353 V
-2737 2625 Star
-3222 2978 Star
-4434 3997 Star
-1.000 UP
-1.000 UL
-LT2
-4151 3857 M
-(z \(inertial\)) Rshow
-4235 3857 M
-399 0 V
-2737 2625 M
-177 -970 V
-2737 2625 Box
-2914 1655 Box
-4434 3857 Box
-1.000 UL
-LT5
-4151 3717 M
-(eigenaxis) Rshow
-4235 3717 M
-399 0 V
-2737 2625 M
--119 989 V
-100 5 V
-2 6 V
--1 6 V
--7 4 V
--10 4 V
--14 3 V
--17 2 V
--19 0 V
--21 -1 V
--22 -3 V
--21 -3 V
-1.000 UL
-LT3
-3323 1302 M
--1789 0 V
-1181 3242 L
-970 706 V
-1789 0 V
-4293 2008 L
-3323 1302 L
-970 706 V
--1788 0 V
-2151 3948 L
-2505 2008 L
-1534 1302 L
-1.000 UL
-LT4
-3940 3948 M
-2969 3242 L
--1788 0 V
-1788 0 V
-3323 1302 L
-stroke
-grestore
-end
-showpage
- @endspecial 0 4071 a Fm(1.5)112 b(Time)36 b(deriv)-6
-b(ativ)m(e)36 b(of)i(a)g(quaternion)0 4243 y Fq(In)28
-b(this)f(subsection)h(w)m(e)h(adopt)g(the)f(v)m(ector)j(notation)d(for)
-h(quaternions,)f(i.e.)40 b(\(with)27 b(some)i(abuse)g(of)f(notation\))0
-4356 y Fo(q)46 b Fq(=)c(\()s(\026)-48 b Fo(v)t(;)15 b(\022)s
-Fq(\))42 b(=)k(\026)-48 b Fo(v)30 b Fq(+)d Fo(\022)43
-b Fq(as)e(in)f(equation)h(\(1.3\).)74 b(Let)41 b Fo(q)1937
-4371 y Fh(b)1971 4356 y Fq(\()p Fo(t)p Fq(\))i(=)f(\()7
-b(\026)-52 b Fo(q)2306 4371 y Fh(b)2341 4356 y Fq(\()p
-Fo(t)p Fq(\))p Fo(;)15 b(\022)2527 4371 y Fh(b)2562 4356
-y Fq(\()p Fo(t)p Fq(\)\))41 b(b)s(e)g(a)g(quaternion)f(relating)g(the)0
-4469 y(co)s(ordinates)k(of)h(a)f(b)s(o)s(dy)f(\(rotating\))j(frame)e
-(to)h(a)g(\014xed)e(frame,)49 b(and)43 b(supp)s(ose)g(that)i(the)g(b)s
-(o)s(dy)e(frame)h(is)0 4582 y(rotating)26 b(with)f(\014xed)g(angular)h
-(v)m(elo)s(cit)m(y)g Fo(!)j Fq(ab)s(out)d(the)g(unit)e(v)m(ector)2378
-4559 y(\026)2368 4582 y(\012)h(=)g Fo(!)2612 4596 y Fk(1)2644
-4561 y Fq(^)2651 4582 y Fo(i)12 b Fq(+)f Fo(!)2833 4596
-y Fk(2)2871 4561 y Fq(^)2872 4582 y Fo(j)17 b Fq(+)11
-b Fo(!)3065 4596 y Fk(2)3107 4558 y Fq(^)3104 4582 y
-Fo(k)29 b Fq(in)c(the)h(\014xed)g(frame.)0 4695 y(\()p
-Fj(qtrans)j Fq(ma)m(y)i(b)s(e)f(used)f(to)i(p)s(erform)e(the)i
-(deriviation)d(in)h(the)i(b)s(o)s(dy)e(frame.\))p eop
-13 12 bop 0 100 a Fn(A.)31 b(S.)f(Ho)s(del:)40 b(Quaternions)29
-b(\(In)m(tro)s(duction\))g Fo(R)q(ev)s(ision)d Fq(:)f(1)p
-Fo(:)p Fq(1)421 b Fn(\(c\))31 b(1998)871 b Fq(13)1829
-824 y Fo(!)p 3 setlinewidth np 1738 974 a 2342 974 li
-st 3 setlinewidth np 2281 990 a 2342 974 li 2281 959
-li st 3 setlinewidth np 1738 974 a 1285 1277 li st 3
-setlinewidth np 1327 1231 a 1285 1277 li 1343 1256 li
-st 3 setlinewidth np 1738 974 a 1738 371 li st 3 setlinewidth
-np 1753 431 a 1738 371 li 1723 431 li st 3 setlinewidth
-np 1738 975 a 1759 961 li st 3 setlinewidth np 1781 946
-a 1802 932 li st 3 setlinewidth np 1824 917 a 1845 903
-li st 3 setlinewidth np 1867 888 a 1888 874 li st 3 setlinewidth
-np 1911 860 a 1932 846 li st 3 setlinewidth np 1954 831
-a 1975 817 li st 3 setlinewidth np 1997 802 a 2018 788
-li st 3 setlinewidth np 2040 773 a 2061 759 li st 3 setlinewidth
-np 2083 745 a 2104 731 li st 3 setlinewidth np 2126 716
-a 2147 702 li st 3 setlinewidth np 2170 687 a 2191 673
-li st 3 setlinewidth np 2149 719 a 2191 673 li 2132 694
-li st 4 setlinewidth np [ 4 18.09 ] 0 setdash 2191 673
-a 2191 1163 li st [] 0 setdash [] 0 setdash 4 setlinewidth
-np [ 4 18.13 ] 0 setdash 2191 1163 a 1738 974 li st [] 0 setdash
-[] 0 setdash 2239 650 a Fq(\026)2229 673 y(\012)1323
-1352 y Fo(i)2342 975 y(j)1776 371 y(k)p 3 setlinewidth
-np 2009 817 82 94.40 237.53 arc st 3 setlinewidth np
-1940 910 a 2002 899 li 1943 880 li st 0 1548 a Fq(Then)28
-b(Euler's)g(appro)m(ximation)h(of)g(a)h(rotation)g(o)m(v)m(er)g(\001)p
-Fo(t)f Fq(seconds)g(is)g Fo(q)2462 1562 y Fh(r)2525 1548
-y Fq(=)2631 1525 y(\026)2621 1548 y(\012)14 b(sin)o(\()p
-Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))19 b(+)f(cos)q(\()p Fo(!)s
-Fq(\001)p Fo(t=)p Fq(2\).)41 b(F)-8 b(or)0 1661 y(\001)p
-Fo(t)30 b Fq(su\016cien)m(tly)f(small,)g(cos)q(\()p Fo(!)s
-Fq(\001)p Fo(t=)p Fq(2\))d Fl(\031)f Fq(1)31 b(and)f(sin)n(\()p
-Fo(!)s Fq(\001)p Fo(t=)p Fq(2\))c Fl(\031)f Fo(!)s Fq(\001)p
-Fo(t=)p Fq(2,)31 b(so)g Fo(q)2713 1675 y Fh(r)2781 1661
-y Fq(ma)m(y)g(b)s(e)f(appro)m(ximated)g(as)1576 1892
-y Fo(q)1617 1906 y Fh(r)1680 1892 y Fl(\031)25 b Fq(1)c(+)1932
-1773 y Fi(\022)2004 1830 y Fo(!)s Fq(\001)p Fo(t)p 2004
-1871 169 4 v 2065 1954 a Fq(2)2182 1773 y Fi(\023)2268
-1869 y Fq(\026)2258 1892 y(\012)0 2117 y(Th)m(us)1239
-2325 y Fo(q)1280 2340 y Fh(b)1314 2325 y Fq(\()p Fo(t)g
-Fq(+)e(\001)p Fo(t)p Fq(\))83 b(=)g Fo(q)1915 2340 y
-Fh(b)1949 2325 y Fq(\()p Fo(t)p Fq(\))2067 2206 y Fi(\022)2129
-2325 y Fq(1)21 b(+)2285 2206 y Fi(\022)2357 2264 y Fo(!)s
-Fq(\001)p Fo(t)p 2357 2304 V 2418 2388 a Fq(2)2535 2206
-y Fi(\023)2621 2302 y Fq(\026)2611 2325 y(\012)f(+)g
-Fl(\001)15 b(\001)g(\001)2894 2206 y Fi(\023)950 2559
-y Fo(q)991 2574 y Fh(b)1025 2559 y Fq(\()p Fo(t)20 b
-Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1500 2574
-y Fh(b)1534 2559 y Fq(\()p Fo(t)p Fq(\))83 b(=)g Fo(q)1915
-2574 y Fh(b)1949 2559 y Fq(\()p Fo(t)p Fq(\))2067 2440
-y Fi(\022)2139 2497 y Fo(!)s Fq(\001)p Fo(t)p 2139 2538
-V 2200 2621 a Fq(2)2317 2440 y Fi(\023)2404 2536 y Fq(\026)2393
-2559 y(\012)20 b(+)g Fl(\001)15 b(\001)g(\001)940 2737
-y Fo(q)981 2752 y Fh(b)1015 2737 y Fq(\()p Fo(t)20 b
-Fq(+)g(\001)p Fo(t)p Fq(\))g Fl(\000)g Fo(q)1490 2752
-y Fh(b)1524 2737 y Fq(\()p Fo(t)p Fq(\))p 940 2778 688
-4 v 1229 2861 a(\001)p Fo(t)1720 2799 y Fq(=)1874 2680
-y Fi(\022)1945 2737 y Fo(!)p 1945 2778 60 4 v 1952 2861
-a Fq(2)2015 2680 y Fi(\023)2091 2799 y Fo(q)2132 2814
-y Fh(b)2166 2799 y Fq(\()p Fo(t)p Fq(\))2279 2776 y(\026)2269
-2799 y(\012)h(+)f Fl(\001)15 b(\001)g(\001)0 3024 y Fq(W)-8
-b(e)32 b(tak)m(e)g(the)e(limit)e(at)j(\001)p Fo(t)25
-b Fl(!)g Fq(0)31 b(to)g(obtain)978 3171 y Fo(dq)1066
-3186 y Fh(b)p 978 3212 123 4 v 999 3295 a Fo(dt)1136
-3233 y Fq(=)1232 3114 y Fi(\022)1303 3171 y Fo(!)p 1303
-3212 60 4 v 1310 3295 a Fq(2)1373 3114 y Fi(\023)1449
-3233 y Fo(q)1490 3248 y Fh(b)1524 3233 y Fq(\()p Fo(t)p
-Fq(\))1637 3210 y(\026)1627 3233 y(\012)25 b(=)1824 3171
-y Fo(!)p 1824 3212 V 1831 3295 a Fq(2)1909 3164 y Fi(\000)1947
-3233 y Fo(q)1988 3248 y Fh(b;)p Fk(4)2087 3210 y Fq(\026)2077
-3233 y(\012)20 b Fl(\000)g Fq(\()7 b(\026)-52 b Fo(q)2330
-3248 y Fh(b)2384 3233 y Fl(\001)2440 3210 y Fq(\026)2430
-3233 y(\012)o(\))21 b Fl(\000)2652 3210 y Fq(\026)2642
-3233 y(\012)f Fl(\002)26 b Fq(\026)-51 b Fo(q)2860 3248
-y Fh(b)2894 3164 y Fi(\001)0 3592 y Fq(where)30 b Fo(x)21
-b Fl(\001)f Fo(y)29 b Fq(=)552 3528 y Fi(P)655 3592 y
-Fo(x)707 3607 y Fh(`)740 3592 y Fo(y)785 3607 y Fh(`)848
-3592 y Fq(is)h(the)h(v)m(ector)h(inner)d(\(dot\))j(pro)s(duct)d(and)h
-Fo(x)21 b Fl(\002)f Fo(y)29 b Fq(=)2689 3395 y Fi(\014)2689
-3445 y(\014)2689 3494 y(\014)2689 3544 y(\014)2689 3594
-y(\014)2689 3644 y(\014)2689 3694 y(\014)2716 3398 y(2)2716
-3544 y(6)2716 3597 y(4)2836 3462 y Fq(^)2843 3483 y Fo(i)3010
-3462 y Fq(^)3012 3483 y Fo(j)3185 3459 y Fq(^)3182 3483
-y Fo(k)2813 3596 y(x)2865 3610 y Fk(1)2987 3596 y Fo(x)3039
-3610 y Fk(2)3162 3596 y Fo(x)3214 3610 y Fk(3)2817 3709
-y Fo(y)2862 3723 y Fk(1)2991 3709 y Fo(y)3036 3723 y
-Fk(2)3166 3709 y Fo(y)3211 3723 y Fk(3)3295 3398 y Fi(3)3295
-3544 y(7)3295 3597 y(5)3350 3395 y(\014)3350 3445 y(\014)3350
-3494 y(\014)3350 3544 y(\014)3350 3594 y(\014)3350 3644
-y(\014)3350 3694 y(\014)3409 3592 y Fq(is)g(the)i(v)m(ector)0
-3815 y(cross)f(pro)s(duct.)40 b(In)30 b(matrix)f(form)h(this)g(is)1011
-3922 y Fi(2)1011 4068 y(6)1011 4118 y(6)1011 4168 y(6)1011
-4221 y(4)1125 3996 y Fq(_)-42 b Fo(q)1149 4011 y Fh(b)p
-Fk(1)1125 4109 y Fq(_)g Fo(q)1149 4124 y Fh(b)p Fk(2)1125
-4222 y Fq(_)g Fo(q)1149 4237 y Fh(b)p Fk(3)1125 4335
-y Fq(_)g Fo(q)1149 4350 y Fh(b)p Fk(4)1260 3922 y Fi(3)1260
-4068 y(7)1260 4118 y(7)1260 4168 y(7)1260 4221 y(5)1340
-4166 y Fq(=)1446 4104 y Fo(!)p 1446 4145 V 1453 4228
-a Fq(2)1531 3922 y Fi(2)1531 4068 y(6)1531 4118 y(6)1531
-4168 y(6)1531 4221 y(4)1688 3996 y Fq(0)180 b Fo(!)1970
-4010 y Fk(3)2127 3996 y Fl(\000)p Fo(!)2255 4010 y Fk(2)2377
-3996 y Fo(!)2434 4010 y Fk(1)1628 4109 y Fl(\000)p Fo(!)1756
-4123 y Fk(3)1938 4109 y Fq(0)g Fo(!)2220 4123 y Fk(1)2377
-4109 y Fo(!)2434 4123 y Fk(2)1663 4222 y Fo(!)1720 4236
-y Fk(2)1878 4222 y Fl(\000)p Fo(!)2006 4236 y Fk(1)2188
-4222 y Fq(0)144 b Fo(!)2434 4236 y Fk(3)1628 4335 y Fl(\000)p
-Fo(!)1756 4349 y Fk(1)1878 4335 y Fl(\000)p Fo(!)2006
-4349 y Fk(2)2127 4335 y Fl(\000)p Fo(!)2255 4349 y Fk(3)2402
-4335 y Fq(0)2515 3922 y Fi(3)2515 4068 y(7)2515 4118
-y(7)2515 4168 y(7)2515 4221 y(5)2585 3922 y(2)2585 4068
-y(6)2585 4118 y(6)2585 4168 y(6)2585 4221 y(4)2682 3996
-y Fo(q)2723 4011 y Fh(b)p Fk(1)2682 4109 y Fo(q)2723
-4124 y Fh(b)p Fk(2)2682 4222 y Fo(q)2723 4237 y Fh(b)p
-Fk(3)2682 4335 y Fo(q)2723 4350 y Fh(b)p Fk(4)2834 3922
-y Fi(3)2834 4068 y(7)2834 4118 y(7)2834 4168 y(7)2834
-4221 y(5)0 4522 y Fq(Notice)31 b(that)g(the)g(4)21 b
-Fl(\002)e Fq(4)31 b(matrix)f(is)f(sk)m(ew)i(symmetric)f(\(hence)h(its)e
-(matrix)h(exp)s(onen)m(tial)f(is)h(orthogonal\).)0 4806
-y Fp(References)0 5009 y Fq([Mul])127 b(Larry)30 b(Mullins.)37
-b(Course)30 b(4160:)43 b(Quaternions.)c(Course)30 b(notes.)0
-5192 y([R)-10 b(W91])47 b(M.)41 b(H.)g(Rheinfurth)d(and)h(H.)i(B.)g
-(Wilson.)70 b(Metho)s(ds)40 b(of)h(applied)d(dynamics.)69
-b(T)-8 b(ec)m(hnical)40 b(Rep)s(ort)337 5305 y(NASA)30
-b(RP-1262,)j(NASA,)e(George)h(C.)e(Marshall)f(Space)h(Fligh)m(t)g(Cen)m
-(ter,)h(1991.)p eop
-14 13 bop 0 527 a Fp(Index)0 709 y Fq(conjugate)166 821
-y(quaternion,)30 b(3)0 1017 y(Euler)f(angles)166 1130
-y(quaternions,)g(6)0 1326 y(Octa)m(v)m(e)166 1439 y Fj(qinv)p
-Fq(,)h(3)166 1552 y Fj(qmult)p Fq(,)f(3)166 1665 y Fj(qtrans)p
-Fq(,)g(4)166 1778 y(qtransv,)h(8)166 1891 y(qtransvmat,)h(8)166
-2004 y Fj(quaternion)p Fq(,)d(2)0 2200 y(quaternions)166
-2313 y(as)j(co)s(ordinate)f(rotations,)h(3)166 2425 y(co)s(ordinate)f
-(transformation,)g(4)166 2538 y(co)s(ordinate)g(transformation)g
-(matrices,)h(6)166 2651 y(cross)g(pro)s(ducts,)e(2)166
-2764 y(de\014nition,)f(2)166 2877 y(deriv)-5 b(ativ)m(es,)30
-b(12)166 2990 y(Euler)f(angles,)h(6)166 3103 y(m)m(ultiplication,)e(2)
-166 3216 y(unit)h(quaternions,)g(3)1905 5656 y(14)p eop
-end
-userdict /end-hook known{end-hook}if
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/abs.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,38 @@
+## Copyright (C) 2010, 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{qabs} =} abs (@var{q})
+## Modulus of a quaternion.
+##
+## @example
+## q = w + x*i + y*j + z*k
+## abs (q) = sqrt (w.^2 + x.^2 + y.^2 + z.^2)
+## @end example
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: August 2010
+## Version: 0.2
+
+function b = abs (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  b = sqrt (norm2 (a));
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/blkdiag.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,60 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{q} =} blkdiag (@var{q1}, @var{q2}, @dots{})
+## Block-diagonal concatenation of quaternions.
+## @end deftypefn
+
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: December 2011
+## Version: 0.1
+
+function q = blkdiag (varargin)
+
+  tmp = cellfun (@quaternion, varargin);  # uniformoutput = true !
+
+  w = blkdiag (tmp.w);
+  x = blkdiag (tmp.x);
+  y = blkdiag (tmp.y);
+  z = blkdiag (tmp.z);
+
+  q = quaternion (w, x, y, z);
+
+endfunction
+
+
+%!shared C, D
+%! Aw = [2, 6; 10, 14];
+%! Ax = [3, 7; 11, 15];
+%! Ay = [4, 8; 12, 16];
+%! Az = [5, 9; 13, 17];
+%! A = quaternion (Aw, Ax, Ay, Az);
+%!
+%! Bw = [2, 6, 10; 14, 18, 22];
+%! Bx = [3, 7, 11; 15, 19, 23];
+%! By = [4, 8, 12; 16, 20, 24];
+%! Bz = [5, 9, 13; 17, 21, 25];
+%! B = quaternion (Bw, Bx, By, Bz);
+%!
+%! C = blkdiag (A, B);
+%!
+%! Dw = blkdiag (Aw, Bw);
+%! Dx = blkdiag (Ax, Bx);
+%! Dy = blkdiag (Ay, By);
+%! Dz = blkdiag (Az, Bz);
+%! D = quaternion (Dw, Dx, Dy, Dz);
+%!assert (C == D);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/cat.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,36 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{q} =} cat (@var{dim}, @var{q1}, @var{q2}, @dots{})
+## Concatenation of quaternions along dimension @var{dim}.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.1
+
+function q = cat (dim, varargin)
+
+  tmp = cellfun (@quaternion, varargin);  # uniformoutput = true !
+
+  w = cat (dim, tmp.w);
+  x = cat (dim, tmp.x);
+  y = cat (dim, tmp.y);
+  z = cat (dim, tmp.z);
+
+  q = quaternion (w, x, y, z);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/columns.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,34 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{nc} =} columns (@var{q})
+## Return number of columns @var{nc} of quaternion array @var{q}.
+## @end deftypefn
+
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function c = columns (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  c = columns (a.w);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/conj.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,40 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{q} =} conj (@var{q})
+## Return conjugate of a quaternion.
+##
+## @example
+## q = w + x*i + y*j + z*k
+## conj (q) = w - x*i - y*j - z*k
+## @end example
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = conj (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  a.x = -a.x;
+  a.y = -a.y;
+  a.z = -a.z;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/ctranspose.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,31 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Conjugate transpose of a quaternion.  Used by Octave for "q'".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = ctranspose (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  a = conj (transpose (a));
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/diag.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,53 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{q} =} diag (@var{v})
+## @deftypefnx {Function File} {@var{q} =} diag (@var{v}, @var{k})
+## Return a diagonal quaternion matrix with quaternion vector V on diagonal K.
+## The second argument is optional. If it is positive,
+## the vector is placed on the K-th super-diagonal.
+## If it is negative, it is placed on the -K-th sub-diagonal.
+## The default value of K is 0, and the vector is placed
+## on the main diagonal.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = diag (a, b = 0)
+
+  if (nargin == 0 || nargin > 2)
+    print_usage ();
+  endif
+
+  a.w = diag (a.w, b);
+  a.x = diag (a.x, b);
+  a.y = diag (a.y, b);
+  a.z = diag (a.z, b);
+
+endfunction
+
+
+%!shared R, S
+%! Q = quaternion (2, 3, 4, 5);
+%! R = diag ([Q, Q, Q]);
+%! W = diag ([2, 2, 2]);
+%! X = diag ([3, 3, 3]);
+%! Y = diag ([4, 4, 4]);
+%! Z = diag ([5, 5, 5]);
+%! S = quaternion (W, X, Y, Z);
+%!assert (R == S);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/diff.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,64 @@
+## Copyright (c) 1998, 2000, 2005, 2007 Auburn University.
+## Copyright (c) 2011 Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{qdot} =} diff (@var{q}, @var{omega})
+## Derivative of a quaternion.
+##
+## Let Q be a quaternion to transform a vector from a fixed frame to
+## a rotating frame.  If the rotating frame is rotating about the
+## [x, y, z] axes at angular rates [wx, wy, wz], then the derivative
+## of Q is given by
+##
+## @example
+## Q' = diff(Q, omega)
+## @end example
+##
+## If the passive convention is used (rotate the frame, not the vector),
+## then
+##
+## @example
+## Q' = diff(Q,-omega)
+## @end example
+## @end deftypefn
+
+## Adapted from: qderiv by A. S. Hodel <a.s.hodel@eng.auburn.edu>
+
+function qd = diff (q, Omega)
+
+  if (nargin != 2)
+    print_usage ();
+  endif
+
+  if (! isa (q, "quaternion") || ! isscalar (q.w))
+    error ("quaternion: first argument '%s' must be a scalar quaternion", inputname(1));
+  endif
+
+  Omega = vec (Omega);
+
+  if (length (Omega) != 3)
+    error ("quaternion: second argument '%s' must be a length 3 vector", inputname(2));
+  endif
+
+  qd = 0.5 * quaternion (Omega(1), Omega(2), Omega(3)) * q;
+
+endfunction
+
+%!shared q
+%! q = quaternion(3,1,0,0);
+
+%!assert(quaternion(0,0,0.5,1.5) == diff(q,[0 0 1]))
+%!assert(quaternion(0,0,2,1) == diff(q,[0 1 1]))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/display.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,63 @@
+## Copyright (C) 2010, 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Display routine for quaternions.  Used by Octave internally.
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.2
+
+function display (q)
+
+  name = inputname(1);
+  s = size (q);
+  
+  if (length (s) == 2 && all (s == 1))  # scalar quaternion
+    w = num2str (q.w, 4);
+    x = __num2str__ (q.x);
+    y = __num2str__ (q.y);
+    z = __num2str__ (q.z);
+    disp ([name, " = ", w, x, "i" y, "j", z, "k"]);
+    disp ("");
+  else                                  # non-scalar quaternion
+    disp ([name, ".w ="]);
+    disp (q.w);
+    disp ("");
+    disp ([name, ".x ="]);
+    disp (q.x);
+    disp ("");
+    disp ([name, ".y ="]);
+    disp (q.y);
+    disp ("");
+    disp ([name, ".z ="]);
+    disp (q.z);
+    disp ("");
+  endif
+
+endfunction
+
+
+function str = __num2str__ (num)
+
+  if (sign (num) == -1)
+    str = " - ";
+  else
+    str = " + ";
+  endif
+  
+  str = [str, num2str(abs (num), 4)];
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/eq.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,35 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Equal to operator for two quaternions.  Used by Octave for "q1 == q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function flg = eq (a, b)
+
+  if (! isa (a, "quaternion"))
+    a = quaternion (a);
+  endif
+
+  if (! isa (b, "quaternion"))
+    b = quaternion (b);
+  endif
+
+  flg = (a.w == b.w) && (a.x == b.x) && (a.y == b.y) && (a.z == a.z);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/exp.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,40 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{qexp} =} exp (@var{q})
+## Exponential of a quaternion.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.1
+
+function q = exp (q)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  normv = normv (q);
+  exps = exp (q.w);
+  sinv = sin (normv);
+
+  q.w = exps .* cos (normv);    
+  q.x = exps .* (q.x ./ normv) .* sinv;
+  q.y = exps .* (q.y ./ normv) .* sinv;
+  q.z = exps .* (q.z ./ normv) .* sinv;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/horzcat.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,34 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Horizontal concatenation of quaternions.  Used by Octave for "[q1, q2]".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = horzcat (varargin)
+
+  tmp = cellfun (@quaternion, varargin);  # uniformoutput = true !
+
+  w = horzcat (tmp.w);
+  x = horzcat (tmp.x);
+  y = horzcat (tmp.y);
+  z = horzcat (tmp.z);
+
+  q = quaternion (w, x, y, z);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/inv.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,42 @@
+## Copyright (C) 2010, 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{qinv} =} inv (@var{q})
+## Return inverse of a quaternion.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.2
+
+function a = inv (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  if (isscalar (a.w))
+    norm2 = norm2 (a);
+    a.w = a.w / norm2;
+    a.x = -a.x / norm2;
+    a.y = -a.y / norm2;
+    a.z = -a.z / norm2;
+  else
+    ## TODO: quaternion arrays
+    error ("quaternion: inv: implemented for scalar quaternions only");
+  endif
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/ispure.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,33 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{flg} =} ispure (@var{q})
+## Return 1 if scalar part of quaternion is zero, otherwise return 0
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function flg = ispure (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  flg = all ((abs (a.w) < eps)(:));
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/ldivide.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,27 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Element-wise left division for quaternions.  Used by Octave for "q1 .\\ q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = ldivide (a, b)
+
+  q = a.^-1 .* b;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/log.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,61 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{qlog} =} log (@var{q})
+## Logarithmus naturalis of a quaternion.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.1
+
+function q = log (q)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  normq = abs (q);
+  normv = normv (q);
+  acossq = acos (q.w ./ normq);
+
+  q.w = log (normq);    
+  q.x = (q.x ./ normv) .* acossq;
+  q.y = (q.y ./ normv) .* acossq;
+  q.z = (q.z ./ normv) .* acossq;
+  
+  ## FIXME: q = quaternion (2, 3, 4, 5)
+  ##        p = log (exp (q))
+  ##        p.v is wrong, probably somehow related to acos
+  ## NOTE:  p = exp (log (q)) is calculated correctly
+  ## NOTE:  qtfm 1.9 returns the same "wrong" result
+
+endfunction
+
+
+%!shared A, B
+%! Aw = [2, 6, 10; 14, 18, 22];
+%! Ax = [3, 7, 11; 15, 19, 23];
+%! Ay = [4, 8, 12; 16, 20, 24];
+%! Az = [5, 9, 13; 17, 21, 25];
+%! A = quaternion (Aw, Ax, Ay, Az);
+%!
+%! B = exp (log (A));
+%!
+%!assert (A.w, B.w, 1e-4);
+%!assert (A.x, B.x, 1e-4);
+%!assert (A.y, B.y, 1e-4);
+%!assert (A.z, B.z, 1e-4);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/minus.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,38 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Subtraction of two quaternions.  Used by Octave for "q1 - q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = minus (a, b)
+
+  if (! isa (a, "quaternion"))
+    a = quaternion (a);
+  endif
+
+  if (! isa (b, "quaternion"))
+    b = quaternion (b);
+  endif
+
+  a.w = a.w - b.w;
+  a.x = a.x - b.x;
+  a.y = a.y - b.y;
+  a.z = a.z - b.z;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/mldivide.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,27 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Matrix left division for quaternions.  Used by Octave for "q1 \\ q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = mldivide (a, b)
+
+  q = inv (a) * b;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/mpower.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,56 @@
+## Copyright (C) 2010, 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Matrix power operator of quaternions.  Used by Octave for "q^x".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.2
+
+function q = mpower (a, b)
+
+  [r, c] = size (a);
+  
+  if (r != c)
+    error ("quaternion: mpower: quaternion matrix must be square");
+  endif
+  
+  if (r == 1 && c == 1)                 # a scalar, b?
+    q = a .^ b;                         # b could be a quaternion
+  elseif (is_real_array (b) && isscalar (b) && fix (b) == b)
+    e = fix (abs (b));
+    switch (sign (b))
+      case -1                           # q^-e
+        a = inv (a);
+        q = a;
+      case 0                            # q^0
+        q = eye (r);                    # alternative: q = quaternion (eye (r))
+        return;
+      case 1;                           # q^e
+        q = a;
+    endswitch  
+    for k = 2 : e
+      q *= a;                           # improvement?: q^8 = ((q^2)^2)^2, q^9 = (((q^2)^2)^2)*q
+    endfor
+  else
+    error ("quaternion: mpower: case not implemented yet");
+    q = expm (logm (a) * b);            # don't know whether this formula is correct
+  endif
+
+  ## TODO: - q1 ^ q2
+  ##       - arrays
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/mrdivide.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,27 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Matrix right division for quaternions.  Used by Octave for "q1 / q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = mrdivide (a, b)
+
+  q = a * inv (b);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/mtimes.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,43 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Matrix multiplication of two quaternions. Used by Octave for "q1 * q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = mtimes (a, b)
+
+  if (! isa (a, "quaternion"))
+    a = quaternion (a);
+  endif
+
+  if (! isa (b, "quaternion"))
+    b = quaternion (b);
+  endif
+
+  w = a.w*b.w - a.x*b.x - a.y*b.y - a.z*b.z;
+  x = a.y*b.z - a.z*b.y + a.w*b.x + a.x*b.w;
+  y = a.z*b.x - a.x*b.z + a.w*b.y + a.y*b.w;
+  z = a.x*b.y - a.y*b.x + a.w*b.z + a.z*b.w;
+
+  a.w = w;
+  a.x = x;
+  a.y = y;
+  a.z = z;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/norm.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,38 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{n} =} norm (@var{q})
+## Norm of a quaternion.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.1
+
+function n = norm (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+  
+  if (! isscalar (a.w))
+    warning ("norm: use 'abs' to calculate the lengths of quaternion arrays");
+    error ("norm: only the 2-norm of scalar quaternions is implemented until now");
+  endif
+
+  n = abs (a);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/plus.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,38 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Addition of two quaternions.  Used by Octave for "q1 + q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = plus (a, b)
+
+  if (! isa (a, "quaternion"))
+    a = quaternion (a);
+  endif
+
+  if (! isa (b, "quaternion"))
+    b = quaternion (b);
+  endif
+
+  a.w = a.w + b.w;
+  a.x = a.x + b.x;
+  a.y = a.y + b.y;
+  a.z = a.z + b.z;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/power.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,49 @@
+## Copyright (C) 2010, 2011   Lukas F. Reichlin
+## Copyright (c) 2011 Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Power operator of quaternions.  Used by Octave for "q.^x".
+## Exponent x can be scalar or of appropriate size.
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.3
+
+function a = power (a, b)
+
+  if (isa (b, "quaternion"))          # exponent is a quaternion
+    a = exp (log (a) .* b);           # a could be real, but log doesn't care
+  elseif (! isreal (b))
+    error ("quaternion:invalidArgument", "quaternion: power: invalid exponent");
+  elseif (b == -1)                    # special case for ldivide and rdivide
+    norm2 = norm2 (a);                # a is quaternion because b is not,
+    a.w = a.w ./ norm2;               # otherwise octave wouldn't call
+    a.x = -a.x ./ norm2;              # quaternion's power operator.
+    a.y = -a.y ./ norm2;
+    a.z = -a.z ./ norm2;
+  else                                # exponent is real
+    na = abs (a);
+    nv = normv (a);
+    th = acos (a.w ./ na);
+    nab = na.^b;
+    snt = sin (b.*th);
+    a.w = nab .* cos (b.*th);
+    a.x = (a.x ./ nv) .* nab .* snt;
+    a.y = (a.y ./ nv) .* nab .* snt;
+    a.z = (a.z ./ nv) .* nab .* snt;
+  endif
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/private/norm2.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,29 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{norm2} =} norm2 (@var{q})
+## Return squared norm of a quaternion.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.1
+
+function ret = norm2 (a)
+
+  ret = a.w.^2 + a.x.^2 + a.y.^2 + a.z.^2;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/private/normv.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,29 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{normv} =} normv (@var{q})
+## Return norm of the vector part.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.1
+
+function ret = normv (a)
+
+  ret = sqrt (a.x.^2 + a.y.^2 + a.z.^2);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/quaternion.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,111 @@
+## Copyright (C) 2010, 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{q} =} quaternion (@var{w})
+## @deftypefnx {Function File} {@var{q} =} quaternion (@var{x}, @var{y}, @var{z})
+## @deftypefnx {Function File} {@var{q} =} quaternion (@var{w}, @var{x}, @var{y}, @var{z})
+## Constructor for quaternions - create or convert to quaternion.
+##
+## @example
+## q = w + x*i + y*j + z*k
+## @end example
+##
+## Arguments @var{w}, @var{x}, @var{y} and @var{z} can be scalars or
+## matrices, but they must be real and of equal size.  If scalar part
+## @var{w} or components @var{x}, @var{y} and @var{z} of the vector
+## part are not specified, zero matrices of appropriate size are
+## assumed.
+##
+## @strong{Example}
+## @example
+## @group
+## octave:1> q = quaternion (2)
+## q = 2 + 0i + 0j + 0k
+## 
+## octave:2> q = quaternion (3, 4, 5)
+## q = 0 + 3i + 4j + 5k
+## 
+## octave:3> q = quaternion (2, 3, 4, 5)
+## q = 2 + 3i + 4j + 5k
+## @end group
+## @end example
+## @example
+## @group
+## octave:4> w = [2, 6, 10; 14, 18, 22];
+## octave:5> x = [3, 7, 11; 15, 19, 23];
+## octave:6> y = [4, 8, 12; 16, 20, 24];
+## octave:7> z = [5, 9, 13; 17, 21, 25];
+## octave:8> q = quaternion (w, x, y, z)
+## q.w =
+##     2    6   10
+##    14   18   22
+## 
+## q.x =
+##     3    7   11
+##    15   19   23
+## 
+## q.y =
+##     4    8   12
+##    16   20   24
+## 
+## q.z =
+##     5    9   13
+##    17   21   25
+## 
+## octave:9> 
+## @end group
+## @end example
+##
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.2
+
+function q = quaternion (a, b, c, d)
+
+  switch (nargin)
+    case 1
+      if (isa (a, "quaternion"))        # quaternion (q)
+        q = a;
+        return;
+      elseif (is_real_array (a))        # quaternion (w)
+        b = c = d = zeros (size (a));
+      else
+        print_usage ();
+      endif
+    case 3                              # quaternion (x, y, z)
+      d = c;
+      c = b;
+      b = a;
+      a = zeros (size (a));
+    case 4                              # quaternion (w, x, y, z)
+      ## nothing to do here, just prevent case "otherwise"
+    otherwise
+      print_usage ();
+  endswitch
+
+  if (! is_real_array (a, b, c, d))
+    error ("quaternion: arguments must be real matrices");
+  endif
+
+  if (! size_equal (a, b, c, d));
+    error ("quaternion: arguments must have identical sizes");
+  endif
+
+  q = class (struct ("w", a, "x", b, "y", c, "z", d), "quaternion");
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/rdivide.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,27 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Element-wise right division for quaternions.  Used by Octave for "q1 ./ q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = rdivide (a, b)
+
+  q = a .* b.^-1;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/rows.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,33 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{nr} =} rows (@var{q})
+## Return number of rows @var{nr} of quaternion array @var{q}.
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function r = rows (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  r = rows (a.w);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/size.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,74 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{nvec} =} size (@var{q})
+## @deftypefnx {Function File} {@var{n} =} size (@var{q}, @var{dim})
+## @deftypefnx {Function File} {[@var{nx}, @var{ny}, @dots{}] =} size (@var{q})
+## Return size of quaternion arrays.
+##
+## @strong{Inputs}
+## @table @var
+## @item q
+## Quaternion object.
+## @item dim
+## If given a second argument, @command{size} will return the size of the
+## corresponding dimension.
+## @end table
+##
+## @strong{Outputs}
+## @table @var
+## @item nvec
+## Row vector.  The first element is the number of rows and the second
+## element the number of columns.  If @var{q} is an n-dimensional array
+## of quaternions, the n-th element of @var{nvec} corresponds to the
+## size of the n-th dimension of @var{q}.
+## @item n
+## Scalar value.  The size of the dimension @var{dim}.
+## @item nx
+## Number of rows.
+## @item ny
+## Number of columns.
+## @item @dots{}
+## Sizes of the 3rd to n-th dimensions.
+## @end table
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.2
+
+function varargout = size (a, b)
+
+  switch (nargout)
+    case {0, 1}
+      switch (nargin)
+        case 1                          # nvec = size (q)
+          varargout{1} = size (a.w);
+        case 2                          # n = size (q, dim)
+          varargout{1} = size (a.w, b);
+        otherwise
+          print_usage ();
+      endswitch
+
+    otherwise
+      if (nargin == 1)                  # [nx, ny, ...] = size (q)
+        varargout = num2cell (size (a.w));
+      else
+        print_usage ();
+      endif
+  endswitch
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/subsasgn.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,64 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Subscripted assignment for quaternions.
+## Used by Octave for "q.key = value".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.2
+
+function q = subsasgn (q, idx, val)
+
+  switch (idx(1).type)
+    case "()"                                                    # q(...) = val
+      if (length (idx(1).subs) == 1 && isa (val, "quaternion"))  # required by horzcat, vertcat, cat, ...
+        q(idx(1).subs{:}) = val;                                 # q = cellfun (@quaternion, varargin)
+      else                                                       # general case
+        val = quaternion (val);
+        w = subsasgn (q.w, idx, val.w);
+        x = subsasgn (q.x, idx, val.x);
+        y = subsasgn (q.y, idx, val.y);
+        z = subsasgn (q.z, idx, val.z);
+        q = quaternion (w, x, y, z);
+      endif
+
+    case "."                                                     # q.w = val
+      if (! is_real_array (val))
+        error ("quaternion: subsasgn: invalid argument type, require real array");
+      endif
+      if (! size_equal (subsref (q.w, idx(2:end)), val))
+        error ("quaternion: subsasgn: invalid argument size [%s], require dimensions [%s]", \
+               num2str (size (val), "%d "), num2str (size (subsref (q.w, idx(2:end))), "%d "));
+      endif
+      switch (tolower (idx(1).subs))
+        case {"w", "s"}
+          q.w = subsasgn (q.w, idx(2:end), val);
+        case {"x", "i"}
+          q.x = subsasgn (q.x, idx(2:end), val);
+        case {"y", "j"}
+          q.y = subsasgn (q.y, idx(2:end), val);
+        case {"z", "k"}
+          q.z = subsasgn (q.z, idx(2:end), val);
+        otherwise
+          error ("quaternion: subsasgn: invalid subscript name '%s'", idx(1).subs);
+      endswitch
+
+    otherwise
+      error ("quaternion: subsasgn: invalid subscript type '%s'", idx(1).type);
+  endswitch
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/subsref.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,60 @@
+## Copyright (C) 2010, 2011, 2012   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Subscripted reference for quaternions.  Used by Octave for "q.w".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.4
+
+function ret = subsref (q, s)
+
+  if (numel (s) == 0)
+    ret = q;
+    return;
+  endif
+
+  switch (s(1).type)
+    case "."                                # q.w
+      switch (tolower (s(1).subs))
+        case {"w", "s"}                     # scalar part
+          ret = subsref (q.w, s(2:end));
+        case {"x", "i"}
+          ret = subsref (q.x, s(2:end));
+        case {"y", "j"}
+          ret = subsref (q.y, s(2:end));
+        case {"z", "k"}
+          ret = subsref (q.z, s(2:end));
+        case "v"                            # vector part, scalar part set to zero
+          q.w = zeros (size (q.w));
+          ret = subsref (q, s(2:end));
+        otherwise
+          error ("quaternion: invalid subscript name '%s'", s(1).subs);
+      endswitch
+
+    case "()"                               # q(...)
+      w = subsref (q.w, s(1));
+      x = subsref (q.x, s(1));
+      y = subsref (q.y, s(1));
+      z = subsref (q.z, s(1));
+      tmp = quaternion (w, x, y, z);
+      ret = subsref (tmp, s(2:end));
+      
+    otherwise
+      error ("quaternion: invalid subscript type '%s'", s(1).type);
+  endswitch
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/times.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,43 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Element-wise multiplication of two quaternions.  Used by Octave for "q1 .* q2".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = times (a, b)
+
+  if (! isa (a, "quaternion"))
+    a = quaternion (a);
+  endif
+
+  if (! isa (b, "quaternion"))
+    b = quaternion (b);
+  endif
+
+  w = a.w .* b.w - a.x .* b.x - a.y .* b.y - a.z .* b.z;
+  x = a.y .* b.z - a.z .* b.y + a.w .* b.x + a.x .* b.w;
+  y = a.z .* b.x - a.x .* b.z + a.w .* b.y + a.y .* b.w;
+  z = a.x .* b.y - a.y .* b.x + a.w .* b.z + a.z .* b.w;
+
+  a.w = w;
+  a.x = x;
+  a.y = y;
+  a.z = z;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/transpose.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,34 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Transpose of a quaternion.  Used by Octave for "q.'".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = transpose (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  a.w = transpose (a.w);
+  a.x = transpose (a.x);
+  a.y = transpose (a.y);
+  a.z = transpose (a.z);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/uminus.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,30 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Unary minus of a quaternion.  Used by Octave for "-q".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function a = uminus (a)
+
+  a.w = -a.w;
+  a.x = -a.x;
+  a.y = -a.y;
+  a.z = -a.z;
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/unit.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,38 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{qn} =} unit (@var{q})
+## Normalize quaternion to length 1 (unit quaternion).
+##
+## @example
+## q = w + x*i + y*j + z*k
+## unit (q) = q ./ sqrt (w.^2 + x.^2 + y.^2 + z.^2)
+## @end example
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.1
+
+function q = unit (a)
+
+  if (nargin != 1)
+    print_usage ();
+  endif
+
+  q = a ./ abs (a);
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/uplus.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,27 @@
+## Copyright (C) 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Unary plus of a quaternion.  Used by Octave for "+q".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: November 2011
+## Version: 0.1
+
+function a = uplus (a)
+
+  ## nothing to do here
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/@quaternion/vertcat.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,34 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## Vertical concatenation of quaternions.  Used by Octave for "[q1; q2]".
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = vertcat (varargin)
+
+  tmp = cellfun (@quaternion, varargin);  # uniformoutput = true !
+
+  w = vertcat (tmp.w);
+  x = vertcat (tmp.x);
+  y = vertcat (tmp.y);
+  z = vertcat (tmp.z);
+
+  q = quaternion (w, x, y, z);
+
+endfunction
--- a/main/quaternion/inst/demoquat.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-## Copyright (C) 1998, 1999, 2000, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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 pogram; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} demoquat ()
-## Demonstrate the functions available for manipulating quaternions.
-##
-## Thanks to Mr. Charles Hall, Dr. Don Krupp and Dr. Larry Mullins at
-## NASA's Marshall Space Flight Center for notes and instruction in
-## use and conventions with quaternions.  - A. S. Hodel
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function opt = demoquat ()
-
-  opt = 0;
-  quitopt = 5;
-
-  while (opt != quitopt)
-    opt = menu ("Quaternion function demo (c) 1998 A. S. Hodel, a.s.hodel@eng.auburn.edu",
-		"quaternion construction/data extraction",
-		"simple quaternion functions",
-		"transformation functions",
-		"body-inertial frame demo",
-		"Quit");
-
-    switch(opt)
-
-    case(1)
-      printf("Quaternion construction/data extraction\n");
-      help quaternion
-      prompt
-      cmd = "q = quaternion(1,2,3,4)";
-      run_cmd
-      disp("This format stores the i,j,k parts of the quaternion first;")
-      disp("the real part is stored last.")
-      prompt
-      disp(" ")
-      disp("i, j, and k are all square roots of -1; however they do not")
-      disp("commute under multiplication (discussed further with the function")
-      disp("qmult).  Therefore quaternions do not commute under multiplcation:")
-      disp("    q1*q2 != q2*q1 (usually)")
-      prompt
-
-      disp("Quaternions as rotations: unit quaternion to represent")
-      disp("rotation of 45 degrees about the vector [1 1 1]")
-      cmd = "degrees = pi/180; q1 = quaternion([1 1 1],45*degrees)";
-      run_cmd
-      prompt
-      cmd = "real_q = cos(45*degrees/2)";
-      run_cmd
-      printf("The real part of the quaternion q(4) is cos(theta/2).\n----\n\n");
-      cmd = "imag_q = sin(45*degrees/2)*[1 1 1]/norm([1 1 1])"
-      run_cmd
-      disp("The imaginary part of the quaternion is sin(theta/2)*unit vector");
-      disp("The constructed quaternion is a unit quaternion.");
-      prompt
-      disp("Can also extract both forms of the quaternion:")
-      disp("Vector/angle form of 1i + 2j + 3k + 4:")
-      cmd = "[vv,th] = quaternion(q)";
-      run_cmd
-      cmd = "vv_norm = norm(vv)";
-      run_cmd
-      disp("Returns the eigenaxis as a 3-d unit vector");
-      disp("Check values: ")
-      cmd = "th_deg = th*180/pi";
-      run_cmd
-      disp("")
-      disp("This concludes the quaternion construction/extraction demo.");
-      prompt
-
-    case(2)
-      printf("Simple quaternion functions\n");
-      cmd = "help qconj";
-      run_cmd
-      cmd = "degrees = pi/180; q1 = quaternion([1 1 1],45*degrees)";
-      run_cmd
-      cmd = "q2 = qconj(q1)";
-      run_cmd
-      disp("The conjugate changes the sign of the complex part of the")
-      printf("quaternion.\n\n");
-      prompt
-      printf("\n\n\nMultiplication of quaternions:\n");
-      cmd = "help qmult";
-      run_cmd
-      cmd = "help qinv"
-      run_cmd
-      disp("Inverse quaternion: q*qi = qi*q = 1:")
-      cmd = "q1i = qinv(q1)";
-      run_cmd
-      cmd = "one = qmult(q1,q1i)";
-      run_cmd
-
-      printf("Conclusion of simple quaternion functions");
-      prompt
-
-    case(3)
-      printf("Transformation functions\n");
-      disp("A problem with the discussion of coordinate transformations is that");
-      disp("one must be clear on what is being transformed: does a rotation of");
-      disp("theta degrees mean that you're rotating the VECTOR by theta degrees,");
-      disp("also called the 'active convention,' or does it mean that you rotate ");
-      disp("the COORDINATE FRAME by theta degrees, also called the 'passive convention,' ");
-      disp("which is equivalent to rotating the VECTOR by (-theta) degrees.  The");
-      disp("functions in this demo use the active convention.  I'll point out where");
-      disp("this changes the code as the demo runs.");
-      disp("    -- The author");
-      prompt
-      printf("\n\n");
-      disp("Sequences of rotations:")
-      printf("\n\nRotation of a vector by 90 degrees about the reference z axis\n");
-      cmd = "qz = quaternion([0 0 1], pi/2);";
-      disp(cmd) ; eval(cmd);
-      printf("\n\nRotation of a vector by 90 degrees about the reference y axis\n");
-      cmd="qy = quaternion([0 1 0], pi/2);";
-      disp(cmd) ; eval(cmd);
-      printf("\n\nRotation of a vector by 90 degrees about the reference x axis\n");
-      cmd="qx = quaternion([1 0 0], pi/2);";
-      run_cmd
-      printf("\n\nSequence of three rotations: 90 degrees about x, then 90 degrees\n");
-      disp("about y, then 90 degrees about z (all axes specified in the reference frame):");
-      qchk = qmult(qz,qmult(qy,qx));
-      cmd = "[vv,th] = quaternion(qchk), th_deg = th*180/pi";
-      run_cmd
-      disp("The sequence of the three rotations above is equivalent to a single rotation")
-      disp("of 90 degrees about the y axis. Check:");
-      cmd = "err = norm(qchk - qy)";
-      run_cmd
-
-      disp("Transformation of a quaternion by a quaternion:")
-      disp("The three quaternions above were rotations specified about")
-      disp("a single reference frame.  It is often convenient to specify the");
-      disp("eigenaxis of a rotation in a different frame (e.g., when computing");
-      disp("the transformation rotation in terms of the Euler angles yaw-pitch-roll).");
-      cmd = "help qtrans";
-      run_cmd
-      disp("")
-      disp("NOTE: If the passive convention is used, then the above");
-      disp("formula changes to   v = qinv(q)*v*q  instead of ")
-      disp("v = q*v*qinv(q).")
-      prompt
-      disp("")
-      disp("Example: Vectors in Frame 2 are obtained by rotating them from ")
-      disp("   from Frame 1 by 90 degrees about the x axis (quaternion qx)")
-      disp("   A quaternion in Frame 2 rotates a vector by 90 degrees about")
-      disp("   the Frame 2 y axis (quaternion qy).  The equivalent rotation")
-      disp("   in the reference frame is:")
-      cmd = "q_eq = qtrans(qy,qx); [vv,th] = quaternion(q_eq)";
-      run_cmd
-      disp("The rotation is equivalent to rotating about the reference z axis")
-      disp("by 90 degrees (quaternion qz)")
-      prompt
-
-      disp("Transformation of a vector by a quaternion");
-      cmd = "help qtransv";
-      run_cmd
-
-      disp("NOTE: the above formula changes if the passive quaternion ")
-      disp("is used; the cross product term is subtracted instead of added.");
-      prompt
-      disp("Example: rotate the vector [1,1,1] by 90 degrees about the y axis");
-      cmd = "vec_r = qtransv([1,1,1],qy)";
-      run_cmd
-      prompt
-      disp("Equivalently, one may multiply by qtransvmat:")
-      cmd = "help qtransvmat";
-      run_cmd
-      disp("NOTE: the passive quaternion convention would use the transpose")
-      disp("(inverse) of the orthogonal matrix returned by qtransvmat.");
-      prompt
-      cmd = "vec_r_2 = qtransvmat(qy)*[1;1;1]; vec_err = norm(vec_r - vec_r_2)";
-      run_cmd
-
-      disp("")
-      disp("The last transformation function is the derivative of a quaternion")
-      disp("Given rotation rates about the reference x, y, and z axes.");
-      cmd = "help qderivmat";
-      run_cmd
-      disp("")
-      disp("Example:")
-      disp("Frame is rotating about the z axis at 1 rad/s")
-      cmd = "Omega = [0,0,1]; Dmat = qderivmat(Omega)";
-      run_cmd
-      disp("Notice that Dmat is skew symmetric, as it should be.")
-      disp("expm(Dmat*t) is orthogonal, so that unit quaternions remain")
-      disp("unit quaternions as the rotating frame precesses.");
-      disp(" ")
-      disp("This concludes the transformation demo.");
-      prompt;
-
-    case(4)
-      printf("Body-inertial frame demo: Look at the source code for\n");
-      printf("demoquat.m and qcoordinate_plot.m to see how it's done.\n");
-
-      # i,j,k units
-      iv = quaternion(1,0,0,0); jv = quaternion(0,1,0,0);
-      kv = quaternion(0,0,1,0);
-
-      # construct quaternion to desired view.
-      degrees = pi/180; daz = 45*degrees; del = -30*degrees;
-      qazimuth = quaternion([0,0,1],daz);
-      qelevation = quaternion([cos(daz),sin(daz),0],del);
-      qview = qmult(qelevation,qazimuth);
-
-      # inertial frame i, j, k axes.
-      iif = iv; jf = qtrans(jv,iv); kf = qtrans(kv,iv);
-
-      # rotation steps
-      th = 0:5:20; ov = ones(size(th)); myth = [th,max(th)*ov ; 0*ov,th];
-
-      # construct yaw-pitch-roll cartoon
-      for kk=1:length(myth(1,:))
-	thy = myth(1,kk);
-	thp = myth(2,kk);
-
-	qyaw = quaternion([0,0,1],thy*pi/180);
-	[jvy,th] = quaternion(qtrans(jf,qyaw));
-	qpitch = quaternion(jvy(1:3),thp*pi/180);
-	qb = qmult(qpitch, qyaw);
-	qi = quaternion([1, 0, 0],180*degrees);
-
-	printf("yaw=%8.4f, pitch=%8.4f, \n    qbi = (%8.4f)i + (%8.4e)j + (%8.4f)k + (%8.4f)\n",thy,thp, ...
-	  qb(1), qb(2), qb(3), qb(4));
-	[vv,th] = quaternion(qb);
-	printf("      = (vector) = [%8.4f %8.4f %8.4f], th=%5.2f deg\n", ...
-	  vv(1), vv(2), vv(3), th*180/pi);
-	fflush (stdout);
-	qb = qmult(qb,qi);
-	title(sprintf("yaw=%5.2f deg, pitch=%5.2f deg",thy,thp))
-	qcoordinate_plot(qi,qb,qview);
-	drawnow ();
-      endfor
-
-    case(quitopt)
-      printf ("Exiting quaternion demo\n");
-
-    otherwise
-      error ("invalid option %f", opt);
-
-    endswitch    
-  endwhile
-
-endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/q2rot.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,93 @@
+## Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, 2007 Auburn University
+## Copyright (C) 2010, 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {[@var{axis}, @var{angle}] =} q2rot (@var{q})
+## Extract vector/angle form of a unit quaternion @var{q}.
+##
+## @strong{Inputs}
+## @table @var
+## @item q
+## Unit quaternion describing the rotation.
+## @end table
+##
+## @strong{Outputs}
+## @table @var
+## @item axis
+## Eigenaxis as a 3-d unit vector @code{[x, y, z]}.
+## @item angle
+## Rotation angle in radians.  The positive direction is
+## determined by the right-hand rule applied to @var{axis}.
+## @end table
+##
+## @strong{Example}
+## @example
+## @group
+## octave:1> axis = [0, 0, 1]
+## axis =
+##    0   0   1
+## octave:2> angle = pi/4
+## angle =  0.78540
+## octave:3> q = rot2q (axis, angle)
+## q = 0.9239 + 0i + 0j + 0.3827k
+## octave:4> [vv, th] = q2rot (q)
+## vv =
+##    0   0   1
+## th =  0.78540
+## octave:5> theta = th*180/pi
+## theta =  45.000
+## octave:6> 
+## @end group
+## @end example
+##
+## @end deftypefn
+
+## Adapted from: quaternion by A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function [vv, theta] = q2rot (q)
+
+  if (nargin != 1 || nargout != 2)
+    print_usage ();
+  endif
+
+  if (! isa (q, "quaternion") || ! isscalar (q.w))
+    error ("q2rot: require scalar quaternion as input");
+  endif
+
+  if (abs (norm (q) - 1) > 1e-12)
+    warning ("q2rot: ||q||=%e, setting=1 for vv, theta", norm (q));
+    q = unit (q);
+  endif
+
+  s = q.s;
+  vv = [q.x, q.y, q.z];
+
+  theta = acos (s) * 2;
+
+  if (abs (theta) > pi)
+    theta = theta - sign (theta) * pi;
+  endif
+
+  sin_th_2 = norm (vv);
+
+  if (sin_th_2 != 0)
+    vv ./= sin_th_2;
+  endif
+
+endfunction
\ No newline at end of file
--- a/main/quaternion/inst/qconj.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-## Copyright (C) 1998, 2000, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qconj (@var{q})
-## Conjugate of a quaternion.
-##
-## @example
-## q = [w, x, y, z] = w*i + x*j + y*k + z
-## qconj (q) = -w*i -x*j -y*k + z
-## @end example
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function retval = qconj (q)
-
-  if (nargin != 1 )
-    print_usage ();
-  endif
-
-  [a, b, c, d] = quaternion (q);
-
-  retval = quaternion (-a, -b, -c, d);
-
-endfunction
-
--- a/main/quaternion/inst/qcoordinate_plot.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-## Copyright (C) 1998, 1999, 2000, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qcoordinate_plot (@var{qf}, @var{qb}, @var{qv})
-## Plot in the current figure a set of coordinate axes as viewed from 
-## the orientation specified by quaternion @var{qv}.  Inertial axes are
-## also plotted:
-##
-## @table @var
-## @item qf
-## Quaternion from reference (x,y,z) to inertial.
-## @item qb
-## Quaternion from reference to body.
-## @item qv
-## Quaternion from reference to view angle.
-## @end table
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function qcoordinate_plot (qf, qb, qv)
-
-  if (nargin != 3 )
-    print_usage ();
-  endif
-
-  degrees = pi / 180;
-  d180 = 180 * degrees;
-
-  ## construct coordinate transformation to view frame
-
-  cm = qtransvmat(qv);
-
-  p1 = [-1, -1,  1];
-  p2 = [-1, -1, -1];
-  p3 = [ 1, -1, -1];
-  p4 = [ 1, -1,  1];
-  p5 = [-1,  1,  1];
-  p6 = [ 1,  1,  1];
-  p7 = [ 1,  1, -1];
-  p8 = [-1,  1, -1];
-
-  ## outline positive quadrant
-
-  box1 = cm * [p4; p6; p5; p6; p7]';
-
-  ## outline rest of the box
-
-  box2 = cm * [p7; p8; p5; p1; p4; p3; p7; p3; p2; p1; p2; p8]';
-
-  ## compute inertial to body rotation eigenaxis
-  ## qb = qbf*qf => qbf = qb/qf
-  ##
-  ## need to use inverse quaternion to rotate axes
-
-  qbf = qinv (qmult (qb, qinv (qf)));
-
-  [eaxv, th_eig] = quaternion (qbf);
-
-  ## draw 1/3 circle in x-y plane around a unit z axis
-
-  th = (0:-12:-120) * degrees * sign (th_eig);
-  lth = length (th);
-
-  cpts = [0, 0, 0.1*cos(th);
-          0, 0, 0.1*sin(th);
-          0, 1,   1*ones(1,lth)];
-
-  ## rotate the 1/3 circle around eigenaxis of inertial to body rotation
-  ## qez = qe/qz = rotation to get from z axis to eigenaxis.
-  ## This rotates the 1/3 circle from x-y plane to the plane normal to
-  ## eigenaxis
-
-  qez = qmult (qbf, qinv (quaternion (0, 0, 1, 0)));
-  eig_xm = qtransvmat (qez);
-  cpts = cm*eig_xm * cpts;
-
-  ## transform inertial and body quaternions to view coordinates (rotate
-  ## by azimuth, elevation)
-
-  qfm = qtransvmat (qf);
-  qbm = qtransvmat (qf);
-
-  qf = qmult (qv, qf);
-  qb = qmult (qv, qb);
-
-  ## get coordinate axes in inertial and reference frame
-
-  jnk = qtransvmat (qf);
-  ifv = jnk(:,1);
-  jfv = jnk(:,2);
-  kfv = jnk(:,3);
-
-  jnk = qtransvmat (qb);
-  ibv = jnk(:,1);
-  jbv = jnk(:,2);
-  kbv = jnk(:,3);
-
-  axis ([-2, 2, -2, 2], "square");
-
-  [vv, theta] = quaternion (qb);
-
-  xlabel (sprintf ("rotate about eigenaxis %5.2f deg", th_eig/degrees));
-
-  plot ([ibv(1), 0], [ibv(3), 0], "-@11;x (body);",
-        [0, jbv(1)], [0, jbv(3)], "-@21;y (body);",
-        [0, kbv(1)], [0, kbv(3)], "-@32;z (body);",
-        [ifv(1), 0], [ifv(3), 0], "-@13;x (inertial);",
-        [0, jfv(1)], [0, jfv(3)], "-@23;y (inertial);",
-        [0, kfv(1)], [0, kfv(3)], "-@34;z (inertial);",
-        cpts(1,:), cpts(3,:), ".-6 ;eigenaxis;",
-        box2(1,:), box2(3,:), "-4;;",
-        box1(1,:), box1(3,:), "-5;;");
-
-endfunction
--- a/main/quaternion/inst/qderiv.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-## Copyright (C) 1998, 2000, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qderiv (omega)
-## Derivative of a quaternion.
-##
-## Let Q be a quaternion to transform a vector from a fixed frame to
-## a rotating frame.  If the rotating frame is rotating about the 
-## [x, y, z] axes at angular rates [wx, wy, wz], then the derivative
-## of Q is given by
-##
-## @example
-## Q' = qderivmat (omega) * Q
-## @end example
-##
-## If the passive convention is used (rotate the frame, not the vector),
-## then
-##
-## @example
-## Q' = -qderivmat (omega) * Q
-## @end example
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function Dmat = qderivmat (Omega)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  Omega = vec (Omega);
-
-  if (length (Omega) != 3)
-    error ("qderivmat: Omega must be a length 3 vector");
-  endif
-
-  Dmat = 0.5 * [      0.0,  Omega(3), -Omega(2),  Omega(1);
-                -Omega(3),       0.0,  Omega(1),  Omega(2);
-                 Omega(2), -Omega(1),       0.0,  Omega(3);
-                -Omega(1), -Omega(2), -Omega(3),       0.0 ];
-endfunction
--- a/main/quaternion/inst/qderivmat.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-## Copyright (C) 1998, 2000, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qderivmat (@var{omega})
-## Derivative of a quaternion.
-##
-## Let Q be a quaternion to transform a vector from a fixed frame to
-## a rotating frame.  If the rotating frame is rotating about the 
-## [x, y, z] axes at angular rates [wx, wy, wz], then the derivative
-## of Q is given by
-##
-## @example
-## Q' = qderivmat (omega) * Q
-## @end example
-##
-## If the passive convention is used (rotate the frame, not the vector),
-## then
-##
-## @example
-## Q' = -qderivmat (omega) * Q.
-## @end example
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function Dmat = qderivmat (Omega)
-
-  if (nargin != 1 )
-    print_usage ();
-  endif
-
-  Omega = vec (Omega);
-
-  if (length (Omega) != 3)
-    error ("qderivmat: Omega must be a length 3 vector");
-  endif
-
-  Dmat = 0.5 * [      0.0,  Omega(3), -Omega(2),  Omega(1);
-                -Omega(3),       0.0,  Omega(1),  Omega(2);
-                 Omega(2), -Omega(1),       0.0,  Omega(3);
-                -Omega(1), -Omega(2), -Omega(3),       0.0 ];
-endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/qi.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,48 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## @deftypefn {Function File} {} qi
+## Create x-component of a quaternion's vector part.
+##
+## @example
+## q = w + x*qi + y*qj + z*qk
+## @end example
+##
+## @strong{Example}
+## @example
+## @group
+## octave:1> q1 = quaternion (1, 2, 3, 4)
+## q1 = 1 + 2i + 3j + 4k
+## octave:2> q2 = 1 + 2*qi + 3*qj + 4*qk
+## q2 = 1 + 2i + 3j + 4k
+## octave:3> 
+## @end group
+## @end example
+##
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = qi
+
+  if (nargin != 0)
+    print_usage ();
+  endif
+
+  q = quaternion (0, 1, 0, 0);
+
+endfunction
\ No newline at end of file
--- a/main/quaternion/inst/qinv.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-## Copyright (C) 1998, 2000, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qinv (@var{q})
-## Return the inverse of a quaternion.
-##
-## @example
-## q = [w, x, y, z] = w*i + x*j + y*k + z
-## qmult (q, qinv (q)) = 1 = [0 0 0 1]
-## @end example
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function retval = qinv (q)
-
-  if (nargin !=  1)
-    print_usage ();
-  endif
-
-  if (norm (q) != 0)
-    retval = qconj (q) / sum (q .* q);
-  else
-    error ("qinv: zero quaternion passed!");
-  endif
-
-endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/qj.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,48 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## @deftypefn {Function File} {} qj
+## Create y-component of a quaternion's vector part.
+##
+## @example
+## q = w + x*qi + y*qj + z*qk
+## @end example
+##
+## @strong{Example}
+## @example
+## @group
+## octave:1> q1 = quaternion (1, 2, 3, 4)
+## q1 = 1 + 2i + 3j + 4k
+## octave:2> q2 = 1 + 2*qi + 3*qj + 4*qk
+## q2 = 1 + 2i + 3j + 4k
+## octave:3> 
+## @end group
+## @end example
+##
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = qj
+
+  if (nargin != 0)
+    print_usage ();
+  endif
+
+  q = quaternion (0, 0, 1, 0);
+
+endfunction
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/qk.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,48 @@
+## Copyright (C) 2010   Lukas F. Reichlin
+##
+## 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/>.
+
+## @deftypefn {Function File} {} qk
+## Create z-component of a quaternion's vector part.
+##
+## @example
+## q = w + x*qi + y*qj + z*qk
+## @end example
+##
+## @strong{Example}
+## @example
+## @group
+## octave:1> q1 = quaternion (1, 2, 3, 4)
+## q1 = 1 + 2i + 3j + 4k
+## octave:2> q2 = 1 + 2*qi + 3*qj + 4*qk
+## q2 = 1 + 2i + 3j + 4k
+## octave:3> 
+## @end group
+## @end example
+##
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = qk
+
+  if (nargin != 0)
+    print_usage ();
+  endif
+
+  q = quaternion (0, 0, 0, 1);
+
+endfunction
\ No newline at end of file
--- a/main/quaternion/inst/qmult.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-## Copyright (C) 1998, 2000, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qmult (@var{a}, @var{b})
-## Multiply two quaternions.
-##
-## @example
-## [w, x, y, z] = w*i + x*j + y*k + z
-## @end example
-##
-## @noindent
-## identities:
-##
-## @example
-## i^2 = j^2 = k^2 = -1
-## ij = k                 jk = i
-## ki = j                 kj = -i
-## ji = -k                ik = -j
-## @end example
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function retval = qmult (a, b)
-
-  if (nargin != 2 )
-    print_usage ();
-  endif
-
-  [a1, b1, c1, d1] = quaternion (a);
-  [a2, b2, c2, d2] = quaternion (b);
-  
-  ri = b1*c2 - c1*b2 + d1*a2 + a1*d2;
-  rj = c1*a2 - a1*c2 + d1*b2 + b1*d2;
-  rk = a1*b2 - b1*a2 + d1*c2 + c1*d2;
-  rr = -(a1*a2 + b1*b2 + c1*c2) + d1*d2;
-  
-  retval = quaternion (ri, rj, rk, rr);
-
-endfunction
-
--- a/main/quaternion/inst/qtrans.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-## Copyright (C) 1998, 2000, 2002, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qtrans (@var{v}, @var{q})
-## Transform the unit quaternion @var{v} by the unit quaternion @var{q}.
-## Returns @code{@var{v} = @var{q}*@var{v}/@var{q}}.
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function v = qtrans (v, q)
-
-  if (nargin != 2)
-    print_usage ();
-  endif
-
-  if (! isvector (v) || length (v) != 4)
-    error ("qtrans: v(%d,%d) must be a quaternion", rows (v), columns (v));
-  elseif (! isvector (q) || length (q) != 4)
-    error ("qtrans: q(%d,%d) must be a quaternion", rows (q), columns (q));
-  endif
-
-  v = qmult (q, qmult (v, qinv (q)));
-
-endfunction
--- a/main/quaternion/inst/qtransv.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-## Copyright (C) 1998, 2000, 2002, 2005, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qtransv (@var{v}, @var{q})
-## Transform the 3-D vector @var{v} by the unit quaternion @var{q}.
-## Return a column vector.
-##
-## @example
-## vi = (2*real(q)^2 - 1)*vb + 2*imag(q)*(imag(q)'*vb) 
-##    + 2*real(q)*cross(imag(q),vb)
-## @end example
-##
-## @noindent
-## Where imag(q) is a column vector of length 3.
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function vi = qtransv (vb, qib)
-
-  if (! isvector (vb) || length (vb) != 3)
-    error ("qtransv: v(%d,%d) must be a 3-D vector", rows (vb), columns (vb));
-  elseif (! isvector (qib) || length (qib) != 4)
-    error ("qtransv: q(%d,%d) must be a quaternion", rows (qib), columns (qib));
-  elseif (max (abs (imag (vb))) + max (abs (imag (qib))) != 0)
-    error ("qtransv: input values must be real");
-  endif
-
-  qr = qib(4);
-  qimag = vec (qib(1:3));
-  vb = vec (vb);
-  vi = (2*qr^2 - 1)*vb + 2*qimag*(qimag'*vb) + 2*qr*cross (qimag, vb);
-
-endfunction
--- a/main/quaternion/inst/qtransvmat.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-## Copyright (C) 1998, 2000, 2002, 2004, 2005, 2007
-##               Auburn University. All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {} qtransvmat (@var{qib})
-## Construct a 3x3 transformation matrix from quaternion @var{qib} that
-## is equivalent to rotation of th radians about axis @var{vv}, where
-## @code{[@var{vv}, @var{th}] = quaternion (@var{qib})}.
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function Aib = qtransvmat (qib)
-
-  if (nargin != 1)
-    print_usage ();
-  endif
-
-  if (! isvector(qib) || length (qib) != 4)
-    error ("qtransvmat: q(%d,%d) must be a quaternion", rows (qib), \
-	   columns (qib));
-  elseif (max (abs (imag (qib))) != 0)
-    error ("qtransvmat: input values must be real");
-  endif
-
-
-  Aib = [(2.*(qib(1)^2 + qib(4)^2) -1.), ...
-	 (2.*(qib(1)*qib(2)-qib(3)*qib(4))), ...
-	 (2.*(qib(1)*qib(3)+qib(2)*qib(4)));
-	 (2.*(qib(1)*qib(2)+qib(3)*qib(4))), ...
-	 (2.*(qib(2)*qib(2)+qib(4)*qib(4))-1.), ...
-	 (2.*(qib(2)*qib(3)-qib(1)*qib(4)));
-	 (2.*(qib(1)*qib(3)-qib(2)*qib(4))), ...
-	 (2.*(qib(2)*qib(3)+qib(1)*qib(4))), ...
-	 (2.*(qib(3)*qib(3)+qib(4)*qib(4))-1.)];
-
-endfunction
--- a/main/quaternion/inst/quaternion.m	Wed Mar 28 02:57:39 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-## Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, 2007
-##               Auburn University.  All rights reserved.
-##
-## 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; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {[@var{a}, @var{b}, @var{c}, @var{d}] =} quaternion (w)
-## @deftypefnx {Function File} {[@var{vv}, @var{theta}] =} quaternion (w)
-## @deftypefnx {Function File} {@var{w} =} quaternion (@var{a}, @var{b}, @var{c}, @var{d})
-## @deftypefnx {Function File} {@var{w} =} quaternion (@var{vv}, @var{theta})
-## Construct or extract a quaternion
-##
-## @example
-## w = a*i + b*j + c*k + d
-## @end example
-##
-## @noindent
-## from given data.
-## @end deftypefn
-
-## Author: A. S. Hodel <a.s.hodel@eng.auburn.edu>
-## Adapted-By: jwe
-
-function [a, b, c, d] = quaternion (w, x, y, z)
-
-  switch (nargin)
-    case(1)
-      if (! (isvector (w) && length (w) == 4))
-        error ("input vector must be of length 4)");
-      endif
-      ## extract data
-      switch (nargout)
-        case(4)
-          a = w(1);
-          b = w(2);
-          c = w(3);
-          d = w(4);
-
-        case(2)
-          if (abs (norm (w) - 1) > 1e-12)
-            warning ("quaternion: ||w||=%e, setting=1 for vv, theta", norm(w));
-            w = w/norm(w);
-          endif
-          [a, b, c, d] = quaternion (w);
-          theta = acos (d) * 2;
-          if (abs (theta) > pi)
-            theta = theta - sign (theta) * pi;
-          endif
-          sin_th_2 = norm ([a, b, c]);
-
-          if (sin_th_2 != 0)
-            vv = [a, b, c] / sin_th_2;
-          else
-            vv = [a, b, c];
-          endif
-          a = vv;
-          b = theta;
-        otherwise
-          print_usage ();
-      endswitch
-
-  case(2)
-    if (nargout > 1)
-      print_usage ();
-    endif
-    vv = w;
-    theta = x;
-
-    if (! isvector (vv) || length (vv) != 3)
-      error ("vv must be a length three vector");
-    elseif (! isscalar (theta))
-      error ("theta must be a scalar");
-    elseif (norm (vv) == 0)
-      error ("quaternion: vv is zero");
-    elseif (abs (norm (vv) - 1) > 1e-12)
-      warning ("quaternion: ||vv|| != 1, normalizing")
-      vv = vv / norm (vv);
-    endif
-
-    if (abs (theta) > 2*pi)
-      warning ("quaternion: |theta| > 2 pi, normalizing")
-      theta = rem (theta, 2*pi);
-    endif
-    vv = vv * sin (theta / 2);
-    d = cos (theta / 2);
-    a = quaternion (vv(1), vv(2), vv(3), d);
-
-  case(4)
-    if (nargout > 1)
-      print_usage ();
-    endif
-    if (! (isscalar (w) && isscalar (x) && isscalar (y) && isscalar (z)))
-      error ("input values must be scalars");
-    endif
-    a = [w, x, y, z];
-
-  otherwise
-    print_usage ();
-
-  endswitch
-
-endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/rot2q.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,95 @@
+## Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, 2007 Auburn University
+## Copyright (C) 2010, 2011   Lukas F. Reichlin
+##
+## 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/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{q} =} rot2q (@var{axis}, @var{angle})
+## Create unit quaternion @var{q} which describes a rotation of
+## @var{angle} radians about the vector @var{axis}.  This function uses
+## the active convention where the vector @var{axis} is rotated by @var{angle}
+## radians.  If the coordinate frame should be rotated by @var{angle}
+## radians, also called the passive convention, this is equivalent
+## to rotating the @var{axis} by @var{-angle} radians.
+##
+## @strong{Inputs}
+## @table @var
+## @item axis
+## Vector @code{[x, y, z]} describing the axis of rotation.
+## @item angle
+## Rotation angle in radians.  The positive direction is
+## determined by the right-hand rule applied to @var{axis}.
+## @end table
+##
+## @strong{Outputs}
+## @table @var
+## @item q
+## Unit quaternion describing the rotation.
+## @end table
+##
+## @strong{Example}
+## @example
+## @group
+## octave:1> axis = [0, 0, 1];
+## octave:2> angle = pi/4;
+## octave:3> q = rot2q (axis, angle)
+## q = 0.9239 + 0i + 0j + 0.3827k
+## octave:4> v = quaternion (1, 1, 0)
+## v = 0 + 1i + 1j + 0k
+## octave:5> vr = q * v * conj (q)
+## vr = 0 + 0i + 1.414j + 0k
+## octave:6>
+## @end group
+## @end example
+##
+## @end deftypefn
+
+## Adapted from: quaternion by A. S. Hodel <a.s.hodel@eng.auburn.edu>
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: May 2010
+## Version: 0.1
+
+function q = rot2q (vv, theta)
+
+  if (nargin != 2 || nargout != 1)
+    print_usage ();
+  endif
+
+  if (! isvector (vv) || length (vv) != 3)
+    error ("vv must be a length three vector");
+  endif
+
+  if (! isscalar (theta))
+    error ("theta must be a scalar");
+  endif
+
+  if (norm (vv) == 0)
+    error ("quaternion: vv is zero");
+  endif
+
+  if (abs (norm (vv) - 1) > 1e-12)
+    warning ("quaternion: ||vv|| != 1, normalizing")
+    vv = vv / norm (vv);
+  endif
+
+  if (abs (theta) > 2*pi)
+    warning ("quaternion: |theta| > 2 pi, normalizing")
+    theta = rem (theta, 2*pi);
+  endif
+
+  vv = vv * sin (theta / 2);
+  d = cos (theta / 2);
+  q = quaternion (d, vv(1), vv(2), vv(3));
+
+endfunction
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/inst/test_quaternion.m	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,4 @@
+test @quaternion/blkdiag
+test @quaternion/diag
+test @quaternion/diff
+test @quaternion/log
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/src/Makefile	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,8 @@
+all: is_real_array.oct
+
+# helper
+is_real_array.oct: is_real_array.cc
+	mkoctfile is_real_array.cc
+
+clean:
+	rm *.o core octave-core *.oct *~
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/quaternion/src/is_real_array.cc	Wed Mar 28 03:16:58 2012 +0000
@@ -0,0 +1,60 @@
+/*
+
+Copyright (C) 2011   Lukas F. Reichlin
+
+This file is part of LTI Syncope.
+
+LTI Syncope 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.
+
+LTI Syncope is distributed in the hope that it will be 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 LTI Syncope.  If not, see <http://www.gnu.org/licenses/>.
+
+Return true if argument is a real array.
+
+Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+Created: November 2011
+Version: 0.2
+
+*/
+
+#include <octave/oct.h>
+
+DEFUN_DLD (is_real_array, args, nargout,
+   "-*- texinfo -*-\n\
+@deftypefn {Loadable Function} {} is_real_array (@var{a}, @dots{})\n\
+Return true if argument is a real array.\n\
+@var{[]} is a valid array.\n\
+Avoid nasty stuff like @code{true = isreal (\"a\")}.\n\
+@end deftypefn")
+{
+    octave_value retval = true;
+    int nargin = args.length ();
+
+    if (nargin == 0)
+    {
+        print_usage ();
+    }
+    else
+    {
+        for (int i = 0; i < nargin; i++)
+        {
+            // args(i).ndims () should be always >= 2
+            if (args(i).ndims () < 2 || ! args(i).is_numeric_type ()
+                || ! args(i).is_real_type ())
+            {
+                retval = false;
+                break;
+            }
+        }
+    }
+
+    return retval;
+}